@skillsmith/cli 0.2.2 → 0.2.3

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.
@@ -0,0 +1,128 @@
1
+ /**
2
+ * SMI-1389: Subagent Definition Template
3
+ *
4
+ * Templates for generating companion specialist agents that enable
5
+ * parallel skill execution with 37-97% token savings.
6
+ */
7
+ /**
8
+ * Main subagent definition template
9
+ * Generates ~/.claude/agents/[skill-name]-specialist.md
10
+ */
11
+ export const SUBAGENT_MD_TEMPLATE = `---
12
+ name: {{skillName}}-specialist
13
+ description: {{description}} Use when {{triggerPhrases}}.
14
+ skills: {{skillName}}
15
+ tools: {{tools}}
16
+ model: {{model}}
17
+ ---
18
+
19
+ ## Operating Protocol
20
+
21
+ 1. Execute the {{skillName}} skill for the delegated task
22
+ 2. Process all intermediate results internally
23
+ 3. Return ONLY a structured summary to the orchestrator
24
+
25
+ ## Output Format
26
+
27
+ - **Task:** [what was requested]
28
+ - **Actions:** [what you did]
29
+ - **Results:** [key outcomes, max 3-5 bullet points]
30
+ - **Artifacts:** [file paths or outputs created]
31
+
32
+ Keep response under 500 tokens unless explicitly requested otherwise.
33
+
34
+ ## Tool Usage Guidelines
35
+
36
+ {{toolGuidelines}}
37
+
38
+ ## Error Handling
39
+
40
+ If the task cannot be completed:
41
+ - Report specific blocking issue
42
+ - Suggest alternative approaches
43
+ - Do not retry indefinitely
44
+ `;
45
+ /**
46
+ * CLAUDE.md integration snippet template
47
+ * Users can copy this to their project's CLAUDE.md
48
+ */
49
+ export const CLAUDE_MD_SNIPPET_TEMPLATE = `
50
+ ### Subagent Delegation: {{skillName}}
51
+
52
+ When tasks match {{skillName}} triggers, delegate to the {{skillName}}-specialist
53
+ subagent instead of executing directly. This provides context isolation and
54
+ ~37-97% token savings.
55
+
56
+ **Trigger Patterns:**
57
+ {{triggerPatterns}}
58
+
59
+ **Delegation Example:**
60
+ \`\`\`
61
+ Task("{{skillName}}-specialist", "{{exampleTask}}", "{{skillName}}-specialist")
62
+ \`\`\`
63
+ `;
64
+ /**
65
+ * Generate tool usage guidelines based on detected tools
66
+ */
67
+ function generateToolGuidelines(tools) {
68
+ const guidelines = [];
69
+ if (tools.includes('Read')) {
70
+ guidelines.push('- **Read**: Use to examine files before modifications');
71
+ }
72
+ if (tools.includes('Write')) {
73
+ guidelines.push('- **Write**: Use for creating new files only');
74
+ }
75
+ if (tools.includes('Edit')) {
76
+ guidelines.push('- **Edit**: Use for modifying existing files');
77
+ }
78
+ if (tools.includes('Bash')) {
79
+ guidelines.push('- **Bash**: Use for command execution, prefer non-destructive commands');
80
+ }
81
+ if (tools.includes('Grep')) {
82
+ guidelines.push('- **Grep**: Use for searching file contents');
83
+ }
84
+ if (tools.includes('Glob')) {
85
+ guidelines.push('- **Glob**: Use for finding files by pattern');
86
+ }
87
+ if (tools.includes('WebFetch')) {
88
+ guidelines.push('- **WebFetch**: Use for fetching web content');
89
+ }
90
+ if (tools.includes('WebSearch')) {
91
+ guidelines.push('- **WebSearch**: Use for searching the web');
92
+ }
93
+ return guidelines.length > 0 ? guidelines.join('\n') : '- Use tools minimally and efficiently';
94
+ }
95
+ /**
96
+ * Render the subagent definition template
97
+ *
98
+ * @param data - Template data including skill name, description, tools, etc.
99
+ * @returns Rendered subagent markdown content
100
+ */
101
+ export function renderSubagentTemplate(data) {
102
+ const toolGuidelines = generateToolGuidelines(data.tools);
103
+ const triggerPhrasesFormatted = data.triggerPhrases.length > 0
104
+ ? data.triggerPhrases.map((p) => `"${p}"`).join(', ')
105
+ : '[describe trigger conditions]';
106
+ return SUBAGENT_MD_TEMPLATE.replace(/\{\{skillName\}\}/g, data.skillName)
107
+ .replace(/\{\{description\}\}/g, data.description)
108
+ .replace(/\{\{triggerPhrases\}\}/g, triggerPhrasesFormatted)
109
+ .replace(/\{\{tools\}\}/g, data.tools.join(', '))
110
+ .replace(/\{\{model\}\}/g, data.model)
111
+ .replace(/\{\{toolGuidelines\}\}/g, toolGuidelines);
112
+ }
113
+ /**
114
+ * Render the CLAUDE.md integration snippet
115
+ *
116
+ * @param data - Template data
117
+ * @returns Rendered CLAUDE.md snippet
118
+ */
119
+ export function renderClaudeMdSnippet(data) {
120
+ const triggerPatterns = data.triggerPhrases.length > 0
121
+ ? data.triggerPhrases.map((p) => `- "${p}"`).join('\n')
122
+ : '- [add trigger patterns]';
123
+ const exampleTask = data.triggerPhrases.length > 0 ? `${data.triggerPhrases[0]}` : `execute ${data.skillName} task`;
124
+ return CLAUDE_MD_SNIPPET_TEMPLATE.replace(/\{\{skillName\}\}/g, data.skillName)
125
+ .replace(/\{\{triggerPatterns\}\}/g, triggerPatterns)
126
+ .replace(/\{\{exampleTask\}\}/g, exampleTask);
127
+ }
128
+ //# sourceMappingURL=subagent.md.template.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"subagent.md.template.js","sourceRoot":"","sources":["../../../src/templates/subagent.md.template.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,54 @@
1
+ /**
2
+ * SMI-1389: Tool Detection for Subagent Generation
3
+ *
4
+ * Analyzes SKILL.md content to determine minimal required tools
5
+ * for subagent execution, enabling context isolation and token savings.
6
+ */
7
+ export interface ToolAnalysis {
8
+ requiredTools: string[];
9
+ recommendedTools: string[];
10
+ detectedPatterns: string[];
11
+ confidence: 'high' | 'medium' | 'low';
12
+ }
13
+ interface ToolPattern {
14
+ always?: boolean;
15
+ patterns: string[];
16
+ }
17
+ /**
18
+ * Tool detection patterns
19
+ * Each tool has patterns that indicate its requirement
20
+ */
21
+ export declare const TOOL_PATTERNS: Record<string, ToolPattern>;
22
+ /**
23
+ * Analyze skill content to determine required tools
24
+ *
25
+ * @param skillContent - The full SKILL.md content
26
+ * @returns Analysis of required and recommended tools
27
+ */
28
+ export declare function analyzeToolRequirements(skillContent: string): ToolAnalysis;
29
+ /**
30
+ * Format tool list for YAML output
31
+ *
32
+ * @param tools - Array of tool names
33
+ * @returns Formatted string for YAML tools field
34
+ */
35
+ export declare function formatToolList(tools: string[]): string;
36
+ /**
37
+ * Parse comma-separated tools string into array
38
+ *
39
+ * @param toolsString - Comma-separated tools (e.g., "Read, Write, Bash")
40
+ * @returns Array of tool names
41
+ */
42
+ export declare function parseToolsString(toolsString: string): string[];
43
+ /**
44
+ * Validate that all tools in the list are recognized
45
+ *
46
+ * @param tools - Array of tool names to validate
47
+ * @returns Object with valid boolean and any unrecognized tools
48
+ */
49
+ export declare function validateTools(tools: string[]): {
50
+ valid: boolean;
51
+ unrecognized: string[];
52
+ };
53
+ export {};
54
+ //# sourceMappingURL=tool-analyzer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tool-analyzer.d.ts","sourceRoot":"","sources":["../../../src/utils/tool-analyzer.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,MAAM,WAAW,YAAY;IAC3B,aAAa,EAAE,MAAM,EAAE,CAAA;IACvB,gBAAgB,EAAE,MAAM,EAAE,CAAA;IAC1B,gBAAgB,EAAE,MAAM,EAAE,CAAA;IAC1B,UAAU,EAAE,MAAM,GAAG,QAAQ,GAAG,KAAK,CAAA;CACtC;AAED,UAAU,WAAW;IACnB,MAAM,CAAC,EAAE,OAAO,CAAA;IAChB,QAAQ,EAAE,MAAM,EAAE,CAAA;CACnB;AAED;;;GAGG;AACH,eAAO,MAAM,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,WAAW,CAsErD,CAAA;AAED;;;;;GAKG;AACH,wBAAgB,uBAAuB,CAAC,YAAY,EAAE,MAAM,GAAG,YAAY,CAmC1E;AAED;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,MAAM,CAKtD;AAED;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,EAAE,CAK9D;AAED;;;;;GAKG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG;IAAE,KAAK,EAAE,OAAO,CAAC;IAAC,YAAY,EAAE,MAAM,EAAE,CAAA;CAAE,CAQzF"}
@@ -0,0 +1,156 @@
1
+ /**
2
+ * SMI-1389: Tool Detection for Subagent Generation
3
+ *
4
+ * Analyzes SKILL.md content to determine minimal required tools
5
+ * for subagent execution, enabling context isolation and token savings.
6
+ */
7
+ /**
8
+ * Tool detection patterns
9
+ * Each tool has patterns that indicate its requirement
10
+ */
11
+ export const TOOL_PATTERNS = {
12
+ Read: { always: true, patterns: [] },
13
+ Write: {
14
+ patterns: [
15
+ 'write',
16
+ 'create file',
17
+ 'save',
18
+ 'output to file',
19
+ 'generate file',
20
+ 'write to',
21
+ 'create new file',
22
+ ],
23
+ },
24
+ Edit: {
25
+ patterns: [
26
+ 'edit',
27
+ 'modify',
28
+ 'update file',
29
+ 'patch',
30
+ 'change file',
31
+ 'replace in file',
32
+ 'refactor',
33
+ ],
34
+ },
35
+ Bash: {
36
+ patterns: [
37
+ 'bash',
38
+ 'npm',
39
+ 'npx',
40
+ 'run command',
41
+ 'execute',
42
+ 'terminal',
43
+ 'shell',
44
+ 'command line',
45
+ 'cli',
46
+ 'git ',
47
+ 'docker',
48
+ 'yarn',
49
+ 'pnpm',
50
+ ],
51
+ },
52
+ Grep: {
53
+ patterns: [
54
+ 'search',
55
+ 'find text',
56
+ 'grep',
57
+ 'pattern match',
58
+ 'search for',
59
+ 'look for',
60
+ 'find in files',
61
+ ],
62
+ },
63
+ Glob: {
64
+ patterns: ['find file', 'glob', 'file pattern', 'locate file', 'list files', 'find files'],
65
+ },
66
+ WebFetch: {
67
+ patterns: [
68
+ 'fetch',
69
+ 'http',
70
+ 'api call',
71
+ 'url',
72
+ 'web request',
73
+ 'download',
74
+ 'get from url',
75
+ 'request',
76
+ ],
77
+ },
78
+ WebSearch: {
79
+ patterns: ['web search', 'search online', 'google', 'lookup online', 'search the web'],
80
+ },
81
+ };
82
+ /**
83
+ * Analyze skill content to determine required tools
84
+ *
85
+ * @param skillContent - The full SKILL.md content
86
+ * @returns Analysis of required and recommended tools
87
+ */
88
+ export function analyzeToolRequirements(skillContent) {
89
+ const content = skillContent.toLowerCase();
90
+ const tools = new Set();
91
+ const patterns = [];
92
+ for (const [tool, config] of Object.entries(TOOL_PATTERNS)) {
93
+ // Always include tools marked as 'always'
94
+ if (config.always) {
95
+ tools.add(tool);
96
+ continue;
97
+ }
98
+ // Check each pattern for the tool
99
+ for (const pattern of config.patterns) {
100
+ if (content.includes(pattern)) {
101
+ tools.add(tool);
102
+ patterns.push(`${tool}: matched "${pattern}"`);
103
+ break; // Only need one match per tool
104
+ }
105
+ }
106
+ }
107
+ // Determine confidence based on pattern matches
108
+ const matchCount = patterns.length;
109
+ const confidence = matchCount >= 3 ? 'high' : matchCount >= 1 ? 'medium' : 'low';
110
+ const toolList = Array.from(tools);
111
+ return {
112
+ requiredTools: toolList,
113
+ recommendedTools: toolList,
114
+ detectedPatterns: patterns,
115
+ confidence,
116
+ };
117
+ }
118
+ /**
119
+ * Format tool list for YAML output
120
+ *
121
+ * @param tools - Array of tool names
122
+ * @returns Formatted string for YAML tools field
123
+ */
124
+ export function formatToolList(tools) {
125
+ if (tools.length === 0) {
126
+ return 'Read';
127
+ }
128
+ return tools.join(', ');
129
+ }
130
+ /**
131
+ * Parse comma-separated tools string into array
132
+ *
133
+ * @param toolsString - Comma-separated tools (e.g., "Read, Write, Bash")
134
+ * @returns Array of tool names
135
+ */
136
+ export function parseToolsString(toolsString) {
137
+ return toolsString
138
+ .split(',')
139
+ .map((t) => t.trim())
140
+ .filter((t) => t.length > 0);
141
+ }
142
+ /**
143
+ * Validate that all tools in the list are recognized
144
+ *
145
+ * @param tools - Array of tool names to validate
146
+ * @returns Object with valid boolean and any unrecognized tools
147
+ */
148
+ export function validateTools(tools) {
149
+ const validTools = new Set(Object.keys(TOOL_PATTERNS));
150
+ const unrecognized = tools.filter((t) => !validTools.has(t));
151
+ return {
152
+ valid: unrecognized.length === 0,
153
+ unrecognized,
154
+ };
155
+ }
156
+ //# sourceMappingURL=tool-analyzer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tool-analyzer.js","sourceRoot":"","sources":["../../../src/utils/tool-analyzer.ts"],"names":[],"mappings":"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"}
@@ -109,6 +109,80 @@ describe('SMI-746: Skill Authoring Commands', () => {
109
109
  });
