100%

All-section /review-section fan-out (forensic-seeded)

Goal

Build the all-sections fan-out that does NOT exist today: forensic /review-plan enumerates EVERY section and drives a per-section /review-section, each seeded with that section’s relevant dead-ends/evolutions from the dossier (so the section review is forensic, not blind). Replaces the current ‘review one section, only when not zeroed’ model for a zeroed plan.

Implementation Sketch

Today /review-section runs one section per invocation (review-section/SKILL.md prepare —section ); the only fan-out is /continue-roadmap’s pre-work loop, ONE section at a time, AND gated on not section_zeroed (roadmap.py:680). No all-sections sweep exists. The fan-out loop is most naturally emitted from review_plan.py forensic mode as per-section dispatch envelopes with post_dispatch_resume chaining (mirrors the existing dispatch+resume contract).

Spec References

scripts/plan_orchestrator/review_plan.py (forensic-mode fan-out loop); scripts/review_section_runtime/api.py (prepare_review/close_review, invoked per section); the dossier (02) supplies per-section seed findings; .claude/skills/review-plan/SKILL.md (consume per-section returns + advance).

Work Items

  • review_plan.py forensic mode: enumerate ALL sections (via the sanctioned section roster reader) and emit a per-section dispatch next_action (next_skill=review-section, arg=‘<plan_dir> <body_ref>’) with post_dispatch_resume chaining to the next section; terminal forensic exit when the last section’s review returns.
  • Seed each per-section /review-section dispatch with that section’s relevant dossier findings (dead-ends/evolutions whose clause/slug touches the section), so the section reviewer reasons forensically. SSOT: the seed is read from the 02 dossier, never recomputed.
  • Surface-skill continuation: review-plan/SKILL.md consumes each /review-section structured exit, appends its verdict to the dossier (01), and executes the post_dispatch_resume to the next section (no self-driven loop; script owns sequencing per workflow-ownership.md §1).
  • pytest scripts/plan_orchestrator/tests/test_forensic_all_section_fanout.py: a multi-section zeroed fixture fires /review-section for EVERY section exactly once and records each verdict to the dossier; neg pin = a section omitted from the roster is detected.

Fresh intel (regenerated)

{ “schema_version”: 1, “target”: { “kind”: “plan-section”, “ref”: “zeroed-plan-forensic-review/s-9d90aa08” }, “generated_at”: “2026-06-20T02:59:09.024007+00:00”, “graph_state”: { “head_sha”: “e4b7c39a”, “last_code_import_at”: “2026-06-20T02:58:45.63Z”, “embedding_stale”: false, “insights_stale”: false, “cpg_stale”: false }, “surfaces”: {}, “summary”: “intel-package[plan-section:zeroed-plan-forensic-review/s-9d90aa08] 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: all-section-review-section-fanout—s-9d90aa08.intel.json)