sillyspec 3.20.3 → 3.20.5

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 (225) hide show
  1. package/.claude/skills/sillyspec-archive/SKILL.md +21 -17
  2. package/.claude/skills/sillyspec-auto/SKILL.md +83 -77
  3. package/.claude/skills/sillyspec-brainstorm/SKILL.md +44 -17
  4. package/.claude/skills/sillyspec-commit/SKILL.md +106 -105
  5. package/.claude/skills/sillyspec-continue/SKILL.md +45 -44
  6. package/.claude/skills/sillyspec-doctor/SKILL.md +31 -22
  7. package/.claude/skills/sillyspec-execute/SKILL.md +30 -17
  8. package/.claude/skills/sillyspec-explore/SKILL.md +109 -96
  9. package/.claude/skills/sillyspec-knowledge/SKILL.md +270 -0
  10. package/.claude/skills/sillyspec-plan/SKILL.md +21 -52
  11. package/.claude/skills/sillyspec-propose/SKILL.md +21 -17
  12. package/.claude/skills/sillyspec-quick/SKILL.md +21 -17
  13. package/.claude/skills/sillyspec-resume/SKILL.md +68 -111
  14. package/.claude/skills/sillyspec-scan/SKILL.md +21 -17
  15. package/.claude/skills/sillyspec-state/SKILL.md +54 -54
  16. package/.claude/skills/sillyspec-status/SKILL.md +21 -17
  17. package/.claude/skills/sillyspec-verify/SKILL.md +21 -17
  18. package/.claude/skills/sillyspec-workspace/SKILL.md +157 -149
  19. package/.husky/pre-push +13 -0
  20. package/CLAUDE.md +18 -0
  21. package/README.md +198 -186
  22. package/SKILL.md +90 -87
  23. package/bin/sillyspec.js +2 -2
  24. package/docs/brainstorm-plan-contract.md +64 -0
  25. package/docs/plan-execute-contract.md +123 -0
  26. package/docs/platform-scan-protocol.md +298 -0
  27. package/docs/revision-mode.md +115 -0
  28. package/docs/sillyspec/file-lifecycle/known-implementation-gaps.md +99 -0
  29. package/docs/sillyspec/file-lifecycle/platform-workflows-sync.md +218 -0
  30. package/docs/sillyspec/file-lifecycle/stage-artifacts.md +167 -0
  31. package/docs/sillyspec/file-lifecycle/storage-and-state.md +148 -0
  32. package/docs/sillyspec/file-lifecycle/worktree-and-guard.md +211 -0
  33. package/docs/sillyspec/file-lifecycle.md +131 -0
  34. package/docs/workflow-contract-regression.md +106 -0
  35. package/docs/worktree-isolation.md +252 -0
  36. package/package.json +40 -34
  37. package/packages/dashboard/dist/assets/{index-D1EVTLmc.js → index-Bq_Z2hne.js} +7446 -7446
  38. package/packages/dashboard/dist/assets/index-O2W5RV4z.css +1 -0
  39. package/packages/dashboard/dist/index.html +16 -16
  40. package/packages/dashboard/dist/prototype-dashboard.html +836 -0
  41. package/packages/dashboard/dist/prototype-overview.html +256 -0
  42. package/packages/dashboard/index.html +15 -15
  43. package/packages/dashboard/package-lock.json +2384 -2384
  44. package/packages/dashboard/package.json +25 -25
  45. package/packages/dashboard/public/prototype-dashboard.html +836 -0
  46. package/packages/dashboard/public/prototype-overview.html +256 -0
  47. package/packages/dashboard/server/executor.js +86 -86
  48. package/packages/dashboard/server/index.js +588 -508
  49. package/packages/dashboard/server/parser.js +526 -458
  50. package/packages/dashboard/server/watcher.js +350 -342
  51. package/packages/dashboard/src/App.vue +558 -325
  52. package/packages/dashboard/src/components/ActionBar.vue +93 -84
  53. package/packages/dashboard/src/components/CommandPalette.vue +96 -92
  54. package/packages/dashboard/src/components/DetailPanel.vue +137 -137
  55. package/packages/dashboard/src/components/DocPreview.vue +105 -8
  56. package/packages/dashboard/src/components/DocTree.vue +75 -19
  57. package/packages/dashboard/src/components/HResizeHandle.vue +48 -0
  58. package/packages/dashboard/src/components/LogStream.vue +65 -65
  59. package/packages/dashboard/src/components/PipelineStage.vue +95 -75
  60. package/packages/dashboard/src/components/PipelineView.vue +156 -129
  61. package/packages/dashboard/src/components/ProjectCard.vue +187 -0
  62. package/packages/dashboard/src/components/ProjectList.vue +210 -210
  63. package/packages/dashboard/src/components/ProjectOverview.vue +113 -139
  64. package/packages/dashboard/src/components/StageBadge.vue +67 -53
  65. package/packages/dashboard/src/components/StepCard.vue +94 -89
  66. package/packages/dashboard/src/components/VResizeHandle.vue +61 -0
  67. package/packages/dashboard/src/components/detail/DocsDetail.vue +48 -48
  68. package/packages/dashboard/src/components/detail/GitDetail.vue +61 -61
  69. package/packages/dashboard/src/components/detail/TechDetail.vue +43 -43
  70. package/packages/dashboard/src/composables/useDashboard.js +192 -164
  71. package/packages/dashboard/src/composables/useKeyboard.js +119 -119
  72. package/packages/dashboard/src/composables/useLayout.js +131 -0
  73. package/packages/dashboard/src/composables/useWebSocket.js +129 -129
  74. package/packages/dashboard/src/main.js +8 -8
  75. package/packages/dashboard/src/style.css +132 -132
  76. package/packages/dashboard/vite.config.js +18 -18
  77. package/src/brainstorm-postcheck.js +158 -0
  78. package/src/change-list.js +52 -0
  79. package/src/change-risk-profile.js +352 -0
  80. package/src/classify-change.js +73 -0
  81. package/src/constants.js +70 -0
  82. package/src/contract-matrix.js +278 -0
  83. package/src/db.js +201 -0
  84. package/src/endpoint-extractor.js +315 -0
  85. package/src/hooks/claude-pre-tool-use.cjs +125 -0
  86. package/src/hooks/worktree-guard.js +761 -0
  87. package/src/index.js +922 -252
  88. package/src/init.js +470 -375
  89. package/src/knowledge-match.js +130 -0
  90. package/src/migrate.js +117 -117
  91. package/src/modules.js +482 -0
  92. package/src/progress.js +1734 -508
  93. package/src/run.js +3465 -652
  94. package/src/scan-postcheck.js +387 -0
  95. package/src/setup.js +398 -460
  96. package/src/stage-contract.js +700 -0
  97. package/src/stages/archive.js +160 -54
  98. package/src/stages/brainstorm-auto.js +229 -0
  99. package/src/stages/brainstorm.js +645 -239
  100. package/src/stages/doctor.js +365 -312
  101. package/src/stages/execute.js +634 -264
  102. package/src/stages/explore.js +34 -0
  103. package/src/stages/index.js +29 -35
  104. package/src/stages/knowledge.js +498 -0
  105. package/src/stages/plan-postcheck.js +518 -0
  106. package/src/stages/plan.js +582 -279
  107. package/src/stages/propose.js +174 -115
  108. package/src/stages/quick.js +102 -63
  109. package/src/stages/scan.js +558 -141
  110. package/src/stages/status.js +65 -65
  111. package/src/stages/verify.js +322 -135
  112. package/src/sync.js +497 -0
  113. package/src/task-review.js +346 -0
  114. package/src/workflow.js +785 -0
  115. package/src/worktree-apply.js +549 -0
  116. package/src/worktree-deps.js +185 -0
  117. package/src/worktree.js +982 -0
  118. package/templates/workflows/archive-impact.yaml +79 -0
  119. package/templates/workflows/scan-docs.yaml +132 -0
  120. package/test/brainstorm-plan-contract.test.mjs +273 -0
  121. package/test/check-syntax.mjs +26 -0
  122. package/test/cli-top-level-aliases.test.mjs +174 -0
  123. package/test/contract-artifacts.test.mjs +323 -0
  124. package/test/decision-supersede.test.mjs +277 -0
  125. package/test/knowledge-match.test.mjs +231 -0
  126. package/test/plan-execute-contract.test.mjs +357 -0
  127. package/test/plan-optimization.test.mjs +572 -0
  128. package/test/platform-artifacts.test.mjs +190 -0
  129. package/test/platform-failure-samples.test.mjs +199 -0
  130. package/test/platform-recovery-chain.test.mjs +179 -0
  131. package/test/platform-recovery.test.mjs +167 -0
  132. package/test/platform-scan-p0.test.mjs +175 -0
  133. package/test/revision-v1.test.mjs +1145 -0
  134. package/test/run-sanitize-project-name.test.mjs +51 -0
  135. package/test/run-scan-postcheck-fail.test.mjs +64 -0
  136. package/test/run-scan-project-parse.test.mjs +200 -0
  137. package/test/run-tests.mjs +48 -0
  138. package/test/runtime-cleanup-keeps-worktree.test.mjs +107 -0
  139. package/test/scan-docs-yaml-placeholders.test.mjs +84 -0
  140. package/test/scan-knowledge.test.mjs +175 -0
  141. package/test/scan-paths.test.mjs +68 -0
  142. package/test/scan-postcheck-project-priority.test.mjs +85 -0
  143. package/test/scan-postcheck.test.mjs +197 -0
  144. package/test/scan-workflow-anyfailed-block.test.mjs +52 -0
  145. package/test/spec-dir.test.mjs +206 -0
  146. package/test/stage-contract-failed-post-check.test.mjs +102 -0
  147. package/test/stage-contract.test.mjs +299 -0
  148. package/test/stage-definitions.test.mjs +39 -0
  149. package/test/wait-gates.test.mjs +501 -0
  150. package/test/workflow-spec-base.test.mjs +142 -0
  151. package/test/worktree-deps-provision.test.mjs +148 -0
  152. package/test/worktree-guard.test.mjs +136 -0
  153. package/test/worktree-native-overlay.test.mjs +188 -0
  154. package/.sillyspec/changes/archive/2026-04-08-derive-state/design.md +0 -97
  155. package/.sillyspec/changes/archive/2026-04-08-derive-state/plan.md +0 -51
  156. package/.sillyspec/changes/archive/2026-04-08-derive-state/proposal.md +0 -29
  157. package/.sillyspec/changes/archive/2026-04-08-derive-state/requirements.md +0 -34
  158. package/.sillyspec/changes/archive/2026-04-08-derive-state/tasks.md +0 -13
  159. package/.sillyspec/changes/archive/2026-04-08-derive-state/verify-result.md +0 -43
  160. package/.sillyspec/changes/auto-mode/design.md +0 -50
  161. package/.sillyspec/changes/auto-mode/proposal.md +0 -19
  162. package/.sillyspec/changes/auto-mode/requirements.md +0 -21
  163. package/.sillyspec/changes/auto-mode/tasks.md +0 -7
  164. package/.sillyspec/changes/brainstorm-archive/2026-04-05-dashboard-design.md +0 -206
  165. package/.sillyspec/changes/brainstorm-archive/2026-04-05-unified-docs-design.md +0 -199
  166. package/.sillyspec/changes/dashboard/design.md +0 -219
  167. package/.sillyspec/changes/dashboard/design.md.braindraft +0 -206
  168. package/.sillyspec/changes/run-command-design/design.md +0 -1230
  169. package/.sillyspec/changes/unified-docs-design/design.md +0 -199
  170. package/.sillyspec/docs/sillyspec/scan/.gitkeep +0 -0
  171. package/.sillyspec/knowledge/INDEX.md +0 -8
  172. package/.sillyspec/knowledge/uncategorized.md +0 -3
  173. package/.sillyspec/plans/2026-04-05-dashboard.md +0 -737
  174. package/.sillyspec/projects/sillyspec.yaml +0 -3
  175. package/dist/steps/brainstorm/01-load-context.md +0 -30
  176. package/dist/steps/brainstorm/02-reuse-check.md +0 -6
  177. package/dist/steps/brainstorm/03-prototype-analysis.md +0 -11
  178. package/dist/steps/brainstorm/04-module-split.md +0 -23
  179. package/dist/steps/brainstorm/05-dialog-explore.md +0 -8
  180. package/dist/steps/brainstorm/06-propose-approaches.md +0 -3
  181. package/dist/steps/brainstorm/07-present-design.md +0 -3
  182. package/dist/steps/brainstorm/08-write-design.md +0 -21
  183. package/dist/steps/brainstorm/09-self-review.md +0 -15
  184. package/dist/steps/brainstorm/10-user-confirm.md +0 -3
  185. package/dist/steps/brainstorm/11-output-spec.md +0 -7
  186. package/dist/steps/brainstorm/manifest.yaml +0 -26
  187. package/dist/steps/execute/01-load-context.md +0 -41
  188. package/dist/steps/execute/02-scan-conventions.md +0 -47
  189. package/dist/steps/execute/03-skill-mcp.md +0 -19
  190. package/dist/steps/execute/04-assign-task.md +0 -22
  191. package/dist/steps/execute/04b-prompt-template.md +0 -54
  192. package/dist/steps/execute/05-write-test.md +0 -7
  193. package/dist/steps/execute/06-write-code.md +0 -8
  194. package/dist/steps/execute/07-run-test.md +0 -26
  195. package/dist/steps/execute/08-fix-issues.md +0 -28
  196. package/dist/steps/execute/09-next-task.md +0 -33
  197. package/dist/steps/execute/manifest.yaml +0 -28
  198. package/dist/steps/plan/01-load-context.md +0 -22
  199. package/dist/steps/plan/02-anchor-confirm.md +0 -1
  200. package/dist/steps/plan/03-expand-tasks.md +0 -33
  201. package/dist/steps/plan/04-mark-order.md +0 -15
  202. package/dist/steps/plan/05-e2e-planning.md +0 -17
  203. package/dist/steps/plan/06-self-check.md +0 -16
  204. package/dist/steps/plan/07-save.md +0 -1
  205. package/dist/steps/plan/manifest.yaml +0 -18
  206. package/dist/steps/scan/01-env-detect.md +0 -51
  207. package/dist/steps/scan/02-tech-stack.md +0 -16
  208. package/dist/steps/scan/03-conventions.md +0 -16
  209. package/dist/steps/scan/04-structure.md +0 -19
  210. package/dist/steps/scan/05-quality.md +0 -18
  211. package/dist/steps/scan/06-complete.md +0 -49
  212. package/dist/steps/scan/manifest.yaml +0 -16
  213. package/dist/steps/verify/01-load-specs.md +0 -28
  214. package/dist/steps/verify/02-check-tasks.md +0 -1
  215. package/dist/steps/verify/03-check-design.md +0 -6
  216. package/dist/steps/verify/04-run-tests.md +0 -7
  217. package/dist/steps/verify/05-e2e-tests.md +0 -27
  218. package/dist/steps/verify/05b-e2e-fix.md +0 -33
  219. package/dist/steps/verify/06-code-quality.md +0 -25
  220. package/dist/steps/verify/07-lint-check.md +0 -27
  221. package/dist/steps/verify/08-output-report.md +0 -14
  222. package/dist/steps/verify/manifest.yaml +0 -22
  223. package/packages/dashboard/dist/assets/index-DGe8CqeP.css +0 -1
  224. package/src/derive.js +0 -147
  225. package/src/step.js +0 -543
