sillyspec 3.10.7 → 3.11.1

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.
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: sillyspec:archive
3
- description: 归档变更 规范沉淀,可追溯
3
+ description: 用于归档已验证完成的变更。适合用户说"归档、archive、收尾这个变更"。执行模块影响分析 + 同步模块文档 + 移动到 archive 目录 + 更新 ROADMAP。
4
4
  ---
5
5
 
6
6
  ## 多变更说明
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: sillyspec:brainstorm
3
- description: 需求探索 — 结构化头脑风暴,含技术方案输出(创建性工作前必用)
3
+ description: 用于正式开始开发前的需求澄清和技术方案设计。适合用户提出新功能、新模块、架构调整、复杂改造,或说"先做需求分析、输出技术方案、创建变更前先梳理、帮我设计下"。产出结构化方案,但不直接写代码。
4
4
  ---
5
5
 
6
6
  ## 多变更说明
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: sillyspec:doctor
3
- description: 项目自检 检查 CLI、配置、构建环境和外部依赖
3
+ description: 用于 SillySpec 自检和状态修复。适合用户说"检查下状态、修复 progress、doctor、状态不对"。全量扫描进度一致性,修复 progress.json 与实际产出不匹配的问题。
4
4
  ---
5
5
 
6
6
  ## 前置检查
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: sillyspec:execute
3
- description: 波次执行 子代理并行 + 强制 TDD + 两阶段审查
3
+ description: 用于按 plan 执行代码实现。适合用户说"开始写代码、执行任务、跑 execute、开干"。按 plan.md 中的 Wave 和 Task 逐步实现,遵循 design.md 和模块文档。
4
4
  ---
5
5
 
6
6
  ## 多变更说明
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: sillyspec:explore
3
- description: 自由思考模式 讨论、画图、调研,不写代码
3
+ description: 用于自由讨论、代码库调研、方案比较、画 ASCII 图、澄清问题。适合用户说"分析下、讨论下、看看怎么设计、先别写代码、调研一下、画个结构图、帮我再分析下"。只读,不修改文件,不实现功能。
4
4
  ---
5
5
 
6
6
  ## 交互规范
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: sillyspec:plan
3
- description: 编写实现计划 2-5 分钟粒度,精确到文件路径和代码
3
+ description: 用于把 design 拆解为可执行的实现计划。适合用户说"拆任务、做计划、排 wave、规划实现步骤"。产出 plan.md(Wave 分组 + Task 列表 + 依赖关系)。
4
4
  ---
5
5
 
6
6
  ## 多变更说明
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: sillyspec:quick
3
- description: 快速任务 跳过完整流程,直接做
3
+ description: 用于明确、低风险、范围很小的直接任务。适合用户说"直接改、快速修、顺手调整、改个文案、修个小 bug、更新一个文件、不要完整流程"。跳过 brainstorm/plan,但仍按 sillyspec quick 流程执行。
4
4
  ---
5
5
 
6
6
  ## 多变更说明
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: sillyspec:scan
3
- description: 代码扫描 分析项目结构、约定和架构
3
+ description: 用于扫描项目代码库,生成架构文档、代码约定、目录结构等。适合用户说"扫描项目、分析代码库、生成文档、scan"。产出 7 份扫描文档 + 模块映射。
4
4
  ---
5
5
 
6
6
  ## 多变更说明
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: sillyspec:status
3
- description: 查看项目进度和状态
3
+ description: 用于查看 SillySpec 当前进度和状态。适合用户说"看下状态、当前进度、status"。显示当前阶段、步骤完成度、活跃变更。
4
4
  ---
5
5
 
6
6
  ## 多变更说明
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: sillyspec:verify
3
- description: 验证实现 对照规范检查 + 测试套件
3
+ description: 用于验证代码实现是否符合 design 和模块文档。适合用户说"验证下、检查下、跑 verify"。对照 design.md + 模块文档检查任务完成度、设计一致性、运行测试。
4
4
  ---
5
5
 
6
6
  ## 多变更说明
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "sillyspec",
3
- "version": "3.10.7",
3
+ "version": "3.11.1",
4
4
  "description": "SillySpec CLI — 流程状态机,让 AI 严格按步骤来",
