Skip to content

v0.8.0 — evidence and approvals stay on disk

Choose a tag to compare

@cskwork cskwork released this 01 Sep 05:17
· 51 commits to main since this release

What git keeps is now the decision record

init.sh writes sixteen .gitignore lines instead of four. Per feature, git
keeps intent.md, plan.md, map.md, CLOSED, memory/, and config.md.
Everything else is evidence or working residue and stays in the working copy:
approvals/, spec.md, baseline.txt, deviations.md, evidence.md, and
harvest.md, alongside the existing scratch/ and progress.md. Each is
listed for work/ and archive/ alike, so a close does not resurrect them.

  • Gates are unaffected. check-gate.sh, status.sh, and stats.sh read
    from disk, so gate state, approval modes, and re-approval counts behave
    exactly as before. stats.sh makes no git calls at all — its header claimed
    otherwise, and that comment is now correct too.
  • Durability is what changes. A fresh clone carries no approvals, so
    re-cloning mid-feature means approving again. The audit trail is the on-disk
    .sdlc/approvals/ tree plus the agent rules. AGENTS.md rules 3 and 7, both
    READMEs, and the docs site no longer claim git history holds it.
  • Ship stages less. skills/5-ship drops .sdlc/approvals/ from the
    staged set; staging .sdlc/work/<slug>/ now yields only intent, plan, and
    map. Anything else showing up there means the project predates this release.

Upgrading an existing project

.gitignore never untracks. Re-run init.sh in the project — it reports
every already-tracked path and prints the removal command:

<kit>/init.sh .
git ls-files -ci --exclude-standard -- .sdlc | tr '\n' '\0' | xargs -0 git rm --cached --

Files stay on disk; commit the removal to stop carrying them. status.sh's
kit-drift note points at this, and close.sh stages the approvals deletion
while those paths are still tracked.

gates/selftest.sh gains test 28: the ignore set, the kept decision record,
idempotency, and the already-tracked warning.