sillyspec 2.4.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.
Files changed (59) hide show
  1. package/.claude/commands/sillyspec/archive.md +63 -0
  2. package/.claude/commands/sillyspec/brainstorm.md +463 -0
  3. package/.claude/commands/sillyspec/continue.md +44 -0
  4. package/.claude/commands/sillyspec/execute.md +255 -0
  5. package/.claude/commands/sillyspec/explore.md +88 -0
  6. package/.claude/commands/sillyspec/export.md +53 -0
  7. package/.claude/commands/sillyspec/init.md +166 -0
  8. package/.claude/commands/sillyspec/plan.md +238 -0
  9. package/.claude/commands/sillyspec/propose.md +234 -0
  10. package/.claude/commands/sillyspec/quick.md +62 -0
  11. package/.claude/commands/sillyspec/resume.md +100 -0
  12. package/.claude/commands/sillyspec/scan.md +672 -0
  13. package/.claude/commands/sillyspec/status.md +122 -0
  14. package/.claude/commands/sillyspec/verify.md +141 -0
  15. package/.claude/commands/sillyspec/workspace.md +122 -0
  16. package/README.md +158 -0
  17. package/SKILL.md +46 -0
  18. package/adapters/adapters.sh +172 -0
  19. package/bin/sillyspec.js +2 -0
  20. package/commands/sillyspec/archive.md +62 -0
  21. package/commands/sillyspec/brainstorm.md +462 -0
  22. package/commands/sillyspec/continue.md +41 -0
  23. package/commands/sillyspec/execute.md +254 -0
  24. package/commands/sillyspec/explore.md +85 -0
  25. package/commands/sillyspec/export.md +51 -0
  26. package/commands/sillyspec/init.md +163 -0
  27. package/commands/sillyspec/plan.md +237 -0
  28. package/commands/sillyspec/propose.md +233 -0
  29. package/commands/sillyspec/quick.md +59 -0
  30. package/commands/sillyspec/resume.md +99 -0
  31. package/commands/sillyspec/scan.md +671 -0
  32. package/commands/sillyspec/status.md +119 -0
  33. package/commands/sillyspec/verify.md +140 -0
  34. package/commands/sillyspec/workspace.md +120 -0
  35. package/package.json +14 -0
  36. package/scripts/init.sh +2 -0
  37. package/scripts/install.ps1 +316 -0
  38. package/scripts/scan-preprocess.sh +378 -0
  39. package/scripts/validate-all.sh +50 -0
  40. package/scripts/validate-plan.sh +44 -0
  41. package/scripts/validate-proposal.sh +87 -0
  42. package/scripts/validate-scan.sh +90 -0
  43. package/src/index.js +560 -0
  44. package/src/init.js +269 -0
  45. package/templates/archive.md +58 -0
  46. package/templates/brainstorm.md +458 -0
  47. package/templates/continue.md +39 -0
  48. package/templates/execute.md +250 -0
  49. package/templates/explore.md +83 -0
  50. package/templates/export.md +48 -0
  51. package/templates/init.md +161 -0
  52. package/templates/plan.md +233 -0
  53. package/templates/propose.md +229 -0
  54. package/templates/quick.md +57 -0
  55. package/templates/resume.md +95 -0
  56. package/templates/scan.md +667 -0
  57. package/templates/status.md +117 -0
  58. package/templates/verify.md +136 -0
  59. package/templates/workspace.md +117 -0
