---
phase: 58-mvp-node-family-activation-and-physical-picture-closure
plan: 01
type: execute
wave: 1
depends_on: []
files_modified:
  - research/knowledge-hub/canonical/L2_MVP_CONTRACT.md
  - research/knowledge-hub/canonical/LAYER2_OBJECT_FAMILIES.md
  - research/knowledge-hub/canonical/README.md
  - research/knowledge-hub/canonical/canonical-unit.schema.json
  - research/knowledge-hub/schemas/l2-backend.schema.json
  - research/knowledge-hub/knowledge_hub/l2_graph.py
  - research/knowledge-hub/knowledge_hub/tpkn_bridge.py
  - research/knowledge-hub/tests/test_schema_contracts.py
  - research/knowledge-hub/tests/test_l2_backend_contracts.py
  - research/knowledge-hub/tests/test_l2_graph_activation.py
autonomous: true
requirements:
  - REQ-L2MVP-01
  - REQ-L2MVP-02
  - REQ-L2MVP-04
  - REQ-L2MVP-06
must_haves:
  truths:
    - physical_picture must become a real production family
    - the MVP subset must stay bounded and explicit
    - seeding and retrieval must show the new family in real data
---

<objective>
Activate the bounded MVP `L2` family surface in production code and close the
reserved-only gap around `physical_picture`.
</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/58-mvp-node-family-activation-and-physical-picture-closure/58-CONTEXT.md
@.planning/REQUIREMENTS.md
@research/knowledge-hub/canonical/L2_MVP_CONTRACT.md
@research/knowledge-hub/canonical/LAYER2_OBJECT_FAMILIES.md
@research/knowledge-hub/canonical/canonical-unit.schema.json
@research/knowledge-hub/schemas/l2-backend.schema.json
@research/knowledge-hub/knowledge_hub/l2_graph.py
@research/knowledge-hub/knowledge_hub/tpkn_bridge.py
</context>

<tasks>

<task type="auto">
  <name>Task 1: Add failing tests for physical_picture activation</name>
  <files>research/knowledge-hub/tests/test_schema_contracts.py, research/knowledge-hub/tests/test_l2_backend_contracts.py, research/knowledge-hub/tests/test_l2_graph_activation.py</files>
  <read_first>research/knowledge-hub/tests/test_schema_contracts.py, research/knowledge-hub/tests/test_l2_backend_contracts.py, research/knowledge-hub/tests/test_l2_graph_activation.py, research/knowledge-hub/canonical/L2_MVP_CONTRACT.md, research/knowledge-hub/knowledge_hub/l2_graph.py</read_first>
  <action>Add failing tests that require `physical_picture` to be active in canonical/backend schemas, present in the MVP docs, and retrievable from the seeded MVP graph direction.</action>
  <verify>python -m pytest research/knowledge-hub/tests/test_schema_contracts.py research/knowledge-hub/tests/test_l2_backend_contracts.py research/knowledge-hub/tests/test_l2_graph_activation.py -q</verify>
  <acceptance_criteria>
    - tests fail before implementation
    - failures prove that `physical_picture` is still reserved or absent in production paths
  </acceptance_criteria>
  <done>A red contract exists for Phase `58`.</done>
</task>

<task type="auto">
  <name>Task 2: Activate physical_picture in schema, docs, and backend mappings</name>
  <files>research/knowledge-hub/canonical/L2_MVP_CONTRACT.md, research/knowledge-hub/canonical/LAYER2_OBJECT_FAMILIES.md, research/knowledge-hub/canonical/README.md, research/knowledge-hub/canonical/canonical-unit.schema.json, research/knowledge-hub/schemas/l2-backend.schema.json, research/knowledge-hub/knowledge_hub/tpkn_bridge.py</files>
  <read_first>research/knowledge-hub/canonical/L2_MVP_CONTRACT.md, research/knowledge-hub/canonical/LAYER2_OBJECT_FAMILIES.md, research/knowledge-hub/canonical/canonical-unit.schema.json, research/knowledge-hub/schemas/l2-backend.schema.json, research/knowledge-hub/knowledge_hub/tpkn_bridge.py</read_first>
  <action>Turn `physical_picture` into an active family across canonical docs, canonical schema, backend schema targets, and TPKN bridge mappings while keeping the MVP subset bounded and explicit.</action>
  <verify>python -m pytest research/knowledge-hub/tests/test_schema_contracts.py research/knowledge-hub/tests/test_l2_backend_contracts.py -q</verify>
  <acceptance_criteria>
    - canonical docs no longer describe `physical_picture` as reserved-only
    - canonical/backend schemas accept `physical_picture`
    - bridge mappings can classify `physical_picture`
  </acceptance_criteria>
  <done>The MVP family surface is real production vocabulary.</done>
</task>

<task type="auto">
  <name>Task 3: Seed and retrieve physical_picture through the MVP graph helper</name>
  <files>research/knowledge-hub/knowledge_hub/l2_graph.py, research/knowledge-hub/tests/test_l2_graph_activation.py</files>
  <read_first>research/knowledge-hub/knowledge_hub/l2_graph.py, research/knowledge-hub/tests/test_l2_graph_activation.py, research/knowledge-hub/canonical/retrieval_profiles.json</read_first>
  <action>Add a seeded `physical_picture` unit to the bounded demo direction, connect it through real edges, and ensure retrieval can surface it through the current consult path.</action>
  <verify>python -m pytest research/knowledge-hub/tests/test_l2_graph_activation.py -q</verify>
  <acceptance_criteria>
    - seed direction writes at least one `physical_picture` unit file
    - canonical index includes `physical_picture`
    - consult path can return the seeded `physical_picture` hit or neighbor
  </acceptance_criteria>
  <done>The MVP seed path and consult path both carry the new family.</done>
</task>

<task type="auto">
  <name>Task 4: Re-run the integrated L2 slice</name>
  <files>research/knowledge-hub/tests/test_schema_contracts.py, research/knowledge-hub/tests/test_l2_backend_contracts.py, research/knowledge-hub/tests/test_l2_graph_activation.py</files>
  <read_first>.planning/REQUIREMENTS.md</read_first>
  <action>Re-run the integrated L2 slice to confirm schema/docs/seed/retrieval stay aligned on the MVP family surface.</action>
  <verify>python -m pytest research/knowledge-hub/tests/test_schema_contracts.py research/knowledge-hub/tests/test_l2_backend_contracts.py research/knowledge-hub/tests/test_l2_graph_activation.py -q</verify>
  <acceptance_criteria>
    - the targeted L2 slice exits 0
  </acceptance_criteria>
  <done>Phase `58` lands on a stable tested baseline.</done>
</task>

</tasks>
