universal-dev-standards 6.2.7 → 6.2.8
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 +8 -2
- package/bundled/locales/zh-CN/README.md +1 -1
- package/bundled/locales/zh-CN/SECURITY.md +1 -1
- package/bundled/locales/zh-TW/CHANGELOG.md +8 -2
- package/bundled/locales/zh-TW/README.md +1 -1
- package/bundled/locales/zh-TW/SECURITY.md +1 -1
- package/package.json +1 -1
- package/src/utils/github.js +26 -7
- package/standards-registry.json +7 -7
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
source: ../../CHANGELOG.md
|
|
3
|
-
source_version: 6.2.
|
|
4
|
-
translation_version: 6.2.
|
|
3
|
+
source_version: 6.2.8
|
|
4
|
+
translation_version: 6.2.8
|
|
5
5
|
last_synced: 2026-07-31
|
|
6
6
|
status: current
|
|
7
7
|
---
|
|
@@ -17,6 +17,12 @@ status: current
|
|
|
17
17
|
|
|
18
18
|
## [Unreleased]
|
|
19
19
|
|
|
20
|
+
## [6.2.8] - 2026-07-31
|
|
21
|
+
|
|
22
|
+
### 修复
|
|
23
|
+
|
|
24
|
+
- **下载回来的标准,中文是坏的。** HTTPS 响应以 `data += chunk` 累积,而那会对每一个分块各自解码——于是任何字节跨在分块边界上的字符都变成替换字符(`日期` → `日�期`)。单字节的拉丁文不受影响;三字节的中日韩文字受影响。**过程中没有任何一步失败**:传输完成、文件写入、动作报告成功,损坏只有读文字才看得见。在一台机器上实测,**11 个项目的已安装标准里共约 278 个替换字符**。损害集中在 `requirement-checklist.md`、`requirement-template.md`、`requirement-document-template.md` 与 locale 包——也就是发布包不出货的那些文件(`files` 不含 `templates/` 与 `extensions/`),它们只可能靠下载取得。**若你的标准里有 `�`,请在 6.2.8 以上跑 `uds update --force`——重新下载的内容是正确的,会覆盖掉它们。**
|
|
25
|
+
|
|
20
26
|
## [6.2.7] - 2026-07-31
|
|
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.2.
|
|
18
|
+
**版本**: 6.2.8 | **发布日期**: 2026-07-31 | **授权**: [双重授权](../../LICENSE) (CC BY 4.0 + MIT)
|
|
19
19
|
|
|
20
20
|
语言无关、框架无关的软件项目文档标准。通过 AI 原生工作流,确保不同技术栈之间的一致性、质量和可维护性。
|
|
21
21
|
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
source: ../../CHANGELOG.md
|
|
3
|
-
source_version: 6.2.
|
|
4
|
-
translation_version: 6.2.
|
|
3
|
+
source_version: 6.2.8
|
|
4
|
+
translation_version: 6.2.8
|
|
5
5
|
last_synced: 2026-07-31
|
|
6
6
|
status: current
|
|
7
7
|
---
|
|
@@ -17,6 +17,12 @@ status: current
|
|
|
17
17
|
|
|
18
18
|
## [Unreleased]
|
|
19
19
|
|
|
20
|
+
## [6.2.8] - 2026-07-31
|
|
21
|
+
|
|
22
|
+
### 修復
|
|
23
|
+
|
|
24
|
+
- **下載回來的標準,中文是壞的。** HTTPS 回應以 `data += chunk` 累積,而那會對每一個分塊各自解碼——於是任何位元組跨在分塊邊界上的字元都變成替換字元(`日期` → `日�期`)。單位元組的拉丁文不受影響;三位元組的中日韓文字受影響。**過程中沒有任何一步失敗**:傳輸完成、檔案寫入、動作回報成功,損壞只有讀文字才看得見。在一台機器上實測,**11 個專案的已安裝標準裡共約 278 個替換字元**。損害集中在 `requirement-checklist.md`、`requirement-template.md`、`requirement-document-template.md` 與 locale 包——也就是發布包不出貨的那些檔(`files` 不含 `templates/` 與 `extensions/`),它們只可能靠下載取得。**若你的標準裡有 `�`,請在 6.2.8 以上跑 `uds update --force`——重新下載的內容是正確的,會覆蓋掉它們。**
|
|
25
|
+
|
|
20
26
|
## [6.2.7] - 2026-07-31
|
|
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.2.
|
|
18
|
+
**版本**: 6.2.8 | **發布日期**: 2026-07-31 | **授權**: [雙重授權](../../LICENSE) (CC BY 4.0 + MIT)
|
|
19
19
|
|
|
20
20
|
語言無關、框架無關的軟體專案文件標準。透過 AI 原生工作流,確保不同技術堆疊之間的一致性、品質和可維護性。
|
|
21
21
|
|
package/package.json
CHANGED
package/src/utils/github.js
CHANGED
|
@@ -90,13 +90,32 @@ function httpGet(url) {
|
|
|
90
90
|
return;
|
|
91
91
|
}
|
|
92
92
|
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
93
|
+
// Collect Buffers and decode once at the end. `data += chunk` decoded each
|
|
94
|
+
// chunk on its own, so any character whose bytes straddled a chunk boundary
|
|
95
|
+
// became U+FFFD on both sides of the split. Latin text survived because its
|
|
96
|
+
// characters are one byte; Chinese standards are three bytes each and did
|
|
97
|
+
// not. `uds update --force` on one project downloaded four files and wrote
|
|
98
|
+
// 30 replacement characters into them — `日期` → `日�期`, `結構` → `結�構`
|
|
99
|
+
// — and reported every action as succeeded, because as far as the CLI was
|
|
100
|
+
// concerned the transfer completed and the file was written. (XSPEC-343)
|
|
101
|
+
const chunks = [];
|
|
102
|
+
res.on('data', chunk => chunks.push(Buffer.isBuffer(chunk) ? chunk : Buffer.from(chunk)));
|
|
103
|
+
res.on('end', () => {
|
|
104
|
+
// try/catch because a throw inside an event handler does not reject the
|
|
105
|
+
// enclosing promise — it escapes, and the caller's await hangs forever.
|
|
106
|
+
// The first draft of this fix passed strings to Buffer.concat and the
|
|
107
|
+
// test run simply stopped, with no error to read. A hang is a worse
|
|
108
|
+
// failure than an exception: there is nothing to grep for.
|
|
109
|
+
try {
|
|
110
|
+
resolve({
|
|
111
|
+
data: Buffer.concat(chunks).toString('utf8'),
|
|
112
|
+
statusCode: res.statusCode,
|
|
113
|
+
headers: res.headers
|
|
114
|
+
});
|
|
115
|
+
} catch (err) {
|
|
116
|
+
reject(err);
|
|
117
|
+
}
|
|
118
|
+
});
|
|
100
119
|
res.on('error', reject);
|
|
101
120
|
}).on('error', reject);
|
|
102
121
|
});
|
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.2.
|
|
3
|
+
"version": "6.2.8",
|
|
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.2.
|
|
61
|
+
"version": "6.2.8"
|
|
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.2.
|
|
68
|
+
"version": "6.2.8",
|
|
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.2.
|
|
2239
|
+
"version": "6.2.8",
|
|
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.2.
|
|
2251
|
+
"version": "6.2.8",
|
|
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.2.
|
|
2263
|
+
"version": "6.2.8",
|
|
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.2.
|
|
2275
|
+
"version": "6.2.8",
|
|
2276
2276
|
"source": {
|
|
2277
2277
|
"human": "core/resource-cost-boundary.md",
|
|
2278
2278
|
"ai": "ai/standards/resource-cost-boundary.ai.yaml"
|