universal-dev-standards 6.4.0 → 6.5.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 (45) hide show
  1. package/bundled/ai/standards/agent-dispatch.ai.yaml +162 -0
  2. package/bundled/ai/standards/ai-friendly-architecture.ai.yaml +1 -1
  3. package/bundled/ai/standards/ai-instruction-standards.ai.yaml +190 -15
  4. package/bundled/ai/standards/class-level-fix.ai.yaml +38 -3
  5. package/bundled/ai/standards/commit-message.ai.yaml +2 -0
  6. package/bundled/ai/standards/model-selection.ai.yaml +370 -72
  7. package/bundled/ai/standards/mutation-testing.ai.yaml +105 -2
  8. package/bundled/ai/standards/project-structure.ai.yaml +1 -1
  9. package/bundled/ai/standards/security-standards.ai.yaml +22 -1
  10. package/bundled/ai/standards/spec-driven-development.ai.yaml +59 -2
  11. package/bundled/ai/standards/test-governance.ai.yaml +49 -2
  12. package/bundled/ai/standards/testing.ai.yaml +49 -3
  13. package/bundled/ai/standards/translation-lifecycle-standards.ai.yaml +4 -4
  14. package/bundled/ai/standards/verification-evidence.ai.yaml +48 -4
  15. package/bundled/core/class-level-fix.md +26 -3
  16. package/bundled/core/model-selection.md +383 -125
  17. package/bundled/core/mutation-testing.md +41 -2
  18. package/bundled/core/test-governance.md +22 -2
  19. package/bundled/core/translation-lifecycle-standards.md +6 -6
  20. package/bundled/core/verification-evidence.md +42 -3
  21. package/bundled/locales/zh-CN/CHANGELOG.md +12 -3
  22. package/bundled/locales/zh-CN/README.md +1 -1
  23. package/bundled/locales/zh-CN/SECURITY.md +1 -1
  24. package/bundled/locales/zh-CN/core/model-selection.md +375 -60
  25. package/bundled/locales/zh-CN/core/mutation-testing.md +1 -1
  26. package/bundled/locales/zh-CN/core/test-governance.md +1 -1
  27. package/bundled/locales/zh-CN/core/translation-lifecycle-standards.md +1 -1
  28. package/bundled/locales/zh-CN/core/verification-evidence.md +1 -1
  29. package/bundled/locales/zh-CN/docs/CHEATSHEET.md +7 -12
  30. package/bundled/locales/zh-CN/docs/FEATURE-REFERENCE.md +10 -15
  31. package/bundled/locales/zh-TW/CHANGELOG.md +37 -3
  32. package/bundled/locales/zh-TW/README.md +1 -1
  33. package/bundled/locales/zh-TW/SECURITY.md +1 -1
  34. package/bundled/locales/zh-TW/core/class-level-fix.md +22 -7
  35. package/bundled/locales/zh-TW/core/model-selection.md +385 -47
  36. package/bundled/locales/zh-TW/core/mutation-testing.md +45 -6
  37. package/bundled/locales/zh-TW/core/test-governance.md +22 -3
  38. package/bundled/locales/zh-TW/core/translation-lifecycle-standards.md +1 -1
  39. package/bundled/locales/zh-TW/core/verification-evidence.md +33 -6
  40. package/bundled/locales/zh-TW/docs/CHEATSHEET.md +7 -12
  41. package/bundled/locales/zh-TW/docs/FEATURE-REFERENCE.md +10 -15
  42. package/bundled/locales/zh-TW/integrations/claude-code/README.md +31 -5
  43. package/package.json +1 -1
  44. package/src/utils/reference-sync.js +83 -16
  45. package/standards-registry.json +20 -8
@@ -1,8 +1,9 @@
1
1
  ---
2
2
  source: ../../../core/model-selection.md
3
- source_version: 1.0.1
4
- translation_version: 1.0.1
5
- last_synced: 2026-06-10
3
+ source_version: 2.1.0
4
+ translation_version: 2.1.0
5
+ last_synced: 2026-08-11
6
+ source_hash: a843a9052a2d
6
7
  status: current
7
8
  ---
8
9
 
@@ -10,17 +11,21 @@ status: current
10
11
 
11
12
  # AI 模型选择策略
12
13
 
