speccore 5.27.33 → 5.30.2
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/.agents/skills/spec-analyze/SKILL.md +45 -0
- package/.agents/skills/spec-ask/SKILL.md +152 -0
- package/.agents/skills/spec-change/SKILL.md +21 -0
- package/.agents/skills/spec-dev/SKILL.md +30 -0
- package/.agents/skills/spec-doc2spec/SKILL.md +35 -0
- package/.agents/skills/spec-execute/SKILL.md +55 -0
- package/.agents/skills/spec-plan/SKILL.md +32 -0
- package/.agents/skills/spec-spec2doc/SKILL.md +35 -0
- package/.agents/skills/spec-split/SKILL.md +42 -0
- package/.agents/skills/speccore-router/SKILL.md +297 -0
- package/dist/cli.js +16 -0
- package/dist/cli.js.map +1 -1
- package/dist/commands/analyze.d.ts +2 -0
- package/dist/commands/analyze.d.ts.map +1 -1
- package/dist/commands/analyze.js +29 -0
- package/dist/commands/analyze.js.map +1 -1
- package/dist/commands/ask.d.ts.map +1 -1
- package/dist/commands/ask.js +22 -11
- package/dist/commands/ask.js.map +1 -1
- package/dist/commands/doc2spec.d.ts +2 -0
- package/dist/commands/doc2spec.d.ts.map +1 -1
- package/dist/commands/doc2spec.js +31 -0
- package/dist/commands/doc2spec.js.map +1 -1
- package/dist/commands/done.d.ts +2 -0
- package/dist/commands/done.d.ts.map +1 -1
- package/dist/commands/done.js +14 -0
- package/dist/commands/done.js.map +1 -1
- package/dist/commands/execute.d.ts +2 -0
- package/dist/commands/execute.d.ts.map +1 -1
- package/dist/commands/execute.js +128 -0
- package/dist/commands/execute.js.map +1 -1
- package/dist/commands/init.js +283 -85
- package/dist/commands/init.js.map +1 -1
- package/dist/commands/iteration/split.d.ts +3 -0
- package/dist/commands/iteration/split.d.ts.map +1 -1
- package/dist/commands/iteration/split.js +43 -0
- package/dist/commands/iteration/split.js.map +1 -1
- package/dist/commands/plan.d.ts +2 -0
- package/dist/commands/plan.d.ts.map +1 -1
- package/dist/commands/plan.js +22 -0
- package/dist/commands/plan.js.map +1 -1
- package/dist/commands/pr.d.ts +2 -0
- package/dist/commands/pr.d.ts.map +1 -1
- package/dist/commands/pr.js +14 -0
- package/dist/commands/pr.js.map +1 -1
- package/dist/commands/spec2doc.d.ts +2 -0
- package/dist/commands/spec2doc.d.ts.map +1 -1
- package/dist/commands/spec2doc.js +40 -0
- package/dist/commands/spec2doc.js.map +1 -1
- package/dist/commands/welcome.js +1 -1
- package/dist/commands/welcome.js.map +1 -1
- package/dist/core/ask-engine.d.ts +1 -1
- package/dist/core/ask-engine.d.ts.map +1 -1
- package/dist/core/ask-engine.js +98 -7
- package/dist/core/ask-engine.js.map +1 -1
- package/dist/core/doc-validator.d.ts +35 -0
- package/dist/core/doc-validator.d.ts.map +1 -0
- package/dist/core/doc-validator.js +398 -0
- package/dist/core/doc-validator.js.map +1 -0
- package/dist/core/intent-recognition.d.ts +1 -1
- package/dist/core/intent-recognition.d.ts.map +1 -1
- package/dist/core/intent-recognition.js +22 -9
- package/dist/core/intent-recognition.js.map +1 -1
- package/dist/core/prompt-builder.d.ts +90 -0
- package/dist/core/prompt-builder.d.ts.map +1 -0
- package/dist/core/prompt-builder.js +500 -0
- package/dist/core/prompt-builder.js.map +1 -0
- package/package.json +3 -2
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
# SpecCore Analyze — 需求分析器
|
|
2
|
+
|
|
3
|
+
> **你负责**: 读取需求文档 → 你自己分析 → CLI 写入 ANALYSIS.md。你自己就是分析引擎。
|
|
4
|
+
|
|
5
|
+
## 核心规则
|
|
6
|
+
1. 迭代不存在时列出可用迭代让用户选。
|
|
7
|
+
2. 分析必须覆盖: API 完整性、数据模型、业务规则、技术映射、风险。
|
|
8
|
+
3. 输出必须是 Markdown,≥200 字符。
|
|
9
|
+
|
|
10
|
+
## 执行流程
|
|
11
|
+
|
|
12
|
+
```
|
|
13
|
+
1. execute_command("speccore analyze --prompt -I {iter}")
|
|
14
|
+
|
|
15
|
+
exitCode=10 → 你分析
|
|
16
|
+
exitCode=11 → 展示 NEEDS_INFO → 用户选迭代 → 重试
|
|
17
|
+
|
|
18
|
+
2. 取 stdout [SPECCORE_PROMPT]...[/SPECCORE_PROMPT]
|
|
19
|
+
解析需求文档内容
|
|
20
|
+
|
|
21
|
+
3. 你自己分析并生成 Markdown 报告:
|
|
22
|
+
## 需求概述
|
|
23
|
+
## API 接口清单(表格)
|
|
24
|
+
## 数据模型
|
|
25
|
+
## 业务规则
|
|
26
|
+
## 技术映射
|
|
27
|
+
## 风险与建议
|
|
28
|
+
|
|
29
|
+
4. 自检: ≥200 字符,含 ≥2 个 ## 标题,含 API 表格
|
|
30
|
+
失败 → 重试 ≤2 次 → 降级
|
|
31
|
+
|
|
32
|
+
5. 写入:
|
|
33
|
+
Write /tmp/analysis.md
|
|
34
|
+
execute_command("cat /tmp/analysis.md | speccore analyze --apply - -I {iter}")
|
|
35
|
+
|
|
36
|
+
6. 展示: API 数 + 模型数 + 风险数 + 推荐下一步 (split)
|
|
37
|
+
```
|
|
38
|
+
|
|
39
|
+
## 退出码
|
|
40
|
+
|
|
41
|
+
| exitCode | 行动 |
|
|
42
|
+
| :--- | :--- |
|
|
43
|
+
| 10 | 你分析并生成报告 |
|
|
44
|
+
| 11 | 展示迭代列表 → 用户选 |
|
|
45
|
+
| 其他 | [重试/跳过/停止] |
|
|
@@ -0,0 +1,152 @@
|
|
|
1
|
+
# SpecCore Ask — 可执行编排引擎 v4
|
|
2
|
+
|
|
3
|
+
> **你的身份**: 你就是宿主 AI。你的任务是:理解用户意图 → 调用 CLI --prompt → 自己生成内容 → 调 CLI --response 写入。
|
|
4
|
+
> 你不是在"描述"流程,你就是在**执行**流程。不要调用外部 AI,你自己就是那个"AI 生成"环节的负责者。
|
|
5
|
+
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
## 核心规则
|
|
9
|
+
|
|
10
|
+
1. 一次一个命令。不等用户确认不执行下一个。
|
|
11
|
+
2. 每次执行完检查退出码,按速查表行事。
|
|
12
|
+
3. 参数缺了让用户选,不猜。
|
|
13
|
+
4. 你自己生成的内容必须校验格式。失败重试 ≤ 2 次。
|
|
14
|
+
5. Pipeline 每步完成等用户确认。
|
|
15
|
+
6. 执行完成展示摘要 + 推荐下一步。
|
|
16
|
+
|
|
17
|
+
---
|
|
18
|
+
|
|
19
|
+
## 步骤 0: 判断输入类型
|
|
20
|
+
|
|
21
|
+
```
|
|
22
|
+
判断标准(按顺序检查):
|
|
23
|
+
|
|
24
|
+
IF 含 "?"/"吗"/"怎么"/"是什么"/"如何" AND 不是明确动作词(分析/执行/拆分/开发/导入)
|
|
25
|
+
→ 分支 C (explain)
|
|
26
|
+
ELSE IF 含 "然后"/"再"/"接着"/"最后"/"全流程"/"从头"
|
|
27
|
+
→ 分支 D (pipeline)
|
|
28
|
+
ELSE IF 有意向性的动词("帮我"/"做"/"跑"/"执行")
|
|
29
|
+
→ 步骤 1 (意图识别)
|
|
30
|
+
ELSE
|
|
31
|
+
→ 分支 C (explain) — 默认解释/查询
|
|
32
|
+
```
|
|
33
|
+
|
|
34
|
+
---
|
|
35
|
+
|
|
36
|
+
## 步骤 1: 意图识别
|
|
37
|
+
|
|
38
|
+
```
|
|
39
|
+
执行: speccore ask "{用户输入}"
|
|
40
|
+
从 stdout 第一行提取 [SPECCORE_MODE: xxx] → 进对应分支
|
|
41
|
+
若无标记 → 用步骤 0 标准判断
|
|
42
|
+
```
|
|
43
|
+
|
|
44
|
+
---
|
|
45
|
+
|
|
46
|
+
## 分支 A: match — 单命令
|
|
47
|
+
|
|
48
|
+
```
|
|
49
|
+
A-FAIL: 低置信 → 请用户重新描述
|
|
50
|
+
|
|
51
|
+
A1. 补参:
|
|
52
|
+
Read .speccore/local/context.json → 获取 currentIteration/currentTask
|
|
53
|
+
仍缺 → execute_command("speccore {cmd} --prompt {有参}")
|
|
54
|
+
exitCode=11 → 读 NEEDS_INFO 表格 → 用户选 → 重试
|
|
55
|
+
|
|
56
|
+
A2. 确认(最多 3 轮追问):
|
|
57
|
+
"📋 执行: speccore {cmd} --prompt {params} [是/改/停]"
|
|
58
|
+
|
|
59
|
+
A3. 执行:
|
|
60
|
+
execute_command("speccore {cmd} --prompt {params}")
|
|
61
|
+
exitCode=0 → 步骤 4
|
|
62
|
+
exitCode=10 → A4
|
|
63
|
+
exitCode=11 → A1
|
|
64
|
+
其他 → [重试/跳过/停止]
|
|
65
|
+
|
|
66
|
+
A4. 你生成 (60s):
|
|
67
|
+
取 stdout [SPECCORE_PROMPT]...[/SPECCORE_PROMPT]
|
|
68
|
+
你是 AI — 你自己生成代码/分析/文档
|
|
69
|
+
|
|
70
|
+
A5. 自检:
|
|
71
|
+
execute: {"files":[...]}, 其他: Markdown >100 字符
|
|
72
|
+
失败 → 重试 ≤2 次 → 降级
|
|
73
|
+
|
|
74
|
+
A6. 写入:
|
|
75
|
+
Write /tmp/speccore-resp.json
|
|
76
|
+
execute_command("cat /tmp/speccore-resp.json | speccore {cmd} --response - {params}")
|
|
77
|
+
注意: --response - 表示从 stdin 读取,已验证可用
|
|
78
|
+
```
|
|
79
|
+
|
|
80
|
+
---
|
|
81
|
+
|
|
82
|
+
## 分支 B: ambiguous
|
|
83
|
+
|
|
84
|
+
```
|
|
85
|
+
展示候选人 → 用户选 → 分支 A
|
|
86
|
+
```
|
|
87
|
+
|
|
88
|
+
---
|
|
89
|
+
|
|
90
|
+
## 分支 C: explain
|
|
91
|
+
|
|
92
|
+
```
|
|
93
|
+
直接回答。不调 CLI。
|
|
94
|
+
```
|
|
95
|
+
|
|
96
|
+
---
|
|
97
|
+
|
|
98
|
+
## 分支 D: pipeline (≤5 步)
|
|
99
|
+
|
|
100
|
+
```
|
|
101
|
+
D1. 展示计划,等确认
|
|
102
|
+
D2. 逐步执行(每步走 A3-A6)
|
|
103
|
+
D3. 步间: Read 产出文件 → 提取参数 → 传下一步
|
|
104
|
+
```
|
|
105
|
+
|
|
106
|
+
---
|
|
107
|
+
|
|
108
|
+
## 分支 E: guide
|
|
109
|
+
|
|
110
|
+
```
|
|
111
|
+
展示流程 → 用户选[开始]进 D 或 [仅查看]结束
|
|
112
|
+
```
|
|
113
|
+
|
|
114
|
+
---
|
|
115
|
+
|
|
116
|
+
## 步骤 4: 总结
|
|
117
|
+
|
|
118
|
+
```
|
|
119
|
+
展示: 文件列表 + 警告 + 下一步推荐
|
|
120
|
+
询问继续
|
|
121
|
+
```
|
|
122
|
+
|
|
123
|
+
---
|
|
124
|
+
|
|
125
|
+
## 退出码
|
|
126
|
+
|
|
127
|
+
| exitCode | 行动 |
|
|
128
|
+
| :--- | :--- |
|
|
129
|
+
| 0 | 展示结果 |
|
|
130
|
+
| 10 | 你自己生成内容 → --apply |
|
|
131
|
+
| 11 | 展示参数表 → 用户补 |
|
|
132
|
+
| 其他 | [重试/跳过/停止] |
|
|
133
|
+
|
|
134
|
+
---
|
|
135
|
+
|
|
136
|
+
## 完整命令
|
|
137
|
+
|
|
138
|
+
| 场景 | --prompt | --apply/response |
|
|
139
|
+
| :--- | :--- | :--- |
|
|
140
|
+
| 导入文档 | `doc2spec --prompt -f {f}` | `--response` |
|
|
141
|
+
| 分析 | `analyze --prompt -I {i}` | `--apply` |
|
|
142
|
+
| 拆分 | `iteration split --prompt -I {i}` | `--response` |
|
|
143
|
+
| 计划 | `plan --prompt -I {i}` | `--response` |
|
|
144
|
+
| 开发 | `execute --prompt -t {t}` | `--response` |
|
|
145
|
+
| PR | `pr --prompt -t {t}` | `--response` |
|
|
146
|
+
| 归档 | `done --prompt -t {t}` | `--response` |
|
|
147
|
+
| 导出 | `spec2doc --prompt -I {i}` | `--apply` |
|
|
148
|
+
| 仪表盘 | `dashboard` | — |
|
|
149
|
+
| 验证 | `validate -I {i}` | — |
|
|
150
|
+
| 回顾 | `retro --task {t}` | — |
|
|
151
|
+
| 搜索 | `search {k}` | — |
|
|
152
|
+
| 初始化 | `init` | — |
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
# SpecCore Change — 需求变更处理器
|
|
2
|
+
|
|
3
|
+
> **你负责**: 记录变更 → 分析影响 → 重新生成受影响代码。
|
|
4
|
+
|
|
5
|
+
## 执行流程
|
|
6
|
+
|
|
7
|
+
```
|
|
8
|
+
1. 记录变更描述 + 关联 Task
|
|
9
|
+
2. 分析影响: Read REQ.md → 列出受影响的 API/文件
|
|
10
|
+
3. 展示: "⚠️ 影响: 2 个 API, 3 个文件。继续?[是/取消]"
|
|
11
|
+
4. 执行: execute_command("speccore execute --prompt -t {task}")
|
|
12
|
+
5. 你自己生成修正代码(走 spec-execute 流程)
|
|
13
|
+
6. 写入: cat /tmp/resp.json | speccore execute --response - -t {task}
|
|
14
|
+
```
|
|
15
|
+
|
|
16
|
+
## 退出码
|
|
17
|
+
|
|
18
|
+
| exitCode | 行动 |
|
|
19
|
+
| :--- | :--- |
|
|
20
|
+
| 10 | 你重新生成受影响的代码 |
|
|
21
|
+
| 其他 | [重试/跳过/停止] |
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
# SpecCore Pipeline — 智能级联推进器
|
|
2
|
+
|
|
3
|
+
> **你负责**: 检测迭代阶段 → 推荐并执行下一步 → 逐步推进项目。
|
|
4
|
+
|
|
5
|
+
## 执行流程
|
|
6
|
+
|
|
7
|
+
```
|
|
8
|
+
1. Read .speccore/local/context.json → 获取当前迭代
|
|
9
|
+
Read PROJECT_GRAPH.md → 获取 Task 进度
|
|
10
|
+
|
|
11
|
+
2. 展示状态:
|
|
12
|
+
"📊 {iter} 进度: analyze ✅ → split ▶ → plan ⬜ → execute ⬜
|
|
13
|
+
下一步: speccore iteration split --prompt -I {iter}"
|
|
14
|
+
|
|
15
|
+
3. 用户确认 → execute_command 执行下一步
|
|
16
|
+
走对应 Skill 的流程(analyze→spec-analyze, execute→spec-execute)
|
|
17
|
+
|
|
18
|
+
4. 每步完成 → 回到步骤 1 → 重新检测 → 推荐最新下一步
|
|
19
|
+
|
|
20
|
+
5. --auto 模式: 跳过确认,自动执行所有步骤
|
|
21
|
+
但每步仍需检查退出码,失败时暂停
|
|
22
|
+
```
|
|
23
|
+
|
|
24
|
+
## 退出码
|
|
25
|
+
|
|
26
|
+
| exitCode | 行动 |
|
|
27
|
+
| :--- | :--- |
|
|
28
|
+
| 10 | 交给对应 Skill 处理 |
|
|
29
|
+
| 11 | 展示参数列表 |
|
|
30
|
+
| 其他 | [重试/跳过/停止] |
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
# SpecCore doc2spec — AI + Pandoc 双路验证
|
|
2
|
+
|
|
3
|
+
> **你负责**: Pandoc 机械转换 + 你自己交叉验证 = 零数据丢失。
|
|
4
|
+
|
|
5
|
+
## 执行流程
|
|
6
|
+
|
|
7
|
+
```
|
|
8
|
+
1. execute_command("speccore doc2spec -f {file} --iter {iter} --no-ai")
|
|
9
|
+
先用 pandoc 做机械转换(快,但可能有乱码/断表/遗漏)
|
|
10
|
+
|
|
11
|
+
2. Read 转换后的 REQUIREMENT.md
|
|
12
|
+
Read 原始文件 {file}
|
|
13
|
+
|
|
14
|
+
3. execute_command("speccore doc2spec --prompt -f {file} --iter {iter}")
|
|
15
|
+
获取 AI 验证 prompt
|
|
16
|
+
|
|
17
|
+
4. 你自己做交叉验证:
|
|
18
|
+
- 对比原始文档 vs pandoc 输出
|
|
19
|
+
- 检查: 乱码、标题断裂、表格损坏、图片缺失、内容丢失
|
|
20
|
+
- 生成修正后的 Markdown
|
|
21
|
+
|
|
22
|
+
5. 写入:
|
|
23
|
+
Write /tmp/doc2spec-fixed.md
|
|
24
|
+
execute_command("cat /tmp/doc2spec-fixed.md | speccore doc2spec --response - -f {file} --iter {iter}")
|
|
25
|
+
|
|
26
|
+
6. 展示: 发现N个问题已修复 + VALIDATION.md 报告 + 推荐下一步 (analyze)
|
|
27
|
+
```
|
|
28
|
+
|
|
29
|
+
## 退出码
|
|
30
|
+
|
|
31
|
+
| exitCode | 行动 |
|
|
32
|
+
| :--- | :--- |
|
|
33
|
+
| 0 | pandoc 转换完成 → 你验证 |
|
|
34
|
+
| 10 | 获取 prompt → 你交叉验证 |
|
|
35
|
+
| 其他 | [重试/跳过] |
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
# SpecCore Execute — 代码生成执行器
|
|
2
|
+
|
|
3
|
+
> **你负责**: 读取 Task Spec → 构建代码生成上下文 → 你自己生成代码 → CLI 写入文件。
|
|
4
|
+
> **你不需要调用外部 AI**,你自己就是代码生成者。
|
|
5
|
+
|
|
6
|
+
## 核心规则
|
|
7
|
+
1. 一次只执行一个 Task。不等确认不执行下一个。
|
|
8
|
+
2. Task 不存在时展示可用列表让用户选。
|
|
9
|
+
3. 生成的代码必须匹配 CONSTITUTION 技术栈。
|
|
10
|
+
4. 每个文件生成完做基本语法检查(括号匹配、import 完整)。
|
|
11
|
+
|
|
12
|
+
## 执行流程
|
|
13
|
+
|
|
14
|
+
```
|
|
15
|
+
用户: "开发 Task-001"
|
|
16
|
+
|
|
17
|
+
1. execute_command("speccore execute --prompt -t Task-001")
|
|
18
|
+
|
|
19
|
+
检查退出码:
|
|
20
|
+
exitCode=10 → 你生成代码
|
|
21
|
+
exitCode=11 → 展示 NEEDS_INFO 表格 → 用户选 Task → 重试
|
|
22
|
+
其他 → [重试/跳过/停止]
|
|
23
|
+
|
|
24
|
+
2. 取 stdout [SPECCORE_PROMPT]...[/SPECCORE_PROMPT]
|
|
25
|
+
解析: API 定义、数据模型、技术栈、业务规则
|
|
26
|
+
|
|
27
|
+
3. 你自己生成代码:
|
|
28
|
+
格式: {"files": [{"path": "相对路径", "content": "代码"}]}
|
|
29
|
+
生成 ALL API 接口 + ALL 数据模型 DDL + import 语句
|
|
30
|
+
逾 60s → 分 N 批,先返回核心 API
|
|
31
|
+
|
|
32
|
+
4. 自检: files 数组非空,path 含扩展名,content > 10 字符
|
|
33
|
+
失败 → 重试 ≤2 次 → 降级: 原始 text 写入 README.md
|
|
34
|
+
|
|
35
|
+
5. 写入:
|
|
36
|
+
Write /tmp/speccore-exec.json
|
|
37
|
+
execute_command("cat /tmp/speccore-exec.json | speccore execute --response - -t Task-001")
|
|
38
|
+
|
|
39
|
+
6. 展示: 写入文件数 + 文件清单 + 推荐下一步 (pr)
|
|
40
|
+
```
|
|
41
|
+
|
|
42
|
+
## 退出码
|
|
43
|
+
|
|
44
|
+
| exitCode | 行动 |
|
|
45
|
+
| :--- | :--- |
|
|
46
|
+
| 10 | 你生成代码 |
|
|
47
|
+
| 11 | 展示 Task 列表 → 用户选 |
|
|
48
|
+
| 其他 | [重试/跳过/停止] |
|
|
49
|
+
|
|
50
|
+
## 批量执行
|
|
51
|
+
|
|
52
|
+
```
|
|
53
|
+
--all 模式: 列出所有 pending Task → 用户选 → 逐个执行
|
|
54
|
+
每完成一个展示进度: "✅ 2/5 Task-002 完成,继续?"
|
|
55
|
+
```
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
# SpecCore Plan — 执行计划生成器
|
|
2
|
+
|
|
3
|
+
> **你负责**: 读取 Task 列表 → 你自己排程 → CLI 写入 plan.json。
|
|
4
|
+
|
|
5
|
+
## 执行流程
|
|
6
|
+
|
|
7
|
+
```
|
|
8
|
+
1. execute_command("speccore plan --prompt -I {iter}")
|
|
9
|
+
exitCode=10 → 你排程
|
|
10
|
+
exitCode=11 → 展示迭代 → 用户选
|
|
11
|
+
|
|
12
|
+
2. 取 stdout [SPECCORE_PROMPT]...[/SPECCORE_PROMPT]
|
|
13
|
+
解析 Task 列表和依赖关系
|
|
14
|
+
|
|
15
|
+
3. 你排程: 拓扑排序 + 并行分组 + 工作量估算
|
|
16
|
+
返回 JSON: {"batches":[{"tasks":["Task-001"],"assignee":"张三","days":2}]}
|
|
17
|
+
|
|
18
|
+
4. 自检: 含 batches 数组, 每个 task 有 assignee 和 days
|
|
19
|
+
失败 → 重试 ≤2 次
|
|
20
|
+
|
|
21
|
+
5. 写入: Write /tmp/plan.json
|
|
22
|
+
execute_command("cat /tmp/plan.json | speccore plan --response - -I {iter}")
|
|
23
|
+
|
|
24
|
+
6. 展示: 批次数 + 总人天 + 推荐 (execute)
|
|
25
|
+
```
|
|
26
|
+
|
|
27
|
+
## 退出码
|
|
28
|
+
| exitCode | 行动 |
|
|
29
|
+
| :--- | :--- |
|
|
30
|
+
| 10 | 你排程 |
|
|
31
|
+
| 11 | 展示迭代列表 |
|
|
32
|
+
| 其他 | [重试/跳过/停止] |
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
# SpecCore spec2doc — AI 排版 + Pandoc 导出
|
|
2
|
+
|
|
3
|
+
> **你负责**: 审计 Spec 文档 → 你自己编排排版 → Pandoc 机械导出。
|
|
4
|
+
|
|
5
|
+
## 执行流程
|
|
6
|
+
|
|
7
|
+
```
|
|
8
|
+
1. execute_command("speccore spec2doc --prompt -i {iter} -o {file}")
|
|
9
|
+
获取文档审计 prompt
|
|
10
|
+
exitCode=10 → 你审计
|
|
11
|
+
|
|
12
|
+
2. 你自己做内容审计:
|
|
13
|
+
- 检查: TODO/TBD 残留、API 定义完整、交叉引用有效
|
|
14
|
+
- 生成审计报告: 通过/警告/建议
|
|
15
|
+
|
|
16
|
+
3. 生成编排版 Markdown:
|
|
17
|
+
- 封面 + 目录 + 章节重排 + Mermaid 标注
|
|
18
|
+
Write /tmp/spec2doc-merged.md
|
|
19
|
+
|
|
20
|
+
4. 导出:
|
|
21
|
+
execute_command("pandoc /tmp/spec2doc-merged.md -f gfm -t {format} -o {output}")
|
|
22
|
+
|
|
23
|
+
5. 后处理:
|
|
24
|
+
execute_command("speccore spec2doc --apply '{audit_report}' -o {file}")
|
|
25
|
+
|
|
26
|
+
6. 展示: 页数 + 章节 + 图片 + 推荐
|
|
27
|
+
```
|
|
28
|
+
|
|
29
|
+
## 退出码
|
|
30
|
+
|
|
31
|
+
| exitCode | 行动 |
|
|
32
|
+
| :--- | :--- |
|
|
33
|
+
| 10 | 你审计 + 编排 |
|
|
34
|
+
| 0 | pandoc 完成 → 你验证 |
|
|
35
|
+
| 其他 | [重试/跳过] |
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
# SpecCore Split — 任务拆分器
|
|
2
|
+
|
|
3
|
+
> **你负责**: 读取分析结果 → 你自己拆分 → CLI 创建 Task 目录。
|
|
4
|
+
|
|
5
|
+
## 核心规则
|
|
6
|
+
1. 按端(app/h5/miniapp/admin)和 API 数(3-8 个/Task)拆分。
|
|
7
|
+
2. 计算依赖关系:数据模型 Task 前置,认证 Task 前置。
|
|
8
|
+
3. 返回 JSON Task 列表。
|
|
9
|
+
|
|
10
|
+
## 执行流程
|
|
11
|
+
|
|
12
|
+
```
|
|
13
|
+
1. execute_command("speccore iteration split --prompt -I {iter}")
|
|
14
|
+
exitCode=10 → 你拆分
|
|
15
|
+
exitCode=11 → 展示 NEEDS_INFO → 用户选迭代 → 重试
|
|
16
|
+
|
|
17
|
+
2. 取 stdout [SPECCORE_PROMPT]...[/SPECCORE_PROMPT]
|
|
18
|
+
解析 ANALYSIS.md 内容
|
|
19
|
+
|
|
20
|
+
3. 你自己拆分,返回 JSON:
|
|
21
|
+
[
|
|
22
|
+
{"id":"Task-001","name":"数据模型","req":"...","tech":"...","depends":[]},
|
|
23
|
+
{"id":"Task-002","name":"app 认证","req":"...","tech":"...","depends":["Task-001"]}
|
|
24
|
+
]
|
|
25
|
+
|
|
26
|
+
4. 自检: JSON 数组,每个 item 含 id/name/req
|
|
27
|
+
失败 → 重试 ≤2 次 → 降级: Markdown 表格写入 REQUIREMENT.md
|
|
28
|
+
|
|
29
|
+
5. 写入:
|
|
30
|
+
Write /tmp/split.json
|
|
31
|
+
execute_command("cat /tmp/split.json | speccore iteration split --response - -I {iter}")
|
|
32
|
+
|
|
33
|
+
6. 展示: Task 数量 + 依赖关系 + 推荐下一步 (plan)
|
|
34
|
+
```
|
|
35
|
+
|
|
36
|
+
## 退出码
|
|
37
|
+
|
|
38
|
+
| exitCode | 行动 |
|
|
39
|
+
| :--- | :--- |
|
|
40
|
+
| 10 | 你拆分任务 |
|
|
41
|
+
| 11 | 展示迭代列表 → 用户选 |
|
|
42
|
+
| 其他 | [重试/跳过/停止] |
|