代理筆記
代理筆記讓決策庫保持精簡且權威:每則筆記只記錄程式碼和文件無法承載的理由,別無其他。版面、類別和檔案內格式的規則位於 .agents/notes/README.md;本技能掌管工作流程。請以語義判斷每則筆記;字數與建立時間僅是發現輔助,絕非評斷標準。這是指引,而非檢查清單。
判斷是否需要筆記
僅在需要記錄持久性決策理由時撰寫或更新筆記:為何選擇某個設計、它犧牲了什麼、哪些替代方案被捨棄及其原因,以及哪些驗證固定了該設計。請勿為機械性或局部編輯(包括本機 UI 呈現變更),或屬於程式碼、API 文件、README 或食譜的事實撰寫筆記。
- 針對未來重大工作的提案應歸入
proposed/<class>/;當前變更中已做出的決策則放入implemented/<class>/。 - 如果現有活躍筆記已涵蓋該決策,請更新之,而非建立重複筆記。
- 推翻某項決策應以新筆記處理,並交叉連結舊筆記;絕不可將舊筆記編輯成不同的決策。
撰寫筆記
- 從
.agents/notes/README.md的表格中選擇類別,並以yyyy-mm-dd-topic-title.md格式命名檔案,使用該主題首次提出的日期。 - 使用 README 中的確切標題和生命週期的區段骨架。
## Alternatives considered是強制性的:記錄每個真正的替代方案及其被捨棄的原因;絕不可編造替代方案。 - 已實作筆記應以現在式撰寫,如同已出貨的現實:不包含計畫、驗收檢查清單或「應該」。保留固定該行為的驗證以及任何已命名的覆蓋缺口。
- 使用相對 Markdown 連結連結其他筆記和文件。遵循 prose-standard 和 trim-cot-leakage:不得在筆記自身的變更故事區段之外,包含審查流程、對話引用或變更敘述。
為每則新筆記進行取代檢查
在草擬前,搜尋活躍筆記樹(proposed/、implemented/、rejected/),尋找涵蓋相同決策、機制或被捨棄替代方案的筆記。在撰寫新筆記時,將每個匹配項分類如下:
- 完全取代一則已實作筆記: 合併(新筆記保留所有獨特的理由、替代方案、後果、驗證和覆蓋缺口,然後刪除舊筆記並修復入站連結)或在同一次變更中將其歸檔。
- 部分取代: 保留兩者皆為活躍狀態,交叉連結,並更新所有仍有效的部分。
- 過時的提案: 將其移至
rejected/,並附上一行誠實的理由。 - 過時的拒絕: 當該拒絕不再能防止合理的錯誤時,予以刪除。
請勿將已知的匹配項延遲到後續的審計。
依未來價值分類現有筆記
進行審計或精簡時,依生命週期套用以下結果:
- 已實作,刪除: 僅描述小型 UI 調整或純機械性變更的筆記。修復或移除入站連結。本機錯誤修復、效能變更、新功能以及實質性行為或所有權決策,不能僅因其實作規模小就符合刪除條件。在決定保留或歸檔之前,請先套用此測試。
- 已實作,保留活躍: 理由、替代方案、負面保證、持久性或線路語意、所有權邊界、安全規則或可能引導未來變更的重新引入條件。分類的是決策,而非其實作規模:一個機械性的重新命名仍然可以記錄持久的命名或相容性規則。
- 已實作,歸檔: 一個完整且不太可能引導未來工作的實質性歷史決策,但其理由仍有保存價值。
- 提議,永不歸檔: 保持活躍提案的活躍狀態;如果不再值得追求,則以誠實的理由拒絕之。
- 已拒絕,僅作為防護措施保留: 僅在被捨棄的提案仍然是一個誘人且有意義的錯誤,且該筆記解釋了為何它被捨棄時,才保留拒絕記錄;否則予以刪除。
請勿為了達到某個配額而歸檔。檢查範圍內的每則筆記,將類似群組依同一原則分類,並為報告記錄真正邊際的決策。
校準:一篇關於收合側邊欄控制項樣式的筆記,無論多長都應刪除;一篇建立工作階段採用事件溯源,或指定儲存目錄單一擁有者的筆記,無論多短都應保持活躍;一篇記錄為何兩個套件不得合併的筆記,只要合併它們仍然具有誘惑力,就應作為防護措施保留。
歸檔已實作筆記
- 將完整的筆記(及其翻譯版本)從
implemented/<class>/移至archived/<class>/。 - 不對內文進行任何編輯。僅在每個語言檔案中的
Status: implemented正下方插入Archived: YYYY-MM-DD,並使用相同的日期。 - 搜尋活躍的文檔中的入站連結。將它們重新導向至現行權威來源,僅在刻意引用歷史快照時才重新導向至歸檔路徑,或予以刪除。絕不驗證或修復歸檔筆記的連結。
歸檔後,絕不編輯、移動、翻譯、重新格式化或刪除該筆記。歸檔筆記仍是有效的連結目標,但不再是當前行為的權威來源。
驗證與報告
執行設定檔的 commands.docs-check 和 git diff --check,並確認每個變更過的相對連結都能解析。報告新增或更新的筆記、保持活躍、刪除、歸檔或拒絕的筆記,以及每個邊際案例及其選定的結果。