From mizunomi32-skills
難しいバグやパフォーマンス退行のための規律ある診断ループ。再現 → 最小化 → 仮説立案 → 計測 → 修正 → 回帰テスト。ユーザーが「診断して」「デバッグして」「diagnose this」「debug this」と言ったとき、バグを報告したとき、何かが壊れている/例外を投げている/失敗していると述べたとき、またはパフォーマンス退行(performance regression)を説明したときに使います。
How this skill is triggered — by the user, by Claude, or both
Slash command
/mizunomi32-skills:diagnoseThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
難しいバグのための規律です。明示的に正当化できる場合だけフェーズをスキップしてください。
難しいバグのための規律です。明示的に正当化できる場合だけフェーズをスキップしてください。
コードベースを探索する際は、プロジェクトのドメイン用語集を使って関連モジュールの明確なメンタルモデルを作り、触れる領域の ADR を確認してください。
これがこのスキルの本質です。 それ以外はすべて機械的な作業にすぎません。バグに対して高速・決定的・エージェントが実行可能な合否シグナルがあれば、必ず原因にたどり着けます。二分探索も、仮説検証も、計測も、すべてそのシグナルを消費するだけです。シグナルがなければ、いくらコードを眺めても救われません。
ここに不釣り合いなほどの労力を注いでください。積極的に。創造的に。決して諦めずに。
git bisect run できるようにする。scripts/hitl-loop.template.sh で 人間を 駆動し、ループを構造化したまま保つ。キャプチャした出力がエージェントにフィードバックされる。正しいフィードバックループを構築すれば、バグは90%修正されたも同然です。
ループをプロダクトとして扱ってください。何らかの ループができたら、こう問います。
30秒かかる不安定なループは、ループがないのとほとんど変わりません。2秒の決定的なループはデバッグの超能力です。
目標はきれいな再現ではなく、再現率の向上です。トリガーを100回ループし、並列化し、ストレスを加え、タイミングウィンドウを狭め、sleep を注入してください。50%再現するバグはデバッグ可能ですが、1%は不可能です。デバッグ可能になるまで再現率を上げ続けてください。
立ち止まって、その旨を明示してください。試したことを列挙します。ユーザーに次のいずれかを依頼してください。(a) 再現できる環境へのアクセス、(b) キャプチャ済みアーティファクト(HAR ファイル、ログダンプ、コアダンプ、タイムスタンプ付き画面録画)、(c) 一時的な本番計測を追加する許可。ループなしで仮説立案へ進んでは いけません。
信頼できるループができるまで、フェーズ 2 へ進まないでください。
ループを実行します。バグが現れるのを観察します。
確認事項:
バグを再現できるまで先へ進まないでください。
いずれかを検証する前に、3〜5個の順位付けした仮説を生成してください。単一仮説の生成は、最初の尤もらしいアイデアにアンカリングしてしまいます。
各仮説は 反証可能 でなければなりません。立てる予測を明示してください。
形式: 「もし が原因なら、<Y を変えると> バグが消える / <Z を変えると> 悪化する。」
予測を述べられないなら、その仮説は単なる勘です。捨てるか、鋭くしてください。
順位付けしたリストを検証前にユーザーに見せてください。 ユーザーはドメイン知識を持つことが多く、即座に順位を入れ替えます(「#3 に変更をデプロイしたばかりだ」)。あるいは既に排除済みの仮説を知っています。安価なチェックポイントで、大きな時間短縮になります。ただしブロックはしないでください。ユーザーが不在なら自分の順位で進めます。
各プローブはフェーズ 3 の特定の予測に対応していなければなりません。一度に1変数だけ変えてください。
ツールの優先順位:
すべてのデバッグログにタグを付けてください。 例: [DEBUG-a4f2]。最後のクリーンアップが grep 一発になります。タグなしのログは生き残り、タグ付きのログは死にます。
パフォーマンス分岐。 パフォーマンス退行ではログはたいてい役に立ちません。代わりに、ベースライン計測(タイミングハーネス、performance.now()、プロファイラ、クエリプラン)を確立してから二分探索します。計測が先、修正が後です。
回帰テストは 修正より前 に書いてください。ただし、それに 正しい継ぎ目(seam)が存在する 場合に限ります。
正しい継ぎ目とは、テストが呼び出し元で発生する 実際のバグパターン を実行できる場所です。利用可能な継ぎ目が浅すぎる場合(バグが複数の呼び出し元を必要とするのに単一呼び出し元のテスト、バグを引き起こした連鎖を再現できないユニットテスト)、そこに置いた回帰テストは誤った安心感を与えます。
正しい継ぎ目が存在しないこと自体が発見です。 記録してください。コードベースのアーキテクチャがバグを固定化するのを妨げています。次のフェーズのためにフラグを立ててください。
正しい継ぎ目が存在する場合:
完了宣言の前に必須:
[DEBUG-...] 計測が除去されている(プレフィックスを grep)そして問います。何があればこのバグを防げたか? 答えがアーキテクチャ変更(良いテスト継ぎ目が無い、絡み合った呼び出し元、隠れた結合)を伴うなら、具体的な内容とともに /improve-codebase-architecture スキルへ引き継いでください。推奨は修正が入った 後 に行ってください。開始時よりも今のほうが多くの情報を持っています。
npx claudepluginhub mizunomi32/skills --plugin mizunomi32-skillsCreates, edits, and optimizes skills for Claude Code, including drafting, evaluating with test prompts, iterating on performance, and improving skill descriptions for better triggering accuracy.