Communitygithub.com

g-ki/agent-skills

協助針對困難的工程問題(架構決策、重構、功能設計),以實際程式碼為基礎,運用 Tim Hurson 的生產性思考模型進行六步驟結構化討論,並將最終結果轉換為技術 RFC。

agent-skills 是什麼?

此技能導入 Tim Hurson 的「生產性思考模型」,專門協助開發者或 AI 代理解決複雜的軟體工程問題。它提供一個六步驟的引導流程:從定義問題、設定成功標準(DRIVE 框架),到提出假設、生成答案、打造解決方案,最後對齊資源。整個過程要求每一步都緊扣實際的程式碼庫,強制搜尋並引用相關的檔案、設定與文件,避免空泛討論。每次對話僅進行一個步驟,並在每個步驟結束時將共識記錄到一個持續更新的筆記檔。使用者可以選擇直接進行互動式設計工作坊,或是以「rfc」開頭啟動 RFC 模式,將整個討論結果輸出為一份結構化的技術 RFC 文件。此技能適用於 Claude Code、Cursor 等開發代理工具,特別適合用於架構決策、大規模重構或新功能設計前的結構化思考。

相容平台✓Claude Code~Codex CLI~Cursor
npx skills add https://github.com/g-ki/agent-skills/tree/HEAD/skills/productive-thinking

在你喜歡的 AI 中提問

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

說明文件

生產性思考

使用 Tim Hurson 的生產性思考模型引導一場結構化設計討論,並可選擇性地將其撰寫為 RFC。

輸入

$ARGUMENTS

  • 如果輸入以 rfc 開頭,則執行 RFC 模式。其後的任何內容為選擇性標題或輸出路徑。
  • 否則執行互動模式,將輸入視為問題陳述。如果為空,請在使用者進行任何操作之前,要求使用者用一兩句話描述問題。

如何引導

  • 將一切都奠基於程式碼中。 在每個步驟之前,搜尋並讀取與該步驟相關的檔案、架構圖、設定和文件,並在依賴它們時引用路徑。此工作坊相較於白板討論的價值在於,結論是基於系統實際的行為,因此請驗證而非假設。對於需要廣泛瀏覽大量檔案的情況,請委派給一個探索子代理,以便工作坊的上下文能專注於討論本身。
  • 減輕使用者的負擔。 每次提問最多 5 個問題,並根據你所發現的內容附上你自己的建議答案,這樣使用者就可以回答「對,大致上是,但是…」,而不是從一張白紙開始。
  • 每次一個步驟。 用像 步驟 2 / 6 — 什麼是成功? 這樣的標題開始每個步驟,執行該步驟,然後停止並等待。僅在使用者準備好時才繼續;讓他們可以跳過、重新檢視或在步驟之間跳轉。
  • 維護一個持續更新的筆記檔。 在每個步驟之後,將達成共識的結果附加到 <rfc-dir>/<slug>.notes.md(按照 RFC 模式步驟 3 中所述選擇 <rfc-dir>)。長時間的工作坊會壓縮或稍後恢復;筆記檔讓 RFC 模式或新的工作坊能夠在未遺失決策的情況下接續進行。在第一次建立筆記檔時告訴使用者它位於何處。

六個步驟

1. 發生了什麼事?

目標:對現狀和目標未來達成共同理解。 探索受影響區域的既有實作、呼叫點、資料模型和最近的 git 歷史紀錄。 包含:痛點或瓶頸(附上如錯誤、指標或程式碼等證據)、受影響的模組和服務、哪些人受到影響,以及「解決問題」後的樣貌。

2. 什麼是成功?(DRIVE)

目標:所有選項都將據以評判的標準。從步驟 1 提出一個草案,並讓使用者修正。

  • Do(必須做到):解決方案必須完成的事項
  • Restrictions(限制):硬性約束(向後相容性、效能預算、技術棧、合規性)
  • Investment(投入):團隊願意花費的時間、人力與複雜度
  • Values(價值觀):用於打破僵局的工程原則(簡潔性、可測試性等)
  • Essential outcomes(基本成果):不可協商的結果,盡可能可衡量

也要捕捉明確的非目標。

3. 問題是什麼?

提出 2–3 個以不同角度框架挑戰的「我們該如何…」問題,例如一個狹隘的問題和一個挑戰步驟 1 中某個假設的問題。使用者選擇或改寫一個;這將成為工作坊後續問題陳述。

4. 生成答案

提出 2–3 個真正不同的方法,這些方法必須奠基於程式碼庫,而非同一個點子的變體。針對每個方法:簡短描述、它會觸及的檔案或模組,以及其主要風險。在此步驟中暫緩判斷,並邀請使用者提出自己的想法。

5. 打造解決方案

根據 DRIVE 標準為每個方法評分(使用小型表格效果很好),推薦其中一個,並說明你正在接受的取捨。然後強化它:失效模式、邊界情況、遷移考量、未解決的問題。記錄其他選項落選的原因;這將成為「已考慮的替代方案」的內容。

6. 對齊資源

就交付形式達成一致,而非個別的任務:階段或里程碑以及每個階段能展示什麼、最需要優先驗證的風險部分、功能開關和遷移策略、測試策略、部署與回滾,以及需要監控的項目。詳細的任務分解將在稍後由 /task-breakdown 完成,該工具會以 RFC 為基礎進行。最後,提議產生 RFC。

RFC 模式

  1. 尋找工作坊:利用到目前為止的對話內容以及筆記檔(如果存在的話)。如果完全沒有工作坊,請說明並提議開始一個新的:要求問題陳述並開始步驟 1。
  2. 如果有缺失的步驟,列出它們,並詢問是要現在填補,還是草擬 RFC 並將這些區段標記為待決定。請勿憑空創造使用者未做出的決定。
  3. 選擇輸出的位置。RFC、筆記和任務檔案是開發者的本地工作文件:預設不進行追蹤,不與程式碼一起提交。尋找已存在的本地、被 git 忽略的資料夾(檢查 .gitignore 和 .git/info/exclude)並遵循其命名慣例。如果沒有,則提議 .rfcs/YYYY-MM-DD-<slug>.md,並將 .rfcs/ 加入 .git/info/exclude,這會在不變更儲存庫的 .gitignore 的情況下在本地忽略它。僅在使用者說團隊會提交 RFC 時,才使用如 docs/rfcs/ 這樣的追蹤資料夾。
  4. 使用 templates/rfc.md 撰寫 RFC,根據工作坊內容填寫每個區段,並將程式碼庫的主張與檔案路徑連結。
  5. 告知使用者路徑,並列出任何待決定區段與未解決問題。
  6. 提供下一步:/task-breakdown <rfc-path> 將 RFC 轉換為團隊可以接手處理的 1 個故事點任務。

Individual skills in this repo

This repo contains 1 individual skill — each has its own dedicated page.

相關技能