sillyspec 3.7.13 → 3.7.15

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 (91) hide show
  1. package/.claude/skills/sillyspec-archive/SKILL.md +77 -0
  2. package/.claude/skills/sillyspec-brainstorm/SKILL.md +591 -0
  3. package/.claude/skills/sillyspec-continue/SKILL.md +44 -0
  4. package/.claude/skills/sillyspec-execute/SKILL.md +233 -0
  5. package/.claude/skills/sillyspec-explore/SKILL.md +96 -0
  6. package/.claude/skills/sillyspec-export/SKILL.md +53 -0
  7. package/.claude/skills/sillyspec-init/SKILL.md +171 -0
  8. package/.claude/skills/sillyspec-plan/SKILL.md +263 -0
  9. package/.claude/skills/sillyspec-propose/SKILL.md +248 -0
  10. package/.claude/skills/sillyspec-quick/SKILL.md +102 -0
  11. package/.claude/skills/sillyspec-resume/SKILL.md +111 -0
  12. package/{templates/scan.md → .claude/skills/sillyspec-scan/SKILL.md} +22 -60
  13. package/.claude/skills/sillyspec-state/SKILL.md +54 -0
  14. package/.claude/skills/sillyspec-status/SKILL.md +131 -0
  15. package/.claude/skills/sillyspec-verify/SKILL.md +146 -0
  16. package/.claude/skills/sillyspec-workspace/SKILL.md +149 -0
  17. package/.sillyspec/changes/run-command-design/design.md +1230 -0
  18. package/.sillyspec/docs/sillyspec/scan/.gitkeep +0 -0
  19. package/.sillyspec/knowledge/INDEX.md +8 -0
  20. package/.sillyspec/knowledge/uncategorized.md +3 -0
  21. package/.sillyspec/projects/sillyspec.yaml +3 -0
  22. package/README.md +4 -0
  23. package/logo.jpg +0 -0
  24. package/package.json +7 -1
  25. package/packages/dashboard/dist/assets/index-Bx0cgoK_.js +7446 -0
  26. package/packages/dashboard/dist/assets/index-DbkUSsNO.css +1 -0
  27. package/packages/dashboard/dist/favicon.jpg +0 -0
  28. package/packages/dashboard/dist/index.html +2 -2
  29. package/packages/dashboard/dist/logo.jpg +0 -0
  30. package/packages/dashboard/package-lock.json +220 -0
  31. package/packages/dashboard/package.json +8 -5
  32. package/packages/dashboard/public/favicon.jpg +0 -0
  33. package/packages/dashboard/public/logo.jpg +0 -0
  34. package/packages/dashboard/server/index.js +92 -4
  35. package/packages/dashboard/server/parser.js +252 -28
  36. package/packages/dashboard/src/App.vue +139 -9
  37. package/packages/dashboard/src/components/ActionBar.vue +23 -39
  38. package/packages/dashboard/src/components/CommandPalette.vue +40 -65
  39. package/packages/dashboard/src/components/DetailPanel.vue +68 -53
  40. package/packages/dashboard/src/components/DocPreview.vue +137 -20
  41. package/packages/dashboard/src/components/DocTree.vue +48 -26
  42. package/packages/dashboard/src/components/LogStream.vue +12 -32
  43. package/packages/dashboard/src/components/PipelineStage.vue +8 -8
  44. package/packages/dashboard/src/components/PipelineView.vue +35 -43
  45. package/packages/dashboard/src/components/ProjectList.vue +52 -77
  46. package/packages/dashboard/src/components/ProjectOverview.vue +178 -0
  47. package/packages/dashboard/src/components/StageBadge.vue +13 -13
  48. package/packages/dashboard/src/components/StepCard.vue +11 -11
  49. package/packages/dashboard/src/components/detail/DocsDetail.vue +48 -0
  50. package/packages/dashboard/src/components/detail/GitDetail.vue +61 -0
  51. package/packages/dashboard/src/components/detail/TechDetail.vue +43 -0
  52. package/packages/dashboard/src/main.js +4 -1
  53. package/packages/dashboard/src/style.css +13 -13
  54. package/src/index.js +55 -8
  55. package/src/init.js +66 -196
  56. package/src/migrate.js +1 -18
  57. package/src/progress.js +279 -281
  58. package/src/run.js +320 -0
  59. package/src/setup.js +1 -9
  60. package/src/stages/brainstorm.js +210 -0
  61. package/src/stages/execute.js +190 -0
  62. package/src/stages/index.js +22 -0
  63. package/src/stages/plan.js +118 -0
  64. package/src/stages/propose.js +115 -0
  65. package/src/stages/verify.js +98 -0
  66. package/packages/dashboard/dist/assets/index-5Rrvs0Rl.css +0 -1
  67. package/packages/dashboard/dist/assets/index-ZNToqi9V.js +0 -17
  68. package/templates/archive.md +0 -121
  69. package/templates/brainstorm.md +0 -246
  70. package/templates/commit.md +0 -123
  71. package/templates/continue.md +0 -32
  72. package/templates/execute.md +0 -314
  73. package/templates/explore.md +0 -60
  74. package/templates/export.md +0 -21
  75. package/templates/init.md +0 -61
  76. package/templates/plan.md +0 -157
  77. package/templates/progress-format.md +0 -90
  78. package/templates/propose.md +0 -73
  79. package/templates/quick.md +0 -135
  80. package/templates/resume-dialog.md +0 -55
  81. package/templates/resume.md +0 -53
  82. package/templates/scan-quick.md +0 -49
  83. package/templates/skills/playwright-e2e/SKILL.md +0 -340
  84. package/templates/status.md +0 -72
  85. package/templates/verify.md +0 -253
  86. package/templates/workspace-sync.md +0 -89
  87. package/templates/workspace.md +0 -67
  88. /package/.sillyspec/{docs/sillyspec/brainstorm → changes/brainstorm-archive}/2026-04-05-dashboard-design.md +0 -0
  89. /package/.sillyspec/{docs/sillyspec/brainstorm → changes/brainstorm-archive}/2026-04-05-unified-docs-design.md +0 -0
  90. /package/.sillyspec/{specs/2026-04-05-dashboard-design.md → changes/dashboard/design.md.braindraft} +0 -0
  91. /package/.sillyspec/{specs/2026-04-05-unified-docs-design.md → changes/unified-docs-design/design.md} +0 -0
