speccore 8.3.182 → 8.3.189
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 +2 -169
- package/.agents/skills/spec-ask/SKILL.md +2 -177
- package/.agents/skills/spec-change/SKILL.md +2 -214
- package/.agents/skills/spec-dashboard/SKILL.md +1 -76
- package/.agents/skills/spec-deploy/SKILL.md +2 -298
- package/.agents/skills/spec-doc2spec/SKILL.md +2 -116
- package/.agents/skills/spec-done/SKILL.md +2 -203
- package/.agents/skills/spec-execute/SKILL.md +2 -178
- package/.agents/skills/spec-help/SKILL.md +1 -75
- package/.agents/skills/spec-iteration-create/SKILL.md +2 -123
- package/.agents/skills/spec-plan/SKILL.md +2 -117
- package/.agents/skills/spec-pr/SKILL.md +2 -203
- package/.agents/skills/spec-run/SKILL.md +16 -0
- package/.agents/skills/spec-spec2doc/SKILL.md +2 -121
- package/.agents/skills/spec-split/SKILL.md +2 -208
- package/.agents/skills/spec-task-create/SKILL.md +2 -151
- package/.agents/skills/spec-verify/SKILL.md +2 -214
- package/.agents/skills/spec-welcome/SKILL.md +1 -67
- package/.agents/skills/speccore-router/SKILL.md +14 -2
- package/README.en.md +9 -9
- package/README.md +2 -1
- package/dist/cli.js +24 -25
- package/dist/cli.js.map +1 -1
- package/dist/commands/about.js +1 -1
- package/dist/commands/about.js.map +1 -1
- package/dist/commands/analyze.d.ts +1 -0
- package/dist/commands/analyze.d.ts.map +1 -1
- package/dist/commands/analyze.js +38 -5
- package/dist/commands/analyze.js.map +1 -1
- package/dist/commands/ask.js +6 -6
- package/dist/commands/ask.js.map +1 -1
- package/dist/commands/dev.d.ts +2 -0
- package/dist/commands/dev.d.ts.map +1 -1
- package/dist/commands/dev.js +102 -1
- package/dist/commands/dev.js.map +1 -1
- package/dist/commands/doctor.js +28 -0
- package/dist/commands/doctor.js.map +1 -1
- package/dist/commands/execute.js +3 -3
- package/dist/commands/execute.js.map +1 -1
- package/dist/commands/init.d.ts.map +1 -1
- package/dist/commands/init.js +31 -52
- package/dist/commands/init.js.map +1 -1
- package/dist/commands/iteration/split.d.ts.map +1 -1
- package/dist/commands/iteration/split.js +12 -39
- package/dist/commands/iteration/split.js.map +1 -1
- package/dist/commands/knowledge.d.ts +0 -12
- package/dist/commands/knowledge.d.ts.map +1 -1
- package/dist/commands/knowledge.js +0 -80
- package/dist/commands/knowledge.js.map +1 -1
- package/dist/commands/refresh.d.ts.map +1 -1
- package/dist/commands/refresh.js +10 -0
- package/dist/commands/refresh.js.map +1 -1
- package/dist/commands/search.d.ts +1 -0
- package/dist/commands/search.d.ts.map +1 -1
- package/dist/commands/search.js +38 -0
- package/dist/commands/search.js.map +1 -1
- package/dist/commands/update.d.ts.map +1 -1
- package/dist/commands/update.js +13 -3
- package/dist/commands/update.js.map +1 -1
- package/dist/core/agent-adapter.d.ts +6 -0
- package/dist/core/agent-adapter.d.ts.map +1 -1
- package/dist/core/agent-adapter.js +56 -172
- package/dist/core/agent-adapter.js.map +1 -1
- package/dist/core/agents/defaults/code-generator.md +64 -0
- package/dist/core/agents/defaults/code-reviewer.md +5 -0
- package/dist/core/agents/defaults/compiler.md +7 -0
- package/dist/core/agents/defaults/compliance-checker.md +2 -0
- package/dist/core/agents/defaults/dependency-analyst.md +5 -0
- package/dist/core/agents/defaults/doc-sync-agent.md +5 -0
- package/dist/core/agents/defaults/effort-estimator.md +28 -0
- package/dist/core/agents/defaults/global-analyzer.md +66 -0
- package/dist/core/agents/defaults/impact-analyst.md +5 -0
- package/dist/core/agents/defaults/interaction-designer.md +5 -0
- package/dist/core/agents/defaults/performance-expert.md +2 -0
- package/dist/core/agents/defaults/product-analyst-backend.md +6 -0
- package/dist/core/agents/defaults/product-analyst-frontend.md +6 -0
- package/dist/core/agents/defaults/product-analyst.md +5 -0
- package/dist/core/agents/defaults/regression-tester.md +5 -0
- package/dist/core/agents/defaults/requirement-analyzer.md +72 -0
- package/dist/core/agents/defaults/risk-assessor.md +5 -0
- package/dist/core/agents/defaults/schedule-planner.md +5 -0
- package/dist/core/agents/defaults/security-reviewer-finance.md +6 -0
- package/dist/core/agents/defaults/security-reviewer.md +7 -0
- package/dist/core/agents/defaults/task-decomposer.md +5 -0
- package/dist/core/agents/defaults/test-engineer.md +2 -0
- package/dist/core/agents/defaults/test-reviewer.md +5 -0
- package/dist/core/agents/engine/agent-loader.d.ts.map +1 -1
- package/dist/core/agents/engine/agent-loader.js +76 -6
- package/dist/core/agents/engine/agent-loader.js.map +1 -1
- package/dist/core/agents/engine/types.d.ts +5 -0
- package/dist/core/agents/engine/types.d.ts.map +1 -1
- package/dist/core/analyze-engine.d.ts.map +1 -1
- package/dist/core/analyze-engine.js +73 -82
- package/dist/core/analyze-engine.js.map +1 -1
- package/dist/core/ask-engine.d.ts +0 -58
- package/dist/core/ask-engine.d.ts.map +1 -1
- package/dist/core/ask-engine.js +63 -361
- package/dist/core/ask-engine.js.map +1 -1
- package/dist/core/business-rules.d.ts +36 -0
- package/dist/core/business-rules.d.ts.map +1 -0
- package/dist/core/business-rules.js +109 -0
- package/dist/core/business-rules.js.map +1 -0
- package/dist/core/change-impact-global.d.ts.map +1 -1
- package/dist/core/change-impact-global.js +4 -3
- package/dist/core/change-impact-global.js.map +1 -1
- package/dist/core/code-scanner.d.ts +1 -0
- package/dist/core/code-scanner.d.ts.map +1 -1
- package/dist/core/code-scanner.js +32 -3
- package/dist/core/code-scanner.js.map +1 -1
- package/dist/core/content-delivery.d.ts +59 -0
- package/dist/core/content-delivery.d.ts.map +1 -0
- package/dist/core/content-delivery.js +219 -0
- package/dist/core/content-delivery.js.map +1 -0
- package/dist/core/global-artifacts.d.ts.map +1 -1
- package/dist/core/global-artifacts.js +262 -19
- package/dist/core/global-artifacts.js.map +1 -1
- package/dist/core/global-retrieval.d.ts +38 -0
- package/dist/core/global-retrieval.d.ts.map +1 -0
- package/dist/core/global-retrieval.js +100 -0
- package/dist/core/global-retrieval.js.map +1 -0
- package/dist/core/html-prototype.d.ts +22 -0
- package/dist/core/html-prototype.d.ts.map +1 -0
- package/dist/core/html-prototype.js +103 -0
- package/dist/core/html-prototype.js.map +1 -0
- package/dist/core/multi-lang-parser.d.ts +43 -0
- package/dist/core/multi-lang-parser.d.ts.map +1 -0
- package/dist/core/multi-lang-parser.js +317 -0
- package/dist/core/multi-lang-parser.js.map +1 -0
- package/dist/core/pipeline-engine.js +16 -16
- package/dist/core/pipeline-engine.js.map +1 -1
- package/dist/core/platform-inference.d.ts +35 -0
- package/dist/core/platform-inference.d.ts.map +1 -0
- package/dist/core/platform-inference.js +205 -0
- package/dist/core/platform-inference.js.map +1 -0
- package/dist/core/prompt-builder.d.ts +1 -1
- package/dist/core/prompt-builder.d.ts.map +1 -1
- package/dist/core/prompt-builder.js +62 -63
- package/dist/core/prompt-builder.js.map +1 -1
- package/dist/core/refresh-scheduler.d.ts +50 -0
- package/dist/core/refresh-scheduler.d.ts.map +1 -0
- package/dist/core/refresh-scheduler.js +139 -0
- package/dist/core/refresh-scheduler.js.map +1 -0
- package/dist/core/reverse-requirement.d.ts +54 -0
- package/dist/core/reverse-requirement.d.ts.map +1 -0
- package/dist/core/reverse-requirement.js +277 -0
- package/dist/core/reverse-requirement.js.map +1 -0
- package/dist/core/schemas/task.schema.d.ts +2 -2
- package/dist/core/spec-skeleton.d.ts.map +1 -1
- package/dist/core/spec-skeleton.js +123 -0
- package/dist/core/spec-skeleton.js.map +1 -1
- package/dist/core/unified-config.d.ts +14 -0
- package/dist/core/unified-config.d.ts.map +1 -1
- package/dist/core/unified-config.js +94 -10
- package/dist/core/unified-config.js.map +1 -1
- package/dist/core/unified-retrieval.d.ts.map +1 -1
- package/dist/core/unified-retrieval.js +34 -8
- package/dist/core/unified-retrieval.js.map +1 -1
- package/dist/utils/task-utils.d.ts +4 -0
- package/dist/utils/task-utils.d.ts.map +1 -1
- package/dist/utils/task-utils.js +18 -0
- package/dist/utils/task-utils.js.map +1 -1
- package/package.json +6 -4
- package/vendor/tree-sitter/tree-sitter-go.wasm +0 -0
- package/vendor/tree-sitter/tree-sitter-java.wasm +0 -0
- package/vendor/tree-sitter/tree-sitter-python.wasm +0 -0
- package/vendor/tree-sitter/tree-sitter-rust.wasm +0 -0
- package/.agents/agents/README.md +0 -79
- package/.agents/agents/spec-analyzer.md +0 -41
- package/.agents/agents/spec-architect.md +0 -57
- package/.agents/agents/spec-change-detector.md +0 -55
- package/.agents/agents/spec-clarifier.md +0 -83
- package/.agents/agents/spec-executor.md +0 -41
- package/.agents/agents/spec-gatekeeper.md +0 -84
- package/.agents/agents/spec-global-analyzer.md +0 -111
- package/.agents/agents/spec-knowledge-curator.md +0 -54
- package/.agents/agents/spec-reviewer.md +0 -46
- package/.agents/agents/spec-security-auditor.md +0 -56
- package/.agents/agents/spec-tester.md +0 -120
- package/.agents/skills/spec-analyze/references/analysis-report.md +0 -9
- package/.agents/skills/spec-execute/references/code-output.md +0 -13
- package/.agents/skills/spec-plan/references/plan-template.md +0 -29
- package/.agents/skills/spec-task-create/references/requirement-template.md +0 -23
- package/dist/commands/bugfix.d.ts +0 -17
- package/dist/commands/bugfix.d.ts.map +0 -1
- package/dist/commands/bugfix.js +0 -301
- package/dist/commands/bugfix.js.map +0 -1
- package/dist/commands/help-quick.d.ts +0 -3
- package/dist/commands/help-quick.d.ts.map +0 -1
- package/dist/commands/help-quick.js +0 -66
- package/dist/commands/help-quick.js.map +0 -1
- package/dist/commands/index-update.d.ts +0 -8
- package/dist/commands/index-update.d.ts.map +0 -1
- package/dist/commands/index-update.js +0 -180
- package/dist/commands/index-update.js.map +0 -1
- package/dist/commands/schedule.d.ts +0 -26
- package/dist/commands/schedule.d.ts.map +0 -1
- package/dist/commands/schedule.js +0 -182
- package/dist/commands/schedule.js.map +0 -1
- package/dist/commands/watch.d.ts +0 -11
- package/dist/commands/watch.d.ts.map +0 -1
- package/dist/commands/watch.js +0 -166
- package/dist/commands/watch.js.map +0 -1
- package/dist/core/agents/defaults/_INDEX.md +0 -68
- package/dist/core/ai-markdown.d.ts +0 -5
- package/dist/core/ai-markdown.d.ts.map +0 -1
- package/dist/core/ai-markdown.js +0 -29
- package/dist/core/ai-markdown.js.map +0 -1
- package/dist/core/schedule-engine.d.ts +0 -25
- package/dist/core/schedule-engine.d.ts.map +0 -1
- package/dist/core/schedule-engine.js +0 -281
- package/dist/core/schedule-engine.js.map +0 -1
- package/dist/core/schedule-store.d.ts +0 -119
- package/dist/core/schedule-store.d.ts.map +0 -1
- package/dist/core/schedule-store.js +0 -216
- package/dist/core/schedule-store.js.map +0 -1
|
@@ -10,302 +10,6 @@ allowed-tools: ["Bash", "Read"]
|
|
|
10
10
|
disable-model-invocation: false
|
|
11
11
|
---
|
|
12
12
|
|
|
13
|
-
|
|
13
|
+
直接执行: execute_command("speccore ask '用户原话'")
|
|
14
14
|
|
|
15
|
-
|
|
16
|
-
> **覆盖命令**:`speccore build`、`speccore deploy`、`speccore pipeline`
|
|
17
|
-
> **原则**:不影响 `speccore ask` 的意图识别能力
|
|
18
|
-
|
|
19
|
-
---
|
|
20
|
-
|
|
21
|
-
## 调用方式
|
|
22
|
-
|
|
23
|
-
```
|
|
24
|
-
/deploy [自然语言或参数]
|
|
25
|
-
/deploy 部署到测试环境
|
|
26
|
-
/deploy --env test --platforms h5,api
|
|
27
|
-
/deploy --env staging --all --dry-run
|
|
28
|
-
/build --platform h5 --env local
|
|
29
|
-
|
|
30
|
-
# 测试外部项目(非当前 SpecCore 项目)
|
|
31
|
-
/deploy --project-dir ~/projects/other-app --env staging --all
|
|
32
|
-
/verify --project-dir ~/projects/third-party-api --config ./tests/api.yaml --env-file test
|
|
33
|
-
```
|
|
34
|
-
|
|
35
|
-
---
|
|
36
|
-
|
|
37
|
-
## 外部项目支持(v8.3.60+)
|
|
38
|
-
|
|
39
|
-
`--project-dir` 是**全局选项**,所有命令自动继承。SpecCore 的能力可以"走出去",用于任意外部项目,不仅限于当前 SpecCore 管理的项目。
|
|
40
|
-
|
|
41
|
-
### 原理
|
|
42
|
-
|
|
43
|
-
```
|
|
44
|
-
speccore <任意命令> --project-dir <外部目录>
|
|
45
|
-
│
|
|
46
|
-
▼
|
|
47
|
-
全局 preAction hook
|
|
48
|
-
│
|
|
49
|
-
▼
|
|
50
|
-
process.chdir(外部目录)
|
|
51
|
-
│
|
|
52
|
-
▼
|
|
53
|
-
所有配置从外部目录读取
|
|
54
|
-
所有操作在外部目录执行
|
|
55
|
-
```
|
|
56
|
-
|
|
57
|
-
### 外部项目目录结构
|
|
58
|
-
|
|
59
|
-
```
|
|
60
|
-
~/my-test-projects/
|
|
61
|
-
├── company-app/
|
|
62
|
-
│ ├── PROJECT.yaml # 定义 platforms(可选)
|
|
63
|
-
│ ├── .speccore/
|
|
64
|
-
│ │ └── environments/
|
|
65
|
-
│ │ ├── staging.yaml # 环境配置 + tests.base_urls
|
|
66
|
-
│ │ └── production.yaml
|
|
67
|
-
│ ├── tests/
|
|
68
|
-
│ │ ├── smoke.yaml # 测试场景
|
|
69
|
-
│ │ └── api.yaml
|
|
70
|
-
│ └── API_CONTRACT.yaml # API 契约(可选)
|
|
71
|
-
│
|
|
72
|
-
└── third-party-api/
|
|
73
|
-
├── .speccore/
|
|
74
|
-
│ └── environments/
|
|
75
|
-
│ └── test.yaml
|
|
76
|
-
└── tests/
|
|
77
|
-
└── quick.yaml
|
|
78
|
-
```
|
|
79
|
-
|
|
80
|
-
### 各命令外部项目示例
|
|
81
|
-
|
|
82
|
-
```bash
|
|
83
|
-
# ===== 测试相关 =====
|
|
84
|
-
# Pipeline 测试外部项目
|
|
85
|
-
speccore pipeline --project-dir ~/my-test-projects/company-app --env staging --all
|
|
86
|
-
|
|
87
|
-
# Verify 测试外部项目
|
|
88
|
-
speccore verify --project-dir ~/my-test-projects/company-app --config ./tests/smoke.yaml
|
|
89
|
-
|
|
90
|
-
# 仅做构建检查(无需 PROJECT.yaml)
|
|
91
|
-
speccore verify --project-dir ~/my-test-projects/company-app --ui --url https://staging.example.com
|
|
92
|
-
|
|
93
|
-
# ===== 文档转换(像 doc2spec 一样外用)=====
|
|
94
|
-
# 将外部项目的 PRD 转换为 Spec
|
|
95
|
-
speccore doc2spec --project-dir ~/my-test-projects/company-app --input ./docs/requirement.docx
|
|
96
|
-
|
|
97
|
-
# 将外部项目的 Spec 导出为 Word
|
|
98
|
-
speccore spec2doc --project-dir ~/my-test-projects/company-app --output ./reports/
|
|
99
|
-
|
|
100
|
-
# ===== 项目诊断 =====
|
|
101
|
-
# 诊断外部项目的健康度
|
|
102
|
-
speccore doctor --project-dir ~/my-test-projects/company-app --fix
|
|
103
|
-
|
|
104
|
-
# ===== 搜索 =====
|
|
105
|
-
# 在外部项目中搜索文档
|
|
106
|
-
speccore search --project-dir ~/my-test-projects/company-app "登录相关的需求"
|
|
107
|
-
|
|
108
|
-
# ===== 构建部署 =====
|
|
109
|
-
# 构建/部署外部项目
|
|
110
|
-
speccore build --project-dir ~/my-test-projects/company-app --env staging --platform h5
|
|
111
|
-
speccore deploy --project-dir ~/my-test-projects/company-app --env staging --all
|
|
112
|
-
```
|
|
113
|
-
|
|
114
|
-
### 最小外部项目配置
|
|
115
|
-
|
|
116
|
-
外部项目可以只有环境配置,无需完整的 SpecCore 项目结构:
|
|
117
|
-
|
|
118
|
-
```yaml
|
|
119
|
-
# ~/my-test-projects/minimal/.speccore/environments/test.yaml
|
|
120
|
-
env: test
|
|
121
|
-
tests:
|
|
122
|
-
base_urls:
|
|
123
|
-
h5: https://example.com
|
|
124
|
-
```
|
|
125
|
-
|
|
126
|
-
```bash
|
|
127
|
-
speccore verify --project-dir ~/my-test-projects/minimal --ui --env-file test
|
|
128
|
-
```
|
|
129
|
-
|
|
130
|
-
---
|
|
131
|
-
|
|
132
|
-
## 执行流程
|
|
133
|
-
|
|
134
|
-
```
|
|
135
|
-
用户输入 /deploy [输入]
|
|
136
|
-
│
|
|
137
|
-
▼
|
|
138
|
-
┌───────────────────────────────────────┐
|
|
139
|
-
│ Step 1: 意图识别 │
|
|
140
|
-
│ 判断是 build / deploy / pipeline │
|
|
141
|
-
│ 从自然语言或显式参数提取参数 │
|
|
142
|
-
└───────────────┬───────────────────────┘
|
|
143
|
-
│
|
|
144
|
-
参数缺失?
|
|
145
|
-
│
|
|
146
|
-
是 ──► 输出交互式提示
|
|
147
|
-
│
|
|
148
|
-
否 ──► 继续
|
|
149
|
-
│
|
|
150
|
-
▼
|
|
151
|
-
┌───────────────────────────────────────┐
|
|
152
|
-
│ Step 2: 前置校验 │
|
|
153
|
-
│ - 环境配置是否存在? │
|
|
154
|
-
│ - 指定平台是否在 PROJECT.yaml 中? │
|
|
155
|
-
│ - 当前分支是否能获取?(pipeline 需要) │
|
|
156
|
-
└───────────────┬───────────────────────┘
|
|
157
|
-
│
|
|
158
|
-
校验失败?
|
|
159
|
-
│
|
|
160
|
-
是 ──► 输出问题 + 修复建议
|
|
161
|
-
│
|
|
162
|
-
否 ──► 继续
|
|
163
|
-
│
|
|
164
|
-
▼
|
|
165
|
-
┌───────────────────────────────────────┐
|
|
166
|
-
│ Step 3: 执行 │
|
|
167
|
-
│ 直接 execute_command 执行 CLI 命令 │
|
|
168
|
-
└───────────────────────────────────────┘
|
|
169
|
-
```
|
|
170
|
-
|
|
171
|
-
---
|
|
172
|
-
|
|
173
|
-
## Step 1: 意图识别与参数提取
|
|
174
|
-
|
|
175
|
-
### 双模式支持
|
|
176
|
-
|
|
177
|
-
**模式 A — 自然语言(默认)**:
|
|
178
|
-
```
|
|
179
|
-
/deploy 把当前功能部署到测试环境
|
|
180
|
-
/deploy 构建一下 H5
|
|
181
|
-
/deploy 预览生产环境部署
|
|
182
|
-
```
|
|
183
|
-
AI 从自然语言中提取参数。
|
|
184
|
-
|
|
185
|
-
**模式 B — 显式参数**:
|
|
186
|
-
```
|
|
187
|
-
/deploy --env test --platforms h5,api --dry-run
|
|
188
|
-
/build --env local --platform h5
|
|
189
|
-
```
|
|
190
|
-
直接解析参数,不经过自然语言理解。
|
|
191
|
-
|
|
192
|
-
### 参数定义
|
|
193
|
-
|
|
194
|
-
| 参数 | 短名 | 长名 | 必填 | 默认值 | 说明 |
|
|
195
|
-
|:---|:---|:---|:---|:---|:---|
|
|
196
|
-
| env | -e | --env | 否 | `staging` | 目标环境名(对应 .speccore/environments/{env}.yaml) |
|
|
197
|
-
| platforms | -p | --platforms | 否 | - | 逗号分隔端列表(与 --all 互斥) |
|
|
198
|
-
| all | -a | --all | 否 | false | 所有端 |
|
|
199
|
-
| dry-run | -d | --dry-run | 否 | false | 预览模式,不实际执行 |
|
|
200
|
-
| skip-build | -s | --skip-build | 否 | false | 跳过构建(仅 pipeline) |
|
|
201
|
-
| env-file | -f | --env-file | 否 | - | 指定环境配置文件路径 |
|
|
202
|
-
| project-dir | - | --project-dir | 否 | - | 外部项目目录路径(全局选项) |
|
|
203
|
-
|
|
204
|
-
### 意图映射表
|
|
205
|
-
|
|
206
|
-
| 用户说法 | 推断命令 | 推断参数 |
|
|
207
|
-
|:---|:---|:---|
|
|
208
|
-
| "部署到测试环境" | pipeline | --env test --all |
|
|
209
|
-
| "构建 H5" | build | --platform h5 |
|
|
210
|
-
| "部署 H5 到测试环境" | pipeline | --env test --platforms h5 |
|
|
211
|
-
| "预览生产部署" | pipeline | --env production --all --dry-run |
|
|
212
|
-
| "把当前分支合并到 develop 并部署" | pipeline | --env dev --all |
|
|
213
|
-
| "只部署不构建" | pipeline | --env staging --all --skip-build |
|
|
214
|
-
| "用自定义配置部署" | pipeline | --env-file ./my-env.yaml --all |
|
|
215
|
-
| "本地构建验证" | build | --env local --platform h5 |
|
|
216
|
-
| "本地部署看看效果" | deploy | --env local --platform h5 |
|
|
217
|
-
| "跑冒烟测试" | verify | --stage deploy |
|
|
218
|
-
| "PR 前跑测试" | verify | --stage pr |
|
|
219
|
-
| "发布前全量回归" | verify | --stage release |
|
|
220
|
-
|
|
221
|
-
---
|
|
222
|
-
|
|
223
|
-
## Step 2: 参数缺失 → 交互式提示
|
|
224
|
-
|
|
225
|
-
### 环境名缺失
|
|
226
|
-
|
|
227
|
-
```
|
|
228
|
-
🚀 speccore deploy — 请选择目标环境
|
|
229
|
-
|
|
230
|
-
可用环境(从 .speccore/environments/ 读取):
|
|
231
|
-
[1] local — 本地开发
|
|
232
|
-
[2] dev — 开发联调
|
|
233
|
-
[3] test — 测试环境
|
|
234
|
-
[4] staging — 预发布
|
|
235
|
-
[5] production — 生产环境
|
|
236
|
-
|
|
237
|
-
请回复环境名或序号(如:test 或 3)
|
|
238
|
-
```
|
|
239
|
-
|
|
240
|
-
### 平台缺失(且未指定 --all)
|
|
241
|
-
|
|
242
|
-
```
|
|
243
|
-
📦 speccore deploy — 请选择目标平台
|
|
244
|
-
|
|
245
|
-
可用平台(从 PROJECT.yaml 读取):
|
|
246
|
-
[1] h5 — H5 移动端
|
|
247
|
-
[2] admin-web — 管理后台
|
|
248
|
-
[3] order-api — 订单服务
|
|
249
|
-
|
|
250
|
-
选项:
|
|
251
|
-
- 回复平台名或序号(如:h5 或 1)
|
|
252
|
-
- 回复 "all" 或 "全部" 部署所有平台
|
|
253
|
-
- 回复逗号分隔多选(如:h5,order-api)
|
|
254
|
-
```
|
|
255
|
-
|
|
256
|
-
---
|
|
257
|
-
|
|
258
|
-
## Step 3: 前置校验
|
|
259
|
-
|
|
260
|
-
### 校验项
|
|
261
|
-
|
|
262
|
-
1. **环境配置存在性**
|
|
263
|
-
- 检查 `.speccore/environments/{env}.yaml` 是否存在
|
|
264
|
-
- 不存在 → 提示:"环境 {env} 未配置,运行 `speccore update` 初始化默认环境配置"
|
|
265
|
-
|
|
266
|
-
2. **平台有效性**
|
|
267
|
-
- 检查指定平台是否在 PROJECT.yaml 的 platforms 列表中
|
|
268
|
-
- 不存在 → 提示可用平台列表
|
|
269
|
-
|
|
270
|
-
3. **pipeline 分支检查**
|
|
271
|
-
- 检查环境配置中是否配置了 `branch`
|
|
272
|
-
- 未配置 → 提示:"环境 {env} 未配置 branch,pipeline 无法执行 merge"
|
|
273
|
-
|
|
274
|
-
4. **Git 仓库检查(pipeline 需要)**
|
|
275
|
-
- 检查当前目录是否为 Git 仓库
|
|
276
|
-
- 检查当前分支是否能获取
|
|
277
|
-
|
|
278
|
-
---
|
|
279
|
-
|
|
280
|
-
## 命令组装规则
|
|
281
|
-
|
|
282
|
-
### pipeline(默认)
|
|
283
|
-
```bash
|
|
284
|
-
speccore pipeline --env {env} {--platforms p1,p2 | --all} [--dry-run] [--skip-build] [--env-file path] [--project-dir dir]
|
|
285
|
-
```
|
|
286
|
-
|
|
287
|
-
### build
|
|
288
|
-
```bash
|
|
289
|
-
speccore build --env {env} {--platform p | --all} [--env-file path] [--project-dir dir]
|
|
290
|
-
```
|
|
291
|
-
|
|
292
|
-
### deploy
|
|
293
|
-
```bash
|
|
294
|
-
speccore deploy --env {env} {--platform p | --all} [--dry-run] [--skip-build] [--env-file path] [--project-dir dir]
|
|
295
|
-
```
|
|
296
|
-
|
|
297
|
-
**意图 → 命令映射**:
|
|
298
|
-
- 用户说"构建"或"build" → `build`
|
|
299
|
-
- 用户说"部署"且不带 merge/checkout → `deploy`
|
|
300
|
-
- 用户说"流水线"、"合并部署"、"pipeline"或只说"部署"(含 merge 语义)→ `pipeline`
|
|
301
|
-
|
|
302
|
-
---
|
|
303
|
-
|
|
304
|
-
## 错误处理
|
|
305
|
-
|
|
306
|
-
| 场景 | 提示 |
|
|
307
|
-
|:---|:---|
|
|
308
|
-
| 环境配置不存在 | "环境 {env} 未配置,运行 `speccore update` 初始化默认环境配置" |
|
|
309
|
-
| 平台不存在 | "平台 {platform} 不在 PROJECT.yaml 中,可用平台:..." |
|
|
310
|
-
| 分支未配置 | "环境 {env} 未配置 branch,pipeline 无法执行 merge" |
|
|
311
|
-
| Git 检查失败 | "当前目录不是 Git 仓库,或无法获取当前分支" |
|
|
15
|
+
不要输出命令文本,不要分析意图,一切交给 speccore ask。
|
|
@@ -8,120 +8,6 @@ allowed-tools: ["Bash", "Read"]
|
|
|
8
8
|
disable-model-invocation: false
|
|
9
9
|
---
|
|
10
10
|
|
|
11
|
-
|
|
11
|
+
直接执行: execute_command("speccore ask '用户原话'")
|
|
12
12
|
|
|
13
|
-
|
|
14
|
-
> **原则**:不影响 `speccore ask` 的意图识别能力
|
|
15
|
-
|
|
16
|
-
---
|
|
17
|
-
|
|
18
|
-
## 调用方式
|
|
19
|
-
|
|
20
|
-
```
|
|
21
|
-
/doc2spec [参数]
|
|
22
|
-
/doc2spec --file PRD.pdf -I Iteration-001
|
|
23
|
-
/doc2spec --file requirements.docx --output 010-requirements/converted/
|
|
24
|
-
```
|
|
25
|
-
|
|
26
|
-
---
|
|
27
|
-
|
|
28
|
-
## 执行流程
|
|
29
|
-
|
|
30
|
-
```
|
|
31
|
-
用户输入 /doc2spec [参数]
|
|
32
|
-
│
|
|
33
|
-
▼
|
|
34
|
-
┌───────────────────────────────────────┐
|
|
35
|
-
│ Step 1: 参数提取 │
|
|
36
|
-
│ 从用户输入提取 file/iteration/output 等 │
|
|
37
|
-
└───────────────┬───────────────────────┘
|
|
38
|
-
│
|
|
39
|
-
参数缺失?
|
|
40
|
-
│
|
|
41
|
-
是 ──► 输出交互式提示
|
|
42
|
-
│
|
|
43
|
-
否 ──► 继续
|
|
44
|
-
│
|
|
45
|
-
▼
|
|
46
|
-
┌───────────────────────────────────────┐
|
|
47
|
-
│ Step 2: 前置校验 │
|
|
48
|
-
│ - 文件是否存在? │
|
|
49
|
-
│ - 格式是否支持? │
|
|
50
|
-
│ - 迭代是否存在? │
|
|
51
|
-
└───────────────┬───────────────────────┘
|
|
52
|
-
│
|
|
53
|
-
▼
|
|
54
|
-
┌───────────────────────────────────────┐
|
|
55
|
-
│ Step 3: 调用 speccore ask │
|
|
56
|
-
└───────────────────────────────────────┘
|
|
57
|
-
```
|
|
58
|
-
|
|
59
|
-
---
|
|
60
|
-
|
|
61
|
-
## Step 1: 参数提取
|
|
62
|
-
|
|
63
|
-
| 参数 | 短名 | 长名 | 必填 | 说明 |
|
|
64
|
-
|:---|:---|:---|:---|:---|
|
|
65
|
-
| file | -f | --file | 是 | 源文档路径(PDF/DOCX/MD/HTML)|
|
|
66
|
-
| iteration | -i | --iteration | 否 | 目标迭代名 |
|
|
67
|
-
| output | -o | --output | 否 | 输出目录 |
|
|
68
|
-
| prompt | - | --prompt | 否 | 只输出 Prompt,不执行 |
|
|
69
|
-
|
|
70
|
-
---
|
|
71
|
-
|
|
72
|
-
## Step 2: 参数缺失 → 交互式提示
|
|
73
|
-
|
|
74
|
-
```
|
|
75
|
-
📄 speccore doc2spec — 文档转规格
|
|
76
|
-
|
|
77
|
-
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
78
|
-
📖 可用参数
|
|
79
|
-
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
80
|
-
-f, --file <path> 源文档路径(必填)
|
|
81
|
-
支持: .pdf, .docx, .md, .html, .txt
|
|
82
|
-
-I, --iteration <name> 目标迭代(默认: 当前迭代)
|
|
83
|
-
-o, --output <dir> 输出目录(默认: 010-requirements/converted/)
|
|
84
|
-
--prompt 只输出 Prompt,不执行转换
|
|
85
|
-
|
|
86
|
-
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
87
|
-
💡 使用示例
|
|
88
|
-
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
89
|
-
/doc2spec -f PRD.pdf # 转换 PDF 到当前迭代
|
|
90
|
-
/doc2spec -f requirements.docx -I Q1 # 转换到指定迭代
|
|
91
|
-
/doc2spec -f design.md -o ./output/ # 指定输出目录
|
|
92
|
-
/doc2spec -f PRD.pdf --prompt # 只生成 Prompt
|
|
93
|
-
|
|
94
|
-
请补充 --file 参数后重新调用。
|
|
95
|
-
```
|
|
96
|
-
|
|
97
|
-
---
|
|
98
|
-
|
|
99
|
-
## Step 3: 前置校验
|
|
100
|
-
|
|
101
|
-
### 3.1 检查文件是否存在
|
|
102
|
-
```bash
|
|
103
|
-
# 检查 --file 指定的路径
|
|
104
|
-
# 如果不存在 → 提示用户确认路径
|
|
105
|
-
```
|
|
106
|
-
|
|
107
|
-
### 3.2 检查文件格式
|
|
108
|
-
```bash
|
|
109
|
-
# 支持的格式: .pdf, .docx, .md, .html, .txt
|
|
110
|
-
# 如果格式不支持 → 提示用户
|
|
111
|
-
```
|
|
112
|
-
|
|
113
|
-
### 3.3 检查迭代是否存在
|
|
114
|
-
```bash
|
|
115
|
-
# 如果指定了 -I,检查迭代目录是否存在
|
|
116
|
-
# 如果不存在 → 提示用户先创建迭代
|
|
117
|
-
```
|
|
118
|
-
|
|
119
|
-
---
|
|
120
|
-
|
|
121
|
-
## Step 4: 调用 speccore ask
|
|
122
|
-
|
|
123
|
-
```bash
|
|
124
|
-
execute_command("speccore ask '将文档转为规格...'")
|
|
125
|
-
```
|
|
126
|
-
|
|
127
|
-
> ⚠️ 最终仍然调用 `speccore ask`,不要绕过 ask 引擎。
|
|
13
|
+
不要输出命令文本,不要分析意图,一切交给 speccore ask。
|
|
@@ -8,207 +8,6 @@ allowed-tools: ["Bash", "Read"]
|
|
|
8
8
|
disable-model-invocation: false
|
|
9
9
|
---
|
|
10
10
|
|
|
11
|
-
|
|
11
|
+
直接执行: execute_command("speccore ask '用户原话'")
|
|
12
12
|
|
|
13
|
-
|
|
14
|
-
> **原则**:不影响 `speccore ask` 的意图识别能力
|
|
15
|
-
|
|
16
|
-
---
|
|
17
|
-
|
|
18
|
-
## 调用方式
|
|
19
|
-
|
|
20
|
-
```
|
|
21
|
-
/done [参数]
|
|
22
|
-
/done --task Task-001
|
|
23
|
-
/done --all -I Iteration-001
|
|
24
|
-
/done --task Task-001 --interactive
|
|
25
|
-
```
|
|
26
|
-
|
|
27
|
-
---
|
|
28
|
-
|
|
29
|
-
## 执行流程
|
|
30
|
-
|
|
31
|
-
```
|
|
32
|
-
用户输入 /done [参数]
|
|
33
|
-
│
|
|
34
|
-
▼
|
|
35
|
-
┌───────────────────────────────────────┐
|
|
36
|
-
│ Step 1: 参数提取 │
|
|
37
|
-
│ 从用户输入提取 task/iteration/all 等 │
|
|
38
|
-
└───────────────┬───────────────────────┘
|
|
39
|
-
│
|
|
40
|
-
参数缺失?
|
|
41
|
-
│
|
|
42
|
-
是 ──► 输出交互式提示
|
|
43
|
-
│
|
|
44
|
-
否 ──► 继续
|
|
45
|
-
│
|
|
46
|
-
▼
|
|
47
|
-
┌───────────────────────────────────────┐
|
|
48
|
-
│ Step 2: 前置校验 │
|
|
49
|
-
│ - Task 是否存在? │
|
|
50
|
-
│ - 依赖任务是否已完成? │
|
|
51
|
-
│ - feature 分支是否已合并? │
|
|
52
|
-
│ - 代码是否已提交? │
|
|
53
|
-
└───────────────┬───────────────────────┘
|
|
54
|
-
│
|
|
55
|
-
校验失败?
|
|
56
|
-
│
|
|
57
|
-
是 ──► 输出问题 + 修复建议
|
|
58
|
-
│
|
|
59
|
-
否 ──► 继续
|
|
60
|
-
│
|
|
61
|
-
▼
|
|
62
|
-
┌───────────────────────────────────────┐
|
|
63
|
-
│ Step 3: 调用 speccore ask │
|
|
64
|
-
└───────────────────────────────────────┘
|
|
65
|
-
```
|
|
66
|
-
|
|
67
|
-
---
|
|
68
|
-
|
|
69
|
-
## Step 1: 参数提取
|
|
70
|
-
|
|
71
|
-
| 参数 | 短名 | 长名 | 必填 | 说明 |
|
|
72
|
-
|:---|:---|:---|:---|:---|
|
|
73
|
-
| task | -t | --task | 否 | 目标 Task(支持逗号分隔批量)|
|
|
74
|
-
| iteration | -i | --iteration | 否 | 目标迭代名 |
|
|
75
|
-
| all | -a | --all | 否 | 自动扫描已完成任务批量归档 |
|
|
76
|
-
| skipValidate | - | --skip-validate | 否 | 跳过校验 |
|
|
77
|
-
| skipSync | - | --skip-sync | 否 | 跳过全局同步 |
|
|
78
|
-
| interactive | - | --interactive | 否 | 交互式确认 |
|
|
79
|
-
| prompt | -p | --prompt | 否 | 输出验收总结 Prompt |
|
|
80
|
-
| response | -r | --response | 否 | 接收 AI 验收总结 |
|
|
81
|
-
|
|
82
|
-
---
|
|
83
|
-
|
|
84
|
-
## Step 2: 参数缺失 → 交互式提示
|
|
85
|
-
|
|
86
|
-
```
|
|
87
|
-
✅ speccore done — 任务归档收尾
|
|
88
|
-
|
|
89
|
-
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
90
|
-
📋 当前环境
|
|
91
|
-
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
92
|
-
迭代: Iteration-001-meeting-system(从 context.json 读取)
|
|
93
|
-
已完成任务: 2 个(Task-001, Task-002)
|
|
94
|
-
待归档任务: 1 个(Task-003)
|
|
95
|
-
|
|
96
|
-
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
97
|
-
📖 可用参数
|
|
98
|
-
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
99
|
-
-t, --task <id> 目标 Task(支持逗号分隔批量)
|
|
100
|
-
-i, --iteration <name> 目标迭代(默认: 当前迭代)
|
|
101
|
-
-a, --all 自动扫描已完成任务批量归档
|
|
102
|
-
--skip-validate 跳过校验
|
|
103
|
-
--skip-sync 跳过全局同步
|
|
104
|
-
--interactive 交互式确认(推荐首次使用)
|
|
105
|
-
-p, --prompt 输出验收总结 Prompt
|
|
106
|
-
-r, --response <json> 接收 AI 验收总结
|
|
107
|
-
|
|
108
|
-
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
109
|
-
💡 使用示例
|
|
110
|
-
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
111
|
-
/done -t Task-001 # 归档单个任务
|
|
112
|
-
/done -t Task-001,Task-002 # 批量归档
|
|
113
|
-
/done --all # 归档所有已完成任务
|
|
114
|
-
/done --all --interactive # 交互式确认
|
|
115
|
-
/done -t Task-001 --skip-validate # 跳过校验直接归档
|
|
116
|
-
|
|
117
|
-
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
118
|
-
🔄 执行流程
|
|
119
|
-
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
120
|
-
1. validate — 规范合规校验
|
|
121
|
-
2. archive — 任务归档
|
|
122
|
-
3. merge — 新增需求合并回原文档
|
|
123
|
-
4. sync — 同步到全局层
|
|
124
|
-
5. audit — 生成审计摘要
|
|
125
|
-
|
|
126
|
-
请补充参数后重新调用。
|
|
127
|
-
```
|
|
128
|
-
|
|
129
|
-
---
|
|
130
|
-
|
|
131
|
-
## Step 3: 前置校验
|
|
132
|
-
|
|
133
|
-
### 3.1 Task 存在性检查
|
|
134
|
-
```bash
|
|
135
|
-
# 检查 030-tasks/ 下是否存在该 Task
|
|
136
|
-
# 如果不存在 → 提示可用 Task 列表
|
|
137
|
-
```
|
|
138
|
-
|
|
139
|
-
### 3.2 依赖任务完成性检查
|
|
140
|
-
```bash
|
|
141
|
-
# 读取 Task/.meta/dependencies
|
|
142
|
-
# 检查依赖的 Task 是否已完成(status=done)
|
|
143
|
-
# 如果有未完成依赖 → 提示用户先完成依赖任务
|
|
144
|
-
```
|
|
145
|
-
|
|
146
|
-
### 3.3 feature 分支合并检查
|
|
147
|
-
```bash
|
|
148
|
-
# 检查 feature/Task-XXX 分支是否已合并到 main
|
|
149
|
-
# 如果未合并 → 提示用户先合并或创建 PR
|
|
150
|
-
```
|
|
151
|
-
|
|
152
|
-
### 3.4 代码提交检查
|
|
153
|
-
```bash
|
|
154
|
-
# 检查 Task 对应的 feature 分支是否有未提交代码
|
|
155
|
-
# 如果有 → 提示用户先提交代码(speccore pr)
|
|
156
|
-
```
|
|
157
|
-
|
|
158
|
-
### 3.5 扫描已完成任务(--all 模式)
|
|
159
|
-
```bash
|
|
160
|
-
# 扫描 030-tasks/ 下 status=done 的任务
|
|
161
|
-
# 列出可归档的任务清单
|
|
162
|
-
```
|
|
163
|
-
|
|
164
|
-
---
|
|
165
|
-
|
|
166
|
-
## Step 4: 调用 speccore ask
|
|
167
|
-
|
|
168
|
-
```bash
|
|
169
|
-
execute_command("speccore ask '归档 Task-XXX...'")
|
|
170
|
-
```
|
|
171
|
-
|
|
172
|
-
> ⚠️ 最终仍然调用 `speccore ask`,不要绕过 ask 引擎。
|
|
173
|
-
|
|
174
|
-
---
|
|
175
|
-
|
|
176
|
-
## 核心流程(保留)
|
|
177
|
-
|
|
178
|
-
```
|
|
179
|
-
用户说 "归档 Task-001"
|
|
180
|
-
│
|
|
181
|
-
▼
|
|
182
|
-
┌─ 1. 前置校验 ────────────────────────────────┐
|
|
183
|
-
│ - Task 存在? │
|
|
184
|
-
│ - 依赖任务已完成? │
|
|
185
|
-
│ - feature 分支已合并? │
|
|
186
|
-
│ - 代码已提交? │
|
|
187
|
-
└───────────────┬────────────────────────────────┘
|
|
188
|
-
│
|
|
189
|
-
▼
|
|
190
|
-
┌─ 2. 执行收尾(5 步)─────────────────────────┐
|
|
191
|
-
│ 1. validate — 规范合规校验 │
|
|
192
|
-
│ → 发现问题?warn 并继续(可 --strict 阻断)│
|
|
193
|
-
│ 2. archive — 任务归档 │
|
|
194
|
-
│ → 移动 Task 到归档目录 │
|
|
195
|
-
│ 3. merge — 新增需求合并回原文档 │
|
|
196
|
-
│ → 更新 REQUIREMENT.md │
|
|
197
|
-
│ 4. sync — 同步到全局层 │
|
|
198
|
-
│ → 更新 GLOBAL/INDEX.md │
|
|
199
|
-
│ 5. audit — 生成审计摘要 │
|
|
200
|
-
│ → 生成 RETRO.md │
|
|
201
|
-
└───────────────┬────────────────────────────────┘
|
|
202
|
-
│
|
|
203
|
-
▼
|
|
204
|
-
┌─ 3. 后续引导 ────────────────────────────────┐
|
|
205
|
-
│ 归档完成 → 引导用户 "可以开始 retro 复盘" │
|
|
206
|
-
│ 或 "开始下一个 Task" │
|
|
207
|
-
└───────────────────────────────────────────────┘
|
|
208
|
-
```
|
|
209
|
-
|
|
210
|
-
## 铁律
|
|
211
|
-
|
|
212
|
-
1. **依赖任务必须先完成** — 不允许跳过依赖直接归档
|
|
213
|
-
2. **feature 分支必须先合并** — 防止代码丢失
|
|
214
|
-
3. **validate 发现问题要提示** — 即使不阻断也要明确告知
|
|
13
|
+
不要输出命令文本,不要分析意图,一切交给 speccore ask。
|