sillyspec 3.8.6 → 3.8.7

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,6 +1,6 @@
1
1
  {
2
2
  "name": "sillyspec",
3
- "version": "3.8.6",
3
+ "version": "3.8.7",
4
4
  "description": "SillySpec CLI \u2014 \u6d41\u7a0b\u72b6\u6001\u673a\uff0c\u8ba9 AI \u4e25\u683c\u6309\u6b65\u9aa4\u6765",
5
5
  "type": "module",
6
6
  "bin": {
@@ -109,7 +109,6 @@ git log --oneline --no-merges --since="<创建时间>" -- "*.ts" "*.js" "*.vue"
109
109
 
110
110
  - **tasks.md:** 确保所有 checkbox 都已勾选 `[x]`
111
111
  - **ROADMAP.md**(如存在):标记对应 Phase 已完成
112
- - **STATE.md:** 清除当前变更信息,历史记录追加归档完成(含精确到秒的时间戳)
113
112
  - **Git 暂存:** `git add .sillyspec/`
114
113
 
115
114
  **工作区模式下:** 如果变更属于某个子项目,cd 到子项目目录执行 git add。工作区根目录无 git 则跳过。
@@ -12,32 +12,6 @@
12
12
  - ❌ 一次性抛出多个问题(必须逐个等待回答)
13
13
  - ❌ 用户确认前自行推进到 plan 或任何后续阶段
14
14
 
15
- ## 状态检查(必须先执行)
16
-
17
- ```bash
18
- cat .sillyspec/STATE.md 2>/dev/null
19
- ```
20
-
21
- - phase 为 `brainstorm` 或无 STATE.md → ✅ 继续
22
- - 其他 phase → 提示用户当前阶段,建议先完成
23
-
24
- ## 进度恢复检查(必须先执行)
25
-
26
- 1. 读取 `.sillyspec/.runtime/progress.json`(使用 read 工具)
27
- 2. 如果文件存在且 `currentStage` 为 `brainstorm`:
28
- a. 按 resume-dialog.md 模板向用户展示恢复信息(见下方)
29
- b. 用户确认后,将 `resumeCount` +1,更新 `lastActiveAt`,写入 progress.json
30
- c. 将已完成步骤的结论作为「已确认的决策,无需重新讨论」注入上下文
31
- d. 从 `inProgressStep.id` 继续,**禁止回头重新讨论已完成步骤**
32
- 3. 如果文件不存在或 `currentStage` 不是 `brainstorm`:正常启动
33
-
34
- ### 恢复对话规则
35
- - 首次恢复(resumeCount < 3):友好欢迎,展示进度条和关键结论
36
- - 频繁中断(resumeCount >= 3):建议重新开始,但尊重用户选择
37
- - 长时间中断(距 lastActiveAt > 24h):先回顾上次聊了什么,再问是否继续
38
- - 恢复时说「欢迎回来」而非「检测到中断」
39
- - 参考模板:`.sillyspec/.runtime/templates/resume-dialog.md`
40
-
41
15
  ## 用户想法
42
16
  $ARGUMENTS
43
17
 
@@ -45,19 +19,17 @@ $ARGUMENTS
45
19
 
46
20
  ## Checklist(必须按顺序完成,不允许跳步或并行)
47
21
 
48
- - [ ] **Step 1** — 加载项目上下文 → 保存进度
49
- - [ ] **Step 2** — 协作与复用检查(同名变更 + 全局模板)→ 保存进度
50
- - [ ] **Step 3** — 原型/设计图分析(如有)→ 保存进度
51
- - [ ] **Step 4** — 评估需求范围,复杂需求拆分子项目/阶段,生成 MASTER.md → 保存进度
52
- - [ ] **Step 5** — 对话式探索(一次一个问题,2-3 轮内完成)→ 保存进度
53
- - [ ] **Step 6** — 提出 2-3 个方案并推荐 → 保存进度
54
- - [ ] **Step 7** — 分段展示设计,逐段确认 → 保存进度
55
- - [ ] **Step 8** — 写设计文档并保存 → 保存进度
56
- - [ ] **Step 9** — AI 自审(对照约束检查)→ 保存进度
57
- - [ ] **Step 10** — 用户确认设计方案 → 保存进度
58
- - [ ] **Step 11** — 输出 design.md → 保存进度
59
- - [ ] **Step 12** — 更新 STATE.md → 保存进度
60
- - [ ] **Step 13** — 保存最终进度
22
+ - [ ] **Step 1** — 加载项目上下文
23
+ - [ ] **Step 2** — 协作与复用检查(同名变更 + 全局模板)
24
+ - [ ] **Step 3** — 原型/设计图分析(如有)
25
+ - [ ] **Step 4** — 评估需求范围,复杂需求拆分子项目/阶段,生成 MASTER.md
26
+ - [ ] **Step 5** — 对话式探索(一次一个问题,2-3 轮内完成)
27
+ - [ ] **Step 6** — 提出 2-3 个方案并推荐
28
+ - [ ] **Step 7** — 分段展示设计,逐段确认
29
+ - [ ] **Step 8** — 写设计文档并保存
30
+ - [ ] **Step 9** — AI 自审(对照约束检查)
31
+ - [ ] **Step 10** — 用户确认设计方案
32
+ - [ ] **Step 11** — 输出 design.md
61
33
 
62
34
  **终态:** brainstorm 完成后唯一出口是 `/sillyspec:plan`。不允许直接进入 execute 或任何代码操作。
63
35
 
@@ -191,50 +163,8 @@ git add .sillyspec/changes/<变更名>/MASTER.md
191
163
 
192
164
  用户确认后,确认 design.md 已包含完整内容(动机、需求、方案、文件变更、代码风格参照)。如 Step 8 已保存则无需重复。
193
165
 
194
- ### Step 12: 更新 STATE.md
195
-
196
- 自动更新 `.sillyspec/STATE.md`(不存在则创建):当前变更、阶段、下一步 `/sillyspec:plan`、关键决策、历史记录。不需要 Git 提交。
197
-
198
- ### Step 13: 保存最终进度
199
-
200
- 1. 更新 `.sillyspec/.runtime/progress.json`:
201
- - `stages.brainstorm.status` 设为 `completed`
202
- - 写入 `stageSummary`(2-3 句总结核心设计决策)
203
- - `currentStage` 更新为 `plan`
204
- - `checkpoint` 设为「brainstorm 完成,等待 plan」
205
- 2. Append `user-inputs.md` 最终记录
206
- 3. 告知用户:「brainstorm 完成 ✅ 进度已保存,下一步 /sillyspec:plan」
207
-
208
166
  ## 关键原则
209
167
  - YAGNI — 无情砍掉不需要的功能
210
168
  - 总是探索替代方案
211
169
  - 设计可以很短,但必须存在
212
170
  - "简单"的项目更需要设计——未检视的假设造成最大浪费
213
-
214
- ## 进度保存规则(⚠️ HARD-GATE)
215
-
216
- **每步完成后必须执行,不允许跳过:**
217
-
218
- 1. 使用 write 工具更新 `.sillyspec/.runtime/progress.json`
219
- 2. 将当前步骤 ID 加入 `completedSteps`
220
- 3. 在 `summaries` 中写入本步结构化摘要:
221
- - `conclusion`(1-2句核心结论,必填)
222
- - `decisions`(用户确认的决策列表)
223
- - `rejectedAlternatives`(被否方案 + 简要理由)
224
- - `userMessages`(用户影响决策的原话)
225
- - `openQuestions`(遗留问题)
226
- - `keyEntities`(涉及的关键实体/概念)
227
- 4. 更新 `checkpoint`(一句话描述)
228
- 5. 刷新 `lastActiveAt`(ISO 格式)
229
- 6. `_version` +1
230
- 7. Append `.sillyspec/.runtime/user-inputs.md`(格式见 progress-format.md)
231
- 8. 对用户说:「✅ 第X步完成,进度已保存。」
232
-
233
- **下步启动检查:** 进入下一步前,先确认 progress.json 的 currentStep 已更新。如果发现未保存,立即补保存。
234
-
235
- ## 多任务并行提醒
236
-
237
- 如果用户在 brainstorm 过程中临时要求执行 quick 任务:
238
- - quick 任务不写入 progress.json,不影响当前 brainstorm 状态
239
- - quick 完成后,brainstorm 从断点继续
240
- - 告知用户:「quick 任务会独立执行,brainstorm 进度不受影响」
@@ -54,10 +54,8 @@ cat "$LATEST/tasks.md" 2>/dev/null
54
54
  ```
55
55
  筛选时间戳 > LAST_COMMIT_TIME 的已勾选 task。
56
56
 
57
- **来源 C — 阶段产出(scan/brainstorm/propose/plan/archive 等):**
58
57
  检查 `.sillyspec/` 下新增或修改的文件,根据路径识别来源阶段:
59
58
  - `docs/*/scan/*.md` → scan 产出
60
- - `changes/<name>/proposal.md` → propose 产出
61
59
  - `changes/<name>/design.md` 或 `tasks.md` → plan 产出
62
60
  - `changes/archive/` → archive 产出
63
61
  - `specs/*.md` → brainstorm 产出
@@ -2,7 +2,6 @@
2
2
  **当需要用户从多个选项中做出选择时,必须使用 Claude Code 内置的 AskUserQuestion 工具,将选项以参数传入。**
3
3
 
4
4
  ## 核心约束(必须遵守)
5
- - ❌ 跳过状态检查,自行推断阶段
6
5
  - ❌ 跳步执行(不允许跳过 plan 直接 execute)
7
6
  - ❌ 先写代码后补测试
8
7
  - ❌ 编造不存在的方法/注解/路径/类/字段
@@ -15,14 +14,6 @@
15
14
  cat .sillyspec/STATE.md 2>/dev/null
16
15
  ```
17
16
 
18
- 有 STATE.md 且 phase 为 execute → 继续。无 STATE.md 或 phase 不对 → 检查是否有未完成的 tasks.md:
19
-
20
- ```bash
21
- ls .sillyspec/changes/*/tasks.md 2>/dev/null | xargs grep -l '\- \[ \]' 2>/dev/null
22
- ```
23
-
24
- 有未完成的 tasks.md → 继续。没有 → 提示 `/sillyspec:continue`。
25
-
26
17
  ## 执行范围
27
18
  $ARGUMENTS
28
19
 
@@ -311,4 +302,3 @@ grep -c '^\### \[待确认\]' .sillyspec/knowledge/uncategorized.md 2>/dev/null
311
302
  2. **归档** — 跳过 verify,执行 `/sillyspec:archive`
312
303
  3. **继续开发** — 不结束当前阶段
313
304
 
314
- 更新 `.sillyspec/STATE.md`:阶段改为 `execute ✅` 或 `execute 🔄 (X/M)`,历史记录追加执行结果(含精确到秒的时间戳)。
@@ -50,7 +50,6 @@ cat .sillyspec/knowledge/INDEX.md 2>/dev/null
50
50
 
51
51
  1. **🧠 头脑风暴** — `/sillyspec:brainstorm` 深度探索需求和方案
52
52
  2. **⚡ 快速执行** — `/sillyspec:quick` 直接动手做
53
- 3. **📋 创建规范** — `/sillyspec:propose` 生成结构化规范
54
53
  4. **🔍 继续探索** — 还没聊透,继续
55
54
 
56
55
  不需要每次都提示,只在对话**明显转向执行意图**时触发。纯讨论、提问、查资料时不要打断。
package/templates/plan.md CHANGED
@@ -6,16 +6,7 @@
6
6
  - ❌ 每个步骤缺验证命令和预期输出
7
7
  - ❌ 编造表名、字段名(必须来自 ARCHITECTURE.md 或 design.md)
8
8
 
9
- ## 状态检查(必须先执行)
10
9
 
11
- ```bash
12
- cat .sillyspec/STATE.md 2>/dev/null
13
- ```
14
-
15
- - phase 为 `plan` 或 STATE.md 中下一步为 `/sillyspec:plan` → ✅ 继续
16
- - 其他 phase → 提示用户当前阶段
17
-
18
- ---
19
10
 
20
11
  ## 流程
21
12
 
@@ -150,8 +141,6 @@ cat .claude/mcp.json .cursor/mcp.json 2>/dev/null | grep -i "browser\|chrome\|de
150
141
 
151
142
  ### 7. 完成
152
143
 
153
- 更新 `.sillyspec/STATE.md`:阶段改为 `plan ✅`,下一步 `/sillyspec:execute`。
154
-
155
144
  ```bash
156
145
  cat .sillyspec/STATE.md 2>/dev/null
157
146
  ```
package/templates/scan.md CHANGED
@@ -8,16 +8,7 @@
8
8
  - `--deep` → 直接深度扫描
9
9
  - 其他 → 快速扫描该区域
10
10
 
11
- ## 流程控制(必须先执行)
12
11
 
13
- ```bash
14
- cat .sillyspec/STATE.md 2>/dev/null
15
- ```
16
-
17
- 有 STATE.md 且 phase 为 `scan` 或未记录 → 继续。
18
- 其他 phase → STATE.md 中记录的下一步命令为准。
19
-
20
- ---
21
12
 
22
13
  ## 交互式引导(参数为空时)
23
14
 
@@ -136,18 +127,11 @@ if [ ! -f ".sillyspec/knowledge/uncategorized.md" ]; then
136
127
  EOF
137
128
  fi
138
129
 
139
- # 更新状态
130
+ # 记录状态
140
131
  cat > .sillyspec/STATE.md << 'EOF'
141
132
  # 项目状态
142
133
 
143
- ## 当前阶段
144
- - 阶段:scan ✅
145
- - 下一步:/sillyspec:brainstorm
146
-
147
- ## 关键决策
148
- - (扫描中发现的技术决策)
149
-
150
- ## 历史记录
134
+ ## 最近活动
151
135
  - $(date '+%Y-%m-%d %H:%M:%S') scan 完成
152
136
  EOF
153
137
 
@@ -5,24 +5,9 @@
5
5
 
6
6
  ## 核心约束(必须遵守)
7
7
  - ❌ 修改任何代码(只做检查和报告)
8
- - ❌ 跳过状态检查
9
8
  - ❌ 自行推进到下一阶段
10
9
 
11
- ## 状态检查(必须先执行)
12
10
 
13
- ```bash
14
- cat .sillyspec/STATE.md 2>/dev/null
15
- ```
16
-
17
- 检查当前阶段。如果没有 STATE.md,检查是否有未归档变更:
18
-
19
- ```bash
20
- ls .sillyspec/changes/ 2>/dev/null | grep -v archive
21
- ```
22
-
23
- 无 STATE.md 且无未归档变更 → 提示用户先完成 execute 或用 `/sillyspec:status` 查看状态。
24
-
25
- ---
26
11
 
27
12
  ## 工作区模式处理
28
13
 
@@ -118,8 +103,7 @@ while ROUND <= MAX_ROUNDS:
118
103
  - "只修复这个测试失败,不要改其他代码"
119
104
  c. 修复后重跑该测试确认是否通过
120
105
  d. 通过 → fixAttempts 保持不变;仍失败 → fixAttempts + 1
121
- 5. 写入 .sillyspec/local.yaml 更新 fixAttempts
122
- 6. ROUND++
106
+ 5. 写入 .sillyspec/local.yaml 6. ROUND++
123
107
  7. 如果本轮无任何修复(所有失败都已 MAX_REACHED)→ 跳出循环
124
108
  ```
125
109
 
@@ -250,4 +234,3 @@ fi
250
234
 
251
235
  ### 7. 完成
252
236
 
253
- 更新 `.sillyspec/STATE.md`(如存在):阶段改为 `verify ✅` 或 `verify ⚠️`,记录精确到秒的时间戳。