Community写作与编辑github.com

blueprint-conformance/bce

蓝图架构一致性引擎——以代码为修复面,在CI中强制执行架构意图。

bce 是什么?

BCE(Blueprint Conformance Engine)是一个故障闭合的架构一致性门禁工具,它将蓝图视为政策,源代码作为修复面,确保软件项目严格遵循架构意图。该工具支持通过MCP服务器进行诊断和修复循环,也可作为CLI回退方案使用。BCE提供六种只读工具,包括仓库诊断、门禁运行、蓝图验证、非空性评估、基线检查和报告获取,但不允许更改政策、基线或配置,这构成了其安全边界。当检测到违反时,BCE通过约束ID、证据引用、观察值和期望值精确定位最小代码修正范围,并强制要求修复代码而非修改政策,从而保证架构一致性在CI流水线中强制执行。

兼容平台~Claude Code~Codex CLI~Cursor
npx skills add blueprint-conformance/bce

Installed? Explore more 写作与编辑 skills: steipete/notion, langchain-ai/langchain, bytedance/podcast-generation · View all 6 →

在你喜欢的 AI 中提问

打开一个已预加载此 Agent Skill 的新对话。

文档

BCE —— 诊断、修复并证明架构一致性

BCE 是一个故障闭合的架构一致性门禁。蓝图即政策;源代码是正常的修复面。优先使用仓库的 BCE MCP 服务器进行诊断和工作树验证。仅在 MCP 不可用或所请求的生命周期操作有意不在 MCP 中提供时,才使用 CLI。

选择最短的工作流

  • 现有仓库为红色: 按照下面的 MCP 优先修复循环操作。不要加载生命周期创作材料。
  • 就绪或设置看起来有问题: 在门禁之前调用 doctor_repository {}。
  • 蓝图或门禁可能为空: 先调用 validate_blueprint,再调用 assess_teeth。
  • 用户要求创建或采用新规则: 在操作前阅读 references/lifecycle.md。创作和治理变更使用 CLI 并需要人工审查。
  • 用户要求调整 Agent 技能: 使用单独的 skill-tuning 技能。

MCP 优先修复循环

  1. 调用 run_gate {}。生成的服务器在仓库中启动,因此除非用户有意针对另一棵树,否则省略 repoDir。
  2. 读取结构化字段,而不是仅看进程退出码:
    • gateFailed: true、outcome: "violation" 或报告 verdict: "fail" 为红色;
    • outcome: "refusal" 为红色,并且不得绕过;
    • 咨询模式可能返回 exitCode: 0 而实质性裁决仍为红色。
  3. 使用每个违反项的 constraintId、evidenceRef、observed 和 expected 来识别最小的源代码修正。
  4. 修改代码,而非修改政策。不要仅仅为了清除违反而编辑蓝图、基线、模式、豁免、工作流、MCP 配置、已安装技能或引擎锁定。
  5. 再次针对活动工作树调用 run_gate {}。仅在 gateFailed 为 false、outcome 为 pass 且每个选中的报告都通过时才算完成。
  6. 报告已修复的精确违反项、更改的代码文件、最终得分/裁决,以及政策是否发生变化。正常的修复必须说明政策未变。

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/ 目录下。优先使用这些本地、版本匹配的文件,而不是不断变化的网页。

相关技能