universal-dev-standards 5.13.2 → 5.14.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.
@@ -1,8 +1,8 @@
1
1
  ---
2
2
  source: ../../CHANGELOG.md
3
- source_version: 5.13.2
4
- translation_version: 5.13.2
5
- last_synced: 2026-05-26
3
+ source_version: 5.14.0
4
+ translation_version: 5.14.0
5
+ last_synced: 2026-05-27
6
6
  status: current
7
7
  ---
8
8
 
@@ -17,6 +17,30 @@ status: current
17
17
 
18
18
  ## [Unreleased]
19
19
 
20
+ ## [5.14.0] - 2026-05-27
21
+
22
+ ### 新增
23
+ - **`.github/RELEASE-FLOW-TODOS.md`**:发版流程改善项目的持久追踪文件,记录 dogfood 过程中发现的问题。包含 TODO-001 ~ TODO-005(bump-version.mjs 自动执行 docs:generate-index、FB/Threads prompt 捕捉习惯、下次 bootstrap 验证 `_template/`、Phase 1.5 social-assets 硬闸、Phase 2 Meta API 自动发布 workflow)。维护者可直接编辑此文件新增或关闭项目。
24
+
25
+ ### 变更
26
+ - **`.github/workflows/release-reminder.yml`**:现在读取 `.github/RELEASE-FLOW-TODOS.md` 并将 open TODO 显示在每周一 09:00 UTC reminder issue 内文中。改善项目在每个发布周期持续累积,不再遗失在 commit history 里。
27
+
28
+ ### 修复
29
+ - **`cli/src/commands/check.js` — AI 工具集成 check 误报 missing 标准**:`uds check` 错误地将 `error-code-standards` 和 `logging-standards` 报告为 missing,即使实际 `.ai.yaml` 文件(`error-codes.ai.yaml`、`logging.ai.yaml`)已正确写入 `CLAUDE.md`。根因:`migrateStandardsPathsToIds()` 将 manifest 路径转为 registry ID(如 `ai/standards/error-codes.ai.yaml` → `error-code-standards`),但集成文件是以实际文件名生成的。check 现在从 registry 建立 `id → aiFilename` 查找表,在 ID 未直接出现于集成文件时以实际文件名进行第二次比对。
30
+
31
+ ## [5.13.3] - 2026-05-26
32
+
33
+ ### 修复
34
+ - **`scripts/pre-release-check.sh` Step 22.5 逻辑升级**:原始实作(v5.13.0)只接受 Pass A(`[Unreleased]` 非空)。CHANGELOG promotion(`[Unreleased]` → `[X.Y.Z]`)后该 section 正确清空但原 check 误判失败,需 `--skip-changelog` 绕过。新逻辑加 **Pass B(post-promotion)**:最新 dated section 是 today AND 有内容也 pass。并新增 **Fail D**:今日 dated section 存在但仅有 template。发版 v5.13.0 时 surface — gate 自己的 pre-release-check 退到 `--skip-changelog` 因为已是情境 B。
35
+
36
+ ### 备注(翻译回填)
37
+ - `locales/zh-TW/CHANGELOG.md` 与 `locales/zh-CN/CHANGELOG.md` 补回 v5.13.1 hotfix commit 时遗漏的 [5.13.1] section(Edit 工具当时遇到 tool-state 问题挡住这两份翻译)。
38
+
39
+ ## [5.13.1] - 2026-05-26 [PUBLISH 失败 — 见 5.13.2]
40
+
41
+ ### 修复
42
+ - **`.github/workflows/publish.yml` Clean-room Install Test(XSPEC-221 hotfix)**:在 alpine clean-room job 的 `npm install -g .` 之前新增 `npm ci --ignore-scripts` 步骤。
43
+
20
44
  ## [5.13.2] - 2026-05-26
21
45
 
22
46
  ### 修复
@@ -14,7 +14,7 @@ status: current
14
14
 
15
15
  > **语言**: [English](../../README.md) | [繁體中文](../zh-TW/README.md) | 简体中文
16
16
 
17
- **版本**: 5.13.2 | **发布日期**: 2026-05-26 | **授权**: [双重授权](../../LICENSE) (CC BY 4.0 + MIT)
17
+ **版本**: 5.14.0 | **发布日期**: 2026-05-26 | **授权**: [双重授权](../../LICENSE) (CC BY 4.0 + MIT)
18
18
 
19
19
  语言无关、框架无关的软件项目文档标准。通过 AI 原生工作流,确保不同技术栈之间的一致性、质量和可维护性。
20
20
 
@@ -13,7 +13,7 @@ status: current
13
13
  <!-- UDS_SUPPORTED_VERSIONS_START -->
