sillyspec 3.12.6 → 3.12.8

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.
@@ -21,6 +21,7 @@ $ARGUMENTS
21
21
  1. 运行 `sillyspec run auto --input "<用户需求>"`
22
22
  2. 读取 CLI 输出的 step prompt(包含你的角色描述)
23
23
  3. 执行 prompt 中的操作
24
+ 4. **记录 CLI 输出中显示的 Change 名称**(如 `Change: 2026-06-02-xxx`)
24
25
 
25
26
  ### 步骤循环
26
27
  重复以下循环直到 CLI 输出"全部流程已完成":
@@ -31,6 +32,9 @@ $ARGUMENTS
31
32
  - 纯内部操作 → **直接执行**
32
33
  3. **执行 prompt 要求的操作**
33
34
  4. **完成后运行** `sillyspec run auto --done --output "<你的摘要>"`
35
+ - ⚠️ **必须携带 --change <变更名>**,变更名来自启动时 CLI 输出的 `Change:` 字段
36
+ - 示例:`sillyspec run auto --done --change 2026-06-02-spec-bootstrap-agent-stream-interaction --output "摘要"`
37
+ - **绝不使用 `--change default`**,除非 CLI 启动时明确显示的 Change 名称就是 `default`
34
38
  5. **读取 CLI 输出的下一步 prompt**,回到步骤 1
35
39
 
36
40
  ### 阶段审核门控
@@ -69,6 +73,7 @@ $ARGUMENTS
69
73
  - 不要使用 npx
70
74
  - 不要编造不存在的 CLI 子命令
71
75
  - 遇到命令报错 → 展示错误,暂停等用户介入
76
+ - **每次调用 `sillyspec run auto --done` 都必须携带 `--change <变更名>`**,变更名 = CLI 首次输出中显示的 Change 名称。如果 CLI 首次运行没有显示 Change 名称,从 progress 或用户输入中确认变更名后再调用
72
77
 
73
78
  ### 异常处理
74
79
  - 命令执行失败 → 展示错误信息,暂停等待用户指示
package/SKILL.md CHANGED
@@ -1,46 +1,46 @@
1
1
  ---
2
2
  name: sillyspec
3
- description: "规范驱动开发工具包 v3.9。绿地项目用 /sillyspec:init,棕地项目用 /sillyspec:scan。主线:scanbrainstormplanexecuteverifyarchive。辅助:quick、explore、status、doctor、resume、continue、commit、export、workspace。"
4
- version: "3.9.1"
3
+ description: "规范驱动开发工具包。绿地用 /sillyspec:init,棕地用 /sillyspec:scan,全自动用 /sillyspec:auto。完整流程:scanbrainstormplanexecuteverifyarchive。支持 TDD、子代理并行、worktree 隔离、E2E 验证。兼容 Claude Code / Cursor / Codex / OpenCode / OpenClaw。"
4
+ version: "3.12.7"
5
5
  ---
6
6
 
7
- # SillySpec v3.9
7
+ # SillySpec
8
8
 
9
- 融合 Superpowers + OpenSpec + GSD,从"你说要啥"到"代码能跑"的完整流程。
10
- Claude Code / Cursor / Codex / OpenCode / OpenClaw 都能用。
9
+ "你说要啥"到"代码能跑"的规范驱动开发工具包。
10
+ Claude Code / Cursor / Codex / OpenCode / OpenClaw 通用。
11
11
 
12
- ## 入口选择
12
+ ## 快速开始
13
13
 
14
- | 项目类型 | 首选命令 |
14
+ | 场景 | 命令 |
15
15
  |---|---|
16
+ | 全自动流程 | `/sillyspec:auto <需求描述>` |
16
17
  | 全新项目(空目录) | `/sillyspec:init` |
17
18
  | 已有代码的项目 | `/sillyspec:scan` |
18
19
  | 多项目工作区 | `/sillyspec:workspace` |
