Trace 技能
此技能用於模糊、因果性、證據密集的問題,其目標是解釋為何觀察到某個結果,而非直接跳入修正或重寫程式碼。
這是對內建 tracer 代理的協調層。目標是讓追蹤感覺像一個可重複使用的 OMC 操作車道:重新陳述觀察結果,產生競爭解釋,平行收集證據,對解釋進行排名,並提出能最快消除不確定性的下一個探測。
適合的入門案例
當問題具有以下特徵時,請使用 /oh-my-claudecode:trace:
- 模糊
- 因果性
- 證據密集
- 最適合透過平行探索競爭解釋來回答
範例:
- 執行期錯誤和回歸
- 效能 / 延遲 / 資源行為
- 架構 / 事前分析 / 事後分析
- 科學或實驗結果追蹤
- 配置 / 路由 / 協調行為解釋
- "給定此輸出,追溯可能的原因"
核心追蹤合約
始終保留這些區別:
- 觀察結果 -- 實際觀察到的內容
- 假設 -- 競爭解釋
- 支持證據 -- 支持每個解釋的內容
- 反對證據 / 差距 -- 與之矛盾或仍缺失的內容
- 當前最佳解釋 -- 目前領先的解釋
- 關鍵未知因素 -- 導致頂層解釋之間差距的缺失事實
- 判別性探測 -- 消除不確定性的最高價值下一步
不要 簡化成:
- 通用的修正程式碼迴圈
- 通用的除錯器摘要
- 工作器輸出的原始轉儲
- 在證據不足時假裝確定性
證據強度層級
將證據視為有層級,而非扁平。
從最強到最弱:
- 可控重現 / 直接實驗 / 唯一判別性工件
- 具有緊密來源的主要來源工件(追蹤事件、日誌、指標、基準輸出、配置、git 歷史、檔案:行數行為)
- 匯聚到相同解釋的多個獨立來源
- 單一來源的程式碼路徑或行為推論
- 弱間接線索(時序、命名、堆疊順序、與先前錯誤的相似性)
- 直覺 / 類比 / 推測
當存在更強的矛盾證據時,明確降低依賴較低層級假設的排名。
強證偽 / 否定規則
每個嚴肅的 /trace 執行都必須嘗試否定自己偏好的解釋。
對於每個頂層假設:
- 收集 支持 它的證據
- 收集 反對 它的證據
- 說明它做出何種獨特預測
- 說明哪種觀察結果會難以與之調和
- 識別能將它與次佳替代方案區分開來的最便宜探測
在以下情況降低假設排名:
- 直接證據與之矛盾
- 它只能透過添加新的未經驗證的假設來存活
- 與競爭對手相比,它沒有做出獨特的預測
- 一個更強的替代方案用更少的假設解釋了相同的事實
- 它的支持主要來自間接證據,而競爭對手有更強的證據層級
團隊模式協調形式
對於 /trace,使用 Claude 內建團隊模式。
領導者應:
- 精確地重新陳述觀察到的結果或「為什麼」問題
- 提取追蹤目標
- 產生多個刻意不同的候選假設
- 在團隊模式下,預設產生 3 個追蹤路徑
- 為每個路徑分配一個追蹤工作器
- 指示每個追蹤工作器收集 支持 和 反對 其路徑的證據
- 在領先假設和最強的剩餘替代方案之間進行 反駁回合
- 檢測頂層路徑是否真正不同,或者實際上匯聚到同一個根本原因
- 將發現合併成一個有層級的綜合報告,並包含明確的關鍵未知因素和判別性探測
重要提示:工作器應致力於探索刻意不同的解釋,而不是平行探索相同的解釋。
v1 的預設假設路徑
除非提示強烈建議更好的分類,否則使用以下 3 個預設路徑:
- 程式碼路徑 / 實作原因
- 配置 / 環境 / 協調原因
- 測量 / 工件 / 假設不匹配原因 — 涵蓋驗證方法缺陷,不僅是系統缺陷。範例:驗證查詢對不同的實體、租戶、串流或群組重用單一維度鍵;比較過濾器形狀與 schema 粒度不符;或者目錄或欄位名稱被假定在無列舉的情況下跨執行時期可移植。這包括多實體前提/關鍵假設不匹配。
對於路徑 3,跨實體差異需要在升級前進行前提審計:列舉實體維度,並檢查零行或不匹配結果是否來自將一個鍵應用於多個實體,而不是來自系統缺陷;結果可能是驗證方法的缺陷。
這些預設值故意設得很廣泛,以便第一個切片適用於除錯、效能、架構和實驗追蹤。
強制交叉檢查透鏡
在初始證據通過後,在相關時使用這些透鏡對領先者進行壓力測試:
- 系統透鏡 -- 佇列、重試、背壓、反饋迴圈、上游/下游依賴、邊界故障、協調效應
- 事前分析透鏡 -- 假設當前最佳解釋不完整或錯誤;什麼樣的失敗模式會在以後讓追蹤陷入尷尬?
- 科學透鏡 -- 控制項、混淆變數、測量偏差、替代變數、可證偽預測
這些透鏡不是填充內容。當它們能揭示遺漏的解釋、隱藏的依賴性或薄弱的推論時,就使用它們。
工作器合約
每個工作器應是 tracer 路徑的擁有者,而不是通用執行者。
每個工作器必須:
- 擁有恰好一個假設路徑
- 明確重新陳述其路徑假設
- 收集 支持 該路徑的證據
- 收集 反對 該路徑的證據
- 對其案例背後的證據強度進行排名
- 指出缺失的證據、失敗的預測和剩餘的不確定性
- 說明該路徑的 關鍵未知因素
- 推薦該路徑最佳 判別性探測
- 除非明確指示,否則避免簡化為實作
有用的證據來源包括:
- 相關的程式碼、測試、配置、文件、日誌、輸出和基準工件
- 透過
trace_timeline取得的現有追蹤工件 - 透過
trace_summary取得的現有彙總追蹤證據
建議的工作器回傳結構:
- 路徑
- 假設
- 支持證據
- 反對證據 / 差距
- 證據強度
- 關鍵未知因素
- 最佳判別性探測
- 信心
領導者綜合合約
最終的 /trace 答案應是綜合性的,而不僅僅是串接。
回傳:
- 觀察到的結果
- 層級化假設
- 按假設分類的證據摘要
- 反對證據 / 缺失證據
- 反駁回合
- 匯聚 / 分離備註
- 最可能的解釋
- 關鍵未知因素
- 推薦的判別性探測
- 額外追蹤路徑(可選,僅在不確定性仍然很高時)
即使目前有一個解釋占主導地位,也要保留一個層級化的候選名單。
反駁回合與匯聚檢測
在結束追蹤之前:
- 讓最強的非領先路徑向當前領導者提出其最佳反駁
- 強制領導者用證據而非斷言來回答反駁
- 如果反駁在實質上削弱了領導者,則重新排列表格
- 如果兩個「不同」的假設歸結為相同的底層機制,則合併它們並明確說明
- 如果兩個假設仍意味著不同的下一個探測,即使它們聽起來相似,也要保持分開
不要僅僅因為多個工作器使用了相似的語言就聲稱匯聚。匯聚需要:
- 相同的根本因果機制,或
- 指向相同解釋的獨立證據流
明確降級指引
領導者應明確說明假設為何被降級:
- 被更強的證據反駁
- 缺乏其預測的觀察結果
- 需要額外的特設假設
- 解釋的事實比領導者少
- 在反駁回合中失敗
- 匯聚到一個更強的父級解釋中
這很重要,因為 /trace 應教導讀者為什麼一個解釋優於另一個,而不僅僅呈現一個最終的表格。
建議的領導者提示骨架
使用類似以下的團隊導向協調提示:
- 「精確地重新陳述觀察結果。」
- 「產生 3 個刻意不同的假設。」
- 「使用 Claude 內建團隊模式為每個假設建立一個追蹤路徑。」
- 「對於每個路徑,收集支持和反對的證據,排名證據強度,並說明關鍵未知因素和最佳判別性探測。」
- 「如果有用,對領導者應用系統、事前分析和科學透鏡。」
- 「在頂層兩個解釋之間執行反駁回合。」
- 「回傳一個層級化的解釋表格、匯聚備註、關鍵未知因素和單一最佳判別性探測。」
輸出品質標準
良好的 /trace 輸出是:
- 有證據支持
- 簡潔但嚴謹
- 對過早的確定性持懷疑態度
- 明確指出缺失的證據
- 對下一步行動具有實用性
- 明確說明較弱的解釋為何被降級
最終綜合報告範例
觀察到的結果
[發生了什麼]
層級化假設
| 排名 | 假設 | 信心 | 證據強度 | 為何領先 |
|---|---|---|---|---|
| 1 | ... | 高 / 中 / 低 | 強 / 中 / 弱 | ... |
按假設分類的證據摘要
- 假設 1:...
- 假設 2:...
- 假設 3:...
反對證據 / 缺失證據
- 假設 1:...
- 假設 2:...
- 假設 3:...
反駁回合
- 對領導者的最佳反駁:...
- 領導者為何堅持 / 失敗:...
匯聚 / 分離備註
- ...
最可能的解釋
[當前最佳解釋]
關鍵未知因素
[保持不確定性開放的單一缺失事實]
推薦的判別性探測
[單一的下一個探測]
額外追蹤路徑
[僅在不確定性仍然很高時]