14
14
  | 版本 | 支持状态 |
15
15
  |------|--------|
16
- | 5.13.0 | ✅ 最新正式版 |
16
+ | 5.13.2 | ✅ 最新正式版 |
17
17
  | < 5.0.0 | ❌ 已终止支持 |
18
18
  <!-- UDS_SUPPORTED_VERSIONS_END -->
19
19
 
@@ -1,8 +1,8 @@
1
1
  ---
2
2
  source: ../../CHANGELOG.md
3
- source_version: 5.13.2
4
- translation_version: 5.13.2
5
- last_synced: 2026-05-26
3
+ source_version: 5.14.0
4
+ translation_version: 5.14.0
5
+ last_synced: 2026-05-27
6
6
  status: current
7
7
  ---
8
8
 
@@ -17,6 +17,30 @@ status: current
17
17
 
18
18
  ## [Unreleased]
19
19
 
20
+ ## [5.14.0] - 2026-05-27
21
+
22
+ ### 新增
23
+ - **`.github/RELEASE-FLOW-TODOS.md`**:發版流程改善項目的持久追蹤檔案,記錄 dogfood 過程中發現的問題。包含 TODO-001 ~ TODO-005(bump-version.mjs 自動執行 docs:generate-index、FB/Threads prompt 捕捉習慣、下次 bootstrap 驗證 `_template/`、Phase 1.5 social-assets 硬閘、Phase 2 Meta API 自動發布 workflow)。維護者可直接編輯此檔案新增或關閉項目。
24
+
25
+ ### 變更
26
+ - **`.github/workflows/release-reminder.yml`**:現在讀取 `.github/RELEASE-FLOW-TODOS.md` 並將 open TODO 顯示在每週一 09:00 UTC reminder issue 內文中。改善項目在每個發布週期持續累積,不再遺失在 commit history 裡。
27
+
28
+ ### 修復
29
+ - **`cli/src/commands/check.js` — AI 工具整合 check 誤報 missing 標準**:`uds check` 錯誤地將 `error-code-standards` 和 `logging-standards` 報告為 missing,即使實際 `.ai.yaml` 檔案(`error-codes.ai.yaml`、`logging.ai.yaml`)已正確寫入 `CLAUDE.md`。根因:`migrateStandardsPathsToIds()` 將 manifest 路徑轉為 registry ID(如 `ai/standards/error-codes.ai.yaml` → `error-code-standards`),但整合檔案是以實際檔名生成的。check 現在從 registry 建立 `id → aiFilename` 查找表,在 ID 未直接出現於整合檔案時以實際檔名進行第二次比對。
30
+
31
+ ## [5.13.3] - 2026-05-26
32
+
33
+ ### 修復
34
+ - **`scripts/pre-release-check.sh` Step 22.5 邏輯升級**:原始實作(v5.13.0)只接受 Pass A(`[Unreleased]` 非空)。CHANGELOG promotion(`[Unreleased]` → `[X.Y.Z]`)後該 section 正確清空但原 check 誤判失敗,需 `--skip-changelog` 繞過。新邏輯加 **Pass B(post-promotion)**:最新 dated section 是 today AND 有內容也 pass。並新增 **Fail D**:今日 dated section 存在但僅有 template。發版 v5.13.0 時 surface — gate 自己的 pre-release-check 退到 `--skip-changelog` 因為已是情境 B。
35
+
36
+ ### 備註(翻譯回填)
37
+ - `locales/zh-TW/CHANGELOG.md` 與 `locales/zh-CN/CHANGELOG.md` 補回 v5.13.1 hotfix commit 時遺漏的 [5.13.1] section(Edit 工具當時遇到 tool-state 問題擋住這兩份翻譯)。
38
+
39
+ ## [5.13.1] - 2026-05-26 [PUBLISH 失敗 — 見 5.13.2]
40
+
41
+ ### 修復
42
+ - **`.github/workflows/publish.yml` Clean-room Install Test(XSPEC-221 hotfix)**:在 alpine clean-room job 的 `npm install -g .` 之前新增 `npm ci --ignore-scripts` 步驟。
43
+
20
44
  ## [5.13.2] - 2026-05-26
21
45
 
22
46
  ### 修復
@@ -14,7 +14,7 @@ status: current
14
14
 
15
15
  > **語言**: [English](../../README.md) | 繁體中文 | [简体中文](../zh-CN/README.md)
16
16
 
17
- **版本**: 5.13.2 | **發布日期**: 2026-05-26 | **授權**: [雙重授權](../../LICENSE) (CC BY 4.0 + MIT)
17
+ **版本**: 5.14.0 | **發布日期**: 2026-05-26 | **授權**: [雙重授權](../../LICENSE) (CC BY 4.0 + MIT)
18
18
 