19
- | 随时自由思考 | `/sillyspec:explore` |
20
+ | 自由思考 | `/sillyspec:explore` |
20
21
 
21
22
  ## 完整工作流
22
23
 
23
24
  ```
24
- 绿地:init → brainstorm → plan → execute → [verify] → archive
25
+ 绿地:init → brainstorm → plan → execute → verify → archive
25
26
  棕地:scan → brainstorm → plan → execute → verify → archive
26
- 工作区:workspace → (init/scan per project) → brainstorm → ...
27
+ 全自动:auto(自动推进全部阶段,支持用户确认门控)
27
28
  ```
28
29
 
29
- ## 命令
30
-
31
- ### 核心流程
30
+ ## 核心命令
32
31
 
33
32
  | 命令 | 用途 |
34
33
  |---|---|
34
+ | `/sillyspec:auto` | 全自动推进全部流程 |
35
35
  | `/sillyspec:init` | 绿地项目初始化 |
36
- | `/sillyspec:scan` | 棕地项目扫描(7 份文档) |
36
+ | `/sillyspec:scan` | 棕地项目扫描(生成 7 份文档) |
37
37
  | `/sillyspec:brainstorm` | 需求探索 + 生成设计文档 |
38
- | `/sillyspec:plan` | 编写实现计划(Wave 分组) |
38
+ | `/sillyspec:plan` | 编写实现计划(Wave 分组 + 拓扑排序) |
39
39
  | `/sillyspec:execute` | TDD 执行 + 子代理并行 |
40
40
  | `/sillyspec:verify` | 验证(测试 + 代码审查 + E2E) |
41
41
  | `/sillyspec:archive` | 归档变更 |
42
42
 
43
- ### 辅助工具
43
+ ## 辅助命令
44
44
 
45
45
  | 命令 | 用途 |
46
46
  |---|---|
@@ -49,44 +49,43 @@ Claude Code / Cursor / Codex / OpenCode / OpenClaw 都能用。
49
49
  | `/sillyspec:explore` | 自由思考模式 |
50
50
  | `/sillyspec:quick` | 快速任务,跳过完整流程 |
51
51
  | `/sillyspec:resume` | 恢复工作 |
52
- | `/sillyspec:state` | 查看当前工作状态 |
52
+ | `/sillyspec:doctor` | 项目自检 |
53
53
  | `/sillyspec:commit` | 智能提交 |
54
54
  | `/sillyspec:export` | 导出成功方案为可复用模板 |
55
- | `/sillyspec:doctor` | 项目自检 |
56
55
  | `/sillyspec:workspace` | 多项目工作区管理 |
57
56
 
58
57
  ## CLI 命令
59
58
 
60
59
  ```bash
61
- sillyspec run scan 执行代码扫描阶段
62
- sillyspec run brainstorm 执行需求探索阶段
63
- sillyspec run plan 执行实现计划阶段
64
- sillyspec run execute 执行开发阶段
65
- sillyspec run verify 执行验证阶段
66
- sillyspec run archive 执行归档阶段
67
- sillyspec run quick 快速任务
68
- sillyspec run explore 自由探索
69
- sillyspec progress show 显示当前项目状态
70
- sillyspec setup 安装推荐 MCP 工具
71
- sillyspec setup --list 查看已安装 MCP 状态
72
- sillyspec init 初始化(零交互,自动检测工具)
73
- sillyspec init --tool <name> 指定工具安装
74
- sillyspec init --workspace 工作区模式
75
- sillyspec init --interactive 交互式引导
60
+ sillyspec run auto 全自动推进全部流程
61
+ sillyspec run scan 执行代码扫描阶段
62
+ sillyspec run brainstorm 执行需求探索阶段
63
+ sillyspec run plan 执行实现计划阶段
64
+ sillyspec run execute 执行开发阶段(子代理并行 + worktree 隔离)
65
+ sillyspec run verify 执行验证阶段
66
+ sillyspec run archive 执行归档阶段
67
+ sillyspec run quick 快速任务
68
+ sillyspec run explore 自由探索
69
+ sillyspec progress show 显示当前项目状态
70
+ sillyspec setup 安装推荐 MCP 工具
71
+ sillyspec init 初始化(零交互,自动检测工具)
76
72
  ```