package/README.md CHANGED
@@ -1,186 +1,198 @@
1
- <p align="center">
2
- <img src="logo.jpg" width="80" />
3
- </p>
4
-
5
- # SillySpec v3.0 — 规范驱动开发工具包
6
-
7
- > 融合 Superpowers + OpenSpec + GSD,从"你说要啥"到"代码能跑"的完整流程。
8
- > Claude Code / Cursor / Codex / OpenCode / OpenClaw 都能用。
9
- >
10
- > 📖 **在线文档**:https://sillyspec.ppdmq.top/
11
- >
12
- > 💡 **核心理念:Code is Cheap, Context is Expensive.** 文档是核心资产,代码是文档的产物。没有文档就没有代码——文档是 AI 的记忆,是团队协作的基础,是后续维护的唯一依据。
13
-
14
- ## 安装
15
-
16
- 需要 Node.js >= 18。所有平台一条命令:
17
-
18
- ```bash
19
- npx sillyspec init
20
- ```
21
-
22
- > 📦 首次运行自动安装 CLI,之后 `sillyspec status`/`sillyspec next` 等命令也可直接使用。
23
-
24
- **指定工具:**
25
- ```bash
26
- npx sillyspec init --tool claude
27
- npx sillyspec init --tool cursor
28
- npx sillyspec init --tool openclaw
29
- ```
30
-
31
- **工作区模式(多项目):**
32
- ```bash
33
- npx sillyspec init --workspace
34
- ```
35
-
36
- **指定目录:**
37
- ```bash
38
- npx sillyspec init --dir /path/to/project
39
- ```
40
-
41
- ### 支持的 AI 工具
42
-
43
- | 工具 | `--tool` 参数 | 输出目录 | 格式 |
44
- |---|---|---|---|
45
- | Claude Code (commands) | `claude` | `.claude/commands/sillyspec/` | slash commands |
46
- | Claude Code (skills) | `claude_skills` | `.claude/skills/sillyspec-<name>/` | SKILL.md |
47
- | Cursor | `cursor` | `.cursor/commands/` | custom commands |
48
- | Codex | `codex` | `~/.agents/skills/sillyspec-<name>/` | SKILL.md |
49
- | OpenCode | `opencode` | `.opencode/skills/sillyspec-<name>/` | SKILL.md |
50
- | OpenClaw | `openclaw` | `.openclaw/skills/sillyspec-<name>/` | SKILL.md |
51
-
52
- 安装后重新打开终端,启动 Claude Code:
53
-
54
- ```bash
55
- claude --dangerously-skip-permissions
56
- ```
57
-
58
- > 💡 **推荐使用跳过权限模式。** SillySpec 的命令会频繁执行 `git commit`、文件读写、校验脚本等操作,停下来 50 次批准会失去意义。这是 GSD OpenSpec 的预期使用方式。
59
-
60
- ## 入口选择
61
-
62
- ```
63
- 绿地项目(空目录):/sillyspec:init
64
- 棕地项目(有代码):/sillyspec:scan
65
- 随时自由思考: /sillyspec:explore "想法"
66
- 大模块(多页面): /sillyspec:brainstorm(直接贴原型图)
67
- ```
68
-
69
- ## 完整工作流
70
-
71
- ```
72
- 绿地:init → brainstorm → plan → execute → [verify] → archive
73
- 棕地:scan → brainstorm → plan → execute → [verify] → archive
74
- 大模块:brainstorm(多图) 拆分MASTER.mdstage-1 全流程 stage-2 全流程 ... → archive
75
- ```
76
-
77
- ### 也可以跳过
78
-
79
- - 小 bug:`/sillyspec:quick "修复 xxx"`
80
- - 不确定要做什么:`/sillyspec:explore "想法"`
81
- - 中断恢复:`/sillyspec:resume`
82
- - 不知道下一步:`/sillyspec:continue`
83
-
84
- ## 命令列表
85
-
86
- ### 核心流程
87
-
88
- | 命令 | 用途 |
89
- |---|---|
90
- | `/sillyspec:init` | 绿地项目:深度提问→需求→路线图 |
91
- | `/sillyspec:scan` | 棕地项目:交互式引导扫描,生成代码库文档 |
92
- | `/sillyspec:brainstorm` | 需求探索+规范生成:直接产出 design.md + tasks.md |
93
- | `/sillyspec:plan` | 实现计划:文件路径+任务描述+Wave 分组 |
94
- | `/sillyspec:execute` | TDD 执行:子代理并行+用户自选确认频率 |
95
- | `/sillyspec:verify` | 验证(可选):对照规范+测试套件+代码审查+E2E |
96
- | `/sillyspec:archive` | 归档:规范沉淀到 knowledge/ |
97
-
98
- ### 辅助工具
99
-
100
- | 命令 | 用途 |
101
- |---|---|
102
- | `/sillyspec:status` | 查看进度 |
103
- | `/sillyspec:continue` | 自动下一步 |
104
- | `/sillyspec:explore` | 自由思考:画图、讨论、调研 |
105
- | `/sillyspec:quick` | 快速模式:跳过完整流程 |
106
- | `/sillyspec:commit` | 智能提交 |
107
- | `/sillyspec:state` | 查看当前工作状态 |
108
- | `/sillyspec:resume` | 恢复工作:支持大模块阶段进度 |
109
- | `/sillyspec:workspace` | 工作区管理:多项目子项目 |
110
- | `/sillyspec:export` | 导出成功方案为可复用模板 |
111
-
112
- ## CLI 命令
113
-
114
- ```bash
115
- sillyspec status [--json] 显示当前项目状态
116
- sillyspec next [--json] 显示下一步命令
117
- sillyspec check [--json] 检查文档完整性
118
- sillyspec setup 安装推荐 MCP 工具(交互式)
119
- sillyspec setup --list 查看已安装 MCP 状态
120
- sillyspec init 初始化(零交互,自动检测工具)
121
- sillyspec init --tool <name> 指定工具安装
122
- sillyspec init --workspace 工作区模式
123
- sillyspec init --interactive 交互式引导
124
- ```
125
-
126
- ## MCP 增强
127
-
128
- 通过 `sillyspec setup` 安装 MCP 工具增强 AI 能力:
129
-
130
- - **Context7**查询最新库文档和 API 参考
131
- - **grep.app**搜索开源代码实现
132
- - **Chrome DevTools**浏览器自动化,支持 E2E 验证
133
-
134
- ## E2E 测试流程
135
-
136
- ```
137
- plan: 识别 UI 功能 检测测试能力(E2E框架 > 通用测试 > 浏览器MCP)→ 添加 E2E 任务
138
- execute: 编码完成后编写 E2E 测试(测试文件或 e2e-steps.md)
139
- verify: 按优先级执行 用户确认修复策略 自动修复循环(quick)→ 结果记录
140
- ```
141
-
142
- 自动修复支持跨会话:测试结果持久化在 `.sillyspec/local.yaml`,按变更名隔离。
143
-
144
- ## 可靠性保障
145
-
146
- SillySpec 不仅仅是 prompt,还有硬校验:
147
-
148
- - **锚定确认**brainstorm/plan/execute/verify 执行前必须逐个确认读过规范文件
149
- - **Hard Gate 自检** — 关键命令生成文件后强制自检格式,不通过则修正
150
- - **校验脚本** — shell 脚本可自动化验证 AI 输出(validate-proposal/plan/scan/all)
151
- - **框架隐形规则扫描** — scan 阶段自动检测多租户/逻辑删除/审计字段/实体基类,写入 CONVENTIONS.md
152
- - **实体继承规范扫描** — 新建表时必须包含基类所有字段,防止 Unknown column
153
- - **归档确认** archive 操作前展示内容等待用户确认
154
-
155
- ## 防幻觉机制
156
-
157
- | 环节 | 机制 |
158
- |---|---|
159
- | scan | 强制扫描数据库 schema + 框架隐形规则 + 实体基类字段 |
160
- | brainstorm | 必须读 ARCHITECTURE.md 数据模型,支持原型图分析 |
161
- | execute | 写代码前强制读现有源码,禁止编造方法调用 |
162
- | 全流程 | shell 校验脚本兜底 |
163
-
164
- ## 目录结构
165
-
166
- ```
167
- sillyspec/
168
- ├── bin/sillyspec.js # CLI 入口
169
- ├── src/
170
- │ ├── index.js # status/next/check 命令
171
- │ ├── init.js # init 逻辑 + 工具适配器
172
- │ └── setup.js # MCP 工具安装
173
- ├── templates/ # 命令模板(19 个)
174
- ├── SKILL.md # 技能描述
175
- └── README.md
176
- ```
177
-
178
- ## 致谢
179
-
180
- - [Superpowers](https://github.com/obra/superpowers) 工程纪律
181
- - [OpenSpec](https://github.com/Fission-AI/OpenSpec) 需求管理
182
- - [GSD](https://github.com/gsd-build/get-shit-done) — 上下文工程
183
-
184
- ## License
185
-
186
- MIT
1
+ <p align="center">
2
+ <img src="logo.jpg" width="96" />
3
+ </p>
4
+
5
+ <h1 align="center">SillySpec</h1>
6
+
7
+ <p align="center">规范驱动开发工具包 · 流程状态机,让 AI 严格按步骤来</p>
8
+
9
+ <p align="center">
10
+ 融合 Superpowers + OpenSpec + GSD,从「你说要啥」到「代码能跑」的完整流程<br>
11
+ 兼容 Claude Code / Cursor / Codex / OpenCode / OpenClaw / Gemini
12
+ </p>
13
+
14
+ <p align="center">
15
+ 📖 <a href="https://sillyspec.ppdmq.top/">在线文档</a> &nbsp;·&nbsp; 🐙 <a href="https://github.com/q512426816/sillyspec">GitHub</a>
16
+ </p>
17
+
18
+ ---
19
+
20
+ > 💡 **核心理念:Code is Cheap, Context is Expensive.**
21
+ >
22
+ > 文档是核心资产,代码是文档的产物。没有文档就没有代码——文档是 AI 的记忆,是团队协作的基础,是后续维护的唯一依据。
23
+
24
+ ## 它解决什么问题
25
+
26
+ AI agent(Claude Code / Cursor 等)直接上手编码时,容易跳过需求澄清、方案设计、任务拆解这些关键步骤,产出偏离预期、且无法审计。
27
+
28
+ SillySpec 把一个变更的完整生命周期固化为一组**强制阶段**——每个阶段都有明确的入口契约、产物文件名和门禁校验,AI 必须按状态机推进,不能跳步、不能偷工。进度、决策、产物全部持久化到 SQLite,可审计、可回溯、可断点恢复。
29
+
30
+ ## 快速开始
31
+
32
+ 需要 Node.js >= 18,一条命令完成初始化:
33
+
34
+ ```bash
35
+ npx sillyspec init
36
+ ```
37
+
38
+ 首次运行会自动安装 CLI,并检测你正在使用的 AI 工具。之后 `/sillyspec:brainstorm`、`sillyspec progress show` 等命令即可直接使用。
39
+
40
+ **指定 AI 工具:**
41
+
42
+ | 工具 | `--tool` | 产物位置 |
43
+ |---|---|---|
44
+ | Claude Code(推荐) | `claude` | `.claude/skills/sillyspec-*/` |
45
+ | Cursor | `cursor` | `.cursor/skills/sillyspec-*/` |
46
+ | OpenAI Codex | `codex` | `AGENTS.md` |
47
+ | OpenCode | `opencode` | `INSTRUCTIONS.md` |
48
+ | OpenClaw | `openclaw` | `.openclaw/skills/sillyspec-*/` |
49
+ | Gemini | `gemini` | `GEMINI.md` |
50
+
51
+ ```bash
52
+ npx sillyspec init --tool claude # 指定工具
53
+ npx sillyspec init --workspace # 多项目工作区模式
54
+ npx sillyspec init --dir /path/to/x # 指定项目目录
55
+ npx sillyspec init --interactive # 完整引导
56
+ ```
57
+
58
+ > 💡 启动 AI 时推荐使用跳过权限模式(如 `claude --dangerously-skip-permissions`)。SillySpec 会频繁执行 git、文件读写、校验脚本等操作,逐个批准会打断节奏——这也是 GSD / OpenSpec 的预期使用方式。
59
+
60
+ ## 从哪里开始
61
+
62
+ | 场景 | 命令 |
63
+ |---|---|
64
+ | 全自动,一句话到代码 | `/sillyspec:auto <需求描述>` |
65
+ | 全新项目(空目录) | `/sillyspec:init` |
66
+ | 已有代码的项目 | `/sillyspec:scan` |
67
+ | 多项目工作区 | `/sillyspec:workspace` |
68
+ | 随时自由思考 | `/sillyspec:explore "想法"` |
69
+
70
+ ## 完整工作流
71
+
72
+ ```
73
+ 绿地:init → brainstorm → plan → execute → [verify] → archive
74
+ 棕地:scan brainstormplanexecute verify → archive
75
+ 全自动:auto(自动推进全部阶段,支持用户确认门控)
76
+ 大模块:brainstorm(多图)→ 拆分 → MASTER.md → 逐 stage 全流程 → archive
77
+ ```
78
+
79
+ **也可以跳过完整流程:**
80
+
81
+ - 小改动:`/sillyspec:quick "修复 xxx"`
82
+ - 不确定做什么:`/sillyspec:explore`
83
+ - 中断恢复:`/sillyspec:resume`
84
+ - 不知道下一步:`/sillyspec:continue`
85
+
86
+ ## 命令一览
87
+
88
+ ### 核心流程
89
+
90
+ | 命令 | 用途 |
91
+ |---|---|
92
+ | `/sillyspec:init` | 绿地项目:深度提问 需求文档 路线图 |
93
+ | `/sillyspec:scan` | 棕地项目:扫描代码库,生成 7 份架构文档 + 模块映射 |
94
+ | `/sillyspec:brainstorm` | 需求探索 + 规范生成:产出 design.md + tasks.md |
95
+ | `/sillyspec:plan` | 实现计划:文件路径 + 任务描述 + Wave 拓扑分组 |
96
+ | `/sillyspec:execute` | TDD 执行:子代理并行 + worktree 隔离 |
97
+ | `/sillyspec:verify` | 验证:对照规范 + 测试套件 + 代码审查 + E2E |
98
+ | `/sillyspec:archive` | 归档:规范沉淀到 knowledge/ |
99
+ | `/sillyspec:auto` | 全自动推进全部阶段 |
100
+
101
+ ### 辅助工具
102
+
103
+ | 命令 | 用途 |
104
+ |---|---|
105
+ | `/sillyspec:status` · `/sillyspec:state` | 查看进度 / 当前工作状态 |
106
+ | `/sillyspec:continue` | 自动判断并执行下一步 |
107
+ | `/sillyspec:explore` | 自由思考:画图、讨论、调研 |
108
+ | `/sillyspec:quick` | 快速模式:跳过完整流程 |
109
+ | `/sillyspec:resume` | 恢复工作(支持大模块阶段进度) |
110
+ | `/sillyspec:doctor` | 项目自检与状态修复 |
111
+ | `/sillyspec:commit` | 智能提交 |
112
+ | `/sillyspec:workspace` | 多项目工作区管理 |
113
+ | `/sillyspec:export` | 导出成功方案为可复用模板 |
114
+
115
+ ## CLI 命令
116
+
117
+ ```bash
118
+ sillyspec run <stage> 执行阶段(auto/brainstorm/plan/execute/verify/archive/scan/quick/explore)
119
+ sillyspec run <stage> --done 完成当前步骤并推进到下一步
120
+ sillyspec run <stage> --status 查看阶段进度
121
+ sillyspec progress show 显示当前项目状态
122
+ sillyspec init 初始化(零交互,自动检测工具)
123
+ sillyspec setup 安装推荐 MCP 工具(交互式)
124
+ sillyspec setup --list 查看已安装 MCP 状态
125
+ sillyspec doctor 全量自检 + 修复进度
126
+ ```
127
+
128
+ ## 核心特性
129
+
130
+ - **规范驱动**所有代码产出先有设计文档支撑,文档是 AI 的记忆
131
+ - **阶段状态机**以 stage + step 粒度强制流转,gate-status + progress.db 双轨记录状态
132
+ - **TDD 强制**execute 阶段先写测试再写实现
133
+ - **子代理并行** — 同一 Wave 内任务并行执行,加快交付
134
+ - **Worktree 隔离** — execute 在独立 git worktree 中工作,不污染主分支
135
+ - **拓扑排序 Wave** — plan 阶段按蓝图依赖关系自动重排 Wave 分组
136
+ - **进度持久化** — SQLite(sql.js WASM)持久化,支持断点恢复
137
+ - **模块文档** 模块级知识库,AI 执行时按需加载相关上下文
138
+ - **E2E 验证** — 内置 E2E 测试流程,支持 Playwright / 浏览器 MCP,跨会话自动修复
139
+ - **平台同步** 可选对接 SillyHub,文档同步 + 团队审批
140
+
141
+ ## 可靠性保障
142
+
143
+ SillySpec 不只是 prompt,还有硬校验兜底:
144
+
145
+ - **锚定确认** — 各阶段执行前必须逐个确认读过规范文件
146
+ - **Hard Gate 自检** — 关键命令生成文件后强制自检格式,不通过则修正
147
+ - **postcheck 识别偷懒** — 自动识别占位符、fallback、未分析等 AI 偷懒模式
148
+ - **校验脚本**shell 脚本自动化验证 AI 输出(validate-proposal/plan/scan/all)
149
+ - **归档确认** archive 操作前展示内容等待用户确认
150
+
151
+ ## 防幻觉机制
152
+
153
+ | 环节 | 机制 |
154
+ |---|---|
155
+ | scan | 强制扫描代码库结构 / 约定 / 集成 / 测试 / 债务,生成 7 份文档 |
156
+ | brainstorm | 必须读 ARCHITECTURE.md 数据模型,支持原型图分析 |
157
+ | execute | 写代码前强制读现有源码,禁止编造方法调用 |
158
+ | 全流程 | postcheck + 校验脚本兜底 |
159
+
160
+ ## MCP 增强
161
+
162
+ 通过 `sillyspec setup` 一键安装 MCP 工具,增强 AI 能力:
163
+
164
+ - **Context7** — 查询最新库文档和 API 参考
165
+ - **grep.app** — 搜索开源代码实现
166
+ - **Chrome DevTools** — 浏览器自动化,支持 E2E 验证
167
+
168
+ ## 目录结构
169
+
170
+ ```
171
+ sillyspec/
172
+ ├── bin/sillyspec.js # CLI 入口(shebang)
173
+ ├── src/
174
+ ├── index.js # 命令分发
175
+ │ ├── run.js # 阶段状态机引擎
176
+ │ ├── init.js / setup.js # 初始化 + MCP 工具安装
177
+ │ ├── progress.js / db.js # SQLite 进度存储
178
+ │ ├── sync.js # SillyHub 平台同步
179
+ │ ├── workflow.js # 工作流编排 + postcheck
180
+ │ ├── worktree*.js # worktree 隔离执行
181
+ │ ├── hooks/ # worktree 守卫等钩子
182
+ │ └── stages/ # 各阶段定义(scan/brainstorm/plan/execute/verify/...)
183
+ ├── templates/workflows/ # 工作流定义(scan-docs / archive-impact)
184
+ ├── test/ # 原生 node:test 测试套件
185
+ ├── packages/dashboard/ # 独立可视化面板子包
186
+ ├── SKILL.md # 技能描述
187
+ └── README.md
188
+ ```
189
+
190
+ ## 致谢
191
+
192
+ - [Superpowers](https://github.com/obra/superpowers) — 工程纪律
193
+ - [OpenSpec](https://github.com/Fission-AI/OpenSpec) — 需求管理
194
+ - [GSD](https://github.com/gsd-build/get-shit-done) — 上下文工程
195
+
196
+ ## License
197
+
198
+ MIT
package/SKILL.md CHANGED
@@ -1,87 +1,90 @@
1
- ---
2
- name: sillyspec
3
- description: "规范驱动开发工具包 v3.6。绿地项目用 /sillyspec:init,棕地项目用 /sillyspec:scan。可用命令:init、scan、scan-quick、explore、brainstormplanexecuteverifyarchive、commit、export、status、resume、continue、quick、state、workspace、workspace-sync。"
4
- version: "3.6.1"
5
- ---
6
-
7
- # SillySpec v3.6
8
-
9
- 融合 Superpowers + OpenSpec + GSD,从"你说要啥"到"代码能跑"的完整流程。
10
- Claude Code / Cursor / Codex / OpenCode / OpenClaw 都能用。
11
-
12
- ## 入口选择
13
-
14
- | 项目类型 | 首选命令 |
15
- |---|---|
16
- | 全新项目(空目录) | `/sillyspec:init` |
17
- | 已有代码的项目 | `/sillyspec:scan` |
18
- | 多项目工作区 | `/sillyspec:workspace` |
19
- | 随时自由思考 | `/sillyspec:explore` |
20
-
21
- ## 完整工作流
22
-
23
- ```
24
- 绿地:init → brainstorm → plan → execute → [verify] → archive
25
- 棕地:scan → brainstorm → plan → execute → [verify] → archive
26
- 工作区:workspace → (init/scan per project) → brainstorm → ...
27
- ```
28
-
29
- ## 19 个命令
30
-
31
- ### 核心流程
32
-
33
- | 命令 | 用途 |
34
- |---|---|
35
- | `/sillyspec:init` | 绿地项目初始化 |
36
- | `/sillyspec:scan` | 棕地项目扫描(7 份文档) |
37
- | `/sillyspec:brainstorm` | 需求探索 + 生成设计文档 |
38
- | `/sillyspec:plan` | 编写实现计划(Wave 分组) |
39
- | `/sillyspec:execute` | TDD 执行 + 子代理并行 |
40
- | `/sillyspec:verify` | 验证(测试 + 代码审查 + E2E) |
41
- | `/sillyspec:archive` | 归档变更 |
42
-
43
- ### 辅助工具
44
-
45
- | 命令 | 用途 |
46
- |---|---|
47
- | `/sillyspec:status` | 查看项目进度和状态 |
48
- | `/sillyspec:continue` | 自动判断并执行下一步 |
49
- | `/sillyspec:explore` | 自由思考模式 |
50
- | `/sillyspec:quick` | 快速任务,跳过完整流程 |
51
- | `/sillyspec:resume` | 恢复工作 |
52
- | `/sillyspec:state` | 查看当前工作状态 |
53
- | `/sillyspec:commit` | 智能提交 |
54
- | `/sillyspec:export` | 导出成功方案为可复用模板 |
55
- | `/sillyspec:scan-quick` | 快速扫描(STACK + STRUCTURE) |
56
- | `/sillyspec:workspace` | 多项目工作区管理 |
57
- | `/sillyspec:workspace-sync` | 同步工作区子项目状态 |
58
-
59
- ## CLI 命令
60
-
61
- ```bash
62
- sillyspec status [--json] 显示当前项目状态
63
- sillyspec next [--json] 显示下一步命令
64
- sillyspec check [--json] 检查文档完整性
65
- sillyspec setup 安装推荐 MCP 工具
66
- sillyspec setup --list 查看已安装 MCP 状态
67
- sillyspec init 初始化(零交互,自动检测工具)
68
- sillyspec init --tool <name> 指定工具安装
69
- sillyspec init --workspace 工作区模式
70
- sillyspec init --interactive 交互式引导
71
- ```
72
-
73
- ## MCP 增强
74
-
75
- 通过 `sillyspec setup` 安装 MCP 工具增强 AI 能力:
76
-
77
- - **Context7**查询最新库文档和 API 参考
78
- - **grep.app**搜索开源代码实现
79
- - **Chrome DevTools** — 浏览器自动化,支持 E2E 验证
80
-
81
- ## E2E 测试流程
82
-
83
- ```
84
- plan: 识别 UI 功能 → 检测测试框架/浏览器 MCP → 添加 E2E 任务
85
- execute: 编码完成后编写 E2E 测试(测试文件或 e2e-steps.md)
86
- verify: 按优先级执行(E2E框架 > 通用测试 > 浏览器MCP)→ 自动修复循环
87
- ```
1
+ ---
2
+ name: sillyspec
3
+ description: "规范驱动开发工具包。绿地用 /sillyspec:init,棕地用 /sillyspec:scan,全自动用 /sillyspec:auto。完整流程:scanbrainstormplanexecuteverifyarchive。支持 TDD、子代理并行、worktree 隔离、E2E 验证。兼容 Claude Code / Cursor / Codex / OpenCode / OpenClaw。"
4
+ ---
5
+
6
+ # SillySpec
7
+
8
+ 从"你说要啥"到"代码能跑"的规范驱动开发工具包。
9
+ Claude Code / Cursor / Codex / OpenCode / OpenClaw 通用。
10
+
11
+ ## 快速开始
12
+
13
+ | 场景 | 命令 |
14
+ |---|---|
15
+ | 全自动流程 | `/sillyspec:auto <需求描述>` |
16
+ | 全新项目(空目录) | `/sillyspec:init` |
17
+ | 已有代码的项目 | `/sillyspec:scan` |
18
+ | 多项目工作区 | `/sillyspec:workspace` |
19
+ | 自由思考 | `/sillyspec:explore` |
20
+
21
+ ## 完整工作流
22
+
23
+ ```
24
+ 绿地:init → brainstorm → plan → execute → verify → archive
25
+ 棕地:scan → brainstorm → plan → execute → verify → archive
26
+ 全自动:auto(自动推进全部阶段,支持用户确认门控)
27
+ ```
28
+
29
+ ## 核心命令
30
+
31
+ | 命令 | 用途 |
32
+ |---|---|
33
+ | `/sillyspec:auto` | 全自动推进全部流程 |
34
+ | `/sillyspec:init` | 绿地项目初始化 |
35
+ | `/sillyspec:scan` | 棕地项目扫描(生成 7 份文档) |
36
+ | `/sillyspec:brainstorm` | 需求探索 + 生成设计文档 |
37
+ | `/sillyspec:plan` | 编写实现计划(Wave 分组 + 拓扑排序) |
38
+ | `/sillyspec:execute` | TDD 执行 + 子代理并行 |
39
+ | `/sillyspec:verify` | 验证(测试 + 代码审查 + E2E) |
40
+ | `/sillyspec:archive` | 归档变更 |
41
+
42
+ ## 辅助命令
43
+
44
+ | 命令 | 用途 |
45
+ |---|---|
46
+ | `/sillyspec:status` | 查看项目进度和状态 |
47
+ | `/sillyspec:continue` | 自动判断并执行下一步 |
48
+ | `/sillyspec:explore` | 自由思考模式 |
49
+ | `/sillyspec:quick` | 快速任务,跳过完整流程 |
50
+ | `/sillyspec:resume` | 恢复工作 |
51
+ | `/sillyspec:doctor` | 项目自检 |
52
+ | `/sillyspec:commit` | 智能提交 |
53
+ | `/sillyspec:export` | 导出成功方案为可复用模板 |
54
+ | `/sillyspec:workspace` | 多项目工作区管理 |
55
+
56
+ ## CLI 命令
57
+
58
+ ```bash
59
+ sillyspec run auto 全自动推进全部流程
60
+ sillyspec run scan 执行代码扫描阶段
61
+ sillyspec run brainstorm 执行需求探索阶段
62
+ sillyspec run plan 执行实现计划阶段
63
+ sillyspec run execute 执行开发阶段(子代理并行 + worktree 隔离)
64
+ sillyspec run verify 执行验证阶段
65
+ sillyspec run archive 执行归档阶段
66
+ sillyspec run quick 快速任务
67
+ sillyspec run explore 自由探索
68
+ sillyspec progress show 显示当前项目状态
69
+ sillyspec setup 安装推荐 MCP 工具
70
+ sillyspec init 初始化(零交互,自动检测工具)
71
+ ```
72
+
73
+ ## 核心特性
74
+
75
+ - **规范驱动** 所有代码产出先有设计文档支撑,文档是 AI 的记忆
76
+ - **TDD 强制** — execute 阶段强制先写测试再写实现
77
+ - **子代理并行**同一 Wave 内任务并行执行,加快交付
78
+ - **Worktree 隔离** execute 在独立 worktree 中工作,不污染主分支
79
+ - **拓扑排序 Wave** — plan 阶段根据蓝图依赖关系自动重排 Wave 分组
80
+ - **E2E 验证** — 内置 E2E 测试流程,支持 Playwright / 浏览器 MCP
81
+ - **模块文档** — 支持模块级知识库,AI 执行时按需加载相关模块上下文
82
+ - **进度管理** — SQLite 持久化进度,断点恢复
83
+ - **MCP 增强** — 一键安装 Context7、grep.app、Chrome DevTools
84
+
85
+ ## MCP 工具
86
+
87
+ ```bash
88
+ sillyspec setup 安装全部推荐 MCP
89
+ sillyspec setup --list 查看已安装 MCP 状态
90
+ ```
package/bin/sillyspec.js CHANGED
@@ -1,2 +1,2 @@
1
- #!/usr/bin/env node
2
- import '../src/index.js';
1
+ #!/usr/bin/env node
2
+ import '../src/index.js';
@@ -0,0 +1,64 @@
1
+ ---
2
+ author: qinyi
3
+ created_at: 2026-06-19 00:45:00
4
+ ---
5
+
6
+ # Brainstorm → Plan Contract
7
+
8
+ ## 核心契约
9
+
10
+ `design.md` 是 plan 阶段的**主要设计输入**。plan 不应该在空的或缺少关键决策的 design.md 上生成任务。
11
+
12
+ ## design.md 结构要求
13
+
14
+ ### 必须包含(error — 阻断 plan)
15
+
16
+ | # | 章节 | 匹配关键词 |
17
+ |---|------|-----------|
18
+ | 1 | 目标/背景/问题描述 | 目标、goal、objective、背景、background、问题、problem、purpose、目的 |
19
+ | 2 | 范围/总体方案/设计 | 范围、scope、总体方案、方案、approach、solution、设计、design |
20
+ | 3 | 决策/方案选择 | 决策、decision、选择、choice、方案选择、D-xxx@vN(decisions.md 引用) |
21
+
22
+ ### 建议包含(warning — 不阻断 plan)
23
+
24
+ | # | 章节 | 匹配关键词 |
25
+ |---|------|-----------|
26
+ | 4 | 非目标/Non-goals | 非目标、non-goals、不做、out of scope |
27
+ | 5 | 约束/风险/Trade-off | 约束、constraint、风险、risk、trade-off |
28
+ | 6 | 文件变更清单 | 文件变更、变更清单、changed files |
29
+
30
+ ## 校验规则
31
+
32
+ plan 启动时(第一个步骤执行前)调用 `validateDesignForPlan(designContent)`:
33
+
34
+ | 结果 | 行为 |
35
+ |------|------|
36
+ | 全部通过 | 正常进入 plan |
37
+ | 有 warning | 继续执行,展示警告 |
38
+ | 有 error | fail-fast,提示修复 design.md |
39
+
40
+ ## 第一版设计原则
41
+
42
+ - **轻量 markdown 契约**:检查标题和关键词,不强 schema
43
+ - **关键词宽泛**:中英文都支持
44
+ - **decisions.md 引用也算决策**:`D-xxx@vN` 或 `decisions.md` 引用即满足决策检查
45
+ - **不做 brainstorm postcheck 阻断**:brainstorm 完成时不校验此契约(brainstorm 可以产出不完整的 design.md),只在 plan 启动时校验
46
+
47
+ ## 错误处理
48
+
49
+ | 场景 | 行为 |
50
+ |------|------|
51
+ | design.md 不存在 | 不校验(向后兼容,plan 可以独立运行) |
52
+ | design.md 空 | fail-fast |
53
+ | 缺目标/背景 | fail-fast |
54
+ | 缺范围/方案 | fail-fast |
55
+ | 缺决策 | fail-fast |
56
+ | 缺非目标/约束/文件清单 | warning,继续执行 |
57
+
58
+ ## 完整契约链
59
+
60
+ ```
61
+ brainstorm → design.md → [Plan Contract 校验] → plan → plan.md → [Execute Contract 校验] → execute
62
+ ```
63
+
64
+ 每个阶段启动前都校验上游产物,形成双重保险。