Skip to main content
Glama
sole03

mcp-rule-engine

by sole03

GovernFlow

AI-native code governance pipeline. Assemble, don't build.

GovernFlow 将 AI Agent 的代码治理从"自研轮子"重构为"组装业界工具链"的四层流水线。不建新平台,嵌入现有工作流。


环境依赖

依赖

版本要求

说明

Node.js

≥ 22

运行时

npm

≥ 10

包管理

SQLite

3 (内置)

本地数据库 (零配置)

Node.js 22 是硬性要求(使用了 --experimental 特性的 tree-sitter wasm 绑定)。SQLite 通过 better-sqlite3 内嵌,无需单独安装。


快速部署运行

方式一:npm 安装(推荐)

npm install governflow
# 或指定版本
npm install governflow@1.0.0-alpha.9

方式二:源码构建

# 1. 拉取仓库
git clone https://github.com/sole03/governflow.git
cd governflow

# 2. 安装依赖 (自动编译 TypeScript → dist/ + 生成 Prisma Client)
npm install

# 3. 配置环境变量 (可选,默认使用 SQLite)
#    set DATABASE_URL=file:./custom.db   (Windows)

# 4. 运行测试 (验证环境正确)
npm test                    # 291 tests, 37 files

# 5. 启动
governflow                  # MCP stdio 模式 (供 Cursor/Claude Desktop 等客户端使用)
# 或
npm run start:http          # HTTP REST API 模式

配置说明

环境变量

默认值

说明

DATABASE_URL

file:./mcp-cognition.db

SQLite 数据库路径

LOG_LEVEL

info

日志级别 (trace/debug/info/warn/error)

无需 .env 文件即可运行。所有配置均有合理默认值。


项目目录结构

governflow/
├── packages/
│   ├── core/                    # governflow-core — 协议无关内核
│   │   └── src/
│   │       ├── perception/      # 感知层: MerlionBridge + ShapleyAttributor
│   │       ├── proposal/        # 提案层: RegoCompiler + StructuredGenerator + PromptPipeline
│   │       ├── verification/    # 验证层: PropertyTests + ShadowVerifier
│   │       ├── delivery/        # 决策层: GitOpsEngine + CanaryController
│   │       ├── constraints/     # 约束 DSL 编译器 + 模板库 + 运行时
│   │       ├── sandbox/         # COW 沙箱 + 自愈循环 + 安全阀 + 健康门控
│   │       ├── dashboard/       # 指标收集器 + DashboardSnapshot 类型
│   │       ├── cognition/       # 认知图引擎核心
│   │       ├── events/          # 事件总线 + 领域事件
│   │       ├── audit/           # 满意度追踪 (开发者体验兜底)
│   │       ├── cli/             # CLI 入口
│   │       └── di/              # 依赖注入容器
│   └── dashboard/               # governflow-dashboard — 可视化仪表盘
├── src/                         # MCP Server 传输层 (stdio + HTTP)
│   ├── transport/               # MCP 工具处理器 + HTTP 服务
│   ├── governance/              # 策略引擎 + 规则免疫 + 审批工作流 + 影子服务
│   ├── core/                    # AST 约束求解器 + 认知图遍历器 + 意图识别
│   ├── data/                    # Prisma Repository + 向量存储 + LRU 缓存
│   └── adapters/                # Zod Schema 校验 + Embedding 适配器
├── tests/                       # 测试 (37 files, 291 tests)
├── prisma/                      # 数据库 Schema + 迁移
├── scripts/                     # License 检查 + 影子回放 CLI + Pack 脚本
├── benchmarks/                  # 性能基准
└── .github/workflows/           # CI 配置 (Rule Verification + License Check)

功能说明

四层流水线

核心模块

功能

感知层

perception/

Z-score 动态基线异常检测 + EMA 自适应 + 季节性分解 + Shapley 多维根因归因

提案层

proposal/

JSON DSL → OPA Rego 编译 + Zod 约束 LLM 结构化输出 + Few-shot 自动编译

验证层

verification/

属性测试自动证伪 + 影子日志回放 + CI 自动验证 PR

决策层

delivery/

DashboardSnapshot → PR Markdown (GitOps) + 5%→100% 金丝雀渐进交付

数据模型

模型

用途

Rule

规则定义 (含 hitCount/falsePositiveCount/adoptedCount 效能追踪)

PolicyVariant

A/B 策略变体对比

ShadowLog

影子模式运行日志 (新规则 7 天前置观察)

CognitionNode / CognitionEdge

认知图拓扑

AstTemplate

AST 级约束模板

Proposal / ApprovalRequest

注入审批工作流

MCP 工具 (20 tools)

分类

工具

用途

Diff

