diff options
| author | Craig Jennings <c@cjennings.net> | 2026-04-19 13:06:57 -0500 |
|---|---|---|
| committer | Craig Jennings <c@cjennings.net> | 2026-04-19 13:06:57 -0500 |
| commit | ff747056a05792d6212ff05a9f5343fd804cbff0 (patch) | |
| tree | e3cc76f7795c96ac34a590e95f24462eec83ae4f /.claude | |
| parent | 403aba33301f65a45d9ffe0af84400c8888368b4 (diff) | |
| download | dotemacs-ff747056a05792d6212ff05a9f5343fd804cbff0.tar.gz dotemacs-ff747056a05792d6212ff05a9f5343fd804cbff0.zip | |
chore: sync bundle — add commits.md rule, attribution suppression
Picks up upstream bundle changes:
- New .claude/rules/commits.md: no AI attribution, conventional prefixes.
- settings.json: attribution.commit and attribution.pr empty strings
(suppresses Claude Code default attribution).
- CLAUDE.md: Git Workflow references commits.md instead of the
(gitignored) docs/protocols.org.
Diffstat (limited to '.claude')
| -rw-r--r-- | .claude/rules/commits.md | 66 | ||||
| -rw-r--r-- | .claude/settings.json | 4 |
2 files changed, 70 insertions, 0 deletions
diff --git a/.claude/rules/commits.md b/.claude/rules/commits.md new file mode 100644 index 00000000..301c6ff3 --- /dev/null +++ b/.claude/rules/commits.md @@ -0,0 +1,66 @@ +# Commit Rules + +Applies to: `**/*` + +## Author Identity + +All commits are authored as the user (repo owner / maintainer), never as +Claude, Claude Code, Anthropic, or any AI tool. Git uses the configured +`user.name` and `user.email` — do not modify git config to attribute +otherwise. + +## No AI Attribution — Anywhere + +Absolutely no AI/LLM/Claude/Anthropic attribution in: + +- Commit messages (subject or body) +- PR descriptions and titles +- Issue comments and reviews +- Code comments +- Commit trailers +- Release notes, changelogs, and any public-facing artifact + +This means: + +- **No** `Co-Authored-By: Claude …` (or Claude Code, or any AI) trailers +- **No** "Generated with Claude Code" footers or equivalents +- **No** 🤖 emojis or similar markers implying AI authorship +- **No** references to "Claude", "Anthropic", "LLM", "AI tool" as a credited contributor +- **No** attribution added via template defaults — strip them before committing + +If a tool, template, or default config inserts attribution, remove it. If +settings.json needs it, set `attribution.commit: ""` and `attribution.pr: ""` +to suppress the defaults. + +## Commit Message Format + +Conventional prefixes: + +- `feat:` — new feature +- `fix:` — bug fix +- `refactor:` — code restructuring, no behavior change +- `test:` — adding or updating tests +- `docs:` — documentation only +- `chore:` — build, tooling, meta + +Subject line ≤72 characters. Body explains the *why* when not obvious. +Skip the body entirely when the subject line is self-explanatory. + +## Before Committing + +1. Check author identity: `git log -1 --format='%an <%ae>'` — should be the user. +2. Scan the message for AI-attribution language (including emojis and footers). +3. Review the diff — only intended changes staged; no unrelated files. +4. Run tests and linters (see `verification.md`). + +## If You Catch Yourself + +Typing any of the following — stop, delete, rewrite: + +- `Co-Authored-By: Claude` +- `🤖 Generated with …` +- "Created with Claude Code" +- "Assisted by AI" + +Rewrite the commit as the user would write it: concise, focused on the +change, no mention of how the change was produced. diff --git a/.claude/settings.json b/.claude/settings.json index cca0eaa1..9ab9f12b 100644 --- a/.claude/settings.json +++ b/.claude/settings.json @@ -1,4 +1,8 @@ { + "attribution": { + "commit": "", + "pr": "" + }, "permissions": { "allow": [ "Bash(make)", |
