---
phase: 42-source-identity-and-citation-graph
plan: 01
type: execute
wave: 1
depends_on: []
files_modified:
  - research/knowledge-hub/knowledge_hub/aitp_service.py
  - research/knowledge-hub/tests/test_aitp_service.py
  - research/knowledge-hub/tests/test_runtime_profiles_and_projections.py
  - research/knowledge-hub/tests/test_schema_contracts.py
autonomous: true
requirements:
  - REQ-SRC-01
  - REQ-SRC-02
user_setup: []
must_haves:
  truths:
    - source identity should be more durable across topics than raw topic-local rows
    - citation/source-neighbor signals should be strong enough for later layers to reuse
    - this phase should improve L0 intelligence, not merely rename fields
---

<objective>
Strengthen `L0` source identity and citation/source-neighbor signals so AITP
can reuse literature context more like a real collaborator.
</objective>

<execution_context>
@D:/BaiduSyncdisk/Theoretical-Physics/.codex-home/get-shit-done/workflows/execute-plan.md
@D:/BaiduSyncdisk/Theoretical-Physics/.codex-home/get-shit-done/templates/summary.md
</execution_context>

<context>
@.planning/phases/42-source-identity-and-citation-graph/42-CONTEXT.md
@research/knowledge-hub/knowledge_hub/aitp_service.py
@research/knowledge-hub/tests/test_aitp_service.py
@research/knowledge-hub/tests/test_runtime_profiles_and_projections.py
@research/knowledge-hub/tests/test_schema_contracts.py
</context>

<tasks>

<task type="auto">
  <name>Task 1: Add failing tests for stronger source identity and citation graph</name>
  <files>research/knowledge-hub/tests/test_aitp_service.py, research/knowledge-hub/tests/test_runtime_profiles_and_projections.py, research/knowledge-hub/tests/test_schema_contracts.py</files>
  <read_first>research/knowledge-hub/tests/test_aitp_service.py, research/knowledge-hub/tests/test_runtime_profiles_and_projections.py, research/knowledge-hub/tests/test_schema_contracts.py</read_first>
  <action>Add failing tests that require stronger source identity and richer citation/source-neighbor signals in `L0` projections.</action>
  <verify>python -m pytest research/knowledge-hub/tests/test_aitp_service.py research/knowledge-hub/tests/test_runtime_profiles_and_projections.py research/knowledge-hub/tests/test_schema_contracts.py -q</verify>
  <acceptance_criteria>
    - tests fail before implementation
  </acceptance_criteria>
  <done>A real failing contract exists for stronger `L0` source intelligence.</done>
</task>

<task type="auto">
  <name>Task 2: Implement stronger source identity and citation/source-neighbor signals</name>
  <files>research/knowledge-hub/knowledge_hub/aitp_service.py</files>
  <read_first>research/knowledge-hub/knowledge_hub/aitp_service.py</read_first>
  <action>Implement stronger `L0` source identity and citation/source-neighbor summaries, then expose them through the current `L0` projection and runtime surfaces.</action>
  <verify>python -m pytest research/knowledge-hub/tests/test_aitp_service.py research/knowledge-hub/tests/test_runtime_profiles_and_projections.py research/knowledge-hub/tests/test_schema_contracts.py -q</verify>
  <acceptance_criteria>
    - stronger L0 identity and citation signals are visible
  </acceptance_criteria>
  <done>The `L0` layer becomes meaningfully stronger for later physics work.</done>
</task>

<task type="auto">
  <name>Task 3: Re-run the integrated regression slice</name>
  <files>research/knowledge-hub/tests/test_aitp_service.py, research/knowledge-hub/tests/test_aitp_cli.py, research/knowledge-hub/tests/test_aitp_cli_e2e.py, research/knowledge-hub/tests/test_runtime_profiles_and_projections.py, research/knowledge-hub/tests/test_schema_contracts.py, research/knowledge-hub/tests/test_l2_graph_activation.py, research/knowledge-hub/tests/test_topic_start_regressions.py</files>
  <read_first>.planning/V1.35_CLOSURE_AUDIT.md</read_first>
  <action>Re-run the integrated regression slice so `v1.36` starts from a green baseline.</action>
  <verify>python -m pytest research/knowledge-hub/tests/test_aitp_service.py research/knowledge-hub/tests/test_aitp_cli.py research/knowledge-hub/tests/test_aitp_cli_e2e.py research/knowledge-hub/tests/test_runtime_profiles_and_projections.py research/knowledge-hub/tests/test_schema_contracts.py research/knowledge-hub/tests/test_l2_graph_activation.py research/knowledge-hub/tests/test_topic_start_regressions.py -q</verify>
  <acceptance_criteria>
    - the integrated regression slice exits 0
  </acceptance_criteria>
  <done>Phase `42` lands on a stable baseline.</done>
</task>

</tasks>
