sillyspec 2.4.4 → 2.5.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.
Files changed (34) hide show
  1. package/.claude/commands/sillyspec/archive.md +14 -56
  2. package/.claude/commands/sillyspec/brainstorm.md +81 -483
  3. package/.claude/commands/sillyspec/continue.md +20 -30
  4. package/.claude/commands/sillyspec/execute.md +54 -173
  5. package/.claude/commands/sillyspec/explore.md +15 -68
  6. package/.claude/commands/sillyspec/export.md +10 -39
  7. package/.claude/commands/sillyspec/init.md +20 -127
  8. package/.claude/commands/sillyspec/plan.md +36 -187
  9. package/.claude/commands/sillyspec/propose.md +36 -186
  10. package/.claude/commands/sillyspec/quick.md +13 -48
  11. package/.claude/commands/sillyspec/resume.md +22 -79
  12. package/.claude/commands/sillyspec/scan.md +100 -511
  13. package/.claude/commands/sillyspec/status.md +16 -96
  14. package/.claude/commands/sillyspec/verify.md +22 -86
  15. package/.claude/commands/sillyspec/workspace.md +22 -95
  16. package/.sillyspec/config.yaml +13 -0
  17. package/package.json +7 -2
  18. package/src/index.js +2 -2
  19. package/src/init.js +232 -63
  20. package/templates/archive.md +14 -56
  21. package/templates/brainstorm.md +81 -483
  22. package/templates/continue.md +20 -30
  23. package/templates/execute.md +54 -173
  24. package/templates/explore.md +15 -68
  25. package/templates/export.md +10 -39
  26. package/templates/init.md +20 -127
  27. package/templates/plan.md +36 -187
  28. package/templates/propose.md +36 -186
  29. package/templates/quick.md +13 -48
  30. package/templates/resume.md +22 -79
  31. package/templates/scan.md +100 -511
  32. package/templates/status.md +16 -96
  33. package/templates/verify.md +22 -86
  34. package/templates/workspace.md +22 -95
@@ -1,39 +1,29 @@
1
- ---
1
+ ## 核心约束(必须遵守)
2
+ - ❌ 跳过自动判断,直接执行某个阶段
2
3
 
3
- 你现在是 SillySpec 的自动推进器。
4
+ ---
4
5
 
5
6
  ## 判断逻辑
6
7
 
7
8
  按顺序检查,第一个未完成的就执行:
8
9
 
9
10
  ```
10
- 1. 有 HANDOFF.json?→ 执行 /sillyspec:resume
11
-
12
- 2. .sillyspec/changes/ 有进行中的变更?
13
- 2a. 没有任何文件提示检查 proposal 是否需要完善
14
- 2b. 没有 design.md → 提示补充 design
15
- 2c. 没有 tasks.md → 执行 /sillyspec:propose(补全规范)
16
- 2d. tasks.md 有未完成项 + 有计划文件 → 执行 /sillyspec:execute
17
- 2e. tasks.md 全完成 + 没验证 → 执行 /sillyspec:verify
18
- 2f. 已验证通过 → 执行 /sillyspec:archive
19
-
20
- 3. 有设计文档但没有对应变更?
21
- 提示运行 /sillyspec:propose <name>
22
-
23
- 4. 有 .sillyspec/codebase/ 但没有进行中的工作?
24
- 提示运行 /sillyspec:brainstorm "你的想法"
25
-
26
- 5. 什么都没有?
27
- → 提示运行 /sillyspec:init(新项目)或 /sillyspec:scan(棕地项目)
11
+ 1. 有进行中的变更?
12
+ 1a. 无文件 → 提示完善 proposal
13
+ 1b. 无 design.md → 提示补充 design
14
+ 1c. tasks.md 执行 /sillyspec:propose
15
+ 1d. tasks.md 有未完成项 + 有计划 执行 /sillyspec:execute
16
+ 1e. tasks.md 全完成 + 未验证 → 执行 /sillyspec:verify
17
+ 1f. 已验证通过 → 执行 /sillyspec:archive
18
+
19
+ 2. 有设计文档但无对应变更?
20
+ → /sillyspec:propose <name>
21
+
22
+ 3. .sillyspec/codebase/ 但无进行中工作?
23
+ → /sillyspec:brainstorm "你的想法"
24
+
25
+ 4. 什么都没有?
26
+ → /sillyspec:init(新项目)或 /sillyspec:scan(棕地项目)
28
27
  ```
