job4: SPEC-01 make-test-includes-all-suites

Makefile test target now loops lib/tests/run-*.sh in addition to
*.test.sh + gitflow-test.sh, special-casing run-release-candidate.sh
with RC_WORK=$(mktemp -d) RC_TAG=1. Closes J4-01 (CRITICAL): the 5
run-*.sh suites (memory-commit 13, doc-commit 32, doc-shape 19,
reconcile 20, release 5/5) were excluded from the repo's only
aggregate gate.

Mutation (scratch copy, never the working tree): dropped the
`-- "${changed[@]}"` pathspec from lib/memory-commit.sh:86's commit
call. RED: run-deterministic.sh T2 fails (pre-staged dangling code
gets embarked instead of staying staged), make test exits 2.
GREEN: real repo unmutated, make test exits 0, all suites incl. the
5 previously-excluded ones (RESULT: 13/32/19 passed, 20 GREEN, 5
GREEN RC_TAG=1).
This commit is contained in:
Bastien Chanot
2026-07-06 18:45:46 +02:00
parent 9a178d3aba
commit b0e050630c
+7 -3
View File
@@ -22,9 +22,13 @@ onboard: link ## Onboard an existing project (run from the project directory)
@echo "Open Claude Code in your project directory and run: /onboard" @echo "Open Claude Code in your project directory and run: /onboard"
@echo "Or with hints: /onboard Python FastAPI monorepo" @echo "Or with hints: /onboard Python FastAPI monorepo"
test: ## Run deterministic tests (lib/tests/*.test.sh + lib/gitflow-test.sh) test: ## Run deterministic tests (lib/tests/*.test.sh + lib/gitflow-test.sh + lib/tests/run-*.sh)
@fail=0; for t in lib/tests/*.test.sh lib/gitflow-test.sh; do \ @fail=0; for t in lib/tests/*.test.sh lib/gitflow-test.sh lib/tests/run-*.sh; do \
echo "== $$t"; bash "$$t" || fail=1; done; exit $$fail echo "== $$t"; \
case "$$(basename "$$t")" in \
run-release-candidate.sh) RC_WORK=$$(mktemp -d) RC_TAG=1 bash "$$t" || fail=1 ;; \
*) bash "$$t" || fail=1 ;; \
esac; done; exit $$fail
profile: ## Run profile.sh (usage: make profile cmd="set design") profile: ## Run profile.sh (usage: make profile cmd="set design")
@bash lib/profile.sh $(cmd) @bash lib/profile.sh $(cmd)