sillyspec 3.8.5 → 3.8.6
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/README.md +0 -6
- package/docs/.vitepress/config.mts +45 -0
- package/docs/.vitepress/dist/404.html +25 -0
- package/docs/.vitepress/dist/assets/app.YytxICdd.js +1 -0
- package/docs/.vitepress/dist/assets/chunks/framework.Czhw_PXq.js +19 -0
- package/docs/.vitepress/dist/assets/chunks/theme.DusTRZQk.js +1 -0
- package/docs/.vitepress/dist/assets/index.md.C3VCvtQA.js +1 -0
- package/docs/.vitepress/dist/assets/index.md.C3VCvtQA.lean.js +1 -0
- package/docs/.vitepress/dist/assets/inter-italic-cyrillic-ext.r48I6akx.woff2 +0 -0
- package/docs/.vitepress/dist/assets/inter-italic-cyrillic.By2_1cv3.woff2 +0 -0
- package/docs/.vitepress/dist/assets/inter-italic-greek-ext.1u6EdAuj.woff2 +0 -0
- package/docs/.vitepress/dist/assets/inter-italic-greek.DJ8dCoTZ.woff2 +0 -0
- package/docs/.vitepress/dist/assets/inter-italic-latin-ext.CN1xVJS-.woff2 +0 -0
- package/docs/.vitepress/dist/assets/inter-italic-latin.C2AdPX0b.woff2 +0 -0
- package/docs/.vitepress/dist/assets/inter-italic-vietnamese.BSbpV94h.woff2 +0 -0
- package/docs/.vitepress/dist/assets/inter-roman-cyrillic-ext.BBPuwvHQ.woff2 +0 -0
- package/docs/.vitepress/dist/assets/inter-roman-cyrillic.C5lxZ8CY.woff2 +0 -0
- package/docs/.vitepress/dist/assets/inter-roman-greek-ext.CqjqNYQ-.woff2 +0 -0
- package/docs/.vitepress/dist/assets/inter-roman-greek.BBVDIX6e.woff2 +0 -0
- package/docs/.vitepress/dist/assets/inter-roman-latin-ext.4ZJIpNVo.woff2 +0 -0
- package/docs/.vitepress/dist/assets/inter-roman-latin.Di8DUHzh.woff2 +0 -0
- package/docs/.vitepress/dist/assets/inter-roman-vietnamese.BjW4sHH5.woff2 +0 -0
- package/docs/.vitepress/dist/assets/sillyspec_commands.md.CXFFsj08.js +15 -0
- package/docs/.vitepress/dist/assets/sillyspec_commands.md.CXFFsj08.lean.js +1 -0
- package/docs/.vitepress/dist/assets/sillyspec_dashboard.md.BuPXHqjX.js +4 -0
- package/docs/.vitepress/dist/assets/sillyspec_dashboard.md.BuPXHqjX.lean.js +1 -0
- package/docs/.vitepress/dist/assets/sillyspec_file-io.md.Cz3x7llx.js +1 -0
- package/docs/.vitepress/dist/assets/sillyspec_file-io.md.Cz3x7llx.lean.js +1 -0
- package/docs/.vitepress/dist/assets/sillyspec_getting-started.md.ClcvV8k3.js +4 -0
- package/docs/.vitepress/dist/assets/sillyspec_getting-started.md.ClcvV8k3.lean.js +1 -0
- package/docs/.vitepress/dist/assets/sillyspec_install.md.CKuR2tiT.js +5 -0
- package/docs/.vitepress/dist/assets/sillyspec_install.md.CKuR2tiT.lean.js +1 -0
- package/docs/.vitepress/dist/assets/sillyspec_lifecycle.md.DY293cR1.js +28 -0
- package/docs/.vitepress/dist/assets/sillyspec_lifecycle.md.DY293cR1.lean.js +1 -0
- package/docs/.vitepress/dist/assets/sillyspec_structure.md.sVYS4zPs.js +30 -0
- package/docs/.vitepress/dist/assets/sillyspec_structure.md.sVYS4zPs.lean.js +1 -0
- package/docs/.vitepress/dist/assets/style.DFTx90Kk.css +1 -0
- package/docs/.vitepress/dist/hashmap.json +1 -0
- package/docs/.vitepress/dist/index.html +28 -0
- package/docs/.vitepress/dist/sillyspec/commands.html +42 -0
- package/docs/.vitepress/dist/sillyspec/dashboard.html +31 -0
- package/docs/.vitepress/dist/sillyspec/file-io.html +28 -0
- package/docs/.vitepress/dist/sillyspec/getting-started.html +31 -0
- package/docs/.vitepress/dist/sillyspec/install.html +32 -0
- package/docs/.vitepress/dist/sillyspec/lifecycle.html +55 -0
- package/docs/.vitepress/dist/sillyspec/structure.html +57 -0
- package/docs/.vitepress/dist/vp-icons.css +1 -0
- package/docs/index.md +34 -0
- package/docs/sillyspec/commands.md +218 -0
- package/docs/sillyspec/dashboard.md +51 -0
- package/docs/sillyspec/file-io.md +34 -0
- package/docs/sillyspec/getting-started.md +61 -0
- package/docs/sillyspec/install.md +51 -0
- package/docs/sillyspec/lifecycle.md +146 -0
- package/docs/sillyspec/structure.md +62 -0
- package/package.json +11 -9
- package/packages/dashboard/dist/assets/index-Bh-GPjKY.css +1 -0
- package/packages/dashboard/dist/assets/index-CrCn5Gg6.js +17 -0
- package/packages/dashboard/dist/index.html +2 -2
- package/packages/dashboard/package-lock.json +0 -220
- package/packages/dashboard/package.json +5 -8
- package/packages/dashboard/server/index.js +106 -255
- package/packages/dashboard/server/parser.js +29 -333
- package/packages/dashboard/server/watcher.js +131 -203
- package/packages/dashboard/src/App.vue +10 -181
- package/packages/dashboard/src/components/ActionBar.vue +42 -26
- package/packages/dashboard/src/components/CommandPalette.vue +65 -40
- package/packages/dashboard/src/components/DetailPanel.vue +53 -68
- package/packages/dashboard/src/components/LogStream.vue +33 -13
- package/packages/dashboard/src/components/PipelineStage.vue +8 -8
- package/packages/dashboard/src/components/PipelineView.vue +45 -80
- package/packages/dashboard/src/components/ProjectList.vue +45 -103
- package/packages/dashboard/src/components/StageBadge.vue +13 -13
- package/packages/dashboard/src/components/StepCard.vue +15 -15
- package/packages/dashboard/src/composables/useDashboard.js +6 -20
- package/packages/dashboard/src/composables/useKeyboard.js +4 -6
- package/packages/dashboard/src/main.js +1 -4
- package/packages/dashboard/src/style.css +17 -17
- package/src/index.js +12 -123
- package/src/init.js +227 -86
- package/src/setup.js +9 -1
- package/templates/archive.md +121 -0
- package/templates/brainstorm.md +240 -0
- package/{.claude/skills/sillyspec-commit/SKILL.md → templates/commit.md} +47 -29
- package/templates/continue.md +32 -0
- package/templates/execute.md +314 -0
- package/templates/explore.md +60 -0
- package/templates/export.md +21 -0
- package/templates/init.md +61 -0
- package/templates/plan.md +157 -0
- package/templates/quick.md +135 -0
- package/templates/scan-quick.md +49 -0
- package/templates/scan.md +172 -0
- package/templates/skills/playwright-e2e/SKILL.md +340 -0
- package/templates/status.md +75 -0
- package/templates/verify.md +253 -0
- package/templates/workspace-sync.md +99 -0
- package/templates/workspace.md +70 -0
- package/.claude/skills/sillyspec-archive/SKILL.md +0 -17
- package/.claude/skills/sillyspec-auto/SKILL.md +0 -77
- package/.claude/skills/sillyspec-brainstorm/SKILL.md +0 -17
- package/.claude/skills/sillyspec-continue/SKILL.md +0 -44
- package/.claude/skills/sillyspec-doctor/SKILL.md +0 -22
- package/.claude/skills/sillyspec-execute/SKILL.md +0 -17
- package/.claude/skills/sillyspec-explore/SKILL.md +0 -96
- package/.claude/skills/sillyspec-export/SKILL.md +0 -53
- package/.claude/skills/sillyspec-init/SKILL.md +0 -170
- package/.claude/skills/sillyspec-plan/SKILL.md +0 -52
- package/.claude/skills/sillyspec-propose/SKILL.md +0 -17
- package/.claude/skills/sillyspec-quick/SKILL.md +0 -17
- package/.claude/skills/sillyspec-resume/SKILL.md +0 -111
- package/.claude/skills/sillyspec-scan/SKILL.md +0 -17
- package/.claude/skills/sillyspec-state/SKILL.md +0 -54
- package/.claude/skills/sillyspec-status/SKILL.md +0 -17
- package/.claude/skills/sillyspec-verify/SKILL.md +0 -17
- package/.claude/skills/sillyspec-workspace/SKILL.md +0 -149
- package/.sillyspec/changes/archive/2026-04-08-derive-state/design.md +0 -97
- package/.sillyspec/changes/archive/2026-04-08-derive-state/plan.md +0 -51
- package/.sillyspec/changes/archive/2026-04-08-derive-state/proposal.md +0 -29
- package/.sillyspec/changes/archive/2026-04-08-derive-state/requirements.md +0 -34
- package/.sillyspec/changes/archive/2026-04-08-derive-state/tasks.md +0 -13
- package/.sillyspec/changes/archive/2026-04-08-derive-state/verify-result.md +0 -43
- package/.sillyspec/changes/auto-mode/design.md +0 -50
- package/.sillyspec/changes/auto-mode/proposal.md +0 -19
- package/.sillyspec/changes/auto-mode/requirements.md +0 -21
- package/.sillyspec/changes/auto-mode/tasks.md +0 -7
- package/.sillyspec/changes/brainstorm-archive/2026-04-05-unified-docs-design.md +0 -199
- package/.sillyspec/changes/dashboard/design.md.braindraft +0 -206
- package/.sillyspec/changes/run-command-design/design.md +0 -1230
- package/.sillyspec/changes/unified-docs-design/design.md +0 -199
- package/.sillyspec/docs/sillyspec/scan/.gitkeep +0 -0
- package/.sillyspec/knowledge/INDEX.md +0 -8
- package/.sillyspec/knowledge/uncategorized.md +0 -3
- package/.sillyspec/projects/sillyspec.yaml +0 -3
- package/packages/dashboard/dist/assets/index-D1EVTLmc.js +0 -7446
- package/packages/dashboard/dist/assets/index-DGe8CqeP.css +0 -1
- package/packages/dashboard/public/logo.jpg +0 -0
- package/packages/dashboard/src/components/DocPreview.vue +0 -160
- package/packages/dashboard/src/components/DocTree.vue +0 -58
- package/packages/dashboard/src/components/ProjectOverview.vue +0 -178
- package/packages/dashboard/src/components/detail/DocsDetail.vue +0 -48
- package/packages/dashboard/src/components/detail/GitDetail.vue +0 -61
- package/packages/dashboard/src/components/detail/TechDetail.vue +0 -43
- package/src/derive.js +0 -147
- package/src/migrate.js +0 -117
- package/src/progress.js +0 -495
- package/src/run.js +0 -640
- package/src/stages/archive.js +0 -54
- package/src/stages/brainstorm.js +0 -239
- package/src/stages/doctor.js +0 -312
- package/src/stages/execute.js +0 -259
- package/src/stages/index.js +0 -35
- package/src/stages/plan.js +0 -259
- package/src/stages/propose.js +0 -115
- package/src/stages/quick.js +0 -64
- package/src/stages/scan.js +0 -141
- package/src/stages/status.js +0 -65
- package/src/stages/verify.js +0 -135
- /package/.sillyspec/{changes/brainstorm-archive → specs}/2026-04-05-dashboard-design.md +0 -0
- /package/{packages/dashboard → docs/.vitepress}/dist/favicon.jpg +0 -0
- /package/{logo.jpg → docs/.vitepress/dist/logo.jpg} +0 -0
- /package/{packages/dashboard → docs}/public/favicon.jpg +0 -0
- /package/{packages/dashboard/dist → docs/public}/logo.jpg +0 -0
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: sillyspec:execute
|
|
3
|
-
description: 波次执行 — 子代理并行 + 强制 TDD + 两阶段审查
|
|
4
|
-
---
|
|
5
|
-
|
|
6
|
-
## 执行
|
|
7
|
-
|
|
8
|
-
**你必须使用 exec 工具(shell)执行以下命令,不要自己编造流程:**
|
|
9
|
-
|
|
10
|
-
1. 运行 `sillyspec run execute` — 读取输出的步骤 prompt
|
|
11
|
-
2. 按照输出的 prompt **严格执行**,不要跳过或自行添加步骤
|
|
12
|
-
3. 步骤完成后,运行 `sillyspec run execute --done --output "你的摘要"`
|
|
13
|
-
4. 重复 2-3 直到阶段完成
|
|
14
|
-
5. **禁止**在没有运行 CLI 的情况下自行决定流程
|
|
15
|
-
|
|
16
|
-
## 用户指令
|
|
17
|
-
$ARGUMENTS
|
|
@@ -1,96 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: sillyspec:explore
|
|
3
|
-
description: 自由思考模式 — 讨论、画图、调研,不写代码
|
|
4
|
-
---
|
|
5
|
-
|
|
6
|
-
## 交互规范
|
|
7
|
-
|
|
8
|
-
**当需要用户从多个选项中做出选择时,必须使用 Claude Code 内置的 AskUserQuestion 工具,将选项以参数传入。**
|
|
9
|
-
|
|
10
|
-
不要用编号列表让用户手动输入数字。
|
|
11
|
-
如果需要自由输入,在 AskUserQuestion 的选项中加入"Other(自定义输入)"。
|
|
12
|
-
|
|
13
|
-
---
|
|
14
|
-
|
|
15
|
-
你现在是 SillySpec 的自由思考伙伴。
|
|
16
|
-
|
|
17
|
-
## 话题
|
|
18
|
-
$ARGUMENTS
|
|
19
|
-
|
|
20
|
-
## 这是什么模式
|
|
21
|
-
|
|
22
|
-
**探索模式用于思考,不用于实现。** 你可以读文件、搜代码、调查代码库,但绝对不能写代码或实现功能。如果用户要求实现,提醒他们先退出探索模式。
|
|
23
|
-
|
|
24
|
-
**这不是一个工作流,是一种姿态。** 没有固定步骤、没有必需的输出。你是一个帮助用户思考的伙伴。
|
|
25
|
-
|
|
26
|
-
## 姿态
|
|
27
|
-
|
|
28
|
-
- **好奇,不说教** — 问自然产生的问题,不按脚本走
|
|
29
|
-
- **开放式线程** — 展示多个有趣方向,让用户选择
|
|
30
|
-
- **可视化** — 大量使用 ASCII 图表
|
|
31
|
-
- **自适应** — 追随有趣的线索,随时转向
|
|
32
|
-
- **耐心** — 不急着下结论
|
|
33
|
-
- **务实** — 探索实际代码库,不只纸上谈兵
|
|
34
|
-
|
|
35
|
-
## 你可以做的事
|
|
36
|
-
|
|
37
|
-
**探索问题空间:** 问澄清问题、挑战假设、重新定义问题
|
|
38
|
-
|
|
39
|
-
**调查代码库:** 映射相关架构、找集成点、识别已有模式、暴露隐藏复杂性
|
|
40
|
-
|
|
41
|
-
**比较选项:** 头脑风暴多种方案、建对比表、画权衡分析
|
|
42
|
-
|
|
43
|
-
**画图:**
|
|
44
|
-
```
|
|
45
|
-
┌─────────────────────────────────┐
|
|
46
|
-
│ 用 ASCII 图自由表达 │
|
|
47
|
-
├─────────────────────────────────┤
|
|
48
|
-
│ │
|
|
49
|
-
│ ┌────────┐ ┌────────┐ │
|
|
50
|
-
│ │ State │──────▶│ State │ │
|
|
51
|
-
│ │ A │ │ B │ │
|
|
52
|
-
│ └────────┘ └────────┘ │
|
|
53
|
-
│ │
|
|
54
|
-
└─────────────────────────────────┘
|
|
55
|
-
```
|
|
56
|
-
|
|
57
|
-
**暴露风险:** 识别可能出错的地方、发现理解空白
|
|
58
|
-
|
|
59
|
-
## OpenSpec 上下文感知
|
|
60
|
-
|
|
61
|
-
### 检查已有上下文
|
|
62
|
-
|
|
63
|
-
```bash
|
|
64
|
-
# 查看进行中的变更
|
|
65
|
-
ls .sillyspec/changes/ 2>/dev/null | grep -v archive
|
|
66
|
-
# 查看需求
|
|
67
|
-
cat .sillyspec/REQUIREMENTS.md 2>/dev/null
|
|
68
|
-
cat .sillyspec/ROADMAP.md 2>/dev/null
|
|
69
|
-
```
|
|
70
|
-
|
|
71
|
-
### 当有进行中的变更时
|
|
72
|
-
|
|
73
|
-
读取变更的 proposal、design、tasks,自然地引用它们。
|
|
74
|
-
|
|
75
|
-
当发现重要的决策时,**提议保存**(不自动保存):
|
|
76
|
-
|
|
77
|
-
请选择:
|
|
78
|
-
1. 写入 design.md
|
|
79
|
-
2. 加入 specs
|
|
80
|
-
3. 暂不保存
|
|
81
|
-
|
|
82
|
-
## 没有必需的结束
|
|
83
|
-
|
|
84
|
-
探索可以:
|
|
85
|
-
1. 创建变更提案 — 流入 proposal
|
|
86
|
-
2. 产出文档更新
|
|
87
|
-
3. 继续探索
|
|
88
|
-
4. 结束探索
|
|
89
|
-
|
|
90
|
-
## 禁止事项
|
|
91
|
-
|
|
92
|
-
- ❌ 写实现代码
|
|
93
|
-
- ❌ 安装依赖
|
|
94
|
-
- ❌ 修改任何文件(除非用户明确要求保存发现)
|
|
95
|
-
- ❌ 强行下结论
|
|
96
|
-
- ❌ 强行结构化(让模式自然涌现)
|
|
@@ -1,53 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: sillyspec:export
|
|
3
|
-
description: 导出成功方案为可复用模板
|
|
4
|
-
---
|
|
5
|
-
|
|
6
|
-
---
|
|
7
|
-
|
|
8
|
-
你现在是 SillySpec 的模板导出器。
|
|
9
|
-
|
|
10
|
-
## 参数解析
|
|
11
|
-
|
|
12
|
-
解析 `$ARGUMENTS`:
|
|
13
|
-
- 第一个参数为变更名(如 `user-auth`)
|
|
14
|
-
- `--to` 指定输出路径(默认 `~/.sillyspec/templates/<change-name>/`)
|
|
15
|
-
|
|
16
|
-
## 流程
|
|
17
|
-
|
|
18
|
-
### 1. 读取变更文件
|
|
19
|
-
|
|
20
|
-
```bash
|
|
21
|
-
CHANGE_DIR=".sillyspec/changes/$ARGUMENTS"
|
|
22
|
-
cat "$CHANGE_DIR/proposal.md"
|
|
23
|
-
cat "$CHANGE_DIR/design.md"
|
|
24
|
-
cat "$CHANGE_DIR/specs/requirements.md" 2>/dev/null
|
|
25
|
-
```
|
|
26
|
-
|
|
27
|
-
如果变更不存在 → 告诉用户"变更不存在,请确认变更名"
|
|
28
|
-
|
|
29
|
-
### 2. 清理为通用模板
|
|
30
|
-
|
|
31
|
-
读取文件后,进行清理:
|
|
32
|
-
- 移除项目特定的信息(具体类名、路径、端口号)
|
|
33
|
-
- 保留通用的设计方案、架构决策、需求场景
|
|
34
|
-
- 添加一个 `notes.md`,记录使用建议和适配要点
|
|
35
|
-
|
|
36
|
-
### 3. 导出到模板目录
|
|
37
|
-
|
|
38
|
-
```bash
|
|
39
|
-
mkdir -p ~/.sillyspec/templates/<change-name>
|
|
40
|
-
cp 清理后的文件到该目录
|
|
41
|
-
```
|
|
42
|
-
|
|
43
|
-
### 4. 确认
|
|
44
|
-
|
|
45
|
-
展示导出内容摘要,告知模板路径。
|
|
46
|
-
|
|
47
|
-
### 最后说:
|
|
48
|
-
|
|
49
|
-
> ✅ 方案已导出到 `~/.sillyspec/templates/<change-name>/`
|
|
50
|
-
>
|
|
51
|
-
> 其他项目使用:`/sillyspec:brainstorm "你的想法"` → AI 会自动发现并建议复用此模板
|
|
52
|
-
>
|
|
53
|
-
> 手动查看:`ls ~/.sillyspec/templates/<change-name>/`
|
|
@@ -1,170 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: sillyspec:init
|
|
3
|
-
description: 绿地项目初始化 — 深度提问、调研、需求文档、路线图
|
|
4
|
-
---
|
|
5
|
-
|
|
6
|
-
## 交互规范
|
|
7
|
-
|
|
8
|
-
**当需要用户从多个选项中做出选择时,必须使用 Claude Code 内置的 AskUserQuestion 工具,将选项以参数传入。**
|
|
9
|
-
|
|
10
|
-
不要用编号列表让用户手动输入数字。
|
|
11
|
-
如果需要自由输入,在 AskUserQuestion 的选项中加入"Other(自定义输入)"。
|
|
12
|
-
|
|
13
|
-
---
|
|
14
|
-
|
|
15
|
-
你现在是 SillySpec 的项目初始化器。
|
|
16
|
-
|
|
17
|
-
## 用户输入
|
|
18
|
-
$ARGUMENTS
|
|
19
|
-
|
|
20
|
-
## 核心流程
|
|
21
|
-
|
|
22
|
-
这是一个从零开始创建新项目的完整流程。你的目标是:**在开始写任何代码之前,把需求彻底搞清楚。**
|
|
23
|
-
|
|
24
|
-
### Step 1: 检查工作区模式
|
|
25
|
-
|
|
26
|
-
```bash
|
|
27
|
-
ls .sillyspec/projects/*.yaml 2>/dev/null | grep -q .
|
|
28
|
-
```
|
|
29
|
-
|
|
30
|
-
如果 projects/ 目录存在且包含 .yaml 文件 → 工作区模式:
|
|
31
|
-
1. 列出所有子项目(读取 projects/*.yaml):
|
|
32
|
-
检测到工作区模式,请选择要初始化的子项目:
|
|
33
|
-
> 1. frontend — 前端 - Vue3 + TypeScript
|
|
34
|
-
> 2. backend — 后端 - Node.js + PostgreSQL
|
|
35
|
-
> 3. 新建子项目(先运行 /sillyspec:workspace add)
|
|
36
|
-
2. 用户选择后,**切换到该子项目目录**执行后续所有步骤
|
|
37
|
-
3. 后续步骤中的所有文件路径相对于子项目目录
|
|
38
|
-
|
|
39
|
-
否则 → 单项目模式,继续。
|
|
40
|
-
|
|
41
|
-
### Step 2: 检查项目状态
|
|
42
|
-
|
|
43
|
-
```bash
|
|
44
|
-
ls -la
|
|
45
|
-
```
|
|
46
|
-
|
|
47
|
-
如果目录已经有代码/配置文件 → 提示用 `/sillyspec:scan` 代替。
|
|
48
|
-
如果是空目录 → 继续。
|
|
49
|
-
|
|
50
|
-
### Step 3: 深度提问
|
|
51
|
-
|
|
52
|
-
**一次只问一个问题**,按以下顺序探索:
|
|
53
|
-
|
|
54
|
-
1. **项目本质** — 这个项目要解决什么问题?给谁用?
|
|
55
|
-
2. **核心功能** — 用户能做的最重要的事情是什么?
|
|
56
|
-
3. **技术偏好** — 有偏好的语言/框架吗?还是让我建议?
|
|
57
|
-
4. **非功能需求** — 性能要求?安全要求?离线支持?多语言?
|
|
58
|
-
5. **设计偏好** — 有参考产品吗?喜欢什么风格?
|
|
59
|
-
6. **约束** — 预算?时间?团队规模?
|
|
60
|
-
7. **不在范围内** — 明确什么不做
|
|
61
|
-
|
|
62
|
-
### Step 4: 技术选型(如需要)
|
|
63
|
-
|
|
64
|
-
如果用户没有明确偏好,基于项目需求推荐 2-3 套技术栈,列出优劣:
|
|
65
|
-
- 语言 + 框架 + 数据库 + 部署方案
|
|
66
|
-
- 给出推荐和理由
|
|
67
|
-
|
|
68
|
-
### Step 5: 可选调研
|
|
69
|
-
|
|
70
|
-
如果用户同意,对关键技术选型做快速调研:
|
|
71
|
-
- 选定框架的当前版本和生态状态
|
|
72
|
-
- 已知的坑和替代方案
|
|
73
|
-
- 依赖的第三方服务的稳定性
|
|
74
|
-
|
|
75
|
-
### Step 6: 生成需求文档
|
|
76
|
-
|
|
77
|
-
保存到 `.sillyspec/REQUIREMENTS.md`:
|
|
78
|
-
|
|
79
|
-
```markdown
|
|
80
|
-
# 需求文档
|
|
81
|
-
|
|
82
|
-
## 项目概述
|
|
83
|
-
[一句话描述]
|
|
84
|
-
|
|
85
|
-
## 目标用户
|
|
86
|
-
[谁在用、在什么场景下用]
|
|
87
|
-
|
|
88
|
-
## 功能需求
|
|
89
|
-
### P0 — 必须有
|
|
90
|
-
- [ ] 需求 1
|
|
91
|
-
- [ ] 需求 2
|
|
92
|
-
|
|
93
|
-
### P1 — 应该有
|
|
94
|
-
- [ ] 需求 3
|
|
95
|
-
|
|
96
|
-
### P2 — 有了更好
|
|
97
|
-
- [ ] 需求 4
|
|
98
|
-
|
|
99
|
-
## 非功能需求
|
|
100
|
-
- 性能:xxx
|
|
101
|
-
- 安全:xxx
|
|
102
|
-
- 部署:xxx
|
|
103
|
-
|
|
104
|
-
## 不在范围内
|
|
105
|
-
- xxx
|
|
106
|
-
- xxx
|
|
107
|
-
|
|
108
|
-
## 技术选型
|
|
109
|
-
| 层 | 选择 | 理由 |
|
|
110
|
-
|---|---|---|
|
|
111
|
-
| 前端 | React + TypeScript | xxx |
|
|
112
|
-
| 后端 | xxx | xxx |
|
|
113
|
-
| 数据库 | xxx | xxx |
|
|
114
|
-
```
|
|
115
|
-
|
|
116
|
-
### Step 7: 生成路线图:
|
|
117
|
-
|
|
118
|
-
```markdown
|
|
119
|
-
# 项目路线图
|
|
120
|
-
|
|
121
|
-
## Phase 1: 基础骨架
|
|
122
|
-
- 目标:可运行的最小版本
|
|
123
|
-
- 交付物:项目结构 + 基础配置 + 首个可运行页面/接口
|
|
124
|
-
|
|
125
|
-
## Phase 2: 核心功能
|
|
126
|
-
- 目标:P0 功能全部可用
|
|
127
|
-
- 交付物:xxx
|
|
128
|
-
|
|
129
|
-
## Phase 3: 完善
|
|
130
|
-
- 目标:P1 + 测试 + 打磨
|
|
131
|
-
- 交付物:xxx
|
|
132
|
-
```
|
|
133
|
-
|
|
134
|
-
### Step 8: 生成 PROJECT.md
|
|
135
|
-
|
|
136
|
-
保存到 `.sillyspec/PROJECT.md`:
|
|
137
|
-
|
|
138
|
-
```markdown
|
|
139
|
-
# PROJECT.md
|
|
140
|
-
|
|
141
|
-
## 项目名:xxx
|
|
142
|
-
## 一句话:xxx
|
|
143
|
-
## 状态:已初始化,等待规划
|
|
144
|
-
```
|
|
145
|
-
|
|
146
|
-
### Step 9: Git 初始化
|
|
147
|
-
|
|
148
|
-
```bash
|
|
149
|
-
git init
|
|
150
|
-
git add .
|
|
151
|
-
```
|
|
152
|
-
|
|
153
|
-
### 最后说:
|
|
154
|
-
|
|
155
|
-
> ✅ 项目初始化完成!
|
|
156
|
-
>
|
|
157
|
-
> 生成文件:
|
|
158
|
-
> - `.sillyspec/PROJECT.md` — 项目概述
|
|
159
|
-
> - `.sillyspec/REQUIREMENTS.md` — 需求文档
|
|
160
|
-
> - `.sillyspec/ROADMAP.md` — 路线图
|
|
161
|
-
>
|
|
162
|
-
> 下一步:
|
|
163
|
-
> - 开始第一个功能:`/sillyspec:brainstorm "Phase 1: xxx"`
|
|
164
|
-
> - 或修改需求:直接告诉我改什么
|
|
165
|
-
|
|
166
|
-
## 绝对规则
|
|
167
|
-
- 不写任何实现代码
|
|
168
|
-
- 不安装任何依赖
|
|
169
|
-
- 提问阶段一次一个问题
|
|
170
|
-
- 需求必须具体,不能模糊(❌"好用" → ✅"首屏加载 < 2 秒")
|
|
@@ -1,52 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: sillyspec:plan
|
|
3
|
-
description: 编写实现计划 — 2-5 分钟粒度,精确到文件路径和代码
|
|
4
|
-
---
|
|
5
|
-
|
|
6
|
-
## 执行
|
|
7
|
-
|
|
8
|
-
**你必须使用 exec 工具(shell)执行以下命令,不要自己编造流程:**
|
|
9
|
-
|
|
10
|
-
1. 运行 `sillyspec run plan` — 读取输出的步骤 prompt
|
|
11
|
-
2. 按照输出的 prompt **严格执行**,不要跳过或自行添加步骤
|
|
12
|
-
3. 步骤完成后,运行 `sillyspec run plan --done --output "你的摘要"`
|
|
13
|
-
4. 重复 2-3 直到阶段完成
|
|
14
|
-
5. **禁止**在没有运行 CLI 的情况下自行决定流程
|
|
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
|
-
|
|
51
|
-
## 用户指令
|
|
52
|
-
$ARGUMENTS
|
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: sillyspec:propose
|
|
3
|
-
description: 生成结构化规范 — proposal + design + tasks
|
|
4
|
-
---
|
|
5
|
-
|
|
6
|
-
## 执行
|
|
7
|
-
|
|
8
|
-
**你必须使用 exec 工具(shell)执行以下命令,不要自己编造流程:**
|
|
9
|
-
|
|
10
|
-
1. 运行 `sillyspec run propose` — 读取输出的步骤 prompt
|
|
11
|
-
2. 按照输出的 prompt **严格执行**,不要跳过或自行添加步骤
|
|
12
|
-
3. 步骤完成后,运行 `sillyspec run propose --done --output "你的摘要"`
|
|
13
|
-
4. 重复 2-3 直到阶段完成
|
|
14
|
-
5. **禁止**在没有运行 CLI 的情况下自行决定流程
|
|
15
|
-
|
|
16
|
-
## 用户指令
|
|
17
|
-
$ARGUMENTS
|
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: sillyspec:quick
|
|
3
|
-
description: 快速任务 — 跳过完整流程,直接做
|
|
4
|
-
---
|
|
5
|
-
|
|
6
|
-
## 执行
|
|
7
|
-
|
|
8
|
-
**你必须使用 exec 工具(shell)执行以下命令,不要自己编造流程:**
|
|
9
|
-
|
|
10
|
-
1. 运行 `sillyspec run quick` — 读取输出的步骤 prompt
|
|
11
|
-
2. 按照输出的 prompt **严格执行**,不要跳过或自行添加步骤
|
|
12
|
-
3. 步骤完成后,运行 `sillyspec run quick --done --output "你的摘要"`
|
|
13
|
-
4. 重复 2-3 直到阶段完成
|
|
14
|
-
5. **禁止**在没有运行 CLI 的情况下自行决定流程
|
|
15
|
-
|
|
16
|
-
## 用户指令
|
|
17
|
-
$ARGUMENTS
|
|
@@ -1,111 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: sillyspec:resume
|
|
3
|
-
description: 恢复工作 — 从中断处继续
|
|
4
|
-
---
|
|
5
|
-
|
|
6
|
-
## 交互规范
|
|
7
|
-
|
|
8
|
-
**当需要用户从多个选项中做出选择时,必须使用 Claude Code 内置的 AskUserQuestion 工具,将选项以参数传入。**
|
|
9
|
-
|
|
10
|
-
不要用编号列表让用户手动输入数字。
|
|
11
|
-
如果需要自由输入,在 AskUserQuestion 的选项中加入"Other(自定义输入)"。
|
|
12
|
-
|
|
13
|
-
你现在是 SillySpec 的恢复管理器。
|
|
14
|
-
|
|
15
|
-
## 流程
|
|
16
|
-
|
|
17
|
-
### 1. 读取 progress.json
|
|
18
|
-
|
|
19
|
-
```bash
|
|
20
|
-
sillyspec progress show 2>/dev/null
|
|
21
|
-
```
|
|
22
|
-
|
|
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` 查看。
|
|
49
|
-
|
|
50
|
-
然后问用户:
|
|
51
|
-
1. 直接继续执行下一步
|
|
52
|
-
2. 查看更多细节
|
|
53
|
-
|
|
54
|
-
### 3. 如果没有 progress.json
|
|
55
|
-
|
|
56
|
-
**不要直接说"没有记录"。** 自动探测项目状态:
|
|
57
|
-
|
|
58
|
-
```bash
|
|
59
|
-
# 检查主变更
|
|
60
|
-
ls .sillyspec/changes/*/MASTER.md 2>/dev/null
|
|
61
|
-
|
|
62
|
-
# 检查活跃变更
|
|
63
|
-
ls .d .sillyspec/changes/*/ | grep -v archive | grep -v stages | tail -1 2>/dev/null
|
|
64
|
-
|
|
65
|
-
# 检查子阶段
|
|
66
|
-
ls .sillyspec/changes/*/stages/*/proposal.md 2>/dev/null
|
|
67
|
-
|
|
68
|
-
# 检查代码库文档
|
|
69
|
-
ls .sillyspec/codebase/*.md 2>/dev/null
|
|
70
|
-
|
|
71
|
-
# 检查计划文件
|
|
72
|
-
ls -t .sillyspec/plans/*.md | head -1 2>/dev/null
|
|
73
|
-
|
|
74
|
-
# 检查需求/路线图
|
|
75
|
-
cat .sillyspec/REQUIREMENTS.md 2>/dev/null
|
|
76
|
-
cat .sillyspec/ROADMAP.md 2>/dev/null
|
|
77
|
-
```
|
|
78
|
-
|
|
79
|
-
#### 如果检测到 MASTER.md(大模块)
|
|
80
|
-
|
|
81
|
-
检查各阶段状态并输出阶段进度表(同步骤 2 格式)。
|
|
82
|
-
|
|
83
|
-
同时**运行 `sillyspec progress init`**,将探测到的信息写入 progress.json,后续命令执行时会自动更新。
|
|
84
|
-
|
|
85
|
-
#### 如果是普通变更(无 MASTER.md)
|
|
86
|
-
|
|
87
|
-
根据探测结果推断:
|
|
88
|
-
|
|
89
|
-
| 探测到的文件 | 推断阶段 | 建议操作 |
|
|
90
|
-
|---|---|---|
|
|
91
|
-
| 无任何 .sillyspec/ 内容 | 未开始 | `/sillyspec:init` 或 `/sillyspec:scan` |
|
|
92
|
-
| 有 SCAN-RAW.md 但缺失文档 | 扫描中断 | `/sillyspec:scan --deep`(断点续扫) |
|
|
93
|
-
| 有 codebase/ 但文档不全(快扫 3 份缺失) | 快扫中断 | `/sillyspec:scan`(补全缺失文档) |
|
|
94
|
-
| 有 codebase/ 7 份齐全但无 changes/ | 已扫描,未开始需求 | `/sillyspec:brainstorm "想法"` |
|
|
95
|
-
| 有 REQUIREMENTS.md 但无 changes/ | 绿地项目,已有需求 | `/sillyspec:brainstorm "想法"` |
|
|
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`** 记录推断的状态。
|
|
106
|
-
|
|
107
|
-
### 4. 关键原则
|
|
108
|
-
|
|
109
|
-
- **不需要 HANDOFF.json**。progress.json 是唯一的恢复数据源。
|
|
110
|
-
- **progress.json 不需要 Git 提交**(已在 .runtime/ 下,被 .gitignore 忽略)。
|
|
111
|
-
- **每次命令执行完自动更新 progress.json**(通过 `sillyspec progress` CLI),不需要用户手动保存。
|
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: sillyspec:scan
|
|
3
|
-
description: 代码扫描 — 分析项目结构、约定和架构
|
|
4
|
-
---
|
|
5
|
-
|
|
6
|
-
## 执行
|
|
7
|
-
|
|
8
|
-
**你必须使用 exec 工具(shell)执行以下命令,不要自己编造流程:**
|
|
9
|
-
|
|
10
|
-
1. 运行 `sillyspec run scan` — 读取输出的步骤 prompt
|
|
11
|
-
2. 按照输出的 prompt **严格执行**,不要跳过或自行添加步骤
|
|
12
|
-
3. 步骤完成后,运行 `sillyspec run scan --done --output "你的摘要"`
|
|
13
|
-
4. 重复 2-3 直到阶段完成
|
|
14
|
-
5. **禁止**在没有运行 CLI 的情况下自行决定流程
|
|
15
|
-
|
|
16
|
-
## 用户指令
|
|
17
|
-
$ARGUMENTS
|
|
@@ -1,54 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: sillyspec:state
|
|
3
|
-
description: 查看当前工作状态 — 显示 progress.json 内容
|
|
4
|
-
---
|
|
5
|
-
|
|
6
|
-
你现在是 SillySpec 的状态查看器。
|
|
7
|
-
|
|
8
|
-
## 流程
|
|
9
|
-
|
|
10
|
-
### 1. 读取 progress.json
|
|
11
|
-
|
|
12
|
-
```bash
|
|
13
|
-
sillyspec progress show 2>/dev/null
|
|
14
|
-
```
|
|
15
|
-
|
|
16
|
-
### 2. 如果有 progress.json
|
|
17
|
-
|
|
18
|
-
格式化展示当前状态:
|
|
19
|
-
|
|
20
|
-
> 📊 当前状态
|
|
21
|
-
>
|
|
22
|
-
> **变更**:<名称>
|
|
23
|
-
> **阶段**:<当前阶段>
|
|
24
|
-
> **进度**:<具体进度>
|
|
25
|
-
> **下一步**:<命令>
|
|
26
|
-
>
|
|
27
|
-
> **阶段进度**(大模块):
|
|
28
|
-
> (显示各阶段状态表)
|
|
29
|
-
>
|
|
30
|
-
> **关键决策**:
|
|
31
|
-
> - xxx
|
|
32
|
-
>
|
|
33
|
-
> **阻塞项**:
|
|
34
|
-
> - xxx(如无则省略)
|
|
35
|
-
|
|
36
|
-
### 3. 如果没有 progress.json
|
|
37
|
-
|
|
38
|
-
提示用户项目还没有开始,或 progress.json 尚未生成:
|
|
39
|
-
|
|
40
|
-
> 📊 还没有工作记录。
|
|
41
|
-
>
|
|
42
|
-
> 开始使用:
|
|
43
|
-
> - 新项目:`/sillyspec:init`
|
|
44
|
-
> - 已有项目:`/sillyspec:scan`
|
|
45
|
-
> - 恢复中断的工作:`/sillyspec:resume`
|
|
46
|
-
>
|
|
47
|
-
> progress.json 会在 `sillyspec init` 时自动创建。
|
|
48
|
-
|
|
49
|
-
### 注意
|
|
50
|
-
|
|
51
|
-
- 这是只读命令,**不修改任何文件**
|
|
52
|
-
- `/sillyspec:status` 查看项目整体进度(change 文件级别)
|
|
53
|
-
- `/sillyspec:state` 查看当前工作状态(progress.json 级别)
|
|
54
|
-
- 两者互补:status 看"有什么",state 看"在做什么"
|
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: sillyspec:status
|
|
3
|
-
description: 查看项目进度和状态
|
|
4
|
-
---
|
|
5
|
-
|
|
6
|
-
## 执行
|
|
7
|
-
|
|
8
|
-
**你必须使用 exec 工具(shell)执行以下命令,不要自己编造流程:**
|
|
9
|
-
|
|
10
|
-
1. 运行 `sillyspec run status` — 读取输出的步骤 prompt
|
|
11
|
-
2. 按照输出的 prompt **严格执行**,不要跳过或自行添加步骤
|
|
12
|
-
3. 步骤完成后,运行 `sillyspec run status --done --output "你的摘要"`
|
|
13
|
-
4. 重复 2-3 直到阶段完成
|
|
14
|
-
5. **禁止**在没有运行 CLI 的情况下自行决定流程
|
|
15
|
-
|
|
16
|
-
## 用户指令
|
|
17
|
-
$ARGUMENTS
|
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: sillyspec:verify
|
|
3
|
-
description: 验证实现 — 对照规范检查 + 测试套件
|
|
4
|
-
---
|
|
5
|
-
|
|
6
|
-
## 执行
|
|
7
|
-
|
|
8
|
-
**你必须使用 exec 工具(shell)执行以下命令,不要自己编造流程:**
|
|
9
|
-
|
|
10
|
-
1. 运行 `sillyspec run verify` — 读取输出的步骤 prompt
|
|
11
|
-
2. 按照输出的 prompt **严格执行**,不要跳过或自行添加步骤
|
|
12
|
-
3. 步骤完成后,运行 `sillyspec run verify --done --output "你的摘要"`
|
|
13
|
-
4. 重复 2-3 直到阶段完成
|
|
14
|
-
5. **禁止**在没有运行 CLI 的情况下自行决定流程
|
|
15
|
-
|
|
16
|
-
## 用户指令
|
|
17
|
-
$ARGUMENTS
|