29
28
 
30
- ## 输出
31
-
32
- 先报告检测结果,再执行:
33
-
34
- > 🤖 SillySpec 自动检测
35
- >
36
- > 当前状态:[描述]
37
- > 下一步:[执行的命令]
38
- >
39
- > [开始执行...]
29
+ 先报告检测结果,再执行。
@@ -1,90 +1,71 @@
1
- 你现在是 SillySpec 的执行器。
1
+ ## 交互规范
2
+ **当需要用户从多个选项中做出选择时,必须使用 Claude Code 内置的 AskUserQuestion 工具,将选项以参数传入。**
2
3
 
3
- ## 🛑 流程控制(必须先执行)
4
+ ## 核心约束(必须遵守)
5
+ - ❌ 跳过状态检查,自行推断阶段
6
+ - ❌ 跳步执行(不允许跳过 plan 直接 execute)
7
+ - ❌ 先写代码后补测试
8
+ - ❌ "先写草稿回头再测"
9
+ - ❌ 跳过测试因为"太简单"
10
+ - ❌ 测试意外通过时不重写
11
+ - ❌ 编造不存在的方法/注解/路径/类/字段
12
+ - ❌ 自行补全缺失的接口/方法(应报告给用户)
13
+ - ❌ 意外修改了计划外的文件却不报告
4
14
 
5
- **在开始任何工作之前,先调用 SillySpec CLI 检查当前状态:**
15
+ ## 状态检查(必须先执行)
6
16
 
7
17
  ```bash
8
18
  sillyspec status --json
9
19
  ```
10
20
 
11
- **根据 CLI 返回的 phase 决定是否允许执行:**
12
- - `phase: "execute"` 可以继续
13
- - 其他 phase → ❌ 不允许跳步,提示用户运行 `sillyspec next` 获取正确步骤
14
-
15
- **不要跳过状态检查。不要自己推断阶段。以 CLI 为准。**
21
+ - `phase: "execute"` ✅ 继续
22
+ - 其他 phase → 提示用户 `sillyspec next`
16
23
 
17
24
  ## 执行范围
18
25
  $ARGUMENTS
19
26
 
27
+ ---
28
+
20
29
  ## 加载上下文
21
30
 
22
31
  ```bash
23
- # 检查工作区模式
24
32
  cat .sillyspec/config.yaml 2>/dev/null
25
33
  ```
26
34
 
27
- **如果是工作区模式:**
28
- 1. 根据计划中的 Task 标注(如 `[frontend]`),确定每个任务应在哪个子项目目录执行
29
- 2. 额外加载共享规范:
30
- ```bash
31
- cat .sillyspec/shared/*.md 2>/dev/null
32
- cat .sillyspec/workspace/CODEBASE-OVERVIEW.md 2>/dev/null
33
- ```
34
- 3. **执行任务前先 cd 到对应子项目目录**
35
- 4. 文件路径需相对于子项目目录解析
36
-
37
- **如果不是工作区模式:** 原有流程不变。
35
+ **工作区模式:** 根据计划 Task 标注确定子项目,额外加载共享规范 + CODEBASE-OVERVIEW.md,执行前 cd 到对应子项目目录。
38
36
 
37
+ **单项目模式:**
39
38
  ```bash
40
- # 计划文件
41
- PLAN=$(ls -t .sillyspec/plans/*.md | head -1)
42
- cat "$PLAN"
43
-
44
- # 当前变更的规范
39
+ PLAN=$(ls -t .sillyspec/plans/*.md | head -1); cat "$PLAN"
45
40
  LATEST=$(ls -d .sillyspec/changes/*/ | grep -v archive | tail -1)
46
- cat "$LATEST/tasks.md"
47
- cat "$LATEST/design.md"
48
-
49
- # 代码库约定
41
+ cat "$LATEST"/{tasks,design}.md 2>/dev/null
50
42
  cat .sillyspec/codebase/CONVENTIONS.md 2>/dev/null
51
43
  ```
