Anthropic社の以下のブログを読んだ。
筆者の状況
- 数十万行規模のRails + Vue.jsのプロジェクトのエンジニア。
- エンジニアは約20人。
- チームのメインコーディングエージェントはClaude Code。Github Copilot CLIも併用する人は1〜2割。Codexを使う人は今のところいない。
- 半年前にCLAUDE.mdを書いたっきり、メンテナンスしてない。特にClaude Code 関連で困っているわけではないが、定期的にベスプラに追従していく必要性は感じている。
- ルートディレクトリ/docs にコーディング規約をまとめ。ルートディレクトリ/CLAUDE.md からimportしている。結果的に、数百行のCLAUDE.mdに太ってしまっている。
個人的に刺さった点
- CLAUDE.mdは薄くし、階層的に構成させる
- ルートディレクトリのCLAUDE.mdには全体像を示し、細かい規約はサブディレクトリのCLAUDE.mdに書く
- テスト/リンティングコマンドをサブディレクトリごとに設定する
- LSPサーバーを使う
- 定期的にCLAUDE.mdファイルをメンテナンスする
現状CLAUDE.mdが厚くなってしまっているが、チームとしてのCLAUDE.mdは薄くすべきなんだろうなと感じた。厚くしてしまうと、エンジニア個人が教えたい設定が埋もれてしまうので、チーム設定としては薄くする&個人で設定したい場合はお好きにどうぞ、というスタイルが望ましいのかなと。
機能やサブディレクトリ毎にローカルルールや珍しいライブラリを使うケースがある。それを全てルートのCLAUDE.mdに書くとキリがないので、細かい規約をサブディレクトリに書くべき点も同意。
テストについても不要なテスト実行をされてしまうことが多々あるので、「このファイルを編集したら、このテストファイル/ケースを実行すべき」というのがわかる対応表を書くのが良さそう。
LSPサーバーも同意。Railsだと同じメソッド・変数名があちこちにあるため、単純なgrepだと限界がある。
定期的なメンテナンスも同意しかない。進化・アップデートがとても早いのでカリカリにチューニングする必要性はそこまでないと思うが、定期的にチームで議論し認識合わせておくのは重要そう。
Claude Codeのベスプラに追従する懸念の一つとして、Claudeにロックインされる点があると考えている。例えば、今後Codexに完全移行する可能性はゼロではないわけで、その時にClaudeカリカリチューニングしているとしんどいのでは?という懸念だ。だが、そこら辺の移行はAIがよしなにやってくれると考えると、そこで足踏みせずに一旦ベスプラ追従するのがベターなのかなと感じた。チームとしてアジリティを持っておくのが重要そう。