Trace スキル
このスキルは、あいまいで因果関係が強く、証拠が重要な質問に対して、観測された結果がなぜ発生したのかを説明することを目的とし、すぐにコードの修正や書き換えに飛びつかないようにします。
これは、ビルトインの tracer エージェントの上位に位置するオーケストレーションレイヤーです。目標は、トレーシングを再利用可能なOMC(Operation-Monitoring-Control)オペレーションレーンとして機能させることです。すなわち、観測結果を再提示し、競合する説明を生成し、並行して証拠を収集し、説明をランク付けし、不確実性を最も効率的に解消できる次のプローブを提案します。
良い使用例
/oh-my-claudecode:trace は、問題が次のような場合に使用します:
- あいまい
- 因果関係がある
- 証拠が重要
- 競合する説明を並行して調査するのが最適
例:
- 実行時バグやリグレッション
- パフォーマンス / レイテンシ / リソース動作
- アーキテクチャ / プレモーテム / ポストモーテム分析
- 科学的または実験的な結果のトレーシング
- 設定 / ルーティング / オーケストレーション動作の説明
- 「この出力が与えられた場合、考えられる原因を遡る」
コアトレーシング契約
常に以下の区別を維持します:
- 観測結果 -- 実際に観測されたもの
- 仮説 -- 競合する説明
- 支持する証拠 -- 各説明を裏付けるもの
- 反証 / ギャップ -- 矛盾するもの、またはまだ不足しているもの
- 現在の最良の説明 -- 現時点での主要な説明
- 重要な未確定事項 -- 有力な説明を分けている欠落した事実
- 識別プローブ -- 不確実性を解消するための最も価値のある次のステップ
以下のような状態に陥らないようにします:
- 一般的な修正ループ
- 一般的なデバッガーの要約
- ワーカー出力の生のダンプ
- 証拠が不十分な場合の偽りの確信
証拠の強さの階層
証拠はフラットではなく、ランク付けされたものとして扱います。
強いものから弱いものへ:
- 制御された再現 / 直接実験 / 一意に識別可能なアーティファクト
- 厳密な来歴を持つ一次ソースアーティファクト(トレースイベント、ログ、メトリクス、ベンチマーク出力、設定、git履歴、ファイル:行の動作)
- 同じ説明に収束する複数の独立した情報源
- 単一ソースのコードパスまたは動作推論
- 弱い状況証拠(タイミング、命名、スタック順序、以前のバグとの類似性)
- 直感 / 類推 / 推測
より強い矛盾する証拠が存在する場合、主に下位の階層に依存する仮説は明示的にランクを下げます。
強い反証 / 不確証ルール
真剣な /trace の実行では、自分自身の好む説明を反証しようと試みなければなりません。
各トップ仮説について:
- 支持する証拠を収集する
- 反証となる証拠を収集する
- その仮説がどのような識別可能な予測を行うかを述べる
- どのような観測結果がその仮説と両立しにくいかを述べる
- その仮説を次善の代替案と区別するための最も安価なプローブを特定する
以下の場合、仮説のランクを下げます:
- 直接的な証拠が矛盾する
- 新しい未検証の仮定を追加することでのみ生き残る
- 競合する仮説と比較して識別可能な予測を行わない
- より強力な代替案がより少ない仮定で同じ事実を説明する
- 支持が主に状況証拠である一方、競合仮説はより強力な証拠階層を持つ
チームモードオーケストレーション形状
/trace には Claude ビルトイン チーム モード を使用します。
リードは以下を行います:
- 観測結果または「なぜ」の質問を正確に再提示する
- トレーシングターゲットを抽出する
- 複数の意図的に異なる候補仮説を生成する
- チームモードでデフォルトで3つのトレーサーレーンを起動する
- レーンごとに1つのトレーサーワーカーを割り当てる
- 各トレーサーワーカーに、そのレーンの支持および反証となる証拠を収集するように指示する
- 主要仮説と最も強い残りの代替案の間で反駁ラウンドを実行する
- トップレーンが本当に異なるのか、それとも同じ根本原因に収束しているのかを検出する
- 明示的な重要な未確定事項と識別プローブを含むランク付けされた統合結果にまとめる
重要:ワーカーは意図的に異なる説明を追求すべきであり、同じ説明を並行して追求するべきではありません。
v1のデフォルト仮説レーン
プロンプトがより良い分割を強く示唆しない限り、以下の3つのデフォルトレーンを使用します:
- コードパス / 実装原因
- 設定 / 環境 / オーケストレーション原因
- 測定 / 成果物 / 前提条件ミスマッチ原因 -- システムの欠陥だけでなく、検証方法の欠陥もカバーします。例:検証クエリが異なるエンティティ、テナント、ストリーム、グループ間で単一のディメンションキーを再利用している、比較フィルターの形状がスキーマの粒度と一致しない、カタログやカラム名が列挙なしでランタイム間でポータブルであると仮定された、など。これには、マルチエンティティの前提/キー仮定のミスマッチが含まれます。
レーン3の場合、エンティティ間の不一致は、エスカレーションの前に前提監査が必要です。エンティティのディメンションを列挙し、ゼロ行または不一致の結果が、システムの欠陥ではなく、複数のエンティティにわたって1つのキーを適用したことによるものかどうかを確認します。結果は検証方法の欠陥である可能性があります。
これらのデフォルトは意図的に広く設定されており、最初のスライスがバグ、パフォーマンス、アーキテクチャ、実験トレーシングの全体で機能するようにします。
必須のクロスチェックレンズ
最初の証拠収集後、関連する場合に以下のレンズでリーダーをストレステストします:
- システムレンズ -- キュー、リトライ、バックプレッシャー、フィードバックループ、上流/下流の依存関係、境界障害、調整効果
- プレモーテムレンズ -- 現在の最良の説明が不完全または間違っていると仮定する。どのような障害モードが後でトレースを悩ませるか?
- サイエンスレンズ -- コントロール、交絡因子、測定バイアス、代替変数、反証可能な予測
これらのレンズは埋め草ではありません。見逃された説明、隠れた依存関係、弱い推論を明らかにできる場合に使用します。
ワーカー契約
各ワーカーは、汎用の実行者ではなく、tracer レーンのオーナーであるべきです。
各ワーカーは以下を実施する必要があります:
- 正確に1つの仮説レーンを所有する
- そのレーンの仮説を明示的に再提示する
- レーンの支持となる証拠を収集する
- レーンの反証となる証拠を収集する
- 自身のケースの背後にある証拠の強さをランク付けする
- 不足している証拠、失敗した予測、残っている不確実性を指摘する
- レーンの重要な未確定事項を特定する
- レーン固有の最適な識別プローブを推奨する
- 明示的に指示されない限り、実装に陥らないようにする
有用な証拠ソースは以下を含みます:
- 関連するコード、テスト、設定、ドキュメント、ログ、出力、ベンチマークアーティファクト
trace_timelineを介した既存のトレースアーティファクトtrace_summaryを介した既存の集計トレース証拠
推奨されるワーカー戻り構造:
- レーン
- 仮説
- 支持する証拠
- 反証 / ギャップ
- 証拠の強さ
- 重要な未確定事項
- 最適な識別プローブ
- 確信度
リーダー統合契約
最終的な /trace の回答は、単に連結するのではなく、統合する必要があります。
以下を返します:
- 観測結果
- ランク付けされた仮説
- 仮説ごとの証拠要約
- 反証 / 欠落している証拠
- 反駁ラウンド
- 収束 / 分離ノート
- 最も可能性の高い説明
- 重要な未確定事項
- 推奨される識別プローブ
- 追加トレースレーン(オプション、不確実性が高い場合のみ)
たとえ1つの説明が現在優勢であっても、ランク付けされたショートリストを保持します。
反駁ラウンドと収束検出
トレースを閉じる前に:
- 最強の非リーダーレーンに、現在のリーダーに対する最善の反駁を提示させる
- リーダーに、主張ではなく証拠で反駁に回答させる
- 反駁がリーダーを実質的に弱体化させた場合、テーブルを再ランク付けする
- 2つの「異なる」仮説が同じ基礎メカニズムに還元される場合、それらを統合し、明示的にその旨を述べる
- 2つの仮説がまだ異なる次のプローブを示唆している場合、似たように聞こえても別々に保持する
複数のワーカーが似たような言葉を使用しているからといって収束を主張しないでください。収束には以下が必要です:
- 同じ根本原因メカニズム、または
- 同じ説明を指し示す独立した証拠の流れ
明示的なランクダウンガイダンス
リーダーは、仮説がなぜランクダウンしたかを明示的に述べる必要があります:
- より強い証拠によって矛盾した
- 予測した観測結果が欠けている
- 追加のアドホックな仮定が必要
- リーダーよりも少ない事実を説明する
- 反駁ラウンドで敗北した
- より強力な親説明に収束した
これは、/trace が読者に、なぜある説明が別の説明よりも優れているのかを教えるべきであり、単に最終的なテーブルを提示するだけではないため、重要です。
推奨されるリーダープロンプトスケルトン
以下のようなチーム指向のオーケストレーションプロンプトを使用します:
- 「観測結果を正確に再提示してください。」
- 「意図的に異なる3つの仮説を生成してください。」
- 「Claude ビルトイン チーム モードを使用して、仮説ごとに1つのトレーサーレーンを作成してください。」
- 「各レーンについて、支持および反証となる証拠を収集し、証拠の強さをランク付けし、重要な未確定事項と最適な識別プローブを特定してください。」
- 「必要に応じて、システム、プレモーテム、サイエンスレンズをリーダーに適用してください。」
- 「上位2つの説明の間で反駁ラウンドを実行してください。」
- 「ランク付けされた説明テーブル、収束ノート、重要な未確定事項、および単一の最適な識別プローブを返してください。」
出力品質基準
良い /trace 出力は:
- 証拠に基づいている
- 簡潔だが厳密
- 時期尚早な確信に懐疑的
- 欠落している証拠について明示的
- 次のアクションについて実用的
- 弱い説明がなぜランクダウンされたかについて明示的
最終統合形状の例
観測結果
[発生したこと]
ランク付けされた仮説
| 順位 | 仮説 | 確信度 | 証拠の強さ | リードする理由 |
|---|---|---|---|---|
| 1 | ... | 高 / 中 / 低 | 強い / 中程度 / 弱い | ... |
仮説ごとの証拠要約
- 仮説1: ...
- 仮説2: ...
- 仮説3: ...
反証 / 欠落している証拠
- 仮説1: ...
- 仮説2: ...
- 仮説3: ...
反駁ラウンド
- リーダーへの最良の反駁: ...
- リーダーが保持/失敗した理由: ...
収束 / 分離ノート
- ...
最も可能性の高い説明
[現在の最良の説明]
重要な未確定事項
[不確実性を開いたままにしている単一の欠落した事実]
推奨される識別プローブ
[単一の次のプローブ]
追加トレースレーン
[不確実性が高い場合のみ]