52
44
 
53
- ### 1.5 锚定确认(必须完成)
54
-
55
- 读取相关规范文件。对于存在的文件,确认理解;对于不存在的文件,标注跳过:
45
+ ### 锚定确认(必须完成)
56
46
 
47
+ 确认实际存在的文件:
57
48
  ```
58
49
  已读取并理解:
59
- - [x] plan — 实现计划和执行顺序(如果存在)
50
+ - [x] plan — 实现计划和执行顺序
60
51
  - [x] tasks.md — 实现清单
61
- - [x] design.md — 技术方案和文件变更(如果存在)
62
-
52
+ - [x] design.md — 技术方案和文件变更
63
53
  所有可用上下文已加载,开始执行。
64
54
  ```
65
55
 
66
- **文件不存在不是错误**。只确认实际存在的文件。不准跳过此步骤。
67
-
68
56
  如果 `$ARGUMENTS` 指定范围(如 `wave-1`、`task-3`),只执行对应部分。
69
57
 
58
+ ---
59
+
70
60
  ## 执行策略
71
61
 
72
62
  ### 有 subagent 能力时(推荐)
73
-
74
- **检查:** 尝试使用子代理(如 `/agent` 或 Claude Code 的 subagent)。
75
-
76
63
  1. 按计划的 Wave 分组
77
- 2. 每个 Task 启动独立子代理执行
78
- 3. **子代理不继承主 session 历史**
79
- 4. 提供给子代理的上下文:
80
- - 任务描述(从计划中精确复制)
81
- - TDD 纪律(见下方)
82
- - 精确文件路径和代码示例
83
- - 代码库约定(从 CONVENTIONS.md 中提取相关部分)
64
+ 2. 每个 Task 启动独立子代理(不继承主 session 历史)
65
+ 3. 子代理上下文:任务描述 + TDD 纪律 + 精确文件路径 + 相关约定
84
66
 
85
67
  ### 无 subagent 时
86
-
87
- 在当前会话中逐任务串行执行。每完成一个任务,简要总结后继续下一个。
68
+ 当前会话逐任务串行执行。
88
69
 
89
70
  ## 每个任务的 TDD 铁律
90
71
 
@@ -92,159 +73,59 @@ cat .sillyspec/codebase/CONVENTIONS.md 2>/dev/null
92
73
  🔴 RED → 先写测试,运行确认失败
93
74
  🟢 GREEN → 写最少代码让测试通过
94
75
  🔵 REFACTOR → 清理,保持测试通过
95
- ✅ COMMIT → git 提交(见下方规则)
76
+ ✅ COMMIT → git 提交
96
77
  ```
97
78
 
98
- **Git 提交规则:**
99
- - 检查当前目录是否为 Git 仓库:`git rev-parse --is-inside-work-tree`
100
- - 如果是 Git 仓库 → `git add -A && git commit`
101
- - 如果不是 Git 仓库(工作区模式下子项目在父目录外):
102
- 1. 尝试 `cd` 到正在修改的子项目目录
103
- 2. 检查该子项目是否为 Git 仓库
104
- 3. 如果是 → 在子项目目录执行 `git add -A && git commit`
105
- 4. 如果不是 → 跳过提交,但记录在任务完成报告中
106
- - **不要跳过可以提交的 Git 仓库。**
107
-
108
- **绝对禁止:**
109
- - ❌ 先写代码后补测试
110
- - ❌ "先写草稿回头再测"
111
- - ❌ 跳过测试因为"太简单"
112
- - ❌ 测试意外通过时不重写
113
-
114
- **违反规则 → 删掉代码,从测试重新开始。** 不能保留为"参考"。
79
+ **Git 提交:** 检查 Git 仓库 → `git add -A && git commit`。工作区模式下在子项目目录提交。跳过不可提交的情况但记录在报告中。
115
80
 
116
- **例外(需人工确认):** 抛弃型原型、生成代码、配置文件。
81
+ **违反 TDD → 删掉代码从测试重新开始。例外(需人工确认):** 抛弃型原型、生成代码、配置文件。
117
82
 
118
- ## 🚨 写代码前必须读取现有源码(防幻觉)
119
-
120
- **在编写任何 Controller、Service、Model、SQL 之前,必须执行:**
121
-
122
- ### 1. 读取相关约定
83
+ ## 写代码前必须读取现有源码(防幻觉)
123
84
 
124
85
  ```bash
