100%

Walk reconciliation: hard-block until forensic review clears

Goal

Reconcile the /continue-roadmap walk so a zeroed plan CANNOT be verify-first-completed before forensic review runs (locked: hard-block) — the structural cure for the exact failure that motivated this plan. Add a forensic_reviewed plan.json marker (reset on zero, set on clean forensic /review-plan); a route_walk precondition refuses to serve/complete a zeroed plan’s work_items until it is set; and INVERT roadmap.py:680 so zeroed sections get the MOST pre-work review, not the least.

Implementation Sketch

Verified failure surface: roadmap.py:680 requires not section_zeroed for the pre-work /review-section dispatch (zeroed sections SKIP review); route_walk serves verify-first universally and treats zeroed as awareness-only (route_walk.py:941-948). zero_plan.reset_plan_to_not_started stamps zeroed:true (route_v7.py:602) — it must also reset forensic_reviewed:false. The marker write goes through the sanctioned plan.json write API (mutate_routing_state).

Spec References

scripts/plan_corpus/schemas/v7/plan-routing.schema.json (+ forensic_reviewed top-level bool); scripts/plan_corpus/route_v7.py:602 (reset_plan_to_not_started sets forensic_reviewed=false); scripts/plan_orchestrator/route_walk.py (serve/complete gate on zeroed AND not forensic_reviewed); scripts/plan_orchestrator/roadmap.py:680 (invert the not section_zeroed pre-work skip); the forensic /review-plan clean exit (sets forensic_reviewed=true).

Work Items

  • Add forensic_reviewed: bool to the v7 plan.json schema; route_v7.reset_plan_to_not_started sets it false alongside zeroed=true (zeroing arms scrutiny). Default false on any plan that lacks it.
  • route_walk serve/complete gate: when plan zeroed AND not forensic_reviewed, REFUSE to serve/complete a work_item — emit an exit/halt (exit_kind forensic_review_required) naming the cure (run forensic /review-plan). Keyed on the plan, parallel-safe.
  • Invert roadmap.py:680: a zeroed section gets the pre-work /review-section dispatch (most review). Reconcile with 05.2 so the per-section pre-work review and the whole-plan hard-block do not double-fire.
  • Forensic /review-plan clean terminal (03/04 complete) sets forensic_reviewed=true via the sanctioned plan.json write API (mutate_routing_state) — clearing the gate so the walk resumes.
  • pytest scripts/plan_orchestrator/tests/test_zeroed_walk_hard_block.py: a zeroed plan blocks serve/complete with forensic_review_required until forensic_reviewed flips; after it flips, the walk serves normally. Semantic pin: the original failure (verify-first-complete a zeroed item with no review) is now impossible.

Fresh intel (regenerated)

{ “schema_version”: 1, “target”: { “kind”: “plan-section”, “ref”: “zeroed-plan-forensic-review/s-c054bd73” }, “generated_at”: “2026-06-20T03:40:24.465179+00:00”, “graph_state”: { “head_sha”: “bd1ba13c”, “last_code_import_at”: “2026-06-20T03:37:39.887Z”, “embedding_stale”: false, “insights_stale”: false, “cpg_stale”: false }, “surfaces”: {}, “summary”: “intel-package[plan-section:zeroed-plan-forensic-review/s-c054bd73] agent-authored dossier”, “degraded”: false, “dossier”: { “objective_symbols”: [], “tiers”: {}, “agent_authored”: true, “difficulty”: { “class”: “routine”, “research_online”: false, “research_mode”: “auto”, “signals”: [], “plan_dir”: “/home/eric/projects/ori_lang/plans/zeroed-plan-forensic-review” } } }

(full dossier: continue-roadmap-walk-hard-block-gate—s-c054bd73.intel.json)