プログラミング
AI共同著者は不要。マニフェスト
No AI Co-Authors. A Manifesto (no-ai-coauthors.dev)
要約
このマニフェストは、GitコミットメッセージにAIを共同著者としてクレジットすることを拒否する立場を表明しています。AIは便利なツールであるものの、その出力に対して責任を負うことはできないため、コミットの「著者」は常に貢献した人間であるべきだと主張しています。これを強制するために、AIの共同著者トレーラーを検出・拒否する`commit-msg`フックとGitHub Actionsが提供されています。
全文翻訳
commit-msgフック · GitHub Action
AI共同著者は不要
AIによる帰属トレーラーを持つコミットを拒否するcommit-msgフックとGitHub Action — なぜなら、署名は説明責任を共有できない唯一の場所だからです。
フックをインストール
マニフェストを読む
$ pre-commit install --hook-type commit-msg
copy
COMMIT_EDITMSG ~/work · 9f2c1ab
1feat: add a retry budget to the sync worker
3Author: Ada Lovelace <ada@example.com>
4Signed-off-by: Ada Lovelace <ada@example.com>
5Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
6Claude-Session: https://claude.ai/code/session_01T…
✗ commit rejected
✓ commit accepted · no AI co-authors
2 trailers removed
@@ why @@
マニフェスト
署名は共有リソースではありません。AI共同著者のGitコミット署名は、印象的なマーケティングフックではありますが、出所の有用なシグナルを提供しません。2026年半ばです。作成されるすべてのコードは、多数の洗練されたツールによって促進されています。その最新のものがAI「共同著者」です。これらは信じられないほどの有用性を持っていますが、開発ツールチェーン内の他のツールと同様に、その出力に対して意味のある説明責任を負いません。良くても、生成されたコードのボットを「共同著者」としてタグ付けすることは、開発階層における最も重要な説明責任と帰属のメカニズムにノイズを加えるだけです。最悪の場合、この慣行は同様に拡散された責任を暗示します。コードの著作行為が変化しているのと同様に、著作権に関する社会規範が滑り落ちてはなりません。私たちは自身の貢献に対して責任を負うべきです。「著者」は常に、貢献する個人です。コミットメッセージから企業のスパムを削除してください。
— AI共同著者は不要。
@@ diff @@
検出対象
これはツールを排除し、人間を維持します。表示名とメールの両方で正規化されたマッチングが実行されるため、名前が変更されたボットや数値のnoreplyアドレスもすり抜けることはありません。人間が巻き込まれることは決してありません。
拒否されます
# コミットは作成されません
-Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
-Claude-Session: https://claude.ai/code/…
-Co-authored-by: Copilot <copilot@github.com>
-Co-authored-by: Cursor <cursoragent@cursor.com>
-Co-authored-by: aider <aider@aider.chat>
ChatGPTGPTCodex GeminiDevinWindsurf OpenCodeAmazon QLlama MistralDeepSeekQwen GrokCodyCodeium ClineTabnine+ more
保持されます
# コミットは変更されずに通過します
+Co-authored-by: Claude Shannon <claude.shannon@example.com>
+Co-authored-by: Grace Hopper <grace@example.com>
+Signed-off-by: Ada Lovelace <ada@example.com>
## コメント行も無視されます
ボットのClaudeをブロックします。人間のClaude Shannonを歓迎します。
@@ use @@
インストール
1.0.0にピン留めしてください。お好みのフックマネージャーを選択してください。すべてのパスは公開リポジリトとタグ付きリリースを指しているため、インストールは再現可能です。アップグレードするときはタグを交換してください。
pre-commit
.pre-commit-config.yamlにリポジトリを追加し、commit-msgステージをインストールします。
.pre-commit-config.yaml
copy
default_install_hook_types: [pre-commit, commit-msg]
repos:
- repo: https://github.com/GoodHatsLLC/no-ai-coauthors
rev: 1.0.0
hooks:
- id: no-ai-coauthors
terminal
copy
$ pre-commit install --hook-type commit-msg
prek
prekは同じ設定を読み取るか、ネイティブのprek.tomlエントリを使用します。
prek.toml
copy
default_install_hook_types = ["pre-commit", "commit-msg"]
[[repos]]
repo = "https://github.com/GoodHatsLLC/no-ai-coauthors"
rev = "1.0.0"
hooks = [{ id = "no-ai-coauthors" }]
terminal
copy
$ prek install --hook-type commit-msg
Lefthook
Lefthookのリモート設定として使用し、インストールします。
lefthook.yml
copy
remotes:
- git_url: https://github.com/GoodHatsLLC/no-ai-coauthors
ref: 1.0.0
configs:
- lefthook.yml
terminal
copy
$ lefthook install
GitHub Actions
リポジトリを複合アクションとして直接使用します。push時にイベントペイロードを読み取り、pull_request時にPRコミットを読み取ります。
.github/workflows/no-ai-coauthors.yml
copy
name: no-ai-coauthors
on:
pull_request:
push:
jobs:
no-ai-coauthors:
runs-on: ubuntu-latest
permissions:
contents: read
pull-requests: read
steps:
- uses: GoodHatsLLC/no-ai-coauthors@1.0.0
Plain Git
フックマネージャーをまったく使用しない場合 — スクリプトをダウンロードし、core.hooksPathをそこに向けます。
terminal
copy
$ mkdir -p .githooks
$ curl -fsSL \
https://raw.githubusercontent.com/GoodHatsLLC/no-ai-coauthors/1.0.0/hooks/no-ai-coauthors \
-o .githooks/commit-msg
$ chmod +x .githooks/commit-msg
$ git config core.hooksPath .githooks
Husky
このパッケージはNode指向のマネージャー用にno-ai-coauthorsバイナリを公開しています。
.husky/commit-msg
copy
no-ai-coauthors "$1"
simple-git-hooks
package.json · simple-git-hooks
copy
{
"simple-git-hooks": {
"commit-msg": "no-ai-coauthors \"$1\""
}
}
あなたの名前がコミットにあります。その意味を重んじましょう。
GitHubで入手 ↗
インストールパス