universal-dev-standards 5.3.1 → 5.3.2
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,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
source: ../../CHANGELOG.md
|
|
3
|
-
source_version: 5.3.
|
|
4
|
-
translation_version: 5.3.
|
|
3
|
+
source_version: 5.3.2
|
|
4
|
+
translation_version: 5.3.2
|
|
5
5
|
last_synced: 2026-04-27
|
|
6
6
|
status: current
|
|
7
7
|
---
|
|
@@ -17,6 +17,13 @@ status: current
|
|
|
17
17
|
|
|
18
18
|
## [Unreleased]
|
|
19
19
|
|
|
20
|
+
## [5.3.2] - 2026-04-27
|
|
21
|
+
|
|
22
|
+
> **修补版本发布**:Bug 修复 —— `uds update -y` 现在会自动安装/更新 Skills 和 Commands,不再只显示提示信息。
|
|
23
|
+
|
|
24
|
+
### 修复
|
|
25
|
+
- **`uds update --yes` / `-y`**(`cli/src/commands/update.js`):`--yes` 标志此前对 Skills 和 Commands 安装完全跳过,只显示「New features available」提示。现在与交互模式行为一致 —— 缺少的 Skills/Commands 立即安装,过时的直接更新,并同步刷新 manifest 与集成文件。修复了 `uds update -y` 让 `.claude/` Skills 保持不变而交互式 `uds update` 正常更新的行为差异。
|
|
26
|
+
|
|
20
27
|
## [5.3.1] - 2026-04-27
|
|
21
28
|
|
|
22
29
|
> **修补版本发布**:Bug 修复 —— `uds update` 后 `uds check` 不再误报「AGENTS.md 标准不同步」。
|
|
@@ -14,7 +14,7 @@ status: current
|
|
|
14
14
|
|
|
15
15
|
> **语言**: [English](../../README.md) | [繁體中文](../zh-TW/README.md) | 简体中文
|
|
16
16
|
|
|
17
|
-
**版本**: 5.3.
|
|
17
|
+
**版本**: 5.3.2 | **发布日期**: 2026-04-13 | **授权**: [双重授权](../../LICENSE) (CC BY 4.0 + MIT)
|
|
18
18
|
|
|
19
19
|
语言无关、框架无关的软件项目文档标准。通过 AI 原生工作流,确保不同技术栈之间的一致性、质量和可维护性。
|
|
20
20
|
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
source: ../../CHANGELOG.md
|
|
3
|
-
source_version: 5.3.
|
|
4
|
-
translation_version: 5.3.
|
|
3
|
+
source_version: 5.3.2
|
|
4
|
+
translation_version: 5.3.2
|
|
5
5
|
last_synced: 2026-04-27
|
|
6
6
|
status: current
|
|
7
7
|
---
|
|
@@ -17,6 +17,13 @@ status: current
|
|
|
17
17
|
|
|
18
18
|
## [Unreleased]
|
|
19
19
|
|
|
20
|
+
## [5.3.2] - 2026-04-27
|
|
21
|
+
|
|
22
|
+
> **修補版本發布**:Bug 修復 —— `uds update -y` 現在會自動安裝/更新 Skills 和 Commands,不再只顯示提示訊息。
|
|
23
|
+
|
|
24
|
+
### 修復
|
|
25
|
+
- **`uds update --yes` / `-y`**(`cli/src/commands/update.js`):`--yes` 旗標先前對 Skills 和 Commands 安裝完全跳過,只顯示「New features available」提示。現在與互動模式行為一致 —— 缺少的 Skills/Commands 立即安裝,過時的直接更新,並同步刷新 manifest 與整合檔案。修復了 `uds update -y` 讓 `.claude/` Skills 保持不變而互動式 `uds update` 正常更新的行為差異。
|
|
26
|
+
|
|
20
27
|
## [5.3.1] - 2026-04-27
|
|
21
28
|
|
|
22
29
|
> **修補版本發布**:Bug 修復 —— `uds update` 後 `uds check` 不再誤報「AGENTS.md 標準不同步」。
|
|
@@ -14,7 +14,7 @@ status: current
|
|
|
14
14
|
|
|
15
15
|
> **語言**: [English](../../README.md) | 繁體中文 | [简体中文](../zh-CN/README.md)
|
|
16
16
|
|
|
17
|
-
**版本**: 5.3.
|
|
17
|
+
**版本**: 5.3.2 | **發布日期**: 2026-04-13 | **授權**: [雙重授權](../../LICENSE) (CC BY 4.0 + MIT)
|
|
18
18
|
|
|
19
19
|
語言無關、框架無關的軟體專案文件標準。透過 AI 原生工作流,確保不同技術堆疊之間的一致性、品質和可維護性。
|
|
20
20
|
|
package/package.json
CHANGED
package/src/commands/update.js
CHANGED
|
@@ -967,24 +967,96 @@ export async function updateCommand(options) {
|
|
|
967
967
|
writeManifest(manifest, projectPath);
|
|
968
968
|
}
|
|
969
969
|
} else {
|
|
970
|
-
// --yes mode:
|
|
971
|
-
|
|
972
|
-
|
|
970
|
+
// --yes mode: auto-install/update Skills and Commands (treat -y as confirming all prompts)
|
|
971
|
+
const skillsLocale = resolveLocale(manifest, projectPath);
|
|
972
|
+
let hasChanges = false;
|
|
973
|
+
|
|
973
974
|
if (missingSkills.length > 0) {
|
|
974
|
-
const
|
|
975
|
-
|
|
975
|
+
const spinner = ora(msg.installingNewSkills || 'Installing Skills...').start();
|
|
976
|
+
const result = await installSkillsToMultipleAgents(missingSkills, null, projectPath, skillsLocale);
|
|
977
|
+
if (!manifest.skills) manifest.skills = {};
|
|
978
|
+
manifest.skills.installed = true;
|
|
979
|
+
manifest.skills.version = repoInfo.skills.version;
|
|
980
|
+
manifest.skills.installations = [...(manifest.skills.installations || []), ...missingSkills];
|
|
981
|
+
if (result.allFileHashes) {
|
|
982
|
+
if (!manifest.skillHashes) manifest.skillHashes = {};
|
|
983
|
+
Object.assign(manifest.skillHashes, result.allFileHashes);
|
|
984
|
+
}
|
|
985
|
+
if (result.totalErrors === 0) {
|
|
986
|
+
spinner.succeed((msg.newSkillsInstalled || 'Installed Skills for {count} AI tools').replace('{count}', missingSkills.length));
|
|
987
|
+
} else {
|
|
988
|
+
spinner.warn((msg.newSkillsInstalledWithErrors || 'Installed Skills with {errors} errors').replace('{errors}', result.totalErrors));
|
|
989
|
+
}
|
|
990
|
+
hasChanges = true;
|
|
976
991
|
}
|
|
992
|
+
|
|
977
993
|
if (outdatedSkills.length > 0) {
|
|
978
|
-
const
|
|
979
|
-
|
|
994
|
+
const spinner = ora(msg.updatingSkills || 'Updating Skills...').start();
|
|
995
|
+
const result = await installSkillsToMultipleAgents(outdatedSkills, null, projectPath, skillsLocale);
|
|
996
|
+
if (!manifest.skills) manifest.skills = {};
|
|
997
|
+
manifest.skills.version = repoInfo.skills.version;
|
|
998
|
+
if (!manifest.skills.location && manifest.skills.installations?.length > 0) {
|
|
999
|
+
const levels = manifest.skills.installations.map(s => s.level).filter(Boolean);
|
|
1000
|
+
const uniqueLevels = [...new Set(levels)];
|
|
1001
|
+
manifest.skills.location = uniqueLevels.length === 1 ? uniqueLevels[0] : (uniqueLevels.length > 1 ? 'multiple' : undefined);
|
|
1002
|
+
}
|
|
1003
|
+
if (result.allFileHashes) {
|
|
1004
|
+
if (!manifest.skillHashes) manifest.skillHashes = {};
|
|
1005
|
+
Object.assign(manifest.skillHashes, result.allFileHashes);
|
|
1006
|
+
}
|
|
1007
|
+
if (result.totalErrors === 0) {
|
|
1008
|
+
spinner.succeed((msg.skillsUpdated || 'Updated Skills for {count} AI tools').replace('{count}', outdatedSkills.length));
|
|
1009
|
+
} else {
|
|
1010
|
+
spinner.warn((msg.skillsUpdatedWithErrors || 'Updated Skills with {errors} errors').replace('{errors}', result.totalErrors));
|
|
1011
|
+
}
|
|
1012
|
+
hasChanges = true;
|
|
980
1013
|
}
|
|
1014
|
+
|
|
981
1015
|
if (missingCommands.length > 0) {
|
|
982
|
-
const
|
|
983
|
-
|
|
1016
|
+
const spinner = ora(msg.installingNewCommands || 'Installing commands...').start();
|
|
1017
|
+
const result = await installCommandsToMultipleAgents(missingCommands, null, projectPath, skillsLocale);
|
|
1018
|
+
if (!manifest.commands) manifest.commands = {};
|
|
1019
|
+
manifest.commands.installed = true;
|
|
1020
|
+
manifest.commands.version = repoInfo.skills.version;
|
|
1021
|
+
manifest.commands.installations = [...(manifest.commands.installations || []), ...missingCommands];
|
|
1022
|
+
if (result.allFileHashes) {
|
|
1023
|
+
if (!manifest.commandHashes) manifest.commandHashes = {};
|
|
1024
|
+
replaceCommandHashesForUpdatedAgents(manifest.commandHashes, result.allFileHashes);
|
|
1025
|
+
}
|
|
1026
|
+
if (result.totalErrors === 0) {
|
|
1027
|
+
spinner.succeed((msg.newCommandsInstalled || 'Installed commands for {count} AI tools').replace('{count}', missingCommands.length));
|
|
1028
|
+
} else {
|
|
1029
|
+
spinner.warn((msg.newCommandsInstalledWithErrors || 'Installed commands with {errors} errors').replace('{errors}', result.totalErrors));
|
|
1030
|
+
}
|
|
1031
|
+
hasChanges = true;
|
|
984
1032
|
}
|
|
1033
|
+
|
|
985
1034
|
if (outdatedCommands.length > 0) {
|
|
986
|
-
const
|
|
987
|
-
|
|
1035
|
+
const spinner = ora(msg.updatingCommands || 'Updating Commands...').start();
|
|
1036
|
+
const result = await installCommandsToMultipleAgents(outdatedCommands, null, projectPath, skillsLocale);
|
|
1037
|
+
if (!manifest.commands) manifest.commands = {};
|
|
1038
|
+
manifest.commands.version = repoInfo.skills.version;
|
|
1039
|
+
if (result.allFileHashes) {
|
|
1040
|
+
if (!manifest.commandHashes) manifest.commandHashes = {};
|
|
1041
|
+
replaceCommandHashesForUpdatedAgents(manifest.commandHashes, result.allFileHashes);
|
|
1042
|
+
}
|
|
1043
|
+
if (result.totalErrors === 0) {
|
|
1044
|
+
spinner.succeed((msg.commandsUpdated || 'Updated Commands for {count} AI tools').replace('{count}', outdatedCommands.length));
|
|
1045
|
+
} else {
|
|
1046
|
+
spinner.warn((msg.commandsUpdatedWithErrors || 'Updated Commands with {errors} errors').replace('{errors}', result.totalErrors));
|
|
1047
|
+
}
|
|
1048
|
+
hasChanges = true;
|
|
1049
|
+
}
|
|
1050
|
+
|
|
1051
|
+
if (hasChanges) {
|
|
1052
|
+
if (missingSkills.length > 0 || outdatedSkills.length > 0) {
|
|
1053
|
+
const regenResult = regenerateIntegrations(projectPath, manifest);
|
|
1054
|
+
if (regenResult.updated.length > 0) {
|
|
1055
|
+
console.log(chalk.green(` ✓ ${msg.syncedIntegrations.replace('{count}', regenResult.updated.length)}`));
|
|
1056
|
+
}
|
|
1057
|
+
}
|
|
1058
|
+
refreshIntegrationBlockHashes(manifest, projectPath);
|
|
1059
|
+
writeManifest(manifest, projectPath);
|
|
988
1060
|
}
|
|
989
1061
|
}
|
|
990
1062
|
}
|
package/standards-registry.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
3
|
-
"version": "5.3.
|
|
3
|
+
"version": "5.3.2",
|
|
4
4
|
"lastUpdated": "2026-04-16",
|
|
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.3.
|
|
61
|
+
"version": "5.3.2"
|
|
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.3.
|
|
68
|
+
"version": "5.3.2",
|
|
69
69
|
"note": "Skills are now included in the main repository under skills/"
|
|
70
70
|
}
|
|
71
71
|
},
|