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,7 +1,7 @@
1
1
  # UDS 功能参考手册
2
2
 
3
3
  > Universal Development Standards - 完整功能文档
4
- > Auto-generated | Last updated: 2026-08-10
4
+ > Auto-generated | Last updated: 2026-08-12
5
5
 
6
6
  **Language**: [English](../../../docs/reference/FEATURE-REFERENCE.md) | [繁體中文](../../zh-TW/docs/FEATURE-REFERENCE.md) | 简体中文
7
7
 
@@ -15,9 +15,9 @@
15
15
  4. [代理](#agents) (5)
16
16
  5. [工作流程](#workflows) (5)
17
17
  6. [核心规范](#core-standards) (150)
18
- 7. [脚本](#scripts) (59)
18
+ 7. [脚本](#scripts) (54)
19
19
 
20
- **Total Features: 334**
20
+ **Total Features: 329**
21
21
 
22
22
  ---
23
23
 
@@ -367,7 +367,7 @@
367
367
  | `logging-standards` | 1.4.0 | |
368
368
  | `mock-boundary` | 1.1.0 | This document defines rules for what can and cannot be mocked in tests. Its goal |
369
369
  | `model-provenance` | 1.0.0 | **Status**: Active | **Updated**: 2026-06-17 | |
370
- | `model-selection` | 1.0.1 | Define a cost-effective strategy for selecting AI model tiers based on task comp |
370
+ | `model-selection` | 2.1.0 | Define how to choose **which model** and **how deeply it should think** — two in |
371
371
  | `multi-environment-e2e-testing` | 1.0.0 | **Status**: Active | **Updated**: 2026-05-13 | |
372
372
  | `mutation-testing` | 1.0.0 | Mutation testing evaluates test suite effectiveness by injecting artificial bugs |
373
373
  | `no-cicd-deployment` | - | |
@@ -428,7 +428,7 @@
428
428
  | `testing-standards` | 3.2.0 | This standard defines actionable testing rules and conventions for AI agents and |
429
429
  | `timeout-standards` | - | |
430
430
  | `token-budget` | - | |
431
- | `translation-lifecycle-standards` | 1.0.0 | Translation lifecycle standards: MISSING vs OUTDATED distinction, semver-aware s |
431
+ | `translation-lifecycle-standards` | 1.0.1 | Translation lifecycle standards: MISSING vs OUTDATED distinction, semver-aware s |
432
432
  | `user-journey-testing` | - | |
433
433
  | `user-story-mapping` | 1.0.0 | **Status**: Active | **Updated**: 2026-06-17 | |
434
434
  | `verification-evidence` | 1.2.0 | Establish an "Iron Law" that no task can be claimed as complete without verifica |
@@ -448,27 +448,22 @@
448
448
  | `aggregate-effectiveness.mjs` | Aggregate Standards Effectiveness Reports |
449
449
  | `analyze-hook-stats.mjs` | Hook Statistics Analyzer (SPEC-SELFDIAG-001 REQ-7, AC-11) |
450
450
  | `bump-version.mjs` | Build a platform-aware shell command for a .sh script. |
451
- | `bump-version.sh` | DEPRECATED: Use 'node scripts/bump-version.mjs <version>' instead (cross-platform). |
451
+ | `bump-version.sh` | Thin wrapper — scripts/bump-version.mjs is the only copy of the bump logic. |
452
452
  | `check-ai-agent-sync.ps1` | Check Ai Agent Sync |
453
453
  | `check-ai-agent-sync.sh` | AI Agent Sync Checker |
454
- | `check-ai-behavior-sync.sh` | DEPRECATED: Use 'npx tsx scripts/check-ai-behavior-sync.ts' instead (cross-platform). |
455
454
  | `check-ai-yaml-parses.mjs` | Every shipped .ai.yaml must parse, and must parse into what it says. |
456
455
  | `check-cli-docs-sync.ps1` | Check Cli Docs Sync |
457
456
  | `check-cli-docs-sync.sh` | CLI-to-Documentation Sync Checker |
458
457
  | `check-commands-sync.ps1` | Check Commands Sync |
459
458
  | `check-commands-sync.sh` | Commands Sync Checker |
460
- | `check-commit-spec-reference.sh` | DEPRECATED: Use 'npx tsx scripts/check-commit-spec-reference.ts' instead (cross-platform). |
459
+ | `check-commit-spec-reference.sh` | Thin wrapper — scripts/check-commit-spec-reference.ts is the only copy of |
461
460
  | `check-docs-integrity.ps1` | Check Docs Integrity |
462
461
  | `check-docs-integrity.sh` | Documentation Integrity Checker |
463
462
  | `check-docs-sync.ps1` | Check Docs Sync |
464
463
  | `check-docs-sync.sh` | Documentation Sync Checker |
465
464
  | `check-external-references.mjs` | External Reference Checker (SPEC-SELFDIAG-001 REQ-5, AC-7) |
466
- | `check-flow-gate-report.sh` | DEPRECATED: Use 'npx tsx scripts/check-flow-gate-report.ts' instead (cross-platform). |
467
- | `check-integration-commands-sync.sh` | DEPRECATED: Use 'npx tsx scripts/check-integration-commands-sync.ts' instead (cross-platform). |
468
465
  | `check-orphan-specs.ps1` | Check Orphan Specs |
469
466
  | `check-orphan-specs.sh` | Orphan Spec Detection Script |
470
- | `check-registry-completeness.sh` | DEPRECATED: Use 'npx tsx scripts/check-registry-completeness.ts' instead (cross-platform). |
471
- | `check-release-readiness-signoff.sh` | DEPRECATED: Use 'npx tsx scripts/check-release-readiness-signoff.ts' instead (cross-platform). |
472
467
  | `check-scope-sync.ps1` | Check Scope Sync |
473
468
  | `check-scope-sync.sh` | Scope Consistency Check Script |
474
469
  | `check-skill-next-steps-sync.ps1` | Check Skill Next Steps Sync |
@@ -485,16 +480,16 @@
485
480
  | `check-usage-docs-sync.sh` | check-usage-docs-sync.sh |
486
481
  | `check-version-sync.ps1` | Check Version Sync |
487
482
  | `check-version-sync.sh` | Version Sync Checker |
488
- | `check-workflow-compliance.sh` | DEPRECATED: Use 'npx tsx scripts/check-workflow-compliance.ts' instead (cross-platform). |
483
+ | `check-workflow-compliance.sh` | Thin wrapper — scripts/check-workflow-compliance.ts is the only copy of the |
489
484
  | `commitlint-bilingual-rule.mjs` | commitlint-bilingual-rule.mjs — custom commitlint rules enforcing the |
490
485
  | `convert-md-to-yaml.mjs` | Markdown to AI-YAML Conversion Script |
491
486
  | `fix-manifest-paths.ps1` | Fix Manifest Paths |
492
487
  | `fix-manifest-paths.sh` | Manifest Path Fixer |
493
- | `generate-docs.mjs` | Sync the "AI Tool Support" table's Skills/Slash Commands numeric columns |
488
+ | `generate-docs.mjs` | Look up the release date for `version` from CHANGELOG.md's own |
494
489
  | `generate-locale-coverage.mjs` | Locale Coverage Generator |
495
490
  | `generate-version-manifest.mjs` | Generate Version Manifest (SPEC-SELFDIAG-001 REQ-9, AC-14) |
496
491
  | `install-hooks.mjs` | Install Hooks |
497
- | `install-hooks.sh` | DEPRECATED: Use 'node scripts/install-hooks.mjs' instead (cross-platform). |
492
+ | `install-hooks.sh` | Thin wrapper — scripts/install-hooks.mjs is the only copy of the installer |
498
493
  | `pre-commit.mjs` | Build a platform-aware shell command for a .sh script. |
499
494
  | `pre-release-check.ps1` | Pre Release Check |
500
495
  | `pre-release-check.sh` | Pre-release Check Script |
@@ -1,8 +1,8 @@
1
1
  ---
2
2
  source: ../../CHANGELOG.md
3
- source_version: 6.4.0
4
- translation_version: 6.4.0
5
- last_synced: 2026-08-10
3
+ source_version: 6.5.0
4
+ translation_version: 6.5.0
5
+ last_synced: 2026-08-14
6
6
  status: current
7
7
  ---
8
8
 
@@ -17,6 +17,40 @@ status: current
17
17
 
18
18
  ## [Unreleased]
19
19
 
20
+ ## [6.5.0] - 2026-08-14
21
+
22
+ ### 新增
23
+
24
+ - **四份既有標準的五條補強,借鑒自 `AmazingAng/old-coder`**(XSPEC 借鑒 B-01)。**未新增任何標準**,每一條都是既有標準內部的條文。同一來源另有兩項主張被**駁回**,因為我方版本更嚴——`verification-evidence` 早已有四條證據有效性規則配八個實例對照表,而 `class-level-fix` 早已要求負向控制**逐子集**執行並**指名**違規成員,來源沒有這一條。
25
+ - **`verification-evidence` 1.2.0 → 1.3.0 —— VE-011,證據新鮮度。** 證據紀錄裡的每一個數字,必須來自**它所驗證的產物最後一次編輯之後的單一次新鮮執行**;中途執行的結果是 stale,不得列入。VE-001 到 VE-010 管的都是結果**怎麼被解讀**,沒有一條管**它何時被產生**。它關掉的失效是:測試全綠 → 之後才改提示詞或設定 → 提交,而通過的那一套是最後一次變更**之前**的;抓到它的守衛正好是釘內容雜湊的那一種,而型別檢查與 lint 從不驚動它。
26
+ - **`test-governance` 1.1.0 → 1.2.0 —— 門檻閘必須 fail-closed。** 一個印出百分比卻不論有沒有達標都 exit `0` 的量測層是報告,不是閘門:它會在數字一路下滑時保持綠燈,而沒有東西擋下一次合併。強制必須來自工具自己的旗標(`--cov-fail-under`、`diff-cover --fail-under`、`nyc --check-coverage`),而不是事後重新解析輸出的包裝腳本。放在這份標準而非 `verification-evidence`,是因為這份管的是**檢查怎麼被建造**,那份管的是 exit code 產生**之後怎麼被解讀**;兩者現有交叉引用。
27
+ - **`mutation-testing` 1.0.0 → 1.1.0 —— kill 歸因、單邊不變式、equivalent mutant。** `Killed` 的意思是**某一個**測試失敗了;工具不記錄是哪一個,也沒有任何工具記錄是哪一**層**。所以 7/7 驗證的是跑過的**整套**,不是其中的 property 套件——要主張「property 驗證了 X」,必須單獨對 property 套件重跑 mutants。單邊不變式(「永不超過上限」)**結構上抓不到** fail-closed 的 mutant,因為全部拒絕永遠不會產生超限輸出;每個單邊性質現在都需要它的相反邊界。而存活的 mutant 不自動等於缺口——語意等價者必須附理由分類,而不是用一個只為了讓數字好看的斷言去殺它。
28
+ - **`class-level-fix` 1.0.0 → 1.1.0 —— 一次通過的負向控制不證明什麼。** 通過一次,證明的是**一個**已知壞案例能到達檢查器的失敗路徑。它**不證明**該檢查器認得它所宣稱守護的規則的**每一種**違反。一道 grep 閘可以 fail-closed 得很完美,卻守著一個拼字而不是一個行為:那個合成成員證明的是線路接通了,不是那張網夠寬。
29
+ - **VE-012 / CLF-008 —— 窄閘門必須登記,不是只要揭露。** 當一道檢查的實際涵蓋面窄於它所服務的規則,說出來是必要而不充分:**光是揭露不滿足本規則**,因為寫「本檢查不涵蓋全部」遠比擴大涵蓋面便宜,於是每道窄閘門都會長出一段誠實的文字然後維持窄。該缺口必須在例外清冊裡有一筆帶複查日期的登記。**這正是本 repo 反覆的失效**——一次雜湊掃描 115 份進去 2 份出來、一個參考檢查器整個略過一個出貨目錄、一道索引閘門只對日期戳發作——每一次都是閘門窄於規則而沒有東西說出來。
30
+
31
+ ### 變更
32
+
33
+ - **`model-selection` 1.0.1 → 2.1.0 —— 一個軸變成兩個**(XSPEC-362)。原標準以**一個任務改動幾個檔案**決定模型層級。三個檔案的模組邊界重新設計比八個檔案的機械改名難,所以那個訊號**朝固定方向**錯分了「深而窄」的工作——是偏誤,不是雜訊。它活下來是因為便宜好量,不是因為它預測得準。改為兩個準則:**推理天花板需求**(有沒有一個成分是再多思考時間也解不掉的?)與**規格明確度**,且後者明確是**雙向**的——把模稜兩可的任務交給照字面執行的模型,得到的是「精確地執行了錯的那句話」,而把寫死的步驟清單餵給高天花板模型會**降低**輸出品質。層級 id(`fast` / `standard` / `capable`)不變,只有準則換了。
34
+ - **新增 effort 軸,與模型軸正交。** 思考深度現在是**單次派工的參數**,不是模型的屬性:廠商中立的 `low` / `medium` / `high` / `very-high` / `max`,由各平台在本地對映。標準明白寫出哪種失敗配哪種處置——輸出淺但無誤是**深度不足**(同一模型提高 effort),在 max effort 下輸出**種類**就錯了是**天花板不足**(升層級)——並寫明兩者不可互換。**沒有把 effort 用盡就升層級,是對「短缺的是哪一個軸」下了一個未經測試的假設。**
35
+ - **新增反向排除章節。** 舊標準只說什麼工作該**升**到哪一層,從不說什麼不該**送**進哪一層。**硬邊界**(context 容量、effort 參數支援、模態)是能力的缺席而非程度較低,必須在**成本比較之前**排除——事後排除會讓一個較便宜但做不到的模型在價格上勝出。**反向風險**:高能力層可能透過安全分類器拒絕規格敏感的工作,而**該拒絕不是錯誤**——它以帶著拒絕標記的正常回應抵達。對一個只看 exit code 或只看有沒有拋例外的呼叫端,那是**靜默失敗**:管線記錄成功,而工作從未被做。呼叫端現在必須檢查該標記。
36
+ - **`capability_dimensions` 子維度拆成 `declared` 與 `measured`。** 一個 1–5 分同時扛著兩件不同的事實:*它到底能不能做*(二元、廠商宣告、連線時免費取得)與*做得多好*(連續、需要 benchmark)。合在一起,便宜的事實與昂貴的事實變得無從分辨。`declared: false` 現在是硬邊界;`declared: true` 而 `measured` 缺席即 `UNKNOWN`。禁止從分數推導 `supported`,且**失敗的量測不得記為分數**——包含 `0`,它不在 1–5 的量尺上,而且它會讓「我們量不到」看起來與「我們量了而它很差」一模一樣。
37
+ - **`routing_rules` 從三態擴為四態。** `UNSUPPORTED` 原本意指「分數 ≤ 1 **或未註冊**」,把「量過且不可靠」與「從未量過」塌縮在一起。後果是新偵測到的模型在第一次評估就被排除、且永不再進入候選池——與「支援更多模型」的目的正好相反。`UNKNOWN` 現在是獨立狀態並**排入校準佇列**,且兩者必須在**回傳結構中**可分辨,而不只是在 log 裡:呼叫端得分出「這個模型做不到」與「我還不知道」,因為它們導向不同的下一步。
38
+ - **重新量測現有三個獨立觸發**:版本識別字變更、`measured.at` 超過 90 天、以及降級偵測告警(DEC-033)。版本變更是**充分**條件而非必要條件——DEC-033 存在的理由正是行為會在版本字串不變的情況下改變,所以一個只綁版本變更的實作,會漏掉它當初被建造要抓的整個情境。
39
+ - **移除章節版本**(R6a)。該檔同時帶著一個全檔版本 `1.0.1` **與**一個標記 `2.0.0` 的章節,而沒有任何規則說明 `.ai.yaml` 的 `meta.version` 追蹤的是哪一個——於是「版本有同步」不是一個可檢查的主張。現在只有一個版本欄位,而「`.ai.yaml` 追蹤它」這條規則寫在標準裡。2026-04-13 新增的能力管理章節——**它從來沒有被寫進版本歷史**——現已補記。
40
+
41
+ ### 新增(XSPEC-362 續)
42
+
43
+ - **`check-model-pin-freshness` —— 給 `capability_registry` 一個時鐘**(XSPEC-362 R4)。DEC-031 D1 要求 `pin_date` 被**記錄**;從來沒有東西要求它被**讀取**。出貨的範例躺在**超過自己 90 天門檻整整 120 天**的位置,而在頁面上,一筆過期條目與一筆有效條目無從分辨。這道檢查回報兩種腐壞:超過門檻的日期,以及**出貨範例裡的具體廠商模型 ID**——一個被寫進標準的模型 ID 是一則帶到期日而無人認領的引用,所以範例改用佔位符。它是 **WARN 永不 BLOCK**(依 XSPEC-361 R8 對檔內不變式實測的偽陽性率);只有掃描未完成才非零離開,因為「檢查器壞了」與「檢查器沒找到東西」不可以產生相同的輸出。它**走訪**出貨樹而非讀一份手打清單,並印出分母與排除數。`--self-test` 對已知判定的 fixture 跑兩個判準,因為一個掃了 366 個檔案卻什麼都沒報的檢查器,看起來與一個判準從不觸發的檢查器一模一樣。已接進 `pre-release-check.sh` 第 18.8 步。
44
+ - **`model-selection` 的 Claude Code 宿主層對映**(XSPEC-362 R5):`integrations/claude-code/model-selection-mapping.md` 與其機器可讀孿生檔、四份參考 subagent 定義、以及一份跨 repo 派工模板。標準**依規則**廠商中立——它定義 `fast` / `standard` / `capable` 與 `low` … `max` 為標籤,並聲明它無法說某個模型接受哪些 effort 等級,那些格子標 `?`。這個目錄為單一宿主回答它們,且是本 repo **唯一**該出現具體模型識別字的地方。`core/` 未變動,仍帶**零**個具體模型 ID。
45
+ - **這份對映存在,是因為名字對不上。** UDS 的 `very-high` 在 Claude Code 裡叫 `xhigh` —— 唯一被改名的等級。標準不為了遷就工具而彎折;改名在宿主層被吸收,那正是 R5 的用途。
46
+ - **`fast` 層在這個宿主上沒有 effort 軸**,因為它的模型根本不接受任何 effort 等級。那是一條硬邊界,且對標準自己的規則有後果:**MS-005**(「同一模型提高 effort」)**在那裡無法執行**,而改用 MS-001 並不違反順序規則——該層的 effort 集合從一開始就是空的。
47
+ - **硬邊界登記為 `declared` 而非分數**(依 R7b),而 `measured` 全程缺席因為沒有跑過 benchmark ——記為 `UNKNOWN`,絕不以預設值填充。登記表另外點名兩條在 agent 檔案裡看不見的邊界:同一個別名在不同 provider 解析到不同模型(在某些上面 `effort` 是靜默失效的),以及背景 subagent —— v2.1.198 起的預設 —— 會靜默失去固定集合以外的內建工具,且不回報任何錯誤。
48
+ - **R3b 是引述廠商,不是斷言。** 宿主自己的文件說它最高能力的模型在安全分類器觸發時會自動 fallback,且要從它得到好輸出的方法是「描述結果,不要描述步驟」—— 分別是 R3b 第 1 點與第 2 點,由對方說出口。
49
+ - **派工模板的理由是量出來的,而且它更正了本 repo 正在出貨的一項主張。** `agent-dispatch.ai.yaml` 說 subagent 不載入目標專案的指令、也不能叫用它的技能。**兩半都是假的**:subagent 會載入 CLAUDE.md 階層,也能叫用技能。真正的限制更窄也更容易錯過——**它們載入的是主 session 工作目錄的階層,不是它們被派去工作的那個 repo 的**。2026-08-12 實測:派一個被拒絕工具權限的 subagent,在它獲准跑 `pwd` 之前先問它 context 裡有哪些 CLAUDE.md——正好兩份,兩份都不是目標的。同 repo 派工不需要模板;跨 repo 派工沒有別的規則來源。該註記已就地更正,附上量測,並明確警告不要在讀完廠商文件後把這個機制刪掉。
50
+ - **`check-model-pin-freshness` 現在也走訪 `integrations/`。** 它的 `VENDOR` 判準在那裡被抑制——具體 ID 在宿主對映裡是**必需**的形式——而 `STALE` 仍然適用,那正是掃描該樹的全部理由:「模型 ID 是一則帶到期日而無人認領的引用」這個論證,不會因為那個 ID 搬到了正當的家就不成立。被抑制的命中計入 `skipped` 而非丟棄,讓那條豁免留在分母裡;且 `--self-test` 在**兩個方向**都增加了案例——一條只朝它抑制的方向測過的抑制規則,與一條把所有東西都吞掉的抑制規則無從分辨。
51
+ - **`agent-dispatch` 機器可讀標準復位**(XSPEC-362 R5a):`ai/standards/agent-dispatch.ai.yaml`、自採用複本、以及 registry + manifest 條目。`core/agent-dispatch.md` 在 npm bundle 裡持續出貨,但 `.ai.yaml` 在 6.0.0(XSPEC-086 Phase 2 / DEC-049)被移除,前提是 `dev-autopilot` 擁有正規的機器可讀副本。**那個擁有者在 2026-04-28 進入維護模式**——就在遷移落地的隔天——而移除在兩個月後照樣執行。以 `--format ai` 安裝的採用者自此拿到的是 bundle 裡的散文,而規則哪裡都沒有。`agent-dispatch` 已從四個帶有該清單的檢查腳本的 `REFERENCE_ONLY` 中移除;同批的另外七個標準維持 reference-only,**本次不處理**。
52
+ - 責任邊界,以免兩份標準長出同一組規則的重複副本:`agent-dispatch` 管**怎麼派工**(平行安全、獨立領域、狀態協定、提示詞設計);`model-selection` 管**派給誰、派多深**。兩者交叉引用而非互相複述。
53
+
20
54
  ## [6.4.0] - 2026-08-10
21
55
 
22
56
  ### 新增
@@ -15,7 +15,7 @@ status: current
15
15
 
16
16
  > **語言**: [English](../../README.md) | 繁體中文 | [简体中文](../zh-CN/README.md)
17
17
 
18
- **版本**: 6.4.0 | **發布日期**: 2026-08-10 | **授權**: [雙重授權](../../LICENSE) (CC BY 4.0 + MIT)
18
+ **版本**: 6.5.0 | **發布日期**: 2026-08-14 | **授權**: [雙重授權](../../LICENSE) (CC BY 4.0 + MIT)
19
19
 
20
20
  語言無關、框架無關的軟體專案文件標準。透過 AI 原生工作流,確保不同技術堆疊之間的一致性、品質和可維護性。
21
21
 
@@ -13,7 +13,7 @@ status: current
13
13
  <!-- UDS_SUPPORTED_VERSIONS_START -->
14
14
  | 版本 | 支援狀態 |
15
15
  |------|--------|
16
- | 6.3.10 | ✅ 最新正式版 |
16
+ | 6.5.0 | ✅ 最新正式版 |
17
17
  | < 6.0.0 | ❌ 已終止支援 |
18
18
  <!-- UDS_SUPPORTED_VERSIONS_END -->
19
19
 
@@ -1,9 +1,9 @@
1
1
  ---
2
2
  source: ../../../core/class-level-fix.md
3
- source_version: 1.0.0
4
- translation_version: 1.0.0
5
- last_synced: 2026-08-10
6
- source_hash: 1a2b451bae6d
3
+ source_version: 1.1.0
4
+ translation_version: 1.1.0
5
+ last_synced: 2026-08-14
6
+ source_hash: cd211634145c
7
7
  status: current
8
8
  ---
9
9
 
@@ -11,8 +11,8 @@ status: current
11
11
 
12
12
  > **Language**: [English](../../../core/class-level-fix.md) | 繁體中文
13
13
 
14
- **版本**: 1.0.0
15
- **最後更新**: 2026-08-10
14
+ **版本**: 1.1.0
15
+ **最後更新**: 2026-08-14
16
16
  **適用**: 任何缺陷修正(程式碼或設定)
17
17
  **範圍**: universal
18
18
 
@@ -78,6 +78,10 @@ status: current
78
78
 
79
79
  **逐子集做,不要整體做。** 一道涵蓋五份清單、卻只對第一份測過的檢查,是一道涵蓋一份清單的檢查。
80
80
 
81
+ ### 一次通過的負向控制不能證明什麼
82
+
83
+ 一次通過的負向控制,只證明**一個**已知壞案例能到達檢查器的失敗路徑。**它不證明**該檢查器認得它所宣稱守護的規則的**每一種**違反。一道 grep 閘可以 fail-closed 得很完美,卻守著一個拼字而不是一個行為——那個合成成員證明的是線路接通了,不是那張網夠寬,足以抓住它自稱要抓的東西。
84
+
81
85
  ---
82
86
 
83
87
  ## 實例(皆為實測,2026-08-10)
@@ -112,6 +116,16 @@ status: current
112
116
 
113
117
  ---
114
118
 
119
+ ## 窄涵蓋必須登記,不能只揭露
120
+
121
+ 當一道閘門的實際涵蓋面窄於它所服務的規則時,只寫一句話說明是不夠的。散文式揭露很便宜——比擴大涵蓋面便宜得多——於是每一道被審過一次的窄閘門都會長出一段誠實的文字,然後永遠維持窄下去。**揭露本身不換來任何東西;只有配上一個能證明它沒有淪為永久藉口的機制,它才換得到東西。**
122
+
123
+ **要求**:這一類已記錄的涵蓋缺口,必須同時登記到一份**帶到期日的例外清冊**——一份獨立於標準本文之外的清單,指名缺口、說明成因、並附上覆核或到期日期。沒有登記到這種清冊裡的揭露,不滿足本條。
124
+
125
+ **可證偽條件**:若某條目連續兩期清冊審查都未變動,該揭露就已經變成逃生口,本條對該條目**失效**——不是「部分滿足」,是失效。清冊機制本身(放在哪裡、什麼格式、多久審一次)留給採用它的專案自行決定;本標準要求的是「有這麼一份東西存在,且條目會動」,不是要求它長成特定形狀。
126
+
127
+ ---
128
+
115
129
  ## 反模式
116
130
 
117
131
  | 反模式 | 為何失效 |
@@ -121,6 +135,7 @@ status: current
121
135
  | 檢查自行列舉它的範圍 | 正確到有人新增第四個成員為止 |
122
136
  | 類別層檢查只對一個成員測過 | 證明的是那一個成員,不是那個類別 |
123
137
  | `✓ all pass` 而沒有分母 | 掃了全部與什麼都沒掃,輸出一模一樣 |
138
+ | 一句揭露文字,沒有登記到帶到期日的例外清冊 | 比擴大涵蓋面便宜,而且沒有任何東西逼它改變 |
124
139
 
125
140
  ---
126
141
 
@@ -144,5 +159,5 @@ status: current
144
159
 
145
160
  ## 與其他標準的關係
146
161
 
147
- - [verification-evidence](verification-evidence.md) — 證據有效性:工具可以靜默失敗,而其輸出與真結果無從分辨。本標準是同一件事套用在**範圍**而非**執行**上。
162
+ - [verification-evidence](verification-evidence.md) — 證據有效性:工具可以靜默失敗,而其輸出與真結果無從分辨。本標準是同一件事套用在**範圍**而非**執行**上;也與本標準共用「窄涵蓋必須登記」規則(VE-012)。
148
163
  - [anti-hallucination](anti-hallucination.md) — 那個防「沒查」;這個防「查了其中一個,卻對全部下結論」。