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
|
# Per project policy (`--no-verify` is banned), prefer fixing the
|
||||||
# finding over bypassing the hook.
|
# 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:
|
pre-commit:
|
||||||
commands:
|
commands:
|
||||||
gitleaks:
|
gitleaks:
|
||||||
|
|||||||
Reference in new issue
Block a user