---
phase: 06-formal-theory-projection-contract
plan: 01
type: execute
wave: 1
depends_on: []
files_modified: [research/knowledge-hub/schemas/topic-skill-projection.schema.json, schemas/topic-skill-projection.schema.json, research/knowledge-hub/canonical/LAYER2_OBJECT_FAMILIES.md, research/knowledge-hub/canonical/PROMOTION_POLICY.md, research/knowledge-hub/README.md, research/knowledge-hub/runtime/README.md, research/knowledge-hub/tests/test_schema_contracts.py, research/knowledge-hub/tests/test_runtime_profiles_and_projections.py]
autonomous: true
requirements: [FTS-01, FTS-03]
user_setup: []
must_haves:
  truths:
    - Formal-theory topic-skill projections are defined as reusable execution memory, not theorem certificates or proof-complete knowledge objects.
    - Formal-theory projection eligibility is tied to explicit theorem-facing trust artifacts and remains human-reviewed only.
  artifacts:
    - path: research/knowledge-hub/schemas/topic-skill-projection.schema.json
      provides: formal-theory projection contract
    - path: research/knowledge-hub/canonical/PROMOTION_POLICY.md
      provides: human-reviewed-only promotion rule for theorem-facing execution projections
  key_links:
    - from: research/knowledge-hub/schemas/topic-skill-projection.schema.json
      to: research/knowledge-hub/canonical/LAYER2_OBJECT_FAMILIES.md
      via: documented topic_skill_projection semantics
      pattern: formal_theory
---

<objective>
Define the contract for a bounded formal-theory `topic_skill_projection` before
any service logic starts producing one.

Purpose: make the trust boundary explicit.
Output: schema/docs/tests that say exactly what a formal-theory projection is
allowed to read, say, and promote.
</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/MILESTONE-CONTEXT.md
@.planning/REQUIREMENTS.md
@research/knowledge-hub/schemas/topic-skill-projection.schema.json
@research/knowledge-hub/canonical/LAYER2_OBJECT_FAMILIES.md
@research/knowledge-hub/canonical/PROMOTION_POLICY.md
@research/knowledge-hub/runtime/scripts/run_jones_chapter4_finite_product_formal_closure_acceptance.py
</context>

<tasks>
<task type="auto">
  <name>Task 1: Lock the formal-theory projection contract in schema and docs</name>
  <files>research/knowledge-hub/schemas/topic-skill-projection.schema.json, schemas/topic-skill-projection.schema.json, research/knowledge-hub/canonical/LAYER2_OBJECT_FAMILIES.md, research/knowledge-hub/canonical/PROMOTION_POLICY.md, research/knowledge-hub/README.md, research/knowledge-hub/runtime/README.md</files>
  <read_first>.planning/MILESTONE-CONTEXT.md, .planning/REQUIREMENTS.md, research/knowledge-hub/schemas/topic-skill-projection.schema.json, research/knowledge-hub/canonical/LAYER2_OBJECT_FAMILIES.md, research/knowledge-hub/canonical/PROMOTION_POLICY.md, research/knowledge-hub/runtime/scripts/run_jones_chapter4_finite_product_formal_closure_acceptance.py</read_first>
  <action>Update both topic-skill-projection schema copies and the canonical/runtime docs so the `formal_theory` lane is defined as reusable execution memory derived from theorem-facing trust artifacts. The documented ready contract must explicitly require: an active run id, a ready formal-theory review ledger, a promotion-ready or promoted topic-completion state, at least one strategy-memory row, and human-reviewed promotion only. The docs must also state that a formal-theory projection is not a theorem certificate, not proof closure, and not eligible for `L2_auto`.</action>
  <verify>python -m pytest research/knowledge-hub/tests/test_schema_contracts.py research/knowledge-hub/tests/test_runtime_profiles_and_projections.py -q</verify>
  <acceptance_criteria>
    - research/knowledge-hub/schemas/topic-skill-projection.schema.json contains `formal_theory`
    - research/knowledge-hub/canonical/PROMOTION_POLICY.md contains `not a theorem certificate`
    - research/knowledge-hub/canonical/PROMOTION_POLICY.md contains `L2_auto`
    - research/knowledge-hub/runtime/README.md contains `formal_theory`
  </acceptance_criteria>
  <done>The formal-theory projection contract is explicit before service logic changes land.</done>
</task>

<task type="auto">
  <name>Task 2: Add contract-level tests for formal-theory projection semantics</name>
  <files>research/knowledge-hub/tests/test_schema_contracts.py, research/knowledge-hub/tests/test_runtime_profiles_and_projections.py</files>
  <read_first>research/knowledge-hub/tests/test_schema_contracts.py, research/knowledge-hub/tests/test_runtime_profiles_and_projections.py, research/knowledge-hub/schemas/topic-skill-projection.schema.json</read_first>
  <action>Add tests that validate a `topic_skill_projection` payload with `lane == formal_theory` against the schema and assert the projection contract remains human-reviewed execution memory. Use a fixture whose `status` is `blocked` or `available`, but do not let the tests imply theorem truth, `L2_auto`, or proof completion.</action>
  <verify>python -m pytest research/knowledge-hub/tests/test_schema_contracts.py research/knowledge-hub/tests/test_runtime_profiles_and_projections.py -q</verify>
  <acceptance_criteria>
    - test_schema_contracts.py contains `formal_theory`
    - test_runtime_profiles_and_projections.py contains `topic_skill_projection`
    - `python -m pytest research/knowledge-hub/tests/test_schema_contracts.py research/knowledge-hub/tests/test_runtime_profiles_and_projections.py -q` exits 0
  </acceptance_criteria>
  <done>The contract is pinned by deterministic tests before implementation proceeds.</done>
</task>
</tasks>

<verification>
- [ ] `python -m pytest research/knowledge-hub/tests/test_schema_contracts.py research/knowledge-hub/tests/test_runtime_profiles_and_projections.py -q`
</verification>

<success_criteria>
- The formal-theory projection contract is explicit in schema and docs
- The docs forbid theorem-certificate or L2_auto interpretations
- Deterministic tests pin the contract before service changes
</success_criteria>

<output>
After completion, create `.planning/phases/06-formal-theory-projection-contract/06-01-SUMMARY.md`
</output>
