---
phase: 153-hypothesis-route-transition-gate-surface
plan: 01
type: execute
wave: 1
depends_on:
  - v1.78-closure
files_modified:
  - research/knowledge-hub/knowledge_hub/runtime_read_path_support.py
  - research/knowledge-hub/knowledge_hub/runtime_bundle_support.py
  - research/knowledge-hub/knowledge_hub/topic_replay.py
  - research/knowledge-hub/runtime/schemas/progressive-disclosure-runtime-bundle.schema.json
  - research/knowledge-hub/runtime/scripts/run_hypothesis_route_transition_gate_acceptance.py
  - research/knowledge-hub/tests/test_hypothesis_route_transition_gate_contracts.py
  - research/knowledge-hub/tests/test_runtime_scripts.py
  - research/knowledge-hub/tests/test_topic_replay.py
  - research/knowledge-hub/tests/test_schema_contracts.py
  - research/knowledge-hub/README.md
  - research/knowledge-hub/runtime/README.md
  - research/knowledge-hub/runtime/AITP_TEST_RUNBOOK.md
autonomous: true
requirements:
  - REQ-HGATE-01
  - REQ-HGATE-02
  - REQ-HGATE-03
  - REQ-VERIFY-01
must_haves:
  truths:
    - extend existing route choice, checkpoint, and helper contracts instead of inventing a disconnected transition ledger
    - keep the first slice bounded to declarative transition-gate visibility rather than automatic route mutation
    - coexist with the current action queue and helper mechanisms
---

<objective>
Make the concrete gate on route transition explicit on the active topic surface
so operators can see whether yielding to the handoff candidate is blocked,
available, or waiting on a durable checkpoint before any runtime mutation.
</objective>

<tasks>

<task type="auto">
  <name>Task 1: Add hypothesis route transition-gate summary to runtime/replay surfaces</name>
  <files>research/knowledge-hub/knowledge_hub/runtime_read_path_support.py, research/knowledge-hub/knowledge_hub/runtime_bundle_support.py, research/knowledge-hub/knowledge_hub/topic_replay.py, research/knowledge-hub/runtime/schemas/progressive-disclosure-runtime-bundle.schema.json</files>
  <read_first>research/knowledge-hub/knowledge_hub/runtime_read_path_support.py</read_first>
  <action>Add one explicit route transition-gate summary derived from route choice plus checkpoint/helper state.</action>
  <verify>python -m pytest research/knowledge-hub/tests/test_hypothesis_route_transition_gate_contracts.py -q</verify>
  <acceptance_criteria>
    - runtime surfaces expose blocked versus available route transition directly
    - replay/read paths surface the route-transition gate directly
    - the gate surface coexists with route choice and helper mechanisms
  </acceptance_criteria>
  <done>The route transition-gate surface is durable and operator-visible.</done>
</task>

<task type="auto">
  <name>Task 2: Add isolated acceptance and docs</name>
  <files>research/knowledge-hub/runtime/scripts/run_hypothesis_route_transition_gate_acceptance.py, research/knowledge-hub/tests/test_runtime_scripts.py, research/knowledge-hub/tests/test_topic_replay.py, research/knowledge-hub/tests/test_schema_contracts.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/scripts/run_hypothesis_route_choice_acceptance.py</read_first>
  <action>Add one isolated acceptance lane and align docs so the route transition-gate surface is testable and discoverable.</action>
  <verify>python research/knowledge-hub/runtime/scripts/run_hypothesis_route_transition_gate_acceptance.py --json</verify>
  <acceptance_criteria>
    - docs and runbook reference the route transition-gate acceptance lane
    - isolated acceptance proves blocked versus available route-transition visibility on a temp kernel root without automatic route mutation
  </acceptance_criteria>
  <done>Phase `153` is ready to execute and verify.</done>
</task>

</tasks>
