Communitygithub.com

OwenBell0930/stop-chatter

讓LLM只輸出你要的最終結果,避免多餘解釋與過程留痕!

stop-chatter 是什麼?

Stop Chatter 是一個專為 AI 代碼代理(如 Claude Code、Cursor、Codex 等)設計的技能,旨在強制 LLM 僅輸出使用者要求的內容,避免在回答中夾帶修正過程、歷史紀錄或過度解釋。它支援「輕量模式」(預設)與「防護模式」兩種操作模式,前者適用於一般修正與後續補充,後者則僅在使用者明確要求或同一撤回項目再次出現時啟用。輕量模式下,代理會重構當前目標、保留活躍需求、移除明確撤回的內容及僅為服務該內容而存在的衍生檔案,並確保每次檔案操作都對應至少一個活躍需求。Skills 的運作依賴兩個自訂腳本:`stop_chatter.py init` 初始化檢查狀態,`stop_chatter.py check` 執行驗證,成功後自動清除暫存狀態。此技能尤其適用於需要嚴格控制輸出內容品質、避免雜訊干擾、以及保持對話與產出物整潔的開發場景。

相容平台~Claude Code~Codex CLI~Cursor
npx skills add OwenBell0930/stop-chatter

在你喜歡的 AI 中提問

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

說明文件

Stop Chatter

只保留使用者當前要求的內容。修正應當改變工作目標,而不是圍繞舊錯誤產生新的內容。

選擇最輕量的模式

  • 輕量模式(預設): 用於一般修正與後續補充。將目標保持在工作上下文中,並遵循以下規則。不要建立暫存狀態或其他工作流程產物。閱讀此技能或在聊天中複述計劃不算交付;請直接修改檔案。
  • 防護模式: 僅在使用者明確要求時啟用,或當同一已撤回項目再次出現且檢查範圍可限於該殘留物時啟用。在修改交付物前,請先閱讀 references/protocol.md,初始化一次,然後在交付前執行檢查器。

不要僅因為任務很長、涉及 Git 或多個檔案就切換至防護模式。本次修正完成後,一般接續工作將返回輕量模式。明確的未完成交接可重複使用同一任務狀態;請勿將已撤回列表寫入持久化記憶體。

請勿在交付物中提及 Stop Chatter、合規模式或修正歷史。保持對話完成摘要的有用性:在使用者需要了解發生了什麼時,報告實質變更、檢查結果與已知限制。

重新編譯當前目標

每次修正後:

  1. 將目標重新描述為當前的正向結果。
  2. 僅保留仍活躍的需求。已撤回的項目應被刪除,而非保留為負面需求。
  3. 分離出如簡潔、高效或不要過度建置等元約束。這些約束影響執行,但不能成為標題、標籤、UI 文案、版本名稱或持久化偏好。
  4. 僅當「不存在」本身是活躍的外部合約、安全屬性或驗收標準時,才保留明確的排除條款。

將重寫後的目標放入檔案,然後再清除殘留物。此輪未提及某項目 ≠ 撤回該項目。撤回一個項目並不授權刪除仍活躍的功能或清理專案其餘部分。不要在完成此步驟後將原始對話作為持續的規格文件。

可以移除的內容

只有明確撤回的內容,以及可見證據顯示僅為服務該內容而存在的衍生產物,才會進入清理集合。既有檔案和使用者先前的編輯預設保留。仍有效的功能、安全屬性和相容性合約保持不變。若檔案來源不明,則保留它。

主要產物與當前目標一致後,再檢查一次是否存在僅為服務已撤回項目而存在的衍生產物:本次修正的紀念性變更日誌或發行說明、唯一任務是證明已撤回項目不存在的測試、被拒絕選項的記錄、以及以已撤回功能命名的檔案。該次檢查並非專案範圍的全面清理。

僅在歧義阻礙交付時提問。不要為每個檔案添加確認步驟。

不要只為了紀念修正或證明未請求的項目不存在而添加測試。只有當活躍需求使該不存在為外部可觀察或安全關鍵時,才保留負向測試。檢查器自身的檔案操作合約測試可以保留。

追蹤此輪的檔案操作

本輪新增或修改的每個檔案都必須對應至少一個活躍需求。將路徑標記為允許變更並不授權刪除整個檔案。僅在可見的任務證據支援該刪除時,才刪除整個檔案。

註解解釋仍存在的程式碼的非顯著屬性。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 版或最終版。在回覆中,當使用者要求稽核軌跡或該移除對範圍、遷移、安全性或相容性有實質相關性時,才提及已移除的歷史。

相關技能