Development record
ahoy install writes its scaffolded guard hooks into an adopted repository only when they are missing (internal/core/ahoy/banlist_scaffold.go, the banlist.hook_missing branch through createContained), and never rewrites an installed v1 hook. So a repository that ran ahoy before a fix to a scaffolded hook keeps the old text: after iss-2610111820465940 and iss-2610112148115897 make the core.hooksPath advice conditional, every earlier adopter's committed .githooks/pre-commit and prepare-commit-msg keep the unconditional header, and ahoy reports no gap for it. Found by the ruthless review of the lane for iss-2610111820465940.
ahoy install writes its scaffolded guard hooks into an adopted repository only when they are missing (internal/core/ahoy/banlist_scaffold.go, the banlist.hook_missing branch through createContained), and never rewrites an installed v1 hook. So a repository that ran ahoy before a fix to a scaffolded hook keeps the old text: after iss-2610111820465940 and iss-2610112148115897 make the core.hooksPath advice conditional, every earlier adopter's committed .githooks/pre-commit and prepare-commit-msg keep the unconditional header, and ahoy reports no gap for it. Found by the ruthless review of the lane for iss-2610111820465940.
Frontmatter
| id | iss-2610112155207746 |
|---|---|
| type | issue |
| lifecycle | open |
| severity | minor |
.abcd/work/issues/open/iss-2610112155207746-ahoy-install-writes-its-scaffolded-guard.md
open on GitHub ↗ · commit history ↗
mentions2
- iss-2610111820465940The pre-commit hook ahoy install scaffolds into adopted repositories (internal/core/ahoy/defaults/pre-commit, header lines 8-10) still tells every clone to run 'git config core.hooksPath .githooks' unconditionally, which shadows a foreign global hooks dispatcher instead of having it call .githooks/. A third sibling of the advice iss-2610101903385281 made conditional in CONTRIBUTING.md and the commit-msg hook; found by that lane's review (run-2610111657473488, PR #939).
- iss-2610112148115897The prepare-commit-msg hook ahoy install scaffolds into adopted repositories (internal/core/ahoy/defaults/prepare-commit-msg, header lines 20-22) still tells every clone to run 'git config core.hooksPath .githooks' unconditionally, shadowing a foreign global hooks dispatcher. The fourth sibling of the advice iss-2610101903385281 made conditional, found by the lane for iss-2610111820465940 (the scaffolded pre-commit). A sweep of every core.hooksPath mention on main at 2026-10-11 found no other unconditional instruction.