The pre-grilling V2 spec modeled V2 as a simplification of 'V1,' conflating two distinct things: V1-original (42 agents, 12 HITL checkpoints, 5 phase orchestrators — described in docs/pipeline/overview.md) and the course-generation support manifest (8 agents in library-course-generation.yaml). That support manifest had already eliminated V1-original's complexity; V2 didn't need to re-do that work.
Three forces drive this ADR:
It treated V1-original's complexity as if it were the migration source. The grilling re-baselined V2 against collapsed, which has very different implications — collapsed has 5 LLM agents (including an Evaluator), 3 KB agents, and the locked milestone architecture.
Operator-confirmed: workflow_node_states.output (JSONB) + spec_files.status + per-table state coordination breaks too often. Symptoms include schema drift between read sites, opaque diffs in audit logs, RLS complexity from SECURITY DEFINER helpers, and debugging difficulty. The filesystem substrate replaces all this with markdown files that diff in git log, render in cat, and have no schema-drift surface beyond the contract linter.
08-milestone-architecture.md already defines the milestones, gates, state machine, and 3-zone UI. V2's job is to implement that shape on a new substrate — not to redesign it.
V2 is architected as the next-generation migration from collapsed, with three substrate-level commitments (D1–D5):