| type | ProcessSpec | |
|---|---|---|
| summary | Defines what is and is not editable on a complete or archived effort, and how follow-on efforts pick up where prior efforts closed. Currently proposed: enforcement tooling for the post-closure-edit guardrails is still pending. | |
| id | SPEC-0051 | |
| spec-status | proposed | |
| last-updated | 2026-04-30 | |
| aliases |
|
Proposed, not yet active. The contract below is the intended target shape for closure immutability and follow-on-effort handoff. Agents reading this spec should follow its rules where they are unambiguous (do not reopen complete efforts; create fresh efforts for new asks against delivered specs), but treat enforcement gates and tooling guardrails (the (post-closure: <reason>) prefix convention, automated diffing of closed efforts, etc.) as future work. This spec moves to active once the supporting tooling lands; the current honor-system mode is acknowledged.
A complete or archived effort is historical record. Once closed, an effort is not the right place to land new behavior, new scope, or revised plans — those belong in a follow-on effort. This spec defines exactly which post-closure edits are still permitted, which are forbidden, and how follow-on efforts pick up where prior efforts closed.
The intent is simple: closed efforts are evidence. They should remain trustworthy as a record of what was scoped, planned, executed, audited, backported, and compounded at the time. Skills that route by lifecycle state — effort-new, specify, backport, alignment-audit, rhizome-review-feedback — depend on closure being a real boundary, not a soft one.
- keep
completeandarchivedefforts trustworthy as historical record - give follow-on work a deterministic home rather than an in-place rewrite of the prior effort
- make post-closure edits explicit and auditable (
(post-closure: ...)provenance) instead of silent - close the long-standing gap that "what an agent should NEVER touch on a
status: completeeffort" was never written down
- forbidding all edits to a closed effort (broken-link repairs and provenance cross-links remain allowed)
- replacing the closure procedure in SPEC-0002 effort lifecycle (this spec layers on top of it)
- modeling effort cancellation as a separate status (cancellations land in
archivedwith a Deviation entry)
- A
completeorarchivedeffort is treated as historical record. The fields and sections enumerated under "Allowed post-closure edits" below are the only legitimate places to edit a closed effort. Every other edit is forbidden. Plan,Scope,Spec Set (Frozen),Stories In Scope (Frozen),Spec Coverage Checklist,Closure Checklist,Original Intended Delivery,Actual Delivered,Status,id,created-at,name,summary, andplan-approved-byare read-only after closure. Do not retroactively tick checklist items, rewrite the plan, or rename the effort.Execution Notes,Deviations, andCompounding Follow-upsremain append-only after closure. Late evidence may still land there, but every post-closure entry must be prefixed with(post-closure: <reason>)so the closed-vs-late split stays legible.status: complete → archivedis the only status transition allowed after closure, and only when the effort should remain discoverable but should not be treated as a live execution surface (e.g. retired specs, cancelled work that was already closed-as-complete). Archival never reopens an effort.- When a new ask lands against a delivered spec slice, create a fresh effort whose
Stories In Scope (Frozen)reselects the relevant ids. Do NOT reopen the prior effort. The prior effort stayscomplete(orarchived); the follow-on effort owns the new scope. - A follow-on effort updates each carried-forward story's
effort:field (when present in repo conventions) so the spec points to the currently active effort, not the closed predecessor. The closed predecessor'sStories In Scope (Frozen)does not change. - Broken-link repairs in any closed effort's body are allowed when the underlying note has been moved or renamed. Such repairs preserve the original prose intent; do not edit the surrounding sentence.
- Findings that materialize after closure (security review, late audit, retro feedback) land in a follow-on effort's body, not the closed effort's
Plan. The follow-on effort cites the closed effort inSpec Set (Frozen)companion text or in itsExecution Notes.
- Prefer
archivedover deleting closed efforts; provenance survives even when the work is no longer relevant. - When a closed effort's spec slice gets a new ask, link the prior effort from the follow-on effort's
Execution Notes("continues from EFF-0008's …") so navigation forward and back stays cheap. - When in doubt about whether an edit is "broken-link repair" versus "rewriting history," default to opening a Deviation in a follow-on effort and letting the closed effort be.
These are the only edits permitted on a complete or archived effort:
status: complete → archived(one-way; never reopen).- Append-only entries to
Execution Notes,Deviations, orCompounding Follow-ups, each prefixed with(post-closure: <reason>). - Broken-link repairs in any section's wikilinks/embeds when the underlying note has been moved or renamed. Repairs preserve the surrounding prose.
- Provenance cross-links from a follow-on effort (the follow-on cites the closed effort; the closed effort is not edited to add the citation).
Any other edit — checklist re-tick, plan rewrite, scope addition, summary rewrite, frontmatter status reopen, etc. — is forbidden. If the work needs revisiting, open a follow-on effort.
When new work lands against a delivered or partially-delivered spec slice:
- Create a fresh effort via
effort-new. - Freeze a NEW selection of stories. The selection may include:
- newly added
readystories on the same spec, - stories that were carried forward unsatisfied from the prior effort (already moved back to
readyordraftby the prior closure), - previously-
satisfiedstories whose AC has been edited and the story has been moved back toreadyfirst (see story lifecycle / mid-effort acceptance-criterion changes).
- newly added
- Update each carried-forward story's
effort:field (where the repo uses it) to point to the new effort. The closed predecessor'sStories In Scope (Frozen)is NOT modified. - Cite the closed predecessor from the follow-on effort's
Execution Notesso navigation stays cheap.
- whether the repo wants a stronger automated guardrail (validation check) that rejects post-closure edits to forbidden sections, beyond the existing
frozen_scope_driftcheck covering live efforts; today this spec is honor-system plus alignment-audit - whether
archivedshould require a Deviation entry recording the reason, or whether(post-closure: archived because ...)execution-note prefix is enough