77
73
 
78
- ## MCP 增强
74
+ ## 核心特性
79
75
 
80
- 通过 `sillyspec setup` 安装 MCP 工具增强 AI 能力:
76
+ - **规范驱动** 所有代码产出先有设计文档支撑,文档是 AI 的记忆
77
+ - **TDD 强制** — execute 阶段强制先写测试再写实现
78
+ - **子代理并行** — 同一 Wave 内任务并行执行,加快交付
79
+ - **Worktree 隔离** — execute 在独立 worktree 中工作,不污染主分支
80
+ - **拓扑排序 Wave** — plan 阶段根据蓝图依赖关系自动重排 Wave 分组
81
+ - **E2E 验证** — 内置 E2E 测试流程,支持 Playwright / 浏览器 MCP
82
+ - **模块文档** — 支持模块级知识库,AI 执行时按需加载相关模块上下文
83
+ - **进度管理** — SQLite 持久化进度,断点恢复
84
+ - **MCP 增强** — 一键安装 Context7、grep.app、Chrome DevTools
81
85
 
82
- - **Context7** — 查询最新库文档和 API 参考
83
- - **grep.app** — 搜索开源代码实现
84
- - **Chrome DevTools** — 浏览器自动化,支持 E2E 验证
86
+ ## MCP 工具
85
87
 
86
- ## E2E 测试流程
87
-
88
- ```
89
- plan: 识别 UI 功能 → 检测测试框架/浏览器 MCP → 添加 E2E 任务
90
- execute: 编码完成后编写 E2E 测试(测试文件或 e2e-steps.md)
91
- verify: 按优先级执行(E2E框架 > 通用测试 > 浏览器MCP)→ 自动修复循环
88
+ ```bash
89
+ sillyspec setup 安装全部推荐 MCP
90
+ sillyspec setup --list 查看已安装 MCP 状态
92
91
  ```
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "sillyspec",
3
- "version": "3.12.6",
3
+ "version": "3.12.8",
4
4
  "description": "SillySpec CLI — 流程状态机,让 AI 严格按步骤来",
5
5
  "icon": "logo.jpg",
6
6
  "homepage": "https://sillyspec.ppdmq.top/",
@@ -275,6 +275,14 @@ design.md 文件路径 + 自审结果
275
275
  - **tasks.md**:任务列表(只列名称和对应文件路径,细节在 plan 阶段展开)
276
276
  - \`git add .sillyspec/\` — 暂存规范文件(不要 commit)
277
277
 
278
+ 所有规范文件头部必须包含 YAML frontmatter:
279
+ \`\`\`\`yaml
280
+ ---
281
+ author: <git-user>
282
+ created_at: <now-datetime>
283
+ ---
284
+ \`\`\`\`
285
+
278
286
  ### proposal.md 格式要求
279
287
  \`\`\`markdown
280
288
  # Proposal
@@ -332,6 +340,7 @@ Then 期望结果
332
340
  - \`requirements.md\`:从 MASTER.md 中提取该包的需求范围(标记为「待完善」)
333
341
  - \`tasks.md\`:创建空任务列表,标记为「待 plan 阶段展开」
334
342
  4. \`git add .sillyspec/\` — 暂存所有新增文件(不要 commit)
343
+ 5. 后续变更包的骨架文件同样必须包含 \`author: <git-user>\` 和 \`created_at: <now-datetime>\`
335
344
 
336
345
  ### 输出
337
346
  所有规范文件路径(含后续变更包目录列表)
@@ -338,7 +338,7 @@ ${taskSummary}
338
338
  ${taskList}
339
339
 
340
340
  ### 调度要求
341
- 1. 同一 Wave 内任务可并行启动子代理
341
+ 1. **同一 Wave 内的任务必须并行启动子代理,禁止串行等待。** Wave 的定义就是"无依赖、可并行",不要自行分析依赖关系。如果有依赖应该在 plan.md 的不同 Wave 中。
342
342
  2. **Reverse Sync**:子代理报告实现与 design.md 不一致时,先检查是代码错了还是文档有遗漏
343
343
  3. **不要频繁编译!** 编译很慢,只在以下情况运行:
344
344
  - 写了大量代码后需要验证语法正确性
@@ -165,6 +165,32 @@ plan.md 总览内容`,
165
165
 
