# v1.75 Milestone Audit

Status: passed

## Scope Closed

- Phase `149`: Hypothesis Route Activation Surface

## Requirements Coverage

Score: `4/4` requirements satisfied

- `REQ-HACT-01` satisfied
  - runtime surfaces now materialize one bounded activation summary from the
    declared route of each competing hypothesis
  - evidence:
    - `research/knowledge-hub/knowledge_hub/runtime_read_path_support.py`
    - `research/knowledge-hub/knowledge_hub/runtime_bundle_support.py`
    - `research/knowledge-hub/runtime/schemas/progressive-disclosure-runtime-bundle.schema.json`
- `REQ-HACT-02` satisfied
  - replay and read-path surfaces now expose the active local route action
    versus parked-route obligations directly
  - evidence:
    - `research/knowledge-hub/knowledge_hub/topic_replay.py`
    - `research/knowledge-hub/tests/test_topic_replay.py`
    - `research/knowledge-hub/tests/test_hypothesis_route_activation_contracts.py`
- `REQ-HACT-03` satisfied
  - the route-activation surface coexists with the queue, deferred parking, and
    follow-up subtopics instead of replacing them
  - evidence:
    - `research/knowledge-hub/runtime/scripts/run_hypothesis_route_activation_acceptance.py`
    - `research/knowledge-hub/tests/test_runtime_scripts.py -k "hypothesis_route_activation_acceptance" -q`
- `REQ-VERIFY-01` satisfied
  - the milestone closes with one isolated route-activation acceptance lane
    plus targeted regression coverage
  - evidence:
    - `research/knowledge-hub/runtime/scripts/run_hypothesis_route_activation_acceptance.py --json`
    - `research/knowledge-hub/tests/test_schema_contracts.py -q`
    - `research/knowledge-hub/tests/test_aitp_service.py -k "runtime_protocol_bundle_matches_public_schema or topic_status_and_prepare_verification_surface_new_shell_fields" -q`

## Cross-Surface Integration Check

The milestone is single-phase, so the integration audit is cross-surface rather
than cross-phase:

- runtime bundle integration passed
  - `status --json` now exposes `active_research_contract.route_activation`
    with the active local hypothesis, active local action, and parked-route
    obligation lanes
- runtime protocol integration passed
  - `runtime_protocol.generated.md` now renders `## Route activation` plus the
    deferred/follow-up parked obligation sections
- replay integration passed
  - `replay-topic --json` now surfaces the same route-activation payload plus
    parked-route counts and active local action summary
- coexistence integration passed
  - the bounded acceptance lane keeps deferred buffer visibility and follow-up
    subtopic visibility intact and explicitly proves no auto-spawned child topic
- docs/test integration passed
  - kernel README, runtime README, and the runbook all reference the new
    route-activation acceptance lane and surface

## Verification Evidence

- `python -m compileall research/knowledge-hub/knowledge_hub/runtime_read_path_support.py research/knowledge-hub/knowledge_hub/topic_replay.py research/knowledge-hub/runtime/scripts/run_hypothesis_route_activation_acceptance.py research/knowledge-hub/tests/test_runtime_scripts.py research/knowledge-hub/tests/test_topic_replay.py research/knowledge-hub/tests/test_hypothesis_route_activation_contracts.py`
  - result: `compiled successfully`
- `python research/knowledge-hub/runtime/scripts/run_hypothesis_route_activation_acceptance.py --json`
  - result: `success`
- `python -m pytest research/knowledge-hub/tests/test_runtime_scripts.py -k "hypothesis_route_activation_acceptance" -q`
  - result: `1 passed, 34 deselected`
- `python -m pytest research/knowledge-hub/tests/test_topic_replay.py research/knowledge-hub/tests/test_hypothesis_route_activation_contracts.py research/knowledge-hub/tests/test_hypothesis_branch_routing_contracts.py research/knowledge-hub/tests/test_schema_contracts.py -q`
  - result: `15 passed`
- `python -m pytest research/knowledge-hub/tests/test_aitp_service.py -k "runtime_protocol_bundle_matches_public_schema or topic_status_and_prepare_verification_surface_new_shell_fields" -q`
  - result: `1 passed, 129 deselected`
- `python -m pytest research/knowledge-hub/tests/test_runtime_profiles_and_projections.py -k "projection_helpers_write_valid_outputs" -q`
  - result: `1 passed, 12 deselected`

## Accepted Open Gaps

- automatic branch spawning and multi-branch scheduling remain deferred beyond
  the explicit route-activation surface
- parked-route re-entry conditions and follow-up return contracts remain
  separate runtime surfaces rather than one hypothesis-level re-entry summary
- no broader full-suite rerun was attempted because unrelated in-flight
  working-tree changes remain present outside the `v1.75` slice
