Communitygithub.com

zehuichan/vibe-harness

用於決定是否撰寫代理筆記(Agent Note,即持久性設計決策或提案記錄),以及在 .agents/notes/ 目錄下新增、移動、合併、審計、精簡、歸檔或審閱代理筆記時使用,同時也負責每則新筆記所需的取代檢查。

vibe-harness 是什麼?

此技能「Agent Notes」旨在維護一個精簡且權威的決策記錄庫。每則筆記僅記錄程式碼與文件無法承載的設計理由(rationale),避免冗餘。技能涵蓋從判斷是否需要撰寫筆記、撰寫格式、取代檢查到分類審計、歸檔的完整流程。它支援所有需要長期追蹤設計決策的開發環境(如 Claude Code、Cursor 等 AI 代理工具),透過嚴格的語義分類(proposed/implemented/rejected/archived)與取代規則,確保決策記錄的一致與可追溯性。主要工作流程包括:決定筆記必要性、依類別與日期命名、強制記錄替代方案、進行全面取代檢查、依未來價值分類既有筆記、正確歸檔已實作筆記,最後驗證與報告變更。

相容平台✓Claude Code~Codex CLI~Cursor
npx skills add https://github.com/zehuichan/vibe-harness/tree/HEAD/skills/agent-notes

在你喜歡的 AI 中提問

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

說明文件

代理筆記

代理筆記讓決策庫保持精簡且權威:每則筆記只記錄程式碼和文件無法承載的理由,別無其他。版面、類別和檔案內格式的規則位於 .agents/notes/README.md;本技能掌管工作流程。請以語義判斷每則筆記;字數與建立時間僅是發現輔助,絕非評斷標準。這是指引,而非檢查清單。

判斷是否需要筆記

僅在需要記錄持久性決策理由時撰寫或更新筆記:為何選擇某個設計、它犧牲了什麼、哪些替代方案被捨棄及其原因,以及哪些驗證固定了該設計。請勿為機械性或局部編輯(包括本機 UI 呈現變更),或屬於程式碼、API 文件、README 或食譜的事實撰寫筆記。

  • 針對未來重大工作的提案應歸入 proposed/<class>/;當前變更中已做出的決策則放入 implemented/<class>/。
  • 如果現有活躍筆記已涵蓋該決策,請更新之,而非建立重複筆記。
  • 推翻某項決策應以新筆記處理,並交叉連結舊筆記;絕不可將舊筆記編輯成不同的決策。

撰寫筆記

  1. 從 .agents/notes/README.md 的表格中選擇類別,並以 yyyy-mm-dd-topic-title.md 格式命名檔案,使用該主題首次提出的日期。
  2. 使用 README 中的確切標題和生命週期的區段骨架。## Alternatives considered 是強制性的:記錄每個真正的替代方案及其被捨棄的原因;絕不可編造替代方案。
  3. 已實作筆記應以現在式撰寫,如同已出貨的現實:不包含計畫、驗收檢查清單或「應該」。保留固定該行為的驗證以及任何已命名的覆蓋缺口。
  4. 使用相對 Markdown 連結連結其他筆記和文件。遵循 prose-standard 和 trim-cot-leakage:不得在筆記自身的變更故事區段之外,包含審查流程、對話引用或變更敘述。

為每則新筆記進行取代檢查

在草擬前,搜尋活躍筆記樹(proposed/、implemented/、rejected/),尋找涵蓋相同決策、機制或被捨棄替代方案的筆記。在撰寫新筆記時,將每個匹配項分類如下:

  • 完全取代一則已實作筆記: 合併(新筆記保留所有獨特的理由、替代方案、後果、驗證和覆蓋缺口,然後刪除舊筆記並修復入站連結)或在同一次變更中將其歸檔。
  • 部分取代: 保留兩者皆為活躍狀態,交叉連結,並更新所有仍有效的部分。
  • 過時的提案: 將其移至 rejected/,並附上一行誠實的理由。
  • 過時的拒絕: 當該拒絕不再能防止合理的錯誤時,予以刪除。

請勿將已知的匹配項延遲到後續的審計。

依未來價值分類現有筆記

進行審計或精簡時,依生命週期套用以下結果:

  • 已實作,刪除: 僅描述小型 UI 調整或純機械性變更的筆記。修復或移除入站連結。本機錯誤修復、效能變更、新功能以及實質性行為或所有權決策,不能僅因其實作規模小就符合刪除條件。在決定保留或歸檔之前,請先套用此測試。
  • 已實作,保留活躍: 理由、替代方案、負面保證、持久性或線路語意、所有權邊界、安全規則或可能引導未來變更的重新引入條件。分類的是決策,而非其實作規模:一個機械性的重新命名仍然可以記錄持久的命名或相容性規則。
  • 已實作,歸檔: 一個完整且不太可能引導未來工作的實質性歷史決策,但其理由仍有保存價值。
  • 提議,永不歸檔: 保持活躍提案的活躍狀態;如果不再值得追求,則以誠實的理由拒絕之。
  • 已拒絕,僅作為防護措施保留: 僅在被捨棄的提案仍然是一個誘人且有意義的錯誤,且該筆記解釋了為何它被捨棄時,才保留拒絕記錄;否則予以刪除。

請勿為了達到某個配額而歸檔。檢查範圍內的每則筆記,將類似群組依同一原則分類,並為報告記錄真正邊際的決策。

校準:一篇關於收合側邊欄控制項樣式的筆記,無論多長都應刪除;一篇建立工作階段採用事件溯源,或指定儲存目錄單一擁有者的筆記,無論多短都應保持活躍;一篇記錄為何兩個套件不得合併的筆記,只要合併它們仍然具有誘惑力,就應作為防護措施保留。

歸檔已實作筆記

  1. 將完整的筆記(及其翻譯版本)從 implemented/<class>/ 移至 archived/<class>/。
  2. 不對內文進行任何編輯。僅在每個語言檔案中的 Status: implemented 正下方插入 Archived: YYYY-MM-DD,並使用相同的日期。
  3. 搜尋活躍的文檔中的入站連結。將它們重新導向至現行權威來源,僅在刻意引用歷史快照時才重新導向至歸檔路徑,或予以刪除。絕不驗證或修復歸檔筆記的連結。

歸檔後,絕不編輯、移動、翻譯、重新格式化或刪除該筆記。歸檔筆記仍是有效的連結目標,但不再是當前行為的權威來源。

驗證與報告

執行設定檔的 commands.docs-check 和 git diff --check,並確認每個變更過的相對連結都能解析。報告新增或更新的筆記、保持活躍、刪除、歸檔或拒絕的筆記,以及每個邊際案例及其選定的結果。

Individual skills in this repo

This repo contains 2 individual skills — each has its own dedicated page.

相關技能