110
110
  });
111
111
  });
112
+ describe('SMI-1389: Subagent Command', () => {
113
+ describe('createSubagentCommand', () => {
114
+ it('creates a command with correct name', async () => {
115
+ const { createSubagentCommand } = await import('../src/commands/author.js');
116
+ const cmd = createSubagentCommand();
117
+ expect(cmd).toBeInstanceOf(Command);
118
+ expect(cmd.name()).toBe('subagent');
119
+ });
120
+ it('has output option with default', async () => {
121
+ const { createSubagentCommand } = await import('../src/commands/author.js');
122
+ const cmd = createSubagentCommand();
123
+ const outputOpt = cmd.options.find((o) => o.short === '-o');
124
+ expect(outputOpt).toBeDefined();
125
+ expect(outputOpt?.defaultValue).toBe('~/.claude/agents');
126
+ });
127
+ it('has model option with default sonnet', async () => {
128
+ const { createSubagentCommand } = await import('../src/commands/author.js');
129
+ const cmd = createSubagentCommand();
130
+ const modelOpt = cmd.options.find((o) => o.long === '--model');
131
+ expect(modelOpt).toBeDefined();
132
+ expect(modelOpt?.defaultValue).toBe('sonnet');
133
+ });
134
+ it('has force flag', async () => {
135
+ const { createSubagentCommand } = await import('../src/commands/author.js');
136
+ const cmd = createSubagentCommand();
137
+ const forceOpt = cmd.options.find((o) => o.long === '--force');
138
+ expect(forceOpt).toBeDefined();
139
+ });
140
+ it('has skip-claude-md flag', async () => {
141
+ const { createSubagentCommand } = await import('../src/commands/author.js');
142
+ const cmd = createSubagentCommand();
143
+ const skipOpt = cmd.options.find((o) => o.long === '--skip-claude-md');
144
+ expect(skipOpt).toBeDefined();
145
+ });
146
+ });
147
+ });
148
+ describe('SMI-1390: Transform Command', () => {
149
+ describe('createTransformCommand', () => {
150
+ it('creates a command with correct name', async () => {
151
+ const { createTransformCommand } = await import('../src/commands/author.js');
152
+ const cmd = createTransformCommand();
153
+ expect(cmd).toBeInstanceOf(Command);
154
+ expect(cmd.name()).toBe('transform');
155
+ });
156
+ it('has dry-run flag', async () => {
157
+ const { createTransformCommand } = await import('../src/commands/author.js');
158
+ const cmd = createTransformCommand();
159
+ const dryRunOpt = cmd.options.find((o) => o.long === '--dry-run');
160
+ expect(dryRunOpt).toBeDefined();
161
+ });
162
+ it('has batch flag', async () => {
163
+ const { createTransformCommand } = await import('../src/commands/author.js');
164
+ const cmd = createTransformCommand();
165
+ const batchOpt = cmd.options.find((o) => o.long === '--batch');
166
+ expect(batchOpt).toBeDefined();
167
+ });
168
+ it('has force flag', async () => {
169
+ const { createTransformCommand } = await import('../src/commands/author.js');
170
+ const cmd = createTransformCommand();
171
+ const forceOpt = cmd.options.find((o) => o.long === '--force');
172
+ expect(forceOpt).toBeDefined();
173
+ });
174
+ });
175
+ describe('Exported Functions', () => {
176
+ it('exports generateSubagent function', async () => {
177
+ const module = await import('../src/commands/author.js');
178
+ expect(typeof module.generateSubagent).toBe('function');
179
+ });
180
+ it('exports transformSkill function', async () => {
181
+ const module = await import('../src/commands/author.js');
182
+ expect(typeof module.transformSkill).toBe('function');
183
+ });
184
+ });
185
+ });
112
186
  describe('Templates', () => {
113
187
  describe('SKILL_MD_TEMPLATE', () => {
114
188
  it('is exported from templates', async () => {
@@ -145,5 +219,151 @@ describe('Templates', () => {
145
219
  expect(README_MD_TEMPLATE).toContain('~/.claude/skills/');
146
220
  });
147
221
  });
222
+ describe('SUBAGENT_MD_TEMPLATE', () => {
223
+ it('is exported from templates', async () => {
224
+ const { SUBAGENT_MD_TEMPLATE } = await import('../src/templates/index.js');
225
+ expect(typeof SUBAGENT_MD_TEMPLATE).toBe('string');
226
+ });
227
+ it('contains required placeholders', async () => {
228
+ const { SUBAGENT_MD_TEMPLATE } = await import('../src/templates/index.js');
229
+ expect(SUBAGENT_MD_TEMPLATE).toContain('{{skillName}}');
230
+ expect(SUBAGENT_MD_TEMPLATE).toContain('{{description}}');
231
+ expect(SUBAGENT_MD_TEMPLATE).toContain('{{tools}}');
232
+ expect(SUBAGENT_MD_TEMPLATE).toContain('{{model}}');
233
+ });
234
+ it('contains YAML frontmatter delimiters', async () => {
235
+ const { SUBAGENT_MD_TEMPLATE } = await import('../src/templates/index.js');
236
+ expect(SUBAGENT_MD_TEMPLATE).toMatch(/^---/);
237
+ expect(SUBAGENT_MD_TEMPLATE).toContain('---\n\n##');
238
+ });
239
+ it('contains Operating Protocol section', async () => {
240
+ const { SUBAGENT_MD_TEMPLATE } = await import('../src/templates/index.js');
241
+ expect(SUBAGENT_MD_TEMPLATE).toContain('## Operating Protocol');
242
+ });
243
+ it('contains Output Format section', async () => {
244
+ const { SUBAGENT_MD_TEMPLATE } = await import('../src/templates/index.js');
245
+ expect(SUBAGENT_MD_TEMPLATE).toContain('## Output Format');
246
+ });
247
+ });
248
+ describe('renderSubagentTemplate', () => {
249
+ it('renders template with provided data', async () => {
250
+ const { renderSubagentTemplate } = await import('../src/templates/index.js');
251
+ const result = renderSubagentTemplate({
252
+ skillName: 'test-skill',
253
+ description: 'A test skill',
254
+ triggerPhrases: ['run test', 'execute test'],
255
+ tools: ['Read', 'Bash'],
256
+ model: 'sonnet',
257
+ });
258
+ expect(result).toContain('name: test-skill-specialist');
259
+ expect(result).toContain('A test skill');
260
+ expect(result).toContain('Read, Bash');
261
+ expect(result).toContain('model: sonnet');
262
+ });
263
+ it('formats trigger phrases correctly', async () => {
264
+ const { renderSubagentTemplate } = await import('../src/templates/index.js');
265
+ const result = renderSubagentTemplate({
266
+ skillName: 'my-skill',
267
+ description: 'Description',
268
+ triggerPhrases: ['phrase one', 'phrase two'],
269
+ tools: ['Read'],
270
+ model: 'haiku',
271
+ });
272
+ expect(result).toContain('"phrase one"');
273
+ expect(result).toContain('"phrase two"');
274
+ });
275
+ });
276
+ describe('renderClaudeMdSnippet', () => {
277
+ it('renders CLAUDE.md snippet', async () => {
278
+ const { renderClaudeMdSnippet } = await import('../src/templates/index.js');
279
+ const result = renderClaudeMdSnippet({
280
+ skillName: 'my-skill',
281
+ description: 'A cool skill',
282
+ triggerPhrases: ['do something'],
283
+ tools: ['Read', 'Write'],
284
+ model: 'opus',
285
+ });
286
+ expect(result).toContain('Subagent Delegation: my-skill');
287
+ expect(result).toContain('my-skill-specialist');
288
+ expect(result).toContain('do something');
289
+ });
290
+ });
291
+ });
292
+ describe('Tool Analyzer', () => {
293
+ describe('analyzeToolRequirements', () => {
294
+ it('always includes Read tool', async () => {
295
+ const { analyzeToolRequirements } = await import('../src/utils/tool-analyzer.js');
296
+ const result = analyzeToolRequirements('Some basic content');
297
+ expect(result.requiredTools).toContain('Read');
298
+ });
299
+ it('detects Write tool from content', async () => {
300
+ const { analyzeToolRequirements } = await import('../src/utils/tool-analyzer.js');
301
+ const result = analyzeToolRequirements('This skill will write files');
302
+ expect(result.requiredTools).toContain('Write');
303
+ });
304
+ it('detects Bash tool from npm commands', async () => {
305
+ const { analyzeToolRequirements } = await import('../src/utils/tool-analyzer.js');
306
+ const result = analyzeToolRequirements('Run npm install to set up');
307
+ expect(result.requiredTools).toContain('Bash');
308
+ });
309
+ it('detects Grep tool from search patterns', async () => {
310
+ const { analyzeToolRequirements } = await import('../src/utils/tool-analyzer.js');
311
+ const result = analyzeToolRequirements('Search for text in files');
312
+ expect(result.requiredTools).toContain('Grep');
313
+ });
314
+ it('detects WebFetch from URL mentions', async () => {
315
+ const { analyzeToolRequirements } = await import('../src/utils/tool-analyzer.js');
316
+ const result = analyzeToolRequirements('Fetch data from the API using http requests');
317
+ expect(result.requiredTools).toContain('WebFetch');
318
+ });
319
+ it('returns high confidence for many matches', async () => {
320
+ const { analyzeToolRequirements } = await import('../src/utils/tool-analyzer.js');
321
+ const result = analyzeToolRequirements('Write files, run bash commands, search text, and fetch URLs');
322
+ expect(result.confidence).toBe('high');
323
+ });
324
+ it('returns low confidence for no matches', async () => {
325
+ const { analyzeToolRequirements } = await import('../src/utils/tool-analyzer.js');
326
+ const result = analyzeToolRequirements('Simple description with no tool keywords');
327
+ expect(result.confidence).toBe('low');
328
+ });
329
+ });
330
+ describe('formatToolList', () => {
331
+ it('formats tool array to comma-separated string', async () => {
332
+ const { formatToolList } = await import('../src/utils/tool-analyzer.js');
333
+ const result = formatToolList(['Read', 'Write', 'Bash']);
334
+ expect(result).toBe('Read, Write, Bash');
335
+ });
336
+ it('returns Read for empty array', async () => {
337
+ const { formatToolList } = await import('../src/utils/tool-analyzer.js');
338
+ const result = formatToolList([]);
339
+ expect(result).toBe('Read');
340
+ });
341
+ });
342
+ describe('parseToolsString', () => {
343
+ it('parses comma-separated tools', async () => {
344
+ const { parseToolsString } = await import('../src/utils/tool-analyzer.js');
345
+ const result = parseToolsString('Read, Write, Bash');
346
+ expect(result).toEqual(['Read', 'Write', 'Bash']);
347
+ });
348
+ it('trims whitespace', async () => {
349
+ const { parseToolsString } = await import('../src/utils/tool-analyzer.js');
350
+ const result = parseToolsString(' Read , Write ');
351
+ expect(result).toEqual(['Read', 'Write']);
352
+ });
353
+ });
354
+ describe('validateTools', () => {
355
+ it('validates known tools', async () => {
356
+ const { validateTools } = await import('../src/utils/tool-analyzer.js');
357
+ const result = validateTools(['Read', 'Write', 'Bash']);
358
+ expect(result.valid).toBe(true);
359
+ expect(result.unrecognized).toEqual([]);
360
+ });
361
+ it('identifies unrecognized tools', async () => {
362
+ const { validateTools } = await import('../src/utils/tool-analyzer.js');
363
+ const result = validateTools(['Read', 'UnknownTool']);
364
+ expect(result.valid).toBe(false);
365
+ expect(result.unrecognized).toContain('UnknownTool');
366
+ });
367
+ });
148
368
  });
149
369
  //# sourceMappingURL=author.test.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"author.test.js","sourceRoot":"","sources":["../../tests/author.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"author.test.js","sourceRoot":"","sources":["../../tests/author.test.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@skillsmith/cli",
3
- "version": "0.2.2",
3
+ "version": "0.2.3",
4
4
  "description": "CLI tools for Skillsmith skill discovery",
5
5
  "type": "module",
6
6
  "bin": {