prove-it-diagnostics について
prove-it-diagnostics は、コーディングエージェント向けのデバッグと性能調査のスキルです。再現や測定で根本原因を特定し、修正を検証して推測に頼らない進め方を示します。
主な機能
- 01性能変更前のベンチマーク
- 02最小のバグ再現
- 03証拠に基づく原因検証
- 04修正前後の性能確認
- 05検証用ファイルの整理
活用シーン
- 01コードの確認だけでは分からないバグの調査
- 02安定した基準との性能比較
- 03修正が元の問題を解決するかの確認
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ robot-inventor/ agent-skills --skill prove-it-diagnosticsインストール後、Claude Code で/prove-it-diagnosticsを入力して読み込まれたか確認します。
詳細
Prove It Diagnostics
このスキルを使用して、バグやパフォーマンスのボトルネックの原因を特定し、修正します。コードを読むだけでは、バグやボトルネックの原因が分からないことがあります。推測に基づくコード変更によってバグが修正された、またはパフォーマンスが向上したと主張してはいけません。コードを実行し、根拠を集め、原因を特定して、修正を検証してください。
手順
以下はこのスキルの中核です。指定された手順に従ってください。
1. 最適化タスクではパフォーマンスのベースラインを確立する
パフォーマンス最適化タスクでは、変更を加える前にベンチマークを作成して実行してください。実用的な範囲でベンチマークをできるだけ多く実行してください。1回だけの実行結果に頼らず、平均値、パーセンタイル、その他の関連する統計を使用して安定したベースラインを確立してください。
2. コードを読む
バグやパフォーマンスの問題に関係するコードを読んでください。デバッグタスクでは、誤った演算子や、ロジック上の明らかな矛盾など、原因が明確に分かった場合、問題を修正して残りの手順を省略してもかまいません。
原因を確信をもって特定できない場合や、疑わしいコードを見つけても、それが原因だと断定するだけの十分な根拠がない場合は、残りの手順に進んでください。
3. 原因を検証する
コードを調べるだけで判断せず、実験を実行してバグやボトルネックの原因を特定してください。
デバッグタスクの場合:
- 一時ファイルまたは REPL で再現コードを作成し、実行してバグを確認してください。再現しない場合は、バグが再現するまで対象コードの関連する動作を追加してください。
- 再現コードの各部分を取り除くか元に戻して、バグを引き起こす最小のプログラムを見つけてください。最小限の再現コードによって、考えられる原因を絞り込めます。
- 最小限の再現コードを調査して原因を特定し、修正してください。「ルール」セクションの説明に従い、表面的な回避策ではなく根本原因に対処してください。
- 修正によって、最小限の再現コードでバグが発生しなくなることを確認してください。
- 修正を本番コードに適用し、元のバグが解消されることを確認してください。バグが残っている場合は、再現コードの手順に戻ってプロセスを繰り返してください。
パフォーマンス最適化タスクの場合:
- ベンチマーク、プロファイラー、タイミングログ、または同様のツールを使って、遅い処理を特定してください。
- ボトルネックを修正し、同じ測定方法でパフォーマンスが向上したことを確認してください。
- 修正を本番コードに適用し、そこで改善を確認してください。パフォーマンスが向上しない場合は、ボトルネックの分析に戻ってプロセスを繰り返してください。
4. 後片付け
検証中に作成した一時ログ、再現コード、生成ファイル、ログデータを削除してください。
ルール
修正してもバグやパフォーマンスの問題が解消されなかったとユーザーから報告された場合、以前の診断は未検証だったと見なし、調査を最初からやり直してください。
表面的な修正やその場しのぎの修正は恥ずべきものです。根本原因を特定して修正してください。たとえば、エラーによってバグが引き起こされている場合、失敗時のフォールバックを追加するのではなく、エラーの発生源を見つけて修正してください。「これが根本原因なのか?」と常に自問してください。
依存関係にバグがあることを示す根拠がある場合、その依存関係にはパッチを適用しないでください。依存関係にバグがあるようだとユーザーに伝え、根拠を説明し、依存関係を変更せずにプロジェクト側でできる変更を提案してください。
行き詰まった場合は、次の方法を試してください。
- 影響を受ける処理経路全体に一時ログを追加してください。ログを使って、正しい動作と誤った動作、または速い処理と遅い処理の境界を見つけてください。
- 動作がコードのロジックと矛盾する場合や、先に進めない場合は、関連するライブラリの GitHub の issue やプルリクエスト、Stack Overflow、コミュニティの記事を検索し、同じ問題の報告や考えられる解決策を探してください。