13
- **版本**: 1.0.1
14
- **最后更新**: 2026-06-10
15
- **适用范围**: 使用多层级模型的 AI 辅助开发
16
- **范围**: universal
14
+ **版本**: 2.1.0
15
+ **最后更新**: 2026-08-11
16
+ **适用性**: 使用多模型分级的 AI 辅助开发
17
+ **范围**: 通用 (Universal)
17
18
  **灵感来源**: [Superpowers](https://github.com/obra/superpowers) — subagent-driven-development (MIT)
18
19
 
20
+ > **翻译范围(XSPEC-355)**:本翻译只涵盖**规范性(normative)**内容。
21
+ > 说明性(informative)段落——成本优化建议、示例清单、参考资料、设计理由的叙述——
22
+ > 请参阅[英文原文](../../../core/model-selection.md)。
23
+
19
24
  ---
20
25
 
21
26
  ## 目的
22
27
 
23
- 定义基于任务复杂度的 AI 模型分级选择策略。使用能胜任的最便宜模型,仅在必要时升级。
28
+ 定义两个独立决策:**选哪个模型**与**要它想多深**。两者不可压成同一轴。使用能胜任的最便宜组合,失败时沿**正确的轴**升级。
24
29
 
25
30
  ---
26
31
 
@@ -28,103 +33,413 @@ status: current
28
33
 
29
34
  | 术语 | 定义 |
30
35
  |------|------|
31
- | 模型层级 | 代表模型能力和成本的分类级别 |
32
- | 复杂度信号 | 表明所需能力的任务可观察特征 |
33
- | 升级 | 在低层级模型失败后升级到更高层级模型 |
36
+ | 模型分级 (Model Tier) | 代表模型**推理天花板**与成本的分类等级 |
37
+ | 思考深度 (Effort Level) | **单次派工**所要求的推理深度;是请求参数,不是模型属性 |
38
+ | 推理天花板 (Reasoning Ceiling) | 超过此限度后,再多的思考时间也得不到更好的答案 |
39
+ | 规格明确度 (Specification Definiteness) | 步骤是否已定义,或仅知目标与约束 |
40
+ | 硬边界 (Hard Boundary) | 模型**完全不具备**的能力(非「做得比较差」)——如 context 容量、是否支持 effort 参数 |
41
+ | 拒绝标记 (Refusal Marker) | 在一则外观正常的回应中,表示请求被拒绝的字段 |
42
+ | 升级 (Escalation) | 在 effort 轴用尽后,沿模型轴往上移动 |
43
+
44
+ ---
45
+
46
+ ## 版本栏语义
47
+
48
+ > **本文档只有一个版本栏。** 文件头部的 `Version` 栏涵盖整份文件,包含所有章节。
49
+ > **章节不得自带版本标记**;章节的变更历程一律记于[版本历史](#版本历史)表。
50
+ >
51
+ > `ai/standards/model-selection.ai.yaml` 的 `standard.meta.version` 对应**整份文件的版本**,
52
+ > 绝不对应任何章节版本。
34
53
 
35
54
  ---
36
55
 
37
- ## 核心原则 — 成本效率
56
+ ## 核心原则 — 两个正交轴
38
57
 
39
- > **始终使用与任务复杂度匹配的最便宜模型层级。**
58
+ > **模型轴买的是「天花板与性格」,effort 轴买的是「这一次要它想多深」。在一轴上的选择,不决定另一轴。**
59
+
60
+ ```
61
+ effort → 低 中 高 极高 极限
62
+ 模型层级 ↓
63
+ fast · · · ? ?
64
+ standard · · · ? ?
65
+ capable · · · ? ?
66
+ ```
67
+
68
+ 每一格原则上都是合法派工:两个轴各自独立选择。
69
+
70
+ `?` 标示的格子,**本标准无法断言其可用性**——某个模型接受哪些 effort 级距是**该模型的属性**,而此处的层级名称是与厂商无关的标签,所以答案在各平台自己的「层级 → 模型」映射里,不在这张表里。不支持的级距是**硬边界**,不是「较差的选择」——见 [R3a](#r3a-硬边界)。采用者**必须**逐模型登记它接受哪些级距。
40
71
 
41
72
  ---
42
73
 
43
- ## 三层模型分类
74
+ ## 轴一 — 模型层级
75
+
76
+ ### 选择准则
77
+
78
+ 两个准则决定分层。**两者都不是「改几个文件」**。
79
+
80
+ #### 准则 1 — 推理天花板需求
81
+
82
+ 这个任务是否存在**单靠更多思考时间也解决不了**的成分?
83
+
84
+ - **否** → 较低层即可胜任;用 effort 买深度,而非用钱买天花板。
85
+ - **是** → 需要更高天花板;在较低层加多少 effort 都到不了。
86
+
87
+ #### 准则 2 — 规格明确度
88
+
89
+ **这是双向准则,并非单调递增。**
90
+
91
+ | 规格状态 | 偏好 | 反向使用时的失效模式 |
92
+ |---|---|---|
93
+ | 步骤已定义、路径已知 | 字面遵循型(较低层) | 把已写死的步骤喂给高天花板型会**降低**产出质量——它会重新诠释已经决定过的事 |
94
+ | 仅知目标与约束、路径未知 | 模糊性导航型(较高层) | 把模糊任务给字面遵循型,会得到**「精确执行了错误的那句话」** |
95
+
96
+ > **为何移除「修改文件数」**:3 个文件的模块边界重新设计,比 8 个文件的机械改名更难。
97
+ > 文件数会**以固定方向**误判「深而窄」的工作——这是偏差,不是噪音。
98
+
99
+ ### 三个层级
100
+
101
+ 层级标识符(`fast` / `standard` / `capable`)维持不变,只有准则改变。
44
102
 
45
- ### 第 1 层:快速层(Fast)
103
+ #### Tier 1: Fast(快速层)
46
104
 
47
- **用途**: 机械性实现 — 单一文件、明确规格、无需判断。
105
+ **用途**:无推理天花板需求、规格完全明确的工作。
48
106
 
49
- **复杂度信号**:
50
- - 修改单一文件
51
- - 规格完全明确
107
+ **信号**:
108
+ - 不存在「想更久也想不出来」的成分
109
+ - 步骤已写出,无需寻路
52
110
  - 不需要设计判断
53
- - 重复性、基于模式的工作
111
+ - 字面遵循正是想要的行为
112
+
113
+ #### Tier 2: Standard(标准层)
114
+
115
+ **用途**:需要一定推理天花板,规格大致明确但留有局部决策空间。
116
+
117
+ **信号**:
118
+ - 部分成分需要推理,但没有一项是「想更久也想不出来」
119
+ - 目标与多数步骤已定义,剩下有限的局部选择
120
+ - 需要理解模块间关系
121
+
122
+ #### Tier 3: Capable(能力层)
123
+
124
+ **用途**:需要高推理天花板,或规格仅有目标与约束、路径未知。
125
+
126
+ **信号**:
127
+ - 存在单靠更多思考时间解决不了的成分
128
+ - 路径未知;答案要找出来,不是套用
129
+ - 需要导航模糊性而非遵循文字
130
+
131
+ > **关于「大型重构」**:目标结构**已定**的大型重构**不**自动属于 Tier 3——
132
+ > 依准则 2 它是明确规格,高天花板模型的产出可能比字面遵循型更差。
133
+ > 使它升到 Tier 3 的是「目标结构**未定**」。
134
+
135
+ ### 选择决策流程
136
+
137
+ ```
138
+ 这个任务是否存在单靠更多思考解决不了的成分?
139
+ ├── 是 → 需要高天花板 → Tier 3 (Capable)
140
+ └── 否 → 规格有多明确?
141
+ ├── 步骤完全定义、路径已知 → Tier 1 (Fast)
142
+ ├── 目标+多数步骤、局部选择 → Tier 2 (Standard)
143
+ └── 仅有目标与约束 → Tier 3 (Capable)
144
+ 接着,独立地:选择 effort 级距(轴二)。
145
+ ```
146
+
147
+ ---
148
+
149
+ ## 轴二 — Effort(思考深度)
150
+
151
+ Effort 是**单次派工的参数**,不是模型属性。同一个模型在 `low` 与在 `max` 不是同一个工作者。
152
+
153
+ ### 与厂商无关的 effort 级距
154
+
155
+ 各平台自行将这些标签映射至其参数。**标签是契约,映射是在地的。**
156
+
157
+ | 级距 | 语义 | 典型用途 |
158
+ |---|---|---|
159
+ | `low`(低) | 最少斟酌,主要依模式作答 | 机械性编辑、查询、格式化 |
160
+ | `medium`(中) | 一般斟酌;默认值 | 多数已定义的实作工作 |
161
+ | `high`(高) | 延伸斟酌,作答前考虑替代方案 | 含局部决策的整合工作 |
162
+ | `very-high`(极高) | 探索并淘汰候选方法 | 设计、审查、非显而易见的除错 |
163
+ | `max`(极限) | 该模型可用的最大深度 | 升级模型轴前的最后一次尝试 |
164
+
165
+ **并非每一层都支持每一个级距。** 是否支持 effort 参数是**硬边界**,不是质量梯度——见 [R3a](#r3a-硬边界)。平台的「层级 → 模型」映射**必须**登记每个模型接受哪些级距。
166
+
167
+ ### 失败诊断 — 深度不足或天花板不足?
54
168
 
55
- **示例**:
56
- - 更新 `package.json` 版本号
57
- - 添加新的 export 语句
58
- - 修复拼写错误
59
- - 在文件中重命名变量
169
+ > **任务失败时,先判断是哪一轴不足。两者的补救方式不可互换。**
60
170
 
61
- ### 第 2 层:标准层(Standard)
171
+ | 观察到的现象 | 诊断 | 补救 | 用错补救的代价 |
172
+ |---|---|---|---|
173
+ | 产出浅、略过考量、提早收手,但它做过的推理本身是对的 | **深度不足** | 在**同一个**模型上提高 effort | 升级层级=为一个从来不是瓶颈的天花板多付钱 |
174
+ | 产出在种类上就错了——误解问题、提出不可行的方法——**且在 `max` effort 下仍如此** | **天花板不足** | 升级**模型**层级 | 再提高 effort 买不到任何东西;级距已用尽 |
62
175
 
63
- **用途**: 需要跨文件理解和适度判断的任务。
176
+ **排序规则**:先调 effort,再升级层级。只有在当前层的**最高可用** effort 也失败之后,才升级层级。未用尽 effort 就升级层级,是对「哪一轴不足」的未经验证假设。
64
177
 
65
- **复杂度信号**:
66
- - 修改 2-5 个文件
67
- - 需要理解上下文
68
- - 需要适度的设计判断
69
- - 遵循已有模式
178
+ **例外**:若[准则 1](#准则-1--推理天花板需求) 事前已标识出「想更久也想不出来」的成分,直接从较高层开始。排序规则是关于**诊断失败**,不是关于忽略事前准则。
70
179
 
71
- **示例**:
72
- - 实现新的 API 端点
73
- - 添加带有测试的新功能
74
- - 重构模块
180
+ ---
181
+
182
+ ## 反向排除规则
183
+
184
+ 层级准则说的是什么工作该**升到**某层。本节说的是什么工作**不该送给**某层。这是两个不同的问题,而第二个问题的答案无法从第一个推导出来。
185
+
186
+ ### R3a 硬边界
187
+
188
+ > **硬边界是能力的「有无」,不是能力的「程度」。** 装不下输入的模型不是「把任务做得比较差」——它做不了这个任务。
189
+
190
+ 采用者**必须**在其「层级 → 模型」映射中登记硬边界,且**与能力分数并列而分开记录**:
191
+
192
+ | 硬边界 | 它回答的问题 | 违反时的后果 |
193
+ |---|---|---|
194
+ | **Context 容量** | 输入装得下吗? | 截断或报错——模型从未看过任务的一部分 |
195
+ | **Effort 参数支持** | 这个模型接受 effort 级距吗? | 请求被拒,或静默以模型固定深度执行 |
196
+ | **Modality 支持** | 它接受这种输入型别吗(影像、语音)? | 输入被丢弃或拒绝 |
197
+
198
+ **规则**:不满足任一必要硬边界的模型,须在**成本比较之前**排除,而非在比较中排名较低。事后才排除,会让比较便宜但做不到的模型在价格上胜出。
199
+
200
+ **登记格式**:硬边界对应能力登记表的 `declared`——布尔值,连接建立时即可取得,成本趋近零。分数 `1` **不是**硬边界,它是测量到的低质量(见 [R7a 四态表](#routing_rules--四态路由))。
201
+
202
+ ### R3b 反向风险
75
203
 
76
- ### 第 3 层:推理层(Reasoning)
204
+ 能力更高不是全面地更好。有两类风险的方向与层级准则相反:
77
205
 
78
- **用途**: 需要深度分析、架构决策或创造性问题解决的任务。
206
+ #### 1. 规格敏感类工作遭安全分类器拒绝
79
207
 
80
- **复杂度信号**:
81
- - 修改 5 个以上文件
82
- - 需要架构决策
83
- - 涉及权衡取舍
84
- - 需要创新解决方案
208
+ 高能力层可能带有更严格的安全分类。合法但形似禁止类别的工作——资安加固、缓解措施实作、凭证处理代码、red-team 工具——可能被**拒绝**。
85
209
 
86
- **示例**:
87
- - 设计新的系统架构
88
- - 调试复杂的竞态条件
89
- - 大规模重构
210
+ > **拒绝不是错误。** 调用返回的是**正常回应加上拒绝标记**。
211
+ > 对只检查 exit code、或只检查有无抛出例外的调用方而言,**这是静默失效**:
212
+ > 管线记录成功,而工作根本没做。
213
+
214
+ **要求**:
215
+
216
+ 1. 调用方**必须检查回应中的拒绝标记**。没有错误不等于完成的证据。(见 `verification-evidence` 标准:「检查工具跑了但返回了无意义的内容」与「检查根本没跑」是两种不同的失效类型。)
217
+ 2. 规格敏感类工作在**批次派往**高能力层之前,**必须先验证可行性**——用一则廉价的探测请求,而非整份任务。
218
+ 3. 遇到拒绝时,**改派至其他层级或其他 provider**;不要以更高 effort 重试同一请求。**effort 移动不了分类器的判定。**
219
+
220
+ #### 2. 过度详细的 prompt 会降低高天花板模型的质量
221
+
222
+ 把每一个步骤都写出来,对字面遵循型是正确做法,对高天花板型则是**错误**做法:后者会重新诠释已经决定过的事,产出反而变差。
223
+
224
+ **规则**:prompt 粒度随层级走。若唯一可用的 prompt 是完整写出的步骤清单,[准则 2](#准则-2--规格明确度) 本来就要求把它送到较低层——送到高层是双重错误:付更多钱,得到更差的产出。
90
225
 
91
226
  ---
92
227
 
93
228
  ## 升级规则
94
229
 
95
- | 条件 | 动作 |
230
+ 升级现在有两个轴;下表适用于**当前层级的 effort 已用尽之后**。
231
+
232
+ | 当前层级 | 在最高可用 effort 下仍失败 | 动作 |
233
+ |-------------|-----------|--------|
234
+ | Fast | → Standard | 以 Standard 层重新派工 |
235
+ | Standard | → Capable | 以 Capable 层重新派工 |
236
+ | Capable | → 人工 | 标记为需要人工介入 |
237
+
238
+ ### 升级不是重试
239
+
240
+ 升级意味着改用更有能力的模型,不是重复同一个动作。更高层级的模型会收到:
241
+ - 原始任务
242
+ - 低层级模型的产出与失败原因
243
+ - **已尝试过的 effort 级距**
244
+ - 其他可用的上下文
245
+
246
+ ---
247
+
248
+ ## 规则
249
+
250
+ | ID | 触发条件 | 动作 | 优先级 |
251
+ |----|---------|--------|----------|
252
+ | MS-001 | Fast 层 BLOCKED,effort 已用尽 | 升级至 Standard | High |
253
+ | MS-002 | Standard 层 BLOCKED,effort 已用尽 | 升级至 Capable | High |
254
+ | MS-003 | Capable 层 BLOCKED,effort 已用尽 | 标记为需要人工介入 | Critical |
255
+ | MS-004 | 任务规格仅有目标与约束 | 从 Standard 或更高层级开始 | Medium |
256
+ | MS-005 | 产出浅但推理健全,effort 尚未达 max | 在同一模型上提高 effort — **不要**升级层级 | High |
257
+ | MS-006 | 产出在种类上就错了,且 effort 已达 max | 升级模型层级 — 再提高 effort 买不到任何东西 | High |
258
+ | MS-007 | 候选模型不满足必要硬边界(context、effort 支持、modality) | 在成本比较**之前**排除 | Critical |
259
+ | MS-008 | 将规格敏感类工作派往高能力层 | 先探测可行性;每一则回应都要检查拒绝标记 | Critical |
260
+ | MS-009 | prompt 是完整写出的步骤清单 | 偏好字面遵循型;不要升到高天花板层 | Medium |
261
+ | MS-010 | `pin_date` 或 `measured.at` 距今超过 90 天 | 发出 WARN 并排入重测队列(不阻挡发版) | Medium |
262
+
263
+ ---
264
+
265
+ ## LLM 能力管理(XSPEC-027)
266
+
267
+ 上述两轴回答「选哪个模型、想多深」。本节回答第三个独立问题:**这个模型究竟做不做得到这「种」事,以及做得多好**——用于多模型池环境。
268
+
269
+ ### capability_dimensions — 能力维度
270
+
271
+ 能力维度分为四大类,共 10 个子维度:
272
+
273
+ | 大类 | 子维度 | 说明 | 基准测试 |
274
+ |------|--------|------|---------|
275
+ | modality | vision | 图片/截图理解(UI 分析、图表解读) | internal-vision-bench |
276
+ | modality | audio | 语音理解能力 | future-audio-bench |
277
+ | modality | image_generation | 图片生成能力 | provider-specific |
278
+ | reasoning | code_reasoning | 代码理解与生成质量 | humaneval-plus |
279
+ | reasoning | math_reasoning | 数学推理准确率 | gsm8k |
280
+ | reasoning | instruction_following | 复杂多步骤指令遵循率 | internal-instruction-bench |
281
+ | reasoning | long_context_quality | 长文档中间段信息存取 | needle-in-haystack |
282
+ | output | structured_output | JSON/Schema 格式输出成功率 | internal-json-bench |
283
+ | output | tool_use | Function Calling 正确率 | internal-tool-bench |
284
+ | language | multilingual_zh_tw | 繁体中文质量(本系统优先语言) | internal-zh-tw-bench |
285
+
286
+ #### 每个子维度有「两个」独立字段
287
+
288
+ > **单一 1–5 分无法表达两件不同的事。**「支不支持」是二元、厂商宣告、连接时即可取得;
289
+ > 「有多好」是连续、需要跑 benchmark。把两者编码进同一个数字,
290
+ > 会让便宜的事实与昂贵的事实无从分辨——而昂贵的那个会静默胜出。
291
+
292
+ | 字段 | 型别 | 来源 | 成本 | 意义 |
293
+ |---|---|---|---|---|
294
+ | `declared` | 布尔 | provider 的模型描述端点或设定宣告 | 趋近零,连接时可得 | **做不做得到这件事** |
295
+ | `measured` | `{ score: 1–5, at: 日期, version_identifier: 字串 }` | benchmark 执行 | 高,离线 | **做得多好** |
296
+
297
+ **规范性规则**:
298
+
299
+ 1. **`declared: false` 是硬边界。** 无论任何分数,该模型做不到这件事。它会被排除,且**不**排入校准队列——测量它没有意义。
300
+ 2. **`declared: true` 且 `measured` 缺失 = `UNKNOWN`。** 做得到,但不知道做得多好。这是**信息缺口**,不是结论。
301
+ 3. **`supported` 不得由 `score` 推导。** 任何以 `supported = score > 0`(或类似)计算的实作,都已把两个字段合并回单轴,重新制造了本规则存在所要防止的缺陷。
302
+ 4. **测量失败不得记为任何分数。** 必须记为缺失(`UNKNOWN`)。以默认值填补失败的测量——包括 `0`,而 `0` 不在 1–5 量表内——会让「我们量不到」与「我们量到了而且很差」无从分辨。
303
+
304
+ **评分量表(1–5),仅适用于 `measured.score`**:
305
+
306
+ | 分数 | 意义 |
96
307
  |------|------|
97
- | 低层级模型产出错误结果 | 升级到更高层级 |
98
- | 任务比预期更复杂 | 重新评估复杂度信号 |
99
- | 连续 2 次失败 | 直接升级到推理层 |
308
+ | 5 | 生产就绪 — 高准确率,可直接使用 |
309
+ | 4 | 良好 — 偶有遗漏,可接受 |
310
+ | 3 | 基本可用 — 需人工补充 |
311
+ | 2 | 部分可用 — 仅供参考 |
312
+ | 1 | 不可靠 — 不建议使用 |
313
+
314
+ **没有 0 分。** 测量缺失以「`measured` 物件不存在」表达,绝不以分数表达。
315
+
316
+ ### capability_registry — 模型能力登记表
317
+
318
+ 各专案依自己的实测,在自己的 `capability_registry` 中维护每个模型的分数。
319
+
320
+ > **本标准依规则不登记任何具体厂商模型 ID。** 写进标准的模型 ID 是一个
321
+ > **有到期日、却没有时钟**的引用端:它会过期,而过期的样子与正常的样子在页面上无从分辨。
322
+ > 以下范例一律使用占位符。
323
+
324
+ **格式**:
325
+ ```yaml
326
+ - model_id: "<provider>/<model-name>" # 占位符 — 由采用者填入
327
+ version_pinned: "<version-identifier>" # SHA、日期戳或 model_version
328
+ pin_date: "<YYYY-MM-DD>"
329
+ eol_date: "<YYYY-MM-DD>" # 可选
330
+ capabilities:
331
+ "modality.vision":
332
+ declared: true
333
+ measured:
334
+ score: 4
335
+ at: "<YYYY-MM-DD>"
336
+ version_identifier: "<测量时所用的版本标识>"
337
+ "modality.audio":
338
+ declared: false # 硬边界 — 无 measured 字段,也不需要
339
+ "output.tool_use":
340
+ declared: true # measured 缺失 → UNKNOWN → 排入校准队列
341
+ ```
342
+
343
+ **版本锁定(DEC-031 D1)**:`version_pinned` 与 `pin_date` 为**必填**,以防模型静默升级而能力在无人察觉下改变。
344
+
345
+ **逾期检查(WARN,非 BLOCK)**:`pin_date` 或 `measured.at` 距今超过 **90 天**时,**必须**发出 WARN,并指名受影响的 `model_id` 与子维度。它**不得**阻挡发版——纯档内不变量的误报率过高,不适合作为闸门。
346
+
347
+ ### routing_rules — 四态路由
348
+
349
+ > **「没测过」与「测过且不可靠」不是同一个状态。** 压成同一态的后果是:
350
+ > 新侦测到的模型在第一次评估时就被排除,而且再也回不到候选池——
351
+ > **与「支持更多模型」的目标直接相反。**
352
+
353
+ | 状态 | 条件 | 动作 |
354
+ |---|---|---|
355
+ | `SUPPORTED` | 所需能力的 `measured.score` 皆 ≥ `min_score` | 正常执行 |
356
+ | `DEGRADED` | `measured.score` 存在、≥ 2、但低于 `min_score` | 降级执行;产出标记 `[DEGRADED]` |
357
+ | `UNSUPPORTED` | **`measured` 存在**且 `score` ≤ 1 | 排除;**不**排入校准队列(已有结论) |
358
+ | `UNKNOWN` | **`measured` 缺失**——未登记、测量失败或资料逾期——而 `declared: true` | **排入校准队列**;在校准完成前**不得**静默排除 |
359
+
360
+ **`declared: false`** 在本表之前处理:它是硬边界([R3a](#r3a-硬边界)),排除且**不**排入校准队列。
361
+
362
+ **可观测性要求**:`UNKNOWN` 与 `UNSUPPORTED` **必须在返回结构上可分辨**,而不只是在 log 上可分辨。调用方必须能分辨「这个模型不行」与「我还不知道这个模型行不行」——两者导向不同的下一步动作。返回单一布尔值、或只返回三态的路由 API,表达不了这件事。
363
+
364
+ **决策树**:
365
+
366
+ ```
367
+ 任务需要 capability X
368
+ ├── declared == false → 硬边界 — 排除,不校准
369
+ ├── measured 缺失/失败/逾期 → UNKNOWN — 排入校准队列
370
+ ├── measured.score ≤ 1 → UNSUPPORTED — 排除,不校准
371
+ ├── measured.score ≥ 2 且 < min_score → DEGRADED — 执行并标记 [DEGRADED]
372
+ └── measured.score ≥ min_score → SUPPORTED — 执行
373
+ ```
374
+
375
+ ### 重测触发 — 三条独立路径
376
+
377
+ > **版本变更是充分条件,不是必要条件。** 降智侦测(DEC-033)之所以存在,
378
+ > 正是因为**模型 ID 与版本字串不变而行为改变**。
379
+ > 仅由版本变更触发的实作,会漏掉 DEC-033 整个要防的情境。
380
+
381
+ | # | 触发 | 效果 |
382
+ |---|---|---|
383
+ | 1 | `version_identifier` 与 `measured` 中记录的不同 | 既有测量**立即失效** → 状态变为 `UNKNOWN` |
384
+ | 2 | `measured.at` 距今超过 90 天 | 排入重测;发出 WARN(见 MS-010) |
385
+ | 3 | 降智侦测告警(DEC-033,CAP-004/CAP-005) | 排入重测——**即使版本字串未变** |
386
+
387
+ 这三条**彼此独立**:各自单独触发,且没有任何一条是另一条的前提。
388
+
389
+ ### 能力规则
390
+
391
+ | ID | 条件 | 动作 | 优先级 |
392
+ |------|------|------|------|
393
+ | CAP-001 | 所需 capability 的 `measured.score` ≥ `min_score` | SUPPORTED — 正常执行 | High |
394
+ | CAP-002 | `measured.score` ≥ 2 但低于 `min_score` | DEGRADED — 降级流程,产出标记 `[DEGRADED]` | Medium |
395
+ | CAP-003 | **`measured` 存在**且 `score` ≤ 1 | UNSUPPORTED — 替代流程或提示用户;不校准 | High |
396
+ | CAP-004 | 降智侦测(DEC-033)触发 moderate 信号 | 启动金丝雀测试,记录降智警告,**并将受影响能力排入重测** | High |
397
+ | CAP-005 | 降智侦测触发 critical 信号 | 切换备用模型,上报 P1 Issue,**并将受影响能力排入重测** | Critical |
398
+ | CAP-006 | `declared: true` 且 `measured` 缺失、失败或逾期 | UNKNOWN — 排入校准队列;**不得**静默排除 | High |
399
+ | CAP-007 | 所需 capability 的 `declared: false` | 硬边界 — 在成本比较之前排除;**不**排入校准队列 | Critical |
400
+ | CAP-008 | `version_identifier` 与 `measured.version_identifier` 不同 | 立即失效该测量 → `UNKNOWN` | High |
401
+
402
+ **选择策略**:`pareto_weighted` — 在**通过硬边界排除的候选之中**,优先选择所需维度得分最高、成本最低的模型。
403
+
404
+ ### 与两个轴的关系
405
+
406
+ - **模型轴** — 推理天花板与性格(选哪个模型)
407
+ - **Effort 轴** — 这次派工的思考深度(想多深)
408
+ - **能力维度** — 选中的模型究竟做不做得到这「种」事,以及做得多好
409
+
410
+ 套用顺序:硬边界排除 → 依两个准则选层级 → 确认所需能力为 `SUPPORTED` 或可接受的 `DEGRADED` → 选择 effort 级距。
100
411
 
101
412
  ---
102
413
 
103
414
  ## 与下一步建议整合
104
415
 
105
- [ai-response-navigation](ai-response-navigation.md) 标准(规则 R6,可选)允许每个「建议下一步」选项携带级别标注。本标准的复杂度信号即为判断依据。
416
+ [ai-response-navigation](ai-response-navigation.md) 标准(规则 R6,选用)允许每个「建议下一步」选项携带等级标注。本标准的准则即为判断依据。
106
417
 
107
- **与厂商无关原则**:级别名称(Fast/Standard/Capable)是工具无关的泛称。各平台自行将级别映射到可用模型。
418
+ > **2.1.0 的变更**:先前的标注是依文件数推导的。依旧准则做出的既有标注可能已不再准确。
419
+ > 层级标识符未变,因此**不需要资料迁移**;下次编辑周边文字时顺手重新评估标注即可。
108
420
 
109
- | 级别 | 典型能力定位 |
110
- |------|-------------|
111
- | Fast | 轻量级 / 指令遵循 |
112
- | Standard | 均衡推理 + 代码生成 |
113
- | Capable | 高级推理、架构分析 |
421
+ **与厂商无关原则**:等级名称(Fast/Standard/Capable)与 effort 标签(`low` … `max`)都是工具无关的泛称,不对应任何特定厂商的模型标识符或参数名称。各平台自行维护「等级 → 模型」映射、「effort 标签 → 参数」映射,以及自己的硬边界登记。
114
422
 
115
423
  ---
116
424
 
117
425
  ## 相关标准
118
426
 
119
- - [代理派遣与并行协调](agent-dispatch.md)
120
- - [验证证据](verification-evidence.md)
427
+ - [代理派遣与并行协调](agent-dispatch.md) — **怎么派**:并行安全、独立域准则、状态协定、prompt 设计。本标准管的是**派给谁、想多深**;两者互补,且**不得互相重写**——并行安全规则属于该标准,不属于这里。
428
+ - [验证证据](verification-evidence.md) — 为何「没有抛出错误」不是成功的证据;[R3b](#r3b-反向风险) 拒绝标记要求的依据
429
+ - [系统化除错](systematic-debugging.md) — 先诊断再修改,在此适用于「深度不足 vs 天花板不足」的判断
121
430
 
122
431
  ---
123
432
 
124
433
  ## 版本历史
125
434
 
435
+ > **关于排序**:各列依**版本序**排列,非日期序。版本 `2.0.0`(2026-04-13)早于
436
+ > `1.0.1`(2026-06-10),因为当时能力管理章节自带一条独立的版本序。
437
+ > 2.1.0 移除了章节版本,见[版本栏语义](#版本栏语义)。
438
+
126
439
  | 版本 | 日期 | 变更 |
127
440
  |------|------|------|
441
+ | 2.1.0 | 2026-08-11 | **二轴重构(XSPEC-362)**。模型轴准则由文件数改为「推理天花板需求 × 规格明确度」(R1)。新增正交的 effort 轴,含与厂商无关的级距与「深度不足 vs 天花板不足」失败诊断(R2)。新增反向排除规则:硬边界,以及安全分类器拒绝作为静默失效(R3)。`capability_dimensions` 子维度拆为 `declared` / `measured`(R7b);`routing_rules` 扩为四态,分离 `UNKNOWN` 与 `UNSUPPORTED`(R7a);三条独立重测触发(R7c)。`capability_registry` examples 改为占位符,新增 90 天逾期 WARN(R4)。移除章节版本;明确规定 `.ai.yaml` 的 `meta.version` 对应全文件版本(R6a)。新增规则 MS-005–MS-010、CAP-006–CAP-008。 |
442
+ | 2.0.0 | 2026-04-13 | 新增 LLM 能力管理章节(XSPEC-027 Phase 1):`capability_dimensions`、`capability_registry`、`routing_rules`。*本列于 2.1.0 回溯补登——此变更当时从未进入版本历史。* |
128
443
  | 1.0.1 | 2026-06-10 | 新增「与下一步建议整合」节(R6 交叉引用;与厂商无关原则) |
129
444
  | 1.0.0 | 2026-03-20 | 初始版本 |
130
445
 
@@ -4,7 +4,7 @@ source_version: 1.0.0
4
4
  translation_version: 1.0.0
5
5
  last_synced: 2026-06-10
6
6
  source_hash: 6a5286d76274
7
- status: current
7
+ status: stale
8
8
  ---
9
9
 
10
10
  # 变异测试标准
@@ -3,7 +3,7 @@ source: ../../../core/test-governance.md
3
3
  source_version: 1.1.0
4
4
  translation_version: 1.1.0
5
5
  last_synced: 2026-04-20
6
- status: current
6
+ status: stale
7
7
  ---
8
8
 
9
9
  > **语言**: [English](../../../core/test-governance.md) | 简体中文
@@ -3,7 +3,7 @@ source: ../../../core/translation-lifecycle-standards.md
3
3
  source_version: 1.0.0
4
4
  translation_version: 1.0.0
5
5
  last_synced: 2026-04-20
6
- status: current
6
+ status: stale
7
7
  ---
8
8
 
9
9
  # 翻译生命周期标准
@@ -3,7 +3,7 @@ source: ../../../core/verification-evidence.md
3
3
  source_version: 1.2.0
4
4
  translation_version: 1.2.0
5
5
  last_synced: 2026-07-17
6
- status: current
6
+ status: stale
7
7
  ---
8
8
 
9
9
  > **语言**: [English](../../../core/verification-evidence.md) | 简体中文
@@ -1,6 +1,6 @@
1
1
  # UDS 速查表
2
2
 
3
- > Quick reference for all UDS features | Last updated: 2026-08-10
3
+ > Quick reference for all UDS features | Last updated: 2026-08-12
4
4
 
5
5
  **Language**: [English](../../../docs/user/CHEATSHEET.md) | [繁體中文](../../zh-TW/docs/CHEATSHEET.md) | 简体中文
6
6
 
@@ -240,7 +240,7 @@
240
240
  | `logging-standards` | Logging Standards |
241
241
  | `mock-boundary` | This document defines rules for what can and canno |
242
242
  | `model-provenance` | Model Provenance Policy Standards |
243
- | `model-selection` | Define a cost-effective strategy for selecting AI |
243
+ | `model-selection` | Define how to choose **which model** and **how dee |
244
244
  | `multi-environment-e2e-testing` | Multi-Environment E2E Testing Standards |
245
245
  | `mutation-testing` | Mutation testing evaluates test suite effectivenes |
246
246
  | `no-cicd-deployment` | No-CI/CD Deployment Strategy |
@@ -319,27 +319,22 @@
319
319
  | `aggregate-effectiveness.mjs` | Aggregate Standards Effectiveness Reports |
320
320
  | `analyze-hook-stats.mjs` | Hook Statistics Analyzer (SPEC-SELFDIAG-001 REQ-7, |
321
321
  | `bump-version.mjs` | Build a platform-aware shell command for a .sh scr |
322
- | `bump-version.sh` | DEPRECATED: Use 'node scripts/bump-version.mjs <ve |
322
+ | `bump-version.sh` | Thin wrapper — scripts/bump-version.mjs is the onl |
323
323
  | `check-ai-agent-sync.ps1` | Check Ai Agent Sync |
324
324
  | `check-ai-agent-sync.sh` | AI Agent Sync Checker |
325
- | `check-ai-behavior-sync.sh` | DEPRECATED: Use 'npx tsx scripts/check-ai-behavior |
326
325
  | `check-ai-yaml-parses.mjs` | Every shipped .ai.yaml must parse, and must parse |
327
326
  | `check-cli-docs-sync.ps1` | Check Cli Docs Sync |
328
327
  | `check-cli-docs-sync.sh` | CLI-to-Documentation Sync Checker |
329
328
  | `check-commands-sync.ps1` | Check Commands Sync |
330
329
  | `check-commands-sync.sh` | Commands Sync Checker |
331
- | `check-commit-spec-reference.sh` | DEPRECATED: Use 'npx tsx scripts/check-commit-spec |
330
+ | `check-commit-spec-reference.sh` | Thin wrapper — scripts/check-commit-spec-reference |
332
331
  | `check-docs-integrity.ps1` | Check Docs Integrity |
333
332
  | `check-docs-integrity.sh` | Documentation Integrity Checker |
334
333
  | `check-docs-sync.ps1` | Check Docs Sync |
335
334
  | `check-docs-sync.sh` | Documentation Sync Checker |
336
335
  | `check-external-references.mjs` | External Reference Checker (SPEC-SELFDIAG-001 REQ- |
337
- | `check-flow-gate-report.sh` | DEPRECATED: Use 'npx tsx scripts/check-flow-gate-r |
338
- | `check-integration-commands-sync.sh` | DEPRECATED: Use 'npx tsx scripts/check-integration |
339
336
  | `check-orphan-specs.ps1` | Check Orphan Specs |
340
337
  | `check-orphan-specs.sh` | Orphan Spec Detection Script |
341
- | `check-registry-completeness.sh` | DEPRECATED: Use 'npx tsx scripts/check-registry-co |
342
- | `check-release-readiness-signoff.sh` | DEPRECATED: Use 'npx tsx scripts/check-release-rea |
343
338
  | `check-scope-sync.ps1` | Check Scope Sync |
344
339
  | `check-scope-sync.sh` | Scope Consistency Check Script |
345
340
  | `check-skill-next-steps-sync.ps1` | Check Skill Next Steps Sync |
@@ -356,16 +351,16 @@
356
351
  | `check-usage-docs-sync.sh` | check-usage-docs-sync.sh |
357
352
  | `check-version-sync.ps1` | Check Version Sync |
358
353
  | `check-version-sync.sh` | Version Sync Checker |
359
- | `check-workflow-compliance.sh` | DEPRECATED: Use 'npx tsx scripts/check-workflow-co |
354
+ | `check-workflow-compliance.sh` | Thin wrapper — scripts/check-workflow-compliance.t |
360
355
  | `commitlint-bilingual-rule.mjs` | commitlint-bilingual-rule.mjs — custom commitlint |
361
356
  | `convert-md-to-yaml.mjs` | Markdown to AI-YAML Conversion Script |
362
357
  | `fix-manifest-paths.ps1` | Fix Manifest Paths |
363
358
  | `fix-manifest-paths.sh` | Manifest Path Fixer |
364
- | `generate-docs.mjs` | Sync the "AI Tool Support" table's Skills/Slash Co |
359
+ | `generate-docs.mjs` | Look up the release date for `version` from CHANGE |
365
360
  | `generate-locale-coverage.mjs` | Locale Coverage Generator |
366
361
  | `generate-version-manifest.mjs` | Generate Version Manifest (SPEC-SELFDIAG-001 REQ-9 |
367
362
  | `install-hooks.mjs` | Install Hooks |
368
- | `install-hooks.sh` | DEPRECATED: Use 'node scripts/install-hooks.mjs' i |
363
+ | `install-hooks.sh` | Thin wrapper — scripts/install-hooks.mjs is the on |
369
364
  | `pre-commit.mjs` | Build a platform-aware shell command for a .sh scr |
370
365
  | `pre-release-check.ps1` | Pre Release Check |
371
366
  | `pre-release-check.sh` | Pre-release Check Script |