fix(pipeline): complete the gitignored-specs refactor (review gaps)
An adversarial review of 08bc2aa found three gaps:
- templates/CLAUDE.md.fragment still described the OLD git-tracked /
git-rm-at-close model verbatim — the worst place to miss it, since new
projects import this fragment into their CLAUDE.md. Rewritten to the
gitignored / shell-rm / ledger-only model.
- INSTALL.md still cited "4-digit naming" — now slug-only.
- The fieldtest cross-cycle deletion rule was self-defeating: it keyed
the spare/delete decision on the permanent fieldtest- prefix, which
cannot encode "spare once, then delete." Because fieldtest runs only
AFTER audit closes, the fresh fieldtest spec never exists at the
cycle-close sweep, so the rule is simply "audit discards every
working-tree spec/plan"; the spent fieldtest spec present at N+1's
close was already consumed and goes with the rest. The prefix is now
only a working-tree label, not a delete discriminator. Reconciled
across audit, conventions, pipeline, fieldtest, fieldtester.
This commit is contained in:
+12
-9
@@ -125,11 +125,12 @@ The orchestrator picks per item:
|
||||
### Step 5 — Discard the cycle's spec and plan
|
||||
|
||||
Once the cycle is drift-clean (or the drift is ratified) and the
|
||||
architect has read the spec, the cycle's spec and plan have served their
|
||||
purpose. Discard them from the working tree with a plain shell `rm`:
|
||||
architect has read the spec, the working-tree spec and plan have served
|
||||
their purpose. Discard **every** spec/plan file present in the working
|
||||
tree with a plain shell `rm`:
|
||||
|
||||
```
|
||||
rm -f docs/specs/<slug>.md docs/plans/<slug>.md
|
||||
rm -f docs/specs/*.md docs/plans/*.md
|
||||
```
|
||||
|
||||
This is a shell delete, NOT `git rm` — the files are git-ignored and were
|
||||
@@ -138,12 +139,14 @@ only code and ledger changes. **Ordering is load-bearing:** the
|
||||
architect's read (Step 1) must precede this delete, because a git-ignored
|
||||
spec has no `git show` recovery once it is gone.
|
||||
|
||||
**Spare any `fieldtest-`-prefixed spec.** A `fieldtest-<slug>.md` under
|
||||
`docs/specs` belongs to the *next* cycle (it is the input to its
|
||||
`planner`), so it is not this cycle's to discard — leave it for the next
|
||||
cycle's close. If this cycle is itself a milestone close with no
|
||||
following `planner`, discard the fieldtest spec too (see
|
||||
`../fieldtest/SKILL.md`).
|
||||
Deleting *everything present* is correct, not over-broad: `fieldtest`
|
||||
runs only **after** audit closes clean, so this cycle's own fieldtest
|
||||
spec does not exist yet at this point. The only `fieldtest-<slug>.md`
|
||||
that can be present here is a spent one — written after the *previous*
|
||||
cycle's close and already consumed as this cycle's `planner` input — so
|
||||
it too should go. There is nothing to spare: the newly-written fieldtest
|
||||
spec appears *after* this step and survives until the next cycle's close,
|
||||
when this same sweep removes it.
|
||||
|
||||
## Handoff Contract
|
||||
|
||||
|
||||
Reference in New Issue
Block a user