125
- # 读取编码约定
126
- cat .sillyspec/codebase/CONVENTIONS.md
127
- # 读取架构(特别是 API 约定和数据模型摘要)
128
- cat .sillyspec/codebase/ARCHITECTURE.md
86
+ cat .sillyspec/codebase/{CONVENTIONS,ARCHITECTURE}.md 2>/dev/null
129
87
  ```
130
88
 
131
- ### 2. 读取同模块已有代码(关键!)
132
-
89
+ 然后读取同模块已有代码(根据语言过滤):
133
90
  ```bash
134
- # 如果要写 Controller/Handler/Router → 先读同模块已有的
91
+ # Controller/Handler/Router
135
92
  find . \( -path "*/controller*" -o -path "*/handler*" -o -path "*/router*" -o -path "*/api*" \) \
136
- -type f \( -name "*.java" -o -name "*.ts" -o -name "*.py" -o -name "*.go" \
137
- -o -name "*.rs" -o -name "*.kt" -o -name "*.rb" -o -name "*.php" \) \
138
- -not -path "*/node_modules/*" -not -path "*/dist/*" -not -path "*/.git/*" \
139
- -not -path "*/vendor/*" -not -path "*/build/*" | head -15
140
-
141
- # 如果要调用 Service/Manager/UseCase → 先读目标接口
93
+ -type f \( -name "*.java" -o -name "*.ts" -o -name "*.py" -o -name "*.go" \) \
94
+ -not -path "*/{node_modules,dist,.git,vendor,build}/*" | head -15
95
+ # Service/Manager/Repository
142
96
  find . \( -name "*Service*" -o -name "*Manager*" -o -name "*UseCase*" -o -name "*Repository*" \) \
