コードのバグを90%防ぐ「フォルトループ」の威力

AAI LABS
컴퓨터/소프트웨어경영/리더십AI/미래기술

Transcript

00:00:00コーディング・エージェントにルールを強制すると、実際には何が起きるのでしょうか?
00:00:03Claudeなどのコーディング・エージェントを使う際、私たちは皆共通の悩みを抱えています。
00:00:07指示に従わず、Claude.mdファイルを完全に無視してしまう傾向があるのです。
00:00:11TDDを強制しようとしても、テストファイル自体を書き換えようとしてしまいます。
00:00:15そんな中、わずか24時間で5万8000スターを獲得し、注目を集めているプラグインを見つけました。
00:00:21しかし、それはAIツールのハイプサイクルがいかに激しいかを示しているに過ぎません。
00:00:25このプラグインは、ソフトウェア開発手法をワークフローに厳格に適用することを約束しています。
00:00:30しかし、問題はそれが本当に約束を果たしているかどうかでした。
00:00:33私たちのチームはこれまでも似たようなワークフローを見てきましたが、そのほとんどがただの誇大広告でした。
00:00:37そこで、このプラグインを実際のワークフローに導入し、実プロジェクトに役立つのか、それとも単なる流行りなのかを検証しました。
00:00:43「Superpowers」は、使用しているAI IDEに、伝統的なソフトウェア開発手法を強制するプラグインです。
00:00:50BMADやOpenSpecといった既存のアジャイルフレームワークと同じだと思う人もいるかもしれません。
00:00:56しかし、これは単にプロジェクトの仕様を書くためのエージェントシステムではありません。
00:01:01アジャイル手法をワークフローに直接強制し、現在のステップをクリアするまで次へ進ませない厳格なゲートを設けています。
00:01:10これらのゲートは、Claudeが指示から逸脱するのを防ぐための明示的なチェックポイントとなります。
00:01:15このプラグインの核となる哲学は、推測ではなく、TDDと体系的なプロセスを重視することです。
00:01:20プロジェクトの成功を宣言する前に検証を行い、AIが失敗しやすい箇所を特定して修正するための専用の指示を備えています。
00:01:28ユーザーからゴーサインが出るまで、次のステップへは進みません。
00:01:32つまり、私たちが過去の動画で語ってきたベストプラクティスが最初から組み込まれており、手動設定の手間が省けます。
00:01:40このプラグインは、真のテスト駆動開発(TDD)や、DRY、YAGNIといった開発の基本原則を重視しています。
00:01:50あらゆるAIプラットフォームで利用可能です。
00:01:52私たちのチームはClaude Codeを使っていたので、まずマーケットプレイスの登録コマンドをコピーしてプロジェクトに追加し、プラグインをインストールしました。
00:02:02インストール後にClaude Codeを再起動すると、プロジェクトでSuperpowersプラグインが使えるようになりました。
00:02:08再起動したClaude Codeに、「Trelloのようなプロジェクト管理ソフトを作りたい」とプロンプトを入力しました。
00:02:15すると自動的に「ブレインストーミング」スキルが起動し、憶測で作り始めるのではなく、スキルの機能を使ってまずプロジェクトの内容を特定しました。
00:02:24アプリの詳細、ターゲット、希望する技術スタック、そして各選択肢に伴う懸念事項など、多くの質問を投げかけてきました。
00:02:33例えば、選択したデータベースがブラウザで動作しサーバー側からアクセスできないため、セキュリティ上の問題があると指摘され、変更することにしました。
00:02:44私たちが納得するまで、細部にわたって明確化を繰り返しました。
00:02:48すべてを確認した後、次は3つのアプローチを提示され、その中から実装するものを選ぶように言われました。
00:02:55気に入ったオプションを選び、同時にいくつかの変更も提案しました。
00:02:58それが終わると、アーキテクチャ設計を提示してくれました。
00:03:02次にUXデザインが示され、ボードの取り扱い方法などが説明されました。
00:03:06プロジェクト全体の構造についても確認が行われました。
00:03:09すべての設計が承認されると、データがdocsフォルダにドキュメント化されました。
00:03:13ここが他のプラグインより優れている点で、Gitの指示が組み込まれており、手動で指示しなくても変更ごとにコミットが行われます。
00:03:22ブレインストーミング・スキルで計画が作成されると、実装計画スキルが呼び出され、計画書を作成してコミットしました。
00:03:29その計画では、大規模なアプリケーションを実装しやすい小さなタスクに分解してくれました。
00:03:33Claudeに標準搭載されている「プランモード」で十分だと思うかもしれません。
00:03:37しかし、最大の違いは、Claude Codeのプランニングが単なるエージェントのガイドであるのに対し、
00:03:44技術スタックについても必要最低限しか質問せず、UIライブラリなどの細かな決定を勝手に行ってしまう点です。
00:03:52対してSuperpowersは「強制」であり、現在のステップをパスしない限り次へ進めず、計画が確実に実行されるようにします。
00:04:01計画フェーズが終わると実装方法を尋ねられ、2つの選択肢から「サブエージェント駆動の実装」を選択しました。
00:04:09Claudeも自律的にサブエージェントを生成しますが、ここでは各サブエージェントにGitのworktreeを自動設定し、互いの作業が干渉しないようにしていました。
00:04:20同じディレクトリで作業すると上書きし合ってしまうため、エージェントをworktreeで隔離することは、作業効率を高める上で重要です。
00:04:28これを標準で処理してくれるのが、このプラグインの大きな特徴です。
00:04:31計画が確定すると、Claudeは実装フェーズへと移りました。
00:04:34タスクを開始し、完了すると、仕様に沿っているか検証するための独立したレビュー・サブタスクを立ち上げました。
00:04:41Gitへのコミットが終わると、別のスキルである「コードレビュアー」を使用しました。
00:04:46前のエージェントによってコードの品質が承認された後、初めて次のタスクが開始され、品質が満たされるまで反復されました。
00:04:54各タスクが完了・レビュー・コミットされ、前の工程が完了したことを確認した後、mainへマージするかPRを作成するか尋ねられました。
00:05:04今回は、すぐにmainブランチへマージするよう指示しました。
00:05:06するとすべてのworktreeを削除し、プロジェクト全体をmainブランチにコミットしました。
00:05:11ただし、サブエージェントや複数のスキルを使うため、コンテキストウィンドウの消費が激しく、一度の反復で約50%を使い切ることもありました。
00:05:24作成されたプロジェクトはシンプルで、基本的な機能を備えたものでした。
00:05:27次に、リストを現在の状態(未完了、進行中、完了)でソートできるようにしたいと考えました。
00:05:32また、個別のカードだけでなく、リスト自体も移動可能にする必要がありました。
00:05:36Claude Codeに戻ってこれを依頼しましたが、最初はプラグインのスキルを使わず、通常のClaudeのように動き始めました。
00:05:42これはコンテキストを消費しすぎたためと思われますが、Superpowersプラグインを使うようリマインドする必要がありました。
00:05:48リマインド後は、以前と同じようにタスクをこなし始めました。
00:05:52Claudeは別々のworktreeで動くエージェントを生成しましたが、彼らが優れているのは、TDDのアプローチをネイティブに採用している点です。
00:06:02これらのエージェントは、まず実装する各パーツのテストを記述します。
00:06:05テストが書かれると、テストケースを一切変更せずにコードを書き、そのテストに合格するように徹底します。
00:06:13強力なプロンプトキューにより、Claudeがステップを飛ばそうとした時の言い訳を封じ、テスト自体の改ざんを防ぎます。
00:06:23これらのキューは「スキルを使う可能性が1%でもあるなら、それを使え」といった明示的な指示になっています。
00:06:29これにより、各タスクが適切に構造化された方法で遂行されます。
00:06:32注意点として、タスクを順次実行するため、Claudeが単独で行うよりも完了までに時間がかかります。
00:06:41しかし、厳格なガイドラインを強制することで、アプリケーションが意図通りに動作することを保証します。
00:06:45先ほども言った通りコンテキストの消費が速く、わずか数個のタスクで残りが5%になってしまいました。
00:06:53そこで、次のタスクのブレインストーミング中にコンテキストを失わないよう、続行する前に「compact」コマンドを実行しました。
00:07:01会話を圧縮した後、次の機能実装を指示すると、同じように作業が開始されました。
00:07:07今回のセッションで最高だったのは、勝手な推測で実装せず、多角的な質問を繰り返して私たちの望み通りに構築してくれたことです。
00:07:17このプラグインは、カラムが空の時の表示といった、Claude単体なら推測で済ませてしまうような細かなエッジケースまで徹底的に明確化させました。
00:07:29このプラグインを使いこなすためのガイドラインは、AI Labs Proで公開しています。
00:07:33AI Labs Proは最近立ち上げたコミュニティで、今回の動画や過去の動画で紹介したテンプレートをすぐに利用できます。
00:07:42私たちの活動を支援したいと思ってくださる方は、ぜひチェックしてみてください。リンクは概要欄にあります。
00:07:48このツールのもう一つの強みは、「体系的なデバッグ」機能です。
00:07:52更新時にデータが保存されないバグが発生した際、あえて場所を指定せずに「体系的デバッグを使って修正して」と曖昧に依頼しました。
00:08:01すると体系的デバッグ・スキルが読み込まれ、作業は4つのフェーズに分割されました。
00:08:06第1フェーズでは、私たちへの質問を通じて根本原因の特定が行われました。
00:08:10回答に基づき調査と追跡が行われ、問題がある可能性が高いファイルが特定されました。
00:08:16根本原因が分かると、第2フェーズでバグの分離、第3フェーズで修正のためにバグ発生の具体的理由を絞り込みました。
00:08:25第4フェーズで修正を適用します。闇雲にコードを探るのではなく、構造的なプロセスを経て最後にテストで締めくくりました。
00:08:35ただ、UIの変更など、フルワークフローを必要としないタスクもあります。ちょっとした変更に15分も待つ必要はありません。
00:08:47フルプロセスが必要ないタスクについては、もっとシンプルな方法で実装できます。
00:08:51具体的なデザイン案がなかったので、実装はせず、ブレインストーミングとプランニングだけを行うよう指示してUI改善を依頼しました。
00:09:01するとデザインの各側面について質問され、私たちが望む視覚的な方向性を明確にしていきました。
00:09:08指示通り計画段階で停止したので、その後、通常のプロセスを使わずにその計画を実行するよう依頼しました。
00:09:15結果、フルプロセスよりも大幅に短い時間でUIが刷新され、それでいてコミット形式などはルール通りに守られていました。
00:09:25アプリは最小限のスタイルから、洗練された配色、ホバー状態、より機能的なレイアウトへと進化しました。
00:09:32得意なことはClaudeに任せ、失敗しやすい場面でだけフルプロセスを導入できるのが、このフレームワークの実用的なポイントです。
00:09:43今回の動画は以上です。チャンネルをサポートし、活動を継続させていただける方は、下の「スーパーサンクス」をお願いします。
00:09:51ご視聴ありがとうございました。それではまた次回の動画でお会いしましょう。

