universal-dev-standards 3.2.0 → 3.2.2-beta.1
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/README.md +1 -0
- package/package.json +1 -1
- package/src/commands/check.js +17 -11
- package/src/commands/configure.js +3 -0
- package/src/commands/init.js +66 -16
- package/src/commands/update.js +3 -0
- package/src/prompts/init.js +13 -3
- package/src/utils/integration-generator.js +93 -17
- package/standards-registry.json +28 -8
package/README.md
CHANGED
|
@@ -273,6 +273,7 @@ Git 鉤子透過 Git Bash 運作,它包含在 Git for Windows 中。不需要
|
|
|
273
273
|
|
|
274
274
|
| Version | Date | Changes |
|
|
275
275
|
|---------|------|---------|
|
|
276
|
+
| 3.2.0 | 2026-01-02 | Added: Marketplace installation support; Fixed: wildcard paths, process hanging |
|
|
276
277
|
| 3.0.0 | 2025-12-30 | Published to npm, enhanced init with AI tools selection |
|
|
277
278
|
| 1.0.1 | 2025-12-24 | Added: Bilingual support (English + Chinese) |
|
|
278
279
|
| 1.0.0 | 2025-12-23 | Initial CLI documentation |
|
package/package.json
CHANGED
package/src/commands/check.js
CHANGED
|
@@ -103,18 +103,24 @@ export function checkCommand() {
|
|
|
103
103
|
// Skills status
|
|
104
104
|
console.log(chalk.cyan('Skills Status:'));
|
|
105
105
|
if (manifest.skills.installed) {
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
if (hasGlobalSkills || hasProjectSkills) {
|
|
111
|
-
console.log(chalk.green(' ✓ Claude Code Skills installed'));
|
|
112
|
-
if (hasGlobalSkills) console.log(chalk.gray(' Global: ~/.claude/skills/'));
|
|
113
|
-
if (hasProjectSkills) console.log(chalk.gray(' Project: .claude/skills/'));
|
|
106
|
+
if (manifest.skills.location === 'marketplace') {
|
|
107
|
+
console.log(chalk.green(' ✓ Skills installed via Plugin Marketplace'));
|
|
108
|
+
console.log(chalk.gray(' Managed by Claude Code plugin system'));
|
|
109
|
+
console.log(chalk.gray(' To verify: /plugin list'));
|
|
114
110
|
} else {
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
111
|
+
const skillsDir = join(process.env.HOME || '', '.claude', 'skills');
|
|
112
|
+
const hasGlobalSkills = existsSync(skillsDir);
|
|
113
|
+
const hasProjectSkills = existsSync(join(projectPath, '.claude', 'skills'));
|
|
114
|
+
|
|
115
|
+
if (hasGlobalSkills || hasProjectSkills) {
|
|
116
|
+
console.log(chalk.green(' ✓ Claude Code Skills installed'));
|
|
117
|
+
if (hasGlobalSkills) console.log(chalk.gray(' Global: ~/.claude/skills/'));
|
|
118
|
+
if (hasProjectSkills) console.log(chalk.gray(' Project: .claude/skills/'));
|
|
119
|
+
} else {
|
|
120
|
+
console.log(chalk.yellow(' ⚠ Skills marked as installed but not found'));
|
|
121
|
+
console.log(chalk.gray(' Run: git clone https://github.com/AsiaOstrich/universal-dev-skills.git'));
|
|
122
|
+
console.log(chalk.gray(' cd universal-dev-skills && ./install.sh'));
|
|
123
|
+
}
|
|
118
124
|
}
|
|
119
125
|
} else {
|
|
120
126
|
console.log(chalk.gray(' Skills not installed (using reference documents only)'));
|
package/src/commands/init.js
CHANGED
|
@@ -154,9 +154,12 @@ export async function initCommand(options) {
|
|
|
154
154
|
});
|
|
155
155
|
|
|
156
156
|
const useClaudeCode = aiTools.includes('claude-code');
|
|
157
|
+
const onlyClaudeCode = aiTools.length === 1 && useClaudeCode;
|
|
157
158
|
|
|
158
|
-
// STEP 4: Skills handling (only if Claude Code is selected)
|
|
159
|
-
|
|
159
|
+
// STEP 4: Skills handling (only if Claude Code is the ONLY selected tool)
|
|
160
|
+
// When other AI tools are also selected, they need full standards,
|
|
161
|
+
// so we skip the Skills prompt to avoid minimal installation affecting them
|
|
162
|
+
if (onlyClaudeCode) {
|
|
160
163
|
const projectSkillsInfo = getProjectInstalledSkillsInfo(projectPath);
|
|
161
164
|
const userSkillsInfo = getInstalledSkillsInfo();
|
|
162
165
|
const repoInfo = getRepositoryInfo();
|
|
@@ -218,8 +221,8 @@ export async function initCommand(options) {
|
|
|
218
221
|
skillsConfig = {
|
|
219
222
|
installed: true,
|
|
220
223
|
location,
|
|
221
|
-
needsInstall:
|
|
222
|
-
updateTargets: [location]
|
|
224
|
+
needsInstall: location !== 'marketplace', // marketplace doesn't need install via CLI
|
|
225
|
+
updateTargets: location === 'marketplace' ? [] : [location]
|
|
223
226
|
};
|
|
224
227
|
}
|
|
225
228
|
}
|
|
@@ -353,9 +356,14 @@ export async function initCommand(options) {
|
|
|
353
356
|
console.log(chalk.gray(` Integrations: ${integrations.length > 0 ? integrations.join(', ') : 'none'}`));
|
|
354
357
|
|
|
355
358
|
if (skillsConfig.installed) {
|
|
356
|
-
|
|
357
|
-
|
|
358
|
-
|
|
359
|
+
let skillsStatus;
|
|
360
|
+
if (skillsConfig.location === 'marketplace') {
|
|
361
|
+
skillsStatus = 'Plugin Marketplace (managed by Claude Code)';
|
|
362
|
+
} else {
|
|
363
|
+
skillsStatus = skillsConfig.needsInstall
|
|
364
|
+
? `install/update to ${skillsConfig.location}`
|
|
365
|
+
: `using existing (${skillsConfig.location})`;
|
|
366
|
+
}
|
|
359
367
|
console.log(chalk.gray(` Skills: ${skillsStatus}`));
|
|
360
368
|
}
|
|
361
369
|
|
|
@@ -543,6 +551,41 @@ export async function initCommand(options) {
|
|
|
543
551
|
intSpinner.succeed(`Generated ${results.integrations.length} integration files`);
|
|
544
552
|
}
|
|
545
553
|
|
|
554
|
+
// Generate CLAUDE.md for Claude Code if selected
|
|
555
|
+
const claudeCodeSelected = aiTools.includes('claude-code');
|
|
556
|
+
if (claudeCodeSelected && !integrationFileExists('claude-code', projectPath)) {
|
|
557
|
+
const claudeSpinner = ora('Generating CLAUDE.md...').start();
|
|
558
|
+
|
|
559
|
+
// Determine language setting from locale or format
|
|
560
|
+
let claudeLanguage = 'en';
|
|
561
|
+
if (locale === 'zh-tw') {
|
|
562
|
+
claudeLanguage = 'zh-tw';
|
|
563
|
+
} else if (standardOptions?.commit_language === 'bilingual') {
|
|
564
|
+
claudeLanguage = 'bilingual';
|
|
565
|
+
} else if (standardOptions?.commit_language === 'traditional-chinese') {
|
|
566
|
+
claudeLanguage = 'zh-tw';
|
|
567
|
+
}
|
|
568
|
+
|
|
569
|
+
const claudeConfig = {
|
|
570
|
+
tool: 'claude-code',
|
|
571
|
+
categories: ['anti-hallucination', 'commit-standards', 'code-review'],
|
|
572
|
+
languages: [],
|
|
573
|
+
exclusions: [],
|
|
574
|
+
customRules: [],
|
|
575
|
+
detailLevel: 'standard',
|
|
576
|
+
language: claudeLanguage
|
|
577
|
+
};
|
|
578
|
+
|
|
579
|
+
const result = writeIntegrationFile('claude-code', claudeConfig, projectPath);
|
|
580
|
+
if (result.success) {
|
|
581
|
+
results.integrations.push(result.path);
|
|
582
|
+
claudeSpinner.succeed('Generated CLAUDE.md');
|
|
583
|
+
} else {
|
|
584
|
+
claudeSpinner.warn('Could not generate CLAUDE.md');
|
|
585
|
+
results.errors.push(`CLAUDE.md: ${result.error}`);
|
|
586
|
+
}
|
|
587
|
+
}
|
|
588
|
+
|
|
546
589
|
// Install Skills if needed
|
|
547
590
|
if (skillsConfig.needsInstall && skillsConfig.updateTargets.length > 0) {
|
|
548
591
|
const skillSpinner = ora('Installing Claude Code Skills...').start();
|
|
@@ -616,7 +659,7 @@ export async function initCommand(options) {
|
|
|
616
659
|
skills: {
|
|
617
660
|
installed: skillsConfig.installed,
|
|
618
661
|
location: skillsConfig.location,
|
|
619
|
-
names: results.skills,
|
|
662
|
+
names: skillsConfig.location === 'marketplace' ? ['all-via-plugin'] : results.skills,
|
|
620
663
|
version: skillsConfig.installed ? repoInfo.skills.version : null
|
|
621
664
|
}
|
|
622
665
|
};
|
|
@@ -631,15 +674,19 @@ export async function initCommand(options) {
|
|
|
631
674
|
const totalFiles = results.standards.length + results.extensions.length + results.integrations.length;
|
|
632
675
|
console.log(chalk.gray(` ${totalFiles} files copied to project`));
|
|
633
676
|
|
|
634
|
-
if (
|
|
635
|
-
|
|
636
|
-
|
|
637
|
-
|
|
638
|
-
|
|
639
|
-
|
|
640
|
-
|
|
677
|
+
if (skillsConfig.installed) {
|
|
678
|
+
if (skillsConfig.location === 'marketplace') {
|
|
679
|
+
console.log(chalk.gray(' Skills: Using Plugin Marketplace installation'));
|
|
680
|
+
} else if (results.skills.length > 0) {
|
|
681
|
+
const skillLocations = [];
|
|
682
|
+
if (skillsConfig.updateTargets.includes('user')) {
|
|
683
|
+
skillLocations.push('~/.claude/skills/');
|
|
684
|
+
}
|
|
685
|
+
if (skillsConfig.updateTargets.includes('project')) {
|
|
686
|
+
skillLocations.push('.claude/skills/');
|
|
687
|
+
}
|
|
688
|
+
console.log(chalk.gray(` ${results.skills.length} Skills installed to ${skillLocations.join(' and ')}`));
|
|
641
689
|
}
|
|
642
|
-
console.log(chalk.gray(` ${results.skills.length} Skills installed to ${skillLocations.join(' and ')}`));
|
|
643
690
|
}
|
|
644
691
|
console.log(chalk.gray(' Manifest created at .standards/manifest.json'));
|
|
645
692
|
|
|
@@ -662,4 +709,7 @@ export async function initCommand(options) {
|
|
|
662
709
|
console.log(chalk.gray(' 3. Run `uds check` to verify adoption status'));
|
|
663
710
|
}
|
|
664
711
|
console.log();
|
|
712
|
+
|
|
713
|
+
// Exit explicitly to prevent hanging due to inquirer's readline interface
|
|
714
|
+
process.exit(0);
|
|
665
715
|
}
|
package/src/commands/update.js
CHANGED
package/src/prompts/init.js
CHANGED
|
@@ -81,7 +81,11 @@ export async function promptSkillsInstallLocation() {
|
|
|
81
81
|
message: 'Where should Skills be installed?',
|
|
82
82
|
choices: [
|
|
83
83
|
{
|
|
84
|
-
name: `${chalk.green('
|
|
84
|
+
name: `${chalk.green('Plugin Marketplace')} ${chalk.gray('(推薦)')} - Already installed via /plugin install`,
|
|
85
|
+
value: 'marketplace'
|
|
86
|
+
},
|
|
87
|
+
{
|
|
88
|
+
name: `${chalk.blue('User Level')} - ~/.claude/skills/ (shared across projects)`,
|
|
85
89
|
value: 'user'
|
|
86
90
|
},
|
|
87
91
|
{
|
|
@@ -93,13 +97,19 @@ export async function promptSkillsInstallLocation() {
|
|
|
93
97
|
value: 'none'
|
|
94
98
|
}
|
|
95
99
|
],
|
|
96
|
-
default: '
|
|
100
|
+
default: 'marketplace'
|
|
97
101
|
}
|
|
98
102
|
]);
|
|
99
103
|
|
|
100
104
|
// Show explanation
|
|
101
105
|
console.log();
|
|
102
|
-
if (location === '
|
|
106
|
+
if (location === 'marketplace') {
|
|
107
|
+
console.log(chalk.gray(' → Skills managed by Claude Code Plugin system'));
|
|
108
|
+
console.log(chalk.gray(' → Automatic updates when new versions are released'));
|
|
109
|
+
console.log(chalk.gray(' → If not installed yet, run:'));
|
|
110
|
+
console.log(chalk.gray(' /plugin marketplace add AsiaOstrich/universal-dev-standards'));
|
|
111
|
+
console.log(chalk.gray(' /plugin install universal-dev-standards@universal-dev-standards'));
|
|
112
|
+
} else if (location === 'user') {
|
|
103
113
|
console.log(chalk.gray(' → Skills will be installed to ~/.claude/skills/'));
|
|
104
114
|
console.log(chalk.gray(' → Available across all your projects'));
|
|
105
115
|
} else if (location === 'project') {
|
|
@@ -1431,76 +1431,116 @@ const TOOL_HEADERS = {
|
|
|
1431
1431
|
# Generated by Universal Dev Standards CLI
|
|
1432
1432
|
# https://github.com/AsiaOstrich/universal-dev-standards
|
|
1433
1433
|
|
|
1434
|
-
You are an expert software engineer assistant. Follow these project standards
|
|
1434
|
+
You are an expert software engineer assistant. Follow these project standards.
|
|
1435
|
+
|
|
1436
|
+
## Conversation Language
|
|
1437
|
+
All responses should be in **English**.`,
|
|
1435
1438
|
'zh-tw': `# Cursor 規則
|
|
1436
1439
|
# 由 Universal Dev Standards CLI 生成
|
|
1437
1440
|
# https://github.com/AsiaOstrich/universal-dev-standards
|
|
1438
1441
|
|
|
1439
|
-
|
|
1442
|
+
您是專業的軟體工程助手。請遵循以下專案標準。
|
|
1443
|
+
|
|
1444
|
+
## 對話語言 / Conversation Language
|
|
1445
|
+
所有回覆必須使用**繁體中文 (Traditional Chinese)**。`,
|
|
1440
1446
|
bilingual: `# Cursor Rules | Cursor 規則
|
|
1441
1447
|
# Generated by Universal Dev Standards CLI
|
|
1442
1448
|
# 由 Universal Dev Standards CLI 生成
|
|
1443
1449
|
# https://github.com/AsiaOstrich/universal-dev-standards
|
|
1444
1450
|
|
|
1445
1451
|
You are an expert software engineer assistant. Follow these project standards.
|
|
1446
|
-
|
|
1452
|
+
您是專業的軟體工程助手。請遵循以下專案標準。
|
|
1453
|
+
|
|
1454
|
+
## Conversation Language / 對話語言
|
|
1455
|
+
All responses should be in **Traditional Chinese (繁體中文)**, with technical terms in English where appropriate.
|
|
1456
|
+
所有回覆必須使用**繁體中文**,技術術語可保留英文。`
|
|
1447
1457
|
},
|
|
1448
1458
|
windsurf: {
|
|
1449
1459
|
en: `# Windsurf Rules
|
|
1450
1460
|
# Generated by Universal Dev Standards CLI
|
|
1451
1461
|
# https://github.com/AsiaOstrich/universal-dev-standards
|
|
1452
1462
|
|
|
1453
|
-
You are an expert software engineer assistant. Follow these project standards
|
|
1463
|
+
You are an expert software engineer assistant. Follow these project standards.
|
|
1464
|
+
|
|
1465
|
+
## Conversation Language
|
|
1466
|
+
All responses should be in **English**.`,
|
|
1454
1467
|
'zh-tw': `# Windsurf 規則
|
|
1455
1468
|
# 由 Universal Dev Standards CLI 生成
|
|
1456
1469
|
# https://github.com/AsiaOstrich/universal-dev-standards
|
|
1457
1470
|
|
|
1458
|
-
|
|
1471
|
+
您是專業的軟體工程助手。請遵循以下專案標準。
|
|
1472
|
+
|
|
1473
|
+
## 對話語言 / Conversation Language
|
|
1474
|
+
所有回覆必須使用**繁體中文 (Traditional Chinese)**。`,
|
|
1459
1475
|
bilingual: `# Windsurf Rules | Windsurf 規則
|
|
1460
1476
|
# Generated by Universal Dev Standards CLI
|
|
1461
1477
|
# 由 Universal Dev Standards CLI 生成
|
|
1462
1478
|
# https://github.com/AsiaOstrich/universal-dev-standards
|
|
1463
1479
|
|
|
1464
1480
|
You are an expert software engineer assistant. Follow these project standards.
|
|
1465
|
-
|
|
1481
|
+
您是專業的軟體工程助手。請遵循以下專案標準。
|
|
1482
|
+
|
|
1483
|
+
## Conversation Language / 對話語言
|
|
1484
|
+
All responses should be in **Traditional Chinese (繁體中文)**, with technical terms in English where appropriate.
|
|
1485
|
+
所有回覆必須使用**繁體中文**,技術術語可保留英文。`
|
|
1466
1486
|
},
|
|
1467
1487
|
cline: {
|
|
1468
1488
|
en: `# Cline Rules
|
|
1469
1489
|
# Generated by Universal Dev Standards CLI
|
|
1470
1490
|
# https://github.com/AsiaOstrich/universal-dev-standards
|
|
1471
1491
|
|
|
1472
|
-
You are an expert software engineer assistant. Follow these project standards
|
|
1492
|
+
You are an expert software engineer assistant. Follow these project standards.
|
|
1493
|
+
|
|
1494
|
+
## Conversation Language
|
|
1495
|
+
All responses should be in **English**.`,
|
|
1473
1496
|
'zh-tw': `# Cline 規則
|
|
1474
1497
|
# 由 Universal Dev Standards CLI 生成
|
|
1475
1498
|
# https://github.com/AsiaOstrich/universal-dev-standards
|
|
1476
1499
|
|
|
1477
|
-
|
|
1500
|
+
您是專業的軟體工程助手。請遵循以下專案標準。
|
|
1501
|
+
|
|
1502
|
+
## 對話語言 / Conversation Language
|
|
1503
|
+
所有回覆必須使用**繁體中文 (Traditional Chinese)**。`,
|
|
1478
1504
|
bilingual: `# Cline Rules | Cline 規則
|
|
1479
1505
|
# Generated by Universal Dev Standards CLI
|
|
1480
1506
|
# 由 Universal Dev Standards CLI 生成
|
|
1481
1507
|
# https://github.com/AsiaOstrich/universal-dev-standards
|
|
1482
1508
|
|
|
1483
1509
|
You are an expert software engineer assistant. Follow these project standards.
|
|
1484
|
-
|
|
1510
|
+
您是專業的軟體工程助手。請遵循以下專案標準。
|
|
1511
|
+
|
|
1512
|
+
## Conversation Language / 對話語言
|
|
1513
|
+
All responses should be in **Traditional Chinese (繁體中文)**, with technical terms in English where appropriate.
|
|
1514
|
+
所有回覆必須使用**繁體中文**,技術術語可保留英文。`
|
|
1485
1515
|
},
|
|
1486
1516
|
copilot: {
|
|
1487
1517
|
en: `# GitHub Copilot Instructions
|
|
1488
1518
|
# Generated by Universal Dev Standards CLI
|
|
1489
1519
|
# https://github.com/AsiaOstrich/universal-dev-standards
|
|
1490
1520
|
|
|
1491
|
-
You are an expert software engineer assistant. Follow these project standards
|
|
1521
|
+
You are an expert software engineer assistant. Follow these project standards.
|
|
1522
|
+
|
|
1523
|
+
## Conversation Language
|
|
1524
|
+
All responses should be in **English**.`,
|
|
1492
1525
|
'zh-tw': `# GitHub Copilot 說明
|
|
1493
1526
|
# 由 Universal Dev Standards CLI 生成
|
|
1494
1527
|
# https://github.com/AsiaOstrich/universal-dev-standards
|
|
1495
1528
|
|
|
1496
|
-
|
|
1529
|
+
您是專業的軟體工程助手。請遵循以下專案標準。
|
|
1530
|
+
|
|
1531
|
+
## 對話語言 / Conversation Language
|
|
1532
|
+
所有回覆必須使用**繁體中文 (Traditional Chinese)**。`,
|
|
1497
1533
|
bilingual: `# GitHub Copilot Instructions | GitHub Copilot 說明
|
|
1498
1534
|
# Generated by Universal Dev Standards CLI
|
|
1499
1535
|
# 由 Universal Dev Standards CLI 生成
|
|
1500
1536
|
# https://github.com/AsiaOstrich/universal-dev-standards
|
|
1501
1537
|
|
|
1502
1538
|
You are an expert software engineer assistant. Follow these project standards.
|
|
1503
|
-
|
|
1539
|
+
您是專業的軟體工程助手。請遵循以下專案標準。
|
|
1540
|
+
|
|
1541
|
+
## Conversation Language / 對話語言
|
|
1542
|
+
All responses should be in **Traditional Chinese (繁體中文)**, with technical terms in English where appropriate.
|
|
1543
|
+
所有回覆必須使用**繁體中文**,技術術語可保留英文。`
|
|
1504
1544
|
},
|
|
1505
1545
|
antigravity: {
|
|
1506
1546
|
en: `# Antigravity System Instructions
|
|
@@ -1508,20 +1548,54 @@ You are an expert software engineer assistant. Follow these project standards.
|
|
|
1508
1548
|
# https://github.com/AsiaOstrich/universal-dev-standards
|
|
1509
1549
|
|
|
1510
1550
|
Recommended system instructions for Google Antigravity (Gemini Advanced Agent).
|
|
1511
|
-
Follow these project standards
|
|
1551
|
+
Follow these project standards.
|
|
1552
|
+
|
|
1553
|
+
## Conversation Language
|
|
1554
|
+
All responses should be in **English**.`,
|
|
1512
1555
|
'zh-tw': `# Antigravity 系統指令
|
|
1513
1556
|
# 由 Universal Dev Standards CLI 生成
|
|
1514
1557
|
# https://github.com/AsiaOstrich/universal-dev-standards
|
|
1515
1558
|
|
|
1516
1559
|
Google Antigravity (Gemini Advanced Agent) 的推薦系統指令。
|
|
1517
|
-
|
|
1560
|
+
請遵循以下專案標準。
|
|
1561
|
+
|
|
1562
|
+
## 對話語言 / Conversation Language
|
|
1563
|
+
所有回覆必須使用**繁體中文 (Traditional Chinese)**。`,
|
|
1518
1564
|
bilingual: `# Antigravity System Instructions | Antigravity 系統指令
|
|
1519
1565
|
# Generated by Universal Dev Standards CLI
|
|
1520
1566
|
# 由 Universal Dev Standards CLI 生成
|
|
1521
1567
|
# https://github.com/AsiaOstrich/universal-dev-standards
|
|
1522
1568
|
|
|
1523
1569
|
Recommended system instructions for Google Antigravity (Gemini Advanced Agent).
|
|
1524
|
-
Google Antigravity (Gemini Advanced Agent)
|
|
1570
|
+
Google Antigravity (Gemini Advanced Agent) 的推薦系統指令。
|
|
1571
|
+
|
|
1572
|
+
## Conversation Language / 對話語言
|
|
1573
|
+
All responses should be in **Traditional Chinese (繁體中文)**, with technical terms in English where appropriate.
|
|
1574
|
+
所有回覆必須使用**繁體中文**,技術術語可保留英文。`
|
|
1575
|
+
},
|
|
1576
|
+
'claude-code': {
|
|
1577
|
+
en: `# Project Guidelines for Claude Code
|
|
1578
|
+
# Generated by Universal Dev Standards CLI
|
|
1579
|
+
# https://github.com/AsiaOstrich/universal-dev-standards
|
|
1580
|
+
|
|
1581
|
+
## Conversation Language
|
|
1582
|
+
All responses should be in **English**.`,
|
|
1583
|
+
'zh-tw': `# Claude Code 專案指南
|
|
1584
|
+
# 由 Universal Dev Standards CLI 生成
|
|
1585
|
+
# https://github.com/AsiaOstrich/universal-dev-standards
|
|
1586
|
+
|
|
1587
|
+
## 對話語言 / Conversation Language
|
|
1588
|
+
所有回覆必須使用**繁體中文 (Traditional Chinese)**。
|
|
1589
|
+
AI 助手應以繁體中文回覆使用者的問題與請求。`,
|
|
1590
|
+
bilingual: `# Project Guidelines for Claude Code | Claude Code 專案指南
|
|
1591
|
+
# Generated by Universal Dev Standards CLI
|
|
1592
|
+
# 由 Universal Dev Standards CLI 生成
|
|
1593
|
+
# https://github.com/AsiaOstrich/universal-dev-standards
|
|
1594
|
+
|
|
1595
|
+
## Conversation Language / 對話語言
|
|
1596
|
+
All responses should be in **Traditional Chinese (繁體中文)**, with technical terms in English where appropriate.
|
|
1597
|
+
所有回覆必須使用**繁體中文**,技術術語可保留英文。
|
|
1598
|
+
AI 助手應以繁體中文回覆使用者的問題與請求。`
|
|
1525
1599
|
}
|
|
1526
1600
|
};
|
|
1527
1601
|
|
|
@@ -1642,7 +1716,8 @@ export function writeIntegrationFile(tool, config, projectPath) {
|
|
|
1642
1716
|
windsurf: '.windsurfrules',
|
|
1643
1717
|
cline: '.clinerules',
|
|
1644
1718
|
copilot: '.github/copilot-instructions.md',
|
|
1645
|
-
antigravity: 'INSTRUCTIONS.md'
|
|
1719
|
+
antigravity: 'INSTRUCTIONS.md',
|
|
1720
|
+
'claude-code': 'CLAUDE.md'
|
|
1646
1721
|
};
|
|
1647
1722
|
|
|
1648
1723
|
const fileName = TOOL_FILES[tool];
|
|
@@ -1686,7 +1761,8 @@ export function integrationFileExists(tool, projectPath) {
|
|
|
1686
1761
|
windsurf: '.windsurfrules',
|
|
1687
1762
|
cline: '.clinerules',
|
|
1688
1763
|
copilot: '.github/copilot-instructions.md',
|
|
1689
|
-
antigravity: 'INSTRUCTIONS.md'
|
|
1764
|
+
antigravity: 'INSTRUCTIONS.md',
|
|
1765
|
+
'claude-code': 'CLAUDE.md'
|
|
1690
1766
|
};
|
|
1691
1767
|
|
|
1692
1768
|
const fileName = TOOL_FILES[tool];
|
package/standards-registry.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
3
|
-
"version": "3.
|
|
4
|
-
"lastUpdated": "
|
|
3
|
+
"version": "3.2.0",
|
|
4
|
+
"lastUpdated": "2026-01-02",
|
|
5
5
|
"description": "Standards registry for universal-dev-standards with integrated skills and AI-optimized formats",
|
|
6
6
|
"formats": {
|
|
7
7
|
"ai": {
|
|
@@ -48,14 +48,14 @@
|
|
|
48
48
|
"standards": {
|
|
49
49
|
"name": "universal-dev-standards",
|
|
50
50
|
"url": "https://github.com/AsiaOstrich/universal-dev-standards",
|
|
51
|
-
"version": "3.
|
|
51
|
+
"version": "3.2.0"
|
|
52
52
|
},
|
|
53
53
|
"skills": {
|
|
54
54
|
"name": "universal-dev-standards",
|
|
55
55
|
"url": "https://github.com/AsiaOstrich/universal-dev-standards",
|
|
56
56
|
"localPath": "skills/claude-code",
|
|
57
57
|
"rawUrl": "https://raw.githubusercontent.com/AsiaOstrich/universal-dev-standards/main/skills/claude-code",
|
|
58
|
-
"version": "3.
|
|
58
|
+
"version": "3.2.0",
|
|
59
59
|
"note": "Skills are now included in the main repository under skills/"
|
|
60
60
|
}
|
|
61
61
|
},
|
|
@@ -634,14 +634,34 @@
|
|
|
634
634
|
"note": "SDD tool, not AI coding assistant. Manual integration only."
|
|
635
635
|
},
|
|
636
636
|
{
|
|
637
|
-
"id": "requirement-
|
|
638
|
-
"name": "Requirement
|
|
637
|
+
"id": "requirement-checklist",
|
|
638
|
+
"name": "Requirement Checklist Template",
|
|
639
|
+
"nameZh": "需求檢核清單模板",
|
|
640
|
+
"source": "templates/requirement-checklist.md",
|
|
641
|
+
"category": "skill",
|
|
642
|
+
"skillName": "requirement-assistant",
|
|
643
|
+
"level": 2,
|
|
644
|
+
"description": "Checklist for reviewing requirement documents"
|
|
645
|
+
},
|
|
646
|
+
{
|
|
647
|
+
"id": "requirement-template",
|
|
648
|
+
"name": "Requirement Template",
|
|
649
|
+
"nameZh": "需求模板",
|
|
650
|
+
"source": "templates/requirement-template.md",
|
|
651
|
+
"category": "skill",
|
|
652
|
+
"skillName": "requirement-assistant",
|
|
653
|
+
"level": 2,
|
|
654
|
+
"description": "Template for writing user stories"
|
|
655
|
+
},
|
|
656
|
+
{
|
|
657
|
+
"id": "requirement-document-template",
|
|
658
|
+
"name": "Requirement Document Template",
|
|
639
659
|
"nameZh": "需求文件模板",
|
|
640
|
-
"source": "templates/requirement
|
|
660
|
+
"source": "templates/requirement-document-template.md",
|
|
641
661
|
"category": "skill",
|
|
642
662
|
"skillName": "requirement-assistant",
|
|
643
663
|
"level": 2,
|
|
644
|
-
"description": "
|
|
664
|
+
"description": "Template for writing comprehensive requirement documents"
|
|
645
665
|
},
|
|
646
666
|
{
|
|
647
667
|
"id": "migration-template",
|