143
- -type f \( -name "*.java" -o -name "*.ts" -o -name "*.py" -o -name "*.go" \
144
- -o -name "*.rs" -o -name "*.kt" -o -name "*.rb" -o -name "*.php" \) \
145
- -not -path "*/node_modules/*" -not -path "*/dist/*" -not -path "*/.git/*" \
146
- -not -path "*/vendor/*" -not -path "*/build/*" | head -15
147
- ```
148
-
149
- 根据项目语言只读取匹配的文件,忽略不相关的语言文件。
150
-
151
- ### 3. 铁律(违反 = 幻觉风险)
152
-
153
- - ❌ **禁止编造不存在的方法调用** — 调用任何方法前必须确认该方法签名存在
154
- - ❌ **禁止编造不存在的注解/装饰器** — 权限注解、校验注解必须与项目已有风格一致
155
- - ❌ **禁止编造路径前缀/URL** — 必须确认项目的路由前缀是全局配置还是手动写
156
- - ❌ **禁止编造不存在的类/字段/常量** — 必须来自已有源码定义
157
- - ❌ **禁止自行补全缺失的接口/方法** — 发现缺失 → 告诉用户,不要自己实现
158
- - ✅ 需要新增方法/接口 → 先在 plan 中声明,用户确认后再实现
159
-
160
- ### 4. 如果找不到相关代码
161
-
162
- 分两种情况:
163
-
164
- **棕地项目(有已有代码但找不到同模块的):**
165
- ```
166
- ⚠️ 未找到相关的 [Controller/Service/Model] 源码。
167
- 请提供:
168
- 1. 同模块已有的 Controller 路径和风格参考
169
- 2. 目标 Service 的接口定义
97
+ -type f \( -name "*.java" -o -name "*.ts" -o -name "*.py" -o -name "*.go" \) \
98
+ -not -path "*/{node_modules,dist,.git,vendor,build}/*" | head -15
170
99
  ```
171
100
 
172
- **绿地项目 / 全新模块(完全没有参考代码):**
173
- - CONVENTIONS.md 获取编码风格(命名、目录结构、设计模式)
174
- - ARCHITECTURE.md 获取技术选型和架构约定
175
- - 读 brainstorm 设计方案(`.sillyspec/specs/` 下的设计文档)
176
- - 按 plan 中声明的文件路径和规范执行
177
- - 首次编写某类文件时,先让用户确认风格是否正确
178
-
179
- **核心原则:没有源码参考时靠约定和设计方案驱动,而不是靠猜。**
101
+ **找不到相关代码时:**
102
+ - 棕地项目 报告缺失,请用户提供参考路径
103
+ - 绿地项目 → 靠 CONVENTIONS.md + ARCHITECTURE.md + brainstorm 设计方案驱动
180
104
 
181
105
  ## 两阶段审查
182
106
 
183
107
  每个任务完成后:
184
-
185
- **阶段 A 规范合规:**
186
- - tasks.md 中对应 checkbox 完成了?
187
- - design.md 技术方案一致?
188
- - 测试有意义?覆盖边界?
189
-
190
- **阶段 B — 代码质量:**
191
- - DRY — 重复代码?
192
- - YAGNI — 不需要的抽象?
193
- - 死代码?
194
- - 错误处理充分?
195
- - 符合 CONVENTIONS.md?
108
+ - **A 规范合规:** tasks checkbox 完成?design 方案一致?测试有意义?
109
+ - **B 代码质量:** DRY、YAGNI、死代码、错误处理、CONVENTIONS.md 合规?
196
110
 
197
111
  **3 轮审查不通过 → 提交人工处理。**
198
112
 
199
113
  ## 偏差处理
200
114
 
201
- 遇到问题时的规则:
202
- 1. **停** — 不要自作主张
203
- 2. **报告** — 列出问题和建议方案
204
- 3. **等** — 人工确认后再继续
205
- 4. 代码缺关键部分 → 报告缺失,不自行补充
206
- 5. Service 方法不存在 → 报告缺失,不要自己实现或调用不确认的方法
207
- 6. 缺少权限注解/路径前缀 → 先读已有 Controller 确认风格,再问用户
115
+ 遇到问题:**停 → 报告 → 等人工确认。** 代码缺失、方法不存在、权限注解未知 → 先读已有代码确认风格,再问用户。
208
116
 
209
- ## 模型建议
117
+ ## 自检门控
210
118
 
211
- | 任务类型 | 推荐模型 |
212
- |---|---|
213
- | 复杂架构 | 最强模型 |
214
- | 常规实现 | 中等模型 |
215
- | 简单修改 | 快速模型 |
216
-
217
- > 有详细计划时,大部分实现是机械性的,便宜模型够用。
218
-
219
- ### 5. 自检门控(Hard Gate)
220
-
221
- - [ ] 完成的 task 是否与 plan 一致?
222
- - [ ] 是否意外修改了 plan 外的文件?(对比 plan 的文件变更清单)
223
- - [ ] 每个 task 是否有 git commit?
224
- - [ ] 测试是否全部通过?
225
-
226
- **发现意外修改 → 报告给用户,不要自行决定。**
119
+ - [ ] 完成任务与 plan 一致?
120
+ - [ ] 未意外修改计划外文件?
121
+ - [ ] 每个任务有 git commit?
122
+ - [ ] 测试全部通过?
227
123
 
228
124
  ## 完成后
229
125
 
230
- **用 CLI 验证并获取下一步:**
231
-
232
126
  ```bash
233
127
  sillyspec status --json
234
- ```
235
-
236
- 展示给用户:
237
- > 执行完成。共 N 个 Wave,M 个 Task。
238
- > 下一步:
239
-
240
- ```bash
241
128
  sillyspec next
