给 AI 编码团队的反腐败防线
CI 绿了 ≠ 没破坏。每一次改动都在悄悄增加耦合、漏掉消费者、堆出 god-function。 OpenArch 用本地、确定的符号级分析,在提交前把这些看不见的冲击照亮—— 并给你的 Agent 一份它真正会读的防线手册。
每个痛点都是 AI 辅助开发里真实会遇到的腐化形态。左列是"没有 OpenArch 时",右列是"装上之后"。
不用改 OpenArch 核心,也不用等官方发版。发现一种新的腐化模式,写一个脚本把它固化成检测规则——这就是"防线廉价可重建"的真正含义。内置 authority-import-bypass、placeholder-implementation 等跨语言规则,你也可以随时加自己的。
文本剪枝候选,只读不解析
tree-sitter 结构化查询
脚本消费事实,产出 finding
// 检测 authority 边界内代码是否越界 import 禁止模块(如 node:fs) export default { scope: "repository", requires: ["authorities.v1"], // 声明所需事实;缺则 UNAVAILABLE(fail-closed) targets: { authority: "any" }, stages: { text: ({ files, text, facts }) => // ① 文本剪枝候选 files.filter(f => facts.authorities.value .some(a => a.prohibitedImports?.some(s => text(f).includes(s)))), ast: { fact: "static-imports.v1" }, // ② tree-sitter 确认结构 }, link({ records, facts }) { // ③ 脚本产出 finding // 命中 prohibitedImports 即报告,由项目策略决定 block/warn return hits; }, };
脚本只负责发现,裁决由项目 config.yml 的 authority_hygiene.quality_rules 决定(block / warn / report-only)。声明 requires 的事实不可用时返回 UNAVAILABLE——fail-closed,不降级兑底。
openarch contract --json 列出 context / test-governance / provider-list / rules-facts / docs-check 五份 JSON 契约的 id/version/status;破坏性变更 bump version,插件对未知版本 fail-closed。schema 自识别版本;readiness 三级分级 enforcing / advisory / optional——code-hook 未装是 ⚠,协调服务未配置是常态不是故障。openarch test:Vitest / node:test / Go / Rust / JUnit / pytest 六框架适配器,逐 provider 覆盖边界与适配器建议,只建议不自动启用。openarch_context/check/review/scan/test/contract 模型工具与机器契约消费,由同一版本化契约驱动。可复现路径(npm 发行暂缓,源码构建是当前正式安装方式;也可以直接把 INSTALL.md 交给 Agent 执行):
# 1. 构建并安装 CLI(前置:Node 20+、pnpm 9、bun、Git) git clone https://github.com/VilTea/openarch cd openarch corepack enable pnpm install pnpm release:binary pnpm release:local-command # 2. 在你的项目里初始化(新终端已可直接使用 openarch) cd /path/to/your-project openarch init --agent claude openarch context打开完整手册 → 在 GitHub 开始 ↗