Skip to content

no-ai-coauthorship (BTPROC004)

Added in 0.14.0 · Preview · Off by default (error)

Family: process · Standard: CES-91 · Languages: all

This rule is unstable and in preview. It runs only with preview = true, and only when it is selected.

Directive

No line of a commit message names an AI tool as a co-author or as the author of the change: a Co-authored-by:, Generated with, Generated by, AI-generated-by or Assisted-by line that names a tool of the option tools, in any case. An error by default.

The rule reads messages, never files: botica lint --commit-msg <file> in a commit-msg hook, and botica lint --commits <range> in CI, which a commit made with --no-verify does not skip.

Why

The author of a commit is the person who reviewed, accepted and submitted the change, and who answers for it. A trailer that names an AI tool makes the metadata of the history say something else, and git blame, audits and changelogs read that metadata.

Do

feat(api): add the endpoint of orders

Co-authored-by: Ana Perez <ana@example.com>

Don't

feat(api): add the endpoint of orders

Co-authored-by: Claude <noreply@anthropic.com>
Generated with Claude Code

Options

[rules.no-ai-coauthorship]
tools = ["claude", "anthropic", "copilot", "chatgpt", "openai", "codex", "cursor", "windsurf", "aider", "gemini", "devin", "opencode"]

Suppression

A message has no comments that botica reads, so only the configuration silences the rule: ignore = ["no-ai-coauthorship"], or a tool left out of tools.

Discussion