@lifeaitools/rdc-skills 0.24.21 → 0.24.22

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,6 +1,6 @@
1
1
  {
2
2
  "name": "rdc",
3
- "version": "0.24.21",
3
+ "version": "0.24.22",
4
4
  "description": "RDC typed-agent dispatch skill suite for Claude Code — plan, build, review, overnight unattended builds with work-item tracking and TDD enforcement.",
5
5
  "author": {
6
6
  "name": "LIFEAI",
package/git-sha.json CHANGED
@@ -1,3 +1,3 @@
1
1
  {
2
- "sha": "7e69f4c64ca6d8ef7f34491aeacc678521c5470e"
2
+ "sha": "ccf246fa1ef9ef5a55e35db979053e7367d937e0"
3
3
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@lifeaitools/rdc-skills",
3
- "version": "0.24.21",
3
+ "version": "0.24.22",
4
4
  "description": "RDC typed-agent dispatch skill suite for Claude Code - plan, build, review, overnight builds",
5
5
  "keywords": [
6
6
  "claude-code",
@@ -944,7 +944,9 @@ function listCommands() {
944
944
  if (!fs.existsSync(cmdsDir)) return;
945
945
  const files = fs.readdirSync(cmdsDir).filter(f => f.endsWith('.md')).sort();
946
946
  const plugin = readJson(path.join(repoRoot, '.claude-plugin', 'plugin.json'), {});
947
- const skillCount = Array.isArray(plugin.skills_meta) ? plugin.skills_meta.length : null;
947
+ const skillCount = Array.isArray(plugin.skills_meta)
948
+ ? plugin.skills_meta.length
949
+ : (plugin.skills_meta && typeof plugin.skills_meta === 'object' ? Object.keys(plugin.skills_meta).length : null);
948
950
  console.log('');
949
951
  if (skillCount !== null) {
950
952
  console.log(` \x1b[32mAvailable MCP skills (${skillCount}) and /rdc:* command shorthands (${files.length}):\x1b[0m`);
@@ -20,11 +20,21 @@ assert.equal(toml.status, 0, `${toml.stdout}\n${toml.stderr}`);
20
20
  assert.match(toml.stdout, /PASS/);
21
21
 
22
22
  const source = readFileSync(script, 'utf8');
23
+ const plugin = JSON.parse(readFileSync(join(REPO_ROOT, '.claude-plugin', 'plugin.json'), 'utf8'));
24
+ const skillCount = Array.isArray(plugin.skills_meta)
25
+ ? plugin.skills_meta.length
26
+ : Object.keys(plugin.skills_meta || {}).length;
27
+ assert.equal(skillCount, 29, 'test fixture should expose all 29 MCP skills from plugin skills_meta');
23
28
  assert.match(
24
29
  source,
25
30
  /Available MCP skills.*\/rdc:\* command shorthands/,
26
31
  'installer should distinguish the full MCP skill catalog from slash-command shorthands',
27
32
  );
33
+ assert.match(
34
+ source,
35
+ /Object\.keys\(plugin\.skills_meta\)\.length/,
36
+ 'installer should count object-shaped skills_meta manifests',
37
+ );
28
38
  assert.match(
29
39
  source,
30
40
  /rdc_skill_list, rdc_skill_search, and rdc_skill_get/,