speccore 8.3.302 → 8.3.304
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/dist/commands/doc2spec.d.ts.map +1 -1
- package/dist/commands/doc2spec.js +22 -61
- package/dist/commands/doc2spec.js.map +1 -1
- package/dist/commands/execute.js +26 -38
- package/dist/commands/execute.js.map +1 -1
- package/dist/commands/unitize.d.ts +9 -0
- package/dist/commands/unitize.d.ts.map +1 -1
- package/dist/commands/unitize.js +87 -3
- package/dist/commands/unitize.js.map +1 -1
- package/dist/core/git-integration.d.ts +12 -0
- package/dist/core/git-integration.d.ts.map +1 -1
- package/dist/core/git-integration.js +56 -0
- package/dist/core/git-integration.js.map +1 -1
- package/dist/core/unified-config.d.ts +12 -0
- package/dist/core/unified-config.d.ts.map +1 -1
- package/dist/core/unified-config.js +51 -5
- package/dist/core/unified-config.js.map +1 -1
- package/package.json +1 -1
- package/templates/html/speccore-ask-guide.html +1 -1
- package/templates/html/speccore-ask-pipeline.html +1 -1
- package/templates/html/speccore-ask-result.html +1 -1
- package/templates/html/speccore-help.html +2 -2
- package/templates/speccore-yml-example.yml +56 -117
|
@@ -1,73 +1,54 @@
|
|
|
1
1
|
# ═══════════════════════════════════════════════════════════
|
|
2
|
-
# SpecCore 主配置完整示例(.speccore.yml
|
|
2
|
+
# SpecCore 主配置完整示例(.speccore.yml)—— v8.3.303 对齐版
|
|
3
3
|
# ═══════════════════════════════════════════════════════════
|
|
4
4
|
# 位置:项目根 .speccore.yml(与 .speccore/PROJECT.yaml 分工:
|
|
5
|
-
# PROJECT.yaml 管「端/源码/Git
|
|
5
|
+
# PROJECT.yaml 管「端/源码/Git/部署」,本文件管「行为/门禁/AI」)
|
|
6
6
|
# 升级:speccore config --upgrade(不要手动编辑 schema_version)
|
|
7
7
|
# 参考:docs/config-reference.md(字段详解)
|
|
8
8
|
#
|
|
9
|
-
#
|
|
10
|
-
#
|
|
11
|
-
#
|
|
12
|
-
#
|
|
13
|
-
# v8.3.217+ settings.smoke 三时机 v8.3.217+ stages / pipeline.test
|
|
9
|
+
# ⚠️ 本示例与 DEFAULT_CONFIG(v8.3.303)逐字段对齐,注意三处归属变化:
|
|
10
|
+
# 1. project → 已迁至 .speccore/PROJECT.yaml;tech_stack/team → 已废弃(升级自动清理)
|
|
11
|
+
# 2. tests/stages/pipeline 测试环境段 → 归属 .speccore/environments/{env}.yaml(见 VERIFY-EXAMPLE.yaml)
|
|
12
|
+
# 3. 新增:logging / tools / settings.pipeline / with_code / gates
|
|
14
13
|
# ═══════════════════════════════════════════════════════════
|
|
15
14
|
|
|
16
15
|
schema_version: 1
|
|
17
16
|
|
|
18
|
-
# ──
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
description: 示例项目
|
|
22
|
-
version: 1.0.0
|
|
23
|
-
|
|
24
|
-
# ── 技术栈(供 AI 生成针对性内容)──
|
|
25
|
-
tech_stack:
|
|
26
|
-
backend: TypeScript / NestJS
|
|
27
|
-
frontend: Vue 3 / Element Plus
|
|
28
|
-
database: PostgreSQL
|
|
29
|
-
cache: Redis
|
|
30
|
-
mq: RabbitMQ
|
|
31
|
-
|
|
32
|
-
# ── 团队 ──
|
|
33
|
-
team:
|
|
34
|
-
members:
|
|
35
|
-
- name: alice
|
|
36
|
-
role: lead
|
|
37
|
-
assignee: true
|
|
38
|
-
- name: bob
|
|
39
|
-
role: developer
|
|
40
|
-
assignee: true
|
|
17
|
+
# ── 日志(文件日志开关,输出到 .speccore/local/logs/)──
|
|
18
|
+
logging:
|
|
19
|
+
enabled: false
|
|
41
20
|
|
|
42
21
|
# ── 质量门禁 ──
|
|
43
22
|
quality_gates:
|
|
44
|
-
enforce_testing: true
|
|
45
|
-
enforce_review: true
|
|
46
|
-
require_pr: true
|
|
23
|
+
enforce_testing: true # true → execute 前检查 TEST.md,缺失则阻断
|
|
24
|
+
enforce_review: true # true → 执行完自动进入 review 流程
|
|
25
|
+
require_pr: true # true → 禁止直接 push 保护分支,走 speccore pr
|
|
47
26
|
# 阻塞级别:standard(编译+单测+契约都阻断,默认)/ compile(仅编译阻断)
|
|
48
27
|
block_level: standard
|
|
49
28
|
# v8.3.95+: UI 验证默认行为(speccore verify --ui)
|
|
50
29
|
verify_ui:
|
|
51
|
-
enabled: true
|
|
52
|
-
smoke_test: true
|
|
53
|
-
visual_check: true
|
|
54
|
-
|
|
55
|
-
|
|
30
|
+
enabled: false # 演示默认关闭,按需 true
|
|
31
|
+
smoke_test: true # 冒烟测试
|
|
32
|
+
visual_check: true # 视觉检查
|
|
33
|
+
headed: false # 有头浏览器(调试用)
|
|
34
|
+
# threshold: strict 任何微小差异 / normal 明显差异(默认)/ loose 仅严重问题
|
|
35
|
+
threshold: normal
|
|
36
|
+
devices: [desktop] # desktop / mobile / iPhone13 / Pixel5 ...
|
|
56
37
|
browsers: [chromium]
|
|
57
|
-
timeout: 30000
|
|
58
|
-
|
|
38
|
+
timeout: 30000 # 单场景超时(毫秒)
|
|
39
|
+
# v8.3.50+: 视觉模型(看图判断走外部模型)
|
|
59
40
|
visual_model:
|
|
60
|
-
provider: qwen-vl
|
|
41
|
+
provider: qwen-vl # qwen-vl / openai / anthropic / local
|
|
61
42
|
model: qwen-vl-max
|
|
62
43
|
|
|
63
|
-
# ──
|
|
44
|
+
# ── 契约裁决:full 全流程 / l1-only / report-only ──
|
|
64
45
|
arbitration:
|
|
65
46
|
enabled: true
|
|
66
47
|
mode: full
|
|
67
48
|
|
|
68
49
|
# ── 运行时行为 ──
|
|
69
50
|
settings:
|
|
70
|
-
# 指派策略:strict 阻断不一致 / loose
|
|
51
|
+
# 指派策略:strict 阻断不一致 / loose 自动填+警告 / off 关闭
|
|
71
52
|
assignee:
|
|
72
53
|
enabled: true
|
|
73
54
|
mode: loose
|
|
@@ -87,7 +68,7 @@ settings:
|
|
|
87
68
|
# 自动检查规范库最新
|
|
88
69
|
sync:
|
|
89
70
|
auto_check: true
|
|
90
|
-
# 模式沉淀:off / smart
|
|
71
|
+
# 模式沉淀:off / smart / aggressive
|
|
91
72
|
patterns:
|
|
92
73
|
auto_save: smart
|
|
93
74
|
# 审查时检查执行人签名
|
|
@@ -98,26 +79,31 @@ settings:
|
|
|
98
79
|
enabled: false
|
|
99
80
|
provider: qwen-vl
|
|
100
81
|
model: qwen-vl-plus
|
|
101
|
-
apiKey: ${DASHSCOPE_API_KEY}
|
|
102
82
|
maxImagesPerPrompt: 10
|
|
103
83
|
imageMaxSizeKb: 2048
|
|
84
|
+
# 流水线模式开关
|
|
85
|
+
pipeline: false
|
|
86
|
+
# 分析时附带源码(from-source 场景)
|
|
87
|
+
with_code: false
|
|
104
88
|
# 非必要流水线步骤三态开关:auto(智能,默认)/ on 强制 / off 跳过
|
|
105
89
|
optional_steps:
|
|
106
|
-
clarify: auto
|
|
90
|
+
clarify: auto # 文档专业就跳过澄清
|
|
107
91
|
verify: auto
|
|
108
92
|
pipeline: auto
|
|
109
|
-
pr:
|
|
93
|
+
pr: auto
|
|
110
94
|
done: auto
|
|
111
|
-
spec2doc:
|
|
95
|
+
spec2doc: auto
|
|
112
96
|
# 命名流水线(run --preset <name>)
|
|
113
97
|
pipelines:
|
|
114
|
-
default: develop
|
|
115
|
-
custom:
|
|
116
|
-
|
|
117
|
-
|
|
98
|
+
default: develop # full/import/spec/analyze/develop/deliver/deploy/docs
|
|
99
|
+
custom: {} # 自定义: { my-flow: analyze,validate,taskify,plan,execute }
|
|
100
|
+
# 质量门禁模式
|
|
101
|
+
gates:
|
|
102
|
+
mode: manual
|
|
118
103
|
# v8.3.193+: 统一 LLM provider 池(host=宿主AI / llm=自配 / auto=宿主优先)
|
|
104
|
+
# 演示条目,默认 providers: []——自配时按此结构填写
|
|
119
105
|
ai:
|
|
120
|
-
provider:
|
|
106
|
+
provider: host
|
|
121
107
|
providers:
|
|
122
108
|
- name: local
|
|
123
109
|
type: ollama
|
|
@@ -129,32 +115,27 @@ settings:
|
|
|
129
115
|
model: gpt-4o
|
|
130
116
|
apiKey: "${OPENAI_API_KEY}"
|
|
131
117
|
priority: 2
|
|
132
|
-
defaults:
|
|
133
|
-
analyze: gpt4o
|
|
134
|
-
split: local
|
|
118
|
+
defaults: {} # 按阶段指定 provider: { analyze: gpt4o }
|
|
135
119
|
fallback: local
|
|
136
|
-
# v8.3.301+: 子 Agent SDK
|
|
120
|
+
# v8.3.301+: 子 Agent SDK 派单开关
|
|
137
121
|
# auto = Qoder 宿主 + token 可用(PAT 或 CLI 登录态)时启用(默认)
|
|
138
|
-
# on = 强制尝试 SDK
|
|
139
|
-
# off = 禁用 SDK
|
|
122
|
+
# on = 强制尝试 SDK 派单(失败回退标记模式)
|
|
123
|
+
# off = 禁用 SDK 派单,永远走标记模式
|
|
140
124
|
agent_dispatch:
|
|
141
125
|
mode: auto
|
|
142
|
-
# v8.3.217+: 冒烟三时机开关 + 范围(run --smoke / --skip-smoke / --scope
|
|
126
|
+
# v8.3.217+: 冒烟三时机开关 + 范围(run --smoke / --skip-smoke / --scope 单次覆盖)
|
|
143
127
|
smoke:
|
|
144
128
|
points:
|
|
145
|
-
local: auto
|
|
146
|
-
pre-deploy: auto
|
|
147
|
-
post-deploy: auto
|
|
148
|
-
scope: module
|
|
149
|
-
scope_by_env:
|
|
150
|
-
dev: module
|
|
151
|
-
staging: module
|
|
152
|
-
production: full # 生产发布才全量
|
|
129
|
+
local: auto # 开发完本地冒烟
|
|
130
|
+
pre-deploy: auto # 部署前门禁
|
|
131
|
+
post-deploy: auto # 部署后确认环境活着
|
|
132
|
+
scope: module # full 全量 / module 当前功能模块
|
|
133
|
+
scope_by_env: {} # 按环境覆盖: { production: full }
|
|
153
134
|
|
|
154
135
|
# ── Ask 引擎 ──
|
|
155
136
|
ask:
|
|
156
137
|
routing:
|
|
157
|
-
mode: hybrid
|
|
138
|
+
mode: hybrid # hybrid / cli-only / host-ai-only
|
|
158
139
|
high_threshold: 70
|
|
159
140
|
low_threshold: 45
|
|
160
141
|
auto_host_ai: true
|
|
@@ -162,6 +143,7 @@ ask:
|
|
|
162
143
|
cache_min_hits: 3
|
|
163
144
|
rules:
|
|
164
145
|
force_host_ai: false
|
|
146
|
+
# 自配 LLM 池(演示条目,默认 [])
|
|
165
147
|
llm_providers:
|
|
166
148
|
- name: ollama-local
|
|
167
149
|
enabled: false
|
|
@@ -176,53 +158,10 @@ ask:
|
|
|
176
158
|
model: gpt-4o-mini
|
|
177
159
|
priority: 2
|
|
178
160
|
|
|
179
|
-
# ──
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
admin: https://admin-staging.example.com
|
|
184
|
-
api: https://api-staging.example.com
|
|
185
|
-
local_urls:
|
|
186
|
-
h5: http://localhost:5173
|
|
187
|
-
# v8.3.215+: 测试登录(冒烟/视觉访问受保护页面前自动登录)
|
|
188
|
-
# data-testid 遵循 UI_SPEC 元素标识约定:{模块}-{页面}-{元素}
|
|
189
|
-
auth:
|
|
190
|
-
login_url: /login
|
|
191
|
-
username_selector: "[data-testid='login-username-input']"
|
|
192
|
-
password_selector: "[data-testid='login-password-input']"
|
|
193
|
-
submit_selector: "[data-testid='login-submit-btn']"
|
|
194
|
-
success_url_contains: /dashboard
|
|
195
|
-
credentials:
|
|
196
|
-
username: admin
|
|
197
|
-
password_env: SMOKE_PASSWORD # 密码从环境变量读取(推荐,不落库不进 git)
|
|
198
|
-
visual_model:
|
|
199
|
-
provider: qwen-vl
|
|
200
|
-
model: qwen-vl-max
|
|
201
|
-
timeout: 60000
|
|
202
|
-
|
|
203
|
-
# ── 分层测试阶段(verify --stage <stage> 联动)──
|
|
204
|
-
stages:
|
|
205
|
-
dev:
|
|
206
|
-
config: null # 使用内置代码质量验证
|
|
207
|
-
pr:
|
|
208
|
-
config: .speccore/tests/pr.yaml
|
|
209
|
-
deploy:
|
|
210
|
-
config: .speccore/tests/smoke.yaml
|
|
211
|
-
release:
|
|
212
|
-
config: .speccore/tests/release.yaml
|
|
213
|
-
|
|
214
|
-
# ── Pipeline 内置测试节点(build 后 deploy 前/后执行)──
|
|
215
|
-
pipeline:
|
|
216
|
-
test:
|
|
217
|
-
enabled: true
|
|
218
|
-
type: smoke # build-check / smoke / visual / api / all
|
|
219
|
-
stage: pre-deploy # pre-deploy / post-deploy / both
|
|
220
|
-
fail_on_error: true # 失败是否阻断部署(仅 critical)
|
|
221
|
-
auto_fix: true
|
|
222
|
-
max_retries: 3
|
|
161
|
+
# ── 工具路径(doc2spec 转换依赖,留空自动探测)──
|
|
162
|
+
tools:
|
|
163
|
+
pandoc: ''
|
|
164
|
+
libreoffice: ''
|
|
223
165
|
|
|
224
166
|
# ── 配置变更历史(speccore config --upgrade 自动维护,勿手动编辑)──
|
|
225
|
-
config_history:
|
|
226
|
-
- date: 2026-09-01
|
|
227
|
-
change: 初始配置
|
|
228
|
-
changed_by: alice
|
|
167
|
+
config_history: []
|