mirror of
https://github.com/MBombeck/HealthLog.git
synced 2026-11-07 04:12:04 +00:00
chore(hooks): reject tooling co-author trailers at commit time
The voice rule states that commits are authored by the maintainer's git identity alone. Editors and CLIs append co-author trailers and session links by default, and once such a line is in the object store only a history rewrite removes it — so enforce it before the commit exists. The guard rejects tooling co-author trailers, session links, and generated-with lines; human co-authors and ordinary messages pass.
This commit is contained in:
1 parent
15d63c3842
commit
7fa6498ad8
1 file changed
+18
@@ -16,6 +16,24 @@
|
||||
# Per project policy (`--no-verify` is banned), prefer fixing the
|
||||
# finding over bypassing the hook.
|
||||
|
||||
# Commit-message guard: the project voice rule (CLAUDE.md, "Voice and
|
||||
# privacy") states that commits are authored by the maintainer's git
|
||||
# identity alone and carry no tooling co-author trailer or session link.
|
||||
# Editors and CLIs add those trailers by default, and a message that
|
||||
# picks one up is only removable from the object store by a history
|
||||
# rewrite — so the check belongs here, before the commit exists, not in
|
||||
# a review pass afterwards.
|
||||
commit-msg:
|
||||
commands:
|
||||
no-tooling-trailer:
|
||||
run: |
|
||||
if grep -qiE '^(Co-Authored-By:.*(claude|anthropic|copilot|gpt|gemini)|Claude-Session:|Generated with)' "{1}"; then
|
||||
echo "ERROR: the commit message carries a tooling co-author trailer or session link." >&2
|
||||
echo "Project policy: commits are authored by the maintainer's git identity alone." >&2
|
||||
echo "Remove the offending line(s) from the message and commit again." >&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
pre-commit:
|
||||
commands:
|
||||
gitleaks:
|
||||
|
||||
Reference in new issue
Block a user