refactor(pipeline): specs/plans are gitignored working files, never committed
Per-cycle specs and plans stop being git-tracked commit-then-git-rm artefacts and become git-ignored working files: created on disk for the active cycle, read across sessions from the working tree, and shell-rm'd at cycle close by audit. Nothing is committed, so there is no git-history copy — the durable record of a cycle's intent is the design ledger only, and no durable artefact (code, test, doc, ledger) may cite a spec/plan by number or path. - conventions/pipeline/design/README: invert the git-tracked -> git-rm -> git-history-recovery model to gitignored -> shell-rm -> ledger-only. - naming: drop the NNNN file counter; files are slug.md (fieldtest specs keep a fieldtest- prefix as the cycle-close discriminator). - cycle number: separated from the (now-gone) file number, sourced from the feat(NNNN)/audit(NNNN) commit subjects, which cycle commits carry. - specify/planner/fieldtest/fieldtester: no commit step; fieldtest splits fixtures (committed as code) from its spec (gitignored), with the cross-cycle rule that a fieldtest- spec belongs to the next cycle. - boss: auto-sign auditability moves from the (boss-signed) commit subject to the run's reference issue; rollback reverts only code. - audit: new Step 5 shell-rm's the cycle spec+plan after the architect reads them, sparing fieldtest- specs. Companion machine config (outside this repo): the global git excludes (~/.config/git/ignore) gains docs/specs/ and docs/plans/ so the ignore applies to every project at once.
This commit is contained in:
+11
-4
@@ -120,10 +120,17 @@ Contract below. The agent picks 2-4 examples (one per axis
|
||||
the cycle touched; fewer loses the signal on variation, more
|
||||
overflows one readable report), implements them as downstream
|
||||
consumers, runs them, classifies findings, and writes the
|
||||
spec. All artefacts (fixtures + spec) stay in the working tree
|
||||
as unstaged changes; the orchestrator commits them after
|
||||
reviewing the report (suggested commit subject:
|
||||
`fieldtest: <cycle> — <N> examples, <K> findings`).
|
||||
spec. The two artefact kinds part ways at commit: the **fixtures are
|
||||
committed as normal code** (they are consumer test assets — suggested
|
||||
subject `fieldtest: <cycle> — <N> examples, <K> findings`), while the
|
||||
**fieldtest spec is a git-ignored working file that is never committed**.
|
||||
|
||||
The fieldtest spec is written at cycle N's close but is an **input to
|
||||
the next cycle's `planner`**, so it belongs to cycle N+1, not N: the
|
||||
cycle-close sweep spares it (its `fieldtest-` filename prefix is the
|
||||
discriminator) and it is shell-`rm`'d at N+1's close alongside N+1's own
|
||||
spec and plan. If the consuming cycle closes without a `planner` (e.g. a
|
||||
milestone close), the orchestrator discards it explicitly.
|
||||
|
||||
## Handoff Contract
|
||||
|
||||
|
||||
@@ -211,14 +211,15 @@ not merged.
|
||||
|
||||
### Phase 5 — Write the spec, hand back
|
||||
|
||||
Write the fieldtest spec under `docs/specs` with a name
|
||||
following the `NNNN-slug.md` convention (4-digit prefix,
|
||||
per-directory; see `docs/conventions.md`). Use the spec
|
||||
template below. Leave all artefacts (the fixtures and the
|
||||
spec file) in the working tree as unstaged changes. You do
|
||||
NOT commit — the orchestrator commits after reading the
|
||||
end-report (suggested commit subject:
|
||||
`fieldtest: <cycle> — <N> examples, <K> findings`).
|
||||
Write the fieldtest spec under `docs/specs` named
|
||||
`fieldtest-slug.md` (the `fieldtest-` prefix is mandatory — it is the
|
||||
discriminator that spares the spec from the cycle-close sweep; no numeric
|
||||
prefix, see `docs/conventions.md` § Naming). Use the spec
|
||||
template below. Leave all artefacts in the working tree as unstaged
|
||||
changes. You do NOT commit — the orchestrator commits the **fixtures**
|
||||
as code after reading the end-report (suggested subject
|
||||
`fieldtest: <cycle> — <N> examples, <K> findings`); the fieldtest
|
||||
**spec** is git-ignored and is never committed.
|
||||
|
||||
Report `DONE` with the carrier (see Output format).
|
||||
|
||||
|
||||
Reference in New Issue
Block a user