Stop Chatter
只保留使用者當前要求的內容。修正應當改變工作目標,而不是圍繞舊錯誤產生新的內容。
選擇最輕量的模式
- 輕量模式(預設): 用於一般修正與後續補充。將目標保持在工作上下文中,並遵循以下規則。不要建立暫存狀態或其他工作流程產物。閱讀此技能或在聊天中複述計劃不算交付;請直接修改檔案。
- 防護模式: 僅在使用者明確要求時啟用,或當同一已撤回項目再次出現且檢查範圍可限於該殘留物時啟用。在修改交付物前,請先閱讀 references/protocol.md,初始化一次,然後在交付前執行檢查器。
不要僅因為任務很長、涉及 Git 或多個檔案就切換至防護模式。本次修正完成後,一般接續工作將返回輕量模式。明確的未完成交接可重複使用同一任務狀態;請勿將已撤回列表寫入持久化記憶體。
請勿在交付物中提及 Stop Chatter、合規模式或修正歷史。保持對話完成摘要的有用性:在使用者需要了解發生了什麼時,報告實質變更、檢查結果與已知限制。
重新編譯當前目標
每次修正後:
- 將目標重新描述為當前的正向結果。
- 僅保留仍活躍的需求。已撤回的項目應被刪除,而非保留為負面需求。
- 分離出如簡潔、高效或不要過度建置等元約束。這些約束影響執行,但不能成為標題、標籤、UI 文案、版本名稱或持久化偏好。
- 僅當「不存在」本身是活躍的外部合約、安全屬性或驗收標準時,才保留明確的排除條款。
將重寫後的目標放入檔案,然後再清除殘留物。此輪未提及某項目 ≠ 撤回該項目。撤回一個項目並不授權刪除仍活躍的功能或清理專案其餘部分。不要在完成此步驟後將原始對話作為持續的規格文件。
可以移除的內容
只有明確撤回的內容,以及可見證據顯示僅為服務該內容而存在的衍生產物,才會進入清理集合。既有檔案和使用者先前的編輯預設保留。仍有效的功能、安全屬性和相容性合約保持不變。若檔案來源不明,則保留它。
主要產物與當前目標一致後,再檢查一次是否存在僅為服務已撤回項目而存在的衍生產物:本次修正的紀念性變更日誌或發行說明、唯一任務是證明已撤回項目不存在的測試、被拒絕選項的記錄、以及以已撤回功能命名的檔案。該次檢查並非專案範圍的全面清理。
僅在歧義阻礙交付時提問。不要為每個檔案添加確認步驟。
不要只為了紀念修正或證明未請求的項目不存在而添加測試。只有當活躍需求使該不存在為外部可觀察或安全關鍵時,才保留負向測試。檢查器自身的檔案操作合約測試可以保留。
追蹤此輪的檔案操作
本輪新增或修改的每個檔案都必須對應至少一個活躍需求。將路徑標記為允許變更並不授權刪除整個檔案。僅在可見的任務證據支援該刪除時,才刪除整個檔案。
註解解釋仍存在的程式碼的非顯著屬性。PR 與發行說明描述最終的正向狀態。UI 包含使用者可見的產品內容,絕不包含內部需求或修正歷史。除非使用者或發行流程要求,否則不要添加版本號碼、不可變發行聲明、雜湊或多餘的儀式。
保持記憶體乾淨
預設將修正視為任務本地的。僅在使用者明確要求持久化記憶體或清楚陳述穩定的跨任務偏好時,才持久化一個項目。儲存正向的抽象行為與範圍,而非被拒絕的範例。編輯完成後,掃描剩餘檔案(包括記憶體)中是否有已撤回項目及其在其他語言中的別名或相近名稱;僅移除這些痕跡。
防護模式檢查
在防護模式中,在修改交付物之前先初始化。如果對於此根源已存在有效的任務狀態,則重複使用,不要覆寫或重設起始基準。如果狀態無效或屬於不同的根源,則停止,不要重複使用或取代它。
python3 <skill-dir>/scripts/stop_chatter.py init --root .
將模板值替換為當前目標、最狹義的新增/修改路徑、有可見證據支援的準確 must_remove 路徑、已撤回的標籤與別名,以及元指令洩漏標記。請勿編輯 init 捕獲的基準。僅在這些值都更新後,再將 ready 設為 true。然後檢查一次:
python3 <skill-dir>/scripts/stop_chatter.py check --root . --cleanup-state-on-pass
成功時,此同一命令僅會移除 .stop-chatter/state.json。不要執行第二次成功的檢查或單獨的清理命令。不要刪除直譯器快取、測試快取或其他使用者檔案來「清理狀態」。失敗時,狀態會被保留;僅修正有證據的範圍或殘留問題,然後最多重新執行一次。
檢查器只負責報告。它不會刪除或恢復交付物,也不會決定產物所有權。通過代表已配置的檢查通過,而非實作正確或沒有任何殘留。
如果活躍的交接仍需要該狀態,請省略 --cleanup-state-on-pass 並在交接結束時移除該檔案。切勿將暫存的已撤回帳冊提升至記憶體。
關於安裝路徑與主機特定的呼叫方式,僅在安裝或診斷探索問題時閱讀 references/host-setup.md。
交付結果
僅在檔案與當前目標一致時停止。返回請求的產物及足夠的完成資訊,使使用者能了解實質變更、驗證與已知限制。不要為了讓回覆看起來乾淨而壓制有用的狀態。將產物本身以當前狀態的語言描述:不要稱之為修正版、清理版、簡潔版、無 X 版或最終版。在回覆中,當使用者要求稽核軌跡或該移除對範圍、遷移、安全性或相容性有實質相關性時,才提及已移除的歷史。