universal-dev-standards 6.8.0 → 6.10.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.
- package/bin/uds.js +12 -2
- package/bundled/ai/standards/acceptance-criteria-traceability.ai.yaml +14 -2
- package/bundled/ai/standards/adr-standards.ai.yaml +14 -2
- package/bundled/ai/standards/code-review.ai.yaml +13 -3
- package/bundled/ai/standards/commit-message.ai.yaml +8 -4
- package/bundled/ai/standards/deferred-item-exit.ai.yaml +225 -0
- package/bundled/ai/standards/feature-discovery-standards.ai.yaml +14 -2
- package/bundled/ai/standards/governance-layer.ai.yaml +128 -2
- package/bundled/ai/standards/logging.ai.yaml +2 -2
- package/bundled/ai/standards/retrospective-standards.ai.yaml +14 -2
- package/bundled/ai/standards/reverse-engineering-standards.ai.yaml +73 -2
- package/bundled/ai/standards/security-standards.ai.yaml +2 -2
- package/bundled/ai/standards/spec-driven-development.ai.yaml +14 -2
- package/bundled/ai/standards/tech-debt-standards.ai.yaml +87 -3
- package/bundled/ai/standards/turn-completion-integrity.ai.yaml +131 -0
- package/bundled/core/acceptance-criteria-traceability.md +5 -2
- package/bundled/core/adr-standards.md +26 -2
- package/bundled/core/agent-communication-protocol.md +8 -0
- package/bundled/core/branch-completion.md +8 -0
- package/bundled/core/change-batching-standards.md +8 -0
- package/bundled/core/code-review-checklist.md +5 -2
- package/bundled/core/context-aware-loading.md +1 -1
- package/bundled/core/deferred-item-exit.md +254 -0
- package/bundled/core/execution-history.md +8 -0
- package/bundled/core/feature-discovery-standards.md +5 -1
- package/bundled/core/governance-layer.md +114 -2
- package/bundled/core/pipeline-integration-standards.md +8 -0
- package/bundled/core/retrospective-standards.md +4 -2
- package/bundled/core/reverse-engineering-standards.md +81 -2
- package/bundled/core/spec-driven-development.md +8 -2
- package/bundled/core/tech-debt-standards.md +67 -8
- package/bundled/core/turn-completion-integrity.md +196 -0
- package/bundled/core/workflow-enforcement.md +8 -0
- package/bundled/core/workflow-state-protocol.md +8 -0
- package/bundled/hooks/check-dangerous-cmd.mjs +60 -0
- package/bundled/hooks/check-logging-standard.mjs +59 -0
- package/bundled/hooks/check-turn-completion.mjs +233 -0
- package/bundled/hooks/inject-standards.mjs +183 -0
- package/bundled/hooks/telemetry-wrapper.mjs +77 -0
- package/bundled/hooks/turn-completion/detect.mjs +99 -0
- package/bundled/hooks/turn-completion/locales/en.mjs +159 -0
- package/bundled/hooks/turn-completion/locales/zh-TW.mjs +166 -0
- package/bundled/hooks/validate-commit-msg.mjs +104 -0
- package/bundled/locales/zh-CN/CHANGELOG.md +73 -3
- package/bundled/locales/zh-CN/CLAUDE.md +1 -1
- package/bundled/locales/zh-CN/README.md +2 -2
- package/bundled/locales/zh-CN/SECURITY.md +1 -1
- package/bundled/locales/zh-CN/core/adr-standards.md +1 -1
- package/bundled/locales/zh-CN/core/agent-communication-protocol.md +7 -0
- package/bundled/locales/zh-CN/core/branch-completion.md +7 -0
- package/bundled/locales/zh-CN/core/change-batching-standards.md +7 -0
- package/bundled/locales/zh-CN/core/execution-history.md +7 -0
- package/bundled/locales/zh-CN/core/governance-layer.md +118 -6
- package/bundled/locales/zh-CN/core/pipeline-integration-standards.md +7 -0
- package/bundled/locales/zh-CN/core/retrospective-standards.md +1 -1
- package/bundled/locales/zh-CN/core/tech-debt-standards.md +71 -4
- package/bundled/locales/zh-CN/core/turn-completion-integrity.md +190 -0
- package/bundled/locales/zh-CN/core/workflow-enforcement.md +7 -0
- package/bundled/locales/zh-CN/core/workflow-state-protocol.md +7 -0
- package/bundled/locales/zh-CN/docs/CHEATSHEET.md +8 -1
- package/bundled/locales/zh-CN/docs/CLI-INIT-OPTIONS.md +29 -68
- package/bundled/locales/zh-CN/docs/FEATURE-REFERENCE.md +25 -15
- package/bundled/locales/zh-CN/docs/MIGRATION-v6.md +8 -4
- package/bundled/locales/zh-CN/docs/USAGE-MODES-COMPARISON.md +1 -2
- package/bundled/locales/zh-CN/integrations/google-antigravity/{INSTRUCTIONS.md → AGENTS.md} +1 -1
- package/bundled/locales/zh-CN/integrations/google-antigravity/README.md +3 -3
- package/bundled/locales/zh-CN/skills/atdd-assistant/SKILL.md +2 -0
- package/bundled/locales/zh-CN/skills/bdd-assistant/SKILL.md +2 -0
- package/bundled/locales/zh-CN/skills/brainstorm-assistant/SKILL.md +22 -12
- package/bundled/locales/zh-CN/skills/brainstorm-assistant/guide.md +12 -9
- package/bundled/locales/zh-CN/skills/code-review-assistant/SKILL.md +1 -0
- package/bundled/locales/zh-CN/skills/commands/brainstorm.md +17 -13
- package/bundled/locales/zh-CN/skills/commands/config.md +0 -1
- package/bundled/locales/zh-CN/skills/commands/init.md +1 -2
- package/bundled/locales/zh-CN/skills/commit-standards/SKILL.md +2 -0
- package/bundled/locales/zh-CN/skills/contract-test-assistant/SKILL.md +1 -0
- package/bundled/locales/zh-CN/skills/dev-methodology/SKILL.md +2 -0
- package/bundled/locales/zh-CN/skills/observability-assistant/SKILL.md +1 -0
- package/bundled/locales/zh-CN/skills/project-structure-guide/SKILL.md +1 -0
- package/bundled/locales/zh-CN/skills/release-standards/SKILL.md +3 -0
- package/bundled/locales/zh-CN/skills/requirement-assistant/SKILL.md +2 -0
- package/bundled/locales/zh-CN/skills/reverse-engineer/SKILL.md +3 -0
- package/bundled/locales/zh-CN/skills/runbook-assistant/SKILL.md +1 -0
- package/bundled/locales/zh-CN/skills/slo-assistant/SKILL.md +1 -0
- package/bundled/locales/zh-CN/skills/tdd-assistant/SKILL.md +2 -0
- package/bundled/locales/zh-TW/CHANGELOG.md +74 -3
- package/bundled/locales/zh-TW/CLAUDE.md +1 -1
- package/bundled/locales/zh-TW/README.md +2 -2
- package/bundled/locales/zh-TW/SECURITY.md +1 -1
- package/bundled/locales/zh-TW/core/acceptance-criteria-traceability.md +2 -0
- package/bundled/locales/zh-TW/core/adr-standards.md +26 -5
- package/bundled/locales/zh-TW/core/agent-communication-protocol.md +7 -0
- package/bundled/locales/zh-TW/core/branch-completion.md +7 -0
- package/bundled/locales/zh-TW/core/change-batching-standards.md +7 -0
- package/bundled/locales/zh-TW/core/code-review-checklist.md +2 -0
- package/bundled/locales/zh-TW/core/container-image-standards.md +2 -2
- package/bundled/locales/zh-TW/core/contract-testing-standards.md +2 -2
- package/bundled/locales/zh-TW/core/cross-flow-regression.md +8 -7
- package/bundled/locales/zh-TW/core/data-contract.md +2 -2
- package/bundled/locales/zh-TW/core/data-migration-testing.md +2 -2
- package/bundled/locales/zh-TW/core/data-pipeline.md +2 -2
- package/bundled/locales/zh-TW/core/deferred-item-exit.md +251 -0
- package/bundled/locales/zh-TW/core/documentation-writing-standards.md +228 -3
- package/bundled/locales/zh-TW/core/execution-history.md +7 -0
- package/bundled/locales/zh-TW/core/full-coverage-testing.md +15 -2
- package/bundled/locales/zh-TW/core/governance-layer.md +118 -5
- package/bundled/locales/zh-TW/core/iac-design-principles.md +2 -2
- package/bundled/locales/zh-TW/core/incident-response.md +2 -2
- package/bundled/locales/zh-TW/core/model-provenance.md +4 -2
- package/bundled/locales/zh-TW/core/pii-classification.md +42 -6
- package/bundled/locales/zh-TW/core/pipeline-integration-standards.md +7 -0
- package/bundled/locales/zh-TW/core/prd-standards.md +4 -2
- package/bundled/locales/zh-TW/core/product-metrics-standards.md +4 -2
- package/bundled/locales/zh-TW/core/release-readiness-gate.md +2 -2
- package/bundled/locales/zh-TW/core/resource-cost-boundary.md +2 -2
- package/bundled/locales/zh-TW/core/retrospective-standards.md +5 -3
- package/bundled/locales/zh-TW/core/reverse-engineering-standards.md +83 -5
- package/bundled/locales/zh-TW/core/runbook.md +2 -2
- package/bundled/locales/zh-TW/core/schema-evolution.md +2 -2
- package/bundled/locales/zh-TW/core/secret-management-standards.md +2 -2
- package/bundled/locales/zh-TW/core/slo-sli.md +2 -2
- package/bundled/locales/zh-TW/core/spec-driven-development.md +2 -0
- package/bundled/locales/zh-TW/core/tech-debt-standards.md +71 -4
- package/bundled/locales/zh-TW/core/turn-completion-integrity.md +190 -0
- package/bundled/locales/zh-TW/core/user-journey-testing.md +2 -2
- package/bundled/locales/zh-TW/core/user-story-mapping.md +2 -2
- package/bundled/locales/zh-TW/core/verification-oracle.md +2 -2
- package/bundled/locales/zh-TW/core/workflow-enforcement.md +7 -0
- package/bundled/locales/zh-TW/core/workflow-state-protocol.md +7 -0
- package/bundled/locales/zh-TW/docs/CHEATSHEET.md +8 -1
- package/bundled/locales/zh-TW/docs/CLI-INIT-OPTIONS.md +29 -68
- package/bundled/locales/zh-TW/docs/FEATURE-REFERENCE.md +25 -15
- package/bundled/locales/zh-TW/docs/MIGRATION-v6.md +8 -4
- package/bundled/locales/zh-TW/docs/USAGE-MODES-COMPARISON.md +1 -2
- package/bundled/locales/zh-TW/integrations/google-antigravity/{INSTRUCTIONS.md → AGENTS.md} +1 -1
- package/bundled/locales/zh-TW/integrations/google-antigravity/README.md +3 -3
- package/bundled/locales/zh-TW/skills/adr-assistant/SKILL.md +1 -1
- package/bundled/locales/zh-TW/skills/atdd-assistant/SKILL.md +2 -0
- package/bundled/locales/zh-TW/skills/bdd-assistant/SKILL.md +2 -0
- package/bundled/locales/zh-TW/skills/brainstorm-assistant/SKILL.md +22 -12
- package/bundled/locales/zh-TW/skills/brainstorm-assistant/guide.md +12 -9
- package/bundled/locales/zh-TW/skills/code-review-assistant/SKILL.md +1 -0
- package/bundled/locales/zh-TW/skills/commands/brainstorm.md +17 -13
- package/bundled/locales/zh-TW/skills/commands/config.md +0 -1
- package/bundled/locales/zh-TW/skills/commands/init.md +1 -2
- package/bundled/locales/zh-TW/skills/commit-standards/SKILL.md +2 -0
- package/bundled/locales/zh-TW/skills/contract-test-assistant/SKILL.md +2 -1
- package/bundled/locales/zh-TW/skills/dev-methodology/SKILL.md +2 -0
- package/bundled/locales/zh-TW/skills/dev-workflow-guide/SKILL.md +1 -1
- package/bundled/locales/zh-TW/skills/knowledge-graph/guide.md +2 -2
- package/bundled/locales/zh-TW/skills/migration-assistant/SKILL.md +1 -1
- package/bundled/locales/zh-TW/skills/observability-assistant/SKILL.md +1 -0
- package/bundled/locales/zh-TW/skills/project-discovery/SKILL.md +1 -0
- package/bundled/locales/zh-TW/skills/project-structure-guide/SKILL.md +1 -0
- package/bundled/locales/zh-TW/skills/release-standards/SKILL.md +3 -0
- package/bundled/locales/zh-TW/skills/requirement-assistant/SKILL.md +2 -0
- package/bundled/locales/zh-TW/skills/reverse-engineer/SKILL.md +3 -0
- package/bundled/locales/zh-TW/skills/runbook-assistant/SKILL.md +1 -0
- package/bundled/locales/zh-TW/skills/slo-assistant/SKILL.md +1 -0
- package/bundled/locales/zh-TW/skills/tdd-assistant/SKILL.md +2 -0
- package/bundled/skills/atdd-assistant/SKILL.md +2 -0
- package/bundled/skills/bdd-assistant/SKILL.md +2 -0
- package/bundled/skills/brainstorm-assistant/SKILL.md +31 -13
- package/bundled/skills/brainstorm-assistant/guide.md +9 -6
- package/bundled/skills/code-review-assistant/SKILL.md +1 -0
- package/bundled/skills/commands/brainstorm.md +12 -9
- package/bundled/skills/commands/config.md +0 -1
- package/bundled/skills/commands/init.md +2 -3
- package/bundled/skills/commit-standards/SKILL.md +2 -0
- package/bundled/skills/contract-test-assistant/SKILL.md +1 -0
- package/bundled/skills/dev-methodology/SKILL.md +4 -0
- package/bundled/skills/observability-assistant/SKILL.md +1 -0
- package/bundled/skills/project-discovery/SKILL.md +1 -0
- package/bundled/skills/project-structure-guide/SKILL.md +1 -0
- package/bundled/skills/release-standards/SKILL.md +3 -0
- package/bundled/skills/requirement-assistant/SKILL.md +2 -0
- package/bundled/skills/reverse-engineer/SKILL.md +3 -0
- package/bundled/skills/runbook-assistant/SKILL.md +1 -0
- package/bundled/skills/slo-assistant/SKILL.md +1 -0
- package/bundled/skills/tdd-assistant/SKILL.md +2 -0
- package/bundled/templates/.ai-context.yaml.template +194 -0
- package/bundled/templates/CLAUDE.md.template +145 -0
- package/bundled/templates/DESIGN.md +237 -0
- package/bundled/templates/SKILL-BRIEF-TEMPLATE.md +57 -0
- package/bundled/templates/SKILL-CANDIDATES.md +39 -0
- package/bundled/templates/gates/check-error-exit.mjs +309 -0
- package/bundled/templates/mcp-config.json +10 -0
- package/bundled/templates/methodology-template.yaml +209 -0
- package/bundled/templates/migration-template.md +408 -0
- package/bundled/templates/requirement-checklist.md +410 -0
- package/bundled/templates/requirement-document-template.md +591 -0
- package/bundled/templates/requirement-template.md +881 -0
- package/bundled/templates/reverse-spec-template.md +409 -0
- package/bundled/templates/test-case-template.md +74 -0
- package/bundled/templates/test-plan-template.md +74 -0
- package/package.json +12 -9
- package/src/commands/audit.js +82 -0
- package/src/commands/check.js +227 -34
- package/src/commands/config.js +19 -19
- package/src/commands/init.js +174 -20
- package/src/commands/spec.js +2 -2
- package/src/commands/update.js +537 -43
- package/src/compilers/claude-code-compiler.js +4 -1
- package/src/config/ai-agent-paths.js +62 -17
- package/src/core/constants.js +42 -11
- package/src/core/manifest.js +201 -3
- package/src/core/paths.js +2 -2
- package/src/i18n/messages.js +42 -29
- package/src/installers/hooks-installer.js +167 -75
- package/src/installers/integration-installer.js +13 -9
- package/src/installers/skills-installer.js +4 -4
- package/src/installers/standards-installer.js +3 -3
- package/src/prompts/init.js +47 -18
- package/src/reconciler/diff-engine.js +57 -2
- package/src/reconciler/plan-executor.js +31 -11
- package/src/utils/detector.js +21 -1
- package/src/utils/effect-boundary.js +1093 -0
- package/src/utils/hasher.js +166 -1
- package/src/utils/hook-stats.js +1 -1
- package/src/utils/integration-generator.js +288 -82
- package/src/utils/reference-sync.js +107 -8
- package/src/utils/registry.js +57 -0
- package/src/utils/spinner.js +31 -0
- package/src/utils/yaml-generator.js +51 -9
- package/standards-registry.json +32 -9
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
---
|
|
2
2
|
scope: universal
|
|
3
3
|
source: ../../../../skills/brainstorm-assistant/guide.md
|
|
4
|
-
source_version: 4.
|
|
5
|
-
source_hash:
|
|
6
|
-
translation_version: 4.
|
|
7
|
-
last_synced: 2026-
|
|
4
|
+
source_version: 4.2.0
|
|
5
|
+
source_hash: f789b3bbc31a
|
|
6
|
+
translation_version: 4.2.0
|
|
7
|
+
last_synced: 2026-08-21
|
|
8
8
|
status: current
|
|
9
9
|
description: |
|
|
10
10
|
指导在编写规格前进行结构化 AI 辅助头脑风暴。
|
|
@@ -16,8 +16,8 @@ description: |
|
|
|
16
16
|
|
|
17
17
|
> **语言**: [English](../../../../skills/brainstorm-assistant/guide.md) | 简体中文
|
|
18
18
|
|
|
19
|
-
**版本**: 4.
|
|
20
|
-
**最后更新**: 2026-
|
|
19
|
+
**版本**: 4.2.0
|
|
20
|
+
**最后更新**: 2026-08-21
|
|
21
21
|
**适用范围**: 所有软件项目
|
|
22
22
|
**Scope**: universal
|
|
23
23
|
**类型**: 工具型 Skill(无对应核心标准)
|
|
@@ -292,7 +292,7 @@ HMW(默认起点)、SCAMPER(改善既有功能:Substitute、Combine、Ad
|
|
|
292
292
|
| **用户影响** | 影响 70% · 对齐 30% |
|
|
293
293
|
| **战略对齐** | 对齐 60% · 影响 40% |
|
|
294
294
|
|
|
295
|
-
**逐准则指引(1–5
|
|
295
|
+
**逐准则指引(1–5,参考格式——不是评审必须逐步照走的脚本):**
|
|
296
296
|
|
|
297
297
|
| 准则 | 5 | 3 | 1 |
|
|
298
298
|
|------|---|---|---|
|
|
@@ -318,7 +318,7 @@ HMW(默认起点)、SCAMPER(改善既有功能:Substitute、Combine、Ad
|
|
|
318
318
|
- **Devil's Advocate**:「你的任务是论证这个想法*会*失败。给出 2 个具体的失败条件。」
|
|
319
319
|
- **Steelman**:「陈述反方论点最强、最善意的版本——一个有思想的对手实际会提出的那种。」
|
|
320
320
|
|
|
321
|
-
|
|
321
|
+
约束:每个反方论点必须指出**特定上下文**与**特定理由**。句型**「这个想法会在 [特定上下文] 失败,因为 [特定理由]」**是参考格式,不是必用句式(v4.2——评审提示为目标+约束,见 SKILL.md「评审提示形状」)。
|
|
322
322
|
|
|
323
323
|
**不可接受**(太空泛):「这可能很难。」/「可能会有 edge case。」
|
|
324
324
|
|
|
@@ -354,6 +354,7 @@ HMW(默认起点)、SCAMPER(改善既有功能:Substitute、Combine、Ad
|
|
|
354
354
|
**Personas Used**: [domain expert, skeptic, analogist, ...]
|
|
355
355
|
**Lenses Used**: [analogical, reversal, ...]
|
|
356
356
|
**Pre-flight**: [Completed / Skipped] **Rebuttal**: [Completed / Skipped] **Tier**: [Baseline / Enhanced]
|
|
357
|
+
**评审模型层级(D4 心智轴)**: [core/model-selection.md 的厂商中立层级标签——指名厂商模型即违规;未宣告 → D4 [degraded]]
|
|
357
358
|
|
|
358
359
|
## Problem Statement
|
|
359
360
|
[Refined problem + root cause from 5 Whys]
|
|
@@ -566,7 +567,7 @@ BQS v1 是**叠加的质量契约**,不是推倒重来。v3 的一切都保留
|
|
|
566
567
|
|
|
567
568
|
- **所有旗标**:`--personas`、`--lens`、`--enhanced`、`--skip-preflight`、`--no-rebuttal`、`--quick`、`--technique` 行为与 v3 完全相同。v4 仅新增一个可选旗标 `--intent`,供第 0 层宣告。
|
|
568
569
|
- **所有机制**:PRE-FLIGHT 防锚定、FRAME 5-Whys/HMW、persona 集成、多样性透镜、多评审面板、硬角色反驳(Devil's Advocate + Steelman)、多样性坍缩护栏、Enhanced 层,皆不变。
|
|
569
|
-
- **`--enhanced` 隔离 agent
|
|
570
|
+
- **`--enhanced` 隔离 agent 宿主**满足的是 BQS **D4 的座位轴**(判官≠产生者);自 v4.2(XSPEC-388)起,D4 pass 另需评审宣告**模型层级**(心智轴——依 core/model-selection.md 的厂商中立标签)。baseline 单 context 标 `[degraded]`、不静默通过。
|
|
570
571
|
|
|
571
572
|
---
|
|
572
573
|
|
|
@@ -601,6 +602,7 @@ BQS v1 是**叠加的质量契约**,不是推倒重来。v3 的一切都保留
|
|
|
601
602
|
| [Requirement Engineering](../../core/requirement-engineering.md) | 头脑风暴输出馈入需求编写 |
|
|
602
603
|
| [Spec-Driven Development](../../core/spec-driven-development.md) | 头脑风暴输出馈入 SDD 提案 |
|
|
603
604
|
| [Anti-Hallucination](../../core/anti-hallucination.md) | 评审的可行性主张必须基于证据,而非断言 |
|
|
605
|
+
| [Model Selection](../../core/model-selection.md) | D4 心智轴(宣告模型层级)与发散侧层级(Standard 或更高)皆以此标准的判准为准——引用、绝不复述 |
|
|
604
606
|
|
|
605
607
|
---
|
|
606
608
|
|
|
@@ -608,6 +610,7 @@ BQS v1 是**叠加的质量契约**,不是推倒重来。v3 的一切都保留
|
|
|
608
610
|
|
|
609
611
|
| 版本 | 日期 | 变更 |
|
|
610
612
|
|------|------|------|
|
|
613
|
+
| 4.2.0 | 2026-08-21 | XSPEC-388:D4 的 pass 条件加上第二个轴——座位(独立 context,不变)加上心智(评审必须宣告其**模型层级**要求,且只能以 core/model-selection.md 的厂商中立标签表达;指名具体厂商模型即违规;未宣告 → `[degraded]`、不得 pass)。CONVERGE 评审提示依 MS-009 改为目标+约束形状:D5–D8 以「判断必须满足的判准」呈现、不得以按顺序执行的程序呈现;固定反驳句型、逐准则 1–5 指引与评审权重公式保留为参考格式、非必经步骤。发散侧引用 MS-004/Criterion 2(Standard 或更高——刻意不是「最高」),由校准回路既有的 Diversity(D2/D3)lagging 栏验证。术语:模型能力轴全文写作「模型层级」,因为「tier」已被 BQS 分级与 Enhanced Tier 占用。所有 v3 旗标与机制保留。 |
|
|
611
614
|
| 4.1.0 | 2026-07-09 | XSPEC-325:把固定 Top-3 推荐上限改为分数门槛**推荐集**(Agg. Score ≥ 3.5,不限笔数),贯穿 BQS 第 2 层——产物闸(D5–D8)、硬角色反驳轮(Devil's Advocate + Steelman)、Meta 停止规则(集合成员稳定性)、多样性坍缩护栏、OUTPUT 推荐区块,全部改以推荐集为对象,不再是固定 3 个。若无想法达 3.5,仍显示分数最高的 1 个并标示「未达门槛,仅供参考」,避免报告空白。 |
|
|
612
615
|
| 4.0.0 | 2026-06-22 | XSPEC-296:头脑风暴质量标准(BQS v1)——叠加于 v3 的四层 × 时间轴质量契约。第 0 层 explore/exploit 意图(调节 D2 权重);第 1 层过程 leading 维度 D1–D4 + 硬序列闸(发散期禁 D5–D8);第 2 层产物 leading 维度 D5–D8 仅施于 Top 3,加 Seeds 栏与高方差争议区;第 3 层 Judgment Override(凌驾聚合分)。D4 判官≠产生者(须独立 context,否则 `[degraded]`);D5 主张分流(外部事实跨级地板);D7 二态证伪(「需先做 X」→next-step、不算 fail);Meta 停止规则(Top-3 集合稳定 + 硬上限 2 轮)。工作阶段自评重新定位为校准回路 lagging 端(Adoption→D6、Diversity→D2/D3、Cognitive Load→成本;禁两套平行评估)。第一原理修正为「决策用 leading、校准用 lagging」。分级绑客观模式选择触发。新增旗标 `--intent`。所有 v3 旗标/机制保留。 |
|
|
613
616
|
| 3.0.0 | 2026-06-01 | XSPEC-247:DIVERGE 重新聚焦于 persona 集成 + 多样性透镜(类比 / 反转 / 形态学);CONVERGE 重新聚焦于多评审面板 + 硬角色反驳(Devil's Advocate + Steelman);多样性坍缩护栏;Enhanced 层级(并行 persona/评审智能体,优雅回退);Research Foundations 基于 6 项已验证的 2024–2026 出处重建;效度说明重新评级(飞行前为低、Nijstad/Nemeth 降级);新旗标 `--personas`/`--lens`/`--enhanced`;反种子护栏 |
|
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
---
|
|
2
2
|
source: ../../../../skills/commands/brainstorm.md
|
|
3
|
-
source_version: 4.
|
|
4
|
-
source_hash:
|
|
5
|
-
translation_version: 4.
|
|
6
|
-
last_synced: 2026-
|
|
3
|
+
source_version: 4.2.0
|
|
4
|
+
source_hash: 319f8ad4f02f
|
|
5
|
+
translation_version: 4.2.0
|
|
6
|
+
last_synced: 2026-08-21
|
|
7
|
+
status: current
|
|
7
8
|
---
|
|
8
9
|
|
|
9
10
|
---
|
|
@@ -34,7 +35,7 @@ PRE-FLIGHT ──► FRAME ──► DIVERGE ──────────► C
|
|
|
34
35
|
| **PRE-FLIGHT** | 防止 AI 锚定 | 用户先写 3 个想法;不用类比种子;**BQS 第 0 层意图(explore/exploit)** |
|
|
35
36
|
| **FRAME** | 清楚定义问题 | 5 Whys, HMW, Stakeholder Map;**D1 框架纯度** |
|
|
36
37
|
| **DIVERGE** | 逼出视角多样性 | persona 集成 + 多样性透镜;**BQS 第 1 层 D1–D4,硬闸隐藏 D5–D8** |
|
|
37
|
-
| **CONVERGE** | 经偏误检查的选择 | 多评审面板 + Devil's Advocate/Steelman;**BQS 第 2 层 D5–D8
|
|
38
|
+
| **CONVERGE** | 经偏误检查的选择 | 多评审面板 + Devil's Advocate/Steelman;**BQS 第 2 层 D5–D8 施于推荐集(Agg. ≥ 3.5),D4 判官≠产生者(两轴:独立 context+宣告模型层级)** |
|
|
38
39
|
| **OUTPUT** | 可执行的报告 | Brainstorm Report + Seeds + 争议区 + **第 3 层 Judgment Override** |
|
|
39
40
|
|
|
40
41
|
> **BQS v1(XSPEC-296):** v4 在 v3 上叠加四层 × 时间轴质量契约。完整 oracle 与结构规则见 skill:[Brainstorm Assistant Skill](../brainstorm-assistant/SKILL.md#bqs-v1--质量契约)。
|
|
@@ -68,7 +69,7 @@ PRE-FLIGHT ──► FRAME ──► DIVERGE ──────────► C
|
|
|
68
69
|
## Problem Statement
|
|
69
70
|
[Refined problem from FRAME phase]
|
|
70
71
|
|
|
71
|
-
##
|
|
72
|
+
## Recommendations (Agg. Score ≥ 3.5 — uncapped)
|
|
72
73
|
1. **[Idea]** — Agg. X.X ✓ Passed rebuttal — Persona: [..] — [Why recommended]
|
|
73
74
|
|
|
74
75
|
## Diversity Note
|
|
@@ -100,7 +101,7 @@ PRE-FLIGHT ──► FRAME ──► DIVERGE ──────────► C
|
|
|
100
101
|
| `/brainstorm "topic"` | 以指定主题启动 PRE-FLIGHT,再进入 FRAME |
|
|
101
102
|
| `/brainstorm --personas "a,b,c"` | 以自定义 persona 组进入 DIVERGE |
|
|
102
103
|
| `/brainstorm --lens <name>` | 以指定多样性透镜为主进入 DIVERGE |
|
|
103
|
-
| `/brainstorm --enhanced` | 若宿主支持子代理则并行跑 persona/评审,否则静默退回 baseline
|
|
104
|
+
| `/brainstorm --enhanced` | 若宿主支持子代理则并行跑 persona/评审,否则静默退回 baseline;此模式满足 BQS D4 的座位轴(独立 context),pass 另需宣告模型层级(心智轴,见 skill D4) |
|
|
104
105
|
| `/brainstorm --intent exploit` | 以 exploit 意图启动(BQS 第 0 层),D2 低覆盖不扣分 |
|
|
105
106
|
|
|
106
107
|
### 交互脚本
|
|
@@ -125,12 +126,13 @@ PRE-FLIGHT ──► FRAME ──► DIVERGE ──────────► C
|
|
|
125
126
|
3. 至少套用一个多样性透镜(类比/假设反转/形态矩阵)
|
|
126
127
|
4. 以多样性(覆盖的 persona/透镜数,D2/D3)而非数量为继续门槛
|
|
127
128
|
5. **硬序列闸**:D5–D8 在最后一个 persona 产完前**不得揭示或评分**;CONVERGE critic 不得提前调用
|
|
129
|
+
6. **模型层级(发散侧)**:以 **Standard 或更高**层级执行——依 core/model-selection.md 的 MS-004/Criterion 2(引用,不复述;不是「最高层级」)
|
|
128
130
|
|
|
129
|
-
#### CONVERGE 阶段(BQS 第 2 层 — D5–D8
|
|
130
|
-
1. 以 3
|
|
131
|
-
2.
|
|
132
|
-
3.
|
|
133
|
-
4. **Meta
|
|
131
|
+
#### CONVERGE 阶段(BQS 第 2 层 — D5–D8 仅施于推荐集)
|
|
132
|
+
1. 以 3 个独立评审(工程可行性/用户影响/战略一致)各自评分后聚合;**评审提示以「目标+约束」表达**(判准,不是步骤清单——理由见 skill 引用的 core/model-selection.md MS-009),加权公式与逐准则指引为参考格式
|
|
133
|
+
2. 对**推荐集**(Agg. Score ≥ 3.5,不限笔数)跑硬角色 Devil's Advocate(论证会失败)+ Steelman;用户以 (a)修改/(b)反驳/(c)移除 回应。**D4 判官≠产生者,两轴**:(1) 评审在独立 context(`--enhanced`)执行,且 (2) 宣告模型层级(core/model-selection.md 的厂商中立标签;指名具体厂商模型即违规)——缺任一轴标 `[degraded]` 不得 pass
|
|
134
|
+
3. **仅对推荐集**套用 D5 接地(外部事实需 file:line/来源、跨级地板;假说免接地)、D6 净值(解谁问题/真有吗/不做代价+挂 lagging 栏)、D7 二态证伪(「需先做 X」转 next-step、不算 fail)、D8 next-step 裁决——四者为判准、不限顺序
|
|
135
|
+
4. **Meta 停止规则**:维度全绿且再跑一轮推荐集集合成员不变→停;硬上限 2 轮
|
|
134
136
|
|
|
135
137
|
🛑 **STOP**: 展示 Brainstorm Report(含 Seeds/争议区/Judgment Override)后等待用户决定下一步
|
|
136
138
|
|
|
@@ -151,13 +153,15 @@ PRE-FLIGHT ──► FRAME ──► DIVERGE ──────────► C
|
|
|
151
153
|
| 使用「像 X 但给 Y」种子 | 改写为底层问题再继续(反种子 guardrail) |
|
|
152
154
|
| 指定的 persona/透镜不存在 | 列出可用选项供选择 |
|
|
153
155
|
| `--enhanced` 但宿主不支持子代理 | 静默退回 baseline,照常进行 |
|
|
154
|
-
|
|
|
156
|
+
| 推荐集全来自同一 persona/透镜 | 标示并在输出前再跑一个透镜 |
|
|
155
157
|
| baseline 单 context 跑评审(无独立 context) | BQS D4 标 `[degraded]`,不得标 pass |
|
|
158
|
+
| 评审未宣告模型层级(或以具体厂商模型名宣告) | BQS D4 标 `[degraded]` 不得 pass;模型名改为 core/model-selection.md 的层级标签 |
|
|
156
159
|
| 外部事实宣称无 file:line/来源 | D5 接地 fail,要求补来源或改标 `[假说]` |
|
|
157
160
|
|
|
158
161
|
## 参考
|
|
159
162
|
|
|
160
163
|
* [Brainstorm Assistant Skill](../brainstorm-assistant/SKILL.md)
|
|
161
164
|
* [Brainstorm Assistant Guide](../brainstorm-assistant/guide.md)
|
|
165
|
+
* [Model Selection](../../core/model-selection.md) — BQS D4 与发散侧的模型层级标签(引用,不复述)
|
|
162
166
|
* [Requirement Assistant](../requirement-assistant/SKILL.md)
|
|
163
167
|
* [Spec-Driven Development](../spec-driven-dev/SKILL.md)
|
|
@@ -41,7 +41,7 @@ argument-hint: "[--level N | --yes]"
|
|
|
41
41
|
| **OpenCode** | `AGENTS.md` | ✅ | ✅ |
|
|
42
42
|
| **Gemini CLI** | `GEMINI.md` | ✅ | ✅ |
|
|
43
43
|
| **Codex** | `AGENTS.md` | ✅ | ❌ |
|
|
44
|
-
| **Antigravity** |
|
|
44
|
+
| **Antigravity** | `.agents/AGENTS.md` | ✅ | ❌ |
|
|
45
45
|
|
|
46
46
|
预选环境中检测到的工具。注意:Codex 和 OpenCode 共用 `AGENTS.md`。
|
|
47
47
|
|
|
@@ -210,7 +210,6 @@ Options:
|
|
|
210
210
|
| 选项 | 说明 |
|
|
211
211
|
|------|------|
|
|
212
212
|
| **标准(建议)** | 摘要 + 任务映射,AI 知道何时读取哪个标准 |
|
|
213
|
-
| **完整嵌入** | 嵌入所有规则,AI 可立即使用但文件较大 |
|
|
214
213
|
| **最简** | 仅文件引用,搭配 Skills 使用最佳 |
|
|
215
214
|
|
|
216
215
|
### 步骤 13:确认并执行
|
|
@@ -125,6 +125,8 @@ Closes #123
|
|
|
125
125
|
|
|
126
126
|
## 参考
|
|
127
127
|
|
|
128
|
+
- [Conventional Commits 指南](./conventional-commits.md) — 需要确切的 type、scope 与格式规则时读它。
|
|
129
|
+
- [Commit Message 语言选项](./language-options.md) — 要决定 commit message 用哪一种语言时读它。
|
|
128
130
|
- 详细指南:[guide.md](./guide.md)
|
|
129
131
|
- 核心规范:[commit-message-guide.md](../../../../core/commit-message-guide.md)
|
|
130
132
|
|
|
@@ -102,6 +102,7 @@ ASSESS ──► CHOOSE ──► DEFINE ──► IMPLEMENT ──► VERIFY
|
|
|
102
102
|
|
|
103
103
|
## 参考
|
|
104
104
|
|
|
105
|
+
- 详细指南:[guide.md](./guide.md) — 契约测试的策略与实现。要配置 Pact/OpenAPI,或把契约测试接入 CI 时读它。
|
|
105
106
|
- 详细指南:[contract-testing.md](../../options/testing/contract-testing.md)
|
|
106
107
|
- 相关:[api-design-assistant](../api-design-assistant/SKILL.md)
|
|
107
108
|
|
|
@@ -46,6 +46,7 @@ description: |
|
|
|
46
46
|
|
|
47
47
|
## 参考
|
|
48
48
|
|
|
49
|
+
- 详细指南:[guide.md](./guide.md) — 日志、指标、追踪三大支柱的完整说明。要搭建监控、选择指标类型、引入追踪或评估成熟度时读它。
|
|
49
50
|
- 核心规范:[observability-standards.md](../../../../core/observability-standards.md)
|
|
50
51
|
- 核心规范:[alerting-standards.md](../../../../core/alerting-standards.md)
|
|
51
52
|
- 核心规范:[slo-standards.md](../../../../core/slo-standards.md)
|
|
@@ -150,6 +150,7 @@ project/
|
|
|
150
150
|
|
|
151
151
|
## 相关标准
|
|
152
152
|
|
|
153
|
+
- [各语言的项目结构](./language-patterns.md) — 按语言列出的实际目录布局(Node.js/TypeScript、Python、Go 等)。要为某个特定语言安排项目结构时读它。
|
|
153
154
|
- [核心:项目结构](../../core/project-structure.md)
|
|
154
155
|
- [核心:文档结构](../../core/documentation-structure.md)
|
|
155
156
|
- [指南:文件归档决策指南](../../core/guides/file-placement-guide.md)
|
|
@@ -70,5 +70,8 @@ description: |
|
|
|
70
70
|
|
|
71
71
|
## 参考
|
|
72
72
|
|
|
73
|
+
- [变更日誌格式指南](./changelog-format.md) — 要撰写或审查变更日志时读它。
|
|
74
|
+
- [發布流程指南](./release-workflow.md) — 真的要发一版、需要逐步流程时读它。
|
|
75
|
+
- [語意化版本指南](./semantic-versioning.md) — 要判断一个变更算 major、minor 还是 patch 时读它。
|
|
73
76
|
- 详细指南:[guide.md](./guide.md)
|
|
74
77
|
- 核心规范:[versioning.md](../../../../core/versioning.md)
|
|
@@ -73,5 +73,7 @@ So that [benefit].
|
|
|
73
73
|
|
|
74
74
|
## 参考
|
|
75
75
|
|
|
76
|
+
- [需求完整性检查清单](./requirement-checklist.md) — 要在需求被接受之前检查它完不完整时读它。
|
|
77
|
+
- [需求撰写指南](./requirement-writing.md) — 要从零开始写一份需求时读它。
|
|
76
78
|
- 详细指南:[guide.md](./guide.md)
|
|
77
79
|
- 核心规范:[requirement-engineering.md](../../../../core/requirement-engineering.md)
|
|
@@ -125,6 +125,9 @@ description: |
|
|
|
125
125
|
|
|
126
126
|
## 参考
|
|
127
127
|
|
|
128
|
+
- [BDD 提取工作流程指南](./bdd-extraction.md) — 要从既有规格里萃取 BDD 场景时读它。
|
|
129
|
+
- [TDD 分析工作流程指南](./tdd-analysis.md) — 要对照场景分析测试覆盖率、找出缺口时读它。
|
|
130
|
+
- 分步流程:[workflow.md](./workflow.md) — 逆向工程的各阶段与顺序(代码扫描、数据模型、配置、测试分析、覆盖率)。真的要跑一次逆向时读它。
|
|
128
131
|
- 详细指南:[guide.md](./guide.md)
|
|
129
132
|
- 核心规范:[reverse-engineering-standards.md](../../../../core/reverse-engineering-standards.md)
|
|
130
133
|
|
|
@@ -45,6 +45,7 @@ description: |
|
|
|
45
45
|
|
|
46
46
|
## 参考
|
|
47
47
|
|
|
48
|
+
- 详细指南:[guide.md](./guide.md) — 运维手册的编写、组织与验证。要写手册、审查运维流程、规划演练或评估覆盖范围时读它。
|
|
48
49
|
- 核心规范:[runbook-standards.md](../../../../core/runbook-standards.md)
|
|
49
50
|
- 相关:[alerting-standards.md](../../../../core/alerting-standards.md)
|
|
50
51
|
- 相关:[postmortem-standards.md](../../../../core/postmortem-standards.md)
|
|
@@ -45,6 +45,7 @@ description: |
|
|
|
45
45
|
|
|
46
46
|
## 参考
|
|
47
47
|
|
|
48
|
+
- 详细指南:[guide.md](./guide.md) — SLI/SLO/错误预算的定义与管理。要定义 SLO、选择 SLI、计算错误预算或设定可靠性目标时读它。
|
|
48
49
|
- 核心规范:[slo-standards.md](../../../../core/slo-standards.md)
|
|
49
50
|
- 相关:[observability-standards.md](../../../../core/observability-standards.md)
|
|
50
51
|
- 相关:[alerting-standards.md](../../../../core/alerting-standards.md)
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
---
|
|
2
2
|
source: ../../CHANGELOG.md
|
|
3
|
-
source_version: 6.
|
|
4
|
-
translation_version: 6.
|
|
5
|
-
last_synced: 2026-
|
|
3
|
+
source_version: 6.10.0
|
|
4
|
+
translation_version: 6.10.0
|
|
5
|
+
last_synced: 2026-09-16
|
|
6
6
|
status: current
|
|
7
7
|
---
|
|
8
8
|
|
|
@@ -17,6 +17,77 @@ status: current
|
|
|
17
17
|
|
|
18
18
|
## [Unreleased]
|
|
19
19
|
|
|
20
|
+
## [6.10.0] - 2026-09-16
|
|
21
|
+
|
|
22
|
+
### 修正
|
|
23
|
+
|
|
24
|
+
- **`uds update --apply` 會忘掉它沒有動到的每一個斜線命令,而 `uds check` 說一切完整。** 一個裝有 51 個 OpenCode 命令的專案,三個檔案內容漂移:plan 列出那三個,`--apply` 之後 manifest 只剩三筆 `commandHashes`——另外 48 個檔案仍在磁碟上,卻沒有任何東西在追蹤它們。同一次 `uds check` 同時印出「Commands: 51 installed」與「✓ All command files intact (3 files)」,而竄改那 48 個之一,兩行都不會變(2026-09-16 於乾淨暫存專案在 6.9.0 上實測)。reconciler 在合併新雜湊前,會先刪掉該工具的所有雜湊鍵——只有在安裝器重裝了該工具全部命令時才正確,`uds update` 自己的呼叫點是如此,plan 這條路不是。現在改為合併,與 skills 路徑一直以來的做法相同;plan 標記刪除時,只移除該檔案那一筆。`uds check` 另外列出磁碟上沒有任何雜湊涵蓋的命令檔,兩個數字不再能各說各話。
|
|
25
|
+
- **整合檔指向磁碟上不存在的標準,而參考檢查說它們同步。** 以 `--format ai` 安裝的專案,`uds update --integrations-only` 寫出 `Reference: .standards/anti-hallucination.md` 與 `.standards/checkin-standards.md`,這兩個檔案只存在於 `human` 格式。規則模板一律以 `.md` 書寫參考路徑,不看實際安裝格式;而規則段落位於 UDS 標記之外,標記式更新從不刷新它們——由舊版 CLI 首次寫出的檔案,在該檔案停止出貨兩個主版本之後,仍留著 `.standards/commit-message-guide.md`。現在無論是產生新檔或更新既有檔案,參考路徑都會對照這個專案實際安裝的標準與格式解析;指向未採用標準的參考會被移除,而不是留成死連結。`uds check` 改為回報「檔案不存在」的參考,而不是以去掉副檔名的名稱比對。只有 UDS 自己出貨的標準會被移除:專案自行放進 `.standards/` 的檔案,其參考原字不動。
|
|
26
|
+
- **`uds check` 建議執行 `uds update --sync-refs`,而它跑不起來。** manifest 沒有 `integrationConfigs` 時 `--sync-refs` 直接中止,而這個鍵只有 `uds init` 的互動流程會寫入——以 `uds init -y` 建立的專案從第一天起就是 `{}`,所以一個全新的 6.9.0 專案,已經處在那段錯誤訊息歸咎於「舊版本、手動複製」的狀態。`--sync-refs` 現在會從 manifest(integrations、AI 工具、標準、選項)重建設定,而不是拒絕執行;`uds check` 只在它確實可執行時才提它,否則改指 `uds update --integrations-only`。
|
|
27
|
+
- **`uds check` 把已採用的標準報成索引中缺少。** id 對檔名的表只從 `source.ai` 建立,但部分 registry 條目的 `source` 是字串——`zh-tw-locale` 是 `extensions/locales/zh-tw.md`——於是它安裝出的 `.standards/zh-tw.md` 從未被認出,在明明列出該檔的整合檔上顯示「67/68 項標準已參考,缺少:zh-tw-locale」。
|
|
28
|
+
- **參考同步把選項檔報成孤兒,並建議 UDS 已不再出貨的檔名。** 選項記在 `manifest.options` 而非 `manifest.standards`,於是每個 `.standards/options/*.ai.yaml` 參考都被報成「未在 manifest 中」;而「未參考的標準」清單來自一張手寫的 6.0.0 之前檔名表(`git-workflow.md`、`error-code-standards.md`、`project-structure.md`)。現在選項會被認得,清單也只列出這個專案實際持有的檔案。
|
|
29
|
+
- **`uds check` 把 `AGENTS.md` 列了兩次。** Codex 與 OpenCode 共用同一份檔案,而檢查是逐工具而非逐檔案進行。現在每個檔案只回報一次,並標明共用它的工具。
|
|
30
|
+
- **七條 `core/*.md` 標準自 6.0.0 起就沒有被安裝過,而它們一個字都沒說([#180](https://github.com/AsiaOstrich/universal-dev-standards/issues/180))。** 它們的 `.ai.yaml` 在 6.0.0 被移除,文件則刻意留在 `core/` 當作採用層的參考——這個決定合理,也記在 `docs/MIGRATION-v6.md` §2 與 `scripts/reference-only-standards.json` 裡,但**沒有記在讀者真正會遇到它的地方**。遷移指南在升級時讀一次,`core/` 是持續被讀的:走訪它來回答「UDS 有哪些標準」的人或 agent 會數到 152 份,其中七份 `uds init` 從未安裝過。七份現在都在開頭帶一段 `<!-- UDS:REFERENCE-ONLY -->` 告示,英文、繁中、簡中三份都有,並指向遷移紀錄與那份機器可讀清單。新閘門(`npm run check:reference-only`,已接進 CI 並附兩臂自測)從 registry 裡每一條 `source.human` 現算出貨面,把它與 `core/*.md` 的差集當成 reference-only 集合,要求每一份都要揭露——**反過來也要求有在出貨的文件不得帶著這段告示**,所以一條重新開始出貨的標準不會留下一句謊話。用現算而不是比對那七個名字,是為了讓下一次縮減範圍不會重演同一種沉默。
|
|
31
|
+
- **`--format human` 的安裝把 `testing-standards.md` 掛在兩個標準 id 底下送出,而全覆蓋那一份從來沒送到。** `full-coverage-testing` 的 registry 條目把 `source.human` 指到 `core/testing-standards.md`,於是 `core/full-coverage-testing.md`——一條活著的標準,最近一次維護是 XSPEC-288——沒有任何人裝得到,而 human 格式的 manifest 裡同一條路徑出現兩次。`check-registry-completeness.ts` 的 Check 2 看不到它:那支只要 human 或 ai 任一條路徑出現在 registry 文字裡就算通過,而 ai 那條在。由上面那支閘門首跑時抓到,是七份預期之外的第八份。修正前後各跑一次真正的 `uds init --format human` 驗證。
|
|
32
|
+
- **`uds update --sync-refs` 寫進去的標準數,`uds check` 當場否認。** manifest 有 73 條標準的專案,`--sync-refs` 把 CLAUDE.md 改成宣告 76 條,`uds check` 隨即回「索引宣告 76 條標準,manifest 實際有 73 條」;而 `--integrations-only` 算得出正確數字,於是它看起來像計數錯誤,其實是**來源錯誤**。`--sync-refs` 是從 `integrationConfigs[檔名]` 重新產生的,那裡面的 `installedStandards` 是安裝當時的快照、**沒有任何路徑會更新它**——跨大版本升級過的專案,它仍列著 6.0.0 就停止出貨的標準,而它列什麼,檔案內容就是什麼。現在改為從 manifest 重新產生,正如 `buildToolIntegrationConfig` 自己的註解一直寫著的那樣;舊快照只剩 `outputLanguage` 還有發言權,避免一個早於該選項的 manifest 把使用者的選擇悄悄重設。
|
|
33
|
+
- **已安裝標準索引在每個專案都寫「options 0」。** `uds init` 把安裝清單縮成純檔名,而下游一律以 `/options/` 這個路徑片段判斷選項——在 `contentLayout: flat` 底下根本沒有目錄可以還原它。一個有 66 條核心標準與 7 個選項的專案,被告知自己有「73 條(core 73、options 0)」。同一個縮減也讓 AGENTS.md 裡每個選項檔都被寫成 `.standards/<名稱>.ai.yaml`,比選項實際安裝的位置高一層,於是每一條都是死連結——而它們就列在一句「你必須讀這些標準」底下。現在路徑完整傳遞,AGENTS.md 的選項寫在 `.standards/options/`,並且依專案實際格式而非一律假設 `ai`(`--format human` 的專案先前拿到的是一串 `.ai.yaml` 檔名,而它手上是 `.md`)。
|
|
34
|
+
- **照著遷移指南做,會讓 `uds check` 報錯,而它給的解法不可能成功。** MIGRATION-v6 §2 說要手動刪掉七個已降級的 `.ai.yaml`。刪掉之後 `fileHashes` 紀錄還在,`uds check` 於是把七個檔案報成遺失並建議 `uds check --restore`,而那個還原在每一個檔案上都失敗(「無法判斷來源」)——上游自 6.0.0 起就沒有來源了。**工具要求採用者推翻它自己的文件,用的還是一個它已經知道跑不動的指令。** 現在,一個 UDS 已不再出貨的檔案不見了,會與真正的遺失分開回報、用灰色、並給出真的有用的解法;`uds update` 會清掉那些紀錄並逐筆說出清了什麼,**包含已經在最新版的專案**——照指南做過的人必然都在那個狀態。`--prune` 碰不到它們:它刪的是走訪 `.standards/` 時找得到的檔案,而這些正是已經不在那裡的。
|
|
35
|
+
- **UDS 重新產生了 AGENTS.md,卻沒有記下自己寫了什麼。** `uds update --integrations-only` 之後緊接著 `uds check`,會在一個只有 UDS 動過的檔案上報 `AGENTS.md(已修改)`。三個寫 AGENTS.md 的呼叫點都記了 `integrationBlockHashes`,沒有一個記 `fileHashes`。現在已存在的紀錄會被更新;manifest 沒在追蹤的檔案仍然不會被納入追蹤——那份摘要本來就是給採用者擴寫的。
|
|
36
|
+
- **在 Windows PowerShell 上,跑成功看起來像失敗。** 進度訊息走 stderr,而 PowerShell 5.1 會把原生指令的任何 stderr 輸出包成 `NativeCommandError`——**包括 `✔ 已重新產生 2 個整合檔案` 這句報告成功的話**。改動前實測:stdout 9 行、stderr 2 行,兩行都是 spinner。47 個 spinner 現在一律寫 stdout,成功的一趟 stderr 是空的。
|
|
37
|
+
- **刪除計畫用同一句話解釋三種完全不同的情況。** 「no longer in desired state」同時被印給「上游已移除的標準」「專案自己取消選取的選項」「desired state 根本沒有模型化的路徑」——三種情況的正確反應各不相同。現在理由會說出是哪一種,以及重新選取能不能把檔案救回來。`.standards/release-config.yaml` 則完全不再是刪除候選:它是 `uds init` 依使用者挑的發版模式寫出、`uds config` 會改寫的檔案,刪掉它是在丟掉一個設定卻自稱在對帳。它被保留,而且理由會被印出來,不是默默跳過。
|
|
38
|
+
- **一個 .NET Framework 專案拿到四個指令,其中三個跑不動。** `.csproj` 自 2017 年起同時指涉兩套互不相容的建置系統,而偵測只看副檔名:舊式專案(`<TargetFrameworkVersion>`、沒有 `Sdk` 屬性)拿到 `dotnet build`(以 `MSB4019` 失敗)與 `dotnet list package --vulnerable`(對 `packages.config` 專案靜靜地什麼都不報,因為它只讀 `PackageReference`)。舊式專案現在 `build` 給 `msbuild`,其餘留白——未知生態那一支本來就回傳空字串「讓使用者自己填」,而**一個人類會補完的空格,勝過一個看起來很權威、第一次執行就失敗的指令**。
|
|
39
|
+
- **每一份生成的指示檔,開頭都叫 AI 去讀一個永遠不會被安裝的目錄。** 九個工具、每種語言,全都以「**優先**讀取 `core/` 中的精簡規則(例如 `core/testing-standards.md`)」開場。`uds init` 安裝到 `.standards/`,從來沒有在採用者的專案裡建立過 `core/`——那是標準在 UDS repo 裡的位置,不是在採用它的 repo 裡。同樣兩句話有 36 份副本、錯法一模一樣,而且乾淨的 6.9.0 安裝就會寫出它們。現在它們指向 `.standards/`,並有一支測試走訪生成結果,讓第十個工具沒辦法把它重新帶回來。
|
|
40
|
+
- **`uds update` 把中文的 CLAUDE.md 改寫成英文。** `uds init` 依 `display_language` 產生整合檔內容,而每一條重新產生的路徑都是從 `output_language`(commit 訊息語言,預設 `english`)推導的。現在內容語言依 `display_language`,只有在沒有顯示語言設定可依據時才退回 `output_language`。
|
|
41
|
+
|
|
42
|
+
|
|
43
|
+
### 新增
|
|
44
|
+
|
|
45
|
+
- **`uds check` 現在會報出指示檔裡提到、但實際不存在的路徑。** 先前它只讀 `Reference:`/`參考:` 開頭的行、而且只看 `.standards/` 路徑——對「參考同步」而言那是正確的範圍(那些行是 UDS 自己生成的),對「這條指示有沒有指到東西」而言則是錯的範圍。UDS 標記之外、由舊版安裝留下、之後沒有任何重新產生會回頭看的散文,把 agent 指向不存在的檔案。這支掃描以**檔案存不存在**為準而非以路徑長相為準,所以一個真的有自己 `core/` 目錄的專案不會被冤枉,網址裡的路徑也會被排除。它首跑就找到了本次修正中的兩項缺陷。
|
|
46
|
+
|
|
47
|
+
## [6.9.0] - 2026-09-14
|
|
48
|
+
|
|
49
|
+
### 採用者升級注意
|
|
50
|
+
|
|
51
|
+
- **uds update 不再自動刪除檔案;會列出可移除的 UDS 舊檔,加 --prune 才會刪,且只刪 UDS 自己寫過的檔案。原本依賴自動清檔的流程請加上 --prune。**(#168、#165,詳見「修正」)
|
|
52
|
+
- **--content-mode 給了不認得的值,現在會印出警告並照舊使用 index(6.8.0 也是產生 index 的內容);7.0.0 起會改成直接報錯。** `--content-mode full` 已棄用,會解析為 `index` 並附說明。(詳見「棄用」)
|
|
53
|
+
- **以 `uds init -y` 安裝的 Codex、OpenCode 等非 Claude 工具,技能現在會裝進它們自己的目錄**(例如 Codex 是 `.agents/skills/`),不再裝進 `.claude/skills/`。既有安裝跑 `uds update` 會自動遷移。(詳見「修正」)
|
|
54
|
+
- **Antigravity 現在會拿到 `.agents/skills/` 與 `.agents/AGENTS.md`**,以前是什麼都沒有、指示檔寫成 `INSTRUCTIONS.md`。Antigravity 只在該目錄是已登記的專案時才會讀 `.agents/`,`uds init` 會印出這個提示。
|
|
55
|
+
- **6.8.0 以前 uds init --with-hooks 寫進 .claude/settings.json 的 hook 是從未執行的字串格式,uds update 不會處理 hook,重跑 uds init --with-hooks 也不會刪掉舊項目與 scripts/hooks/*.js。要取得可用的 hook,請重跑 uds init --with-hooks,並可手動刪除舊的 .js 項目。**
|
|
56
|
+
|
|
57
|
+
### 修正
|
|
58
|
+
|
|
59
|
+
- **`uds update` 不再靠「查一張雜湊表」來決定檔案是誰的(XSPEC-384,issue [#165](https://github.com/AsiaOstrich/universal-dev-standards/issues/165) 與 [#168](https://github.com/AsiaOstrich/universal-dev-standards/issues/168))。** 兩位使用者對同一支指令回報了方向相反的缺陷:它刪掉了使用者手寫放在 `.standards/` 下的專案文件,沒有警告、沒有 diff、沒有詢問、沒有備份(#168,是逐行比對 `git status` 才發現的);同時它把 registry 已經移除的標準留在 manifest 與磁碟上,而 `upstream.version` 照樣前進到「最新」(#165)。兩者都源自同一個布林值在回答兩個彼此獨立的問題——**這個檔是不是 UDS 寫的**、**它現在還是不是現行標準**——而每個 issue 各撞上這個超載軸的一端。所有權現在改成在 UDS 寫入的當下記錄,存進 manifest 新增的 `provenance` 欄位,並以複製動作實際回傳的路徑為鍵,而不是從來源檔名重新推算的路徑(正是那個重新推算,讓 `fileHashes` 裡出現五筆 `.standards/options/<name>.ai.yaml`,而真正的檔案住在 `options/<category>/<name>.ai.yaml`)。provenance 是唯增的,`fileHashes` 是當前狀態;若兩者同進同退,provenance 會在同一刻一起失效,也就毫無作用。刪除現在必須兩件事同時成立,其餘每一種組合一律保留,**並印出保留的理由**。無法判定所有權時歸向保留——那正是舊程式不肯選的那一邊。既有安裝沒有 provenance,因此首次升級無從歸屬、也不會刪任何東西;provenance 只在一次完整寫入全套標準的執行結束時才建立。刪除另外需要新的 `--prune` 旗標,刻意不用 `--yes`:`--yes` 會被設在 CI 裡,讓它一併授權刪除,等於正好在沒有人看得到的地方把破壞性路徑打開。「預設就刪」的分階段策略放在單一具名常數(`PRUNE_POLICY`),因為 XSPEC-384 §4 尚未裁決。每一份刪除報告都印出分母——檢查了幾個、我方擁有幾個、非我方幾個、判不了幾個、排除幾個以及為什麼——因為一份只列出動作對象的報告,與「它只看到這幾個」無從分辨。兩個 issue 都由先證明會紅的測試釘住。
|
|
60
|
+
- **九個工具裡有八個,技能被裝進它們不會讀的目錄。** 非互動路徑(`uds init -y`)下,除了 Claude Code 以外每個能裝技能的工具,技能都被寫進 `.claude/skills/`;一個 codex repo 下 `--mode skills -y` 會得到零個技能、零則訊息。現在「能不能裝技能」與「要不要走 marketplace」都改成問路徑表;偵測到、但沒有查證路徑的工具什麼都不裝而且會出聲;`uds update` 轉換舊 manifest 時會重新推導工具,不再假設 `claude-code`。Codex 那句未經查證的 `fallbackSkillsPath: '.claude/skills/'` 已移除。互動流程從來沒有這個問題。
|
|
61
|
+
- **Roo Code 永遠裝不起來。** 路徑表裡有它,偵測器裡沒有;它的識別字在一張表叫 `roo`、其他地方都叫 `roo-code`,於是 `uds init` 把指示寫進根目錄的 `roo-code.md`。偵測改用 `.roo/` 與 `.roorules`(刻意不用 `.clinerules`,那是 Cline 自己的標記);技能也不再退回 `.claude/skills/`,因為 Roo Code 文件列出的位置裡沒有它。依據是 Roo Code 的文件,沒有在真的 Roo Code 上實測。
|
|
62
|
+
- **Antigravity:UDS 六個月來什麼都沒幫它裝,而且寫的指示檔是它不會讀的那一份(XSPEC-355 OQ6)。** 技能改裝進 `.agents/skills/`、指示改寫進 `.agents/AGENTS.md`,由工具的二進位檔、隨附說明文件、以及一次帶誘餌路徑的實跑三方確認。它的 tier 從 `minimal` 升為 `partial`。
|
|
63
|
+
- **UDS 至今出貨的每一支 hook 都是死的,而採用者拿到四支壞掉的 hook。** hook 項目寫成裸字串(只有物件形式會跑);`scripts/hooks` 沒有進 npm 套件;hook 是 ESM `.js`,在 `"type": "commonjs"` 下會失敗(改為 `.mjs`);commit message 驗證掛在 `UserPromptSubmit`,每打一句話就跑一次、每次 exit 1(改掛 `PreToolUse(Bash)`,只看真正的 `git commit -m`)。
|
|
64
|
+
- **`uds check` 的還原會拿一份過期模板蓋掉生成的整合檔。** Claude Code 那份是 140 行、最後修改於 2026-03-25 的檔案。還原現在改用安裝器記下的設定重新生成,受管區塊外的內容不動;Antigravity 與 Gemini CLI 第一次有了還原路徑,Codex 的後備來源也不再指向不存在的目錄。
|
|
65
|
+
- **Codex/OpenCode 的 `AGENTS.md` 沒有揭露句。** 2026-08-18 的揭露修正只到了兩個產生器中的一個;選 codex 或 opencode 時,`AGENTS.md` 走的是另一個。兩種語言、兩種輸出格式都已修正。
|
|
66
|
+
- **cline、windsurf、roo-code 與 Antigravity 的整合檔只寫「照 commit-message 規則」,沒有寫出規則本身。** 格式與合法型別現在直接寫在檔案裡,與 Codex 那份原本的做法相同。
|
|
67
|
+
|
|
68
|
+
### 新增
|
|
69
|
+
|
|
70
|
+
- **`turn-completion-integrity`——agent 不得在說了下一步之後、沒做就結束回合。** 由 Stop hook 在回合結束時執法,而不是寫成指令。偵測器附英文與 zh-TW 語言包及做過突變測試的語料;它會讀使用者的最後一則訊息,所以被叫停不會被當成未兌現的承諾;逐項列出「誰卡在誰身上」的清單被認得是合法的結束方式;「做完跟我說,我再驗」被當成條件式。`uds init --with-hooks` 現在會在你的語言沒有語言包時警告,因為在未列出的語言下,hook 裝好了卻不可能觸發。含 zh-TW 與 zh-CN 翻譯。
|
|
71
|
+
- **`deferred-item-exit`——六條標準會產出延後項目,而沒有一條說那些項目要去哪(XSPEC-391)。** 一位採用者的一次設計工作產出了一份 ADR 與一份規格,其中帶有五個標為「待決定」/「另案處理」/「不在 v1」的項目,而**五項全都沒有進入任何追蹤系統**。原因不是健忘。對會產出這類項目的六條標準——`adr-standards`、`spec-driven-development`、`retrospective-standards`、`feature-discovery-standards`、`code-review-checklist`、`acceptance-criteria-traceability`——grep `issue|tracker|backlog|task id|work item` 共 13 個命中,而**沒有任何一個是出口**:ADR 的 `Technical Story` 是輸入參照、retrospective 把 tracker 當指標來源、feature-discovery 把工單當需求輸入、AC-traceability 只對外部阻塞的覆蓋要求連結,而 code-review 的 8 個命中全是英文單字 "issues",意思是「問題」。每條標準都說明如何把自己的文件寫好;文件寫完就是終點。新標準把缺少的那個關係陳述一次——延後項目在文件之外有一個可追溯的出口,而文件帶著那個出口的識別碼——六條產出端標準加上 `brainstorm-assistant` skill 各自取得**一行指向它的指標,而不是一份副本**,因為同一條規則的六份副本會往六個方向腐壞。**載體刻意不指定**:issue、受追蹤的 TODO、manifest 的一列、backlog 檔案裡的一行都符合,判準是「這個項目離開文件了嗎」,永遠不是「用了哪個工具」。三個發現決定了條文。第一,出口必須在產出該文件的那次變更落地*之後*仍然解析得到——兩個觀察到的洩漏滿足其他所有條件,仍然遺失了項目(待辦寫進一個會被本次合併關閉的 issue;待辦寫進出口的留言,被後續留言推出視線)。第二,**連結存在不等於連結有效**:回報者自己的閘門會放行他最強的那個例子——一份寫著「與 issue #19 一併決定」的文件,而 #19 裡根本沒有這件事——所以 DEX-005/006 要求「有連結且內容已驗證」與「有連結、內容未驗證」永遠不得印出同一個綠,因為一個被回報成通過的未知,比一個被回報成未知的未知更糟。第三,錨點是文件的**結構**(ADR 的 `Consequences`、規格的範圍外章節、retrospective 的 `Action Items`),不是它的措辭:結構可以窮舉,措辭清單不行,所以 DEX-008 要求任何措辭清單都要宣告其涵蓋率未知,DEX-009 要求任何窗口大小(「3 行以內」)都要載明來歷,否則標為未校準。依 DEC-049,這條標準完全寫成「必須存在的關係」,絕不寫成「必須維持它的機制」——而且它在自己的本文裡明白寫出 **UDS 不為它提供任何閘門**,因為一條陳述了規則卻沒有東西執行它的標準,不承認這一點時比承認時更糟。`adr-standards` 另外補上一條它從未陳述過的邊界(對它 grep `acceptance criteria|\bAC\b|驗收` 得到**零**命中,對照組 `acceptance-criteria-traceability` 為 84 個命中):**驗收標準只在一處維護——SPEC**,ADR 以連結指向它——被複製的清單有兩個擁有者,其中一個永遠不會被更新,實測後果是工作出貨後 ADR 裡的勾選框全部仍是未勾選,而只讀規格的覆蓋率工具看不到它。
|
|
72
|
+
- **`AUTH_SCOPE_EXTRACTION`——租戶界限是一個 `WHERE` 子句,而遷移流程裡沒有任何東西強迫你去找它(`reverse-engineering-standards` 1.3.0,issue [#166](https://github.com/AsiaOstrich/universal-dev-standards/issues/166))。** 一次真實的 PHP → C# 遷移中,一個以租戶為界的帳號列表 endpoint 在重寫過程中弄丟了它的隔離述詞:依角色限縮範圍被換成粗糙的「這個帳號是不是任何一個已啟用的管理員?」檢查,於是不論是誰在問,它都回傳資料庫裡的每一個帳號。它出貨了、通過了所有既有測試(那個方法一個測試都沒有),最後是客戶回報「我看到了不該看到的帳號資訊」才浮現。`test-completeness-dimensions` 的維度 4 早就點名跨租戶存取,所以缺的從來不是維度,缺的是一個在遷移當下強迫想起它的步驟。有三個性質讓這一類缺陷穿過每一道閘門:那條安全關鍵的程式碼因為住在查詢裡而非請求/回應契約裡,讀起來就像眾多過濾條件之一;基於形狀的斷言看不見範圍,所以「200 加非空清單」在子句被刪掉之後照樣通過;而程式庫別處存在一支共用 scope resolver 會被讀成覆蓋,同時一個新的 call site 正在不呼叫它地重寫這個查詢。新階段與隱含規則掃描並行,機械化地推導出每一個以操作者自身身分為界的述詞——包含由 ORM global scope、repository 基底類別、RLS 政策、注入過濾條件的 middleware 在 SQL 之外執行的範圍,因為只 grep SQL 會回報一個比實際更小的集合,而在這裡更小的集合讀起來恰好就像更安全的集合。每個命中都記下 `file:line`、自我綁定與觸發分支;oracle 是「每個角色分支、逐 call site 的述詞等價性」,不是輸出形狀。RE-AUTH-001 要求一個斷言另一操作者紀錄**不存在**的負向測試(附自我檢查:在暫存副本裡把述詞刪掉,若測試還是通過,那它從來就不是在測範圍);RE-AUTH-002 則對任何「移植後等價物未經驗證」的述詞 block cutover。
|
|
73
|
+
- **寫下來的日期現在必須代表某件事(`tech-debt-standards` 1.1.0、`governance-layer` 1.1.0)。** 登記表範本從 1.0.0 起就要求 `Owner` 與 `Target Resolution Date`,而兩份標準裡沒有任何一處說那個日期過了會怎樣——對 `core/tech-debt-standards.md` grep `overdue|past due|expired|exceed` 零命中,而對照組 grep `Owner` 有命中,證明那個「查無」是真的、不是查詢工具壞掉。更嚴重的是 `Registry Storage Options` 把「專用試算表」列為完全合法:一份沒有任何程式讀得到的表格滿足本節其餘每一條要求,它沒有任何地方是錯的——直到日期過了,然後什麼都沒發生。`tech-debt-standards` 新增**到期處置**——到期時只有三種合法處置(做掉/撤銷/延期並寫明理由)、TD-EXP-001..006、明文禁止把到期實作成自動延期或自動關閉(兩者都讓時鐘停止,且都不留下停了的痕跡),以及給跑不動檢查的團隊的合規替代方案**無人看管宣告**。每個儲存選項現在都帶著「在什麼條件下它才合法」;試算表刻意保留,因為它常是出錢的人唯一會打開的格式。`governance-layer` 新增風險接受條款的 `review_by`(`review_by` 已過的接受不是有效條款,pipeline 必須 fail closed,與沒有條款時一樣)、**待裁決事項**(GOV-PD-001..004——待裁決是一種帶時鐘、帶固定列舉標記的受治理狀態,不是自由書寫的散文)、**匯總報告**(GOV-RPT-001..005——通過/失敗/**判不了**分開印出、寫出分母與其推導方式、不得合併成單一分數,因為一個「什麼都不做」與「把工作做完」得分相同的指標,量的不是那份工作),以及**新鮮度指標**(GOV-FRESH-001..004——指標必須指名自己讀的是編輯時間還是對帳時間,兩者不得共用欄位;一份今天剛編輯、從未與現實對過的文件,在其中一個時鐘上是零天、在另一個上是無上限)。兩份標準都在標準本文裡明白寫出 UDS 對這些規則不提供任何檢查器:最低標準不是「去建一支檢查器」,而是「絕不讓一筆記載在無聲中變成無人看管」。
|
|
74
|
+
- **`uds audit --effects` —— 一道去問「這個回報成功的元件,到底做了什麼沒有」的閘門(XSPEC-383 R8)。** 形狀 D:可達、被呼叫、跑得動、回傳 `{ok: true}`,而它什麼都沒碰。R3 的可達性閘門看不見它——**可達性問的是入邊(誰呼叫它),形狀 D 的病灶在出邊(它最終碰到什麼),方向相反**。根因是**宣稱與證據共用同一個作者**:回傳值既是「我做了什麼」也是唯一的證據,而型別系統驗的那個形狀,對真實作與空殼**完全同構**。本閘門走訪每個宣告的實作的呼叫圖,量它是否觸及跨程序邊界。**邊界集合從 runtime 自讀**——由家族根名規則走訪 `builtinModules` 展開(`fs`、`child_process`、`net`/`dgram`/`tls`、`http`/`https`/`http2`、`dns`、`worker_threads`),不是手打清單,因此 `fs/promises` 與未來任何子路徑都不需要改程式;且**每條規則都印出自己展開了幾個**,展開 0 個就是規則過期了。免 import 的全域 API(`fetch`、`WebSocket`、`process.dlopen`)先探測當前 runtime 才納入,這個 Node 沒有的那些也一併印出來。家族**用 glob 宣告**在 `.uds/effect-boundary.json`,**不用檔名清單**——檔名清單在有人加上第七個 adapter 的那一刻就不再為真,而那正是本閘門存在的理由。判定三態:零命中判 RED(家族中位數 > 0 時帶「兄弟有對照組」的佐證;整個家族全為零時**組內比較集體沉默**,報告會明說這個 RED 只由絕對零判準支撐);零命中但帶著無法分類的外部相依則是 **UNDECIDABLE 並 exit 2**——判成綠是 fail-open,判成紅是誣告。依 R7-b,**宣告 `NOT_IMPLEMENTED` 且從不回傳成功形狀的實作是合法的,不需要白名單**——這個連言很重要:只認關鍵字的話,那個字就是每個空殼將來要走的洞,而兩者同時出現的檔案會被**指名判 RED**。R7-c 抽出字串拼接產生的網域(模板內插與 `+` 串接一律折成 `*`,所以 `` `https://${env}.api.acme.example` `` 仍可判定,`` `https://api.${tld}` `` 不可判定),對照**來源可插拔**的持有清單:檔案、環境變數,或**指令**——那正是接註冊商或雲帳戶 DNS zone API 的位置。**宣告了卻讀不到 → exit 2**,絕不當成「清單為空所以什麼都合法」。基線是 **TSV,每列一個到期日**(§7.11.2),格式壞掉的列 exit 2,因為**壞掉的基線不是「沒有基線」**。做的過程中它第一次自測就抓到自己的真缺陷:**type-only import 被當成呼叫圖的邊**,於是空殼繼承了介面檔的邊界命中而判綠——型別 import 編譯後整行消失,把它算成命中是**憑空多出來的綠燈**。那個案例現在由一支專屬對照臂釘住。**它證明不了什麼**:碰到的那個邊界是不是**對的**那一個——打一發裝飾性 log 請求就能過關。那是 R9,本輪未做。UDS 自己沒有效果家族,所以不帶 config 直接跑會 exit 2,這是設計而非故障;CI 跑的是 `--self-test`,十七臂(五個探針對照組、分母、綠、紅、R7-b 濫用、R7-b 豁免、跨檔呼叫圖、邊界金絲雀、網域金絲雀、讀不到清單、空集合、不可判定、探針失效)在一份為本 repo 自己寫的合成語料上各自證明得出來。
|
|
75
|
+
- **一道採用者跑得動的錯誤出口閘門。** `templates/gates/check-error-exit.mjs` 現在隨套件出貨。`uds check` 會在有 `src/` 卻沒有這道閘門的專案上報告,但從不寫入;`uds update` 會說明它是什麼並提議寫入,預設答案是**不要**,檔案已存在時絕不覆蓋。閘門容許一個檔案格式化錯誤訊息,第二個出現時才判紅;設定好之前一律 exit 2。
|
|
76
|
+
- **`brainstorm-assistant`:判官現在需要心智,不只需要座位(XSPEC-388)。** BQS D4 必須同時有獨立 context 與宣告的模型層級才算通過,模型層級只能用 `core/model-selection.md` 的廠商中立標籤表達,指名具體廠商模型即違規。CONVERGE 評審提示改寫為「目標+約束」。沒有移除任何 v3 機制。
|
|
77
|
+
- **`llms.txt` 改為生成,不再手寫。** 由 `uds-manifest.json`、`core/`、`skills/`、`integrations/REGISTRY.json` 與 `cli/package.json` 推導,`--check` 在已提交的檔案差一個位元組時就失敗。
|
|
78
|
+
|
|
79
|
+
### 變更
|
|
80
|
+
|
|
81
|
+
- **P1 與 P3 回到探針集,而它們當初被砍的理由,現在成了另一種錯誤的實例(XSPEC-408)。** 兩者都在 2026-07-23 以「基線已通過」為由退役:在沒有安裝 UDS 的情況下對 Antigravity CLI 1.0.14 執行,模型會先讀檔再回答(P1),也會主動給出自己的推薦(P3)。這些觀察仍然成立;站不住的是退役這個結論。**每一支探針量的是兩件事——一個行為與一個宣告的標記——而被推翻的只有行為。** P1 的退役紀錄自己就寫出了這一點(「剩下的是:UDS 要求明確的 `[Source: <path>]` 標註,而基線用的是 markdown 檔案連結」),接著卻引用 §2.2「探針斷言結構,不斷言用詞」把剩下的部分丟掉。那個讀法不可能正確,因為 **P2 正是靠比對四個字面標籤存活**,而且是整組裡最耐用的探針;§4 自己的總結也早已得出「always-read 層耐用的部分看起來是宣告的形式與內部慣例,而不是知識」,而兩支宣告形式的探針就被砍在它下面幾段。§2.2 現在寫出它本來就該承載的區分:比對模型碰巧寫出的句子,量到的是運氣;比對**標準要求模型印出的標記**,量到的是標準有沒有送達。P1 與 P3 改寫成只問這個較窄的問題,而且兩者現在都會在答案*事實正確但沒有標記*時明確失敗——那正是它們存在要抓的情形。它們的 §2.3 入場基線不花任何一次新執行:留存的 2026-07-23 逐字稿重新計分後,`[Source:` 出現 **0 次**、`[Recommended]` 出現 **0 次**,各自都對照同一個讀取器在同一份檔案裡找到的陽性控制字串,所以那個 0 是「不存在」,而不是搜尋壞掉。`scripts/check-reinstated-probe-baselines.ts` 在每次 CI 執行時重新推導這兩個數字——一個讀過一次就打進文件的 0 是一枚戳,而這個 repo 已經記錄過戳會發生什麼事——其 `--self-test` 臂涵蓋標記出現(紅)、控制字串缺失(判不了,絕不是綠)與空逐字稿(判不了),三者皆經突變確認。**這件事沒有做到的**:提高 n。每支探針一次執行、一個工具、一個前沿模型、重讀一遍。`DELTA-TREND.md` 把這次重新計分記在它自己的子表裡,並明文禁止併入上方的總表;Codex 那一列加註其 50% 指的是*已退役*的 P1/P3——Codex 沒有留存任何 P1/P3 逐字稿,所以不像 Antigravity 有東西可以重新計分。當初讓這些探針被退役的那群對象——採用者在 aider 與 continue-dev 下執行的本機與量化模型——至今仍未被量測過,而一支探針的全部價值,就是在那群對象不再需要這條規則時告訴你。復原探針是把感測器裝回去;它沒有說它會讀到什麼。
|
|
82
|
+
- **技能:每一個兄弟檔現在都能從自己的 `SKILL.md` 一跳到達。** 原本有 13 個兄弟檔(3,193 行)沒有任何東西指向它們,另有 56 個只能經由另一個兄弟檔到達;`skills/` 與各語系樹的 168 個兄弟檔現在全部是一跳,每一條指路都寫明檔案內容與何時該讀。這消除的是結構風險,並不證明兄弟檔真的會被讀。
|
|
83
|
+
- **出貨的 `.ai.yaml` 的 `meta.updated` 改取自來源檔的 git 歷史**;git 查無紀錄時直接省略該欄位,不再用手打的日期或 transform 執行當天。
|
|
84
|
+
- **`governance-layer`:Enforcement Reality 一節現在也點名較舊的風險接受欄位**(`review_by`、`risks_accepted`、`gates_bypassed`)沒有任何程式在讀。
|
|
85
|
+
- **相依套件:** `chalk` 5.6.2 → 6.0.0、`js-yaml` 5.2.1 → 5.2.3(CLI 執行期);`eslint`、`globals`、`lint-staged`、`tsx`(開發用)。
|
|
86
|
+
- **repo 內部驗證(不影響採用者拿到的內容):** 實跑 `uds init` 的採用者指示檔檢查;走訪路徑表每個工具的安裝路徑閘門;實際執行已安裝 Stop hook 的 hook 投遞閘門;比對內容的 bundle parity;skill 觸發面閘門;出貨戳一致性檢查器;翻譯 `source_hash` 棘輪;名稱提及分類器;STATUS.md 矛盾閘門;本 repo 的 `.claude/skills` 副本改為生成;skill 金絲雀儀器(XSPEC-408 R2)與它的首批真跑;P7 探針砍除;bump/sync 往返檢查移到每次 CI;測試套件不再受機器語系影響。
|
|
87
|
+
|
|
88
|
+
### 棄用
|
|
89
|
+
|
|
90
|
+
- **`contentMode: 'full'`——一個既有模式的第二個名字(XSPEC-357 R7)。** manifest schema 接受它、`--content-mode` 提供它、init 提示把它包裝成「拿 context 預算換合規」的取捨(「完整嵌入所有規則、約 10-15 KB、合規率最高」),而且每一個 `partial` 層級的工具都被自動指派它。這些一項都沒有被實作:產生器對模式的唯一判斷是 `=== 'minimal'`,因此 `full` 與 `index` 走同一條分支,**在實測的 24 組(工具 × 語言)組合中寫出逐位元相同的檔案**,且對照組證明該比較確實抓得到差異(`full` 對 `minimal` 在 24 組中全部不同)。它也不可能照宣稱的方式運作——`.standards/` 約 248k token,遠超過任何整合檔案裝得下的量。採用者是在兩個標籤之間選擇同一種行為,而那個標籤承諾了一個不存在的差異;文件甚至以法規理由建議銀行核心系統採用 `full`。**這次棄用對採用者的代價是零**:`--content-mode full` 仍然接受並解析為 `index`(附說明),manifest 中記錄的 `full` 會在下次讀取時改寫為 `index`,而由於兩個模式本來就產生相同的位元組,**任何專案產生的檔案都不會改變**。不認得的模式仍然解析為 `index`,但現在會印出警告並寫明那個值;7.0.0 起會改成直接報錯。`check-adopter-instruction-files.ts` 裡的 `content-mode=full` 情境——正是它「8 個檔案全部逐位元相同」的發現促成了這次移除——一併移除,而不是留著拿 `index` 跟 `index` 比、然後永遠回報「相同」。
|
|
20
91
|
## [6.8.0] - 2026-08-20
|
|
21
92
|
|
|
22
93
|
### 新增
|
|
@@ -14,7 +14,7 @@ status: current
|
|
|
14
14
|
|
|
15
15
|
Universal Development Standards 是一個語言無關、框架無關的文件化標準框架。它提供:
|
|
16
16
|
|
|
17
|
-
- **核心規範** (`core/`):
|
|
17
|
+
- **核心規範** (`core/`):152 個基礎開發標準
|
|
18
18
|
- **AI 技能** (`skills/`):用於 AI 輔助開發的 Claude Code 技能
|
|
19
19
|
- **CLI 工具** (`cli/`):用於採用標準的 Node.js CLI
|
|
20
20
|
- **整合** (`integrations/`):各種 AI 工具的配置
|
|
@@ -15,7 +15,7 @@ status: current
|
|
|
15
15
|
|
|
16
16
|
> **語言**: [English](../../README.md) | 繁體中文 | [简体中文](../zh-CN/README.md)
|
|
17
17
|
|
|
18
|
-
**版本**: 6.
|
|
18
|
+
**版本**: 6.10.0 | **發布日期**: 2026-09-16 | **授權**: [雙重授權](../../LICENSE) (CC BY 4.0 + MIT)
|
|
19
19
|
|
|
20
20
|
語言無關、框架無關的軟體專案文件標準。透過 AI 原生工作流,確保不同技術堆疊之間的一致性、品質和可維護性。
|
|
21
21
|
|
|
@@ -76,7 +76,7 @@ npx universal-dev-standards init
|
|
|
76
76
|
<!-- UDS_STATS_TABLE_START -->
|
|
77
77
|
| 類別 | 數量 | 說明 |
|
|
78
78
|
|----------|-------|-------------|
|
|
79
|
-
| **核心標準** |
|
|
79
|
+
| **核心標準** | 152 | 通用開發準則 |
|
|
80
80
|
| **AI Skills** | 55 | 互動式技能 |
|
|
81
81
|
| **斜線命令** | 51 | 快速操作 |
|
|
82
82
|
| **CLI 指令** | 23 | 專案設定與維護 |
|
|
@@ -195,6 +195,8 @@ Coverage = (5 + 2×0.5) / 8 = 6/8 = 75%
|
|
|
195
195
|
| 基礎設施限制 | 測試環境限制 | 解決方案計畫 |
|
|
196
196
|
| 延後至下一迭代 | 已與利害關係人確認 | Ticket 參照 |
|
|
197
197
|
|
|
198
|
+
> 本標準產出的**延後項目**(`Gaps` 的 Uncovered AC/Partial AC、上表的例外、報告的 `Action Items`)適用 [deferred-item-exit](deferred-item-exit.md)。
|
|
199
|
+
|
|
198
200
|
---
|
|
199
201
|
|
|
200
202
|
## AC 覆蓋率報告格式
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
---
|
|
2
2
|
source: ../../../core/adr-standards.md
|
|
3
|
-
source_version: 1.
|
|
4
|
-
translation_version: 1.
|
|
5
|
-
last_synced: 2026-
|
|
3
|
+
source_version: 1.1.0
|
|
4
|
+
translation_version: 1.1.0
|
|
5
|
+
last_synced: 2026-08-24
|
|
6
6
|
status: current
|
|
7
7
|
---
|
|
8
8
|
|
|
@@ -10,8 +10,8 @@ status: current
|
|
|
10
10
|
|
|
11
11
|
> **語言**: [English](../../../core/adr-standards.md) | 繁體中文
|
|
12
12
|
|
|
13
|
-
**版本**: 1.
|
|
14
|
-
**最後更新**: 2026-
|
|
13
|
+
**版本**: 1.1.0
|
|
14
|
+
**最後更新**: 2026-08-24
|
|
15
15
|
**適用範圍**: 所有進行架構決策的軟體專案
|
|
16
16
|
**範疇**: universal
|
|
17
17
|
**產業標準**: ISO/IEC/IEEE 42010(架構描述)、TOGAF ADR
|
|
@@ -89,6 +89,23 @@ status: current
|
|
|
89
89
|
- [相關 ADR、SPEC、PR 或外部參考]
|
|
90
90
|
```
|
|
91
91
|
|
|
92
|
+
> 此範本中記下的**延後項目**(`Consequences` 下的既受風險與負面後果、被考慮而未採用的選項)適用 [deferred-item-exit](deferred-item-exit.md)。
|
|
93
|
+
|
|
94
|
+
---
|
|
95
|
+
|
|
96
|
+
## 驗收標準只在 SPEC 維護一份
|
|
97
|
+
|
|
98
|
+
一份 ADR 記錄的是**決策**,它不帶自己的一份驗收標準。當一個決策有驗收標準時,
|
|
99
|
+
它們**只在一處維護——SPEC**,而 ADR 以連結(`Technical Story` 或 `Links`)指向它。
|
|
100
|
+
|
|
101
|
+
一份被複製的 AC 清單有兩個擁有者,而只有其中一個會被更新。實測後果是:
|
|
102
|
+
實作完成、SPEC 的勾選框打勾,ADR 那一份**整份留在未勾選狀態**——
|
|
103
|
+
讀 ADR 的人於是認為什麼都沒做,而讀 SPEC 的 AC 覆蓋率工具**根本看不到 ADR 裡那一份**。
|
|
104
|
+
|
|
105
|
+
> 本條是關於 **AC 在哪裡維護**的邊界規則,不涉及 AC 的寫法或標註慣例。
|
|
106
|
+
> AC 格式見 [spec-driven-development](spec-driven-development.md);
|
|
107
|
+
> AC 對驗證項的可追溯性見 [acceptance-criteria-traceability](acceptance-criteria-traceability.md)。
|
|
108
|
+
|
|
92
109
|
---
|
|
93
110
|
|
|
94
111
|
## ADR 編號
|
|
@@ -187,6 +204,8 @@ docs/adr/
|
|
|
187
204
|
- [ ] **狀態**設定正確
|
|
188
205
|
- [ ] **連結**到相關工件
|
|
189
206
|
- [ ] 檔案存放在 `docs/adr/` 且命名正確
|
|
207
|
+
- [ ] **沒有任何驗收標準被複製進 ADR** — 一律連結到維護它們的那份 SPEC
|
|
208
|
+
- [ ] 每一個**延後項目**都載明其出口的識別字([deferred-item-exit](deferred-item-exit.md))
|
|
190
209
|
|
|
191
210
|
---
|
|
192
211
|
|
|
@@ -200,6 +219,8 @@ docs/adr/
|
|
|
200
219
|
| 沒有後果分析 | 分析不完整 | 一定要列出正面和負面結果 |
|
|
201
220
|
| 背景模糊 | 對未來讀者無用 | 包含具體的限制條件和驅動因素 |
|
|
202
221
|
| 編輯已接受的 ADR | 歷史遺失 | 改用取代(Supersede)而非編輯 |
|
|
222
|
+
| 把 SPEC 的驗收標準複製進 ADR | 兩個擁有者、只有一個會更新;ADR 那份留在未勾選,覆蓋率工具也看不到它 | 只在 SPEC 保留一份,並以連結指向 |
|
|
223
|
+
| 既受風險沒有出口 | ADR 是唯一的載體,而它現在已被核准 | 給它一個出口,並在此載明該出口 |
|
|
203
224
|
|
|
204
225
|
---
|
|
205
226
|
|
|
@@ -8,6 +8,13 @@ status: current
|
|
|
8
8
|
|
|
9
9
|
# Agent 通訊協定
|
|
10
10
|
|
|
11
|
+
<!-- UDS:REFERENCE-ONLY since=6.0.0 -->
|
|
12
|
+
> **僅供參考——UDS 不會安裝這條標準。** 它的機器可讀檔 `.ai.yaml` 已於 6.0.0 移除;
|
|
13
|
+
> 本文件保留在此,供實作它的採用層參考,**不由 `uds init` 或 `uds update` 出貨**。
|
|
14
|
+
> 本告示所對照的清單是
|
|
15
|
+
> [`scripts/reference-only-standards.json`](../../../scripts/reference-only-standards.json),
|
|
16
|
+
> 遷移紀錄見 [`docs/MIGRATION-v6.md`](../../../docs/MIGRATION-v6.md) §2。
|
|
17
|
+
|
|
11
18
|
> **語言**: [English](../../../core/agent-communication-protocol.md) | 繁體中文
|
|
12
19
|
|
|
13
20
|
**版本**: 1.0.0
|
|
@@ -8,6 +8,13 @@ status: current
|
|
|
8
8
|
|
|
9
9
|
# 分支完成工作流程
|
|
10
10
|
|
|
11
|
+
<!-- UDS:REFERENCE-ONLY since=6.0.0 -->
|
|
12
|
+
> **僅供參考——UDS 不會安裝這條標準。** 它的機器可讀檔 `.ai.yaml` 已於 6.0.0 移除;
|
|
13
|
+
> 本文件保留在此,供實作它的採用層參考,**不由 `uds init` 或 `uds update` 出貨**。
|
|
14
|
+
> 本告示所對照的清單是
|
|
15
|
+
> [`scripts/reference-only-standards.json`](../../../scripts/reference-only-standards.json),
|
|
16
|
+
> 遷移紀錄見 [`docs/MIGRATION-v6.md`](../../../docs/MIGRATION-v6.md) §2。
|
|
17
|
+
|
|
11
18
|
> **語言**: [English](../../../core/branch-completion.md) | 繁體中文
|
|
12
19
|
|
|
13
20
|
**版本**: 1.0.0
|
|
@@ -8,6 +8,13 @@ status: current
|
|
|
8
8
|
|
|
9
9
|
# 變更批次標準
|
|
10
10
|
|
|
11
|
+
<!-- UDS:REFERENCE-ONLY since=6.0.0 -->
|
|
12
|
+
> **僅供參考——UDS 不會安裝這條標準。** 它的機器可讀檔 `.ai.yaml` 已於 6.0.0 移除;
|
|
13
|
+
> 本文件保留在此,供實作它的採用層參考,**不由 `uds init` 或 `uds update` 出貨**。
|
|
14
|
+
> 本告示所對照的清單是
|
|
15
|
+
> [`scripts/reference-only-standards.json`](../../../scripts/reference-only-standards.json),
|
|
16
|
+
> 遷移紀錄見 [`docs/MIGRATION-v6.md`](../../../docs/MIGRATION-v6.md) §2。
|
|
17
|
+
|
|
11
18
|
> **語言**: [English](../../../core/change-batching-standards.md) | 繁體中文
|
|
12
19
|
|
|
13
20
|
**適用範圍**: 所有使用自動化開發流程的軟體專案
|