sdd-mcp-server 2.2.1 → 3.0.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.
Files changed (48) hide show
  1. package/README.md +93 -33
  2. package/dist/agents/AgentManager.d.ts +61 -0
  3. package/dist/agents/AgentManager.js +75 -0
  4. package/dist/agents/AgentManager.js.map +1 -0
  5. package/dist/agents/index.d.ts +1 -0
  6. package/dist/agents/index.js +3 -0
  7. package/dist/agents/index.js.map +1 -0
  8. package/dist/cli/install-skills.d.ts +56 -11
  9. package/dist/cli/install-skills.js +311 -122
  10. package/dist/cli/install-skills.js.map +1 -1
  11. package/dist/cli/sdd-mcp-cli.js +0 -0
  12. package/dist/contexts/ContextManager.d.ts +53 -0
  13. package/dist/contexts/ContextManager.js +64 -0
  14. package/dist/contexts/ContextManager.js.map +1 -0
  15. package/dist/contexts/index.d.ts +1 -0
  16. package/dist/contexts/index.js +3 -0
  17. package/dist/contexts/index.js.map +1 -0
  18. package/dist/hooks/HookLoader.d.ts +67 -0
  19. package/dist/hooks/HookLoader.js +180 -0
  20. package/dist/hooks/HookLoader.js.map +1 -0
  21. package/dist/index.js +5 -3
  22. package/dist/index.js.map +1 -1
  23. package/dist/infrastructure/di/container.js +24 -0
  24. package/dist/infrastructure/di/container.js.map +1 -1
  25. package/dist/infrastructure/di/types.d.ts +4 -0
  26. package/dist/infrastructure/di/types.js +5 -0
  27. package/dist/infrastructure/di/types.js.map +1 -1
  28. package/dist/rules/RulesManager.d.ts +53 -0
  29. package/dist/rules/RulesManager.js +62 -0
  30. package/dist/rules/RulesManager.js.map +1 -0
  31. package/dist/rules/index.d.ts +1 -0
  32. package/dist/rules/index.js +3 -0
  33. package/dist/rules/index.js.map +1 -0
  34. package/dist/shared/BaseManager.d.ts +130 -0
  35. package/dist/shared/BaseManager.js +274 -0
  36. package/dist/shared/BaseManager.js.map +1 -0
  37. package/dist/shared/index.d.ts +1 -0
  38. package/dist/shared/index.js +3 -0
  39. package/dist/shared/index.js.map +1 -0
  40. package/dist/utils/sddPaths.d.ts +69 -0
  41. package/dist/utils/sddPaths.js +138 -0
  42. package/dist/utils/sddPaths.js.map +1 -0
  43. package/documentGenerator.js +1 -1
  44. package/mcp-server.js +39 -39
  45. package/package.json +1 -1
  46. package/skills/sdd-review/SKILL.md +191 -0
  47. package/skills/sdd-security-check/SKILL.md +193 -0
  48. package/skills/sdd-test-gen/SKILL.md +295 -0
@@ -1,16 +1,43 @@
1
1
  #!/usr/bin/env node
2
2
  import * as fs from 'fs';
3
3
  import * as path from 'path';
4
- import { fileURLToPath } from 'url';
5
4
  import { SkillManager } from '../skills/SkillManager.js';
6
- // ESM equivalent of __dirname
7
- const __filename = fileURLToPath(import.meta.url);
8
- const __dirname = path.dirname(__filename);
5
+ import { RulesManager } from '../rules/RulesManager.js';
6
+ import { ContextManager } from '../contexts/ContextManager.js';
7
+ import { AgentManager } from '../agents/AgentManager.js';
8
+ import { HookLoader } from '../hooks/HookLoader.js';
9
+ // Get directory name - works in both ESM and test environments
10
+ // In test environments, we use process.cwd() as a fallback
11
+ function getDirname() {
12
+ // Try to find the package root by looking for package.json
13
+ let dir = process.cwd();
14
+ while (dir !== path.dirname(dir)) {
15
+ if (fs.existsSync(path.join(dir, 'package.json'))) {
16
+ try {
17
+ const pkg = JSON.parse(fs.readFileSync(path.join(dir, 'package.json'), 'utf-8'));
18
+ if (pkg.name === 'sdd-mcp-server') {
19
+ // Found the package root, return the expected cli directory
20
+ return path.join(dir, 'dist', 'cli');
21
+ }
22
+ }
23
+ catch {
24
+ // Continue searching
25
+ }
26
+ }
27
+ dir = path.dirname(dir);
28
+ }
29
+ // Fallback to process.cwd() based path
30
+ return path.join(process.cwd(), 'dist', 'cli');
31
+ }
9
32
  /**
10
- * CLI for installing SDD skills to a project
33
+ * CLI for installing SDD components to a project
11
34
  */
