From 10d2ef032803083744f778457b0d8574607f6a25 Mon Sep 17 00:00:00 2001 From: Remon Panman <228601219+Tradebaas@users.noreply.github.com> Date: Sat, 1 Aug 2026 15:54:38 +0200 Subject: [PATCH] fix(operations,readme): the smoke check counts every suite, not the first one Cutting v0.2.0 by following the release runbook literally is what found this. Smoke check 1 told the releaser to run node checks/check.test.mjs in the unpacked tarball and to expect "the self-tests green". That sentence was true when it was written, at v0.1.0: one file held the whole gate suite. PR #61 split it in three, and nothing came back to the runbook, so the command proves 78 of the 236 tests the gate job runs while the sentence still claims all of them. A check that overstates its own coverage is worse than no check, because it is the one a releaser trusts at the moment they stop looking. The fix is not to type the two missing filenames. That would restore the same sentence with the same clock running: the next split breaks it again, silently, and the next person to notice will also be someone who happened not to follow the instruction. So the step names no suite file at all now. It points at the gate job in .github/workflows/ci.yml, which is the list CI already keeps and the only copy that cannot drift from what actually runs, and it says out loud why the list is not repeated here, so a later editor does not helpfully inline it again. The README carried the same stale shape one sentence long, naming that single file as the way the checks test themselves. Same cause, same change: it now says every gate has to prove it fails on a violation and points at the workflow that runs those suites. Verified by following the new step in the published v0.2.0 tarball: it resolves to seven suites, 236 tests, all green, against 78 under the old wording. Traces-to: SC-6, SC-9 --- README.md | 5 +++-- docs/operations/deploy.md | 9 ++++++--- 2 files changed, 9 insertions(+), 5 deletions(-) diff --git a/README.md b/README.md index 9970f9f..789dc7c 100644 --- a/README.md +++ b/README.md @@ -101,8 +101,9 @@ records the reasoning. integrity, skill format, secrets, and more: zero model tokens spent. CI runs it on every push. A `commit-msg` hook adds the last link in the chain: every commit names the scope item it serves, so a sha resolves back to a requirement instead of to someone's memory. - The checks test themselves (`node checks/check.test.mjs`): a gate that isn't tested is false - confidence. The same directory holds `node checks/progress.mjs`: a read-only, plain-language + The checks test themselves: every gate has to prove it fails on a violation before it is + trusted, and `.github/workflows/ci.yml` runs those suites ahead of the checks, because a gate + that isn't tested is false confidence. The same directory holds `node checks/progress.mjs`: a read-only, plain-language answer to "what is done and what is left", derived from the brief, the specs and the handoff, with `--all` covering every project you have started this way. Add `--serve` and the same answer opens as a page on this machine only: the goal, the stand, the next step, which file diff --git a/docs/operations/deploy.md b/docs/operations/deploy.md index 317013b..4f3682e 100644 --- a/docs/operations/deploy.md +++ b/docs/operations/deploy.md @@ -49,9 +49,12 @@ There is no server and no build step. What ships is the repository itself, on tw working tree it was cut from: 1. Unpack the release tarball (`curl -sL https://github.com/Tradebaas/Groundwork/archive/refs/tags/vX.Y.Z.tar.gz`) into a - scratch directory and run `node checks/check.test.mjs` and `node checks/check.mjs` inside it. - Expect the self-tests green, the checks green, and enforcement reporting hooks and CI **not** - armed with the two commands that arm them: that is what a fresh copy should say. + scratch directory. Inside it, run **every** self-test the `gate` job lists in + `.github/workflows/ci.yml`, then `node checks/check.mjs`. The list lives there and not here + on purpose: this step named one suite file until v0.2.0, and a split had made that a third + of the tests while the sentence still said all of them. Expect the self-tests green, the + checks green, and enforcement reporting hooks and CI **not** armed with the two commands + that arm them: that is what a fresh copy should say. 2. `.claude/skills` is still a symlink to `../.agents/skills` in the unpacked archive. An archive that flattened it would hand every copy a duplicated skill library. 3. `node checks/progress.mjs` in that copy ends with `now: run begin`.