Intellectual Property and Git: Avoiding AI Co-authored-by
Maintaining a 100% human history is key to the legal health of your source code.
"A golden rule in modern development: the commit message should reflect 'why' the change was made for the business, never 'how' or which tools were used to write it."
1 Legal Context: Why the Concern?
More and more startups and independent developers are facing an invisible problem: patent and copyright offices in the US and EU have determined that AI cannot hold copyrights. Only human creation is protectable.
When a startup seeks investment or is about to be acquired, it undergoes a strict code audit. If the Git history shows bots as co-authors, investors can argue the company doesn't own 100% of its core technology, devaluing the project.
2 Configuring CLIs and AI Agents
Modern tools like Claude Code, Codex, GitHub Copilot CLI, or Gemini CLI often include automatic signatures. The best way to prevent this is by using system instruction files in your project root to force the agent's behavior.
Create files such as agents.md, claude.md, .cursorrules, or .github/copilot-instructions.md and include this block:
# Git Commits
- Do NOT add `Co-Authored-By` lines to commit messages.
- Write clear, descriptive commit messages in English.
- Use conventional commit style (feat:, fix:, chore:, etc.).
3 Agents on the GitHub Platform (Web)
If you use the Copilot agent integrated directly into GitHub.com Pull Requests, clicking "Squash and merge" forces an unerasable blue notice assigning co-authorship to the bot.
To break this automatic assignment, you must perform at least one manual (human) commit on that branch before merging it (e.g., adjusting a comment or a space). Upon detecting your intervention, GitHub will give you primary authorship, allowing you to manually delete any AI traces in the merge text box.
4 Expert Pro-Tip: Using a Git Hook
The most robust, definitive, and professional solution is using a Git Hook. It is excellent because it is agnostic (it doesn't matter which AI you use tomorrow), invisible (it doesn't affect your workflow), and automatic.
Create a file named commit-msg in your .git/hooks/ folder, give it execution permissions (chmod +x), and add this Bash code. It will intercept and clean the message before it's saved:
grep -iv "Co-authored-by:" "$1" > "$1.tmp" && mv "$1.tmp" "$1"
5 Oops... Already Sent the Commit?
If you check your history and realize the AI already signed a commit you just made, don't panic! You can rewrite the history locally to claim ownership of the code before it becomes permanent on the main branch.
1. Open your terminal and run: git commit --amend --reset-author (Save and close the editor that appears).
2. Upload the changes by forcing an overwrite on the server: git push origin branch-name --force.
Comentarios
Publicar un comentario