@@ -0,0 +1,117 @@
1
+ ---
2
+
3
+ 你现在是 SillySpec 的状态检查器。
4
+
5
+ ## 流程
6
+
7
+ ### 0: 检查工作区模式
8
+
9
+ ```bash
10
+ cat .sillyspec/config.yaml 2>/dev/null
11
+ ```
12
+
13
+ **如果是工作区模式:**
14
+
15
+ 1. 读取 config.yaml 获取子项目列表
16
+ 2. 对每个子项目执行 Step 1-5 的检查(在子项目目录下)
17
+ 3. 检查共享规范:
18
+ ```bash
19
+ ls .sillyspec/shared/ 2>/dev/null
20
+ ```
21
+ 4. 检查工作区概览:
22
+ ```bash
23
+ ls .sillyspec/workspace/ 2>/dev/null
24
+ ```
25
+ 5. 输出汇总:
26
+
27
+ ```
28
+ 🏢 工作区状态
29
+
30
+ 📦 子项目:
31
+
32
+ ✅ frontend ./frontend
33
+ 📋 项目:已初始化
34
+ 📂 代码库:已扫描(7 份文档)
35
+ 🔄 进行中:1 个变更
36
+ - [user-auth] Phase 3 (Execute) — tasks 5/8
37
+ ✅ 已归档:3 个变更
38
+
39
+ ⚠️ backend ./backend
40
+ 📋 项目:已初始化
41
+ 📂 代码库:未扫描
42
+ 🔄 进行中:0 个变更
43
+
44
+ 📄 共享规范:2 份
45
+ - api-contract.md
46
+ - data-models.md
47
+
48
+ 💡 下一步:
49
+ - 扫描 backend:/sillyspec:scan backend
50
+ - 继续开发:/sillyspec:continue
51
+ ```
52
+
53
+ 然后结束,不执行下面的单项目流程。
54
+
55
+ **如果不是工作区模式:** 继续下面的单项目流程。
56
+
57
+ ### 1. 项目基础
58
+
59
+ ```bash
60
+ cat .sillyspec/PROJECT.md 2>/dev/null || echo "未初始化"
61
+ ls .sillyspec/codebase/ 2>/dev/null | head -10
62
+ cat .sillyspec/REQUIREMENTS.md 2>/dev/null | head -20
63
+ cat .sillyspec/ROADMAP.md 2>/dev/null
64
+ ```
65
+
66
+ ### 2. 进行中的变更
67
+
68
+ ```bash
69
+ ls .sillyspec/changes/ 2>/dev/null | grep -v archive
70
+ ```
71
+
72
+ 对每个进行中的变更,检查文件完成度:
73
+ - proposal.md ✅/❌
74
+ - design.md ✅/❌
75
+ - specs/requirements.md ✅/❌
76
+ - tasks.md — X/Y 完成
77
+ - 对应计划 .sillyspec/plans/ ✅/❌
78
+
79
+ ### 3. 归档历史
80
+
81
+ ```bash
82
+ ls .sillyspec/changes/archive/ 2>/dev/null | wc -l
83
+ ```
84
+
85
+ ### 4. 中断状态
86
+
87
+ ```bash
88
+ cat .sillyspec/HANDOFF.json 2>/dev/null
89
+ ```
90
+
91
+ ### 5. 代码库文档
92
+
93
+ ```bash
94
+ ls .sillyspec/codebase/ 2>/dev/null
95
+ ```
96
+
97
+ ### 6. 输出
98
+
99
+ ```
100
+ 📊 SillySpec 状态
101
+
102
+ 📋 项目:xxx(已初始化 / 未初始化)
103
+ 📂 代码库:已扫描(7 份文档)/ 未扫描
104
+
105
+ 🔄 进行中:N 个变更
106
+ - [change-1] Phase 3 (Execute) — tasks 5/8
107
+ - [change-2] Phase 2 (Propose) — 缺少 design.md
108
+
109
+ ✅ 已归档:N 个变更
110
+ 📝 设计文档:N 份
111
+ 📝 实现计划:N 份
112
+
113
+ 💡 下一步:/sillyspec:continue
114
+ ```
115
+
116
+ ## 绝对规则
117
+ - 不修改任何文件
@@ -0,0 +1,136 @@
1
+ 你现在是 SillySpec 的验证器。
2
+
3
+ ## 🛑 流程控制(必须先执行)
4
+
5
+ **在开始任何工作之前,先调用 SillySpec CLI 检查当前状态:**
6
+
7
+ ```bash
8
+ sillyspec status --json
9
+ ```
10
+
11
+ **根据 CLI 返回的 phase 决定是否允许执行 verify:**
12
+ - `phase: "verify"` → ✅ 可以继续
13
+ - 其他 phase → ❌ 不允许跳步,提示用户运行 `sillyspec next` 获取正确步骤
14
+
15
+ **不要跳过状态检查。不要自己推断阶段。以 CLI 为准。**
16
+
17
+ ## 流程
18
+
19
+ ### 1. 加载规范
20
+
21
+ ```bash
22
+ LATEST=$(ls -d .sillyspec/changes/*/ | grep -v archive | tail -1)
23
+ cat "$LATEST/proposal.md"
24
+ cat "$LATEST/design.md"
25
+ cat "$LATEST/tasks.md"
26
+ cat "$LATEST/specs/requirements.md" 2>/dev/null
27
+ ```
28
+
29
+ ### 1.5 锚定确认(必须完成)
30
+
31
+ 读取相关规范文件。对于存在的文件,确认理解;对于不存在的文件,标注跳过:
32
+
33
+ ```
34
+ 已读取并理解:
35
+ - [x] proposal.md — 变更动机和范围(如果存在)
36
+ - [x] design.md — 技术方案和文件变更(如果存在)
37
+ - [x] tasks.md — 实现清单(如果存在)
38
+ - [x] specs/requirements.md — 需求和场景(如果存在)
39
+
40
+ 所有可用上下文已加载,开始验证。
41
+ ```
42
+
43
+ **文件不存在不是错误**。只确认实际存在的文件。不准跳过此步骤。
44
+
45
+ ### 2. 逐项检查 tasks.md
46
+
47
+ 对每个 checkbox 报告状态:
48
+ - ✅ 已完成 / ❌ 未完成 / ⚠️ 部分完成
49
+
50
+ ### 3. 对照 design.md
51
+
52
+ - 架构决策是否遵循?
53
+ - 文件变更清单是否一致?
54
+ - 数据模型是否符合?
55
+ - API 设计是否符合?
56
+
57
+ ### 4. 运行完整测试套件(fresh run)
58
+
59
+ ```bash
60
+ # 根据项目技术栈运行
61
+ pnpm test 2>/dev/null || npm test 2>/dev/null || pytest 2>/dev/null || go test ./... 2>/dev/null
62
+ ```
63
+
64
+ 记录通过/失败数量。如有失败,分析原因。
65
+
66
+ ### 5. 代码质量扫描
67
+
68
+ ```bash
69
+ # 搜索技术债务标记
70
+ grep -r "TODO\|FIXME\|HACK\|XXX" src/ lib/ app/ --include="*.ts" --include="*.tsx" --include="*.py" --include="*.js" 2>/dev/null | head -20
71
+ ```
72
+
73
+ ### 6. 输出验证报告
74
+
75
+ ```markdown
76
+ # SillySpec 验证报告
77
+
78
+ ## 任务完成度
79
+ - [x] Task 1: xxx ✅
80
+ - [x] Task 2: xxx ✅
81
+ - [ ] Task 3: xxx ❌ 未实现
82
+ 完成度:2/3
83
+
84
+ ## 设计一致性
85
+ - ✅ 架构决策遵循
86
+ - ⚠️ API 返回格式与 design.md 略有差异(缺少 error 字段)
87
+
88
+ ## 测试结果
89
+ - passed: 42, failed: 3
90
+
91
+ ## 技术债务标记
92
+ - src/auth/login.ts:15 // TODO: add rate limiting
93
+ - src/auth/login.ts:45 // FIXME: token expiry
94
+
95
+ ## 结论
96
+ ⚠️ PASS WITH NOTES
97
+ ```
98
+
99
+ ## 脚本校验(硬验证)
100
+
101
+ 在输出验证报告之前,运行综合校验脚本:
102
+
103
+ ```bash
104
+ bash scripts/validate-all.sh
105
+ ```
106
+
107
+ 将脚本输出纳入验证报告中的"设计一致性"部分。
108
+
109
+ ### 7. 最后说:
110
+
111
+ **用 CLI 验证并获取下一步:**
112
+
113
+ ```bash
114
+ sillyspec status --json
115
+ ```
116
+
117
+ 展示结果给用户,然后:
118
+
119
+ ```bash
120
+ sillyspec next
121
+ ```
122
+
123
+ 将 CLI 返回的命令推荐给用户。**不要自己编建议。**
124
+
125
+ ### 8. 更新 STATE.md
126
+
127
+ verify 完成后,**必须自动更新** `.sillyspec/STATE.md`:
128
+
129
+ - 当前阶段改为 `verify ✅` 或 `verify ⚠️`
130
+ - 下一步改为 `/sillyspec:archive`(PASS 时)或 `修复后重新 /sillyspec:verify`
131
+ - 如果是子阶段,更新阶段进度;如果全部阶段完成,下一步改为 `/sillyspec:archive`
132
+ - 历史记录追加时间 + 验证结果
133
+
134
+ ## 绝对规则
135
+ - 不修改任何代码
136
+ - 只做检查和报告
@@ -0,0 +1,117 @@
1
+ ---
2
+
3
+ 你现在是 SillySpec 的工作区管理器。
4
+
5
+ ## 用户指令
6
+ $ARGUMENTS
7
+
8
+ ## 核心流程
9
+
10
+ ### Step 1: 检查工作区配置
11
+
12
+ ```bash
13
+ cat .sillyspec/config.yaml 2>/dev/null
14
+ ```
15
+
16
+ 如果不存在 → 这是一个尚未配置工作区的项目。询问用户是否要初始化工作区。
17
+
18
+ ### Step 2: 解析指令
19
+
20
+ 根据 `$ARGUMENTS` 或默认行为:
21
+
22
+ - **无参数 / `status`** → 显示工作区状态
23
+ - **`add`** → 添加子项目
24
+ - **`remove`** → 移除子项目
25
+ - **`info`** → 显示某个子项目详情
26
+ - 无参数且 config.yaml 不存在 → 初始化工作区
27
+
28
+ ### Step 3: 执行对应操作
29
+
30
+ #### 3a. 初始化工作区(config.yaml 不存在时)
31
+
32
+ 1. 询问工作区名称(默认用当前目录名)
33
+ 2. 逐个添加子项目:
34
+ - 询问子项目名称(如 `frontend`、`backend`)
35
+ - 询问子项目路径(相对于工作区根目录,如 `./frontend`)
36
+ - 询问子项目角色描述(如 `前端 - Vue3 + TypeScript`)
37
+ - 验证路径存在
38
+ - 问是否继续添加
39
+ 3. 询问共享规范文件
40
+ 4. 生成 `.sillyspec/config.yaml`
41
+ 5. 创建 `.sillyspec/shared/` 目录
42
+
43
+ #### 3b. 添加子项目(`add`)
44
+
45
+ 1. 询问名称、路径、角色
46
+ 2. 验证路径存在
47
+ 3. 更新 `.sillyspec/config.yaml` 中的 `projects` 字段
48
+ 4. Git 提交
49
+
50
+ #### 3c. 移除子项目(`remove`)
51
+
52
+ 1. 显示当前所有子项目列表
53
+ 2. 询问要移除哪个
54
+ 3. 从 config.yaml 中删除对应条目
55
+ 4. Git 提交
56
+
57
+ #### 3d. 工作区状态(`status`,默认)
58
+
59
+ 读取 config.yaml,对每个子项目检查:
60
+
61
+ ```bash
62
+ # 对每个子项目
63
+ cd <子项目路径>
64
+ ls .sillyspec/ 2>/dev/null
65
+ cat .sillyspec/PROJECT.md 2>/dev/null
66
+ ls .sillyspec/codebase/ 2>/dev/null | wc -l
67
+ ```
68
+
69
+ 输出格式:
70
+
71
+ ```
72
+ 🏢 工作区:<workspace-name>
73
+
74
+ 📦 子项目(N 个):
75
+ ✅ frontend ./frontend 前端 - Vue3 + TypeScript 已扫描(7 份文档)
76
+ ⚠️ backend ./backend 后端 - Node.js 已初始化(未扫描)
77
+ ❌ miniprogram ./miniprogram 小程序 - Taro 未初始化
78
+
79
+ 📄 共享规范:2 份
80
+ - api-contract.md
81
+ - data-models.md
82
+
83
+ 💡 操作:
84
+ /sillyspec:workspace add — 添加子项目
85
+ /sillyspec:workspace remove — 移除子项目
86
+ /sillyspec:init — 初始化子项目
87
+ /sillyspec:scan — 扫描子项目
88
+ ```
89
+
90
+ #### 3e. 子项目详情(`info <name>`)
91
+
92
+ 显示指定子项目的详细信息,包括 PROJECT.md、REQUIREMENTS.md 内容摘要、代码库文档列表。
93
+
94
+ ### Step 4: config.yaml 格式
95
+
96
+ 保持标准格式:
97
+
98
+ ```yaml
99
+ projects:
100
+ <name>:
101
+ path: <relative-path>
102
+ role: <description>
103
+
104
+ shared:
105
+ - <filename.md>
106
+ ```
107
+
108
+ ### 最后说:
109
+
110
+ > 工作区已更新。
111
+ > 下一步:对子项目运行 `/sillyspec:init` 或 `/sillyspec:scan`。
112
+
113
+ ## 绝对规则
114
+ - 不修改子项目目录下的任何文件
115
+ - config.yaml 必须是合法 YAML
116
+ - 子项目路径必须是相对于工作区根目录的相对路径
117
+ - 路径必须验证存在性