A name isn't enough
- Why LLMKIT: sharing what works across five stacks
- Context is the hard part
- The fourth and fifth stack
- The boring 20% that made it stick
- One view across Claude Code, Codex and Copilot
- Copy, never move
- Normalize once, at the end
- Windows 11, and an honest scorecard
- Shippable, with findings
- Mirror, don't ask
- A name isn't enough
- A footer means it finished
We built a commit-msg hook to strip the auto-generated email off AI Co-Authored-By
trailers. Claude Code attributes itself as <noreply@anthropic.com>, and the team’s own
convention is name only, no address — keep the model name so it never goes stale, drop
the address.
The failure case code review caught
The first version matched on name alone: if the co-author’s name looked like a known AI assistant, the email got stripped. A real person named, say, “Claude Dupont,” would have had his own email silently stripped off his own commit — just because the hook matched his first name and nothing else.
The fix
A name only triggers stripping when it’s paired with an address that actually looks automated. A real address on a real person’s commit is left alone, whatever their name happens to be. A known AI no-reply address still strips on its own either way, no name match required.
Three smaller fixes from the same review pass
- Stop reading at git’s verbose-diff cut line instead of past it.
- Make the fail-open test actually force a write failure, instead of assuming one.
- Read and write with explicit newline handling, so CRLF survives on Windows.
None of these are big fixes individually. Together, they’re the difference between a hook that works in the demo and one that’s safe to run on every commit, for every person, indefinitely.