universal-dev-standards 6.3.8 → 6.3.9
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/bundled/locales/zh-CN/CHANGELOG.md +9 -3
- package/bundled/locales/zh-CN/README.md +1 -1
- package/bundled/locales/zh-TW/CHANGELOG.md +9 -3
- package/bundled/locales/zh-TW/README.md +1 -1
- package/package.json +1 -1
- package/src/utils/integration-generator.js +27 -6
- package/standards-registry.json +7 -7
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
---
|
|
2
2
|
source: ../../CHANGELOG.md
|
|
3
|
-
source_version: 6.3.
|
|
4
|
-
translation_version: 6.3.
|
|
5
|
-
last_synced: 2026-08-
|
|
3
|
+
source_version: 6.3.9
|
|
4
|
+
translation_version: 6.3.9
|
|
5
|
+
last_synced: 2026-08-09
|
|
6
6
|
status: current
|
|
7
7
|
---
|
|
8
8
|
|
|
@@ -17,6 +17,12 @@ status: current
|
|
|
17
17
|
|
|
18
18
|
## [Unreleased]
|
|
19
19
|
|
|
20
|
+
## [6.3.9] - 2026-08-09
|
|
21
|
+
|
|
22
|
+
### 修复
|
|
23
|
+
|
|
24
|
+
- **标准索引声明的数字與 sync 检查对不上,而两者描述的是同一份 manifest。** 6.3.8 让检查改為透過 registry 解析 manifest 项目;而索引区块仍直接声明 manifest 的 `installedStandards.length`。在一個真实项目上那是 78 對 70,差额正是 `MIGRATION-v6` §2 於 6.0.0 移除的八個机器可读标准——它们在兩個主版本之后仍声明於 manifest 中,因为 `uds update` 不会修剪它们。撇开检查不谈,七十八本来就是错的数字:它就写在「權威清單為 `.standards/manifest.json` 的 `standards` 字段」正上方——把读者指向这个差異的来源、仿佛那就解決了它——并且告訴 agent 去期待八個并不存在的文件。区块现在数的是解析得到文件的项目,其余在下方指名並说明它们为何还在,于是兩個数字都会出现,都不必靠推测。
|
|
25
|
+
|
|
20
26
|
## [6.3.8] - 2026-08-08
|
|
21
27
|
|
|
22
28
|
### 修复
|
|
@@ -15,7 +15,7 @@ status: current
|
|
|
15
15
|
|
|
16
16
|
> **语言**: [English](../../README.md) | [繁體中文](../zh-TW/README.md) | 简体中文
|
|
17
17
|
|
|
18
|
-
**版本**: 6.3.
|
|
18
|
+
**版本**: 6.3.9 | **发布日期**: 2026-07-31 | **授权**: [双重授权](../../LICENSE) (CC BY 4.0 + MIT)
|
|
19
19
|
|
|
20
20
|
语言无关、框架无关的软件项目文档标准。通过 AI 原生工作流,确保不同技术栈之间的一致性、质量和可维护性。
|
|
21
21
|
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
---
|
|
2
2
|
source: ../../CHANGELOG.md
|
|
3
|
-
source_version: 6.3.
|
|
4
|
-
translation_version: 6.3.
|
|
5
|
-
last_synced: 2026-08-
|
|
3
|
+
source_version: 6.3.9
|
|
4
|
+
translation_version: 6.3.9
|
|
5
|
+
last_synced: 2026-08-09
|
|
6
6
|
status: current
|
|
7
7
|
---
|
|
8
8
|
|
|
@@ -17,6 +17,12 @@ status: current
|
|
|
17
17
|
|
|
18
18
|
## [Unreleased]
|
|
19
19
|
|
|
20
|
+
## [6.3.9] - 2026-08-09
|
|
21
|
+
|
|
22
|
+
### 修正
|
|
23
|
+
|
|
24
|
+
- **標準索引宣告的數字與 sync 檢查對不上,而兩者描述的是同一份 manifest。** 6.3.8 讓檢查改為透過 registry 解析 manifest 項目;而索引區塊仍直接宣告 manifest 的 `installedStandards.length`。在一個真實專案上那是 78 對 70,差額正是 `MIGRATION-v6` §2 於 6.0.0 移除的八個機器可讀標準——它們在兩個主版本之後仍宣告於 manifest 中,因為 `uds update` 不會修剪它們。撇開檢查不談,七十八本來就是錯的數字:它就寫在「權威清單為 `.standards/manifest.json` 的 `standards` 欄位」正上方——把讀者指向這個差異的來源、彷彿那就解決了它——並且告訴 agent 去期待八個並不存在的檔案。區塊現在數的是解析得到檔案的項目,其餘在下方指名並說明它們為何還在,於是兩個數字都會出現,都不必用推的。
|
|
25
|
+
|
|
20
26
|
## [6.3.8] - 2026-08-08
|
|
21
27
|
|
|
22
28
|
### 修正
|
|
@@ -15,7 +15,7 @@ status: current
|
|
|
15
15
|
|
|
16
16
|
> **語言**: [English](../../README.md) | 繁體中文 | [简体中文](../zh-CN/README.md)
|
|
17
17
|
|
|
18
|
-
**版本**: 6.3.
|
|
18
|
+
**版本**: 6.3.9 | **發布日期**: 2026-07-31 | **授權**: [雙重授權](../../LICENSE) (CC BY 4.0 + MIT)
|
|
19
19
|
|
|
20
20
|
語言無關、框架無關的軟體專案文件標準。透過 AI 原生工作流,確保不同技術堆疊之間的一致性、品質和可維護性。
|
|
21
21
|
|
package/package.json
CHANGED
|
@@ -2754,7 +2754,8 @@ export function generateIntegrationContent(config) {
|
|
|
2754
2754
|
const standardsIndex = generateStandardsIndex(
|
|
2755
2755
|
installedStandards,
|
|
2756
2756
|
format,
|
|
2757
|
-
language
|
|
2757
|
+
language,
|
|
2758
|
+
standardsFormat
|
|
2758
2759
|
);
|
|
2759
2760
|
|
|
2760
2761
|
standardsContent += complianceInstructions + '\n\n' + standardsIndex;
|
|
@@ -3042,13 +3043,27 @@ export function generateComplianceInstructions(
|
|
|
3042
3043
|
* @param {string} language - Language: 'en', 'zh-tw', or 'bilingual'
|
|
3043
3044
|
* @returns {string} Generated standards index
|
|
3044
3045
|
*/
|
|
3045
|
-
export function generateStandardsIndex(installedStandards, format, language = 'zh-tw') {
|
|
3046
|
+
export function generateStandardsIndex(installedStandards, format, language = 'zh-tw', standardsFormat = 'ai') {
|
|
3046
3047
|
if (!installedStandards || installedStandards.length === 0) {
|
|
3047
3048
|
return '';
|
|
3048
3049
|
}
|
|
3049
3050
|
|
|
3050
|
-
|
|
3051
|
-
|
|
3051
|
+
// Counted after resolution, so the number matches the files that exist.
|
|
3052
|
+
//
|
|
3053
|
+
// It used to be `installedStandards.length` straight off the manifest, which
|
|
3054
|
+
// includes entries with nothing behind them — the eight standards
|
|
3055
|
+
// MIGRATION-v6 §2 removed in 6.0.0 are still declared in manifests two
|
|
3056
|
+
// majors later. On dev-platform that made the block announce 78 while 70
|
|
3057
|
+
// resolve, and it announced it directly above "the authoritative list is the
|
|
3058
|
+
// `standards` field of `.standards/manifest.json`", pointing the reader at
|
|
3059
|
+
// the source of the discrepancy as if it settled it. The sync check counts
|
|
3060
|
+
// resolvable entries, so the two disagreed by exactly those eight.
|
|
3061
|
+
//
|
|
3062
|
+
// Saying 70 and naming the 8 is the honest version of both numbers.
|
|
3063
|
+
const resolvable = installedStandards.filter((e) => resolveStandardFilename(e, standardsFormat));
|
|
3064
|
+
const unresolved = installedStandards.filter((e) => !resolveStandardFilename(e, standardsFormat));
|
|
3065
|
+
const total = resolvable.length;
|
|
3066
|
+
const optionCount = resolvable.filter(
|
|
3052
3067
|
(p) => p.includes('/options/') || p.includes('\\options\\')
|
|
3053
3068
|
).length;
|
|
3054
3069
|
const coreCount = total - optionCount;
|
|
@@ -3059,12 +3074,18 @@ export function generateStandardsIndex(installedStandards, format, language = 'z
|
|
|
3059
3074
|
? [
|
|
3060
3075
|
`This project has adopted **${total}** UDS standards (${coreCount} core, ${optionCount} options), installed in \`.standards/\`.`,
|
|
3061
3076
|
'',
|
|
3062
|
-
'The authoritative list is the `standards` field of `.standards/manifest.json`. Read a standard\'s own file to see what it requires — and check its first line, which is where a deprecated standard says so.'
|
|
3077
|
+
'The authoritative list is the `standards` field of `.standards/manifest.json`. Read a standard\'s own file to see what it requires — and check its first line, which is where a deprecated standard says so.',
|
|
3078
|
+
...(unresolved.length > 0
|
|
3079
|
+
? ['', `${unresolved.length} further manifest entr${unresolved.length === 1 ? 'y has' : 'ies have'} no installed file and ${unresolved.length === 1 ? 'is' : 'are'} not counted above: ${unresolved.join(', ')}. Standards removed upstream stay in a manifest until someone drops them; \`uds update\` does not prune them.`]
|
|
3080
|
+
: [])
|
|
3063
3081
|
]
|
|
3064
3082
|
: [
|
|
3065
3083
|
`本專案採用 UDS 標準共 **${total}** 條(core ${coreCount}、options ${optionCount}),安裝於 \`.standards/\`。`,
|
|
3066
3084
|
'',
|
|
3067
|
-
'權威清單為 `.standards/manifest.json` 的 `standards` 欄位。要知道某標準要求什麼,讀它自己的檔案——並看第一行,已棄用的標準會在那裡寫明。'
|
|
3085
|
+
'權威清單為 `.standards/manifest.json` 的 `standards` 欄位。要知道某標準要求什麼,讀它自己的檔案——並看第一行,已棄用的標準會在那裡寫明。',
|
|
3086
|
+
...(unresolved.length > 0
|
|
3087
|
+
? ['', `另有 ${unresolved.length} 筆 manifest 項目沒有已安裝的檔案,未計入上方數字:${unresolved.join('、')}。上游移除的標準會留在 manifest 裡直到有人拿掉它;\`uds update\` 不會修剪它們。`]
|
|
3088
|
+
: [])
|
|
3068
3089
|
];
|
|
3069
3090
|
|
|
3070
3091
|
const plainBody = body.map((l) => l.replace(/`/g, ''));
|
package/standards-registry.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
3
|
-
"version": "6.3.
|
|
3
|
+
"version": "6.3.9",
|
|
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": "6.3.
|
|
61
|
+
"version": "6.3.9"
|
|
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": "6.3.
|
|
68
|
+
"version": "6.3.9",
|
|
69
69
|
"note": "Skills are now included in the main repository under skills/"
|
|
70
70
|
}
|
|
71
71
|
},
|
|
@@ -2236,7 +2236,7 @@
|
|
|
2236
2236
|
"id": "license-compliance",
|
|
2237
2237
|
"name": "License Compliance Standards",
|
|
2238
2238
|
"nameZh": "授權合規標準",
|
|
2239
|
-
"version": "6.3.
|
|
2239
|
+
"version": "6.3.9",
|
|
2240
2240
|
"source": {
|
|
2241
2241
|
"human": "core/license-compliance.md",
|
|
2242
2242
|
"ai": "ai/standards/license-compliance.ai.yaml"
|
|
@@ -2248,7 +2248,7 @@
|
|
|
2248
2248
|
"id": "verification-oracle",
|
|
2249
2249
|
"name": "Verification Oracle Standards",
|
|
2250
2250
|
"nameZh": "驗證 Oracle 標準",
|
|
2251
|
-
"version": "6.3.
|
|
2251
|
+
"version": "6.3.9",
|
|
2252
2252
|
"source": {
|
|
2253
2253
|
"human": "core/verification-oracle.md",
|
|
2254
2254
|
"ai": "ai/standards/verification-oracle.ai.yaml"
|
|
@@ -2260,7 +2260,7 @@
|
|
|
2260
2260
|
"id": "model-provenance",
|
|
2261
2261
|
"name": "Model Provenance Policy Standards",
|
|
2262
2262
|
"nameZh": "模型來源政策標準",
|
|
2263
|
-
"version": "6.3.
|
|
2263
|
+
"version": "6.3.9",
|
|
2264
2264
|
"source": {
|
|
2265
2265
|
"human": "core/model-provenance.md",
|
|
2266
2266
|
"ai": "ai/standards/model-provenance.ai.yaml"
|
|
@@ -2272,7 +2272,7 @@
|
|
|
2272
2272
|
"id": "resource-cost-boundary",
|
|
2273
2273
|
"name": "Resource / Cost Boundary Declaration Standards",
|
|
2274
2274
|
"nameZh": "資源/成本邊界宣告標準",
|
|
2275
|
-
"version": "6.3.
|
|
2275
|
+
"version": "6.3.9",
|
|
2276
2276
|
"source": {
|
|
2277
2277
|
"human": "core/resource-cost-boundary.md",
|
|
2278
2278
|
"ai": "ai/standards/resource-cost-boundary.ai.yaml"
|