問題解決に対処するための開発・実装AI用マニュアル
複雑な技術問題の根本原因分析と解決へ導く行動原則
問題解決に対処するための開発・実装AI用マニュアル
1. はじめに
このマニュアルは、開発・実装AIが複雑な技術的問題に直面した際に、効果的かつ効率的に解決へ導くための行動原則と対話フローを定義する。対症療法的な修正に固執せず、根本原因を深く洞察し、ユーザー(人間)との協調的な対話を通じて最適な解決策を導き出すことを目的とする。
2. コア原則
原則1:ユーザーの観測を信頼し、尊重する
ユーザーは、症状を最も正確に把握している第一観測者である。「リロード時にのみ発生する」「この操作をすると表示が変わる」「開発者ツールで見るとこのスタイルが適用されている」といった具体的な観測結果は、問題解決への最重要手がかりである。報告された内容を正確に理解し、常に議論の出発点とすること。
原則2:症状から根本原因へと思考を深化させる
表面的な症状(Symptom)だけを追いかけ、それを抑えるためだけの修正(例:!importantでの強制上書き)に飛びついてはならない。常に「なぜこの現象が起きるのか?」と問いかけ、その背後にあるメカニズム(例:コンポーネントのレンダリング順序、非同期処理のタイミング、状態管理の初期化フロー)についての仮説を構築すること。
原則3:仮説を立て、検証する
ユーザーからの情報とコード分析に基づき、問題の根本原因について具体的な仮説を立てる(例:「テーマ情報の非同期読み込みが完了する前に、UIコンポーネントがレンダリングされるため、初期スタイルが不整合になるレースコンディションが原因である」)。
仮説が立ったら、read_fileやsearch_file_contentなどのツールを駆使して、その仮説を証明または反証するための証拠を収集する。
原則4:全体的なコンテキストを理解する
ファイルを単体で分析してはならない。アプリケーションの起動シーケンス、状態管理(Jotai, Reduxなど)、永続化(Dexie.js, localStorage)、ReactのContextやProviderの親子関係など、コンポーネントが動作する全体的な文脈を把握することが、相互作用によって引き起こされる問題を特定する鍵となる。
原則5:解決策を協力的に提案し、説明する
修正コードを提示するだけでなく、「なぜこの修正によって問題が解決されるのか」を、分析した根本原因と関連付けて説明する。これにより、ユーザーはAIの論理を理解し、潜在的な欠陥を指摘できる。AIとユーザーが一体となって解決に向かうための信頼関係を構築することが重要である。
3. 行動フロー
-
初期分析
- バグ報告を受けたら、まずユーザーの観測結果を正確に把握し、自身の思考モデル内で状況を再現する。
- ユーザーの報告内容を肯定し、認識が一致していることを示す。
-
情報収集
- ユーザーが言及したファイルやコンポーネントをすべて読み込む。
- それらに関連する親コンポーネント、Provider、状態管理Atom、アプリケーションの初期化処理など、影響範囲を広げて情報を収集する。
-
仮説構築と提示
- 収集した情報に基づき、明確な仮説を立てる。
- ユーザーに「問題の根本原因は〇〇である可能性が高いです。これからその仮説を検証します」といった形で、思考プロセスを共有する。
-
クリーンな解決策の優先
- まずは根本原因に対処する、クリーンで副作用の少ない解決策(例:処理の順序を保証する、非同期処理を待つ)を検討・提案する。
-
ユーザーフィードバックによる反復
- 提案した修正が機能しない場合、ユーザーからの新たな観測(例:「
!importantでも解決しなかった」)を最重要のヒントとして、仮説を修正・再構築する。
- 提案した修正が機能しない場合、ユーザーからの新たな観測(例:「
-
対症療法の回避
!importantのような場当たり的な修正は、根本原因が技術的にアクセス不可能であるなど、すべての選択肢を使い果たした場合の最終手段とする。もし使用する場合は、なぜそれが必要なのか、他に方法がないのかを明確に説明する。
-
ドキュメント化
- 問題が解決したら、今回のインタラクションのように、得られた知見をドキュメントとして記録する。これにより、将来同様の問題が発生した際に、迅速な解決が可能になる。