---
phase: 143-l0-source-discovery-via-deepxiv-mcp
plan: 01
type: execute
wave: 1
depends_on:
  - v1.68-closure
files_modified:
  - research/knowledge-hub/source-layer/scripts/discover_and_register.py
  - research/knowledge-hub/L0_SOURCE_LAYER.md
  - research/knowledge-hub/runtime/scripts/run_l0_source_discovery_acceptance.py
  - research/knowledge-hub/tests/test_source_discovery_contracts.py
  - research/knowledge-hub/tests/test_runtime_scripts.py
  - research/knowledge-hub/README.md
  - research/knowledge-hub/runtime/README.md
  - research/knowledge-hub/runtime/AITP_TEST_RUNBOOK.md
autonomous: true
requirements:
  - REQ-DISCOVERY-01
  - REQ-DISCOVERY-02
  - REQ-DISCOVERY-03
  - REQ-DISCOVERY-04
  - REQ-VERIFY-01
must_haves:
  truths:
    - search remains an external MCP dependency rather than an L0 protocol primitive
    - registration still flows through the existing source-registration path
    - fallback providers and progressive reading stay explicit
---

<objective>
Add one bounded production search -> evaluate -> register path for `L0`
source discovery, using DeepXiv as the primary MCP-backed provider while
keeping the bridge search-tool agnostic and fallback-aware.
</objective>

<tasks>

<task type="auto">
  <name>Task 1: Build the bounded discovery-to-registration adapter</name>
  <files>research/knowledge-hub/source-layer/scripts/discover_and_register.py, research/knowledge-hub/L0_SOURCE_LAYER.md</files>
  <read_first>research/knowledge-hub/source-layer/scripts/register_arxiv_source.py</read_first>
  <action>Add one thin adapter that accepts a natural-language query, consumes MCP-backed search results, supports bounded candidate evaluation, and forwards the chosen result into the existing registration helper.</action>
  <verify>python -m pytest research/knowledge-hub/tests/test_source_discovery_contracts.py -q</verify>
  <acceptance_criteria>
    - one production adapter bridges discovery into source registration
    - the adapter keeps search-tool fallbacks explicit
    - `L0_SOURCE_LAYER.md` documents discovery as the recommended pre-registration path
  </acceptance_criteria>
  <done>The discovery bridge exists as a first-class bounded production surface.</done>
</task>

<task type="auto">
  <name>Task 2: Add isolated acceptance and operator docs</name>
  <files>research/knowledge-hub/runtime/scripts/run_l0_source_discovery_acceptance.py, research/knowledge-hub/tests/test_runtime_scripts.py, research/knowledge-hub/README.md, research/knowledge-hub/runtime/README.md, research/knowledge-hub/runtime/AITP_TEST_RUNBOOK.md</files>
  <read_first>research/knowledge-hub/runtime/AITP_TEST_RUNBOOK.md</read_first>
  <action>Add one isolated acceptance lane and update operator docs so the new search -> evaluate -> register path is testable and discoverable.</action>
  <verify>python research/knowledge-hub/runtime/scripts/run_l0_source_discovery_acceptance.py --json</verify>
  <acceptance_criteria>
    - docs and runbook reference the new discovery acceptance lane
    - isolated acceptance proves bounded discovery, candidate evaluation, and registration on a temp kernel root
  </acceptance_criteria>
  <done>Phase `143` is ready to execute and verify.</done>
</task>

</tasks>