analyze_workspace

Git diff 分析 + 意图识别 + 语言检测 (19 种语言)

Diff

capture_diff

单文件差异捕获 → AST/Regex 差异归一化

Rule

list_rules

分页查询全量规则 + 按语言/置信度过滤

Rule

query_rules

按文件路径 + 语言匹配适用规则

Rule

confirm_rule

审批(adopt)/拒绝(reject)/跳过(skip) 规则

Rule

resolve_conflict

解决规则冲突 (keep/skip/merge 三种策略)

Cognition

cognition_query

认知图上下文查询 (最大深度 3 层 BFS)

Cognition

cognition_validate

代码 vs 约束节点一致性校验

Cognition

cognition_feedback

提交 ACCEPTED/REJECTED 反馈回流

Cognition

cognition_update_config

认知引擎配置热更新 (需 expertMode)

Cognition

cognition_approve_injection

审批/拒绝注入提案

Governance

governance_pause_arbitrator

暂停自动仲裁 (1-1440 分钟)

Governance

governance_rollback_arbitration

回滚指定时间后的仲裁结果

Workflow

workflow_submit

提交多评审人审批工作流

Workflow

workflow_vote

审批投票 (APPROVE/REJECT)

Workflow

workflow_status

查询审批状态

Workflow

workflow_escalate

审批超时升级

Immune

immune_cycle

规则免疫周期执行

Immune

immune_stats

免疫统计 (抑制/恢复/反馈)

传输协议: stdio 和 HTTP 均覆盖,HTTP 额外包含 Workflow + Immune 工具。


技术栈

类别

技术

语言

TypeScript 5.6

运行时

Node.js 22

数据库

SQLite (better-sqlite3)

ORM

Prisma 5.22

测试

Vitest 2.1

AST

tree-sitter (JS/Python/TS)

Embedding

@xenova/transformers (ONNX 本地推理)

Schema 校验

Zod 4

日志

Pino

协议

MCP (Model Context Protocol)

内核包

governflow-core 零 MCP 依赖,可独立发布为 npm 包:

npm install governflow-core
import { MerlionBridge, RegoCompiler, CanaryController } from "governflow-core";

文档

完整架构设计与开发文档见 GitHub Wiki.


常见问题

npm install 报错 better-sqlite3 编译失败

需要系统安装 C++ 编译工具链:

  • Windows: npm install --global windows-build-tools 或安装 Visual Studio Build Tools

  • Mac: xcode-select --install

  • Linux: sudo apt install build-essential python3

prisma db push 报错 Environment variable not found: DATABASE_URL

设置环境变量或使用默认值:

export DATABASE_URL="file:./mcp-cognition.db"   # Linux/Mac
set DATABASE_URL=file:./mcp-cognition.db        # Windows cmd
$env:DATABASE_URL="file:./mcp-cognition.db"     # PowerShell

测试报错 database is locked

SQLite 并发文件锁的已知限制。重跑即可:

npm test

如果频繁出现,尝试 npx vitest run --no-cache --pool=forks

Node.js 版本过低

MCP SDK 和 tree-sitter wasm 绑定需要 Node.js ≥ 22。检查版本:

node -v

如果低于 22,使用 nvm/fnm 升级。


心法

不要构建系统,要构建流水线。

让异常检测成为监控平台的插件,而非独立服务。 让规则生成成为 CI 的一个 Step,而非后台黑盒。 让人机协同成为 Code Review 的自然延伸,而非额外负担。


Changelog

v1.0.0-alpha.9 (2026-06-21)

  • 🔴 认知图写入修复: capture_diff / analyze_workspace 所有 upsertCognitionClosure / createNodeWithEdgesawait,解决 fire-and-forget 导致节点丢失

  • 🔴 认知图错误可见: 写入错误不再静默吞掉,改为写入 warnings 字段

  • 🔴 认知图查询扩展: cognition_query 支持 5 种检索模式(nodeType / filePath / language / contextHash / semanticHash),不再死锁在单一 hash

  • 🟡 CognitionRepository: 新增 findOrCreateNode(P2002 时返回已有节点)+ findNodesByPayloadField / findNodesByType 多维检索

  • 🟡 Schema 放宽: CognitionQuerySchema 放宽 required 约束,支持多种可选检索条件

  • 🟡 空 pattern 防御: rule-matcher / rule-generator / capture-diff / rule-repo 四层拦截空 pattern 规则

  • 📄 文档: 新增 Agent 工作流指南(knowledge injection → rule coding → code audit)

  • 📄 文档: 新增架构设计文档(enhancement-plan / gaps)

