sillyspec 2.4.1 → 2.4.3
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 +1 -1
- package/templates/brainstorm.md +126 -15
- package/templates/resume.md +2 -2
- package/templates/scan.md +13 -13
- package/templates/workspace.md +2 -2
package/package.json
CHANGED
package/templates/brainstorm.md
CHANGED
|
@@ -3,14 +3,95 @@
|
|
|
3
3
|
## 用户想法
|
|
4
4
|
$ARGUMENTS
|
|
5
5
|
|
|
6
|
+
## 流程总览
|
|
7
|
+
|
|
8
|
+
```
|
|
9
|
+
┌─────────────────────────────────────────────────┐
|
|
10
|
+
│ BRAINSTORM 流程 │
|
|
11
|
+
├─────────────────────────────────────────────────┤
|
|
12
|
+
│ │
|
|
13
|
+
│ ┌─── Step 0: 状态检查 ───┐ │
|
|
14
|
+
│ └────────────┬───────────┘ │
|
|
15
|
+
│ ▼ │
|
|
16
|
+
│ ┌─── Step 1: 加载项目上下文 ──┐ │
|
|
17
|
+
│ └────────────┬───────────────┘ │
|
|
18
|
+
│ ▼ │
|
|
19
|
+
│ ┌─── Step 1.5: 协作与复用检查 ─┐ │
|
|
20
|
+
│ └────────────┬────────────────┘ │
|
|
21
|
+
│ ▼ │
|
|
22
|
+
│ ┌─── Step 2: 原型/设计图分析 ─┐ ← 如有原型 │
|
|
23
|
+
│ └────────────┬────────────────┘ │
|
|
24
|
+
│ ▼ │
|
|
25
|
+
│ ┌─── Step 3: 对话式探索 ──┐ │
|
|
26
|
+
│ │ (一次一个问题,2-3轮) │ │
|
|
27
|
+
│ └────────────┬───────────┘ │
|
|
28
|
+
│ ▼ │
|
|
29
|
+
│ ┌─── Step 4: 提出 2-3 种方案 ─┐ │
|
|
30
|
+
│ └────────────┬───────────────┘ │
|
|
31
|
+
│ ▼ │
|
|
32
|
+
│ ┌─── Step 5: 分段展示设计 ──┐ │
|
|
33
|
+
│ │ (逐段确认) │ │
|
|
34
|
+
│ └────────────┬─────────────┘ │
|
|
35
|
+
│ ▼ │
|
|
36
|
+
│ ┌─── Step 6: 写设计文档 ────┐ │
|
|
37
|
+
│ └────────────┬─────────────┘ │
|
|
38
|
+
│ ▼ │
|
|
39
|
+
│ ┌─── Step 7: AI 自审 ──────┐ │
|
|
40
|
+
│ └────────────┬─────────────┘ │
|
|
41
|
+
│ ▼ │
|
|
42
|
+
│ ┌─── Step 8: 用户确认 ────┐ │
|
|
43
|
+
│ │ ⛔ 必须等用户明确确认 │ │
|
|
44
|
+
│ └────────────┬───────────┘ │
|
|
45
|
+
│ ▼ │
|
|
46
|
+
│ /sillyspec:propose │
|
|
47
|
+
│ (唯一出口 ✅) │
|
|
48
|
+
│ │
|
|
49
|
+
│ ❌ 禁止跳转:propose → execute(无此路径) │
|
|
50
|
+
│ ❌ 禁止跳转:brainstorm → 任何代码操作 │
|
|
51
|
+
└─────────────────────────────────────────────────┘
|
|
52
|
+
```
|
|
53
|
+
|
|
54
|
+
**终态明确:** brainstorm 完成后,必须且只能调用 `/sillyspec:propose` 进入下一阶段。不允许直接进入 execute、plan 或任何代码操作。
|
|
55
|
+
|
|
56
|
+
## 结构化 Checklist(必须按顺序完成)
|
|
57
|
+
|
|
58
|
+
> ⚠️ AI 必须逐项完成以下清单,每步有明确产出后再进入下一步。
|
|
59
|
+
> 不允许跳步。不允许并行。不允许在完成当前步骤前开始下一步。
|
|
60
|
+
|
|
61
|
+
- [ ] **Step 0** — 检查 CLI 状态,确认当前处于 brainstorm 阶段
|
|
62
|
+
- [ ] **Step 1** — 加载项目上下文,理解现有代码结构和约定
|
|
63
|
+
- [ ] **Step 1.5** — 检查同名变更和全局模板,避免重复劳动
|
|
64
|
+
- [ ] **Step 2** — 分析原型/设计图(如有),提取页面结构和字段
|
|
65
|
+
- [ ] **Step 2b** — 评估需求范围,复杂需求先拆分子项目/阶段,生成 MASTER.md
|
|
66
|
+
- [ ] **Step 3** — 对话式探索需求,一次一个问题,2-3 轮内完成
|
|
67
|
+
- [ ] **Step 4** — 提出 2-3 个方案并给出推荐
|
|
68
|
+
- [ ] **Step 5** — 分段展示设计,逐段用户确认
|
|
69
|
+
- [ ] **Step 6** — 撰写 design 文档并保存
|
|
70
|
+
- [ ] **Step 7** — AI 自审 design 文档(对照约束检查)
|
|
71
|
+
- [ ] **Step 8** — 用户确认设计 → 调用 `/sillyspec:propose`
|
|
72
|
+
|
|
6
73
|
## 核心原则
|
|
7
74
|
|
|
8
75
|
**创建性工作前必须经过此流程。** 不管需求多简单,都必须先探索再动手。
|
|
9
76
|
|
|
10
77
|
<HARD-GATE>
|
|
11
78
|
在用户确认设计之前,不得调用任何实现技能、不写任何代码、不做任何脚手架、不安装任何依赖。
|
|
79
|
+
brainstorm 的唯一出口是 /sillyspec:propose。没有其他路径可以离开 brainstorm。
|
|
12
80
|
</HARD-GATE>
|
|
13
81
|
|
|
82
|
+
## 🚫 禁止事项
|
|
83
|
+
|
|
84
|
+
- ❌ 写实现代码(Java/JS/Python/任何语言)
|
|
85
|
+
- ❌ 修改任何源代码文件
|
|
86
|
+
- ❌ 安装依赖或执行构建命令
|
|
87
|
+
- ❌ 创建数据库迁移脚本
|
|
88
|
+
- ❌ 直接实现功能而不是先讨论设计
|
|
89
|
+
- ❌ 跳过 brainstorm 直接进入 execute 或 plan
|
|
90
|
+
- ❌ 在 checklist 未完成前开始写设计文档
|
|
91
|
+
- ❌ 编造不存在的表名、字段名、API 端点
|
|
92
|
+
|
|
93
|
+
如果用户在头脑风暴阶段要求写代码,提醒他们:先完成 brainstorm 确认设计方案,再进入 propose → plan → execute 流程写代码。
|
|
94
|
+
|
|
14
95
|
## 反模式:"这个太简单了不需要设计"
|
|
15
96
|
|
|
16
97
|
每个项目都走这个流程。Todo 列表、单函数工具、配置修改——都一样。"简单"的项目才是未检视的假设造成最大浪费的地方。设计可以很短,但必须呈现并获批准。
|
|
@@ -42,9 +123,9 @@ cat .sillyspec/config.yaml 2>/dev/null
|
|
|
42
123
|
|
|
43
124
|
**如果是工作区模式:**
|
|
44
125
|
1. 询问本次需求属于哪个子项目:
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
126
|
+
请选择需求所属的子项目:
|
|
127
|
+
1. frontend — 前端 - Vue3 + TypeScript
|
|
128
|
+
2. backend — 后端 - Node.js + PostgreSQL
|
|
48
129
|
2. 加载该子项目的上下文 + 工作区共享规范:
|
|
49
130
|
|
|
50
131
|
```bash
|
|
@@ -190,11 +271,11 @@ ls ~/.sillyspec/templates/ 2>/dev/null
|
|
|
190
271
|
将以上分析结果展示给用户,补充遗漏:
|
|
191
272
|
|
|
192
273
|
> 📐 原型分析完成。提取到 3 个页面、15 个字段、4 个交互流程。
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
274
|
+
|
|
275
|
+
请确认:
|
|
276
|
+
1. 有没有漏掉的字段或功能?
|
|
277
|
+
2. 图中的流程线我理解得对吗?
|
|
278
|
+
3. 有没有业务规则只在口头说、没画在原型里的?
|
|
198
279
|
|
|
199
280
|
**2f. 如果原型页面太多**
|
|
200
281
|
|
|
@@ -384,14 +465,34 @@ git commit -m "docs: master change plan for <变更名>"
|
|
|
384
465
|
- [ ] 标准 2
|
|
385
466
|
```
|
|
386
467
|
|
|
387
|
-
### 7.
|
|
468
|
+
### 7. AI 自审
|
|
469
|
+
|
|
470
|
+
写完设计文档后,**立即进行自审**,不要等用户来挑问题。
|
|
471
|
+
|
|
472
|
+
自审检查项:
|
|
473
|
+
|
|
474
|
+
1. **需求覆盖**:design 是否完整覆盖了用户在 Step 3 中确认的所有需求点?
|
|
475
|
+
2. **约束一致性**:design 中的技术方案是否与 ARCHITECTURE.md、CONVENTIONS.md 一致?
|
|
476
|
+
3. **表名/字段真实性**:是否所有引用的表名和字段都来自真实 schema?新增的是否明确标注?
|
|
477
|
+
4. **范围控制**:是否包含了不必要的功能(违反 YAGNI)?
|
|
478
|
+
5. **验收标准**:验收标准是否具体、可测试?
|
|
479
|
+
6. **与已有变更冲突**:是否与 Step 1.5 中检测到的已有变更冲突?
|
|
480
|
+
|
|
481
|
+
**自审结果处理:**
|
|
482
|
+
- 全部通过 → 进入 Step 8
|
|
483
|
+
- 发现问题 → 修改 design 文档,重新自审,全部通过后再进入 Step 8
|
|
484
|
+
- 不确定的问题 → 在 Step 8 展示给用户时标注「⚠️ 自审存疑」,请用户判断
|
|
485
|
+
|
|
486
|
+
**不要跳过自审。** 这是保证设计质量的关键环节。
|
|
487
|
+
|
|
488
|
+
### 8. 提交 Git
|
|
388
489
|
|
|
389
490
|
```bash
|
|
390
491
|
git add .sillyspec/specs/
|
|
391
492
|
git commit -m "docs: design for <topic>"
|
|
392
493
|
```
|
|
393
494
|
|
|
394
|
-
###
|
|
495
|
+
### 9. 用户确认(⛔ 门禁)
|
|
395
496
|
|
|
396
497
|
**设计保存后,用 CLI 验证状态:**
|
|
397
498
|
|
|
@@ -401,10 +502,15 @@ sillyspec status --json
|
|
|
401
502
|
|
|
402
503
|
CLI 应返回 `phase: "propose"`。
|
|
403
504
|
|
|
404
|
-
展示给用户:
|
|
405
|
-
|
|
406
|
-
|
|
407
|
-
|
|
505
|
+
**⛔ 必须等待用户明确确认后才能进入下一阶段。** 展示给用户:
|
|
506
|
+
|
|
507
|
+
|
|
508
|
+
请确认设计方案:
|
|
509
|
+
1. ✅ 确认,进入 propose
|
|
510
|
+
2. ✏️ 需要修改(请说明要改什么)
|
|
511
|
+
3. ❌ 推翻重来
|
|
512
|
+
|
|
513
|
+
**用户选择 1** → 推荐下一步命令:
|
|
408
514
|
|
|
409
515
|
```bash
|
|
410
516
|
sillyspec next
|
|
@@ -412,7 +518,12 @@ sillyspec next
|
|
|
412
518
|
|
|
413
519
|
将 CLI 返回的命令推荐给用户。**不要自己编建议。**
|
|
414
520
|
|
|
415
|
-
|
|
521
|
+
**用户选择 2** → 修改 design 文档,重新自审,再次进入确认门禁。
|
|
522
|
+
**用户选择 3** → 回到 Step 3 或 Step 4 重新探索。
|
|
523
|
+
|
|
524
|
+
**不允许在用户确认前自行推进到 propose 或任何后续阶段。**
|
|
525
|
+
|
|
526
|
+
### 10. 更新 STATE.md
|
|
416
527
|
|
|
417
528
|
每次 brainstorm 完成后,**必须自动更新** `.sillyspec/STATE.md`。
|
|
418
529
|
|
package/templates/resume.md
CHANGED
package/templates/scan.md
CHANGED
|
@@ -43,9 +43,9 @@ cat .sillyspec/config.yaml 2>/dev/null
|
|
|
43
43
|
|
|
44
44
|
询问用户:
|
|
45
45
|
> 检测到工作区模式,请选择扫描范围:
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
46
|
+
1. 全部子项目(逐个扫描后生成汇总)
|
|
47
|
+
2. 指定某个子项目
|
|
48
|
+
3. 取消
|
|
49
49
|
|
|
50
50
|
根据选择:
|
|
51
51
|
- 选 1 → 逐个扫描,最后生成 `.sillyspec/workspace/CODEBASE-OVERVIEW.md`
|
|
@@ -68,9 +68,9 @@ wc -l .sillyspec/codebase/*.md 2>/dev/null
|
|
|
68
68
|
|
|
69
69
|
**已有 3 份(STACK + STRUCTURE + PROJECT):**
|
|
70
70
|
> 检测到上次的快速扫描结果。
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
71
|
+
1. 升级为完整扫描(补充 4 份文档)
|
|
72
|
+
2. 重新快速扫描(覆盖现有文档)
|
|
73
|
+
3. 跳过,直接开始开发
|
|
74
74
|
|
|
75
75
|
**已有 7 份完整文档:**
|
|
76
76
|
先检查距上次扫描过了多久:
|
|
@@ -80,8 +80,8 @@ git log --oneline --since="上次扫描时间" | wc -l
|
|
|
80
80
|
```
|
|
81
81
|
|
|
82
82
|
> 上次扫描距今 X 天,期间有 Y 个新提交。
|
|
83
|
-
|
|
84
|
-
|
|
83
|
+
1. 刷新(重新扫描全部)
|
|
84
|
+
2. 跳过,直接开始开发
|
|
85
85
|
|
|
86
86
|
**用户选跳过** → 输出"可以开始开发了。建议下一步:`/sillyspec:brainstorm '你的需求'`"然后结束。
|
|
87
87
|
|
|
@@ -89,13 +89,13 @@ git log --oneline --since="上次扫描时间" | wc -l
|
|
|
89
89
|
|
|
90
90
|
请选择扫描模式:
|
|
91
91
|
|
|
92
|
-
|
|
92
|
+
1. 快速扫描 ⚡
|
|
93
93
|
> 读取配置文件和目录结构,约 30 秒
|
|
94
94
|
> 生成 3 份文档:技术栈 + 目录结构 + 项目概览
|
|
95
|
-
|
|
95
|
+
2. 深度扫描 🔍
|
|
96
96
|
> 读取全部源代码并分析,约 2-3 分钟
|
|
97
97
|
> 生成 7 份文档:技术栈 + 架构 + 目录结构 + 编码约定 + 集成 + 测试 + 技术债务
|
|
98
|
-
|
|
98
|
+
3. 取消
|
|
99
99
|
|
|
100
100
|
根据选择进入对应的扫描流程。
|
|
101
101
|
|
|
@@ -131,8 +131,8 @@ git log --oneline --since="上次扫描时间" | wc -l
|
|
|
131
131
|
把以上选择汇总,让用户最后确认:
|
|
132
132
|
|
|
133
133
|
开始扫描?
|
|
134
|
-
|
|
135
|
-
|
|
134
|
+
1. 确认,开始扫描
|
|
135
|
+
2. 修改选项
|
|
136
136
|
|
|
137
137
|
用户确认 → 执行扫描。用户想改 → 回到对应步骤。
|
|
138
138
|
|