Key Takeaway

「Superpowers」は、AIエージェントに厳格な開発プロセスを強制し、テスト駆動開発と段階的な検証を徹底させることで、AI特有の推測によるミスを排除し高品質なコード生成を実現するツールです。

Highlights

AIエージェントが指示を無視したり勝手にテストを書き換えたりする問題を解決する「Superpowers」プラグインの紹介

TDD(テスト駆動開発)やDRY、YAGNIといった伝統的な開発原則をAIワークフローに強制的に適用する仕組み

各エージェントをGitのworktreeで隔離し、作業の干渉や上書きを防ぐ自律的な並行開発プロセス

「体系的デバッグ」スキルによる、闇雲なコード修正ではない4フェーズの論理的なバグ特定と修正

高度なプロンプト管理により、AIがステップを飛ばしたり推測で実装したりする「言い訳」を封じ込める強力な制約力

コンテキストウィンドウの消費が激しいため、「compact」コマンドなどの運用上の工夫が必要である点

Timeline

AIコーディングの課題と新プラグインの登場

ClaudeなどのAIエージェントが指示を無視したり、テストファイルを勝手に書き換えたりする共通の悩みから動画は始まります。これに対し、24時間で5.8万スターを獲得した注目のプラグイン「Superpowers」が紹介されます。このツールは単なる仕様作成エージェントではなく、アジャイル手法をワークフローに厳格に強制する「ゲート」を設けるのが特徴です。TDDや体系的なプロセスを重視し、ユーザーの承認なしには次のステップへ進ませない仕組みを持っています。手動設定の手間を省き、最初からベストプラクティスが組み込まれている点が強調されています。