@@ -1,246 +0,0 @@
1
- ## 交互规范
2
- **当需要用户从多个选项中做出选择时,必须使用 Claude Code 内置的 AskUserQuestion 工具,将选项以参数传入。**
3
-
4
- ## 核心约束(必须遵守)
5
- - ❌ 写实现代码(任何语言)
6
- - ❌ 修改任何源代码文件
7
- - ❌ 安装依赖或执行构建命令
8
- - ❌ 创建数据库迁移脚本
9
- - ❌ 跳过 brainstorm 直接进入 execute/plan
10
- - ❌ 在 checklist 未完成前开始写设计文档
11
- - ❌ 编造不存在的表名、字段名、API 端点
12
- - ❌ 一次性抛出多个问题(必须逐个等待回答)
13
- - ❌ 用户确认前自行推进到 plan 或任何后续阶段
14
-
15
- ## 状态检查(必须先执行)
16
-
17
- ```bash
18
- cat .sillyspec/STATE.md 2>/dev/null
19
- ```
20
-
21
- **确定当前项目名:**
22
- ```bash
23
- ls .sillyspec/projects/*.yaml 2>/dev/null
24
- ```
25
- 从 projects/ 目录确定当前项目名。后续设计文档输出到 `.sillyspec/docs/<project>/brainstorm/`。
26
-
27
- - phase 为 `brainstorm` 或无 STATE.md → ✅ 继续
28
- - 其他 phase → 提示用户当前阶段,建议先完成
29
-
30
- ## 进度恢复检查(必须先执行)
31
-
32
- 1. 读取 `.sillyspec/.runtime/progress.json`(使用 read 工具)
33
- 2. 如果文件存在且 `currentStage` 为 `brainstorm`:
34
- a. 按 resume-dialog.md 模板向用户展示恢复信息(见下方)
35
- b. 用户确认后,将 `resumeCount` +1,更新 `lastActiveAt`,写入 progress.json
36
- c. 将已完成步骤的结论作为「已确认的决策,无需重新讨论」注入上下文
37
- d. 从 `inProgressStep.id` 继续,**禁止回头重新讨论已完成步骤**
38
- 3. 如果文件不存在或 `currentStage` 不是 `brainstorm`:正常启动
39
-
40
- ### 恢复对话规则
41
- - 首次恢复(resumeCount < 3):友好欢迎,展示进度条和关键结论
42
- - 频繁中断(resumeCount >= 3):建议重新开始,但尊重用户选择
43
- - 长时间中断(距 lastActiveAt > 24h):先回顾上次聊了什么,再问是否继续
44
- - 恢复时说「欢迎回来」而非「检测到中断」
45
- - 参考模板:`.sillyspec/.runtime/templates/resume-dialog.md`
46
-
47
- ## 用户想法
48
- $ARGUMENTS
49
-
50
- ---
51
-
52
- ## Checklist(必须按顺序完成,不允许跳步或并行)
53
-
54
- - [ ] **Step 1** — 加载项目上下文 → 保存进度
55
- - [ ] **Step 2** — 协作与复用检查(同名变更 + 全局模板)→ 保存进度
56
- - [ ] **Step 3** — 原型/设计图分析(如有)→ 保存进度
57
- - [ ] **Step 4** — 评估需求范围,复杂需求拆分子项目/阶段,生成 MASTER.md → 保存进度
58
- - [ ] **Step 5** — 对话式探索(一次一个问题,2-3 轮内完成)→ 保存进度
59
- - [ ] **Step 6** — 提出 2-3 个方案并推荐 → 保存进度
60
- - [ ] **Step 7** — 分段展示设计,逐段确认 → 保存进度
61
- - [ ] **Step 8** — 写设计文档并保存 → 保存进度
62
- - [ ] **Step 9** — AI 自审(对照约束检查)→ 保存进度
63
- - [ ] **Step 10** — 用户确认设计方案 → 保存进度
64
- - [ ] **Step 11** — 输出 design.md → 保存进度
65
- - [ ] **Step 12** — 更新 STATE.md → 保存进度
66
- - [ ] **Step 13** — 保存最终进度
67
-
68
- **终态:** brainstorm 完成后唯一出口是 `/sillyspec:plan`。不允许直接进入 execute 或任何代码操作。
69
-
70
- ---
71
-
72
- ## 各步骤详解
73
-
74
- ### Step 1: 加载项目上下文
75
-
76
- ```bash
77
- cat .sillyspec/config.yaml 2>/dev/null
78
- ```
79
-
80
- **工作区模式:** AskUserQuestion 选子项目,**cd 到子项目目录执行**,加载子项目上下文 + 共享规范 + 工作区概览,设计文档保存到子项目 `.sillyspec/docs/<project>/changes/`。修改在子项目目录中暂存。
81
-
82
- **加载项目上下文:**
83
- ```bash
84
- cat .sillyspec/{PROJECT,REQUIREMENTS,ROADMAP}.md 2>/dev/null
85
- cat .sillyspec/docs/<project>/scan/{STRUCTURE,CONVENTIONS,ARCHITECTURE}.md 2>/dev/null
86
- ls .sillyspec/docs/<project>/changes/ 2>/dev/null
87
- ls .sillyspec/knowledge/ 2>/dev/null
88
- ```
89
-
90
- ### Step 2: 协作与复用检查
91
-
92
- - **同名变更:** `ls .sillyspec/docs/<project>/changes/ | grep -v archive` — 有相关变更则提示避免冲突
93
- - **全局模板:** `ls ~/.sillyspec/templates/ 2>/dev/null` — 有匹配模板则建议复用
94
-
95
- 无匹配则跳过,不输出。
96
-
97
- ### Step 3: 原型/设计图分析(如有图片则必做)
98
-
99
- **不要只看描述文字,图片包含布局、字段、交互等视觉信息。**
100
-
101
- 对每张图逐页分析(先主页面后子页面):
102
- 1. **页面结构** — 识别搜索区、操作栏、表格、表单等区块
103
- 2. **表单字段** — 字段名、类型、必填、选项
104
- 3. **交互流程** — 页面跳转、按钮行为、流程线
105
- 4. **标注备注** — 业务规则、状态说明、权限说明
106
-
107
- 展示分析结果,问用户确认有无遗漏。
108
-
109
- ### Step 4: 大模块拆分
110
-
111
- **满足以下任意 2 条就建议拆分:**
112
- - 3+ 个可独立交付的功能模块
113
- - 3+ 种角色有不同权限和视图
114
- - 跨页面状态流转(审批流、多步表单)
115
- - brainstorm 提问发现需求范围过大
116
-
117
- 确认拆分后生成 MASTER.md:
118
-
119
- ```bash
120
- mkdir -p .sillyspec/docs/<project>/changes/<变更名>/stages
121
- ```
122
-
123
- `MASTER.md` 内容:概述、拆分计划表(阶段/范围/状态)、整体技术方向、阶段间依赖、原型分析摘要、经验记录。
124
-
125
- ```bash
126
- git add .sillyspec/docs/<project>/changes/<变更名>/MASTER.md
127
- ```
128
-
129
- 💡 大模块计划已暂存。准备好后用 `/sillyspec:commit` 提交。
130
-
131
- 提示用户:`/sillyspec:brainstorm <变更名>/stage-1`
132
-
133
- **子阶段 brainstorm:** 读取 MASTER.md + 前序阶段经验 + 对应原型,设计文档保存到 `.sillyspec/docs/<project>/changes/<变更名>/stages/<stage-N>/`。
134
-
135
- ### Step 5: 对话式探索
136
-
137
- **核心规则:一次只问一个问题。**
138
-
139
- 1. 从最核心的问题开始(用户到底想做什么?)
140
- 2. 等待回答,根据信息量决定追问还是进入方案讨论
141
- 3. 探索顺序按需:目的 → 约束 → 边界 → 成功标准
142
- 4. **大多数 brainstorm 2-3 轮就应进入方案讨论**
143
-
144
- 探索阶段可使用项目已配置的 MCP 工具或 web search 调研技术方案和 API 用法,不要凭记忆写方案。检测可用工具:`cat .claude/mcp.json .cursor/mcp.json 2>/dev/null`
145
-
146
- ### Step 6: 提出 2-3 种方案
147
-
148
- 每种方案列优劣,给出推荐和理由。
149
-
150
- ### Step 7: 分段展示设计
151
-
152
- 简单项目几句话;复杂项目每段 200-300 字逐段确认。
153
-
154
- ### Step 8: 写设计文档
155
-
156
- 保存到 `.sillyspec/docs/<project>/brainstorm/<变更名>.md`:
157
-
158
- ```markdown
159
- # [Feature Name] 设计
160
-
161
- ## 动机与范围
162
- (为什么做、范围边界、成功标准)
163
-
164
- ## 功能需求
165
- (需求场景、验收标准)
166
- - [ ] 标准 1
167
-
168
- ## 技术方案
169
- ## 约束和假设
170
- ## 不在范围内
171
- ## 文件变更
172
- ## 代码风格参照
173
- (参考已有源文件,标注返回值类型、异常类型、注解风格)
174
- ```
175
-
176
- **注意:** 引用的表名必须来自 ARCHITECTURE.md 数据模型或明确标注"新增"。必须先读取 `.sillyspec/codebase/ARCHITECTURE.md`。
177
-
178
- ### Step 9: AI 自审(必须执行)
179
-
180
- - 需求覆盖:是否完整覆盖 Step 5 确认的需求点?
181
- - 约束一致性:技术方案是否与 ARCHITECTURE.md、CONVENTIONS.md 一致?
182
- - 表名/字段真实性:是否来自真实 schema?
183
- - 范围控制:是否包含不必要功能(YAGNI)?
184
- - 验收标准:是否具体、可测试?
185
- - 变更冲突:是否与 Step 2 检测到的已有变更冲突?
186
- - 缺口:模糊表述("适当的"/"必要时"等)是否已明确化
187
- - 缺口:隐含假设(登录态、数据量、并发预期)是否已显式写出
188
- - 缺口:边界场景(空数据、并发、服务不可用)是否已考虑
189
-
190
- 发现问题 → 修改文档,重新自审。不确定的标注「⚠️ 自审存疑」让用户判断。
191
-
192
- ### Step 10: 用户确认(⛔ 门禁)
193
-
194
- 展示设计方案,AskUserQuestion:确认 / 需要修改 / 推翻重来。
195
-
196
- ### Step 11: 输出技术方案
197
-
198
- 用户确认后,确认 design.md 已包含完整内容(动机、需求、方案、文件变更、代码风格参照)。如 Step 8 已保存则无需重复。
199
-
200
- ### Step 12: 更新 STATE.md
201
-
202
- 自动更新 `.sillyspec/STATE.md`(不存在则创建):当前变更、阶段、下一步 `/sillyspec:plan`、关键决策、历史记录。不需要 Git 提交。
203
-
204
- ### Step 13: 保存最终进度
205
-
206
- 1. 更新 `.sillyspec/.runtime/progress.json`:
207
- - `stages.brainstorm.status` 设为 `completed`
208
- - 写入 `stageSummary`(2-3 句总结核心设计决策)
209
- - `currentStage` 更新为 `plan`
210
- - `checkpoint` 设为「brainstorm 完成,等待 plan」
211
- 2. Append `user-inputs.md` 最终记录
212
- 3. 告知用户:「brainstorm 完成 ✅ 进度已保存,下一步 /sillyspec:plan」
213
-
214
- ## 关键原则
215
- - YAGNI — 无情砍掉不需要的功能
216
- - 总是探索替代方案
217
- - 设计可以很短,但必须存在
218
- - "简单"的项目更需要设计——未检视的假设造成最大浪费
219
-
220
- ## 进度保存规则(⚠️ HARD-GATE)
221
-
222
- **每步完成后必须执行,不允许跳过:**
223
-
224
- 1. 使用 write 工具更新 `.sillyspec/.runtime/progress.json`
225
- 2. 将当前步骤 ID 加入 `completedSteps`
226
- 3. 在 `summaries` 中写入本步结构化摘要:
227
- - `conclusion`(1-2句核心结论,必填)
228
- - `decisions`(用户确认的决策列表)
229
- - `rejectedAlternatives`(被否方案 + 简要理由)
230
- - `userMessages`(用户影响决策的原话)
231
- - `openQuestions`(遗留问题)
232
- - `keyEntities`(涉及的关键实体/概念)
233
- 4. 更新 `checkpoint`(一句话描述)
234
- 5. 刷新 `lastActiveAt`(ISO 格式)
235
- 6. `_version` +1
236
- 7. Append `.sillyspec/.runtime/user-inputs.md`(格式见 progress-format.md)
237
- 8. 对用户说:「✅ 第X步完成,进度已保存。」
238
-
239
- **下步启动检查:** 进入下一步前,先确认 progress.json 的 currentStep 已更新。如果发现未保存,立即补保存。
240
-
241
- ## 多任务并行提醒
242
-
243
- 如果用户在 brainstorm 过程中临时要求执行 quick 任务:
244
- - quick 任务不写入 progress.json,不影响当前 brainstorm 状态
245
- - quick 完成后,brainstorm 从断点继续
246
- - 告知用户:「quick 任务会独立执行,brainstorm 进度不受影响」
@@ -1,123 +0,0 @@
1
- ## 交互规范
2
- **当需要用户从多个选项中做出选择时,必须使用 Claude Code 内置的 AskUserQuestion 工具,将选项以参数传入。**
3
-
4
- ## 用法
5
- - `/sillyspec:commit` — 智能提交:自动收集变更信息,生成 commit message
6
- - `/sillyspec:commit "自定义 message"` — 使用指定 message 直接提交
7
-
8
- ## 任务
9
- $ARGUMENTS
10
-
11
- ---
12
-
13
- ## 流程
14
-
15
- ### 1. 检查是否有未提交的修改
16
-
17
- ```bash
18
- git diff --quiet 2>/dev/null; UNSTAGED=$?
19
- git diff --cached --quiet 2>/dev/null; STAGED=$?
20
- ```
21
-
22
- 两者都为 0(无修改)→ 提示"没有需要提交的修改",结束。
23
-
24
- ### 2. 暂存所有修改
25
-
26
- ```bash
27
- git add -A
28
- ```
29
-
30
- ### 3. 收集变更语义信息
31
-
32
- ```bash
33
- # 上次 commit 时间
34
- LAST_COMMIT_TIME=$(git log -1 --format=%ci 2>/dev/null)
35
-
36
- # 修改的文件列表
37
- git diff --cached --stat
38
- ```
39
-
40
- 从以下来源收集语义信息(筛选时间戳 > LAST_COMMIT_TIME 的条目):
41
-
42
- **来源 A — QUICKLOG(quick 产生的修改):**
43
- ```bash
44
- USER=$(git config user.name 2>/dev/null || echo "default")
45
- cat .sillyspec/quicklog/QUICKLOG-${USER}.md 2>/dev/null
46
- # 同时扫描活跃变更目录下的归属 quicklog
47
- for dir in .sillyspec/changes/*/quicklog/*.md; do [ -f "$dir" ] && cat "$dir"; done 2>/dev/null
48
- ```
49
-
50
- **来源 B — tasks.md(execute 产生的修改):**
51
- ```bash
52
- LATEST=$(ls -d .sillyspec/changes/*/ 2>/dev/null | grep -v archive | tail -1)
53
- cat "$LATEST/tasks.md" 2>/dev/null
54
- ```
55
- 筛选时间戳 > LAST_COMMIT_TIME 的已勾选 task。
56
-
57
- **来源 C — 阶段产出(scan/brainstorm/propose/plan/archive 等):**
58
- 检查 `.sillyspec/` 下新增或修改的文件,根据路径识别来源阶段:
59
- - `codebase/*.md` → scan 产出
60
- - `changes/<name>/proposal.md` → propose 产出
61
- - `changes/<name>/design.md` 或 `tasks.md` → plan 产出
62
- - `changes/archive/` → archive 产出
63
- - `specs/*.md` → brainstorm 产出
64
- - `knowledge/*.md` → 知识库更新
65
-
66
- ### 4. 自动生成 commit message
67
-
68
- 按 conventional commits 格式,根据来源生成 message:
69
-
70
- | 来源 | type | 示例 |
71
- |---|---|---|
72
- | 只有 quick 条目 | fix/refactor | `fix: 手机号校验修复(含正则修正)` |
73
- | 只有 execute 条目 | feat | `feat(user): 用户模块 task 1~3` |
74
- | 只有阶段产出 | docs | `docs: sillyspec scan 完成` |
75
- | 混合来源 | 取最主要的 type | body 里列出所有条目 |
76
- | 无匹配来源 | — | 展示 diff stat,让用户自己写 |
77
-
78
- **如果 $ARGUMENTS 非空**,直接使用用户指定的 message,跳过自动生成。
79
-
80
- **多条 quick 合并规则:**
81
- - 2 条以内 → 逐条列出
82
- - 3 条以上 → 摘要 + body 详情
83
-
84
- ### 5. 展示确认
85
-
86
- 用 AskUserQuestion 展示:
87
-
88
- ```
89
- 📝 建议的 commit message:
90
- fix: 手机号校验修复(含正则修正)
91
-
92
- 📁 修改文件(N 个):
93
- src/UserService.java (+15 -3)
94
- src/PhoneValidator.java (+28 -0)
95
-
96
- 选择:确认提交 / 编辑 message / 取消
97
- ```
98
-
99
- 用户选择编辑 → 让用户输入新 message → 再次确认。
100
-
101
- ### 6. 执行提交
102
-
103
- ```bash
104
- git commit -m "{确认后的 message}"
105
- ```
106
-
107
- 提交成功后展示 commit hash + 文件数 + 行数统计。
108
-
109
- ## 工作区模式
110
-
111
- ```bash
112
- cat .sillyspec/config.yaml 2>/dev/null
113
- ```
114
-
115
- 有子项目配置时:
116
- - 检查修改的文件分别属于哪个子项目
117
- - 修改集中在一个子项目 → 在该子项目目录中 commit
118
- - 修改跨多个子项目 → 用 AskUserQuestion 让用户选择:分开提交(每个子项目一个 commit)/ 合并提交
119
-
120
- ## 绝对规则
121
- - ❌ 不要自动提交,必须展示 message 让用户确认
122
- - ❌ 不要丢弃用户的修改
123
- - ✅ $ARGUMENTS 非空时可跳过确认直接提交
@@ -1,32 +0,0 @@
1
- ## 核心约束(必须遵守)
2
- - ❌ 跳过自动判断,直接执行某个阶段
3
-
4
- ---
5
-
6
- ## 判断逻辑
7
-
8
- **先检查是否工作区模式:**
9
- ```bash
10
- cat .sillyspec/config.yaml 2>/dev/null | grep -q "projects"
11
- ```
12
-
13
- **工作区模式:** 同时检查根目录和每个子项目,列出所有未完成的工作,让用户选择继续哪个。
14
-
15
- **单项目模式:** 按顺序检查,第一个未完成的就执行:
16
-
17
- ```
18
- 1. 有进行中的变更?
19
- 1a. 无 design.md → 提示补充设计(/sillyspec:brainstorm)
20
- 1b. 无 tasks.md → 执行 /sillyspec:plan
21
- 1c. tasks.md 有未完成项 + 有计划 → 执行 /sillyspec:execute
22
- 1d. tasks.md 全完成 + 未验证 → 执行 /sillyspec:verify(可选)
23
- 1e. 已验证通过 → 执行 /sillyspec:archive
24
-
25
- 2. 有 .sillyspec/codebase/ 但无进行中工作?
26
- → /sillyspec:brainstorm "你的想法"
27
-
28
- 3. 什么都没有?
29
- → /sillyspec:init(新项目)或 /sillyspec:scan(棕地项目)
30
- ```
31
-
32
- 先报告检测结果,再执行。