🧬

Claude Codeで俺流TDDを実践するためのカスタムコマンドを作った

に公開

Claude Codeの諸問題をTDDで解決したいと思った

はじめに

AIコーディングの品質管理は、結局人間のレビュー能力に依存しているという現実に直面した。
和田卓人氏が言っているように、AIコーディングによって引き起こされる問題は、もともと人力によるコーディングがはらんでいた問題の顕在化を早くしているだけである。
私たちはこの問題に対する処方箋を身につけなければならない。

https://speakerdeck.com/twada/agentic-software-engineering-findy-2025-07-edition?slide=10

AIコードレビューあるある早く言いたい

Claude Codeで大量生産されたコードをレビューしていると、人間の一度に処理できる量を超えて、うまくいかないなら最初から作り直すか、となってしまいがち♪でも実際はかけた時間が勿体無いから延々ドツボにハマって、負けが混んだギャンブラーのような目つきになっていきがち♪

ケント・ベック著『テスト駆動開発』からの学び

『テスト駆動開発』を読み返していたとき、これはAIコーディングの品質問題を解決する銀の弾丸かもしれないと直感した。

理想の開発サイクルはこれ

AIコーディング時代に合わせた開発サイクルを図にするとこんな感じ。

工夫:AIの記憶喪失対策

TDDをClaude Codeで実践すると、コンテキストウィンドウの限界による「AIは途中で何をやっていたか忘れる」という致命的な問題に気づいた。一生懸命書いたClaude.mdを途中から無視する。
そこで、設計ドキュメントを最初に作成し、随時参照させるのと、開発中に設計にフィードバックする内容があれば、逐一更新するような内容にしている。また、コミット頻度も細かく設定している。
あとはTODO.mdに状態管理機能を持たせているのもポイント。セッション情報が失われていた時でも復帰ポイントが分かりやすくする狙い。
あと、意味があるかわからないが、語尾に「ナリ」を設定して、健忘症に陥った時はすぐにわかるようにした。
ナリナリ言ってくれる

コマンド全体はこちら

https://gist.github.com/Mutsumix/75a6c162d83580ad6b9d1b134892213d

おわりに

これからこれを個人開発などで活用して内容を研ぎ澄ませていきたいです。
とはいえこういった工夫は、良いものであればAIエージェントやIDEにそのうちに標準的に搭載されるようなものなので、徒花で終わるかもしれません。それでも手を動かし続けること、その試行錯誤を楽しめるかどうかがエンジニアとして、生き残っていく秘訣なんだろうとも思ってます。

AIと人間の協働において、人間の役割は「単に指示を出すこと」から「何が良いコードかを教えること」「良いシステムを設計すること」にシフトしていくと良く見聞きしますが、足切りラインがどんどん厳しくなっているのを感じている。

株式会社Sysmac

Discussion