# v1.71 Milestone Audit

Status: passed

## Scope Closed

- Phase `145`: Structured Transition And Demotion Trace

## Production Outcome

`v1.71` now closes the bounded runtime-history gap through:

- `research/knowledge-hub/knowledge_hub/runtime_projection_handler.py`
- `research/knowledge-hub/knowledge_hub/promotion_gate_support.py`
- `research/knowledge-hub/knowledge_hub/candidate_promotion_support.py`
- `research/knowledge-hub/knowledge_hub/runtime_bundle_support.py`
- `research/knowledge-hub/knowledge_hub/topic_replay.py`
- `research/knowledge-hub/runtime/scripts/run_transition_history_acceptance.py`
- `research/knowledge-hub/tests/test_transition_history_contracts.py`
- `research/knowledge-hub/tests/test_runtime_profiles_and_projections.py`
- `research/knowledge-hub/tests/test_topic_replay.py`
- `research/knowledge-hub/tests/test_runtime_scripts.py`

The milestone adds:

- one append-only `transition_history.jsonl` event log for bounded forward and
  backward layer moves
- one operator-facing `transition_history.json|md` summary surface
- one demotion-aware replay/read path through `replay-topic`
- one isolated acceptance lane for promotion rejection plus runtime resume
  backtrack history

## Verification Evidence

- contract slice:
  - `python -m pytest research/knowledge-hub/tests/test_transition_history_contracts.py -q`
  - result: `2 passed`
- low-level projection/replay slices:
  - `python -m pytest research/knowledge-hub/tests/test_runtime_profiles_and_projections.py -k "projection_helpers_write_valid_outputs" -q`
  - result: `1 passed`
  - `python -m pytest research/knowledge-hub/tests/test_topic_replay.py -q`
  - result: `2 passed`
- isolated acceptance:
  - `python research/knowledge-hub/runtime/scripts/run_transition_history_acceptance.py --json`
  - result: `success`
- runtime acceptance harness slice:
  - `python -m pytest research/knowledge-hub/tests/test_runtime_scripts.py -k "transition_history_acceptance" -q`
  - result: `1 passed, 30 deselected`

## Accepted Open Gaps

- human modification capture inside the L2 approval gate remains deferred
- full competing-hypothesis modeling remains deferred
- broader evaluator-divergence analytics remain outside this milestone