5
5
  "icon": "logo.jpg",
6
6
  "homepage": "https://sillyspec.ppdmq.top/",
@@ -18,19 +18,141 @@ export const definition = {
18
18
  outputHint: '完成度报告',
19
19
  optional: false
20
20
  },
21
+ {
22
+ name: 'extract-module-impact',
23
+ prompt: `分析本次变更影响的模块,生成模块影响记录。
24
+
25
+ ### 操作
26
+ 1. 读取变更目录下的 proposal.md、design.md、tasks.md
27
+ 2. 运行 \`git diff --name-only HEAD~1\`(或 \`git diff --name-only --cached\`)获取真实修改文件列表
28
+ 3. 读取 \`.sillyspec/docs/<project>/modules/_module-map.yaml\`
29
+ - **如果不存在**:提示"建议运行 scan 生成模块映射",但继续执行。跳到步骤 7 生成只有 unmapped 部分的 module-impact.md
30
+ 4. 三重交叉验证:
31
+ - 声明范围:proposal.md / design.md 中的"变更范围"/"文件变更清单"
32
+ - 任务范围:tasks.md / plan.md 中的任务文件路径
33
+ - 真实变更:git diff 文件列表
34
+ - **以 git diff 为准**(真实 > 声明)
35
+ 5. 将 git diff 文件按 \`_module-map.yaml\` 的 paths glob 匹配到模块
36
+ 6. 生成模块影响矩阵:
37
+
38
+ | 模块 | 影响类型 | 相关文件 | 更新内容摘要 |
39
+ |------|----------|----------|-------------|
40
+
41
+ 影响类型:逻辑变更 / 数据结构变更 / 接口变更 / 调用关系变更 / 配置变更 / 新增
42
+
43
+ 7. 未匹配到任何模块的文件归入"未匹配文件"表格
44
+ 8. 生成 \`.sillyspec/changes/<change-name>/module-impact.md\`,格式:
45
+
46
+ \`\`\`markdown
47
+ # 模块影响分析
48
+
49
+ author: <git用户名>
50
+ created_at: <YYYY-MM-DD HH:mm:ss>
51
+
52
+ ## 变更:<change-name>
53
+
54
+ ## 模块影响矩阵
55
+ | 模块 | 影响类型 | 相关文件 | 更新内容摘要 |
56
+ |------|----------|----------|-------------|
57
+
58
+ ## 未匹配文件
59
+ | 文件路径 | 说明 |
60
+ |----------|------|
61
+
62
+ ## 更新结果
63
+ (sync-module-docs 步骤完成后回填)
64
+ | 模块文档 | 操作 | 状态 |
65
+ |----------|------|------|
66
+ \`\`\`
67
+
68
+ ### 输出
69
+ module-impact.md 路径 + 影响模块数量 + 未匹配文件数量`,
70
+ outputHint: 'module-impact.md 路径 + 影响摘要',
71
+ optional: false
72
+ },
73
+ {
74
+ name: 'sync-module-docs',
75
+ prompt: `根据 module-impact.md 同步更新模块设计文档。
76
+
77
+ ### 原则
78
+ - 模块文档正文**永远描述当前状态**(快照模式),不是变更日志
79
+ - 底部只保留轻量变更索引
80
+ - 模块文档是下一次 AI 开发前必须读取的上下文
81
+
82
+ ### 操作
83
+ 1. 读取 \`.sillyspec/changes/<change-name>/module-impact.md\`
84
+ 2. 如果没有受影响模块(只有 unmapped)→ 提示用户,跳过同步
85
+ 3. 对每个受影响模块:
86
+ a. 读取 \`.sillyspec/docs/<project>/modules/<module>.md\`(如不存在则新建)
87
+ b. 根据 module-impact.md 中的"更新内容摘要",更新模块文档
88
+ c. **更新规则**:
89
+ - 新建:全量生成,使用下方模板
90
+ - 更新:只改相关章节(当前设计/对外接口/依赖关系等),保持其他章节不变
91
+ - 正文重写为当前状态,不追加历史
92
+ - 底部"变更索引"追加一行:\`| <日期> | <变更名> | <一句话摘要> |\`
93
+ d. 更新头部元数据:\`> 最后更新:YYYY-MM-DD\`、\`> 最近变更:<change-name>\`
94
+ 4. 展示所有模块文档的更新内容(diff 摘要),请用户确认
95
+ 5. 用户确认后,写入 \`.sillyspec/docs/<project>/modules/*.md\`
96
+ 6. 用户拒绝时,不写入模块文档,但提示"module-impact.md 已保留,可稍后手动同步"
97
+ 7. 回填 module-impact.md 的"更新结果"表格
98
+
99
+ ### 模块文档模板
100
+ \`\`\`markdown
101
+ # <module-name>
102
+
103
+ > 最后更新:YYYY-MM-DD
104
+ > 最近变更:<change-name>
105
+ > 模块路径:<glob patterns>
106
+
107
+ ## 职责
108
+ (一句话说清这个模块做什么)
109
+
110
+ ## 当前设计
111
+ (架构、数据流、关键逻辑 — 描述当前状态,不是历史)
112
+
113
+ ## 对外接口
114
+ | 接口 | 说明 | 调用方 |
115
+ |------|------|--------|
116
+
117
+ ## 关键数据流
118
+ \`\`\`text
119
+ 调用方 → 模块.方法() → 依赖模块.方法() → 返回结果
120
+ \`\`\`
121
+
122
+ ## 设计决策
123
+ | 决策 | 理由 | 来源 |
124
+ |------|------|------|
125
+
126
+ ## 依赖关系
127
+ ### 依赖本模块
128
+ ### 本模块依赖
129
+
130
+ ## 注意事项
131
+ (维护提醒、已知限制、修改时需同步检查的模块)
132
+
133
+ ## 变更索引
134
+ | 日期 | 变更 | 摘要 |
135
+ |------|------|------|
136
+ \`\`\`
137
+
138
+ ### 输出
139
+ 已更新的模块文档路径列表 + 用户确认状态`,
140
+ outputHint: '模块文档更新结果',
141
+ optional: false
142
+ },
21
143
  {
22
144
  name: '确认归档',
23
145
  prompt: `展示即将归档的内容,请用户确认。
24
146
 
25
147
  ### 操作
26
- 1. 展示:变更目录名、包含的文件列表、生成总结
148
+ 1. 展示:变更目录名、包含的文件列表(含 module-impact.md)、生成总结
27
149
  2. 请用户确认是否执行归档
28
- 3. 确认后:将 \.sillyspec/changes/<change-name>/ 移动到 \.sillyspec/changes/archive/YYYY-MM-DD-<change-name>/
150
+ 3. 确认后:将 \`.sillyspec/changes/<change-name>/\` 移动到 \`.sillyspec/changes/archive/YYYY-MM-DD-<change-name>/\`
29
151
  4. 确保所有 checkbox 都已勾选
30
152
 
31
153
  ### 归档执行
32
154
  确认归档后,执行以下命令自动完成目录移动:
33
- \ \ sillyspec run archive --done --confirm --output "确认归档"
155
+ \t\tsillyspec run archive --done --confirm --output "确认归档"
34
156
  - \`--confirm\` 标志会自动执行目录移动(原子操作)
35
157
  - 不带 \`--confirm\` 则只提示需要确认
36
158
 
@@ -46,7 +168,8 @@ export const definition = {
46
168
  ### 操作
47
169
  1. 如果 \`.sillyspec/ROADMAP.md\` 存在,标记对应 Phase 为已完成
48
170
  2. \`git add .sillyspec/changes/\` — 暂存归档结果(不要 commit,由用户通过统一提交工具处理)
49
- 3. 更新 progress.json:
171
+ 3. \`git add .sillyspec/docs/\` — 暂存模块文档更新(如有)
172
+ 4. 更新 progress.json:
50
173
  - 清除当前变更信息(归档后不再活跃)
51
174
  - 如果是主变更(有 MASTER.md),标记所有阶段为 ✅,然后清除
52
175
  - 历史记录追加时间 + 归档完成
@@ -36,8 +36,14 @@ const fixedPrefix = [
36
36
  4. 读取 local.yaml(构建命令)
37
37
  5. 加载 CODEBASE-OVERVIEW.md
38
38
 
39
+ ### 模块文档加载
40
+ 6. 读取 \`.sillyspec/docs/<project>/modules/_module-map.yaml\`(不存在则跳过以下步骤)
41
+ 7. 根据 plan.md 中的任务文件路径匹配 _module-map.yaml 中的模块
42
+ 8. 读取匹配到的 \`.sillyspec/docs/<project>/modules/<module>.md\`
43
+ 9. 实现代码时遵循模块文档中描述的接口约定、数据流和依赖关系
44
+
39
45
  ### 输出
40
- 已加载的上下文摘要`,
46
+ 已加载的上下文摘要(含模块文档)`,
41
47
  outputHint: '上下文摘要',
42
48
  optional: false
43
49
  },
@@ -33,8 +33,14 @@ export const fixedPrefix = [
33
33
  3. 读取 CONVENTIONS.md、ARCHITECTURE.md、STACK.md
34
34
  4. 读取 local.yaml 获取构建/测试命令
35
35
 
36
+ ### 模块文档加载
37
+ 5. 读取 \`.sillyspec/docs/<project>/modules/_module-map.yaml\`(不存在则跳过以下步骤)
38
+ 6. 根据 design.md 的文件变更清单匹配 _module-map.yaml 中的模块
39
+ 7. 读取匹配到的 \`.sillyspec/docs/<project>/modules/<module>.md\`
40
+ 8. 将模块文档作为制定计划的上下文,确保计划符合模块当前设计
41
+
36
42
  ### 输出
37
- 已加载的文件清单`,
43
+ 已加载的文件清单(含模块文档)`,
38
44
  outputHint: '文件清单',
39
45
  optional: false
40
46
  },
@@ -26,8 +26,14 @@ export const definition = {
26
26
  2. 读取最新设计文档、需求文档、代码库约定
27
27
  3. 如果是子阶段变更,读取 MASTER.md 和前序阶段设计
28
28
 
29
+ ### 模块文档加载
30
+ 4. 读取 \`.sillyspec/docs/<project>/modules/_module-map.yaml\`(不存在则跳过以下步骤)
31
+ 5. 根据当前提案初步判断涉及的模块(匹配提案中的文件路径到 _module-map.yaml 的 paths)
32
+ 6. 读取匹配到的 \`.sillyspec/docs/<project>/modules/<module>.md\`
33
+ 7. 如果发现提案中的变更范围与某个模块文档描述的当前设计存在潜在冲突,在后续提案中明确标注并说明处理方案
34
+
29
35
  ### 输出
30
- 已加载的文件列表`,
36
+ 已加载的文件列表(含模块文档)`,
31
37
  outputHint: '文件列表',
32
38
  optional: false
33
39
  },
@@ -68,8 +68,18 @@ export const definition = {
68
68
  4. 如果发现项目特有的坑,追加到 \`.sillyspec/knowledge/uncategorized.md\`
69
69
  5. 任务比预期复杂 → 建议用完整流程
70
70
 
71
+ ### 模块文档同步
72
+ 6. 读取 \`.sillyspec/docs/<project>/modules/_module-map.yaml\`(不存在则跳过以下步骤)
73
+ 7. 对比本次修改的文件(\`git diff --name-only\`)与模块映射
74
+ 8. 如果命中模块 → 直接同步模块文档:
75
+ - 读取对应的 \`.sillyspec/docs/<project>/modules/<module>.md\`(如不存在则新建)
76
+ - 根据本次改动内容更新模块文档(正文描述当前状态,底部追加变更索引)
77
+ - 写入模块文档
78
+ - 将更新的模块文件加入 \`git add\`
79
+ 9. 未命中任何模块 → 跳过,不做额外操作
80
+
71
81
  ### 输出
72
- 暂存确认 + 记录路径`,
82
+ 暂存确认 + 记录路径 + 模块文档同步结果(如有)`,
73
83
  outputHint: '暂存和记录确认',
74
84
  optional: false
75
85
  }
@@ -158,6 +158,51 @@ local.yaml 生成结果(已存在/已生成)`,
158
158
  outputHint: 'local.yaml 生成状态',
159
159
  optional: false
160
160
  },
