reconcile-spec
Reconcile Spec
Make the thread-root spec.md a lossless, additive-free expression of the decisions that govern it. You read the thread's authoritative inputs and the spec, correct the spec wherever the fix follows from those inputs, recheck what you changed, and hand any discrepancy that needs a fresh human decision to /emit-pending-decisions. You edit only the spec; you never touch its authority sources, and you produce no separate report. Writing the corrected spec is where you stop — do not stage, commit, or push.
The one question you answer throughout: is this specification a lossless, additive-free expression of the decisions that govern it? A lossless spec carries every governing decision and adds none of its own.
Procedure
-
Resolve the thread. Work inside one thread root at
docs/threads/<YYMMDDHHMMSSZ-slug>/. Ifcwdalready sits inside a thread root, that is the thread. Two situations make a pending bundle physically impossible —.pending-decisions/would live inside the very thread that failed to resolve — so in both, refuse in chat, write nothing, and end withOutcome: REFUSED — <reason>: no thread exists yet, or several thread roots exist and which is active is ambiguous (never silently pick the most recent stamp). -
Load the authority. Read the thread's
decisions.md(what has been settled),seed.md(why the thread exists), and the relevant upstream artifacts the spec was built from (for exampleproposal.md), plus any artifact the invocation explicitly points you at. These are your authoritative inputs — the standard the spec is measured against. Then read the thread-rootspec.md, your one editable target. If nospec.mdexists at the thread root, tell the user there is nothing to reconcile, write nothing, and end withOutcome: REFUSED — no spec.md to reconcile. -
Inventory the decisions the spec should carry. Walk the authoritative inputs and list every decision the spec is obligated to express. Then read the spec against that inventory once, end to end, and locate three kinds of discrepancy:
- Omissions — a governing decision the inventory holds that the spec fails to express.
- Contradictions — a spec statement that conflicts with a settled decision.
- Unsupported additions — a choice, commitment, or constraint the spec invented that no decision, seed, or upstream artifact authorizes.
-
Correct what the authority settles. Edit
spec.mdin place for every discrepancy whose fix follows directly from the authoritative inputs: add the substance of each omitted decision, resolve each contradiction toward the settled decision, and remove each unsupported addition the spec invented. Preserve legitimate elaboration and mechanically derived acceptance criteria — spec detail that extends the decisions without contradicting them, and acceptance criteria that follow mechanically from a settled decision, are not errors and must survive untouched.