プロジェクト開始:ブレインストーミングと設計フェーズ

実際の導入手順として、Claude CodeへのインストールからTrello風アプリの開発開始までが解説されます。AIは即座にコードを書き始めるのではなく、「ブレインストーミング」スキルを起動して詳細なヒアリングを行います。技術スタックのセキュリティ上の懸念をAIが指摘するなど、人間との合意形成を徹底する様子が描かれています。最終的にアーキテクチャやUXデザインが承認されると、自動的にdocsフォルダへドキュメント化されます。Gitのコミット指示も組み込まれており、手動操作なしで変更履歴が管理される点が高く評価されています。

実装フェーズにおける制約とサブエージェントの活用

Claude標準のプランモードとの最大の違いは、自由度を制限し計画の完遂を「強制」する点にあります。実装時には「サブエージェント駆動」を選択でき、Gitのworktreeを使用して各エージェントを作業領域ごとに隔離します。これにより、複数のエージェントが同じファイルを上書きし合う非効率な衝突を避けることが可能です。各タスクが完了するたびに独立した「コードレビュアー」スキルが品質をチェックし、合格するまで反復されます。ただし、この厳格なプロセスはコンテキストウィンドウを激しく消費し、一度の反復で50%に達することもあると注意喚起されています。

TDDの徹底とコンテキスト管理の実践

