AIエージェントと書いたコードをコミットする時にgit-commitの末尾の方にCo-Authored-By: をつけることがある。
2つの観点があると思っていて
- 社内でのAI利用率をコミット単位でチェックしたい
- 自分とAIの共著であることを明示する
AIエージェント登場当時は結構デフォルトで入ったりしていてなるほど〜って思っていたんだけど、もはやAIを全く使わないでコードを書くことはないし、コミットもAIがすることがあるのだよな。
そんで、社内とか自分のAI利用率をチェックしたい、みたいなケースだとOtelをサポートしていることが最近では主流になっている。
https://code.claude.com/docs/en/monitoring-usage
https://learn.chatgpt.com/docs/config-file/config-advanced
Otelで取得できるメトリクスは色々あるけど、スキルの利用率とかどのモデルを使っているかとか、そういうのが見えるようになる。何ならプロンプトとかどういうやり取りをしているのかも見える(のだが、実際に取得してみたいと思うことはないだろう…)
なので、最初の「AI利用率をチェックしたい」という観点では Co-Authored-By:をつけるのはあんまり情報量が増えてないし、アウトカムも得られにくい。
次の「自分とAIの共著であることを明示する」ということだが、これも現代に於いてはほとんど自分で生のコードを書くことはないと思う。Critでコードの差分を表示したりドキュメントを表示して行コメントで指摘をしてるんじゃないかな。少なくとも僕はそう。
https://crit.md/
何度も同じ指摘をする事が増えてくるとスキルを作ったり、AGENTS.mdに書いたり、自分(ないしチーム)が好むスタイル、開発のフローを理解したAIができてきていると思う。
そうなってくると、AIは共著者というよりもツールという側面が強くなってくるような感じがしてきていて、自分とAIの共著、というよりも、自分、って感じがしてくる。
なのでAIと書いたとしてもCo-Authored-By:はなくてもいいような感覚がしてくる。
例えばVimとかLSPを使った開発をしているのに近い感覚がある。Co-Authored-By: Vim and ruby-lsp ってのはやらないじゃん、的な。
あと免罪符的な側面もあったりするんですかねぇ。AIがコードを書いたので許してください的な?でも、そういうのはない気がする。邪推が過ぎる。
似たようなやつでBaby in Carのステッカーを車の後ろに張ってるのはあれはどういうつもりで貼っているのかちょっと気になる。
運転免許試験で
- 子供が乗っているので車間距離に気をつけてないといけない
- バツ: いついかなる時も車間距離には気をつけなければならない
もちろんチームでペアプロやモブプロをして複数人で書いたパッチならばそこに各個人の名前とメールアドレスを載せるのは本来の使い方だと思うので良いと思う。
とかとか、Co-Authored-By: 任意のエージェントをつけるのはどういう意味があるんだろうな、と思うのだった。
AIが書いたかどうかよりも最終的なコードの責任を持つのは、(まだ)人間なので人間がコミットをしている(指示を出している)、人間がそのコードを使える状態にして、利用者が命のある人間である限り(逆にいうと利用者が人間でなくなるのであればこういうのは些末、枝葉、些細なことなのだろうな)は、大元のコミットの署名は人間の名前があればいいかなぁ、という考えなのでした。