161
+ {
162
+ name: '生成模块映射',
163
+ prompt: `生成模块映射配置文件,建立"文件路径 → 模块"的稳定映射。
164
+
165
+ ### 操作
166
+ 1. 检查 \.sillyspec/docs/<project>/modules/_module-map.yaml\` 是否已存在,已存在则跳过
167
+ 2. 分析项目 src/ 目录结构(或主代码目录),识别模块划分:
168
+ - 用 \`find . -maxdepth 2 -type d -not -path "*/node_modules/*" -not -path "*/.git/*"\` 查看目录结构
169
+ - 每个独立目录(有明确职责的)识别为一个模块
170
+ - 路径用 glob 模式(如 \`src/auth/**\`)
171
+ 3. 生成 \.sillyspec/docs/<project>/modules/_module-map.yaml\`
172
+ 4. 如果 modules/ 目录不存在,先创建
173
+ 5. 原子写入(先写 tmp 文件再 rename)
174
+
175
+ ### YAML 格式
176
+ \`\`\`yaml
177
+ # 模块映射(自动生成,可手动修改)
178
+ # 用于 archive 阶段识别变更影响的模块
179
+ modules:
180
+ <module-name>:
181
+ paths:
182
+ - <glob-pattern>
183
+ description: <一句话描述>
184
+ \`\`\`
185
+
186
+ ### 示例
187
+ \`\`\`yaml
188
+ modules:
189
+ core:
190
+ paths:
191
+ - src/core/**
192
+ - src/utils/**
193
+ description: 核心工具和公共逻辑
194
+
195
+ stages:
196
+ paths:
197
+ - src/stages/**
198
+ description: 阶段定义(brainstorm/plan/execute/verify/archive等)
199
+ \`\`\`
200
+
201
+ ### 输出
202
+ _module-map.yaml 生成结果(已存在/已生成/模块列表)`,
203
+ outputHint: '_module-map.yaml 生成状态',
204
+ optional: true
205
+ },
161
206
  {
162
207
  name: '自检和提交',
163
208
  prompt: `验证扫描完整性,清理并提交。
@@ -27,8 +27,13 @@ export const definition = {
27
27
  4. 加载代码规范:\`cat .sillyspec/docs/<project>/scan/CONVENTIONS.md 2>/dev/null\`
28
28
  5. 标注每个文件的存在/不存在状态
29
29
 
30
+ ### 模块文档加载
31
+ 6. 读取 \`.sillyspec/docs/<project>/modules/_module-map.yaml\`(不存在则跳过以下步骤)
32
+ 7. 根据 design.md 的文件变更清单匹配 _module-map.yaml 中的模块
33
+ 8. 读取匹配到的 \`.sillyspec/docs/<project>/modules/<module>.md\`
34
+
30
35
  ### 输出
31
- 文件加载确认清单`,
36
+ 文件加载确认清单(含模块文档)`,
32
37
  outputHint: '文件确认清单',
33
38
  optional: false
34
39
  },
@@ -95,9 +100,10 @@ grep -rl "<关键词>" <源码目录>/ --include="*.java" --include="*.js" --inc
95
100
  3. 数据模型是否符合
96
101
  4. API 设计是否符合
97
102
  5. **Reverse Sync 检查**:如果发现实现合理但 design.md 未覆盖,先更新 design.md 补充遗漏
103
+ 6. **模块文档一致性检查**:如果在"加载规范并锚定"步骤中加载了模块文档,检查实现是否符合模块文档描述的当前设计(特别关注接口签名、数据流、依赖关系)。不符合时标记 ⚠️(不阻断,模块文档可能未及时更新)
98
104
 
99
105
  ### 输出
100
- 探针报告 + 设计一致性检查结果`,
106
+ 探针报告 + 设计一致性检查结果 + 模块文档一致性检查结果`,
101
107
  outputHint: '设计一致性报告',
102
108
  optional: false
103
109
  },