Communitygithub.com

ajitta/know-your-unknowns

Claude Code 插件:知己之未知 — 盲點審查、領域入門、實作前訪談、可調校方案、偏差記錄與合併測驗

know-your-unknowns 是什麼?

「Know Your Unknowns」是一套專為與強大 AI 模型(如 Claude)協作而設計的操作循環。其核心概念是:瓶頸不在於模型本身,而在於使用者能否持續將計畫(地圖)與現實(領土)對齊;這之間的差距就是「未知」。這個技能將工作流程劃分為十個明確步驟:從定義價值與完成條件、進行盲點調查、架構性訪談、探索解決方案、建立風險假設原型,到可調校計畫、實作並記錄偏差、獨立驗證、理解檢查與價值覆盤。它特別設計來克服常規 AI 輔助開發的關鍵弱點——例如模型只依賴使用者給定的上下文,而無法主動辨識遺漏的約束條件或風險。此技能可在 Claude Code、Cursor 等支援工具人工智慧的平台上使用,透過建立 `.unknowns/` 目錄下的結構化紀錄(包含 `loop.json` 狀態檔、時間戳記的 HTML 成品與 `scorecard.md`)來確保工作流程即使在對話壓縮、暫停/恢復或新工作階段中仍能持續。根據任務規模提供縮減步驟(小型修正僅需步驟 7 的記錄規則;中等任務需 1-2-3-6-7-9;大型或不熟悉的工作則執行完整循環),讓使用者能有效地管理實作風險與認知負載。

相容平台✓Claude Code~Codex CLI~Cursor
npx skills add ajitta/know-your-unknowns

在你喜歡的 AI 中提問

開啟一個已預先載入此 Agent Skill 的新對話。

說明文件

未知循環 — 與強模型協作的操作循環

核心原則:與強模型協作時的瓶頸不在於模型本身,而在於使用者能否持續將地圖(計畫)與現實(領土)對齊。這之間的差距就是「未知」。 設計探索 → 提問 → 規劃 → 實作 → 記錄偏差 → 驗證的循環,遠比一個好的提示詞更重要。

起源:11 個「Know your unknowns」範例;此循環本身為插件擴充 — 參見 skills/loop/references/talk-source.md。

輸出:Artifact 工具 → .unknowns/<YYYY-MM-DD>-loop-<slug>.html → markdown。 每個階段的成品都保留其自身技能的流程控制;循環本身的控制則透過各階段的檢查點來實現,這些檢查點最終會彙整成 .unknowns/loop.json 追蹤器。 詳細資訊:skills/loop/references/output-routing.md

步驟(10 步 — 依規模縮減)

1. 定義價值與完成條件

開始前先與使用者確認:目的 / 對使用者的價值 / 完成條件 / 絕對不能破壞的既有行為 / 允許的成本與變更範圍。 沒有成功標準,實作量就會被誤認為進度。

2. 盲點調查 → /unknowns:blindspot(對於複製安裝則為 /blindspot)

僅調查,不進行實作。找出未知的未知、衝突點、回歸風險;產生改良後的提示詞。如果領域本身不熟悉(請求因術語陌生而模糊),請同時執行 /unknowns:teach-me。

3. 訪談 → /unknowns:interview

先處理架構相關的問題,每輪最多 4 個。

4. 探索解決方案與塑形(依需要)

  • 要做什麼尚未決定 → /unknowns:brainstorm(解決方案空間地圖)
  • 無法用文字描述預期的樣子 → /unknowns:prototypes(發散式原型)
  • 有可模仿的範例 → /unknowns:reference(參考分析)

5. 風險假設原型(依需要)

在完整實作之前,先建立僅驗證最不確定技術假設的最小原型。先明確陳述該假設及其成功/失敗條件。

6. 規劃 → /unknowns:plan

按修訂機率排序的可調校計畫,而非執行順序。需要使用者輸入的決策(結構、介面、UX 合約)應置於最上方。

7. 實作 + 偏差記錄 → 套用 /unknowns:notes 規則

記錄任何未納入計畫的項目;若決策觸及架構、使用者可見行為、資料或安全性,應暫停並提問。如果對話已被壓縮,請在繼續實作前重新調用 /unknowns:notes(以及此技能來獲得步驟列表)。

8. 獨立驗證 → unknowns:independent-reviewer 代理

使用 Agent 工具(subagent_type: unknowns:independent-reviewer)生成該代理。絕對不要使用 fork 或 /subtask——因為它們會繼承實作者的上下文,而這正是此步驟想要排除的。提供給代理的資訊:完成條件(步驟 1)、已核准的計畫(步驟 6)、IMPLEMENTATION_NOTES.md 的路徑、差異範圍/受影響檔案,以及如何執行測試。絕對不要提供實作者自己的摘要。

9. 理解檢查與交接 → /unknowns:quiz

確認使用者能夠在 PR 或交接中解釋這項工作。如果工作需要審查者或利害關係人核准,請同時產出 /unknowns:buy-in 文件。

10. 價值覆盤

以實際價值而非程式碼品質來評斷:誰的問題減少了、減少了多少/速度提升多少、可能未被使用的原因、衡量指標、移除條件。建立比較容易,創造價值仍然困難。

結束時記錄一行評分卡——詢問使用者這項工作是否揭露了他們原本不知道的事情,以及是否改變了某項決策,然後將該行附加到 .unknowns/scorecard.md。絕不要替他們回答這兩個問題,即使兩個答案都是「否」,也要寫下該行。詳細資訊:skills/loop/references/scorecard.md

規模縮減條件

  • 小型修正(1–2 個檔案,明確規格):僅需步驟 7 的規則(記錄)— 不需要完整循環。
  • 中型工作:1(一次交換)→ 2 → 3 → 6 → 7 → 9。
  • 大型或不熟悉的工作:所有步驟,其中步驟 4 和 5 僅在需要時執行。
  • 步驟 1 在所有層級中執行。不確定屬於哪個層級 → 詢問使用者,然後記錄選擇。

循環狀態(可承受壓縮、/resume、新工作階段)

維護 .unknowns/loop.json — {task, tier, stage, decisions[], artifacts[]} — 並在每個階段的邊界重寫它。每個階段結束時,以一個 AskUserQuestion 檢查點(繼續 / 跳過 / 停止)來收尾,並將答案記錄在那裡。

  • 引數 status:讀取檔案;回報層級、當前階段、剩餘步驟。
  • 引數 resume:讀取檔案;從記錄的階段繼續。
  • 任何其他引數文字即為任務描述。
  • 無引數:若 .unknowns/loop.json 存在則繼續,否則先詢問任務內容。

操作原則(簡化版)

  1. 定義目的。2. 在實作前找出盲點。3. 讓模型提出問題。4. 提供參考資料與原型,而非文字描述。5. 按修訂機率排序計畫。6. 記錄未知與計畫偏差。7. 透過測試與獨立審查驗證。8. 確認使用者能解釋結果。9. 以可操作的形式交付成品。10. 衡量實際價值,而非程式碼數量。

相關技能