rules-enforcer 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +58 -0
- package/detector/README.md +212 -0
- package/detector/decision-engine/README.md +203 -0
- package/detector/decision-engine/conflict-resolver.js +336 -0
- package/detector/decision-engine/de-verify.js +461 -0
- package/detector/decision-engine/index.js +204 -0
- package/detector/decision-engine/optimizer.js +325 -0
- package/detector/decision-engine/scorer.js +359 -0
- package/detector/knowledge-base/README.md +140 -0
- package/detector/knowledge-base/agent-knowledge.json +62 -0
- package/detector/knowledge-base/index.js +332 -0
- package/detector/knowledge-base/kb-verify.js +287 -0
- package/detector/knowledge-base/mcp-knowledge.json +135 -0
- package/detector/knowledge-base/rules-knowledge.json +184 -0
- package/detector/mcp-server.js +157 -0
- package/detector/mcp-service.js +118 -0
- package/detector/package.json +13 -0
- package/detector/plugin.json +122 -0
- package/detector/project-detector.js +710 -0
- package/detector/render-engine/ag-config-render.js +195 -0
- package/detector/render-engine/index.js +124 -0
- package/detector/render-engine/render-core.js +200 -0
- package/detector/render-engine/render-verify.js +282 -0
- package/detector/render-engine/rule-render.js +231 -0
- package/detector/test-exceptions.js +366 -0
- package/detector/verify-plugin.js +233 -0
- package/hooks/chain-invoker.js +98 -0
- package/hooks/custom-hook-server.js +312 -0
- package/hooks/mcp-hooks.js +153 -0
- package/hooks/validate-chain.js +147 -0
- package/package.json +35 -0
- package/rules-server.js +350 -0
- package/test/test-mcp-full.js +193 -0
package/README.md
ADDED
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
# rules-enforcer
|
|
2
|
+
|
|
3
|
+
R-Zero Rules Engine MCP Server
|
|
4
|
+
|
|
5
|
+
## 功能
|
|
6
|
+
|
|
7
|
+
- **规则验证** - L1/L2/L3 规则检查
|
|
8
|
+
- **自定义钩子** - G 记忆管理、链式调用
|
|
9
|
+
- **项目探测** - 技术栈识别、目录扫描
|
|
10
|
+
|
|
11
|
+
## 安装
|
|
12
|
+
|
|
13
|
+
```bash
|
|
14
|
+
npm install rules-enforcer
|
|
15
|
+
```
|
|
16
|
+
|
|
17
|
+
## 使用
|
|
18
|
+
|
|
19
|
+
### 作为 MCP 服务器
|
|
20
|
+
|
|
21
|
+
```json
|
|
22
|
+
{
|
|
23
|
+
"mcpServers": {
|
|
24
|
+
"rules-enforcer": {
|
|
25
|
+
"command": "node",
|
|
26
|
+
"args": ["node_modules/rules-enforcer/rules-server.js"]
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
```
|
|
31
|
+
|
|
32
|
+
### 可用工具
|
|
33
|
+
|
|
34
|
+
| 工具名 | 功能 |
|
|
35
|
+
|--------|------|
|
|
36
|
+
| `validate` | 验证代码是否符合规则 |
|
|
37
|
+
| `get_rules` | 获取所有规则定义 |
|
|
38
|
+
| `enforce` | 强制执行规则验证 |
|
|
39
|
+
|
|
40
|
+
## 测试
|
|
41
|
+
|
|
42
|
+
```bash
|
|
43
|
+
npm test
|
|
44
|
+
```
|
|
45
|
+
|
|
46
|
+
## 目录结构
|
|
47
|
+
|
|
48
|
+
```
|
|
49
|
+
rules-enforcer/
|
|
50
|
+
├── rules-server.js # MCP 主入口
|
|
51
|
+
├── hooks/ # 自定义钩子模块
|
|
52
|
+
├── detector/ # 项目探测模块
|
|
53
|
+
└── test/ # 测试脚本
|
|
54
|
+
```
|
|
55
|
+
|
|
56
|
+
## License
|
|
57
|
+
|
|
58
|
+
MIT
|
|
@@ -0,0 +1,212 @@
|
|
|
1
|
+
# Project Detector Plugin
|
|
2
|
+
|
|
3
|
+
## 插件信息
|
|
4
|
+
|
|
5
|
+
| 属性 | 值 |
|
|
6
|
+
|------|-----|
|
|
7
|
+
| 名称 | project-detector |
|
|
8
|
+
| 版本 | 1.0.0 |
|
|
9
|
+
| 显示名 | Project Detector |
|
|
10
|
+
| 描述 | Trae项目探测工具 - 自动扫描项目技术栈、目录拓扑、已有组件,为配置最优解生成提供数据支撑 |
|
|
11
|
+
| 类型 | Trae工具插件 |
|
|
12
|
+
| 目录 | `.trae/plugins/project-detector/` |
|
|
13
|
+
| MCP服务 | project-detector |
|
|
14
|
+
| 兼容性 | Trae >= 1.0.0 |
|
|
15
|
+
| 许可证 | MIT |
|
|
16
|
+
|
|
17
|
+
## 功能说明
|
|
18
|
+
|
|
19
|
+
只读扫描项目结构,识别技术栈、目录拓扑、已有组件,为配置最优解生成提供数据支撑。
|
|
20
|
+
|
|
21
|
+
### 核心功能
|
|
22
|
+
|
|
23
|
+
1. **技术栈识别**
|
|
24
|
+
- 自动识别 package.json/requirements.txt/go.mod 等依赖清单
|
|
25
|
+
- 解析 Express.js/better-sqlite3 等框架库
|
|
26
|
+
|
|
27
|
+
2. **目录拓扑扫描**
|
|
28
|
+
- 递归扫描目录结构(最大4层)
|
|
29
|
+
- 分类:业务代码/测试目录/部署脚本/配置文件
|
|
30
|
+
|
|
31
|
+
3. **已有组件检测**
|
|
32
|
+
- MCP服务扫描(rules-enforcer/custom-hooks等)
|
|
33
|
+
- Agent配置扫描(AGENTS.md等)
|
|
34
|
+
- 规则文件扫描(L1/L2/L3三层规则)
|
|
35
|
+
|
|
36
|
+
4. **异常捕获**
|
|
37
|
+
- 文件读取异常日志
|
|
38
|
+
- 目录不存在提示
|
|
39
|
+
|
|
40
|
+
5. **复杂度评估**
|
|
41
|
+
- 根据技术栈、目录规模、组件数量评估项目复杂度
|
|
42
|
+
|
|
43
|
+
## 快捷指令
|
|
44
|
+
|
|
45
|
+
在 Trae 终端输入以下指令即可执行探测:
|
|
46
|
+
|
|
47
|
+
| 指令 | 功能 |
|
|
48
|
+
|------|------|
|
|
49
|
+
| `$detect` | 执行完整项目探测 |
|
|
50
|
+
| `$scan-project` | 执行完整项目探测 |
|
|
51
|
+
| `$quick-scan` | 快速扫描基本信息 |
|
|
52
|
+
|
|
53
|
+
## 文件结构
|
|
54
|
+
|
|
55
|
+
```
|
|
56
|
+
.trae/plugins/project-detector/
|
|
57
|
+
├── plugin.json # 插件配置(含IDE命令注册、元信息)
|
|
58
|
+
├── project-detector.js # 插件入口脚本
|
|
59
|
+
├── mcp-service.js # MCP服务集成
|
|
60
|
+
├── verify-plugin.js # 插件验证脚本
|
|
61
|
+
├── test-exceptions.js # 异常测试用例
|
|
62
|
+
└── README.md # 本文档
|
|
63
|
+
```
|
|
64
|
+
|
|
65
|
+
## MCP 服务
|
|
66
|
+
|
|
67
|
+
插件已注册为 Trae MCP 服务:
|
|
68
|
+
|
|
69
|
+
```json
|
|
70
|
+
// .trae/mcp/mcp.json
|
|
71
|
+
{
|
|
72
|
+
"mcpServers": {
|
|
73
|
+
"project-detector": {
|
|
74
|
+
"command": "node",
|
|
75
|
+
"args": ["${workspaceFolder}/.trae/plugins/project-detector/project-detector.js"]
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
```
|
|
80
|
+
|
|
81
|
+
### MCP 工具
|
|
82
|
+
|
|
83
|
+
| 工具名 | 功能 |
|
|
84
|
+
|--------|------|
|
|
85
|
+
| `scan_project` | 完整项目探测 |
|
|
86
|
+
| `quick_scan` | 快速扫描 |
|
|
87
|
+
| `list_rules` | 列出规则配置 |
|
|
88
|
+
|
|
89
|
+
## IDE 命令面板
|
|
90
|
+
|
|
91
|
+
插件注册了以下命令,可通过 `Ctrl+Shift+P` 打开命令面板搜索:
|
|
92
|
+
|
|
93
|
+
- `TRAIDE: Project Detector: Full Scan` - 执行完整探测
|
|
94
|
+
- `TRAIDE: Project Detector: Quick Scan` - 快速扫描
|
|
95
|
+
- `TRAIDE: Project Detector: List Rules` - 列出规则
|
|
96
|
+
|
|
97
|
+
## 使用方式
|
|
98
|
+
|
|
99
|
+
### 方式1: 快捷指令(推荐)
|
|
100
|
+
|
|
101
|
+
```
|
|
102
|
+
$detect
|
|
103
|
+
$scan-project
|
|
104
|
+
$quick-scan
|
|
105
|
+
```
|
|
106
|
+
|
|
107
|
+
### 方式2: MCP 工具调用
|
|
108
|
+
|
|
109
|
+
通过 rules-enforcer MCP 调用:
|
|
110
|
+
```
|
|
111
|
+
tools: scan_project
|
|
112
|
+
```
|
|
113
|
+
|
|
114
|
+
### 方式3: 命令面板
|
|
115
|
+
|
|
116
|
+
1. `Ctrl+Shift+P` 打开命令面板
|
|
117
|
+
2. 输入 `Project Detector`
|
|
118
|
+
3. 选择对应命令执行
|
|
119
|
+
|
|
120
|
+
### 方式4: Node.js 直接运行
|
|
121
|
+
|
|
122
|
+
```bash
|
|
123
|
+
node .trae/plugins/project-detector/project-detector.js
|
|
124
|
+
```
|
|
125
|
+
|
|
126
|
+
## 验证脚本
|
|
127
|
+
|
|
128
|
+
### 插件验证
|
|
129
|
+
|
|
130
|
+
```bash
|
|
131
|
+
node .trae/plugins/project-detector/verify-plugin.js
|
|
132
|
+
```
|
|
133
|
+
|
|
134
|
+
### 异常测试
|
|
135
|
+
|
|
136
|
+
```bash
|
|
137
|
+
node .trae/plugins/project-detector/test-exceptions.js
|
|
138
|
+
```
|
|
139
|
+
|
|
140
|
+
## 输出格式
|
|
141
|
+
|
|
142
|
+
```json
|
|
143
|
+
{
|
|
144
|
+
"projectRoot": "c:\\path\\to\\project",
|
|
145
|
+
"techStack": ["Node.js", "Express.js", "SQLite"],
|
|
146
|
+
"existingComponents": {
|
|
147
|
+
"mcp": ["rules-enforcer", "custom-hooks", "project-detector"],
|
|
148
|
+
"agents": [...],
|
|
149
|
+
"rules": [...]
|
|
150
|
+
},
|
|
151
|
+
"stats": {
|
|
152
|
+
"mcpCount": 3,
|
|
153
|
+
"agentCount": 2,
|
|
154
|
+
"ruleCount": 12,
|
|
155
|
+
"complexity": "medium"
|
|
156
|
+
},
|
|
157
|
+
"topologyTree": "...",
|
|
158
|
+
"fileErrors": []
|
|
159
|
+
}
|
|
160
|
+
```
|
|
161
|
+
|
|
162
|
+
## 约束
|
|
163
|
+
|
|
164
|
+
- 全程只读,不修改项目任何源码与配置
|
|
165
|
+
- 不新增MCP服务(project-detector MCP除外)
|
|
166
|
+
- 遵循Trae插件目录规范
|
|
167
|
+
|
|
168
|
+
## 配置
|
|
169
|
+
|
|
170
|
+
编辑 `plugin.json` 可调整扫描参数:
|
|
171
|
+
|
|
172
|
+
```json
|
|
173
|
+
{
|
|
174
|
+
"config": {
|
|
175
|
+
"maxScanDepth": 4,
|
|
176
|
+
"excludePatterns": ["node_modules", ".git", "dist"]
|
|
177
|
+
}
|
|
178
|
+
}
|
|
179
|
+
```
|
|
180
|
+
|
|
181
|
+
## IDE 前端验证步骤
|
|
182
|
+
|
|
183
|
+
以下验证需要 Trae IDE 环境:
|
|
184
|
+
|
|
185
|
+
1. **插件注册验证**
|
|
186
|
+
- 重启 Trae IDE
|
|
187
|
+
- 打开设置 → 插件管理
|
|
188
|
+
- 确认 `project-detector` 出现在已安装插件列表
|
|
189
|
+
|
|
190
|
+
2. **快捷指令验证**
|
|
191
|
+
- 打开 Trae 内置终端
|
|
192
|
+
- 输入 `$detect` 或 `$quick-scan`
|
|
193
|
+
- 确认插件响应并输出探测结果
|
|
194
|
+
|
|
195
|
+
3. **MCP 连通性验证**
|
|
196
|
+
- 打开 MCP 设置面板
|
|
197
|
+
- 确认 `project-detector` 服务状态为在线
|
|
198
|
+
- 通过 rules-enforcer 调用 `scan_project` 工具验证联动
|
|
199
|
+
|
|
200
|
+
## 异常测试覆盖
|
|
201
|
+
|
|
202
|
+
| 测试场景 | 说明 |
|
|
203
|
+
|----------|------|
|
|
204
|
+
| 空目录探测 | 不崩溃,返回空结果 |
|
|
205
|
+
| 规则目录缺失 | 正确记录异常日志 |
|
|
206
|
+
| 部分规则文件存在 | 正确识别现有规则 |
|
|
207
|
+
| 无效项目路径 | 抛出明确错误 |
|
|
208
|
+
| 非目录路径 | 抛出明确错误 |
|
|
209
|
+
| 损坏的package.json | 健壮处理,返回默认值 |
|
|
210
|
+
| 深层嵌套目录 | 正确截断在maxDepth |
|
|
211
|
+
| 极长文件名 | 健壮处理 |
|
|
212
|
+
| 符号链接目录 | 健壮处理 |
|
|
@@ -0,0 +1,203 @@
|
|
|
1
|
+
# Decision Engine - 最优决策引擎
|
|
2
|
+
|
|
3
|
+
## 目录信息
|
|
4
|
+
|
|
5
|
+
| 属性 | 值 |
|
|
6
|
+
|------|-----|
|
|
7
|
+
| 名称 | Decision Engine |
|
|
8
|
+
| 版本 | 1.0.0 |
|
|
9
|
+
| 路径 | `.trae/plugins/project-detector/decision-engine/` |
|
|
10
|
+
| 插件 | project-detector |
|
|
11
|
+
|
|
12
|
+
## 目录结构
|
|
13
|
+
|
|
14
|
+
```
|
|
15
|
+
decision-engine/
|
|
16
|
+
├── scorer.js # 评分引擎
|
|
17
|
+
├── optimizer.js # 优化算法
|
|
18
|
+
├── conflict-resolver.js # 冲突解决器
|
|
19
|
+
├── index.js # 决策引擎入口
|
|
20
|
+
└── de-verify.js # 决策引擎验证脚本
|
|
21
|
+
```
|
|
22
|
+
|
|
23
|
+
## 核心算法
|
|
24
|
+
|
|
25
|
+
### 1. 评分引擎 (Scorer)
|
|
26
|
+
|
|
27
|
+
四项打分维度(0~100分值):
|
|
28
|
+
|
|
29
|
+
| 维度 | 权重 | 说明 |
|
|
30
|
+
|------|------|------|
|
|
31
|
+
| 技术栈匹配 | 40% | 项目技术栈与组件适配度 |
|
|
32
|
+
| 复杂度适配 | 30% | 项目规模与组件支持范围匹配 |
|
|
33
|
+
| 依赖兼容 | 20% | 组件依赖与已有组件匹配 |
|
|
34
|
+
| 组件复用 | 10% | 已存在组件优先复用 |
|
|
35
|
+
|
|
36
|
+
### 2. 优化算法 (Optimizer)
|
|
37
|
+
|
|
38
|
+
固定权重配置:
|
|
39
|
+
|
|
40
|
+
| 组件类型 | 权重 |
|
|
41
|
+
|---------|------|
|
|
42
|
+
| MCP | 40% |
|
|
43
|
+
| 规则 | 35% |
|
|
44
|
+
| Agent | 25% |
|
|
45
|
+
|
|
46
|
+
### 3. 冲突解决器 (ConflictResolver)
|
|
47
|
+
|
|
48
|
+
冲突检测类型:
|
|
49
|
+
|
|
50
|
+
| 类型 | 说明 |
|
|
51
|
+
|------|------|
|
|
52
|
+
| 规则层级冲突 | L1>L2>L3优先级冲突 |
|
|
53
|
+
| MCP依赖冲突 | 循环依赖、缺失依赖 |
|
|
54
|
+
| 资源冲突 | 组件数量超限 |
|
|
55
|
+
|
|
56
|
+
## 输出格式
|
|
57
|
+
|
|
58
|
+
```json
|
|
59
|
+
{
|
|
60
|
+
"decision": {
|
|
61
|
+
"recommendedMcp": [...],
|
|
62
|
+
"recommendedRules": [...],
|
|
63
|
+
"recommendedAgent": {...},
|
|
64
|
+
"confidence": 0.81
|
|
65
|
+
},
|
|
66
|
+
"scoreBreakdown": {
|
|
67
|
+
"techStackMatch": 93,
|
|
68
|
+
"complexityFit": 100,
|
|
69
|
+
"dependencyScore": 88,
|
|
70
|
+
"reuseScore": 0
|
|
71
|
+
},
|
|
72
|
+
"conflicts": [...],
|
|
73
|
+
"alternatives": [...]
|
|
74
|
+
}
|
|
75
|
+
```
|
|
76
|
+
|
|
77
|
+
## 接口API
|
|
78
|
+
|
|
79
|
+
### DecisionEngine类
|
|
80
|
+
|
|
81
|
+
```javascript
|
|
82
|
+
const { DecisionEngine } = require('./decision-engine/index.js');
|
|
83
|
+
|
|
84
|
+
const engine = new DecisionEngine();
|
|
85
|
+
|
|
86
|
+
// 执行决策
|
|
87
|
+
const decision = engine.decide(knowledgeBase, projectReport);
|
|
88
|
+
|
|
89
|
+
// 打印决策结果
|
|
90
|
+
engine.printDecision(decision);
|
|
91
|
+
|
|
92
|
+
// 获取引擎信息
|
|
93
|
+
engine.getInfo();
|
|
94
|
+
```
|
|
95
|
+
|
|
96
|
+
### Scorer类
|
|
97
|
+
|
|
98
|
+
```javascript
|
|
99
|
+
const { Scorer } = require('./decision-engine/scorer.js');
|
|
100
|
+
|
|
101
|
+
const scorer = new Scorer();
|
|
102
|
+
|
|
103
|
+
// 计算技术栈匹配分
|
|
104
|
+
scorer.calculateTechStackMatchScore(techStack, componentTechStack);
|
|
105
|
+
|
|
106
|
+
// 计算复杂度适配分
|
|
107
|
+
scorer.calculateComplexityFitScore(complexity, sizeRange);
|
|
108
|
+
|
|
109
|
+
// 计算依赖兼容分
|
|
110
|
+
scorer.calculateDependencyScore(dependencies, existingComponents);
|
|
111
|
+
|
|
112
|
+
// 计算组件复用分
|
|
113
|
+
scorer.calculateReuseScore(componentId, existingComponents);
|
|
114
|
+
|
|
115
|
+
// 获取/设置权重(预留外置接口)
|
|
116
|
+
scorer.getWeights();
|
|
117
|
+
scorer.setWeights({ mcp: 0.4, rules: 0.35, agent: 0.25 });
|
|
118
|
+
```
|
|
119
|
+
|
|
120
|
+
### Optimizer类
|
|
121
|
+
|
|
122
|
+
```javascript
|
|
123
|
+
const { Optimizer } = require('./decision-engine/optimizer.js');
|
|
124
|
+
|
|
125
|
+
const optimizer = new Optimizer();
|
|
126
|
+
|
|
127
|
+
// 优化MCP配置
|
|
128
|
+
optimizer.optimizeMcp(mcpKnowledge, projectInfo);
|
|
129
|
+
|
|
130
|
+
// 优化规则配置
|
|
131
|
+
optimizer.optimizeRules(rulesKnowledge, projectInfo);
|
|
132
|
+
|
|
133
|
+
// 优化Agent配置
|
|
134
|
+
optimizer.optimizeAgent(agentKnowledge, projectInfo);
|
|
135
|
+
|
|
136
|
+
// 执行完整优化
|
|
137
|
+
optimizer.optimize(knowledgeBase, projectInfo);
|
|
138
|
+
```
|
|
139
|
+
|
|
140
|
+
### ConflictResolver类
|
|
141
|
+
|
|
142
|
+
```javascript
|
|
143
|
+
const { ConflictResolver } = require('./decision-engine/conflict-resolver.js');
|
|
144
|
+
|
|
145
|
+
const resolver = new ConflictResolver();
|
|
146
|
+
|
|
147
|
+
// 检测规则冲突
|
|
148
|
+
resolver.detectRuleConflicts(rules);
|
|
149
|
+
|
|
150
|
+
// 检测MCP依赖冲突
|
|
151
|
+
resolver.detectMcpConflicts(mcpServices, existingMcp);
|
|
152
|
+
|
|
153
|
+
// 检测资源冲突
|
|
154
|
+
resolver.detectResourceConflicts(components, projectInfo);
|
|
155
|
+
|
|
156
|
+
// 解决规则冲突
|
|
157
|
+
resolver.resolveRuleConflicts(rules);
|
|
158
|
+
|
|
159
|
+
// 执行完整冲突检测
|
|
160
|
+
resolver.detectAll(optimizationResult, projectInfo);
|
|
161
|
+
```
|
|
162
|
+
|
|
163
|
+
## 与project-detector对接
|
|
164
|
+
|
|
165
|
+
项目探测结束后自动调用决策引擎:
|
|
166
|
+
|
|
167
|
+
```javascript
|
|
168
|
+
const detector = new ProjectDetector(projectPath);
|
|
169
|
+
detector.scan();
|
|
170
|
+
|
|
171
|
+
// 自动获取决策结果
|
|
172
|
+
detector.printDecisionResult();
|
|
173
|
+
```
|
|
174
|
+
|
|
175
|
+
## 验证脚本
|
|
176
|
+
|
|
177
|
+
```bash
|
|
178
|
+
node .trae/plugins/project-detector/decision-engine/de-verify.js
|
|
179
|
+
```
|
|
180
|
+
|
|
181
|
+
### 验证用例
|
|
182
|
+
|
|
183
|
+
| 用例 | 内容 |
|
|
184
|
+
|------|------|
|
|
185
|
+
| 常规项目配置 | 决策输出结构、置信度范围、分项得分、权重配置 |
|
|
186
|
+
| 组件依赖冲突 | 循环依赖检测、缺失依赖检测 |
|
|
187
|
+
| 规则层级冲突 | 同类型同优先级检测、缺失层级检测、冲突解决 |
|
|
188
|
+
| 评分引擎 | 技术栈匹配分、复杂度适配分、依赖兼容分、组件复用分 |
|
|
189
|
+
| 优化算法 | 优化结果结构、置信度计算 |
|
|
190
|
+
| 全链路集成 | 探测→知识库→决策引擎完整串联 |
|
|
191
|
+
|
|
192
|
+
## 约束遵守
|
|
193
|
+
|
|
194
|
+
| 约束项 | 状态 |
|
|
195
|
+
|--------|------|
|
|
196
|
+
| 目录嵌套在插件内部 | ✅ |
|
|
197
|
+
| 文件名固定 | ✅ scorer.js/optimizer.js/conflict-resolver.js/index.js/de-verify.js |
|
|
198
|
+
| 权重锁死 | ✅ MCP=40%, 规则=35%, Agent=25% |
|
|
199
|
+
| 分项得分0~100 | ✅ |
|
|
200
|
+
| 输出字段规范 | ✅ decision/scoreBreakdown/conflicts/alternatives/confidence |
|
|
201
|
+
| 置信度0~1 | ✅ |
|
|
202
|
+
| 规则优先级L1>L2>L3 | ✅ |
|
|
203
|
+
| 权重外置接口预留 | ✅ setWeights()方法 |
|