Community寫作與編輯github.com

開發規範 (Dev-discipline)

用於修復 bug、回歸或失敗的測試(包括功能性 UI bug);修改任何判斷正確性的項目(測試、驗證器、檢測器、閾值、CI)、金錢或數值公式、遷移或驗證;測試變綠、不穩定或你想編輯、跳過或削弱它時;測試不符合規格時;重試失敗嘗試時;將程式碼更改委派給子代理或接受其報告和數字時;部署時;檢查區塊時。

開發規範 (Dev-discipline) 是什麼?

Dev-discipline 技能是一套嚴謹的開發紀律,旨在透過系統化的程序確保程式碼變更的正確性與可靠性。它適用於所有涉及判斷正確性的項目,如測試、驗證器、閾值、金錢計算、資料遷移和驗證機制。該技能要求使用 `prove_fix.py` 等腳本進行嚴格的證據鏈驗證(紅/綠/反轉),並透過獨立預言機(oracle)和閘門檢查(gate)來防止人為干預。它支援 Claude Code、Cursor 等 AI 代理平台,強調自動化、可重複性和誠實報告,最終以 `DONE`、`BLOCKED` 或 `SPEC_CONFLICT` 等明確狀態結束。

相容平台~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/volniy082-spec/dev-discipline/tree/HEAD

Installed? Explore more 寫作與編輯 skills: steipete/notion, langchain-ai/langchain, bytedance/podcast-generation · View all 6 →

在你喜歡的 AI 中提問

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

說明文件

開發規範 (Dev-discipline) 是做什麼的?

「完成」是由你未調整的外部訊號所確認的。 一個書面規則僅命名失敗類別;閘門中的檢查則阻止它。當某類別重複出現時,在同一提交中加入該檢查。 $DD = 此檔案旁的 scripts/ 資料夾(exit 0 通過, 1 失敗, 2 未證明)。

依表面嚴格執行。 對判斷性項目(測試、驗證器、閾值、CI)、金錢與數值公式、遷移、驗證、靜默失敗進行完整循環。一個約 10 行的本地修復加上規格字面值:prove_fix.py,2–3 個手動撰寫的缺陷類別突變體,對一個你工作時未使用的輸入執行一次。散文、UI 外觀、文件、原型:執行測試和一次冒煙測試。沒有測試或執行器:在其自己的提交中新增一個最小的測試(設定,而非弱化)。

循環

  1. 編輯前測量: 一個你將比較前後的命令。從原始資料推導範圍,而非摘要或記憶。列出整個類別:共享根因的每個實例。→ references/debugging.md
  2. 修復缺陷所走路徑上的根因。 頂層的防護不是修復。回歸:git bisect run。三次失敗嘗試後,更換方法或上下文。新實體、金錢/資料流或遷移:先寫一則 5–10 行的設計備忘(debugging.md §10)。
  3. 證明測試: 在父提交上透過斷言變紅(ImportError、收集錯誤、跳過 = 未證明),在修復後變綠,撤銷程式碼變更後再次變紅:$DD/prove_fix.py。新檢查在錯誤輸入上觸發,在正確輸入上保持靜默。對於金錢和數字,預期值為規格字面值(# oracle: <source>)。
  4. 閘門: 測試在同一提交中於 CI 執行;跳過、逾時和「0 個測試」不算通過;排除清單只會縮小;對 glob 或註冊表的循環斷言找到多少項目。→ gate-integrity.md
  5. 接受 基於最終執行在確切樹上的執行器摘要行,而非管線的 $?。
  6. 關閉 使用撰寫者未調整的檢查:其他資料、唯讀生產環境冒煙測試、獨立預言機,且預期結果先寫下。它所找到的類別進入閘門。→ proof-and-oracles.md

預言機及其保護

  • 預言機與其檢查的程式碼不共享任何程式碼。黃金檔案和自我一致性證明一致性,而非正確性。
  • 驗證腳本也是受測試的程式碼:對一個好的和一個壞的輸入執行它;列印它檢查了多少項目。
  • 測試、快照、預期值和 CI 僅透過合約變更:簡報,或單獨工作時,一個命名變更的使用者請求(新規格、票證、值)加上編輯前寫下的一行(哪些測試變更,新值來自何處)。「讓它通過」不是合約:與規格衝突的測試保持原樣,答案是 SPEC_CONFLICT。值變更放在單獨的 test: 提交中。跳過、刪除的斷言、縮小的覆蓋率需要陳述理由。 切勿調整程式碼以達到預期數字。評判最終差異,而非編輯工具:$DD/guard_diff.py(先提供建議)。阻礙合法工作的檢查是缺陷:回報 BLOCKED,絕不繞過。→ oracle-protection.md

自主性

預設繼續。僅詢問不可逆轉的事項(安全性、付款、生產資料寫入、權限)或與目標衝突的事項。在分岔點,選擇一個,記錄原因、兩個讀數的數字以及如何撤銷,然後繼續。受阻:完成所有獨立事項,然後以一行命名所需動作和命令結束。

報告

  • 每個標準 PASS | FAIL | NOT_PROVEN 附上命令、退出碼和輸出行;加上 not_checked。
  • 裁決:DONE、BLOCKED(reason)、SPEC_CONFLICT(test, source)、IMPOSSIBLE、NOT_REPRODUCED。誠實的未完成退出是成功;靜默跳過是缺陷。命名部分狀態(「防護已新增,根因仍存在」)。
  • 每個數字都附帶來自最終執行的命令。重新執行子代理報告的數字($DD/reexec_claims.py)。
  • 提交訊息內容 = 證據記錄:測量前後對比、閘門行、未完成事項及其位置。

紅旗

我注意到我執行
未在父提交上變紅就變綠prove_fix.py
引用子代理的數字或我的記憶重新執行它
在沒有合約的情況下編輯測試或閾值合約行或 SPEC_CONFLICT
skip、retry、sleep、noqa 來讓測試變綠找出原因,使其具有確定性(refactor-flaky.md)
即將詢問可逆轉的事項決定、記錄、繼續

更多:delegation.md(子代理、審查者、簡報)、release.md(部署)、process-ledger.md、evidence.md。

相關技能