v1.0.0-alpha.8 (2026-06-21)

  • 🧠 Prisma Client 重新生成: 同步 ApprovalRequest.version 字段

  • 🧠 build 修复: approval-workflow.ts version 类型错误修复

v1.0.0-alpha.7 (2026-06-18)

  • 🛡 冲突全景图修复①: Rule 模型新增 @@unique([type, language, pattern, suggestion]) — 数据库级拦截完全重复规则

  • 🛡 冲突全景图修复②: rule-repo.ts create() 前置 findFirst 存在检查(belt-and-suspenders)

  • 🛡 冲突全景图修复③: ApprovalRequest 新增 version 字段 + castVote 乐观锁 P2025 重试(最多 3 次),防止并发投票丢失

  • 🛡 冲突全景图修复④: capture-diff PATTERN 节点 TOCTOU 硬化(re-fetch on duplicate key)

  • 🛠 CognitionRepository: 新增 createEdge() 单边创建方法

  • 🛠 Schema 错误消息: Zod enum 校验失败时显式列出合法值

  • 🛠 Schema 别名: cognition_query 新增 semanticHash 参数

  • 🛠 validateInput: Zod Required 错误翻译为 field-aware 消息

  • 🧹 清理: prisma/ 下 59 个历史脏数据库文件

v1.0.0-alpha.6 (2026-06-18)

  • 🧠 认知图谱闭环: capture_diff 自动创建 INTENT 节点(intent-recognizer 分类 REFACTOR/BUGFIX/BOILERPLATE)+ CAUSES 边连接 PATTERN

  • 🧠 认知图谱完善: analyze_workspace 为每个文件 diff 持久化 PATTERN 节点

  • 🧠 认知图谱完善: confirm_rule accept 自动创建 CONSTRAINT 节点(架构约束)

  • 🛠 CognitionRepository: 新增 createEdge() 单边创建方法

  • 🛠 Schema 错误消息: Zod enum 校验失败时显式列出合法值(accept/reject/edit/skip)

  • 🛠 Schema 别名: cognition_query 新增 semanticHash 参数(contextHash 别名)

  • 🛠 validateInput: Zod Required 错误翻译为 field-aware 消息(如 filePath is required)

  • 🧹 清理: prisma/ 下 59 个历史脏数据库文件(dev-1.db ~ dev-37.db)

v1.0.0-alpha.5 (2026-06-18)

  • 🐛 CI 修复: bench workflow DATABASE_URL 路径偏差(prisma/prisma/ -> prisma/)+ Node 22

  • 🐛 pack 修复: VM EOF bug — 新增 pack-from-subdir.mjs 绕过 npm tar 路径问题

  • 🐛 License: 修复 sentinel 注释导致 CI license:check 失败

  • 📄 文档: README 精简安装步骤(auto prepare + Prisma generate)

v1.0.0-alpha.4 (2026-06-18)

  • 🛠 工程: 新增 .env.example 配置模板,覆盖 DATABASE_URL / LOG_LEVEL

  • 🛠 工程: 清理 prisma/ 下 37 个 CI/测试残留 .db 文件,加入 .gitignore 全局匹配

  • 🛠 测试: 修复 cognition-repository 性能测试偶发超时(timeout 5s → 15s + semanticHash 去重)

  • 🛠 文档: 修正 README 全文 DATABASE_URL 默认值与代码实际值不一致(dev.dbmcp-cognition.db

  • 🛠 文档: 快速开始新增 .env.example 引导,替换硬编码路径示例

v1.0.0-alpha.3 (2026-06-18)

  • 🔴 修复: HTTP transport 每次请求重新创建 transport 导致崩溃 — 改为启动时连接一次

  • 🔴 修复: detectLang 缺失 Java/Vue/XML/YML/YAML 等 5 种语言覆盖率

  • 🔴 修复: CaptureDiffSchema.originalContent.min(1) 放宽为 .optional().default(""),新文件不再被拒绝

  • 🟡 修复: HTTP transport 补齐 governance_pause_arbitrator / governance_rollback_arbitration 工具注册

  • 🟡 修复: cognition_update_config TOOLS schema 补齐 expertMode 字段

  • 📦 首次发布 npm 包: npm install governflow@1.0.0-alpha.7

v1.0.0-alpha.2 (2026-06-17)

  • 20 MCP 工具完整实现 (Diff/Rule/Cognition/Governance/Workflow/Immune 六分类)

  • 认知图引擎 (CognitionNode + CognitionEdge + BFS 遍历)

  • AST 约束求解器 + 意图识别器

  • 策略引擎 + 规则免疫 + 审批工作流 + 影子服务

  • Streamable HTTP + stdio 双传输协议

  • Prisma + SQLite 数据持久层

License

Apache-2.0 © 2026 熊高锐