neo-skill 0.1.25 → 0.1.27
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/package.json
CHANGED
|
@@ -1,228 +1,220 @@
|
|
|
1
|
-
# Review Gate
|
|
1
|
+
# Review Gate - 架构与代码反腐败审查
|
|
2
2
|
|
|
3
|
-
|
|
4
|
-
|
|
3
|
+
> **定位**:架构/代码反腐败审查,区别于 lint/hard-gate。关注架构决策、模块边界、依赖方向、副作用隔离、可测试性,防止"慢慢写歪"。
|
|
4
|
+
|
|
5
|
+
## 核心理念
|
|
6
|
+
|
|
7
|
+
### 目标
|
|
5
8
|
- 在 PR review 中显式检查架构与设计决策
|
|
6
9
|
- 防止架构在长期演进中"慢慢写歪"
|
|
10
|
+
- 明确哪些可以自动化(转为 Hard Gate),哪些需要人工 Review
|
|
11
|
+
|
|
12
|
+
### Non-negotiable
|
|
13
|
+
- **Review Gate 不能替代 Hard Gate**:能自动化的规则必须先自动化
|
|
14
|
+
- **检查点必须具体、可执行**:避免模糊的"代码质量"描述
|
|
15
|
+
- **持续演进**:重复出现的 Review 问题应考虑转化为 Hard Gate 规则
|
|
16
|
+
|
|
17
|
+
## 架构概览
|
|
18
|
+
|
|
19
|
+
本技能已重构为**数据驱动的 3 层架构**,参考 `ui-ux-pro-max` 的分层索引设计:
|
|
20
|
+
|
|
21
|
+
```
|
|
22
|
+
.shared/review-gate/
|
|
23
|
+
├── data/ # 数据层:结构化知识库
|
|
24
|
+
│ ├── domains/ # 14 个领域分类
|
|
25
|
+
│ │ ├── layer/ # 分层架构
|
|
26
|
+
│ │ ├── dep/ # 依赖管理
|
|
27
|
+
│ │ ├── api/ # API 设计
|
|
28
|
+
│ │ ├── pure/ # 副作用隔离
|
|
29
|
+
│ │ ├── complex/ # 复杂度控制
|
|
30
|
+
│ │ ├── error/ # 错误处理
|
|
31
|
+
│ │ ├── obs/ # 可观测性
|
|
32
|
+
│ │ ├── type/ # 类型系统
|
|
33
|
+
│ │ ├── async/ # 异步处理
|
|
34
|
+
│ │ ├── ui/ # UI 优化
|
|
35
|
+
│ │ ├── perf/ # 性能优化
|
|
36
|
+
│ │ ├── sec/ # 安全检查
|
|
37
|
+
│ │ ├── doc/ # 文档规范
|
|
38
|
+
│ │ └── test/ # 测试策略
|
|
39
|
+
│ ├── reasoning/ # 推理层:信号到检查的路由规则
|
|
40
|
+
│ └── templates/ # 输出模板
|
|
41
|
+
├── scripts/ # 运行时层:信号分析器 + 引擎
|
|
42
|
+
│ ├── signals/ # 7 个信号分析器
|
|
43
|
+
│ └── engine/ # 路由、评分、组合、持久化
|
|
44
|
+
└── review-system/ # 分层覆盖配置
|
|
45
|
+
├── MASTER.md # 全局默认
|
|
46
|
+
├── stacks/ # 技术栈级别
|
|
47
|
+
├── packages/ # 包级别
|
|
48
|
+
└── paths/ # 路径级别(最高优先级)
|
|
49
|
+
```
|
|
50
|
+
|
|
51
|
+
详细架构说明见:[`.shared/review-gate/README.md`](../../../.shared/review-gate/README.md)
|
|
52
|
+
|
|
53
|
+
## 领域知识索引
|
|
54
|
+
|
|
55
|
+
每个领域包含 4 个标准文件:
|
|
56
|
+
|
|
57
|
+
| 领域 | 关注点 | 检查规则 | 修复方案 | 反模式 | 硬门候选 |
|
|
58
|
+
|------|--------|----------|----------|--------|----------|
|
|
59
|
+
| **layer** | 分层架构 | [checks.csv](../../../.shared/review-gate/data/domains/layer/checks.csv) | [recipes.md](../../../.shared/review-gate/data/domains/layer/recipes.md) | [anti_patterns.md](../../../.shared/review-gate/data/domains/layer/anti_patterns.md) | [hardgate_candidates.csv](../../../.shared/review-gate/data/domains/layer/hardgate_candidates.csv) |
|
|
60
|
+
| **dep** | 依赖管理 | [checks.csv](../../../.shared/review-gate/data/domains/dep/checks.csv) | [recipes.md](../../../.shared/review-gate/data/domains/dep/recipes.md) | [anti_patterns.md](../../../.shared/review-gate/data/domains/dep/anti_patterns.md) | [hardgate_candidates.csv](../../../.shared/review-gate/data/domains/dep/hardgate_candidates.csv) |
|
|
61
|
+
| **api** | API 设计 | [checks.csv](../../../.shared/review-gate/data/domains/api/checks.csv) | [recipes.md](../../../.shared/review-gate/data/domains/api/recipes.md) | [anti_patterns.md](../../../.shared/review-gate/data/domains/api/anti_patterns.md) | [hardgate_candidates.csv](../../../.shared/review-gate/data/domains/api/hardgate_candidates.csv) |
|
|
62
|
+
| **pure** | 副作用隔离 | [checks.csv](../../../.shared/review-gate/data/domains/pure/checks.csv) | [recipes.md](../../../.shared/review-gate/data/domains/pure/recipes.md) | [anti_patterns.md](../../../.shared/review-gate/data/domains/pure/anti_patterns.md) | [hardgate_candidates.csv](../../../.shared/review-gate/data/domains/pure/hardgate_candidates.csv) |
|
|
63
|
+
| **complex** | 复杂度控制 | [checks.csv](../../../.shared/review-gate/data/domains/complex/checks.csv) | [recipes.md](../../../.shared/review-gate/data/domains/complex/recipes.md) | [anti_patterns.md](../../../.shared/review-gate/data/domains/complex/anti_patterns.md) | [hardgate_candidates.csv](../../../.shared/review-gate/data/domains/complex/hardgate_candidates.csv) |
|
|
64
|
+
| **error** | 错误处理 | [checks.csv](../../../.shared/review-gate/data/domains/error/checks.csv) | [recipes.md](../../../.shared/review-gate/data/domains/error/recipes.md) | [anti_patterns.md](../../../.shared/review-gate/data/domains/error/anti_patterns.md) | [hardgate_candidates.csv](../../../.shared/review-gate/data/domains/error/hardgate_candidates.csv) |
|
|
65
|
+
| **obs** | 可观测性 | [checks.csv](../../../.shared/review-gate/data/domains/obs/checks.csv) | [recipes.md](../../../.shared/review-gate/data/domains/obs/recipes.md) | [anti_patterns.md](../../../.shared/review-gate/data/domains/obs/anti_patterns.md) | [hardgate_candidates.csv](../../../.shared/review-gate/data/domains/obs/hardgate_candidates.csv) |
|
|
66
|
+
| **type** | 类型系统 | [checks.csv](../../../.shared/review-gate/data/domains/type/checks.csv) | [recipes.md](../../../.shared/review-gate/data/domains/type/recipes.md) | [anti_patterns.md](../../../.shared/review-gate/data/domains/type/anti_patterns.md) | [hardgate_candidates.csv](../../../.shared/review-gate/data/domains/type/hardgate_candidates.csv) |
|
|
67
|
+
| **async** | 异步处理 | [checks.csv](../../../.shared/review-gate/data/domains/async/checks.csv) | [recipes.md](../../../.shared/review-gate/data/domains/async/recipes.md) | [anti_patterns.md](../../../.shared/review-gate/data/domains/async/anti_patterns.md) | [hardgate_candidates.csv](../../../.shared/review-gate/data/domains/async/hardgate_candidates.csv) |
|
|
68
|
+
| **ui** | UI 优化 | [checks.csv](../../../.shared/review-gate/data/domains/ui/checks.csv) | [recipes.md](../../../.shared/review-gate/data/domains/ui/recipes.md) | [anti_patterns.md](../../../.shared/review-gate/data/domains/ui/anti_patterns.md) | [hardgate_candidates.csv](../../../.shared/review-gate/data/domains/ui/hardgate_candidates.csv) |
|
|
69
|
+
| **perf** | 性能优化 | [checks.csv](../../../.shared/review-gate/data/domains/perf/checks.csv) | [recipes.md](../../../.shared/review-gate/data/domains/perf/recipes.md) | [anti_patterns.md](../../../.shared/review-gate/data/domains/perf/anti_patterns.md) | [hardgate_candidates.csv](../../../.shared/review-gate/data/domains/perf/hardgate_candidates.csv) |
|
|
70
|
+
| **sec** | 安全检查 | [checks.csv](../../../.shared/review-gate/data/domains/sec/checks.csv) | [recipes.md](../../../.shared/review-gate/data/domains/sec/recipes.md) | [anti_patterns.md](../../../.shared/review-gate/data/domains/sec/anti_patterns.md) | [hardgate_candidates.csv](../../../.shared/review-gate/data/domains/sec/hardgate_candidates.csv) |
|
|
71
|
+
| **doc** | 文档规范 | [checks.csv](../../../.shared/review-gate/data/domains/doc/checks.csv) | [recipes.md](../../../.shared/review-gate/data/domains/doc/recipes.md) | [anti_patterns.md](../../../.shared/review-gate/data/domains/doc/anti_patterns.md) | [hardgate_candidates.csv](../../../.shared/review-gate/data/domains/doc/hardgate_candidates.csv) |
|
|
72
|
+
| **test** | 测试策略 | [checks.csv](../../../.shared/review-gate/data/domains/test/checks.csv) | [recipes.md](../../../.shared/review-gate/data/domains/test/recipes.md) | [anti_patterns.md](../../../.shared/review-gate/data/domains/test/anti_patterns.md) | [hardgate_candidates.csv](../../../.shared/review-gate/data/domains/test/hardgate_candidates.csv) |
|
|
73
|
+
|
|
74
|
+
### MVP 领域(完整实现)
|
|
75
|
+
- **layer**:分层架构、依赖方向、跨层耦合
|
|
76
|
+
- **dep**:循环依赖、模块耦合、依赖图分析
|
|
77
|
+
- **api**:API 边界、导出设计、破坏性变更
|
|
78
|
+
- **pure**:副作用隔离、可测试性、依赖注入
|
|
79
|
+
- **complex**:复杂度、嵌套、函数长度、认知负担
|
|
80
|
+
|
|
81
|
+
### 其他领域(可插拔存根)
|
|
82
|
+
其他 9 个领域提供了基础结构和示例规则,可根据项目需要逐步完善。
|
|
83
|
+
|
|
84
|
+
## 使用方式
|
|
85
|
+
|
|
86
|
+
### 基本命令
|
|
87
|
+
|
|
88
|
+
```bash
|
|
89
|
+
# 基础审查(当前分支 vs main)
|
|
90
|
+
python .shared/review-gate/scripts/review.py
|
|
91
|
+
|
|
92
|
+
# 指定技术栈
|
|
93
|
+
python .shared/review-gate/scripts/review.py --stack react
|
|
7
94
|
|
|
8
|
-
|
|
9
|
-
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
-
|
|
28
|
-
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
-
|
|
60
|
-
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
-
|
|
78
|
-
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
95
|
+
# 指定领域
|
|
96
|
+
python .shared/review-gate/scripts/review.py --domain layer,dep
|
|
97
|
+
|
|
98
|
+
# 确保测试通过
|
|
99
|
+
python .shared/review-gate/scripts/review.py --ensure-tests-pass
|
|
100
|
+
|
|
101
|
+
# 持久化覆盖规则
|
|
102
|
+
python .shared/review-gate/scripts/review.py --persist path --domain layer
|
|
103
|
+
```
|
|
104
|
+
|
|
105
|
+
### 工作流
|
|
106
|
+
|
|
107
|
+
1. **创建审查分支** → `review-gate/<timestamp>`
|
|
108
|
+
2. **可选:运行测试** → 确保基线通过
|
|
109
|
+
3. **收集信号**:
|
|
110
|
+
- Diff 变更集
|
|
111
|
+
- 依赖子图
|
|
112
|
+
- 层级分类
|
|
113
|
+
- API 表面变更
|
|
114
|
+
- 副作用扫描
|
|
115
|
+
- 复杂度扫描
|
|
116
|
+
4. **路由与评分**:
|
|
117
|
+
- 根据推理规则路由到检查项
|
|
118
|
+
- 应用分层覆盖(paths > packages > stacks > MASTER)
|
|
119
|
+
- 评分并排序
|
|
120
|
+
5. **生成报告**:
|
|
121
|
+
- Markdown 报告(按领域分组)
|
|
122
|
+
- JSON 结构化输出
|
|
123
|
+
6. **可选:最小化修复** → 自动应用简单修复
|
|
124
|
+
7. **可选:重新测试** → 验证修复未破坏功能
|
|
125
|
+
|
|
126
|
+
详细工作流见:[`.shared/review-gate/README.md#workflow`](../../../.shared/review-gate/README.md#workflow)
|
|
127
|
+
|
|
128
|
+
## 分层覆盖系统
|
|
129
|
+
|
|
130
|
+
支持 4 级覆盖配置,优先级从高到低:
|
|
131
|
+
|
|
132
|
+
1. **paths** → `review-system/paths/<path-hash>.md`(最高优先级)
|
|
133
|
+
2. **packages** → `review-system/packages/<pkg-name>.md`
|
|
134
|
+
3. **stacks** → `review-system/stacks/<stack>.md`
|
|
135
|
+
4. **MASTER** → `review-system/MASTER.md`(全局默认)
|
|
136
|
+
|
|
137
|
+
覆盖配置格式:
|
|
138
|
+
```markdown
|
|
139
|
+
# Override: <scope>
|
|
140
|
+
|
|
141
|
+
## Enabled Domains
|
|
142
|
+
- layer
|
|
143
|
+
- dep
|
|
144
|
+
|
|
145
|
+
## Disabled Checks
|
|
146
|
+
- layer-001 # 理由:特殊架构需求
|
|
147
|
+
- dep-002 # 理由:遗留代码豁免
|
|
148
|
+
|
|
149
|
+
## Custom Weights
|
|
150
|
+
- api-001: 0.8 # 降低优先级
|
|
151
|
+
- pure-001: 1.5 # 提高优先级
|
|
152
|
+
```
|
|
153
|
+
|
|
154
|
+
## 输出格式
|
|
155
|
+
|
|
156
|
+
### Markdown 报告
|
|
157
|
+
```markdown
|
|
158
|
+
# Review Gate Report
|
|
159
|
+
|
|
160
|
+
## Summary
|
|
161
|
+
- Total Findings: 12
|
|
162
|
+
- Critical: 2
|
|
163
|
+
- High: 5
|
|
164
|
+
- Medium: 3
|
|
165
|
+
- Low: 2
|
|
166
|
+
|
|
167
|
+
## Findings by Domain
|
|
168
|
+
|
|
169
|
+
### layer (5 findings)
|
|
170
|
+
#### [CRITICAL] layer-001: Upward dependency detected
|
|
171
|
+
...
|
|
83
172
|
```
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
173
|
+
|
|
174
|
+
### JSON 输出
|
|
175
|
+
```json
|
|
176
|
+
{
|
|
177
|
+
"summary": {...},
|
|
178
|
+
"findings": [
|
|
179
|
+
{
|
|
180
|
+
"id": "finding-001",
|
|
181
|
+
"domain": "layer",
|
|
182
|
+
"check_id": "layer-001",
|
|
183
|
+
"severity": "critical",
|
|
184
|
+
"confidence": 0.95,
|
|
185
|
+
"evidence": {...}
|
|
186
|
+
}
|
|
187
|
+
]
|
|
188
|
+
}
|
|
88
189
|
```
|
|
89
190
|
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
-
|
|
97
|
-
-
|
|
98
|
-
-
|
|
99
|
-
|
|
100
|
-
### 复杂度与可读性
|
|
101
|
-
虽然有 Hard Gate 限制(单函数 60 行、圈复杂度 15),但 Review 还需关注:
|
|
102
|
-
- **认知复杂度**:代码是否易于理解?
|
|
103
|
-
- **嵌套层级**:是否过度嵌套(建议早返回)?
|
|
104
|
-
- **函数职责**:是否一个函数做了太多事情?
|
|
105
|
-
- **抽象层次一致性**:同一个函数内是否混合了高层业务逻辑和底层实现细节?
|
|
106
|
-
|
|
107
|
-
**Review 检查点**:
|
|
108
|
-
- 复杂的业务逻辑是否拆分成了多个小函数?
|
|
109
|
-
- 是否存在"上帝函数"(做了太多事情)?
|
|
110
|
-
- 变量/函数命名是否清晰表达了意图?
|
|
111
|
-
|
|
112
|
-
### 错误处理策略
|
|
113
|
-
Hard Gate 已限制:
|
|
114
|
-
- 统一错误类型(如 `AppError`/`DomainError`)
|
|
115
|
-
- 禁止在非边界层随意 `throw new Error`
|
|
116
|
-
|
|
117
|
-
Review 需额外关注:
|
|
118
|
-
- **错误边界**:错误是否在合适的边界被捕获和处理?
|
|
119
|
-
- **错误信息质量**:错误信息是否足够帮助定位问题?
|
|
120
|
-
- **优雅降级**:关键路径是否有合理的错误处理和降级策略?
|
|
121
|
-
- **错误传播**:错误是否以合理的方式向上传播(而不是被吞掉)?
|
|
122
|
-
|
|
123
|
-
**Review 检查点**:
|
|
124
|
-
- 新增的错误处理是否遵循了统一的错误类型?
|
|
125
|
-
- 是否存在空 catch 块(吞掉错误)?
|
|
126
|
-
- 错误信息是否包含足够的上下文?
|
|
127
|
-
|
|
128
|
-
### 日志与可观测性
|
|
129
|
-
Hard Gate 已限制:
|
|
130
|
-
- 禁止在非边界层直接 `console.*`(仅允许 entry/infra)
|
|
131
|
-
|
|
132
|
-
Review 需额外关注:
|
|
133
|
-
- **日志级别**:是否使用了合适的日志级别(debug/info/warn/error)?
|
|
134
|
-
- **关键路径日志**:关键业务流程是否有足够的日志便于追踪?
|
|
135
|
-
- **敏感信息**:日志中是否包含了敏感信息(token/密码/个人信息)?
|
|
136
|
-
- **结构化日志**:是否使用结构化日志便于查询和分析?
|
|
137
|
-
|
|
138
|
-
**Review 检查点**:
|
|
139
|
-
- 新增日志是否在合适的层级(entry/infra)?
|
|
140
|
-
- 日志是否包含足够的上下文信息?
|
|
141
|
-
- 是否泄露了敏感信息?
|
|
142
|
-
|
|
143
|
-
### 注释与文档
|
|
144
|
-
Hard Gate 已限制:
|
|
145
|
-
- 禁止"解释代码做什么"的注释
|
|
146
|
-
- public API 需要 TSDoc/JSDoc
|
|
147
|
-
|
|
148
|
-
Review 需额外关注:
|
|
149
|
-
- **关键算法/复杂业务**:是否有块注释或链接到设计文档/issue?
|
|
150
|
-
- **非显而易见的决策**:是否解释了"为什么这样做"而不是"做了什么"?
|
|
151
|
-
- **坑/约束/假设**:是否记录了重要的假设、约束或已知问题?
|
|
152
|
-
- **API 文档完整性**:public API 的文档是否包含了参数说明、返回值、示例、错误情况?
|
|
153
|
-
|
|
154
|
-
**Review 检查点**:
|
|
155
|
-
- 复杂业务逻辑是否有注释说明"为什么"?
|
|
156
|
-
- public API 的文档是否完整?
|
|
157
|
-
- 是否存在需要删除的过时注释?
|
|
158
|
-
|
|
159
|
-
### 测试策略
|
|
160
|
-
虽然 Hard Gate 会跑测试,但 Review 需关注:
|
|
161
|
-
- **测试覆盖率**:关键业务逻辑是否有单元测试?
|
|
162
|
-
- **测试质量**:测试是否真正验证了业务逻辑,还是只是为了覆盖率?
|
|
163
|
-
- **测试可维护性**:测试是否易于理解和维护?
|
|
164
|
-
- **集成测试边界**:集成测试是否覆盖了关键路径?
|
|
165
|
-
|
|
166
|
-
**Review 检查点**:
|
|
167
|
-
- 新增的业务逻辑是否有对应的测试?
|
|
168
|
-
- 测试是否覆盖了边界情况和错误路径?
|
|
169
|
-
- 测试是否依赖了不必要的外部资源(应该 mock)?
|
|
170
|
-
|
|
171
|
-
### 性能考虑
|
|
172
|
-
Review 需关注明显的性能问题:
|
|
173
|
-
- **明显的性能反模式**:循环中的重复计算、不必要的深拷贝、大数据结构的同步遍历
|
|
174
|
-
- **资源泄漏**:未清理的定时器、未关闭的连接、未取消的订阅
|
|
175
|
-
- **不必要的重渲染**:React 组件是否有不必要的重渲染(缺少 memo/useMemo/useCallback)
|
|
176
|
-
- **阻塞操作**:是否在主线程执行了耗时的同步操作
|
|
177
|
-
|
|
178
|
-
**Review 检查点**:
|
|
179
|
-
- 是否存在明显的性能问题?
|
|
180
|
-
- 是否有资源泄漏的风险?
|
|
181
|
-
- 大数据处理是否考虑了性能优化?
|
|
182
|
-
|
|
183
|
-
### 安全考虑
|
|
184
|
-
虽然 Hard Gate 已覆盖部分安全检查,Review 需额外关注:
|
|
185
|
-
- **XSS 风险**:用户输入是否被正确转义?是否使用了 `dangerouslySetInnerHTML`?
|
|
186
|
-
- **SQL/NoSQL 注入**:数据库查询是否使用了参数化查询?
|
|
187
|
-
- **权限检查**:关键操作是否有权限校验?
|
|
188
|
-
- **数据验证**:外部输入是否经过验证?
|
|
189
|
-
|
|
190
|
-
**Review 检查点**:
|
|
191
|
-
- 用户输入是否经过验证和转义?
|
|
192
|
-
- 是否存在明显的安全风险?
|
|
193
|
-
- 敏感操作是否有权限校验?
|
|
194
|
-
|
|
195
|
-
## Review Checklist 模板
|
|
196
|
-
|
|
197
|
-
### 架构层面
|
|
198
|
-
- [ ] 新增代码是否放在了正确的分层?
|
|
199
|
-
- [ ] 是否遵循了依赖方向(向下/向内)?
|
|
200
|
-
- [ ] 是否存在跨层耦合或循环依赖?
|
|
201
|
-
- [ ] 职责划分是否清晰?
|
|
202
|
-
|
|
203
|
-
### 设计层面
|
|
204
|
-
- [ ] 模块 API 设计是否合理(边界清晰、易用)?
|
|
205
|
-
- [ ] 是否有合理的抽象(不过度设计,也不欠设计)?
|
|
206
|
-
- [ ] 副作用是否被正确隔离?
|
|
207
|
-
- [ ] 关键业务逻辑是否可测试?
|
|
208
|
-
|
|
209
|
-
### 代码质量
|
|
210
|
-
- [ ] 命名是否清晰表达意图?
|
|
211
|
-
- [ ] 复杂度是否合理(认知复杂度、嵌套层级)?
|
|
212
|
-
- [ ] 错误处理是否完善?
|
|
213
|
-
- [ ] 日志是否合理(层级、内容、敏感信息)?
|
|
214
|
-
|
|
215
|
-
### 文档与可维护性
|
|
216
|
-
- [ ] 复杂业务逻辑是否有注释说明"为什么"?
|
|
217
|
-
- [ ] public API 是否有完整文档?
|
|
218
|
-
- [ ] 是否有足够的测试覆盖关键路径?
|
|
219
|
-
|
|
220
|
-
### 性能与安全
|
|
221
|
-
- [ ] 是否存在明显的性能问题或资源泄漏?
|
|
222
|
-
- [ ] 用户输入是否经过验证?
|
|
223
|
-
- [ ] 是否存在明显的安全风险?
|
|
191
|
+
## 与 skill-creator 的一致性
|
|
192
|
+
|
|
193
|
+
本技能遵循 `skill-creator` 约定:
|
|
194
|
+
|
|
195
|
+
- **目录结构**:`skills/review-gate/` 存放 canonical 定义,`.shared/review-gate/` 存放共享资源
|
|
196
|
+
- **数据驱动**:使用 CSV/JSON 结构化数据,支持搜索和校验
|
|
197
|
+
- **确定性脚本**:Python 脚本实现确定性工作流
|
|
198
|
+
- **分层索引**:3 层架构(数据/推理/运行时)
|
|
199
|
+
- **可扩展性**:领域可插拔,规则可覆盖
|
|
224
200
|
|
|
225
201
|
## 与 Hard Gate 的协同
|
|
226
|
-
|
|
227
|
-
-
|
|
228
|
-
-
|
|
202
|
+
|
|
203
|
+
- **优先自动化**:可自动化的检查应转化为 Hard Gate 规则
|
|
204
|
+
- **持续演进**:定期回顾重复问题,考虑自动化
|
|
205
|
+
- **互为补充**:Hard Gate 保证基线,Review Gate 关注架构决策
|
|
206
|
+
|
|
207
|
+
## 快速参考
|
|
208
|
+
|
|
209
|
+
| 需求 | 查看 |
|
|
210
|
+
|------|------|
|
|
211
|
+
| 完整架构说明 | [`.shared/review-gate/README.md`](../../../.shared/review-gate/README.md) |
|
|
212
|
+
| 领域检查规则 | [`.shared/review-gate/data/domains/*/checks.csv`](../../../.shared/review-gate/data/domains/) |
|
|
213
|
+
| 修复方案 | [`.shared/review-gate/data/domains/*/recipes.md`](../../../.shared/review-gate/data/domains/) |
|
|
214
|
+
| 推理规则 | [`.shared/review-gate/data/reasoning/review-reasoning.csv`](../../../.shared/review-gate/data/reasoning/review-reasoning.csv) |
|
|
215
|
+
| 覆盖配置 | [`.shared/review-gate/review-system/`](../../../.shared/review-gate/review-system/) |
|
|
216
|
+
| CLI 入口 | [`.shared/review-gate/scripts/review.py`](../../../.shared/review-gate/scripts/review.py) |
|
|
217
|
+
|
|
218
|
+
---
|
|
219
|
+
|
|
220
|
+
**注**:本文档为导航索引,具体规则和实现请查看对应的数据文件和脚本。
|