機能追加の際、AIが通常モードに戻ってしまう現象が発生しますが、プラグインの使用をリマインドすることで軌道修正されます。エージェントはまずテストを記述し、そのテストケースを一切変更せずにパスするコードを書くという真のTDDを遂行します。AIがステップを飛ばそうとする「言い訳」をプロンプトで封じ込め、1%でもスキルの可能性があるなら使うよう明示されています。作業時間が長くなるデメリットはありますが、その分アプリケーションが意図通りに動く保証が得られます。コンテキストが不足した際には「compact」コマンドで会話を圧縮し、効率的に作業を継続するテクニックも紹介されています。

体系的なデバッグと柔軟なプロセス運用

バグ修正においては「体系的デバッグ」スキルが威力を発揮し、原因特定から修正までを4つの論理的フェーズで進めます。一方で、UIの微調整などフルプロセスが不要なタスクでは、計画だけを作成させて実行は通常モードで行う柔軟な運用も可能です。この使い分けにより、15分待つことなく迅速に洗練された配色やレイアウトへの刷新を実現しています。AIが得意なことは任せ、失敗しやすい箇所にだけ厳格なフレームワークを導入するのが実用的な活用法です。最後は、AI Labs Proコミュニティの紹介と視聴者への感謝で締めくくられています。

Community Posts

View all posts