sillyspec 3.11.10 → 3.12.0
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-brainstorm/SKILL.md +7 -5
- package/.claude/skills/sillyspec-resume/SKILL.md +21 -64
- package/.claude/skills/sillyspec-workspace/SKILL.md +10 -2
- package/docs/sillyspec/file-lifecycle.md +1110 -0
- package/package.json +2 -1
- package/src/db.js +168 -0
- package/src/hooks/worktree-guard.js +110 -26
- package/src/index.js +98 -2
- package/src/init.js +2 -8
- package/src/progress.js +652 -325
- package/src/run.js +123 -24
- package/src/stages/archive.js +7 -11
- package/src/stages/verify.js +6 -6
- package/src/sync.js +497 -0
- package/src/worktree.js +30 -0
- package/.npmrc.tmp +0 -1
|
@@ -8,8 +8,6 @@ description: 用于正式开始开发前的需求澄清和技术方案设计。
|
|
|
8
8
|
## 用法
|
|
9
9
|
用户触发此 skill 时,使用 `sillyspec run brainstorm` 逐步执行需求探索。
|
|
10
10
|
|
|
11
|
-
**⚠️ 必须指定变更名!**
|
|
12
|
-
|
|
13
11
|
## 执行步骤
|
|
14
12
|
|
|
15
13
|
1. 确定变更名(格式:`YYYY-MM-DD-<简短描述>`,如 `2026-05-28-agent-log-streaming`)
|
|
@@ -21,9 +19,12 @@ description: 用于正式开始开发前的需求澄清和技术方案设计。
|
|
|
21
19
|
## 示例
|
|
22
20
|
|
|
23
21
|
```bash
|
|
24
|
-
#
|
|
22
|
+
# 首次启动(推荐指定变更名)
|
|
25
23
|
sillyspec run brainstorm --change 2026-05-28-agent-log-streaming
|
|
26
24
|
|
|
25
|
+
# 不指定变更名时自动生成(格式:YYYY-MM-DD-new-change)
|
|
26
|
+
sillyspec run brainstorm
|
|
27
|
+
|
|
27
28
|
# 完成当前步骤
|
|
28
29
|
sillyspec run brainstorm --done --change 2026-05-28-agent-log-streaming --output "需求已澄清"
|
|
29
30
|
|
|
@@ -35,7 +36,8 @@ sillyspec run brainstorm --reset --change 2026-05-28-agent-log-streaming
|
|
|
35
36
|
```
|
|
36
37
|
|
|
37
38
|
## 注意
|
|
38
|
-
-
|
|
39
|
+
- 推荐指定 `--change <变更名>`(格式:`YYYY-MM-DD-<简短描述>`),不指定时自动生成 `YYYY-MM-DD-new-change`
|
|
39
40
|
- 步骤 prompt 由 CLI 管理,不需要手动读取
|
|
40
41
|
- 依赖 scan 阶段完成,CLI 会自动提醒
|
|
41
|
-
- brainstorm
|
|
42
|
+
- brainstorm 阶段末步会自动生成四件套(proposal.md + design.md + requirements.md + tasks.md)
|
|
43
|
+
- brainstorm 完成后,运行 `sillyspec run plan --change <变更名>` 进入实现计划
|
|
@@ -5,107 +5,64 @@ 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
|
+
|
|
13
15
|
你现在是 SillySpec 的恢复管理器。
|
|
14
16
|
|
|
15
17
|
## 流程
|
|
16
18
|
|
|
17
|
-
### 1.
|
|
19
|
+
### 1. 读取进度
|
|
18
20
|
|
|
19
21
|
```bash
|
|
20
|
-
sillyspec
|
|
22
|
+
sillyspec progress show
|
|
21
23
|
```
|
|
22
24
|
|
|
23
25
|
### 2. 如果有 progress.json
|
|
24
26
|
|
|
25
|
-
|
|
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 run resume --status` 查看。
|
|
27
|
+
从 progress.json 中提取并展示当前状态,使用 `sillyspec progress show` 查看。
|
|
49
28
|
|
|
50
29
|
然后问用户:
|
|
51
30
|
1. 直接继续执行下一步
|
|
52
31
|
2. 查看更多细节
|
|
53
32
|
|
|
54
|
-
### 3. 如果没有 progress.json
|
|
33
|
+
### 3. 如果没有 progress.json 或变更目录
|
|
55
34
|
|
|
56
|
-
|
|
35
|
+
自动探测项目状态:
|
|
57
36
|
|
|
58
37
|
```bash
|
|
59
|
-
# 检查主变更
|
|
60
|
-
ls .sillyspec/changes/*/MASTER.md 2>/dev/null
|
|
61
|
-
|
|
62
38
|
# 检查活跃变更
|
|
63
|
-
ls -d .sillyspec/changes/*/ | grep -v archive
|
|
64
|
-
|
|
65
|
-
# 检查子阶段
|
|
66
|
-
ls .sillyspec/changes/*/stages/*/proposal.md 2>/dev/null
|
|
39
|
+
ls -d .sillyspec/changes/*/ | grep -v archive 2>/dev/null
|
|
67
40
|
|
|
68
|
-
#
|
|
69
|
-
ls .sillyspec/
|
|
41
|
+
# 检查大需求拆分
|
|
42
|
+
ls .sillyspec/changes/*/MASTER.md 2>/dev/null
|
|
70
43
|
|
|
71
|
-
#
|
|
72
|
-
ls
|
|
44
|
+
# 检查扫描文档
|
|
45
|
+
ls .sillyspec/docs/*/scan/ 2>/dev/null | wc -l
|
|
73
46
|
|
|
74
47
|
# 检查需求/路线图
|
|
75
48
|
cat .sillyspec/REQUIREMENTS.md 2>/dev/null
|
|
76
49
|
cat .sillyspec/ROADMAP.md 2>/dev/null
|
|
77
50
|
```
|
|
78
51
|
|
|
79
|
-
#### 如果检测到 MASTER.md(大模块)
|
|
80
|
-
|
|
81
|
-
检查各阶段状态并输出阶段进度表(同步骤 2 格式)。
|
|
82
|
-
|
|
83
|
-
同时**运行 `sillyspec run resume --init`**,将探测到的信息写入 progress.json,后续命令执行时会自动更新。
|
|
84
|
-
|
|
85
|
-
#### 如果是普通变更(无 MASTER.md)
|
|
86
|
-
|
|
87
52
|
根据探测结果推断:
|
|
88
53
|
|
|
89
54
|
| 探测到的文件 | 推断阶段 | 建议操作 |
|
|
90
55
|
|---|---|---|
|
|
91
56
|
| 无任何 .sillyspec/ 内容 | 未开始 | `/sillyspec:init` 或 `/sillyspec:scan` |
|
|
92
|
-
| 有
|
|
93
|
-
| 有
|
|
94
|
-
| 有 codebase/ 7 份齐全但无 changes/ | 已扫描,未开始需求 | `/sillyspec:brainstorm "想法"` |
|
|
57
|
+
| 有 docs/ 但缺失文档 | 扫描中断 | `/sillyspec:scan`(断点续扫) |
|
|
58
|
+
| 有 docs/ 7 份齐全但无 changes/ | 已扫描,未开始需求 | `/sillyspec:brainstorm "想法"` |
|
|
95
59
|
| 有 REQUIREMENTS.md 但无 changes/ | 绿地项目,已有需求 | `/sillyspec:brainstorm "想法"` |
|
|
96
|
-
| changes/ 下有 proposal,无
|
|
97
|
-
| changes/ 下有 tasks
|
|
98
|
-
| tasks.md
|
|
99
|
-
|
|
100
|
-
**扫描中断检测逻辑:**
|
|
101
|
-
- 有 `SCAN-RAW.md` → 说明深度扫描预处理已完成,检查 7 份文档缺哪些
|
|
102
|
-
- 有部分 codebase 文档(如只有 STACK 和 STRUCTURE)→ 说明快扫或深扫中断
|
|
103
|
-
- 缺失的文档列表直接展示给用户,告知 `/sillyspec:scan` 会自动跳过已存在的文档
|
|
104
|
-
|
|
105
|
-
**同时运行 `sillyspec run resume --init`** 记录推断的状态。
|
|
60
|
+
| changes/ 下有 proposal + design,无 plan.md | 已有规范,待计划 | `/sillyspec:plan` |
|
|
61
|
+
| changes/ 下有 plan.md,tasks 有未完成项 | 执行中 | `/sillyspec:execute` |
|
|
62
|
+
| tasks.md / plan.md 全部 checkbox 已勾选 | 待验证 | `/sillyspec:verify` |
|
|
63
|
+
| 已验证通过 | 待归档 | `/sillyspec:archive` |
|
|
106
64
|
|
|
107
65
|
### 4. 关键原则
|
|
108
66
|
|
|
109
|
-
-
|
|
110
|
-
-
|
|
111
|
-
- **每次命令执行完自动更新 progress.json**(通过 `sillyspec run <stage> --done`),不需要用户手动保存。
|
|
67
|
+
- progress.json 是唯一的恢复数据源(存储在 `.sillyspec/changes/<name>/progress.json` 或旧版 `.sillyspec/.runtime/progress.json`)
|
|
68
|
+
- progress.json 随 `sillyspec run <stage> --done` 自动更新,不需要手动保存
|
|
@@ -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> # 可选
|
|
64
62
|
```
|
|
63
|
+
> ⚠️ `sillyspec init` 只会写入 `name`、`path`、`status` 三个字段。
|
|
64
|
+
> `role` 和 `repo` 由 `/sillyspec:workspace add` 追加。
|
|
65
65
|
5. 创建 `.sillyspec/shared/` 目录
|
|
66
66
|
|
|
67
67
|
#### 3b. 添加子项目(`add`)
|
|
@@ -129,6 +129,14 @@ 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 字段):**
|
|
132
140
|
```yaml
|
|
133
141
|
name: frontend
|
|
134
142
|
path: ./frontend
|