prd-workflow-cli 1.3.4 → 1.4.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/.agent/workflows/prd-b1-planning-draft.md +45 -0
- package/.agent/workflows/prd-b2-planning-breakdown.md +53 -0
- package/.agent/workflows/prd-c1-requirement-list.md +63 -0
- package/.agent/workflows/prd-p0-project-info.md +45 -0
- package/.agent/workflows/prd-r1-review.md +45 -0
- package/.agent/workflows/prd-r2-review.md +43 -0
- package/.antigravity/rules.md +14 -0
- package/.cursorrules +26 -0
- package/bin/prd-cli.js +21 -0
- package/commands/check.js +509 -0
- package/commands/stats.js +192 -0
- package/docs/RULE-SYSTEM-ROADMAP.md +286 -0
- package/package.json +3 -1
- package/rules/index.json +614 -0
- package/rules/schemas/a2ui.schema.json +545 -0
- package/rules/schemas/rules.schema.json +221 -0
- package/scripts/inject-rules.js +167 -0
- package/templates/a2ui-standalone.html +3 -3
|
@@ -0,0 +1,286 @@
|
|
|
1
|
+
# 规则系统改造路线图
|
|
2
|
+
|
|
3
|
+
> 创建时间:2024-12-29
|
|
4
|
+
> 目标:让规则从"自然语言"升级为"机器可检验的契约"
|
|
5
|
+
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
## 📊 改造进度总览
|
|
9
|
+
|
|
10
|
+
| 阶段 | 任务数 | 已完成 | 进度 |
|
|
11
|
+
|------|--------|--------|------|
|
|
12
|
+
| P0 - 基础设施 | 3 | 3 | 100% ✅ |
|
|
13
|
+
| P1 - 程序校验 | 6 | 6 | 100% ✅ |
|
|
14
|
+
| P2 - AI 自检强化 | 4 | 4 | 100% ✅ |
|
|
15
|
+
| P3 - 可观测性 | 2 | 2 | 100% ✅ |
|
|
16
|
+
| **合计** | **15** | **15** | **100%** 🎉 |
|
|
17
|
+
|
|
18
|
+
---
|
|
19
|
+
|
|
20
|
+
## 🎯 P0 - 基础设施(必须先完成)
|
|
21
|
+
|
|
22
|
+
### T001 - 创建规则索引文件 `rules/index.json`
|
|
23
|
+
- **状态**:✅ 已完成
|
|
24
|
+
- **完成时间**:2024-12-29
|
|
25
|
+
- **优先级**:P0
|
|
26
|
+
- **描述**:创建结构化的规则索引,包含 rule_id、scope、severity、validator 等字段
|
|
27
|
+
- **输出物**:`prd-cli/rules/index.json`(37 条规则、12 个校验器、9 个分类)
|
|
28
|
+
- **依赖**:无
|
|
29
|
+
- **工作量**:小
|
|
30
|
+
|
|
31
|
+
### T002 - 创建 A2UI JSON Schema
|
|
32
|
+
- **状态**:✅ 已完成
|
|
33
|
+
- **完成时间**:2024-12-29
|
|
34
|
+
- **优先级**:P0
|
|
35
|
+
- **描述**:定义 A2UI 组件的 JSON Schema,用于校验生成的 JSON 结构
|
|
36
|
+
- **输出物**:
|
|
37
|
+
- `prd-cli/rules/schemas/a2ui.schema.json`(21 种组件类型的完整定义)
|
|
38
|
+
- `prd-cli/rules/schemas/rules.schema.json`(规则索引 Schema)
|
|
39
|
+
- **依赖**:无
|
|
40
|
+
- **工作量**:中
|
|
41
|
+
|
|
42
|
+
### T003 - 创建 `prd check` 命令框架
|
|
43
|
+
- **状态**:✅ 已完成
|
|
44
|
+
- **完成时间**:2024-12-29
|
|
45
|
+
- **优先级**:P0
|
|
46
|
+
- **描述**:新增 CLI 命令 `prd check`,作为规则校验的入口
|
|
47
|
+
- **输出物**:
|
|
48
|
+
- `prd-cli/commands/check.js`(含 CheckResult 类、3 个校验器)
|
|
49
|
+
- `bin/prd-cli.js` 已注册命令
|
|
50
|
+
- **依赖**:T001
|
|
51
|
+
- **工作量**:中
|
|
52
|
+
- **已实现校验器**:
|
|
53
|
+
- `checkFrozenStatus` - 冻结状态检查 (D001-D004)
|
|
54
|
+
- `checkFlowOrder` - 流程顺序检查 (F001-F003)
|
|
55
|
+
- `checkA2UIFiles` - A2UI 文件检查 (V003-V006)
|
|
56
|
+
|
|
57
|
+
---
|
|
58
|
+
|
|
59
|
+
## 🔧 P1 - 程序校验(核心功能)
|
|
60
|
+
|
|
61
|
+
### T101 - 实现冻结状态保护 (D001-D004)
|
|
62
|
+
- **状态**:✅ 已完成(已合并到 T003)
|
|
63
|
+
- **完成时间**:2024-12-29
|
|
64
|
+
- **优先级**:P1
|
|
65
|
+
- **描述**:检查 `.prd-config.json` 的冻结状态,对冻结文档的写入进行告警/拦截
|
|
66
|
+
- **覆盖规则**:D001, D002, D003, D004
|
|
67
|
+
- **输出物**:`prd-cli/commands/check.js` 中的 `checkFrozenStatus()` 函数
|
|
68
|
+
- **依赖**:T003
|
|
69
|
+
- **工作量**:小
|
|
70
|
+
|
|
71
|
+
### T102 - 实现流程顺序检查 (F001-F003)
|
|
72
|
+
- **状态**:✅ 已完成(已合并到 T003)
|
|
73
|
+
- **完成时间**:2024-12-29
|
|
74
|
+
- **优先级**:P1
|
|
75
|
+
- **描述**:检查是否存在必要的前置文档(如 B3 前必须有 R1)
|
|
76
|
+
- **覆盖规则**:F001, F002, F003
|
|
77
|
+
- **输出物**:`prd-cli/commands/check.js` 中的 `checkFlowOrder()` 函数
|
|
78
|
+
- **依赖**:T003
|
|
79
|
+
- **工作量**:中
|
|
80
|
+
|
|
81
|
+
### T103 - 实现 A2UI 双文件检查 (V004)
|
|
82
|
+
- **状态**:✅ 已完成(已合并到 T003)
|
|
83
|
+
- **完成时间**:2024-12-29
|
|
84
|
+
- **优先级**:P1
|
|
85
|
+
- **描述**:检查 C1_UI原型 目录下 .json 和 .html 是否成对存在
|
|
86
|
+
- **覆盖规则**:V004, V006
|
|
87
|
+
- **输出物**:`prd-cli/commands/check.js` 中的 `checkA2UIFiles()` 函数
|
|
88
|
+
- **依赖**:T003
|
|
89
|
+
- **工作量**:小
|
|
90
|
+
|
|
91
|
+
### T104 - 实现 A2UI 文件命名检查 (V005)
|
|
92
|
+
- **状态**:✅ 已完成(已合并到 T003)
|
|
93
|
+
- **完成时间**:2024-12-29
|
|
94
|
+
- **优先级**:P1
|
|
95
|
+
- **描述**:检查原型文件名是否符合 `REQ-XXX-名称` 格式
|
|
96
|
+
- **覆盖规则**:V005
|
|
97
|
+
- **输出物**:`prd-cli/commands/check.js` 中的 `checkA2UIFiles()` 函数
|
|
98
|
+
- **依赖**:T003
|
|
99
|
+
- **工作量**:小
|
|
100
|
+
|
|
101
|
+
### T105 - 实现 A2UI JSON Schema 校验 (V007)
|
|
102
|
+
- **状态**:✅ 已完成
|
|
103
|
+
- **完成时间**:2024-12-29
|
|
104
|
+
- **优先级**:P1
|
|
105
|
+
- **描述**:使用组件类型白名单校验 A2UI JSON 结构
|
|
106
|
+
- **覆盖规则**:V007
|
|
107
|
+
- **输出物**:`prd-cli/commands/check.js` 中的 `findInvalidComponentTypes()` 函数
|
|
108
|
+
- **依赖**:T002, T003
|
|
109
|
+
- **工作量**:中
|
|
110
|
+
- **实现方式**:递归遍历 JSON,检查所有 `type` 字段是否在白名单内
|
|
111
|
+
|
|
112
|
+
### T106 - 实现需求范围检查 (S002-S003)
|
|
113
|
+
- **状态**:✅ 已完成
|
|
114
|
+
- **完成时间**:2024-12-29
|
|
115
|
+
- **优先级**:P1
|
|
116
|
+
- **描述**:对比 C0/C1 需求与 B2/B3 范围,发现超出时告警
|
|
117
|
+
- **覆盖规则**:S002, S003
|
|
118
|
+
- **输出物**:`prd-cli/commands/check.js` 中的 `checkRequirementScope()` 函数
|
|
119
|
+
- **依赖**:T003
|
|
120
|
+
- **工作量**:大
|
|
121
|
+
- **实现方式**:
|
|
122
|
+
- S002: 检查配置中的批次信息,提醒确保范围正确
|
|
123
|
+
- S003: 从 B3 提取 REQ-XXX 模式,与 C1 目录文件对比
|
|
124
|
+
|
|
125
|
+
---
|
|
126
|
+
|
|
127
|
+
## 🧠 P2 - AI 自检强化
|
|
128
|
+
|
|
129
|
+
### T201 - 改造 workflow 文件头部,注入规则子集表
|
|
130
|
+
- **状态**:✅ 已完成
|
|
131
|
+
- **完成时间**:2024-12-29
|
|
132
|
+
- **优先级**:P2
|
|
133
|
+
- **描述**:在每个 workflow 文件开头添加"本阶段必须遵守的规则"表格
|
|
134
|
+
- **覆盖规则**:所有无法程序校验的规则
|
|
135
|
+
- **输出物**:
|
|
136
|
+
- `prd-cli/scripts/inject-rules.js`(规则注入工具)
|
|
137
|
+
- 已注入 6 个 workflow 文件
|
|
138
|
+
- **依赖**:T001
|
|
139
|
+
- **工作量**:中
|
|
140
|
+
|
|
141
|
+
### T202 - 设计强制输出模板(自检清单格式)
|
|
142
|
+
- **状态**:✅ 已完成(合并到 T201)
|
|
143
|
+
- **完成时间**:2024-12-29
|
|
144
|
+
- **优先级**:P2
|
|
145
|
+
- **描述**:定义 AI 在关键节点必须输出的自检清单格式
|
|
146
|
+
- **输出物**:每个 workflow 文件中的“自检清单模板”代码块
|
|
147
|
+
- **依赖**:T201
|
|
148
|
+
- **工作量**:小
|
|
149
|
+
|
|
150
|
+
### T203 - 更新 `.cursorrules` 和 `.antigravity/rules.md`
|
|
151
|
+
- **状态**:✅ 已完成
|
|
152
|
+
- **完成时间**:2024-12-29
|
|
153
|
+
- **优先级**:P2
|
|
154
|
+
- **描述**:添加规则系统概述,引用 rules/index.json
|
|
155
|
+
- **输出物**:修改后的规则文件
|
|
156
|
+
- **依赖**:T001, T201
|
|
157
|
+
- **工作量**:中
|
|
158
|
+
|
|
159
|
+
### T204 - 实现违规信息结构化回喂机制
|
|
160
|
+
- **状态**:✅ 已完成(已在 T003 实现)
|
|
161
|
+
- **完成时间**:2024-12-29
|
|
162
|
+
- **优先级**:P2
|
|
163
|
+
- **描述**:当 `prd check` 发现违规时,输出结构化 JSON 供 AI 读取并修复
|
|
164
|
+
- **输出物**:`prd check --json` 输出格式
|
|
165
|
+
- **依赖**:T003, P1 全部
|
|
166
|
+
- **工作量**:小
|
|
167
|
+
|
|
168
|
+
---
|
|
169
|
+
|
|
170
|
+
## 📈 P3 - 可观测性(长期)
|
|
171
|
+
|
|
172
|
+
### T301 - 实现规则校验日志记录
|
|
173
|
+
- **状态**:✅ 已完成
|
|
174
|
+
- **完成时间**:2024-12-29
|
|
175
|
+
- **优先级**:P3
|
|
176
|
+
- **描述**:每次 `prd check` 执行后记录日志,便于统计分析
|
|
177
|
+
- **输出物**:
|
|
178
|
+
- `CheckResult.saveLog()` 方法
|
|
179
|
+
- 日志文件 `.prd-logs/check-history.json`
|
|
180
|
+
- `--no-log` 选项
|
|
181
|
+
- **依赖**:P1 全部
|
|
182
|
+
- **工作量**:中
|
|
183
|
+
|
|
184
|
+
### T302 - 实现规则遗漏统计报告
|
|
185
|
+
- **状态**:✅ 已完成
|
|
186
|
+
- **完成时间**:2024-12-29
|
|
187
|
+
- **优先级**:P3
|
|
188
|
+
- **描述**:基于日志生成统计报告,识别高频遗漏规则
|
|
189
|
+
- **输出物**:
|
|
190
|
+
- `prd-cli/commands/stats.js`
|
|
191
|
+
- `prd stats` 命令(包含通过率、高频违规 Top 5、7天趋势)
|
|
192
|
+
- **依赖**:T301
|
|
193
|
+
- **工作量**:中
|
|
194
|
+
|
|
195
|
+
---
|
|
196
|
+
|
|
197
|
+
## 📋 完整规则清单索引
|
|
198
|
+
|
|
199
|
+
### 全局红线 (G)
|
|
200
|
+
| ID | 描述 | 可程序校验 | 覆盖任务 |
|
|
201
|
+
|----|------|------------|----------|
|
|
202
|
+
| G001 | 所有回复必须使用简体中文 | ❌ | T201 |
|
|
203
|
+
| G002 | 禁止未经对话就填充文档 | ❌ | T201 |
|
|
204
|
+
| G003 | 禁止替 PM 做决策 | ❌ | T201 |
|
|
205
|
+
| G004 | 禁止"快速完成"跳过流程 | ❌ | T201 |
|
|
206
|
+
|
|
207
|
+
### 文档状态 (D)
|
|
208
|
+
| ID | 描述 | 可程序校验 | 覆盖任务 |
|
|
209
|
+
|----|------|------------|----------|
|
|
210
|
+
| D001 | 禁止修改已冻结的 B3 文档 | ✅ | T101 |
|
|
211
|
+
| D002 | 禁止修改已冻结的 C3 文档 | ✅ | T101 |
|
|
212
|
+
| D003 | B3 冻结后禁止修改 B1、B2 | ✅ | T101 |
|
|
213
|
+
| D004 | C3 冻结后禁止修改 C0、C1 | ✅ | T101 |
|
|
214
|
+
| D005 | 状态变更后同步 .prd-config.json | ✅ | T101 |
|
|
215
|
+
|
|
216
|
+
### 流程顺序 (F)
|
|
217
|
+
| ID | 描述 | 可程序校验 | 覆盖任务 |
|
|
218
|
+
|----|------|------------|----------|
|
|
219
|
+
| F001 | B2 后必须 R1 才能 B3 | ✅ | T102 |
|
|
220
|
+
| F002 | C1 后必须 R2 才能 C3 | ✅ | T102 |
|
|
221
|
+
| F003 | 创建迭代后必须先 R1 启动检查 | ✅ | T102 |
|
|
222
|
+
| F004 | R1 必须有 5 维度分析 | ⚠️ | T102 |
|
|
223
|
+
| F005 | 每批次必须完整 C0→C1→R2→C3 | ⚠️ | T102 |
|
|
224
|
+
|
|
225
|
+
### 需求范围 (S)
|
|
226
|
+
| ID | 描述 | 可程序校验 | 覆盖任务 |
|
|
227
|
+
|----|------|------------|----------|
|
|
228
|
+
| S001 | C1 禁止加新需求 | ⚠️ | T106 |
|
|
229
|
+
| S002 | C0 只含首批需求 | ✅ | T106 |
|
|
230
|
+
| S003 | C1 需求必须在 B3 范围内 | ✅ | T106 |
|
|
231
|
+
| S004 | 新需求流程:A2→新迭代→B1 | ❌ | T201 |
|
|
232
|
+
|
|
233
|
+
### A2UI 可视化 (V)
|
|
234
|
+
| ID | 描述 | 可程序校验 | 覆盖任务 |
|
|
235
|
+
|----|------|------------|----------|
|
|
236
|
+
| V001 | 描述系统结构时生成架构图 | ❌ | T201 |
|
|
237
|
+
| V002 | 描述界面时生成原型 | ❌ | T201 |
|
|
238
|
+
| V003 | JSON 必须写入 current.json | ✅ | T103 |
|
|
239
|
+
| V004 | 确认后保存 .json + .html | ✅ | T103 |
|
|
240
|
+
| V005 | 命名规范 REQ-XXX-名称 | ✅ | T104 |
|
|
241
|
+
| V006 | 保存后更新 index.md | ✅ | T103 |
|
|
242
|
+
| V007 | 只使用定义的组件 | ✅ | T105 |
|
|
243
|
+
|
|
244
|
+
### 分段保存 (I)
|
|
245
|
+
| ID | 描述 | 可程序校验 | 覆盖任务 |
|
|
246
|
+
|----|------|------------|----------|
|
|
247
|
+
| I001 | 确认一个需求立即写入 | ❌ | T201 |
|
|
248
|
+
| I002 | 禁止一次性写入 | ❌ | T201 |
|
|
249
|
+
| I003 | 里程碑保存点 | ❌ | T201 |
|
|
250
|
+
| I004 | 切换主题前保存 | ❌ | T201 |
|
|
251
|
+
|
|
252
|
+
### 用户角度 (U)
|
|
253
|
+
| ID | 描述 | 可程序校验 | 覆盖任务 |
|
|
254
|
+
|----|------|------------|----------|
|
|
255
|
+
| U001 | B2 必须提 3 个用户质疑 | ❌ | T201 |
|
|
256
|
+
| U002 | C1 必须用户角度审计 | ❌ | T201 |
|
|
257
|
+
| U003 | 禁止不质疑直接记录 | ❌ | T201 |
|
|
258
|
+
|
|
259
|
+
### 完整性检查 (C)
|
|
260
|
+
| ID | 描述 | 可程序校验 | 覆盖任务 |
|
|
261
|
+
|----|------|------------|----------|
|
|
262
|
+
| C001 | PM 说完成时 5 维度检查 | ❌ | T201 |
|
|
263
|
+
| C002 | 5 维度定义 | - | - |
|
|
264
|
+
| C003 | 禁止不追问遗漏 | ❌ | T201 |
|
|
265
|
+
|
|
266
|
+
### 工作启动 (W)
|
|
267
|
+
| ID | 描述 | 可程序校验 | 覆盖任务 |
|
|
268
|
+
|----|------|------------|----------|
|
|
269
|
+
| W001 | 开始前查看项目状态 | ❌ | T201 |
|
|
270
|
+
| W002 | 开始前确认冻结状态 | ✅ | T101 |
|
|
271
|
+
|
|
272
|
+
---
|
|
273
|
+
|
|
274
|
+
## 📝 变更日志
|
|
275
|
+
|
|
276
|
+
| 日期 | 变更内容 |
|
|
277
|
+
|------|----------|
|
|
278
|
+
| 2024-12-29 | 创建文档,定义 15 个任务,37 条规则 |
|
|
279
|
+
|
|
280
|
+
---
|
|
281
|
+
|
|
282
|
+
## 🚀 下一步
|
|
283
|
+
|
|
284
|
+
执行顺序:**T001 → T002 → T003 → T101 → T103 → T104 → T105**
|
|
285
|
+
|
|
286
|
+
确认后开始执行 T001。
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "prd-workflow-cli",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.4.0",
|
|
4
4
|
"description": "产品需求管理规范 CLI 工具 - 基于 A→R→B→C 流程,集成 PM 确认机制和对话归档的需求管理命令行工具",
|
|
5
5
|
"main": "index.js",
|
|
6
6
|
"bin": {
|
|
@@ -48,10 +48,12 @@
|
|
|
48
48
|
"bin/",
|
|
49
49
|
"commands/",
|
|
50
50
|
"scripts/",
|
|
51
|
+
"rules/",
|
|
51
52
|
"a2ui-viewer/",
|
|
52
53
|
".agent/",
|
|
53
54
|
".antigravity/",
|
|
54
55
|
"templates/",
|
|
56
|
+
"docs/",
|
|
55
57
|
".cursorrules",
|
|
56
58
|
"README.md",
|
|
57
59
|
"GUIDE.md"
|