242
129
  ```
243
130
 
244
- CLI 返回的命令推荐给用户。**不要自己编建议。**
245
-
246
- **同时更新 `.sillyspec/STATE.md`:**
247
-
248
- - 当前阶段改为 `execute ✅`(全部完成)或 `execute 🔄 (X/M)`(部分完成)
249
- - 如果是子阶段,更新阶段进度
250
- - 历史记录追加时间 + 执行结果
131
+ 更新 `.sillyspec/STATE.md`:阶段改为 `execute ✅` 或 `execute 🔄 (X/M)`,历史记录追加执行结果。
@@ -1,91 +1,38 @@
1
1
  ## 交互规范
2
-
3
2
  **当需要用户从多个选项中做出选择时,必须使用 Claude Code 内置的 AskUserQuestion 工具,将选项以参数传入。**
4
3
 
5
- 不要用编号列表让用户手动输入数字。
6
- 如果需要自由输入,在 AskUserQuestion 的选项中加入"Other(自定义输入)"。
7
-
8
- ---
9
-
10
- 你现在是 SillySpec 的自由思考伙伴。
4
+ ## 核心约束(必须遵守)
5
+ - 写实现代码
6
+ - ❌ 安装依赖
7
+ - ❌ 修改文件(除非用户明确要求保存发现)
8
+ - ❌ 强行下结论或强行结构化
11
9
 
12
10
  ## 话题
13
11
  $ARGUMENTS
14
12
 
15
- ## 这是什么模式
13
+ ---
16
14
 
17
- **探索模式用于思考,不用于实现。** 你可以读文件、搜代码、调查代码库,但绝对不能写代码或实现功能。如果用户要求实现,提醒他们先退出探索模式。
15
+ ## 这是什么模式
18
16
 
19
- **这不是一个工作流,是一种姿态。** 没有固定步骤、没有必需的输出。你是一个帮助用户思考的伙伴。
17
+ **探索模式用于思考,不用于实现。** 读文件、搜代码、调查代码库,但绝对不能写代码。没有固定步骤、没有必需的输出。
20
18
 
21
19
  ## 姿态
22
20
 
23
- - **好奇,不说教**问自然产生的问题,不按脚本走
24
- - **开放式线程** — 展示多个有趣方向,让用户选择
21
+ - **好奇不说教**问自然产生的问题
22
+ - **开放式线程** — 展示多个有趣方向
25
23
  - **可视化** — 大量使用 ASCII 图表
26
- - **自适应** — 追随有趣的线索,随时转向
27
- - **耐心** — 不急着下结论
24
+ - **自适应** — 追随有趣线索随时转向
28
25
  - **务实** — 探索实际代码库,不只纸上谈兵
29
26
 
30
- ## 你可以做的事
31
-
32
- **探索问题空间:** 问澄清问题、挑战假设、重新定义问题
33
-
34
- **调查代码库:** 映射相关架构、找集成点、识别已有模式、暴露隐藏复杂性
35
-
36
- **比较选项:** 头脑风暴多种方案、建对比表、画权衡分析
37
-
38
- **画图:**
39
- ```
40
- ┌─────────────────────────────────┐
41
- │ 用 ASCII 图自由表达 │
42
- ├─────────────────────────────────┤
43
- │ │
44
- │ ┌────────┐ ┌────────┐ │
45
- │ │ State │──────▶│ State │ │
46
- │ │ A │ │ B │ │
47
- │ └────────┘ └────────┘ │
48
- │ │
49
- └─────────────────────────────────┘
50
- ```
51
-
52
- **暴露风险:** 识别可能出错的地方、发现理解空白
53
-
54
- ## OpenSpec 上下文感知
55
-
56
- ### 检查已有上下文
27
+ ## 上下文感知
57
28
 
58
29
  ```bash
59
- # 查看进行中的变更
60
30
  ls .sillyspec/changes/ 2>/dev/null | grep -v archive