166
166
  // 固定后缀步骤
167
167
  export const fixedSuffix = [
168
+ {
169
+ name: '重排 Wave(基于 depends_on)',
170
+ prompt: `根据蓝图的 depends_on 字段重排 Wave 分组,更新 plan.md。
171
+
172
+ ### 操作
173
+ 1. 读取所有 tasks/task-NN.md 的 frontmatter,提取每个任务的 depends_on 列表
174
+ 2. 拓扑排序:无依赖的任务 → Wave 1,依赖 Wave 1 的 → Wave 2,依此类推
175
+ 3. 检查是否存在循环依赖,如有则报错暂停
176
+ 4. 用重排结果更新 plan.md:
177
+ - Wave 分组(含 checkbox 列表)
178
+ - 任务总表的 Wave 列
179
+ - 依赖关系图(Mermaid)
180
+ - 关键路径
181
+ 5. 如果 Wave 分组与原始 plan.md 一致,只需确认一致即可,不需要重写
182
+
183
+ ### 规则
184
+ - **Wave 是执行单元,同 Wave 内任务必须无依赖(可并行)**
185
+ - 有 depends_on 关系的任务必须在不同的 Wave
186
+ - depends_on 为空的任务放 Wave 1
187
+ - 取决于拓扑排序的最大深度决定 Wave 编号
188
+
189
+ ### 输出
190
+ 重排后的 Wave 分组摘要(如果与原 plan.md 一致则说明一致)`,
191
+ outputHint: 'Wave 重排结果',
192
+ optional: false
193
+ },
168
194
  {
169
195
  name: '审查一致性',
170
196
  prompt: `审查所有 task-N.md 的一致性。
@@ -213,6 +239,9 @@ function buildTaskPrompt(taskNum, taskName, changeDir) {
213
239
  const num = String(taskNum).padStart(2, '0')
214
240
  return `编写任务蓝图 tasks/task-${num}.md
215
241
 
242
+ 当前时间:<now-datetime>(frontmatter 的 created_at 使用此值)
243
+ 当前用户:<git-user>(frontmatter 的 author 使用此值)
244
+
216
245
  ### 任务
217
246
  ${taskName}
218
247
 
@@ -313,6 +342,8 @@ export function buildCoordinatorStep(changeDir, taskNames) {
313
342
  任务编号:task-${num}
314
343
  任务名称:${name}
315
344
  文件路径:${changeDir}/tasks/task-${num}.md
345
+ 当前时间:<now-datetime>(frontmatter 的 created_at 使用此值)
346
+ 当前用户:<git-user>(frontmatter 的 author 使用此值)
316
347
 
317
348
  操作:
318
349
  1. 读取 ${changeDir}/design.md 和 ${changeDir}/plan.md 了解上下文
@@ -383,6 +414,10 @@ allowed_paths:
383
414
  ## 任务清单
384
415
  ${taskList}
385
416
 
417
+ ## 时间和用户
418
+ 当前时间:<now-datetime>
419
+ 当前用户:<git-user>
420
+
386
421
  ## 执行方式(必须严格遵守)
387
422
 
388
423
  **你必须使用 Agent tool 启动子代理来写每个蓝图,不要自己写。**