Static copy
Copied from docs/en/governance/m6-exit-gate.md in https://github.com/poppy-team/prumo (MIT). Pinned to revision e91694d3959be1ed92757b34063efe0b2191821f, blob 0ae8151ecf7db725da0e5bdeac147fb1e2a33fbb. The source repository remains canonical; this copy is refreshed through a sync pull request, not live.
Status: COMPLETE (M6 Exit Gate Passed)
M6 exit gate (per docs/development/phases.md): a new project can go from initial intent to implementation-ready via interview without a manual megaprompt; Goal-specific planning closes only relevant gaps; decisions/open questions carry authority and provenance; resume does not depend on transcript; docs/readiness/governance feedback loop works; question/decision evals reach the approved baseline; no agent suggestion is silently promoted.
TestDogfoodZeroToReady (cmd/prumo/plan_z2r_test.go) drives the full loop through run(): blocked readiness → questions → answered decisions → proposed delta → governance patch → applied delta → passing readiness → blueprint proposal.examples/living-plan-sample/ ships at the ready state with a replayable seven-step recipe (README.md).docs readiness --goal G-SAMPLE transitions from {"ready": false, "blocking_contracts": ["project.scope"]} to {"ready": true, "coverage": [[product.vision, implementation-ready], [project.scope, implementation-ready]]}.prumo-agent plan --goal <id>, docs readiness --goal <id>; the documentation engine ignores unrelated contracts when computing coverage for a Goal (M5 regression suite).product.vision and project.scope; unrelated contracts stay untouched.internal/planning/decision.go, resolver internal/planning/resolver.go, E-G02/E-G03).internal/planning/question.go, E-G01)..ai/plan/sessions/<id>.json as session.Checkpoint() (internal/app/sessionstore.go, E-G07).prumo-agent plan resume recompiles context from canonical decisions + open questions + checkpoint (internal/app/resume_test.go, internal/planning/session_test.go); no transcript is reintroduced.TestDogfoodZeroToReady and the sample README steps: readiness → questions → answered decisions → delta propose → repository governance authoring → delta apply (records decision evidence) → readiness recompute → goal/plan proposal.plan delta [--apply] never writes canonical docs; governance authoring + README documents that flow (E-G05/E-G09).go test -race ./....agent-suggestion classifications never promote to decisions and keep the question open (answer authority enforcement in internal/planning + cmd/prumo/plan_z2r_test.go: TestPlanAnswerNeverPromotesAgentSuggestion, TestPlanAnswerUnresolvedKeepsQuestionOpen).examples/living-plan-sample/ — committed sample, ready state, replay README, and the applied delta record docs/governance-delta-applied.json.plan questions, plan answer, plan decisions, plan delta [--apply], plan blueprint [--plan], docs readiness --goal (E-G08 JSON envelope + text modes).go test -race ./... — pass across all packages.go vet ./..., gofmt -l . — clean.pytest -q — 127 pass (Python v0.3 oracle preserved).main via squash PRs: E-G01 (#24), E-G02 (#25), E-G03 (#26), E-G04 (#27), E-G05 (#28), E-G06 (#29), E-G07 (#30), E-G08 (#31), E-G09 (#32).docs/runtime/living-plan.md; samples/dogfood under examples/living-plan-sample/.