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 CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "universal-dev-standards",
3
- "version": "3.5.0-beta.13",
3
+ "version": "3.5.0-beta.15",
4
4
  "description": "CLI tool for adopting Universal Development Standards",
5
5
  "keywords": [
6
6
  "documentation",
@@ -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');
@@ -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
 
@@ -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
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "$schema": "https://json-schema.org/draft/2020-12/schema",
3
- "version": "3.5.0-beta.13",
4
- "lastUpdated": "2026-01-12",
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.13"
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.13",
58
+ "version": "3.5.0-beta.15",
59
59
  "note": "Skills are now included in the main repository under skills/"
60
60
  }
61
61
  },