19
19
  語言無關、框架無關的軟體專案文件標準。透過 AI 原生工作流,確保不同技術堆疊之間的一致性、品質和可維護性。
20
20
 
@@ -13,7 +13,7 @@ status: current
13
13
  <!-- UDS_SUPPORTED_VERSIONS_START -->
14
14
  | 版本 | 支援狀態 |
15
15
  |------|--------|
16
- | 5.13.0 | ✅ 最新正式版 |
16
+ | 5.13.2 | ✅ 最新正式版 |
17
17
  | < 5.0.0 | ❌ 已終止支援 |
18
18
  <!-- UDS_SUPPORTED_VERSIONS_END -->
19
19
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "universal-dev-standards",
3
- "version": "5.13.2",
3
+ "version": "5.14.0",
4
4
  "description": "CLI tool for adopting Universal Development Standards",
5
5
  "keywords": [
6
6
  "documentation",
@@ -1054,6 +1054,19 @@ function checkIntegrationFiles(manifest, projectPath, msg) {
1054
1054
  console.log(chalk.cyan(msg.aiToolIntegration));
1055
1055
 
1056
1056
  const standardsFiles = manifest.standards?.map(s => basename(s)) || [];
1057
+
1058
+ // Build a lookup map: registry ID → actual AI filename
1059
+ // Needed because some standards have IDs that differ from their .ai.yaml basename
1060
+ // (e.g. ID "error-code-standards" → file "error-codes.ai.yaml").
1061
+ // After migrateStandardsPathsToIds(), manifest.standards contains IDs, so a plain
1062
+ // content.includes(id) check would fail for these mismatched entries.
1063
+ const allRegistryStds = getAllStandards();
1064
+ const idToAiFilename = new Map(
1065
+ allRegistryStds
1066
+ .filter(s => s.source?.ai)
1067
+ .map(s => [s.id, basename(s.source.ai)])
1068
+ );
1069
+
1057
1070
  let hasIssues = false;
1058
1071
  let checkedCount = 0;
1059
1072
 
@@ -1093,8 +1106,14 @@ function checkIntegrationFiles(manifest, projectPath, msg) {
1093
1106
  const missingStandards = [];
1094
1107
 
1095
1108
  for (const stdFile of standardsFiles) {
1096
- // Check if standard is referenced in the file
1109
+ // Check if standard is referenced in the file.
1110
+ // stdFile is a registry ID (e.g. "error-code-standards") after manifest
1111
+ // migration. For standards where the ID doesn't match the .ai.yaml basename
1112
+ // (e.g. ID "error-code-standards" → file "error-codes.ai.yaml"), we must
1113
+ // also check the actual filename so those aren't falsely reported as missing.
1114
+ const aiFilename = idToAiFilename.get(stdFile);
1097
1115
  const isReferenced = content.includes(stdFile) ||
1116
+ (aiFilename !== undefined && aiFilename !== stdFile && content.includes(aiFilename)) ||
1098
1117
  content.includes(`.standards/${stdFile}`) ||
1099
1118
  content.includes(`standards/${stdFile}`);
1100
1119
 
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "$schema": "https://json-schema.org/draft/2020-12/schema",
3
- "version": "5.13.2",
3
+ "version": "5.14.0",
4
4
  "lastUpdated": "2026-05-13",
5
5
  "description": "Standards registry for universal-dev-standards with integrated skills and AI-optimized formats",
6
6
  "formats": {
@@ -58,14 +58,14 @@
58
58
  "standards": {
59
59
  "name": "universal-dev-standards",
60
60
  "url": "https://github.com/AsiaOstrich/universal-dev-standards",
61
- "version": "5.13.2"
61
+ "version": "5.14.0"
62
62
  },
63
63
  "skills": {
64
64
  "name": "universal-dev-standards",
65
65
  "url": "https://github.com/AsiaOstrich/universal-dev-standards",
66
66
  "localPath": "skills",
67
67
  "rawUrl": "https://raw.githubusercontent.com/AsiaOstrich/universal-dev-standards/main/skills",
68
- "version": "5.13.2",
68
+ "version": "5.14.0",
69
69
  "note": "Skills are now included in the main repository under skills/"
70
70
  }
71
71
  },
@@ -2338,7 +2338,7 @@
2338
2338
  "id": "license-compliance",
2339
2339
  "name": "License Compliance Standards",
2340
2340
  "nameZh": "授權合規標準",
2341
- "version": "5.13.2",
2341
+ "version": "5.14.0",
2342
2342
  "source": {
2343
2343
  "human": "core/license-compliance.md",
2344
2344
  "ai": "ai/standards/license-compliance.ai.yaml"