universal-dev-standards 3.5.0-beta.13 → 3.5.0-beta.15
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/package.json +1 -1
- package/src/commands/check.js +14 -2
- package/src/commands/init.js +2 -5
- package/src/utils/github.js +48 -0
- package/standards-registry.json +4 -4
package/package.json
CHANGED
package/src/commands/check.js
CHANGED
|
@@ -13,7 +13,7 @@ import {
|
|
|
13
13
|
compareFileHash,
|
|
14
14
|
hasFileHashes
|
|
15
15
|
} from '../utils/hasher.js';
|
|
16
|
-
import { downloadFromGitHub } from '../utils/github.js';
|
|
16
|
+
import { downloadFromGitHub, getMarketplaceSkillsInfo } from '../utils/github.js';
|
|
17
17
|
import {
|
|
18
18
|
parseReferences,
|
|
19
19
|
compareStandardsWithReferences
|
|
@@ -634,8 +634,20 @@ function displaySkillsStatus(manifest, projectPath) {
|
|
|
634
634
|
|
|
635
635
|
if (isMarketplace) {
|
|
636
636
|
console.log(chalk.green(' ✓ Skills installed via Plugin Marketplace'));
|
|
637
|
+
|
|
638
|
+
// Try to get actual version from marketplace
|
|
639
|
+
const marketplaceInfo = getMarketplaceSkillsInfo();
|
|
640
|
+
if (marketplaceInfo && marketplaceInfo.version && marketplaceInfo.version !== 'unknown') {
|
|
641
|
+
console.log(chalk.gray(` Version: ${marketplaceInfo.version}`));
|
|
642
|
+
if (marketplaceInfo.lastUpdated) {
|
|
643
|
+
const updateDate = marketplaceInfo.lastUpdated.split('T')[0];
|
|
644
|
+
console.log(chalk.gray(` Last updated: ${updateDate}`));
|
|
645
|
+
}
|
|
646
|
+
} else {
|
|
647
|
+
console.log(chalk.gray(' Version: (run /plugin list to check)'));
|
|
648
|
+
}
|
|
649
|
+
|
|
637
650
|
console.log(chalk.gray(' Managed by Claude Code plugin system'));
|
|
638
|
-
console.log(chalk.gray(' To verify: /plugin list'));
|
|
639
651
|
console.log(chalk.gray(' Note: Marketplace skills are not file-based'));
|
|
640
652
|
} else {
|
|
641
653
|
const skillsDir = join(process.env.HOME || '', '.claude', 'skills');
|
package/src/commands/init.js
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import chalk from 'chalk';
|
|
2
2
|
import ora from 'ora';
|
|
3
|
+
import { basename, join } from 'path';
|
|
3
4
|
import {
|
|
4
5
|
getStandardsByLevel,
|
|
5
6
|
getRepositoryInfo,
|
|
@@ -629,10 +630,7 @@ export async function initCommand(options) {
|
|
|
629
630
|
}
|
|
630
631
|
|
|
631
632
|
// Build installed standards list for compliance instructions (used by all AI tools)
|
|
632
|
-
const installedStandardsList = results.standards.map(s =>
|
|
633
|
-
const { basename } = require('path');
|
|
634
|
-
return basename(s);
|
|
635
|
-
});
|
|
633
|
+
const installedStandardsList = results.standards.map(s => basename(s));
|
|
636
634
|
|
|
637
635
|
// Determine common language setting
|
|
638
636
|
let commonLanguage = 'en';
|
|
@@ -774,7 +772,6 @@ export async function initCommand(options) {
|
|
|
774
772
|
}
|
|
775
773
|
|
|
776
774
|
// Compute file hashes for integrity checking
|
|
777
|
-
const { join, basename } = await import('path');
|
|
778
775
|
const fileHashes = {};
|
|
779
776
|
const now = new Date().toISOString();
|
|
780
777
|
|
package/src/utils/github.js
CHANGED
|
@@ -453,6 +453,54 @@ export function installSkillToDir(skillName, targetBaseDir) {
|
|
|
453
453
|
};
|
|
454
454
|
}
|
|
455
455
|
|
|
456
|
+
/**
|
|
457
|
+
* Get Plugin Marketplace installed skills info
|
|
458
|
+
* Reads from ~/.claude/plugins/installed_plugins.json
|
|
459
|
+
* @returns {Object|null} Marketplace skills info or null
|
|
460
|
+
*/
|
|
461
|
+
export function getMarketplaceSkillsInfo() {
|
|
462
|
+
const pluginsFile = join(homedir(), '.claude', 'plugins', 'installed_plugins.json');
|
|
463
|
+
|
|
464
|
+
if (!existsSync(pluginsFile)) {
|
|
465
|
+
return null;
|
|
466
|
+
}
|
|
467
|
+
|
|
468
|
+
try {
|
|
469
|
+
const data = JSON.parse(readFileSync(pluginsFile, 'utf-8'));
|
|
470
|
+
const plugins = data.plugins || {};
|
|
471
|
+
|
|
472
|
+
// Look for universal-dev-standards plugin (various marketplace keys)
|
|
473
|
+
const udsKeys = Object.keys(plugins).filter(key =>
|
|
474
|
+
key.includes('universal-dev-standards')
|
|
475
|
+
);
|
|
476
|
+
|
|
477
|
+
if (udsKeys.length === 0) {
|
|
478
|
+
return null;
|
|
479
|
+
}
|
|
480
|
+
|
|
481
|
+
// Get the first matching plugin info
|
|
482
|
+
const pluginKey = udsKeys[0];
|
|
483
|
+
const pluginInfo = plugins[pluginKey];
|
|
484
|
+
|
|
485
|
+
if (!pluginInfo || pluginInfo.length === 0) {
|
|
486
|
+
return null;
|
|
487
|
+
}
|
|
488
|
+
|
|
489
|
+
const info = pluginInfo[0];
|
|
490
|
+
return {
|
|
491
|
+
installed: true,
|
|
492
|
+
version: info.version || 'unknown',
|
|
493
|
+
installPath: info.installPath || null,
|
|
494
|
+
installedAt: info.installedAt || null,
|
|
495
|
+
lastUpdated: info.lastUpdated || null,
|
|
496
|
+
source: 'marketplace',
|
|
497
|
+
pluginKey
|
|
498
|
+
};
|
|
499
|
+
} catch {
|
|
500
|
+
return null;
|
|
501
|
+
}
|
|
502
|
+
}
|
|
503
|
+
|
|
456
504
|
/**
|
|
457
505
|
* Download and install a single Skill to a specific target directory
|
|
458
506
|
* @param {string} skillName - Skill name
|
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.5.0-beta.
|
|
4
|
-
"lastUpdated": "2026-01-
|
|
3
|
+
"version": "3.5.0-beta.15",
|
|
4
|
+
"lastUpdated": "2026-01-14",
|
|
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.5.0-beta.
|
|
51
|
+
"version": "3.5.0-beta.15"
|
|
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.5.0-beta.
|
|
58
|
+
"version": "3.5.0-beta.15",
|
|
59
59
|
"note": "Skills are now included in the main repository under skills/"
|
|
60
60
|
}
|
|
61
61
|
},
|