universal-dev-standards 6.1.1 → 6.2.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/bundled/locales/zh-CN/CHANGELOG.md +33 -3
- package/bundled/locales/zh-CN/README.md +75 -33
- package/bundled/locales/zh-CN/SECURITY.md +1 -1
- package/bundled/locales/zh-CN/core/behavior-snapshot.md +2 -2
- package/bundled/locales/zh-CN/core/data-migration-testing.md +2 -2
- package/bundled/locales/zh-CN/docs/CHEATSHEET.md +4 -4
- package/bundled/locales/zh-CN/docs/CLI-INIT-OPTIONS.md +9 -3
- package/bundled/locales/zh-CN/docs/FEATURE-REFERENCE.md +10 -11
- package/bundled/locales/zh-CN/docs/USER-MANUAL.md +40 -21
- package/bundled/locales/zh-CN/integrations/gemini-cli/README.md +12 -0
- package/bundled/locales/zh-CN/skills/ac-coverage/SKILL.md +11 -5
- package/bundled/locales/zh-CN/skills/adr-assistant/SKILL.md +2 -2
- package/bundled/locales/zh-CN/skills/commands/brainstorm.md +2 -2
- package/bundled/locales/zh-CN/skills/commit-standards/SKILL.md +2 -2
- package/bundled/locales/zh-CN/skills/contract-test-assistant/SKILL.md +2 -2
- package/bundled/locales/zh-CN/skills/deploy-assistant/SKILL.md +2 -2
- package/bundled/locales/zh-CN/skills/dev-methodology/SKILL.md +2 -2
- package/bundled/locales/zh-CN/skills/dev-workflow-guide/SKILL.md +2 -2
- package/bundled/locales/zh-CN/skills/journey-test-assistant/SKILL.md +2 -2
- package/bundled/locales/zh-CN/skills/knowledge-graph/SKILL.md +2 -2
- package/bundled/locales/zh-CN/skills/knowledge-graph/guide.md +2 -2
- package/bundled/locales/zh-CN/skills/migration-assistant/SKILL.md +188 -2
- package/bundled/locales/zh-CN/skills/observability-assistant/guide.md +2 -2
- package/bundled/locales/zh-CN/skills/orchestrate/SKILL.md +2 -2
- package/bundled/locales/zh-CN/skills/plan/SKILL.md +2 -2
- package/bundled/locales/zh-CN/skills/push/SKILL.md +2 -2
- package/bundled/locales/zh-CN/skills/retrospective-assistant/SKILL.md +2 -2
- package/bundled/locales/zh-CN/skills/reverse-engineer/SKILL.md +2 -2
- package/bundled/locales/zh-CN/skills/runbook-assistant/guide.md +2 -2
- package/bundled/locales/zh-CN/skills/skill-builder/SKILL.md +2 -2
- package/bundled/locales/zh-CN/skills/slo-assistant/guide.md +2 -2
- package/bundled/locales/zh-CN/skills/spec-derivation/SKILL.md +2 -2
- package/bundled/locales/zh-CN/skills/spec-driven-dev/SKILL.md +40 -2
- package/bundled/locales/zh-CN/skills/sweep/SKILL.md +2 -2
- package/bundled/locales/zh-CN/skills/testing-guide/SKILL.md +2 -2
- package/bundled/locales/zh-TW/CHANGELOG.md +34 -3
- package/bundled/locales/zh-TW/README.md +75 -33
- package/bundled/locales/zh-TW/SECURITY.md +1 -1
- package/bundled/locales/zh-TW/core/audit-trail.md +2 -2
- package/bundled/locales/zh-TW/core/behavior-snapshot.md +2 -2
- package/bundled/locales/zh-TW/core/browser-compatibility-standards.md +18 -7
- package/bundled/locales/zh-TW/docs/CHEATSHEET.md +4 -4
- package/bundled/locales/zh-TW/docs/CLI-INIT-OPTIONS.md +9 -3
- package/bundled/locales/zh-TW/docs/FEATURE-REFERENCE.md +10 -11
- package/bundled/locales/zh-TW/docs/USER-MANUAL.md +40 -21
- package/bundled/locales/zh-TW/integrations/gemini-cli/README.md +12 -0
- package/bundled/skills/commands/journey-test.md +80 -6
- package/bundled/skills/commands/skill-builder.md +75 -6
- package/package.json +3 -3
- package/src/commands/check.js +54 -7
- package/src/commands/config.js +9 -0
- package/src/commands/init.js +15 -1
- package/src/commands/release.js +1 -1
- package/src/commands/update.js +82 -31
- package/src/config/ai-agent-paths.js +47 -7
- package/src/core/constants.js +61 -1
- package/src/core/manifest.js +56 -0
- package/src/flow/flow-parser.js +1 -1
- package/src/flow/gate-loader.js +1 -1
- package/src/i18n/messages.js +6 -0
- package/src/installers/standards-installer.js +10 -20
- package/src/reconciler/actual-state-scanner.js +118 -43
- package/src/reconciler/desired-state-calculator.js +157 -43
- package/src/reconciler/diff-engine.js +7 -2
- package/src/reconciler/manifest-migrator.js +5 -2
- package/src/reconciler/plan-executor.js +53 -14
- package/src/uninstallers/integration-uninstaller.js +7 -1
- package/src/utils/config-loader.js +1 -1
- package/src/utils/config-manager.js +1 -1
- package/src/utils/github.js +5 -1
- package/src/utils/hasher.js +7 -4
- package/src/utils/integration-generator.js +121 -78
- package/src/utils/registry.js +39 -0
- package/src/utils/skills-installer.js +49 -34
- package/src/utils/skills-source.js +51 -0
- package/src/utils/standard-fixer.js +1 -1
- package/src/utils/standard-validator.js +1 -1
- package/standards-registry.json +21 -11
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Skills source directory resolution — single source of truth.
|
|
3
|
+
*
|
|
4
|
+
* Two modules need to answer "where do the skill files live on this machine?", and they
|
|
5
|
+
* used to answer it separately. `github.js` had its own hardcoded copy pointing at
|
|
6
|
+
* `<cli>/../skills/claude-code`, a layout that no longer exists:
|
|
7
|
+
*
|
|
8
|
+
* - in a checkout, skills live at `<repo>/skills/<name>/`, with no `claude-code/` level
|
|
9
|
+
* - in an npm install, they are bundled at `<package>/bundled/skills/<name>/`
|
|
10
|
+
*
|
|
11
|
+
* So `hasLocalSkills()` was permanently false, every install silently fell through to the
|
|
12
|
+
* remote-download path, and that path then failed on files most skills do not have
|
|
13
|
+
* (only 5 of 61 ship a README.md), which failed the install transaction.
|
|
14
|
+
*
|
|
15
|
+
* Keeping the resolution in one module is the point: the bug was not the wrong path,
|
|
16
|
+
* it was the second copy of the path.
|
|
17
|
+
*/
|
|
18
|
+
|
|
19
|
+
import { existsSync } from 'fs';
|
|
20
|
+
import { dirname, join } from 'path';
|
|
21
|
+
import { fileURLToPath } from 'url';
|
|
22
|
+
|
|
23
|
+
const __dirname = dirname(fileURLToPath(import.meta.url));
|
|
24
|
+
|
|
25
|
+
/** CLI package root — `cli/` in a checkout, the package root in an npm install. */
|
|
26
|
+
export const CLI_ROOT = join(__dirname, '..', '..');
|
|
27
|
+
|
|
28
|
+
/** Bundled assets directory, present in npm installs. */
|
|
29
|
+
export const BUNDLED_DIR = join(CLI_ROOT, 'bundled');
|
|
30
|
+
|
|
31
|
+
/**
|
|
32
|
+
* Resolve the skills source directory.
|
|
33
|
+
* Prefers the bundled copy (npm install), falls back to the repo layout (development).
|
|
34
|
+
* @returns {string} Absolute path to the skills source directory
|
|
35
|
+
*/
|
|
36
|
+
export function getSkillsSourceDir() {
|
|
37
|
+
const bundledPath = join(BUNDLED_DIR, 'skills');
|
|
38
|
+
if (existsSync(bundledPath)) {
|
|
39
|
+
return bundledPath;
|
|
40
|
+
}
|
|
41
|
+
// Development environment fallback: <repo>/skills
|
|
42
|
+
return join(CLI_ROOT, '..', 'skills');
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
/**
|
|
46
|
+
* Whether skill files are available locally, making a remote download unnecessary.
|
|
47
|
+
* @returns {boolean}
|
|
48
|
+
*/
|
|
49
|
+
export function hasLocalSkillsSource() {
|
|
50
|
+
return existsSync(getSkillsSourceDir());
|
|
51
|
+
}
|
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
|
+
"version": "6.2.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,18 +58,20 @@
|
|
|
58
58
|
"standards": {
|
|
59
59
|
"name": "universal-dev-standards",
|
|
60
60
|
"url": "https://github.com/AsiaOstrich/universal-dev-standards",
|
|
61
|
-
"version": "6.
|
|
61
|
+
"version": "6.2.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": "6.
|
|
68
|
+
"version": "6.2.0",
|
|
69
69
|
"note": "Skills are now included in the main repository under skills/"
|
|
70
70
|
}
|
|
71
71
|
},
|
|
72
72
|
"supportedAITools": {
|
|
73
|
+
"_note": "INFORMATIONAL MIRROR. No code reads this block -- the CLI's actual install behaviour is driven by cli/src/config/ai-agent-paths.js, and integrations/REGISTRY.json is the SSOT for tier and deprecation. Kept in sync by scripts/check-integration-liveness.ts so the three cannot drift apart silently again (they did, for 5.5 months, on antigravity.supportsSkills).",
|
|
74
|
+
"_noteZh": "資訊性鏡像。沒有任何程式讀取此區塊——CLI 實際的安裝行為由 cli/src/config/ai-agent-paths.js 驅動,tier 與停用狀態的 SSOT 是 integrations/REGISTRY.json。由 scripts/check-integration-liveness.ts 維持同步,避免三者再次無聲漂移(antigravity.supportsSkills 曾漂移 5.5 個月)。",
|
|
73
75
|
"claude-code": {
|
|
74
76
|
"name": "Claude Code",
|
|
75
77
|
"skillsPath": "skills",
|
|
@@ -197,8 +199,8 @@
|
|
|
197
199
|
"skillsPath": "skills",
|
|
198
200
|
"nativePaths": {
|
|
199
201
|
"skills": {
|
|
200
|
-
"project": ".
|
|
201
|
-
"user": "~/.
|
|
202
|
+
"project": ".agents/skills/",
|
|
203
|
+
"user": "~/.agents/skills/"
|
|
202
204
|
},
|
|
203
205
|
"agents": {
|
|
204
206
|
"project": ".codex/agents/",
|
|
@@ -210,7 +212,8 @@
|
|
|
210
212
|
"supportsCommands": false,
|
|
211
213
|
"supportsTask": false,
|
|
212
214
|
"supportsAgents": true,
|
|
213
|
-
"status": "partial"
|
|
215
|
+
"status": "partial",
|
|
216
|
+
"skillsPathNote": "Verified 2026-07-23 against developers.openai.com/codex/skills. Codex reads .agents/skills (plural). The previous '.codex/skills/' was a directory UDS invented and Codex never reads."
|
|
214
217
|
},
|
|
215
218
|
"copilot": {
|
|
216
219
|
"name": "GitHub Copilot",
|
|
@@ -256,6 +259,10 @@
|
|
|
256
259
|
},
|
|
257
260
|
"gemini-cli": {
|
|
258
261
|
"name": "Gemini CLI",
|
|
262
|
+
"deprecated": true,
|
|
263
|
+
"deprecationNote": "Google sunset Gemini CLI on 2026-06-18; succeeded by Antigravity CLI. The integrations/gemini-cli/ and .gemini/ trees are frozen -- see .gemini/DEPRECATED.md.",
|
|
264
|
+
"deprecationNoteZh": "Google 已於 2026-06-18 終止 Gemini CLI,由 Antigravity CLI 接手。integrations/gemini-cli/ 與 .gemini/ 兩棵樹已凍結——見 .gemini/DEPRECATED.md。",
|
|
265
|
+
"supersededBy": "antigravity",
|
|
259
266
|
"skillsPath": "skills",
|
|
260
267
|
"nativePaths": {
|
|
261
268
|
"skills": {
|
|
@@ -284,12 +291,15 @@
|
|
|
284
291
|
"antigravity": {
|
|
285
292
|
"name": "Google Antigravity",
|
|
286
293
|
"skillsPath": null,
|
|
294
|
+
"skillsPathStatus": "unverified",
|
|
295
|
+
"skillsPathNote": "Antigravity supports skills, but UDS has not verified where it reads them from. Candidates: '~/.gemini/antigravity-cli/plugins/<name>/skills/' (official plugin docs) and '.agent/skills/' (UDS's own 2026-02 spec, written in the Gemini CLI era). skillsPath stays null until one is confirmed against a real CLI -- an unverified path fails silently. Tracked as XSPEC-355 OQ6.",
|
|
296
|
+
"skillsPathNoteZh": "Antigravity 支援 skills,但 UDS 尚未驗證它實際從何處讀取。候選路徑:'~/.gemini/antigravity-cli/plugins/<name>/skills/'(官方 plugin 文件)與 '.agent/skills/'(UDS 自己 2026-02 的 spec,寫於 Gemini CLI 時代)。在對實際 CLI 確認之前 skillsPath 維持 null——路徑填錯會是靜默失敗。追蹤於 XSPEC-355 OQ6。",
|
|
287
297
|
"nativePaths": {
|
|
288
298
|
"config": {
|
|
289
299
|
"project": "INSTRUCTIONS.md"
|
|
290
300
|
}
|
|
291
301
|
},
|
|
292
|
-
"supportsSkills":
|
|
302
|
+
"supportsSkills": true,
|
|
293
303
|
"supportsCommands": false,
|
|
294
304
|
"supportsTask": false,
|
|
295
305
|
"supportsAgents": false,
|
|
@@ -2226,7 +2236,7 @@
|
|
|
2226
2236
|
"id": "license-compliance",
|
|
2227
2237
|
"name": "License Compliance Standards",
|
|
2228
2238
|
"nameZh": "授權合規標準",
|
|
2229
|
-
"version": "6.
|
|
2239
|
+
"version": "6.2.0",
|
|
2230
2240
|
"source": {
|
|
2231
2241
|
"human": "core/license-compliance.md",
|
|
2232
2242
|
"ai": "ai/standards/license-compliance.ai.yaml"
|
|
@@ -2238,7 +2248,7 @@
|
|
|
2238
2248
|
"id": "verification-oracle",
|
|
2239
2249
|
"name": "Verification Oracle Standards",
|
|
2240
2250
|
"nameZh": "驗證 Oracle 標準",
|
|
2241
|
-
"version": "6.
|
|
2251
|
+
"version": "6.2.0",
|
|
2242
2252
|
"source": {
|
|
2243
2253
|
"human": "core/verification-oracle.md",
|
|
2244
2254
|
"ai": "ai/standards/verification-oracle.ai.yaml"
|
|
@@ -2250,7 +2260,7 @@
|
|
|
2250
2260
|
"id": "model-provenance",
|
|
2251
2261
|
"name": "Model Provenance Policy Standards",
|
|
2252
2262
|
"nameZh": "模型來源政策標準",
|
|
2253
|
-
"version": "6.
|
|
2263
|
+
"version": "6.2.0",
|
|
2254
2264
|
"source": {
|
|
2255
2265
|
"human": "core/model-provenance.md",
|
|
2256
2266
|
"ai": "ai/standards/model-provenance.ai.yaml"
|
|
@@ -2262,7 +2272,7 @@
|
|
|
2262
2272
|
"id": "resource-cost-boundary",
|
|
2263
2273
|
"name": "Resource / Cost Boundary Declaration Standards",
|
|
2264
2274
|
"nameZh": "資源/成本邊界宣告標準",
|
|
2265
|
-
"version": "6.
|
|
2275
|
+
"version": "6.2.0",
|
|
2266
2276
|
"source": {
|
|
2267
2277
|
"human": "core/resource-cost-boundary.md",
|
|
2268
2278
|
"ai": "ai/standards/resource-cost-boundary.ai.yaml"
|