61
- # 查看需求
62
- cat .sillyspec/REQUIREMENTS.md 2>/dev/null
63
- cat .sillyspec/ROADMAP.md 2>/dev/null
31
+ cat .sillyspec/{REQUIREMENTS,ROADMAP}.md 2>/dev/null
64
32
  ```
65
33
 
66
- ### 当有进行中的变更时
67
-
68
- 读取变更的 proposal、design、tasks,自然地引用它们。
69
-
70
- 当发现重要的决策时,**提议保存**(不自动保存):
71
-
72
- 请选择:
73
- 1. 写入 design.md
74
- 2. 加入 specs
75
- 3. 暂不保存
34
+ 有进行中变更时读取其 proposal/design/tasks,自然引用。发现重要决策时可提议保存(不自动保存)。
76
35
 
77
36
  ## 没有必需的结束
78
37
 
79
- 探索可以:
80
- 1. 创建变更提案 — 流入 proposal
81
- 2. 产出文档更新
82
- 3. 继续探索
83
- 4. 结束探索
84
-
85
- ## 禁止事项
86
-
87
- - ❌ 写实现代码
88
- - ❌ 安装依赖
89
- - ❌ 修改任何文件(除非用户明确要求保存发现)
90
- - ❌ 强行下结论
91
- - ❌ 强行结构化(让模式自然涌现)
38
+ 探索可以创建变更提案、产出文档、继续探索或结束。
@@ -1,48 +1,19 @@
1
- ---
2
-
3
- 你现在是 SillySpec 的模板导出器。
1
+ ## 核心约束(必须遵守)
2
+ - ❌ 修改任何文件(只读)
4
3
 
5
4
  ## 参数解析
5
+ `$ARGUMENTS`:变更名 + 可选 `--to` 输出路径(默认 `~/.sillyspec/templates/<change-name>/`)
6
6
 
7
- 解析 `$ARGUMENTS`:
8
- - 第一个参数为变更名(如 `user-auth`)
9
- - `--to` 指定输出路径(默认 `~/.sillyspec/templates/<change-name>/`)
7
+ ---
10
8
 
11
9
  ## 流程
12
10
 
13
- ### 1. 读取变更文件
14
-
15
- ```bash
16
- CHANGE_DIR=".sillyspec/changes/$ARGUMENTS"
17
- cat "$CHANGE_DIR/proposal.md"
18
- cat "$CHANGE_DIR/design.md"
19
- cat "$CHANGE_DIR/specs/requirements.md" 2>/dev/null
20
- ```
21
-
22
- 如果变更不存在 → 告诉用户"变更不存在,请确认变更名"
23
-
24
- ### 2. 清理为通用模板
25
-
26
- 读取文件后,进行清理:
27
- - 移除项目特定的信息(具体类名、路径、端口号)
28
- - 保留通用的设计方案、架构决策、需求场景
29
- - 添加一个 `notes.md`,记录使用建议和适配要点
30
-
31
- ### 3. 导出到模板目录
32
-
33
- ```bash
34
- mkdir -p ~/.sillyspec/templates/<change-name>
35
- cp 清理后的文件到该目录
36
- ```
37
-
38
- ### 4. 确认
39
-
40
- 展示导出内容摘要,告知模板路径。
11
+ 1. **读取变更文件:** `cat .sillyspec/changes/$ARGUMENTS/{proposal,design}.md specs/requirements.md 2>/dev/null`。不存在则报错。
12
+ 2. **清理为通用模板:** 移除项目特定信息,保留通用设计方案,添加 `notes.md` 使用建议。
13
+ 3. **导出:** `mkdir -p ~/.sillyspec/templates/<change-name>` 并复制文件。
14
+ 4. **确认:** 展示摘要和模板路径。
41
15
 
42
16
  ### 最后说:
43
17
 
44
- > ✅ 方案已导出到 `~/.sillyspec/templates/<change-name>/`
45
- >
46
- > 其他项目使用:`/sillyspec:brainstorm "你的想法"` → AI 会自动发现并建议复用此模板
47
- >
48
- > 手动查看:`ls ~/.sillyspec/templates/<change-name>/`
18
+ > ✅ 已导出到 `~/.sillyspec/templates/<change-name>/`
19
+ > 其他项目使用:`/sillyspec:brainstorm` → AI 自动发现并建议复用