sillyspec 3.20.2 → 3.20.3
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/.claude/skills/sillyspec-archive/SKILL.md +1 -5
- package/.claude/skills/sillyspec-auto/SKILL.md +2 -8
- package/.claude/skills/sillyspec-brainstorm/SKILL.md +1 -28
- package/.claude/skills/sillyspec-commit/SKILL.md +3 -4
- package/.claude/skills/sillyspec-continue/SKILL.md +4 -5
- package/.claude/skills/sillyspec-doctor/SKILL.md +3 -12
- package/.claude/skills/sillyspec-execute/SKILL.md +2 -15
- package/.claude/skills/sillyspec-explore/SKILL.md +1 -14
- package/.claude/skills/sillyspec-plan/SKILL.md +36 -5
- package/.claude/skills/sillyspec-propose/SKILL.md +0 -4
- package/.claude/skills/sillyspec-quick/SKILL.md +1 -5
- package/.claude/skills/sillyspec-resume/SKILL.md +66 -23
- package/.claude/skills/sillyspec-scan/SKILL.md +1 -5
- package/.claude/skills/sillyspec-state/SKILL.md +8 -8
- package/.claude/skills/sillyspec-status/SKILL.md +1 -5
- package/.claude/skills/sillyspec-verify/SKILL.md +1 -5
- package/.claude/skills/sillyspec-workspace/SKILL.md +3 -11
- package/.sillyspec/changes/archive/2026-04-08-derive-state/design.md +97 -0
- package/.sillyspec/changes/archive/2026-04-08-derive-state/plan.md +51 -0
- package/.sillyspec/changes/archive/2026-04-08-derive-state/proposal.md +29 -0
- package/.sillyspec/changes/archive/2026-04-08-derive-state/requirements.md +34 -0
- package/.sillyspec/changes/archive/2026-04-08-derive-state/tasks.md +13 -0
- package/.sillyspec/changes/archive/2026-04-08-derive-state/verify-result.md +43 -0
- package/.sillyspec/changes/auto-mode/design.md +50 -0
- package/.sillyspec/changes/auto-mode/proposal.md +19 -0
- package/.sillyspec/changes/auto-mode/requirements.md +21 -0
- package/.sillyspec/changes/auto-mode/tasks.md +7 -0
- package/.sillyspec/changes/brainstorm-archive/2026-04-05-dashboard-design.md +206 -0
- package/.sillyspec/changes/brainstorm-archive/2026-04-05-unified-docs-design.md +199 -0
- package/.sillyspec/changes/dashboard/design.md +219 -0
- package/.sillyspec/changes/dashboard/design.md.braindraft +206 -0
- package/.sillyspec/changes/run-command-design/design.md +1230 -0
- package/.sillyspec/changes/unified-docs-design/design.md +199 -0
- package/.sillyspec/docs/sillyspec/scan/.gitkeep +0 -0
- package/.sillyspec/knowledge/INDEX.md +8 -0
- package/.sillyspec/knowledge/uncategorized.md +3 -0
- package/.sillyspec/plans/2026-04-05-dashboard.md +737 -0
- package/.sillyspec/projects/sillyspec.yaml +3 -0
- package/README.md +11 -13
- package/SKILL.md +40 -44
- package/dist/steps/brainstorm/01-load-context.md +30 -0
- package/dist/steps/brainstorm/02-reuse-check.md +6 -0
- package/dist/steps/brainstorm/03-prototype-analysis.md +11 -0
- package/dist/steps/brainstorm/04-module-split.md +23 -0
- package/dist/steps/brainstorm/05-dialog-explore.md +8 -0
- package/dist/steps/brainstorm/06-propose-approaches.md +3 -0
- package/dist/steps/brainstorm/07-present-design.md +3 -0
- package/dist/steps/brainstorm/08-write-design.md +21 -0
- package/dist/steps/brainstorm/09-self-review.md +15 -0
- package/dist/steps/brainstorm/10-user-confirm.md +3 -0
- package/dist/steps/brainstorm/11-output-spec.md +7 -0
- package/dist/steps/brainstorm/manifest.yaml +26 -0
- package/dist/steps/execute/01-load-context.md +41 -0
- package/dist/steps/execute/02-scan-conventions.md +47 -0
- package/dist/steps/execute/03-skill-mcp.md +19 -0
- package/dist/steps/execute/04-assign-task.md +22 -0
- package/dist/steps/execute/04b-prompt-template.md +54 -0
- package/dist/steps/execute/05-write-test.md +7 -0
- package/dist/steps/execute/06-write-code.md +8 -0
- package/dist/steps/execute/07-run-test.md +26 -0
- package/dist/steps/execute/08-fix-issues.md +28 -0
- package/dist/steps/execute/09-next-task.md +33 -0
- package/dist/steps/execute/manifest.yaml +28 -0
- package/dist/steps/plan/01-load-context.md +22 -0
- package/dist/steps/plan/02-anchor-confirm.md +1 -0
- package/dist/steps/plan/03-expand-tasks.md +33 -0
- package/dist/steps/plan/04-mark-order.md +15 -0
- package/dist/steps/plan/05-e2e-planning.md +17 -0
- package/dist/steps/plan/06-self-check.md +16 -0
- package/dist/steps/plan/07-save.md +1 -0
- package/dist/steps/plan/manifest.yaml +18 -0
- package/dist/steps/scan/01-env-detect.md +51 -0
- package/dist/steps/scan/02-tech-stack.md +16 -0
- package/dist/steps/scan/03-conventions.md +16 -0
- package/dist/steps/scan/04-structure.md +19 -0
- package/dist/steps/scan/05-quality.md +18 -0
- package/dist/steps/scan/06-complete.md +49 -0
- package/dist/steps/scan/manifest.yaml +16 -0
- package/dist/steps/verify/01-load-specs.md +28 -0
- package/dist/steps/verify/02-check-tasks.md +1 -0
- package/dist/steps/verify/03-check-design.md +6 -0
- package/dist/steps/verify/04-run-tests.md +7 -0
- package/dist/steps/verify/05-e2e-tests.md +27 -0
- package/dist/steps/verify/05b-e2e-fix.md +33 -0
- package/dist/steps/verify/06-code-quality.md +25 -0
- package/dist/steps/verify/07-lint-check.md +27 -0
- package/dist/steps/verify/08-output-report.md +14 -0
- package/dist/steps/verify/manifest.yaml +22 -0
- package/package.json +1 -7
- package/packages/dashboard/dist/assets/{index-Bq_Z2hne.js → index-D1EVTLmc.js} +1264 -1264
- package/packages/dashboard/dist/assets/index-DGe8CqeP.css +1 -0
- package/packages/dashboard/dist/index.html +2 -2
- package/packages/dashboard/package-lock.json +6 -6
- package/packages/dashboard/server/executor.js +1 -1
- package/packages/dashboard/server/index.js +18 -98
- package/packages/dashboard/server/parser.js +71 -139
- package/packages/dashboard/server/watcher.js +6 -14
- package/packages/dashboard/src/App.vue +185 -418
- package/packages/dashboard/src/components/ActionBar.vue +1 -10
- package/packages/dashboard/src/components/CommandPalette.vue +1 -5
- package/packages/dashboard/src/components/DocPreview.vue +8 -105
- package/packages/dashboard/src/components/DocTree.vue +19 -75
- package/packages/dashboard/src/components/PipelineStage.vue +2 -22
- package/packages/dashboard/src/components/PipelineView.vue +5 -32
- package/packages/dashboard/src/components/ProjectOverview.vue +139 -113
- package/packages/dashboard/src/components/StageBadge.vue +3 -17
- package/packages/dashboard/src/components/StepCard.vue +2 -7
- package/packages/dashboard/src/composables/useDashboard.js +0 -28
- package/src/derive.js +147 -0
- package/src/index.js +40 -688
- package/src/init.js +63 -119
- package/src/migrate.js +7 -7
- package/src/progress.js +248 -1474
- package/src/run.js +302 -3008
- package/src/setup.js +64 -2
- package/src/stages/archive.js +17 -123
- package/src/stages/brainstorm.js +48 -454
- package/src/stages/doctor.js +46 -99
- package/src/stages/execute.js +59 -420
- package/src/stages/index.js +18 -12
- package/src/stages/plan.js +189 -492
- package/src/stages/propose.js +11 -70
- package/src/stages/quick.js +13 -52
- package/src/stages/scan.js +68 -485
- package/src/stages/status.js +1 -1
- package/src/stages/verify.js +16 -203
- package/src/step.js +543 -0
- package/.claude/skills/sillyspec-knowledge/SKILL.md +0 -270
- package/.husky/pre-push +0 -13
- package/CLAUDE.md +0 -18
- package/docs/brainstorm-plan-contract.md +0 -64
- package/docs/plan-execute-contract.md +0 -123
- package/docs/platform-scan-protocol.md +0 -298
- package/docs/revision-mode.md +0 -115
- package/docs/sillyspec/file-lifecycle/known-implementation-gaps.md +0 -99
- package/docs/sillyspec/file-lifecycle/platform-workflows-sync.md +0 -218
- package/docs/sillyspec/file-lifecycle/stage-artifacts.md +0 -167
- package/docs/sillyspec/file-lifecycle/storage-and-state.md +0 -148
- package/docs/sillyspec/file-lifecycle/worktree-and-guard.md +0 -193
- package/docs/sillyspec/file-lifecycle.md +0 -125
- package/docs/workflow-contract-regression.md +0 -106
- package/docs/worktree-isolation.md +0 -252
- package/packages/dashboard/dist/assets/index-O2W5RV4z.css +0 -1
- package/packages/dashboard/dist/prototype-dashboard.html +0 -836
- package/packages/dashboard/dist/prototype-overview.html +0 -256
- package/packages/dashboard/public/prototype-dashboard.html +0 -836
- package/packages/dashboard/public/prototype-overview.html +0 -256
- package/packages/dashboard/src/components/HResizeHandle.vue +0 -48
- package/packages/dashboard/src/components/ProjectCard.vue +0 -187
- package/packages/dashboard/src/components/VResizeHandle.vue +0 -61
- package/packages/dashboard/src/composables/useLayout.js +0 -131
- package/src/brainstorm-postcheck.js +0 -158
- package/src/change-list.js +0 -52
- package/src/change-risk-profile.js +0 -352
- package/src/classify-change.js +0 -73
- package/src/constants.js +0 -70
- package/src/contract-matrix.js +0 -278
- package/src/db.js +0 -201
- package/src/endpoint-extractor.js +0 -315
- package/src/hooks/claude-pre-tool-use.cjs +0 -125
- package/src/hooks/worktree-guard.js +0 -761
- package/src/knowledge-match.js +0 -130
- package/src/modules.js +0 -482
- package/src/scan-postcheck.js +0 -383
- package/src/stage-contract.js +0 -700
- package/src/stages/brainstorm-auto.js +0 -229
- package/src/stages/explore.js +0 -34
- package/src/stages/knowledge.js +0 -498
- package/src/stages/plan-postcheck.js +0 -513
- package/src/sync.js +0 -497
- package/src/task-review.js +0 -346
- package/src/workflow.js +0 -785
- package/src/worktree-apply.js +0 -549
- package/src/worktree.js +0 -932
- package/templates/workflows/archive-impact.yaml +0 -79
- package/templates/workflows/scan-docs.yaml +0 -132
- package/test/brainstorm-plan-contract.test.mjs +0 -273
- package/test/check-syntax.mjs +0 -26
- package/test/cli-top-level-aliases.test.mjs +0 -174
- package/test/contract-artifacts.test.mjs +0 -323
- package/test/decision-supersede.test.mjs +0 -277
- package/test/knowledge-match.test.mjs +0 -231
- package/test/plan-execute-contract.test.mjs +0 -330
- package/test/plan-optimization.test.mjs +0 -572
- package/test/platform-artifacts.test.mjs +0 -190
- package/test/platform-failure-samples.test.mjs +0 -199
- package/test/platform-recovery-chain.test.mjs +0 -179
- package/test/platform-recovery.test.mjs +0 -167
- package/test/platform-scan-p0.test.mjs +0 -175
- package/test/revision-v1.test.mjs +0 -1145
- package/test/run-sanitize-project-name.test.mjs +0 -51
- package/test/run-scan-postcheck-fail.test.mjs +0 -64
- package/test/run-scan-project-parse.test.mjs +0 -200
- package/test/run-tests.mjs +0 -48
- package/test/scan-docs-yaml-placeholders.test.mjs +0 -84
- package/test/scan-knowledge.test.mjs +0 -175
- package/test/scan-paths.test.mjs +0 -68
- package/test/scan-postcheck-project-priority.test.mjs +0 -85
- package/test/scan-postcheck.test.mjs +0 -197
- package/test/scan-workflow-anyfailed-block.test.mjs +0 -52
- package/test/spec-dir.test.mjs +0 -206
- package/test/stage-contract-failed-post-check.test.mjs +0 -102
- package/test/stage-contract.test.mjs +0 -299
- package/test/stage-definitions.test.mjs +0 -39
- package/test/wait-gates.test.mjs +0 -501
- package/test/workflow-spec-base.test.mjs +0 -142
- package/test/worktree-guard.test.mjs +0 -136
- package/test/worktree-native-overlay.test.mjs +0 -188
|
@@ -1,12 +1,8 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: sillyspec:archive
|
|
3
|
-
description:
|
|
3
|
+
description: 归档变更 — 规范沉淀,可追溯
|
|
4
4
|
---
|
|
5
5
|
|
|
6
|
-
## 多变更说明
|
|
7
|
-
|
|
8
|
-
如果项目有多个活跃变更(`.sillyspec/changes/` 下有多个目录),所有 `sillyspec run` 命令需要加 `--change <变更名>`。只有一个变更时可省略(CLI 自动检测)。
|
|
9
|
-
|
|
10
6
|
## 执行
|
|
11
7
|
|
|
12
8
|
**你必须使用 exec 工具(shell)执行以下命令,不要自己编造流程:**
|
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
---
|
|
2
|
-
name: sillyspec:auto
|
|
3
2
|
description: 自动模式 — 全流程自动推进(通用版)
|
|
4
3
|
argument-hint: "<需求描述>"
|
|
5
4
|
---
|
|
@@ -21,7 +20,6 @@ $ARGUMENTS
|
|
|
21
20
|
1. 运行 `sillyspec run auto --input "<用户需求>"`
|
|
22
21
|
2. 读取 CLI 输出的 step prompt(包含你的角色描述)
|
|
23
22
|
3. 执行 prompt 中的操作
|
|
24
|
-
4. **记录 CLI 输出中显示的 Change 名称**(如 `Change: 2026-06-02-xxx`)
|
|
25
23
|
|
|
26
24
|
### 步骤循环
|
|
27
25
|
重复以下循环直到 CLI 输出"全部流程已完成":
|
|
@@ -32,15 +30,12 @@ $ARGUMENTS
|
|
|
32
30
|
- 纯内部操作 → **直接执行**
|
|
33
31
|
3. **执行 prompt 要求的操作**
|
|
34
32
|
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`
|
|
38
33
|
5. **读取 CLI 输出的下一步 prompt**,回到步骤 1
|
|
39
34
|
|
|
40
35
|
### 阶段审核门控
|
|
41
36
|
|
|
42
37
|
**brainstorm 完成后:**
|
|
43
|
-
|
|
38
|
+
评估需求复杂度(参考 brainstorm Step 5 的判断结果),根据复杂度决定:
|
|
44
39
|
|
|
45
40
|
| 复杂度 | 审核策略 |
|
|
46
41
|
|--------|---------|
|
|
@@ -68,12 +63,11 @@ $ARGUMENTS
|
|
|
68
63
|
|
|
69
64
|
### 关键规则
|
|
70
65
|
- 不要跳过任何步骤
|
|
71
|
-
-
|
|
66
|
+
- 不要手动修改 progress.json
|
|
72
67
|
- 不要自动 commit,只 git add
|
|
73
68
|
- 不要使用 npx
|
|
74
69
|
- 不要编造不存在的 CLI 子命令
|
|
75
70
|
- 遇到命令报错 → 展示错误,暂停等用户介入
|
|
76
|
-
- **每次调用 `sillyspec run auto --done` 都必须携带 `--change <变更名>`**,变更名 = CLI 首次输出中显示的 Change 名称。如果 CLI 首次运行没有显示 Change 名称,从 progress 或用户输入中确认变更名后再调用
|
|
77
71
|
|
|
78
72
|
### 异常处理
|
|
79
73
|
- 命令执行失败 → 展示错误信息,暂停等待用户指示
|
|
@@ -1,12 +1,8 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: sillyspec:brainstorm
|
|
3
|
-
description:
|
|
3
|
+
description: 需求探索 — 结构化头脑风暴,含技术方案输出(创建性工作前必用)
|
|
4
4
|
---
|
|
5
5
|
|
|
6
|
-
## 多变更说明
|
|
7
|
-
|
|
8
|
-
如果项目有多个活跃变更(`.sillyspec/changes/` 下有多个目录),所有 `sillyspec run` 命令需要加 `--change <变更名>`。只有一个变更时可省略(CLI 自动检测)。
|
|
9
|
-
|
|
10
6
|
## 执行
|
|
11
7
|
|
|
12
8
|
**你必须使用 exec 工具(shell)执行以下命令,不要自己编造流程:**
|
|
@@ -17,28 +13,5 @@ description: 用于正式开始开发前的需求澄清和技术方案设计。
|
|
|
17
13
|
4. 重复 2-3 直到阶段完成
|
|
18
14
|
5. **禁止**在没有运行 CLI 的情况下自行决定流程
|
|
19
15
|
|
|
20
|
-
## 特殊步骤:requiresWait
|
|
21
|
-
|
|
22
|
-
某些步骤(如"对话式探索")需要等待用户输入。AI agent 可以:
|
|
23
|
-
|
|
24
|
-
- **方式一(推荐)**:通过自己的对话工具与用户交互,完成后直接 `--done --answer "用户回答"` 一步完成
|
|
25
|
-
- **方式二**:先 `--wait` 记录等待状态,再 `--continue --answer "用户回答"`,最后 `--done`
|
|
26
|
-
|
|
27
|
-
```bash
|
|
28
|
-
# 一步完成 wait + done(AI agent 已自行与用户交互)
|
|
29
|
-
sillyspec run brainstorm --done --change <变更名> --answer "信息够了,进入方案讨论" --output "需求已澄清"
|
|
30
|
-
|
|
31
|
-
# 分步完成
|
|
32
|
-
sillyspec run brainstorm --wait --change <变更名> --reason "等待用户回答" --output "探索问题"
|
|
33
|
-
sillyspec run brainstorm --continue --answer "用户回答" --change <变更名>
|
|
34
|
-
sillyspec run brainstorm --done --change <变更名> --output "需求已澄清"
|
|
35
|
-
```
|
|
36
|
-
|
|
37
|
-
## 注意
|
|
38
|
-
- 推荐指定 `--change <变更名>`(格式:`YYYY-MM-DD-<简短描述>`),不指定时自动生成
|
|
39
|
-
- 步骤 prompt 由 CLI 管理,不需要手动读取
|
|
40
|
-
- 依赖 scan 阶段完成,CLI 会自动提醒
|
|
41
|
-
- brainstorm 完成后,运行 `sillyspec run plan --change <变更名>` 进入实现计划
|
|
42
|
-
|
|
43
16
|
## 用户指令
|
|
44
17
|
$ARGUMENTS
|
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
---
|
|
2
|
-
name: sillyspec:commit
|
|
3
2
|
description: 智能提交 — 自动收集变更信息,生成 commit message
|
|
4
3
|
argument-hint: "[可选:自定义 commit message]"
|
|
5
4
|
version: "3.7.32"
|
|
@@ -50,7 +49,7 @@ cat "$LATEST/tasks.md" 2>/dev/null
|
|
|
50
49
|
|
|
51
50
|
来源 C — 阶段产出(scan/brainstorm/plan/archive 等):
|
|
52
51
|
检查 .sillyspec/ 下新增或修改的文件,根据路径识别来源阶段:
|
|
53
|
-
-
|
|
52
|
+
- docs/<project>/scan/*.md → scan 产出
|
|
54
53
|
- changes/<name>/design.md → brainstorm 产出
|
|
55
54
|
- changes/<name>/proposal.md → brainstorm 产出
|
|
56
55
|
- changes/<name>/tasks.md → plan 产出
|
|
@@ -70,7 +69,7 @@ cat "$LATEST/tasks.md" 2>/dev/null
|
|
|
70
69
|
| 混合来源 | 取最主要的 type | body 里列出所有条目 |
|
|
71
70
|
| 无匹配来源 | — | 展示 diff stat,让用户自己写 |
|
|
72
71
|
|
|
73
|
-
**如果 $ARGUMENTS 非空**,直接使用用户指定的 message
|
|
72
|
+
**如果 $ARGUMENTS 非空**,直接使用用户指定的 message,跳过自动生成。
|
|
74
73
|
|
|
75
74
|
多条 quick 合并规则:
|
|
76
75
|
- 2 条以内 → 逐条列出
|
|
@@ -103,4 +102,4 @@ git commit -m "{确认后的 message}"
|
|
|
103
102
|
## 绝对规则
|
|
104
103
|
- ❌ 不要自动提交,必须展示 message 让用户确认
|
|
105
104
|
- ❌ 不要丢弃用户的修改
|
|
106
|
-
- ✅ $ARGUMENTS
|
|
105
|
+
- ✅ $ARGUMENTS 非空时可跳过确认直接提交
|
|
@@ -18,15 +18,14 @@ description: 自动判断并执行下一步
|
|
|
18
18
|
2a. 没有任何文件 → 提示检查 proposal 是否需要完善
|
|
19
19
|
2b. 没有 design.md → 提示补充 design
|
|
20
20
|
2c. 没有 tasks.md → 执行 /sillyspec:propose(补全规范)
|
|
21
|
-
2d.
|
|
22
|
-
2e. tasks.md
|
|
23
|
-
2f.
|
|
24
|
-
2g. 已验证通过 → 执行 /sillyspec:archive
|
|
21
|
+
2d. tasks.md 有未完成项 + 有计划文件 → 执行 /sillyspec:execute
|
|
22
|
+
2e. tasks.md 全完成 + 没验证 → 执行 /sillyspec:verify
|
|
23
|
+
2f. 已验证通过 → 执行 /sillyspec:archive
|
|
25
24
|
|
|
26
25
|
3. 有设计文档但没有对应变更?
|
|
27
26
|
→ 提示运行 /sillyspec:propose <name>
|
|
28
27
|
|
|
29
|
-
4. 有
|
|
28
|
+
4. 有 docs/*/scan/ 但没有进行中的工作?
|
|
30
29
|
→ 提示运行 /sillyspec:brainstorm "你的想法"
|
|
31
30
|
|
|
32
31
|
5. 什么都没有?
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: sillyspec:doctor
|
|
3
|
-
description:
|
|
3
|
+
description: 项目自检 — 检查 CLI、配置、构建环境和外部依赖
|
|
4
4
|
---
|
|
5
5
|
|
|
6
6
|
## 前置检查
|
|
@@ -13,19 +13,10 @@ description: 用于 SillySpec 自检和状态修复。适合用户说"检查下
|
|
|
13
13
|
- 给出安装命令:`npm install -g sillyspec`
|
|
14
14
|
- 停止,不要继续后续步骤
|
|
15
15
|
|
|
16
|
-
## 多变更说明
|
|
17
|
-
|
|
18
|
-
如果项目有多个活跃变更(`.sillyspec/changes/` 下有多个目录),所有 `sillyspec run` 命令需要加 `--change <变更名>`。只有一个变更时可省略(CLI 自动检测)。
|
|
19
|
-
|
|
20
16
|
## 执行
|
|
21
17
|
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
1. 运行 `sillyspec run doctor` — 读取输出的步骤 prompt
|
|
25
|
-
2. 按照输出的 prompt **严格执行**,不要跳过或自行添加步骤
|
|
26
|
-
3. 步骤完成后,运行 `sillyspec run doctor --done --output "你的摘要"`
|
|
27
|
-
4. 重复 2-3 直到阶段完成
|
|
28
|
-
5. **禁止**在没有运行 CLI 的情况下自行决定流程
|
|
18
|
+
CLI 可用后,运行 `sillyspec run doctor`,按提示逐步执行。
|
|
19
|
+
每步完成后运行 `sillyspec run doctor --done --output "摘要"`。
|
|
29
20
|
|
|
30
21
|
## 用户指令
|
|
31
22
|
$ARGUMENTS
|
|
@@ -1,30 +1,17 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: sillyspec:execute
|
|
3
|
-
description:
|
|
3
|
+
description: 波次执行 — 子代理并行 + 强制 TDD + 两阶段审查
|
|
4
4
|
---
|
|
5
5
|
|
|
6
|
-
## 多变更说明
|
|
7
|
-
|
|
8
|
-
如果项目有多个活跃变更(`.sillyspec/changes/` 下有多个目录),所有 `sillyspec run` 命令需要加 `--change <变更名>`。只有一个变更时可省略(CLI 自动检测)。
|
|
9
|
-
|
|
10
6
|
## 执行
|
|
11
7
|
|
|
12
8
|
**你必须使用 exec 工具(shell)执行以下命令,不要自己编造流程:**
|
|
13
9
|
|
|
14
|
-
1. 运行 `sillyspec run execute` —
|
|
10
|
+
1. 运行 `sillyspec run execute` — 读取输出的步骤 prompt
|
|
15
11
|
2. 按照输出的 prompt **严格执行**,不要跳过或自行添加步骤
|
|
16
12
|
3. 步骤完成后,运行 `sillyspec run execute --done --output "你的摘要"`
|
|
17
13
|
4. 重复 2-3 直到阶段完成
|
|
18
14
|
5. **禁止**在没有运行 CLI 的情况下自行决定流程
|
|
19
15
|
|
|
20
|
-
## Worktree 隔离
|
|
21
|
-
|
|
22
|
-
- CLI 启动 execute 阶段时**自动创建 git worktree**,AI agent 不需要手动创建
|
|
23
|
-
- Worktree 路径在 Step 3(确认 worktree 路径)中输出,后续子代理的 cwd 必须设为该路径
|
|
24
|
-
- **禁止跳过 worktree 或在主仓库直接写代码**
|
|
25
|
-
- 如果 worktree 创建失败,CLI 会报错并退出,需要排查后再重试
|
|
26
|
-
- **未提交的文件、dirty 状态等不影响 worktree 创建和进入,直接按 CLI 输出的 worktree 路径操作即可**
|
|
27
|
-
- 不要自行检查 git 状态来判断是否可以进入 worktree,CLI 会自动处理
|
|
28
|
-
|
|
29
16
|
## 用户指令
|
|
30
17
|
$ARGUMENTS
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: sillyspec:explore
|
|
3
|
-
description:
|
|
3
|
+
description: 自由思考模式 — 讨论、画图、调研,不写代码
|
|
4
4
|
---
|
|
5
5
|
|
|
6
6
|
## 交互规范
|
|
@@ -17,19 +17,6 @@ description: 用于自由讨论、代码库调研、方案比较、画 ASCII 图
|
|
|
17
17
|
## 话题
|
|
18
18
|
$ARGUMENTS
|
|
19
19
|
|
|
20
|
-
## 多变更说明
|
|
21
|
-
|
|
22
|
-
如果项目有多个活跃变更(`.sillyspec/changes/` 下有多个目录),所有 `sillyspec run` 命令需要加 `--change <变更名>`。只有一个变更时可省略(CLI 自动检测)。
|
|
23
|
-
|
|
24
|
-
## 执行
|
|
25
|
-
|
|
26
|
-
**你必须先使用 exec 工具(shell)执行以下命令读取统一 CLI prompt:**
|
|
27
|
-
|
|
28
|
-
1. 运行 `sillyspec run explore` — 读取输出的探索模式 prompt
|
|
29
|
-
2. 按照输出的 prompt 和本技能约束执行探索
|
|
30
|
-
3. 探索告一段落后,运行 `sillyspec run explore --done --input "<用户原始话题>" --output "你的摘要"`
|
|
31
|
-
4. **禁止**在没有运行 CLI 的情况下自行决定流程
|
|
32
|
-
|
|
33
20
|
## 这是什么模式
|
|
34
21
|
|
|
35
22
|
**探索模式用于思考,不用于实现。** 你可以读文件、搜代码、调查代码库,但绝对不能写代码或实现功能。如果用户要求实现,提醒他们先退出探索模式。
|
|
@@ -1,12 +1,8 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: sillyspec:plan
|
|
3
|
-
description:
|
|
3
|
+
description: 编写实现计划 — 2-5 分钟粒度,精确到文件路径和代码
|
|
4
4
|
---
|
|
5
5
|
|
|
6
|
-
## 多变更说明
|
|
7
|
-
|
|
8
|
-
如果项目有多个活跃变更(`.sillyspec/changes/` 下有多个目录),所有 `sillyspec run` 命令需要加 `--change <变更名>`。只有一个变更时可省略(CLI 自动检测)。
|
|
9
|
-
|
|
10
6
|
## 执行
|
|
11
7
|
|
|
12
8
|
**你必须使用 exec 工具(shell)执行以下命令,不要自己编造流程:**
|
|
@@ -17,5 +13,40 @@ description: 用于把 design 拆解为可执行的实现计划。适合用户
|
|
|
17
13
|
4. 重复 2-3 直到阶段完成
|
|
18
14
|
5. **禁止**在没有运行 CLI 的情况下自行决定流程
|
|
19
15
|
|
|
16
|
+
## 子代理并行优化(可选)
|
|
17
|
+
|
|
18
|
+
当 CLI 进入"写任务蓝图 task-N.md"步骤时(Step 5 之后),可以用子代理并行加速:
|
|
19
|
+
|
|
20
|
+
1. 读取 plan.md,统计任务数量
|
|
21
|
+
2. 为每个 task-N.md 启动一个独立子代理
|
|
22
|
+
3. 每个子代理的任务:
|
|
23
|
+
- 读取 design.md 和 plan.md
|
|
24
|
+
- 读取相关源文件
|
|
25
|
+
- 按格式要求写 task-N.md 并保存
|
|
26
|
+
4. 所有子代理完成后,继续 CLI 的下一步(审查一致性)
|
|
27
|
+
|
|
28
|
+
**子代理 prompt 模板:**
|
|
29
|
+
```
|
|
30
|
+
你是计划编写者。请为以下任务编写详细蓝图。
|
|
31
|
+
|
|
32
|
+
任务:${taskName}
|
|
33
|
+
变更目录:${changeDir}
|
|
34
|
+
文件路径:${changeDir}/tasks/task-${taskNum}.md
|
|
35
|
+
|
|
36
|
+
要求:
|
|
37
|
+
1. 读取 design.md 和 plan.md 了解上下文
|
|
38
|
+
2. 读取相关源文件了解现有代码
|
|
39
|
+
3. 按以下格式编写任务蓝图并保存到文件:
|
|
40
|
+
- 修改文件列表
|
|
41
|
+
- 实现要求
|
|
42
|
+
- 接口定义/数据结构
|
|
43
|
+
- 边界处理
|
|
44
|
+
- 参考
|
|
45
|
+
- TDD 步骤
|
|
46
|
+
- 验收标准(checkbox)
|
|
47
|
+
```
|
|
48
|
+
|
|
49
|
+
**注意:** 手动跑 plan 时不用子代理(串行即可),auto skill 中建议用子代理并行。
|
|
50
|
+
|
|
20
51
|
## 用户指令
|
|
21
52
|
$ARGUMENTS
|
|
@@ -1,12 +1,8 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: sillyspec:quick
|
|
3
|
-
description:
|
|
3
|
+
description: 快速任务 — 跳过完整流程,直接做
|
|
4
4
|
---
|
|
5
5
|
|
|
6
|
-
## 多变更说明
|
|
7
|
-
|
|
8
|
-
如果项目有多个活跃变更(`.sillyspec/changes/` 下有多个目录),所有 `sillyspec run` 命令需要加 `--change <变更名>`。只有一个变更时可省略(CLI 自动检测)。
|
|
9
|
-
|
|
10
6
|
## 执行
|
|
11
7
|
|
|
12
8
|
**你必须使用 exec 工具(shell)执行以下命令,不要自己编造流程:**
|
|
@@ -5,64 +5,107 @@ description: 恢复工作 — 从中断处继续
|
|
|
5
5
|
|
|
6
6
|
## 交互规范
|
|
7
7
|
|
|
8
|
-
**当需要用户从多个选项中做出选择时,必须使用 Claude Code 内置的 AskUserQuestion
|
|
8
|
+
**当需要用户从多个选项中做出选择时,必须使用 Claude Code 内置的 AskUserQuestion 工具,将选项以参数传入。**
|
|
9
9
|
|
|
10
10
|
不要用编号列表让用户手动输入数字。
|
|
11
11
|
如果需要自由输入,在 AskUserQuestion 的选项中加入"Other(自定义输入)"。
|
|
12
12
|
|
|
13
|
-
---
|
|
14
|
-
|
|
15
13
|
你现在是 SillySpec 的恢复管理器。
|
|
16
14
|
|
|
17
15
|
## 流程
|
|
18
16
|
|
|
19
|
-
### 1.
|
|
17
|
+
### 1. 读取 progress.json
|
|
20
18
|
|
|
21
19
|
```bash
|
|
22
|
-
sillyspec progress show
|
|
20
|
+
sillyspec progress show 2>/dev/null
|
|
23
21
|
```
|
|
24
22
|
|
|
25
|
-
### 2.
|
|
26
|
-
|
|
27
|
-
|
|
23
|
+
### 2. 如果有 progress.json
|
|
24
|
+
|
|
25
|
+
直接从 progress.json 中提取并展示:
|
|
26
|
+
|
|
27
|
+
> 🔄 工作状态恢复
|
|
28
|
+
>
|
|
29
|
+
> **当前变更**:<名称>
|
|
30
|
+
> **当前阶段**:<阶段名> <状态>
|
|
31
|
+
> **下一步**:<命令>
|
|
32
|
+
>
|
|
33
|
+
> **阶段进度**(大模块):
|
|
34
|
+
> | 阶段 | 状态 |
|
|
35
|
+
> |---|---|
|
|
36
|
+
> | stage-1 列表页 | ✅ |
|
|
37
|
+
> | stage-2 表单页 | 🔄 execute (2/6) |
|
|
38
|
+
> | stage-3 详情页 | ⬜ |
|
|
39
|
+
>
|
|
40
|
+
> **关键决策**:
|
|
41
|
+
> - xxx
|
|
42
|
+
>
|
|
43
|
+
> **下一步命令**:
|
|
44
|
+
> `/sillyspec:execute reward-punishment/stage-2`
|
|
45
|
+
|
|
46
|
+
**不需要执行 Git 操作或文件探测。** progress.json 已经包含所有信息。
|
|
47
|
+
|
|
48
|
+
使用 `sillyspec progress show` 查看。
|
|
28
49
|
|
|
29
50
|
然后问用户:
|
|
30
51
|
1. 直接继续执行下一步
|
|
31
52
|
2. 查看更多细节
|
|
32
53
|
|
|
33
|
-
### 3.
|
|
54
|
+
### 3. 如果没有 progress.json
|
|
34
55
|
|
|
35
|
-
自动探测项目状态:
|
|
56
|
+
**不要直接说"没有记录"。** 自动探测项目状态:
|
|
36
57
|
|
|
37
58
|
```bash
|
|
59
|
+
# 检查主变更
|
|
60
|
+
ls .sillyspec/changes/*/MASTER.md 2>/dev/null
|
|
61
|
+
|
|
38
62
|
# 检查活跃变更
|
|
39
|
-
ls
|
|
63
|
+
ls .d .sillyspec/changes/*/ | grep -v archive | grep -v stages | tail -1 2>/dev/null
|
|
40
64
|
|
|
41
|
-
#
|
|
42
|
-
ls .sillyspec/changes/*/
|
|
65
|
+
# 检查子阶段
|
|
66
|
+
ls .sillyspec/changes/*/stages/*/proposal.md 2>/dev/null
|
|
67
|
+
|
|
68
|
+
# 检查代码库文档
|
|
69
|
+
ls .sillyspec/codebase/*.md 2>/dev/null
|
|
43
70
|
|
|
44
|
-
#
|
|
45
|
-
ls .sillyspec/
|
|
71
|
+
# 检查计划文件
|
|
72
|
+
ls -t .sillyspec/plans/*.md | head -1 2>/dev/null
|
|
46
73
|
|
|
47
74
|
# 检查需求/路线图
|
|
48
75
|
cat .sillyspec/REQUIREMENTS.md 2>/dev/null
|
|
49
76
|
cat .sillyspec/ROADMAP.md 2>/dev/null
|
|
50
77
|
```
|
|
51
78
|
|
|
79
|
+
#### 如果检测到 MASTER.md(大模块)
|
|
80
|
+
|
|
81
|
+
检查各阶段状态并输出阶段进度表(同步骤 2 格式)。
|
|
82
|
+
|
|
83
|
+
同时**运行 `sillyspec progress init`**,将探测到的信息写入 progress.json,后续命令执行时会自动更新。
|
|
84
|
+
|
|
85
|
+
#### 如果是普通变更(无 MASTER.md)
|
|
86
|
+
|
|
52
87
|
根据探测结果推断:
|
|
53
88
|
|
|
54
89
|
| 探测到的文件 | 推断阶段 | 建议操作 |
|
|
55
90
|
|---|---|---|
|
|
56
91
|
| 无任何 .sillyspec/ 内容 | 未开始 | `/sillyspec:init` 或 `/sillyspec:scan` |
|
|
57
|
-
| 有
|
|
58
|
-
| 有
|
|
92
|
+
| 有 SCAN-RAW.md 但缺失文档 | 扫描中断 | `/sillyspec:scan --deep`(断点续扫) |
|
|
93
|
+
| 有 codebase/ 但文档不全(快扫 3 份缺失) | 快扫中断 | `/sillyspec:scan`(补全缺失文档) |
|
|
94
|
+
| 有 codebase/ 7 份齐全但无 changes/ | 已扫描,未开始需求 | `/sillyspec:brainstorm "想法"` |
|
|
59
95
|
| 有 REQUIREMENTS.md 但无 changes/ | 绿地项目,已有需求 | `/sillyspec:brainstorm "想法"` |
|
|
60
|
-
| changes/ 下有 proposal
|
|
61
|
-
| changes/ 下有
|
|
62
|
-
| tasks.md
|
|
63
|
-
|
|
96
|
+
| changes/ 下有 proposal,无 tasks | 已有规范,待计划 | `/sillyspec:plan` |
|
|
97
|
+
| changes/ 下有 tasks,有未完成 checkbox | 执行中 | `/sillyspec:execute` |
|
|
98
|
+
| tasks.md 全部完成 | 待验证 | `/sillyspec:verify` |
|
|
99
|
+
|
|
100
|
+
**扫描中断检测逻辑:**
|
|
101
|
+
- 有 `SCAN-RAW.md` → 说明深度扫描预处理已完成,检查 7 份文档缺哪些
|
|
102
|
+
- 有部分 codebase 文档(如只有 STACK 和 STRUCTURE)→ 说明快扫或深扫中断
|
|
103
|
+
- 缺失的文档列表直接展示给用户,告知 `/sillyspec:scan` 会自动跳过已存在的文档
|
|
104
|
+
|
|
105
|
+
**同时运行 `sillyspec progress init`** 记录推断的状态。
|
|
64
106
|
|
|
65
107
|
### 4. 关键原则
|
|
66
108
|
|
|
67
|
-
-
|
|
68
|
-
-
|
|
109
|
+
- **不需要 HANDOFF.json**。progress.json 是唯一的恢复数据源。
|
|
110
|
+
- **progress.json 不需要 Git 提交**(已在 .runtime/ 下,被 .gitignore 忽略)。
|
|
111
|
+
- **每次命令执行完自动更新 progress.json**(通过 `sillyspec progress` CLI),不需要用户手动保存。
|
|
@@ -1,12 +1,8 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: sillyspec:scan
|
|
3
|
-
description:
|
|
3
|
+
description: 代码扫描 — 分析项目结构、约定和架构
|
|
4
4
|
---
|
|
5
5
|
|
|
6
|
-
## 多变更说明
|
|
7
|
-
|
|
8
|
-
如果项目有多个活跃变更(`.sillyspec/changes/` 下有多个目录),所有 `sillyspec run` 命令需要加 `--change <变更名>`。只有一个变更时可省略(CLI 自动检测)。
|
|
9
|
-
|
|
10
6
|
## 执行
|
|
11
7
|
|
|
12
8
|
**你必须使用 exec 工具(shell)执行以下命令,不要自己编造流程:**
|
|
@@ -1,19 +1,19 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: sillyspec:state
|
|
3
|
-
description: 查看当前工作状态 — 显示
|
|
3
|
+
description: 查看当前工作状态 — 显示 progress.json 内容
|
|
4
4
|
---
|
|
5
5
|
|
|
6
6
|
你现在是 SillySpec 的状态查看器。
|
|
7
7
|
|
|
8
8
|
## 流程
|
|
9
9
|
|
|
10
|
-
### 1.
|
|
10
|
+
### 1. 读取 progress.json
|
|
11
11
|
|
|
12
12
|
```bash
|
|
13
|
-
sillyspec progress show
|
|
13
|
+
sillyspec progress show 2>/dev/null
|
|
14
14
|
```
|
|
15
15
|
|
|
16
|
-
### 2.
|
|
16
|
+
### 2. 如果有 progress.json
|
|
17
17
|
|
|
18
18
|
格式化展示当前状态:
|
|
19
19
|
|
|
@@ -33,9 +33,9 @@ sillyspec progress show
|
|
|
33
33
|
> **阻塞项**:
|
|
34
34
|
> - xxx(如无则省略)
|
|
35
35
|
|
|
36
|
-
### 3.
|
|
36
|
+
### 3. 如果没有 progress.json
|
|
37
37
|
|
|
38
|
-
|
|
38
|
+
提示用户项目还没有开始,或 progress.json 尚未生成:
|
|
39
39
|
|
|
40
40
|
> 📊 还没有工作记录。
|
|
41
41
|
>
|
|
@@ -44,11 +44,11 @@ sillyspec progress show
|
|
|
44
44
|
> - 已有项目:`/sillyspec:scan`
|
|
45
45
|
> - 恢复中断的工作:`/sillyspec:resume`
|
|
46
46
|
>
|
|
47
|
-
>
|
|
47
|
+
> progress.json 会在 `sillyspec init` 时自动创建。
|
|
48
48
|
|
|
49
49
|
### 注意
|
|
50
50
|
|
|
51
51
|
- 这是只读命令,**不修改任何文件**
|
|
52
52
|
- `/sillyspec:status` 查看项目整体进度(change 文件级别)
|
|
53
|
-
- `/sillyspec:state`
|
|
53
|
+
- `/sillyspec:state` 查看当前工作状态(progress.json 级别)
|
|
54
54
|
- 两者互补:status 看"有什么",state 看"在做什么"
|
|
@@ -1,12 +1,8 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: sillyspec:status
|
|
3
|
-
description:
|
|
3
|
+
description: 查看项目进度和状态
|
|
4
4
|
---
|
|
5
5
|
|
|
6
|
-
## 多变更说明
|
|
7
|
-
|
|
8
|
-
如果项目有多个活跃变更(`.sillyspec/changes/` 下有多个目录),所有 `sillyspec run` 命令需要加 `--change <变更名>`。只有一个变更时可省略(CLI 自动检测)。
|
|
9
|
-
|
|
10
6
|
## 执行
|
|
11
7
|
|
|
12
8
|
**你必须使用 exec 工具(shell)执行以下命令,不要自己编造流程:**
|
|
@@ -1,12 +1,8 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: sillyspec:verify
|
|
3
|
-
description:
|
|
3
|
+
description: 验证实现 — 对照规范检查 + 测试套件
|
|
4
4
|
---
|
|
5
5
|
|
|
6
|
-
## 多变更说明
|
|
7
|
-
|
|
8
|
-
如果项目有多个活跃变更(`.sillyspec/changes/` 下有多个目录),所有 `sillyspec run` 命令需要加 `--change <变更名>`。只有一个变更时可省略(CLI 自动检测)。
|
|
9
|
-
|
|
10
6
|
## 执行
|
|
11
7
|
|
|
12
8
|
**你必须使用 exec 工具(shell)执行以下命令,不要自己编造流程:**
|
|
@@ -59,9 +59,9 @@ ls .sillyspec/projects/*.yaml 2>/dev/null | grep -q .
|
|
|
59
59
|
name: <name>
|
|
60
60
|
path: <relative-path>
|
|
61
61
|
status: active
|
|
62
|
+
role: <description>
|
|
63
|
+
repo: <repo-url> # 可选
|
|
62
64
|
```
|
|
63
|
-
> ⚠️ `sillyspec init` 只会写入 `name`、`path`、`status` 三个字段。
|
|
64
|
-
> `role` 和 `repo` 由 `/sillyspec:workspace add` 追加。
|
|
65
65
|
5. 创建 `.sillyspec/shared/` 目录
|
|
66
66
|
|
|
67
67
|
#### 3b. 添加子项目(`add`)
|
|
@@ -95,7 +95,7 @@ for f in .sillyspec/projects/*.yaml; do
|
|
|
95
95
|
cd "$proj_path"
|
|
96
96
|
ls .sillyspec/ 2>/dev/null
|
|
97
97
|
cat .sillyspec/PROJECT.md 2>/dev/null
|
|
98
|
-
ls
|
|
98
|
+
ls docs/${proj_name}/scan/ 2>/dev/null | wc -l
|
|
99
99
|
cd -
|
|
100
100
|
done
|
|
101
101
|
```
|
|
@@ -129,14 +129,6 @@ done
|
|
|
129
129
|
|
|
130
130
|
每个子项目对应 `.sillyspec/projects/<name>.yaml`:
|
|
131
131
|
|
|
132
|
-
**sillyspec init 创建的格式(3 字段):**
|
|
133
|
-
```yaml
|
|
134
|
-
name: frontend
|
|
135
|
-
path: ./frontend
|
|
136
|
-
status: active
|
|
137
|
-
```
|
|
138
|
-
|
|
139
|
-
**workspace add 扩展的格式(最多 5 字段):**
|
|
140
132
|
```yaml
|
|
141
133
|
name: frontend
|
|
142
134
|
path: ./frontend
|