All commits must include a Signed-off-by trailer (Developer Certificate of Origin).
Always use the -s flag when committing:
git commit -s -m "feat: Add new feature"This adds a line like Signed-off-by: Your Name <your@email.com> to the commit message.
PRs without DCO sign-off will fail CI checks. To retroactively sign-off existing commits:
git rebase --signoff mainWhen creating git commits, do NOT use Co-Authored-By trailers for AI attribution.
Instead, use Assisted-By to acknowledge AI assistance without inflating contributor stats:
Assisted-By: Claude (Anthropic AI) <noreply@anthropic.com>
Never add Co-authored-by, Made-with, or similar trailers that GitHub parses as co-authorship.
A commit-msg hook in scripts/hooks/commit-msg enforces this automatically.
Install it by configuring the hooks path:
git config core.hooksPath scripts/hooksWhen generating PR descriptions, summaries, or any PR metadata, use
Assisted-By: Claude Code — never Generated by Claude Code or similar phrasing.
The work is the developer's; Claude Code assists. This differs from the commit
trailer format (Assisted-By: Claude (Anthropic AI) <noreply@anthropic.com>)
because PR body text is human-readable and doesn't need the email for git tooling.
This applies to:
- PR body text (e.g., the footer line)
- Commit message trailers referenced in PR descriptions
- Any auto-generated changelogs or release notes
Only commit files directly related to the PR's stated purpose. Do not bundle unrelated changes (tooling, configs, hooks, formatting) into a PR unless the PR is explicitly for that purpose. If a prerequisite change is needed, open a separate PR for it first.