@paulduvall/claude-dev-toolkit 0.0.1-alpha.5 โ†’ 0.0.1-alpha.7

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 CHANGED
@@ -41,7 +41,7 @@ npm install -g @paulduvall/claude-dev-toolkit
41
41
  ```bash
42
42
  # Install specific command sets
43
43
  claude-commands install --active # Install 13 production commands
44
- claude-commands install --experimental # Install 45 experimental commands
44
+ claude-commands install --experiments # Install 45 experimental commands
45
45
  claude-commands install --all # Install all 58 commands
46
46
  ```
47
47
 
@@ -89,7 +89,7 @@ Advanced commands for specialized workflows:
89
89
  claude-commands list # List all available commands
90
90
  claude-commands status # Show installation status
91
91
  claude-commands install --active # Install production commands
92
- claude-commands install --experimental # Install experimental commands
92
+ claude-commands install --experiments # Install experimental commands
93
93
  claude-commands install --all # Install all commands
94
94
 
95
95
  # Configuration Management
@@ -203,7 +203,7 @@ claude-commands install --active # Reinstall commands
203
203
  chmod 755 ~/.claude/commands/*.md # Fix permissions
204
204
 
205
205
  # Missing experimental commands?
206
- claude-commands install --experimental # Install experimental set
206
+ claude-commands install --experiments # Install experimental set
207
207
 
208
208
  # Test failures?
209
209
  npm test # Run full test suite
@@ -20,60 +20,37 @@ program
20
20
  .command('list')
21
21
  .description('List all available commands')
22
22
  .option('-a, --active', 'Show only active commands')
23
- .option('-e, --experimental', 'Show only experimental commands')
23
+ .option('-e, --experiments', 'Show only experimental commands')
24
24
  .action((options) => {
25
25
  const claudeDir = path.join(os.homedir(), '.claude', 'commands');
26
- const activeDir = path.join(claudeDir, 'active');
27
- const experimentalDir = path.join(claudeDir, 'experiments');
28
26
 
29
27
  console.log('๐Ÿ“ฆ Claude Custom Commands\n');
30
28
 
31
- if (!options.experimental) {
32
- console.log('๐ŸŽฏ Active Commands:');
33
- if (fs.existsSync(activeDir)) {
34
- const activeCommands = fs.readdirSync(activeDir)
35
- .filter(f => f.endsWith('.md'))
36
- .map(f => f.replace('.md', ''))
37
- .sort();
38
-
39
- if (activeCommands.length > 0) {
40
- activeCommands.forEach(cmd => console.log(` /${cmd}`));
41
- } else {
42
- console.log(' No active commands found');
43
- }
29
+ if (fs.existsSync(claudeDir)) {
30
+ const allCommands = fs.readdirSync(claudeDir)
31
+ .filter(f => f.endsWith('.md'))
32
+ .map(f => f.replace('.md', ''))
33
+ .sort();
34
+
35
+ if (allCommands.length > 0) {
36
+ console.log('๐Ÿš€ Available Commands:');
37
+ allCommands.forEach(cmd => console.log(` /${cmd}`));
38
+ console.log(`\n๐Ÿ“Š Total: ${allCommands.length} commands`);
44
39
  } else {
45
- console.log(' Commands directory not found');
40
+ console.log(' No commands found');
46
41
  }
47
- console.log('');
42
+ } else {
43
+ console.log(' Commands directory not found');
48
44
  }
49
45
 
50
- if (!options.active) {
51
- console.log('๐Ÿงช Experimental Commands:');
52
- if (fs.existsSync(experimentalDir)) {
53
- const expCommands = fs.readdirSync(experimentalDir)
54
- .filter(f => f.endsWith('.md'))
55
- .map(f => f.replace('.md', ''))
56
- .sort();
57
-
58
- if (expCommands.length > 0) {
59
- expCommands.forEach(cmd => console.log(` /${cmd}`));
60
- } else {
61
- console.log(' No experimental commands found');
62
- }
63
- } else {
64
- console.log(' Commands directory not found');
65
- }
66
- console.log('');
67
- }
68
-
69
- console.log('๐Ÿ’ก Usage: Try /xhelp in Claude Code to see all commands');
46
+ console.log('\n๐Ÿ’ก Usage: Try /xhelp in Claude Code to see all commands');
70
47
  });
71
48
 
72
49
  program
73
50
  .command('install')
74
51
  .description('Install command sets')
75
52
  .option('--active', 'Install active commands only')
76
- .option('--experimental', 'Install experimental commands')
53
+ .option('--experiments', 'Install experimental commands')
77
54
  .option('--all', 'Install all commands')
78
55
  .action((options) => {
79
56
  const installer = require('../lib/installer');
@@ -85,33 +62,22 @@ program
85
62
  .description('Show installation status')
86
63
  .action(() => {
87
64
  const claudeDir = path.join(os.homedir(), '.claude', 'commands');
88
- const activeDir = path.join(claudeDir, 'active');
89
- const experimentalDir = path.join(claudeDir, 'experiments');
90
65
 
91
66
  console.log('๐Ÿ“Š Claude Dev Toolkit Status\n');
92
67
 
93
68
  // Check Claude directory
94
- console.log('๐Ÿ“ Installation Paths:');
95
- console.log(` Claude directory: ${fs.existsSync(claudeDir) ? 'โœ…' : 'โŒ'} ${claudeDir}`);
96
- console.log(` Active commands: ${fs.existsSync(activeDir) ? 'โœ…' : 'โŒ'} ${activeDir}`);
97
- console.log(` Experimental: ${fs.existsSync(experimentalDir) ? 'โœ…' : 'โŒ'} ${experimentalDir}\n`);
69
+ console.log('๐Ÿ“ Installation Path:');
70
+ console.log(` Commands directory: ${fs.existsSync(claudeDir) ? 'โœ…' : 'โŒ'} ${claudeDir}\n`);
98
71
 
99
72
  // Count commands
100
- let activeCount = 0;
101
- let expCount = 0;
102
-
103
- if (fs.existsSync(activeDir)) {
104
- activeCount = fs.readdirSync(activeDir).filter(f => f.endsWith('.md')).length;
105
- }
73
+ let totalCount = 0;
106
74
 
107
- if (fs.existsSync(experimentalDir)) {
108
- expCount = fs.readdirSync(experimentalDir).filter(f => f.endsWith('.md')).length;
75
+ if (fs.existsSync(claudeDir)) {
76
+ totalCount = fs.readdirSync(claudeDir).filter(f => f.endsWith('.md')).length;
109
77
  }
110
78
 
111
79
  console.log('๐Ÿ“ฆ Command Inventory:');
112
- console.log(` Active commands: ${activeCount}`);
113
- console.log(` Experimental commands: ${expCount}`);
114
- console.log(` Total commands: ${activeCount + expCount}\n`);
80
+ console.log(` Total commands: ${totalCount}\n`);
115
81
 
116
82
  // Package info
117
83
  console.log('๐Ÿ“‹ Package Information:');
@@ -119,13 +85,13 @@ program
119
85
  console.log(` CLI Location: ${process.argv[1]}\n`);
120
86
 
121
87
  // Quick health check
122
- const isHealthy = fs.existsSync(claudeDir) && (activeCount > 0 || expCount > 0);
88
+ const isHealthy = fs.existsSync(claudeDir) && totalCount > 0;
123
89
  console.log(`๐Ÿ” Overall Status: ${isHealthy ? 'โœ… Healthy' : 'โš ๏ธ Issues detected'}`);
124
90
 
125
91
  if (!isHealthy) {
126
92
  console.log('\n๐Ÿ’ก Troubleshooting:');
127
- console.log(' โ€ข Try: npm install -g claude-dev-toolkit');
128
- console.log(' โ€ข Or reinstall to refresh commands');
93
+ console.log(' โ€ข Try: npm install -g @paulduvall/claude-dev-toolkit');
94
+ console.log(' โ€ข Or reinstall: claude-commands install --all');
129
95
  }
130
96
  });
131
97
 
package/lib/installer.js CHANGED
@@ -11,24 +11,21 @@ module.exports = {
11
11
 
12
12
  console.log('๐Ÿš€ Installing Claude Custom Commands...\n');
13
13
 
14
- // Ensure directories exist
14
+ // Ensure main commands directory exists
15
15
  ensureDirectory(claudeDir);
16
- ensureDirectory(path.join(claudeDir, 'active'));
17
- ensureDirectory(path.join(claudeDir, 'experimental'));
18
16
 
19
17
  let installedCount = 0;
20
18
 
21
- // Install active commands
22
- if (options.active || options.all || (!options.active && !options.experimental)) {
19
+ // Install active commands (directly to commands directory)
20
+ if (options.active || options.all || (!options.active && !options.experiments)) {
23
21
  const activeSource = path.join(packageDir, 'commands', 'active');
24
- const activeTarget = path.join(claudeDir, 'active');
25
22
 
26
23
  if (fs.existsSync(activeSource)) {
27
24
  const activeFiles = fs.readdirSync(activeSource).filter(f => f.endsWith('.md'));
28
25
  activeFiles.forEach(file => {
29
26
  fs.copyFileSync(
30
27
  path.join(activeSource, file),
31
- path.join(activeTarget, file)
28
+ path.join(claudeDir, file)
32
29
  );
33
30
  });
34
31
  installedCount += activeFiles.length;
@@ -36,17 +33,16 @@ module.exports = {
36
33
  }
37
34
  }
38
35
 
39
- // Install experimental commands
40
- if (options.experimental || options.all) {
36
+ // Install experimental commands (directly to commands directory)
37
+ if (options.experiments || options.all) {
41
38
  const expSource = path.join(packageDir, 'commands', 'experiments');
42
- const expTarget = path.join(claudeDir, 'experiments');
43
39
 
44
40
  if (fs.existsSync(expSource)) {
45
41
  const expFiles = fs.readdirSync(expSource).filter(f => f.endsWith('.md'));
46
42
  expFiles.forEach(file => {
47
43
  fs.copyFileSync(
48
44
  path.join(expSource, file),
49
- path.join(expTarget, file)
45
+ path.join(claudeDir, file)
50
46
  );
51
47
  });
52
48
  installedCount += expFiles.length;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@paulduvall/claude-dev-toolkit",
3
- "version": "0.0.1-alpha.5",
3
+ "version": "0.0.1-alpha.7",
4
4
  "description": "Custom commands toolkit for Claude Code - streamline your development workflow",
5
5
  "author": "Paul Duvall",
6
6
  "license": "MIT",