12
35
  export class InstallSkillsCLI {
13
36
  skillManager;
37
+ rulesManager;
38
+ contextManager;
39
+ agentManager;
40
+ hookLoader;
14
41
  steeringPath;
15
42
  /**
16
43
  * Create CLI instance
@@ -19,51 +46,35 @@ export class InstallSkillsCLI {
19
46
  */
20
47
  constructor(skillsPath, steeringPath) {
21
48
  // If no path provided, determine from package location
22
- const resolvedSkillsPath = skillsPath || this.getDefaultSkillsPath();
23
- const resolvedSteeringPath = steeringPath || this.getDefaultSteeringPath();
49
+ const resolvedSkillsPath = skillsPath || this.getDefaultPath('skills');
50
+ const resolvedSteeringPath = steeringPath || this.getDefaultPath('steering');
51
+ const resolvedRulesPath = this.getDefaultPath('rules');
52
+ const resolvedContextsPath = this.getDefaultPath('contexts');
53
+ const resolvedAgentsPath = this.getDefaultPath('agents');
54
+ const resolvedHooksPath = this.getDefaultPath('hooks');
24
55
  this.skillManager = new SkillManager(resolvedSkillsPath);
56
+ this.rulesManager = new RulesManager(resolvedRulesPath);
57
+ this.contextManager = new ContextManager(resolvedContextsPath);
58
+ this.agentManager = new AgentManager(resolvedAgentsPath);
59
+ this.hookLoader = new HookLoader(resolvedHooksPath);
25
60
  this.steeringPath = resolvedSteeringPath;
26
61
  }
27
62
  /**
28
- * Get the default skills path based on package location
29
- */
30
- getDefaultSkillsPath() {
31
- // Try multiple paths and return the first one that exists
32
- const possiblePaths = [
33
- // Relative to this file (dist/cli/install-skills.js -> skills/)
34
- path.resolve(__dirname, '../../skills'),
35
- // Alternative: one level up
36
- path.resolve(__dirname, '../skills'),
37
- // From package root when installed globally or via npx
38
- path.resolve(__dirname, '../../../skills'),
39
- // From current working directory
40
- path.resolve(process.cwd(), 'node_modules/sdd-mcp-server/skills'),
41
- path.resolve(process.cwd(), 'skills'),
42
- ];
43
- // Return the first path that exists
44
- for (const p of possiblePaths) {
45
- if (fs.existsSync(p)) {
46
- return p;
47
- }
48
- }
49
- // Fallback to first path (will error in SkillManager if not found)
50
- return possiblePaths[0];
51
- }
52
- /**
53
- * Get the default steering path based on package location
63
+ * Get the default path for a component type based on package location
64
+ * @param componentDir - The component directory name (skills, steering, rules, etc.)
54
65
  */
55
- getDefaultSteeringPath() {
66
+ getDefaultPath(componentDir) {
56
67
  // Try multiple paths and return the first one that exists
57
68
  const possiblePaths = [
58
- // Relative to this file (dist/cli/install-skills.js -> steering/)
59
- path.resolve(__dirname, '../../steering'),
69
+ // Relative to this file (dist/cli/install-skills.js -> componentDir/)
70
+ path.resolve(getDirname(), `../../${componentDir}`),
60
71
  // Alternative: one level up
61
- path.resolve(__dirname, '../steering'),
72
+ path.resolve(getDirname(), `../${componentDir}`),
62
73
  // From package root when installed globally or via npx
63
- path.resolve(__dirname, '../../../steering'),
74
+ path.resolve(getDirname(), `../../../${componentDir}`),
64
75
  // From current working directory
65
- path.resolve(process.cwd(), 'node_modules/sdd-mcp-server/steering'),
66
- path.resolve(process.cwd(), 'steering'),
76
+ path.resolve(process.cwd(), `node_modules/sdd-mcp-server/${componentDir}`),
77
+ path.resolve(process.cwd(), componentDir),
67
78
  ];
68
79
  // Return the first path that exists
69
80
  for (const p of possiblePaths) {
@@ -71,7 +82,7 @@ export class InstallSkillsCLI {
71
82
  return p;
72
83
  }
73
84
  }
74
- // Fallback to first path
85
+ // Fallback to first path (will error in manager if not found)
75
86
  return possiblePaths[0];
76
87
  }
77
88
  /**
@@ -83,10 +94,19 @@ export class InstallSkillsCLI {
83
94
  const options = {
84
95
  targetPath: '.claude/skills',
85
96
  steeringPath: '.spec/steering',
97
+ rulesPath: '.claude/rules',
98
+ contextsPath: '.claude/contexts',
99
+ agentsPath: '.claude/agents',
100
+ hooksPath: '.claude/hooks',
86
101
  listOnly: false,
87
102
  showHelp: false,
88
103
  skillsOnly: false,
89
104
  steeringOnly: false,
105
+ rulesOnly: false,
106
+ contextsOnly: false,
107
+ agentsOnly: false,
108
+ hooksOnly: false,
109
+ components: [],
90
110
  };
91
111
  for (let i = 0; i < args.length; i++) {
92
112
  const arg = args[i];
@@ -101,6 +121,26 @@ export class InstallSkillsCLI {
101
121
  options.steeringPath = args[++i];
102
122
  }
103
123
  break;
124
+ case '--rules-path':
125
+ if (i + 1 < args.length) {
126
+ options.rulesPath = args[++i];
127
+ }
128
+ break;
129
+ case '--contexts-path':
130
+ if (i + 1 < args.length) {
131
+ options.contextsPath = args[++i];
132
+ }
133
+ break;
134
+ case '--agents-path':
135
+ if (i + 1 < args.length) {
136
+ options.agentsPath = args[++i];
137
+ }
138
+ break;
139
+ case '--hooks-path':
140
+ if (i + 1 < args.length) {
141
+ options.hooksPath = args[++i];
142
+ }
143
+ break;
104
144
  case '--list':
105
145
  case '-l':
106
146
  options.listOnly = true;
@@ -111,9 +151,31 @@ export class InstallSkillsCLI {
111
151
  break;
112
152
  case '--skills':
113
153
  options.skillsOnly = true;
154
+ options.components.push('skills');
114
155
  break;
115
156
  case '--steering':
116
157
  options.steeringOnly = true;
158
+ options.components.push('steering');
159
+ break;
160
+ case '--rules':
161
+ options.rulesOnly = true;
162
+ options.components.push('rules');
163
+ break;
164
+ case '--contexts':
165
+ options.contextsOnly = true;
166
+ options.components.push('contexts');
167
+ break;
168
+ case '--agents':
169
+ options.agentsOnly = true;
170
+ options.components.push('agents');
171
+ break;
172
+ case '--hooks':
173
+ options.hooksOnly = true;
174
+ options.components.push('hooks');
175
+ break;
176
+ case '--all':
177
+ // Install all component types
178
+ options.components = ['skills', 'steering', 'rules', 'contexts', 'agents', 'hooks'];
117
179
  break;
118
180
  }
119
181
  }
@@ -135,7 +197,7 @@ export class InstallSkillsCLI {
135
197
  await this.installSkills(options.targetPath);
136
198
  }
137
199
  /**
138
- * Run unified install (skills + steering)
200
+ * Run unified install (all components)
139
201
  * @param options - CLI options
140
202
  */
141
203
  async runUnified(options) {
@@ -147,15 +209,35 @@ export class InstallSkillsCLI {
147
209
  await this.listAll();
148
210
  return;
149
211
  }
150
- // Determine what to install
151
- const installSkills = !options.steeringOnly;
152
- const installSteering = !options.skillsOnly;
153
- if (installSkills) {
154
- await this.installSkills(options.targetPath);
155
- }
156
- if (installSteering) {
157
- await this.installSteering(options.steeringPath);
212
+ // If specific components requested, install only those
213
+ const hasSpecificComponents = options.components.length > 0;
214
+ const componentsToInstall = hasSpecificComponents
215
+ ? options.components
216
+ : ['skills', 'steering', 'rules', 'contexts', 'agents', 'hooks'];
217
+ console.log('\n🚀 SDD Component Installer\n');
218
+ for (const component of componentsToInstall) {
219
+ switch (component) {
220
+ case 'skills':
221
+ await this.installSkills(options.targetPath);
222
+ break;
223
+ case 'steering':
224
+ await this.installSteering(options.steeringPath);
225
+ break;
226
+ case 'rules':
227
+ await this.installRules(options.rulesPath);
228
+ break;
229
+ case 'contexts':
230
+ await this.installContexts(options.contextsPath);
231
+ break;
232
+ case 'agents':
233
+ await this.installAgents(options.agentsPath);
234
+ break;
235
+ case 'hooks':
236
+ await this.installHooks(options.hooksPath);
237
+ break;
238
+ }
158
239
  }
240
+ console.log('\n✨ Installation complete!\n');
159
241
  }
160
242
  /**
161
243
  * List available skills
@@ -196,11 +278,15 @@ export class InstallSkillsCLI {
196
278
  return steeringDocs;
197
279
  }
198
280
  /**
199
- * List all available skills and steering documents
281
+ * List all available components
200
282
  */
201
283
  async listAll() {
202
284
  const skills = await this.skillManager.listSkills();
203
285
  const steeringDocs = await this.listSteering();
286
+ const rules = await this.rulesManager.listComponents();
287
+ const contexts = await this.contextManager.listComponents();
288
+ const agents = await this.agentManager.listComponents();
289
+ const hooks = await this.hookLoader.listComponents();
204
290
  console.log('\n📚 Available Skills:\n');
205
291
  if (skills.length === 0) {
206
292
  console.log(' (none)\n');
@@ -215,7 +301,7 @@ export class InstallSkillsCLI {
215
301
  }
216
302
  console.log(` Total: ${skills.length} skills\n`);
217
303
  }
218
- console.log('📄 Available Steering Documents:\n');
304
+ console.log('📄 Steering Documents:\n');
219
305
  if (steeringDocs.length === 0) {
220
306
  console.log(' (none)\n');
221
307
  }
@@ -223,90 +309,175 @@ export class InstallSkillsCLI {
223
309
  for (const doc of steeringDocs) {
224
310
  console.log(` • ${doc}`);
225
311
  }
226
- console.log(`\n Total: ${steeringDocs.length} steering documents\n`);
312
+ console.log(`\n Total: ${steeringDocs.length} documents\n`);
313
+ }
314
+ console.log('📏 Rules:\n');
315
+ if (rules.length === 0) {
316
+ console.log(' (none)\n');
317
+ }
318
+ else {
319
+ for (const rule of rules) {
320
+ console.log(` • ${rule.name} (priority: ${rule.priority})`);
321
+ if (rule.description) {
322
+ console.log(` ${rule.description}`);
323
+ }
324
+ }
325
+ console.log(`\n Total: ${rules.length} rules\n`);
326
+ }
327
+ console.log('🎭 Contexts:\n');
328
+ if (contexts.length === 0) {
329
+ console.log(' (none)\n');
330
+ }
331
+ else {
332
+ for (const ctx of contexts) {
333
+ console.log(` • ${ctx.name} (mode: ${ctx.mode})`);
334
+ if (ctx.description) {
335
+ console.log(` ${ctx.description}`);
336
+ }
337
+ }
338
+ console.log(`\n Total: ${contexts.length} contexts\n`);
339
+ }
340
+ console.log('🤖 Agents:\n');
341
+ if (agents.length === 0) {
342
+ console.log(' (none)\n');
343
+ }
344
+ else {
345
+ for (const agent of agents) {
346
+ console.log(` • ${agent.name} (${agent.role})`);
347
+ if (agent.description) {
348
+ console.log(` ${agent.description}`);
349
+ }
350
+ }
351
+ console.log(`\n Total: ${agents.length} agents\n`);
352
+ }
353
+ console.log('🪝 Hooks:\n');
354
+ if (hooks.length === 0) {
355
+ console.log(' (none)\n');
227
356
  }
228
- console.log('Run "npx sdd-mcp-server install" to install all skills and steering documents.\n');
357
+ else {
358
+ // Group hooks by event type
359
+ const hooksByEvent = new Map();
360
+ for (const hook of hooks) {
361
+ const existing = hooksByEvent.get(hook.event) || [];
362
+ existing.push(hook);
363
+ hooksByEvent.set(hook.event, existing);
364
+ }
365
+ for (const [event, eventHooks] of hooksByEvent) {
366
+ console.log(` ${event}/`);
367
+ for (const hook of eventHooks) {
368
+ const status = hook.enabled ? '✓' : '○';
369
+ console.log(` ${status} ${hook.name}`);
370
+ }
371
+ }
372
+ console.log(`\n Total: ${hooks.length} hooks\n`);
373
+ }
374
+ console.log('Run "npx sdd-mcp-server install" to install all components.\n');
229
375
  }
230
376
  /**
231
377
  * Install skills to target directory
232
- * @param targetPath - Target directory
233
378
  */
234
379
  async installSkills(targetPath) {
235
- console.log(`\n📦 Installing SDD skills to: ${targetPath}\n`);
380
+ console.log(`\nInstalling SDD skills to: ${targetPath}\n`);
236
381
  const result = await this.skillManager.installSkills(targetPath);
382
+ this.logInstallResult(result, 'skills');
237
383
  if (result.installed.length > 0) {
238
- const plural = result.installed.length === 1 ? 'skill' : 'skills';
239
- console.log(`✅ Installed ${result.installed.length} ${plural}:`);
240
- for (const name of result.installed) {
241
- console.log(` • ${name}`);
242
- }
243
- console.log('');
244
- }
245
- if (result.failed.length > 0) {
246
- console.error(`❌ Failed to install ${result.failed.length} skill(s):`);
247
- for (const failure of result.failed) {
248
- console.error(` • ${failure.name}: ${failure.error}`);
249
- }
250
- console.log('');
251
- }
252
- if (result.installed.length > 0) {
253
- console.log('🎉 Skills installed successfully!');
384
+ console.log('Skills installed successfully!');
254
385
  console.log(' Use /sdd-requirements, /sdd-design, etc. in Claude Code.\n');
255
386
  }
256
387
  }
257
388
  /**
258
389
  * Install steering documents to target directory
259
- * @param targetPath - Target directory (e.g., .spec/steering)
260
390
  */
261
391
  async installSteering(targetPath) {
262
- console.log(`\n📄 Installing steering documents to: ${targetPath}\n`);
392
+ console.log(`\nInstalling steering documents to: ${targetPath}\n`);
393
+ const result = await this.installSteeringFiles(targetPath);
394
+ this.logInstallResult(result, 'steering documents');
395
+ if (result.installed.length > 0) {
396
+ console.log('Steering documents installed successfully!');
397
+ console.log(' These provide project-wide guidance for AI interactions.\n');
398
+ }
399
+ }
400
+ /**
401
+ * Copy steering files to target directory
402
+ */
403
+ async installSteeringFiles(targetPath) {
263
404
  const installed = [];
264
405
  const failed = [];
265
406
  try {
266
- // Create target directory
267
407
  await fs.promises.mkdir(targetPath, { recursive: true });
268
- // Read source steering directory
269
408
  const entries = await fs.promises.readdir(this.steeringPath);
270
409
  for (const entry of entries) {
271
- if (entry.endsWith('.md')) {
272
- try {
273
- const sourceFile = path.join(this.steeringPath, entry);
274
- const destFile = path.join(targetPath, entry);
275
- await fs.promises.copyFile(sourceFile, destFile);
276
- installed.push(entry);
277
- }
278
- catch (error) {
279
- failed.push({
280
- name: entry,
281
- error: error instanceof Error ? error.message : String(error),
282
- });
283
- }
410
+ if (!entry.endsWith('.md'))
411
+ continue;
412
+ try {
413
+ const sourceFile = path.join(this.steeringPath, entry);
414
+ const destFile = path.join(targetPath, entry);
415
+ await fs.promises.copyFile(sourceFile, destFile);
416
+ installed.push(entry);
417
+ }
418
+ catch (error) {
419
+ failed.push({
420
+ name: entry,
421
+ error: error instanceof Error ? error.message : String(error),
422
+ });
284
423
  }
285
424
  }
286
425
  }
287
426
  catch (error) {
288
- console.error(`❌ Failed to read steering directory: ${error instanceof Error ? error.message : String(error)}`);
289
- return;
427
+ console.error(`Failed to read steering directory: ${error instanceof Error ? error.message : String(error)}`);
290
428
  }
291
- if (installed.length > 0) {
292
- const plural = installed.length === 1 ? 'document' : 'documents';
293
- console.log(`✅ Installed ${installed.length} steering ${plural}:`);
294
- for (const name of installed) {
295
- console.log(` • ${name}`);
429
+ return { installed, failed };
430
+ }
431
+ /**
432
+ * Log installation results with consistent formatting
433
+ */
434
+ logInstallResult(result, typeName) {
435
+ if (result.installed.length > 0) {
436
+ console.log(`Installed ${result.installed.length} ${typeName}:`);
437
+ for (const name of result.installed) {
438
+ console.log(` - ${name}`);
296
439
  }
297
440
  console.log('');
298
441
  }
299
- if (failed.length > 0) {
300
- console.error(`❌ Failed to install ${failed.length} document(s):`);
301
- for (const failure of failed) {
302
- console.error(` ${failure.name}: ${failure.error}`);
442
+ if (result.failed.length > 0) {
443
+ console.error(`Failed to install ${result.failed.length} ${typeName}:`);
444
+ for (const failure of result.failed) {
445
+ console.error(` - ${failure.name}: ${failure.error}`);
303
446
  }
304
447
  console.log('');
305
448
  }
306
- if (installed.length > 0) {
307
- console.log('🎉 Steering documents installed successfully!');
308
- console.log(' These provide project-wide guidance for AI interactions.\n');
309
- }
449
+ }
450
+ /**
451
+ * Install rules to target directory
452
+ */
453
+ async installRules(targetPath) {
454
+ console.log(`Installing rules to: ${targetPath}\n`);
455
+ const result = await this.rulesManager.installComponents(targetPath);
456
+ this.logInstallResult(result, 'rules');
457
+ }
458
+ /**
459
+ * Install contexts to target directory
460
+ */
461
+ async installContexts(targetPath) {
462
+ console.log(`Installing contexts to: ${targetPath}\n`);
463
+ const result = await this.contextManager.installComponents(targetPath);
464
+ this.logInstallResult(result, 'contexts');
465
+ }
466
+ /**
467
+ * Install agents to target directory
468
+ */
469
+ async installAgents(targetPath) {
470
+ console.log(`Installing agents to: ${targetPath}\n`);
471
+ const result = await this.agentManager.installComponents(targetPath);
472
+ this.logInstallResult(result, 'agents');
473
+ }
474
+ /**
475
+ * Install hooks to target directory
476
+ */
477
+ async installHooks(targetPath) {
478
+ console.log(`Installing hooks to: ${targetPath}\n`);
479
+ const result = await this.hookLoader.installComponents(targetPath);
480
+ this.logInstallResult(result, 'hooks');
310
481
  }
311
482
  /**
312
483
  * Get help text
@@ -348,34 +519,50 @@ SDD Unified Installer
348
519
 
349
520
  Usage: npx sdd-mcp-server install [options]
350
521
 
351
- Installs both SDD skills and steering documents to your project.
522
+ Installs SDD components (skills, steering, rules, contexts, agents, hooks) to your project.
352
523
 
353
- Options:
524
+ Component Options (install specific types):
354
525
  --skills Install skills only (to .claude/skills)
355
526
  --steering Install steering documents only (to .spec/steering)
356
- --path <dir> Target directory for skills (default: .claude/skills)
357
- --steering-path <dir> Target directory for steering (default: .spec/steering)
358
- --list, -l List available skills and steering documents
527
+ --rules Install rules only (to .claude/rules)
528
+ --contexts Install contexts only (to .claude/contexts)
529
+ --agents Install agents only (to .claude/agents)
530
+ --hooks Install hooks only (to .claude/hooks)
531
+ --all Install all component types (default behavior)
532
+
533
+ Path Options (customize installation targets):
534
+ --path <dir> Target for skills (default: .claude/skills)
535
+ --steering-path <dir> Target for steering (default: .spec/steering)
536
+ --rules-path <dir> Target for rules (default: .claude/rules)
537
+ --contexts-path <dir> Target for contexts (default: .claude/contexts)
538
+ --agents-path <dir> Target for agents (default: .claude/agents)
539
+ --hooks-path <dir> Target for hooks (default: .claude/hooks)
540
+
541
+ Other Options:
542
+ --list, -l List all available components
359
543
  --help, -h Show this help message
360
544
 
361
545
  Examples:
362
- npx sdd-mcp-server install # Install both skills and steering
363
- npx sdd-mcp-server install --skills # Install skills only
364
- npx sdd-mcp-server install --steering # Install steering only
365
- npx sdd-mcp-server install --list # List available content
546
+ npx sdd-mcp-server install # Install all components
547
+ npx sdd-mcp-server install --skills --rules # Install skills and rules only
548
+ npx sdd-mcp-server install --list # List available components
366
549
 
367
- Skills are installed to .claude/skills/ and provide workflow guidance.
368
- Steering documents are installed to .spec/steering/ and provide project-wide rules.
550
+ Component Types:
551
+ Skills - Workflow guidance for SDD phases (/sdd-requirements, /sdd-design, etc.)
552
+ Steering - Project-wide rules and conventions
553
+ Rules - Always-active guidelines (coding-style, security, etc.)
554
+ Contexts - Mode-specific system prompts (dev, review, planning)
555
+ Agents - Specialized AI personas (planner, architect, reviewer)
556
+ Hooks - Event-driven automation (pre-tool-use, post-tool-use, etc.)
369
557
 
370
558
  After installation, use skills in Claude Code:
371
559
  /sdd-requirements <feature-name>
372
560
  /sdd-design <feature-name>
373
561
  /sdd-tasks <feature-name>
374
562
  /sdd-implement <feature-name>
375
- /sdd-steering
376
- /sdd-commit
377
-
378
- Steering documents are automatically loaded by the SDD MCP server.
563
+ /sdd-review [file-path]
564
+ /sdd-security-check [scope]
565
+ /sdd-test-gen [file-path]
379
566
  `;
380
567
  }
381
568
  }
@@ -392,9 +579,11 @@ export async function mainInstall() {
392
579
  await cli.runUnified(options);
393
580
  }
394
581
  // ESM main module detection: check if this file is the entry point
395
- const isMainModule = process.argv[1] && (process.argv[1] === __filename ||
396
- process.argv[1].endsWith('/install-skills.js') ||
397
- process.argv[1].endsWith('/sdd-install-skills'));
582
+ // Use path matching instead of import.meta.url for Jest compatibility
583
+ const isMainModule = process.argv[1] && (process.argv[1].endsWith('/install-skills.js') ||
584
+ process.argv[1].endsWith('/sdd-install-skills') ||
585
+ process.argv[1].endsWith('\\install-skills.js') ||
586
+ process.argv[1].endsWith('\\sdd-install-skills'));
398
587
  if (isMainModule) {
399
588
  main().catch((error) => {
400
589
  console.error('Error:', error.message);
@@ -1 +1 @@
1
- {"version":3,"file":"install-skills.js","sourceRoot":"","sources":["../../src/cli/install-skills.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"install-skills.js","sourceRoot":"","sources":["../../src/cli/install-skills.ts"],"names":[],"mappings":"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"}
File without changes