BCE — 診斷、修復並證明架構合規
BCE 是一個「失敗即關閉」的架構合規閘門。藍圖即是政策;原始碼是正常的修復範圍。優先使用儲存庫的 BCE MCP 伺服器進行診斷與工作目錄驗證。僅在 MCP 不可用,或要求的生命週期操作有意排除於 MCP 之外時,才使用 CLI。
選擇最短路徑工作流程
- 現有儲存庫為紅燈: 遵循下方的 MCP 優先修復循環。請勿載入生命週期撰寫材料。
- 就緒性或設定看起來有問題: 在閘門檢查前先呼叫
doctor_repository {}。 - 藍圖或閘門可能空洞無效: 先呼叫
validate_blueprint,再呼叫assess_teeth。 - 使用者要求建立或採用一條新規則: 在行動前先閱讀
references/lifecycle.md。撰寫與治理變更需使用 CLI,且需要人工審查。 - 使用者要求調整 Agent 技能: 使用獨立的
skill-tuning技能。
MCP 優先修復循環
- 呼叫
run_gate {}。產生的伺服器會在儲存庫內啟動,因此除非使用者刻意指定另一棵目錄樹,否則請省略repoDir。 - 讀取結構化欄位,而非僅看程序退出碼:
gateFailed: true、outcome: "violation"或報告verdict: "fail"為紅燈;outcome: "refusal"為紅燈,不得繞過;- 建議模式可能回傳
exitCode: 0,但實質裁定仍為紅燈。
- 使用每項違規的
constraintId、evidenceRef、observed和expected來找出最小的原始碼修正。 - 修改程式碼,而非政策。不得僅為清除違規而編輯藍圖、基線、模式、豁免、工作流程、MCP 設定、已安裝技能或引擎固定版本。
- 再次對即時工作目錄呼叫
run_gate {}。僅在gateFailed為 false、outcome為pass且所有選定報告皆通過時才算完成。 - 報告已修正的具體違規、變更的程式碼檔案、最終分數/裁定,以及政策是否變更。正常的修復必須聲明政策未變。
MCP 伺服器公開六個唯讀工具:
| 工具 | 用途 |
|---|---|
doctor_repository | 安裝、範圍、證明、政策、CI、技能與 MCP 就緒性檢查 |
run_gate | 即時目錄樹診斷與最終完成檢查 |
validate_blueprint | 結構與安全模式驗證 |
assess_teeth | 非空洞性證明 |
check_baseline | 在不改變政策的情況下,檢查新增債務與縮減基線的機會 |
get_report | 引擎已寫入的確定性報告 |
MCP 無法批准、修正、升級、建立基線或削弱政策。此限制是安全邊界,而非功能缺失。
CLI 備援方案
若專案無可用的 BCE MCP 伺服器,請使用確切的本地套件,而非取得浮動版本:
bce gate --repo . --extractor ast --all
針對未提交的修復,gate 已掃描即時目錄樹。若你刻意直接執行一個藍圖,請加上 --no-pin;否則 run 預設會評分已提交的 HEAD:
bce run --blueprint <path> --ct-repo . --no-pin --extractor ast --out compliance-report.json
退出碼 0 僅在讀取建議狀態與報告裁定後才視為程序通過。退出碼 1 表示已評分的違規或結構性拒絕;退出碼 2 表示以失敗關閉的掃描/拒絕條件。將 1 和 2 視為紅燈。
政策邊界
以下為受治理的表面:.blueprints/**、.bce-mode.json、基線與豁免檔案、BCE 工作流程、代理/MCP 設定、已安裝技能與引擎固定版本。不得將其作為附帶修復而變更。若合約本身有誤,請停止並提出單獨的、經審查的政策變更,並附上理由。
絕不可:
- 降低門檻、擴大基線或縮小範圍僅為取得綠燈;
- 在報告仍顯示失敗時,將建議模式的退出碼
0解釋為合規; - 在沒有具體的紅燈案例下,聲稱某條約束生效;
- 將
evaluator-refutable回報為萃取器的實際牙齒; - 將結構性拒絕視為通過;
- 聲稱代理操作即為獨立的人為證明。
撰寫與採用
僅在任務為建立、驗證、證明、導入、批准或執行合約時,才載入 references/lifecycle.md。該文件包含約束語法、萃取設定檔、確切命令、建議/基線/升級路徑與 CI 不變量。
詳細規格與證明語義隨套件置於 spec/ 和 docs/ 中。請優先使用這些本地的、版本匹配的檔案,而非浮動網頁。