fix(toolkit): one Git policy, build-loop laws, read-only reviewer, anchored merge guard (gh-#753, #754, #755) - #762
Merged
Conversation
…chored merge guard (gh-#753, gh-#754, gh-#755) gh-#753: git-workflow is now the single Git policy (GitHub + gh, branches only, explicit staging, no trailers, merge/tag/release = Dean). git-commit, quick-fix, build-loop and the README reference it instead of restating a Gitea-era trunk lane with -am and a hardcoded co-author. gh-#754: build-loop carries the laws learned across fifteen epics: green full-solution baseline in preflight, quote-don't-paraphrase briefs with verified citations, a three-FAIL circuit breaker that stops and reports, PASS-WITH-NOTES so comment-only findings never cost a build round, smoke teardown by port, next-build file restore, pending-spec grep before ticking, explicit git add, scratch excludes, worktree prune at finish. gh-#755: reviewer disallows Write/Edit/NotebookEdit and says honestly that Bash is read-only by rule, with tree-writing commands a self-FAIL. Verdict scale gains PASS-WITH-NOTES; full-solution test rule added. gh-#751 follow-up: the merge guard moves to .claude/hooks/merge-guard.sh and matches the leading verb of each command segment, so grep/echo/sed that mention "git tag" or a `git pull origin main` after a branch push no longer trip it. 22 cases tested. Refs gh-#753, gh-#754, gh-#755, gh-#751
Merged
3 tasks
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to subscribe to this conversation on GitHub.
Already have an account?
Sign in.
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
🔧 What
gh-#753 Git policy —
git-workflow/SKILL.mdrewritten as the single policy: GitHub +gh,gh-#Nrefs, branches only (no trunk lane), explicitgit add, noCo-Authored-By/session trailers, merge/tag/release/push-main reserved for Dean.git-commit,quick-fix,build-loop, README now defer to it. Gitea,genwave-2.0tag,-am, hardcoded co-author all gone.gh-#754 build-loop laws — preflight green baseline on the full solution (
MaxParallelThreads=3note); brief laws (quote don't paraphrase, verify every citation, name the full test command); three-FAIL circuit breaker that stops and reports to Dean;PASS-WITH-NOTEShandled by the orchestrator without a build round; smoke teardown by port +next buildrestore +If-Match;pending: T<n>grep and noAssert.Failstubs before ticking; explicit staging; scratch excludes;git worktree pruneat finish.gh-#755 reviewer —
disallowedTools: Write, Edit, NotebookEdit; honest wording (Bash is read-only by rule, tree writes are a self-FAIL); verdict scalePASS | PASS-WITH-NOTES | FAIL; full-solution rule; cite-and-quote rule.gh-#751 follow-up — merge guard moved to
.claude/hooks/merge-guard.sh; matches the leading verb of each; && || |segment. Blocksgh pr merge,gh release create,git tag <name>,git push --tags, push tomain/:main/refs/heads/main,--delete. Allowsgit tag -l/--list/--contains, pushes to other branches, and any grep/echo/sed that merely mentions those strings. 22 cases tested.🧪 How to verify
echo '{"tool_input":{"command":"gh pr merge 1"}}' | .claude/hooks/merge-guard.sh; echo $?→ 2echo '{"tool_input":{"command":"grep -rn \"git tag\" docs/"}}' | .claude/hooks/merge-guard.sh; echo $?→ 0build-loop.mdsteps 1, 3, 5, 6Prompt + hook text only; no product code. Low, git revert.
Closes #753
Closes #754
Closes #755