Filed by the triage seat (session session_01Kktexqp6uVuFMztvvTMf3V, 2026-08-24 concentration round) as the objectstack half of objectstack-ai/objectui#5754, whose measurement covered both repos:
grep -rn 'selftest' .github/workflows/ → no matches (objectstack)
What
.claude/hooks/ ships hermetic self-test matrices (guard-shared-stash.selftest.sh, the guard-main-checkout pair) — cheap by design: no install, no build, no network, jq + git only, exit 0 = all cases hold. Their headers instruct re-running after touching the hook; nothing runs them automatically, so a broken guard (the enforcement behind worktree-first and the stash ban) lands green.
Fix shape
Add a small CI step (lint.yml family) that executes each .claude/hooks/*.selftest.sh present. The workflow edit is NOT governed surface; the hooks themselves are (.claude/**) — this card wires execution only, ⛔ it does not modify any hook. Dedup: no open objectstack card mentions the selftests (control query guard hits 7 open titles).
Sibling: objectstack-ai/objectui#5754 (same wiring, that repo's workflows).
Generated by Claude Code
Filed by the triage seat (session
session_01Kktexqp6uVuFMztvvTMf3V, 2026-08-24 concentration round) as the objectstack half of objectstack-ai/objectui#5754, whose measurement covered both repos:What
.claude/hooks/ships hermetic self-test matrices (guard-shared-stash.selftest.sh, theguard-main-checkoutpair) — cheap by design: no install, no build, no network,jq+gitonly, exit 0 = all cases hold. Their headers instruct re-running after touching the hook; nothing runs them automatically, so a broken guard (the enforcement behind worktree-first and the stash ban) lands green.Fix shape
Add a small CI step (lint.yml family) that executes each
.claude/hooks/*.selftest.shpresent. The workflow edit is NOT governed surface; the hooks themselves are (.claude/**) — this card wires execution only, ⛔ it does not modify any hook. Dedup: no open objectstack card mentions the selftests (control queryguardhits 7 open titles).Sibling: objectstack-ai/objectui#5754 (same wiring, that repo's workflows).
Generated by Claude Code