claude-skills-cli 0.0.7 → 0.0.9
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 +15 -0
- package/dist/commands/doctor.js +128 -0
- package/dist/commands/doctor.js.map +1 -0
- package/dist/core/templates.js +18 -0
- package/dist/core/templates.js.map +1 -1
- package/dist/core/validator.js +10 -5
- package/dist/core/validator.js.map +1 -1
- package/dist/index.js +15 -0
- package/dist/index.js.map +1 -1
- package/dist/skills/skill-creator/SKILL.md +15 -24
- package/dist/skills/skill-creator/references/cli-reference.md +117 -3
- package/dist/skills/skill-creator/references/quick-start.md +96 -0
- package/dist/validators/frontmatter-validator.js +54 -3
- package/dist/validators/frontmatter-validator.js.map +1 -1
- package/docs/prompt-that-started-it-all.md +19 -0
- package/package.json +1 -1
- package/docs/CLI-IMPROVEMENTS.md +0 -960
- package/docs/SKILL-CREATOR-UPDATES.md +0 -1071
- package/docs/SKILL-DEVELOPMENT.md +0 -460
- package/docs/SKILL-EXAMPLES.md +0 -528
- package/docs/SKILLS-ARCHITECTURE.md +0 -381
- package/docs/SKILLS-ECOSYSTEM-ANALYSIS.md +0 -509
- package/docs/SKILLS-OPPORTUNITIES.md +0 -652
package/README.md
CHANGED
|
@@ -90,6 +90,21 @@ Comprehensive validation including:
|
|
|
90
90
|
Use `--strict` to fail on warnings, `--format json` for programmatic
|
|
91
91
|
use.
|
|
92
92
|
|
|
93
|
+
### doctor
|
|
94
|
+
|
|
95
|
+
```bash
|
|
96
|
+
pnpx claude-skills-cli doctor .claude/skills/my-skill
|
|
97
|
+
```
|
|
98
|
+
|
|
99
|
+
Automatically fixes common skill issues:
|
|
100
|
+
|
|
101
|
+
- **Multi-line descriptions**: Adds `# prettier-ignore` and reflows
|
|
102
|
+
description to single line
|
|
103
|
+
- Ensures Claude Code can recognize the skill
|
|
104
|
+
|
|
105
|
+
Run after formatting or if validation warns about multi-line
|
|
106
|
+
descriptions.
|
|
107
|
+
|
|
93
108
|
### stats
|
|
94
109
|
|
|
95
110
|
```bash
|
|
@@ -0,0 +1,128 @@
|
|
|
1
|
+
import { readFileSync, writeFileSync } from 'node:fs';
|
|
2
|
+
import { basename, join } from 'node:path';
|
|
3
|
+
import { error, info, success } from '../utils/output.js';
|
|
4
|
+
import { extract_frontmatter, is_description_multiline, } from '../validators/frontmatter-validator.js';
|
|
5
|
+
export function doctor_command(options) {
|
|
6
|
+
const { skill_path } = options;
|
|
7
|
+
const skill_name = basename(skill_path);
|
|
8
|
+
const skill_md_path = join(skill_path, 'SKILL.md');
|
|
9
|
+
info(`Running doctor on: ${skill_name}`);
|
|
10
|
+
console.log('='.repeat(60));
|
|
11
|
+
// Read SKILL.md
|
|
12
|
+
let content;
|
|
13
|
+
try {
|
|
14
|
+
content = readFileSync(skill_md_path, 'utf-8');
|
|
15
|
+
}
|
|
16
|
+
catch (err) {
|
|
17
|
+
error(`Failed to read SKILL.md: ${err}`);
|
|
18
|
+
process.exit(1);
|
|
19
|
+
}
|
|
20
|
+
// Extract frontmatter
|
|
21
|
+
const frontmatter_data = extract_frontmatter(content);
|
|
22
|
+
if (!frontmatter_data.description_is_multiline) {
|
|
23
|
+
success('No issues found. Description is already on a single line.');
|
|
24
|
+
process.exit(0);
|
|
25
|
+
}
|
|
26
|
+
info('Found multi-line description. Fixing...');
|
|
27
|
+
// Fix the multi-line description
|
|
28
|
+
const fixed_content = fix_multiline_description(content);
|
|
29
|
+
// Write fixed content back
|
|
30
|
+
try {
|
|
31
|
+
writeFileSync(skill_md_path, fixed_content, 'utf-8');
|
|
32
|
+
success('Fixed multi-line description!');
|
|
33
|
+
console.log('\nChanges made:');
|
|
34
|
+
console.log(' • Added # prettier-ignore comment before description');
|
|
35
|
+
console.log(' • Reflowed description to single line');
|
|
36
|
+
console.log('\n✓ Run validate command to confirm the fix');
|
|
37
|
+
process.exit(0);
|
|
38
|
+
}
|
|
39
|
+
catch (err) {
|
|
40
|
+
error(`Failed to write SKILL.md: ${err}`);
|
|
41
|
+
process.exit(1);
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
/**
|
|
45
|
+
* Fix multi-line description by adding prettier-ignore and reflowing to single line
|
|
46
|
+
*/
|
|
47
|
+
function fix_multiline_description(content) {
|
|
48
|
+
const lines = content.split('\n');
|
|
49
|
+
const fixed_lines = [];
|
|
50
|
+
let in_frontmatter = false;
|
|
51
|
+
let frontmatter_count = 0;
|
|
52
|
+
let in_description = false;
|
|
53
|
+
let description_parts = [];
|
|
54
|
+
let description_line_index = -1;
|
|
55
|
+
for (let i = 0; i < lines.length; i++) {
|
|
56
|
+
const line = lines[i];
|
|
57
|
+
// Track frontmatter boundaries
|
|
58
|
+
if (line.trim() === '---') {
|
|
59
|
+
frontmatter_count++;
|
|
60
|
+
// If we're closing frontmatter and still collecting description
|
|
61
|
+
if (frontmatter_count === 2 && in_description) {
|
|
62
|
+
// Write out the collected description
|
|
63
|
+
const full_description = description_parts.join(' ');
|
|
64
|
+
fixed_lines.push(`description: ${full_description}`);
|
|
65
|
+
description_parts = [];
|
|
66
|
+
in_description = false;
|
|
67
|
+
}
|
|
68
|
+
in_frontmatter = frontmatter_count === 1;
|
|
69
|
+
fixed_lines.push(line);
|
|
70
|
+
continue;
|
|
71
|
+
}
|
|
72
|
+
// Not in frontmatter, just pass through
|
|
73
|
+
if (!in_frontmatter) {
|
|
74
|
+
fixed_lines.push(line);
|
|
75
|
+
continue;
|
|
76
|
+
}
|
|
77
|
+
// Check if this is the description line
|
|
78
|
+
if (line.match(/^description:/)) {
|
|
79
|
+
// Check if it's already multi-line
|
|
80
|
+
if (!is_description_multiline(lines.slice(i).join('\n'))) {
|
|
81
|
+
// Single line, just pass through
|
|
82
|
+
fixed_lines.push(line);
|
|
83
|
+
continue;
|
|
84
|
+
}
|
|
85
|
+
in_description = true;
|
|
86
|
+
description_line_index = fixed_lines.length;
|
|
87
|
+
// Extract value on same line (if any)
|
|
88
|
+
const match = line.match(/^description:\s*(.*)$/);
|
|
89
|
+
const value_on_line = match ? match[1].trim() : '';
|
|
90
|
+
if (value_on_line) {
|
|
91
|
+
description_parts.push(value_on_line);
|
|
92
|
+
}
|
|
93
|
+
// Add prettier-ignore comment
|
|
94
|
+
fixed_lines.push('# prettier-ignore');
|
|
95
|
+
// We'll add the description line later
|
|
96
|
+
continue;
|
|
97
|
+
}
|
|
98
|
+
// If we're in description, collect continuation lines
|
|
99
|
+
if (in_description) {
|
|
100
|
+
// Stop if we hit another YAML field
|
|
101
|
+
if (line.match(/^[a-z_-]+:/)) {
|
|
102
|
+
// Done collecting description, write it out
|
|
103
|
+
const full_description = description_parts.join(' ');
|
|
104
|
+
fixed_lines.push(`description: ${full_description}`);
|
|
105
|
+
description_parts = [];
|
|
106
|
+
in_description = false;
|
|
107
|
+
// Add the current line (next field)
|
|
108
|
+
fixed_lines.push(line);
|
|
109
|
+
continue;
|
|
110
|
+
}
|
|
111
|
+
// Continuation line - collect it
|
|
112
|
+
const trimmed = line.trim();
|
|
113
|
+
if (trimmed && !trimmed.startsWith('#')) {
|
|
114
|
+
description_parts.push(trimmed);
|
|
115
|
+
}
|
|
116
|
+
continue;
|
|
117
|
+
}
|
|
118
|
+
// Regular frontmatter line
|
|
119
|
+
fixed_lines.push(line);
|
|
120
|
+
}
|
|
121
|
+
// If we ended while still in description (at end of frontmatter)
|
|
122
|
+
if (in_description && description_parts.length > 0) {
|
|
123
|
+
const full_description = description_parts.join(' ');
|
|
124
|
+
fixed_lines.push(`description: ${full_description}`);
|
|
125
|
+
}
|
|
126
|
+
return fixed_lines.join('\n');
|
|
127
|
+
}
|
|
128
|
+
//# sourceMappingURL=doctor.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"doctor.js","sourceRoot":"","sources":["../../src/commands/doctor.ts"],"names":[],"mappings":"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"}
|
package/dist/core/templates.js
CHANGED
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
export const SKILL_MD_TEMPLATE = (name, description, title, include_examples = false) => {
|
|
2
2
|
const minimal_template = `---
|
|
3
3
|
name: ${name}
|
|
4
|
+
# IMPORTANT: Keep description on ONE line for Claude Code compatibility
|
|
5
|
+
# prettier-ignore
|
|
4
6
|
description: ${description}
|
|
5
7
|
---
|
|
6
8
|
|
|
@@ -44,10 +46,19 @@ PROGRESSIVE DISCLOSURE GUIDELINES:
|
|
|
44
46
|
- Keep description <200 chars for Level 1 efficiency
|
|
45
47
|
- Move detailed docs to references/ for Level 3 loading
|
|
46
48
|
- This is Level 2 - quick reference ONLY, not a manual
|
|
49
|
+
|
|
50
|
+
LLM WORKFLOW (when editing this file):
|
|
51
|
+
1. Write/edit SKILL.md
|
|
52
|
+
2. Format (if formatter available)
|
|
53
|
+
3. Run: claude-skills-cli validate <path>
|
|
54
|
+
4. If multi-line description warning: run claude-skills-cli doctor <path>
|
|
55
|
+
5. Validate again to confirm
|
|
47
56
|
-->
|
|
48
57
|
`;
|
|
49
58
|
const full_template = `---
|
|
50
59
|
name: ${name}
|
|
60
|
+
# IMPORTANT: Keep description on ONE line for Claude Code compatibility
|
|
61
|
+
# prettier-ignore
|
|
51
62
|
description: ${description}
|
|
52
63
|
---
|
|
53
64
|
|
|
@@ -96,6 +107,13 @@ PROGRESSIVE DISCLOSURE GUIDELINES:
|
|
|
96
107
|
- Keep description <200 chars for Level 1 efficiency
|
|
97
108
|
- Move detailed docs to references/ for Level 3 loading
|
|
98
109
|
- This is Level 2 - quick reference ONLY, not a manual
|
|
110
|
+
|
|
111
|
+
LLM WORKFLOW (when editing this file):
|
|
112
|
+
1. Write/edit SKILL.md
|
|
113
|
+
2. Format (if formatter available)
|
|
114
|
+
3. Run: claude-skills-cli validate <path>
|
|
115
|
+
4. If multi-line description warning: run claude-skills-cli doctor <path>
|
|
116
|
+
5. Validate again to confirm
|
|
99
117
|
-->
|
|
100
118
|
`;
|
|
101
119
|
return include_examples ? full_template : minimal_template;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"templates.js","sourceRoot":"","sources":["../../src/core/templates.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAChC,IAAY,EACZ,WAAmB,EACnB,KAAa,EACb,mBAA4B,KAAK,EAChC,EAAE;IACH,MAAM,gBAAgB,GAAG;QAClB,IAAI
|
|
1
|
+
{"version":3,"file":"templates.js","sourceRoot":"","sources":["../../src/core/templates.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAChC,IAAY,EACZ,WAAmB,EACnB,KAAa,EACb,mBAA4B,KAAK,EAChC,EAAE;IACH,MAAM,gBAAgB,GAAG;QAClB,IAAI;;;eAGG,WAAW;;;IAGtB,KAAK;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAgDR,CAAC;IAED,MAAM,aAAa,GAAG;QACf,IAAI;;;eAGG,WAAW;;;IAGtB,KAAK;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAqDR,CAAC;IAED,OAAO,gBAAgB,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,gBAAgB,CAAC;AAC5D,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,kBAAkB,GAAG,CACjC,KAAa,EACZ,EAAE,CAAC,KAAK,KAAK;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAsDd,CAAC;AAEF,MAAM,CAAC,MAAM,eAAe,GAAG,CAC9B,QAAgB,EACf,EAAE,CAAC;;;;;;YAMO,QAAQ;;;;;;;;CAQnB,CAAC;AAEF,MAAM,CAAC,MAAM,eAAe,GAAG,CAC9B,KAAa,EACb,WAAmB,EAClB,EAAE,CAAC,KAAK,KAAK;;EAEb,WAAW;;;;;;;;;;;;CAYZ,CAAC"}
|
package/dist/core/validator.js
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
import { existsSync, readFileSync } from 'node:fs';
|
|
2
2
|
import { join } from 'node:path';
|
|
3
3
|
// Import validators
|
|
4
|
-
import { extract_frontmatter, validate_frontmatter_structure, validate_name_format, validate_hard_limits, } from '../validators/frontmatter-validator.js';
|
|
5
|
-
import { validate_description_content, analyze_trigger_phrase, analyze_user_phrasing, } from '../validators/description-validator.js';
|
|
6
|
-
import { validate_content } from '../validators/content-validator.js';
|
|
7
4
|
import { analyze_alignment } from '../validators/alignment-validator.js';
|
|
5
|
+
import { validate_content } from '../validators/content-validator.js';
|
|
6
|
+
import { analyze_trigger_phrase, analyze_user_phrasing, validate_description_content, } from '../validators/description-validator.js';
|
|
7
|
+
import { validate_assets, validate_directory, validate_path_formats, validate_scripts, } from '../validators/file-structure-validator.js';
|
|
8
|
+
import { extract_frontmatter, validate_frontmatter_structure, validate_hard_limits, validate_name_format, } from '../validators/frontmatter-validator.js';
|
|
8
9
|
import { validate_references } from '../validators/references-validator.js';
|
|
9
|
-
import { validate_directory, validate_path_formats, validate_scripts, validate_assets, } from '../validators/file-structure-validator.js';
|
|
10
10
|
export class SkillValidator {
|
|
11
11
|
skill_path;
|
|
12
12
|
errors = [];
|
|
@@ -114,11 +114,16 @@ export class SkillValidator {
|
|
|
114
114
|
return false;
|
|
115
115
|
}
|
|
116
116
|
// Extract frontmatter data
|
|
117
|
-
const { name, description, body } = extract_frontmatter(content);
|
|
117
|
+
const { name, description, body, description_is_multiline } = extract_frontmatter(content);
|
|
118
118
|
if (!name || !description) {
|
|
119
119
|
this.error('Failed to extract name or description from frontmatter');
|
|
120
120
|
return false;
|
|
121
121
|
}
|
|
122
|
+
// Warn if description spans multiple lines
|
|
123
|
+
if (description_is_multiline) {
|
|
124
|
+
this.warning(`Multi-line description detected. Claude Code cannot recognize skills with multi-line descriptions.\n` +
|
|
125
|
+
` → Run 'claude-skills-cli doctor ${this.skill_path}' to fix automatically`);
|
|
126
|
+
}
|
|
122
127
|
// Get directory name
|
|
123
128
|
const dir_name = this.skill_path.split('/').pop() || '';
|
|
124
129
|
// Validate name format
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"validator.js","sourceRoot":"","sources":["../../src/core/validator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACnD,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAOjC,oBAAoB;AACpB,OAAO,
|
|
1
|
+
{"version":3,"file":"validator.js","sourceRoot":"","sources":["../../src/core/validator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACnD,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAOjC,oBAAoB;AACpB,OAAO,EAAE,iBAAiB,EAAE,MAAM,sCAAsC,CAAC;AACzE,OAAO,EAAE,gBAAgB,EAAE,MAAM,oCAAoC,CAAC;AACtE,OAAO,EACN,sBAAsB,EACtB,qBAAqB,EACrB,4BAA4B,GAC5B,MAAM,wCAAwC,CAAC;AAChD,OAAO,EACN,eAAe,EACf,kBAAkB,EAClB,qBAAqB,EACrB,gBAAgB,GAChB,MAAM,2CAA2C,CAAC;AACnD,OAAO,EACN,mBAAmB,EACnB,8BAA8B,EAC9B,oBAAoB,EACpB,oBAAoB,GACpB,MAAM,wCAAwC,CAAC;AAChD,OAAO,EAAE,mBAAmB,EAAE,MAAM,uCAAuC,CAAC;AAE5E,MAAM,OAAO,cAAc;IAClB,UAAU,CAAS;IACnB,MAAM,GAAa,EAAE,CAAC;IACtB,QAAQ,GAAa,EAAE,CAAC;IACxB,KAAK,GAAoB;QAChC,UAAU,EAAE,CAAC;QACb,gBAAgB,EAAE,CAAC;QACnB,UAAU,EAAE,CAAC;QACb,kBAAkB,EAAE,CAAC;QACrB,kBAAkB,EAAE,CAAC;QACrB,WAAW,EAAE,CAAC;QACd,QAAQ,EAAE,CAAC;QACX,eAAe,EAAE,CAAC;KAClB,CAAC;IAEF,6BAA6B;IACrB,qBAAqB,GAAyB;QACrD,WAAW,EAAE;YACZ,IAAI,EAAE,EAAE,MAAM,EAAE,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE;YACxD,WAAW,EAAE;gBACZ,MAAM,EAAE,CAAC;gBACT,KAAK,EAAE,IAAI;gBACX,KAAK,EAAE,IAAI;gBACX,KAAK,EAAE,IAAI;aACX;SACD;QACD,WAAW,EAAE;YACZ,IAAI,EAAE,EAAE;YACR,YAAY,EAAE,IAAI;YAClB,cAAc,EAAE,EAAE;YAClB,iBAAiB,EAAE,IAAI;YACvB,MAAM,EAAE,EAAE;SACV;QACD,eAAe,EAAE;YAChB,KAAK,EAAE,IAAI;YACX,eAAe,EAAE,KAAK;YACtB,WAAW,EAAE,IAAI;YACjB,cAAc,EAAE,EAAE;SAClB;QACD,WAAW,EAAE;YACZ,aAAa,EAAE,EAAE;SACjB;QACD,UAAU,EAAE;YACX,cAAc,EAAE;gBACf,oBAAoB,EAAE,KAAK;gBAC3B,cAAc,EAAE,IAAI;gBACpB,YAAY,EAAE,SAAS;aACvB;YACD,aAAa,EAAE;gBACd,YAAY,EAAE;oBACb,eAAe,EAAE,IAAI;oBACrB,gBAAgB,EAAE,IAAI;oBACtB,kBAAkB,EAAE,IAAI;iBACxB;gBACD,MAAM,EAAE,EAAE;aACV;YACD,QAAQ,EAAE;gBACT,oBAAoB,EAAE,EAAE;gBACxB,gBAAgB,EAAE,EAAE;gBACpB,OAAO,EAAE,EAAE;gBACX,gBAAgB,EAAE,EAAE;gBACpB,YAAY,EAAE,EAAE;aAChB;YACD,SAAS,EAAE;gBACV,QAAQ,EAAE,MAAM;gBAChB,iBAAiB,EAAE,EAAE;gBACrB,aAAa,EAAE,EAAE;gBACjB,OAAO,EAAE,EAAE;gBACX,UAAU,EAAE,EAAE;gBACd,WAAW,EAAE,EAAE;aACf;SACD;KACD,CAAC;IAEF,YAAY,UAAkB;QAC7B,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;IAC9B,CAAC;IAEO,KAAK,CAAC,GAAW;QACxB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC,CAAC;IAC9B,CAAC;IAEO,OAAO,CAAC,GAAW;QAC1B,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,GAAG,EAAE,CAAC,CAAC;IAClC,CAAC;IAEO,iBAAiB;QACxB,MAAM,aAAa,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,UAAU,CAAC,CAAC;QAExD,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,EAAE,CAAC;YAChC,IAAI,CAAC,KAAK,CAAC,yBAAyB,CAAC,CAAC;YACtC,OAAO,KAAK,CAAC;QACd,CAAC;QAED,MAAM,OAAO,GAAG,YAAY,CAAC,aAAa,EAAE,OAAO,CAAC,CAAC;QAErD,iDAAiD;QACjD,MAAM,kBAAkB,GAAG,qBAAqB,CAAC,OAAO,CAAC,CAAC;QAC1D,IAAI,CAAC,qBAAqB,CAAC,WAAW;YACrC,kBAAkB,CAAC,UAAU,CAAC;QAC/B,kBAAkB,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE,CACzC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,CACvB,CAAC;QAEF,iCAAiC;QACjC,MAAM,sBAAsB,GAC3B,8BAA8B,CAAC,OAAO,CAAC,CAAC;QACzC,IAAI,CAAC,qBAAqB,CAAC,eAAe;YACzC,sBAAsB,CAAC;QAExB,IAAI,CAAC,sBAAsB,CAAC,KAAK,EAAE,CAAC;YACnC,IAAI,sBAAsB,CAAC,WAAW,EAAE,CAAC;gBACxC,IAAI,CAAC,KAAK,CAAC,sBAAsB,CAAC,WAAW,CAAC,CAAC;YAChD,CAAC;YACD,sBAAsB,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE;gBACvD,IAAI,CAAC,KAAK,CAAC,iCAAiC,KAAK,SAAS,CAAC,CAAC;YAC7D,CAAC,CAAC,CAAC;YACH,OAAO,KAAK,CAAC;QACd,CAAC;QAED,2BAA2B;QAC3B,MAAM,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,wBAAwB,EAAE,GAC1D,mBAAmB,CAAC,OAAO,CAAC,CAAC;QAE9B,IAAI,CAAC,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;YAC3B,IAAI,CAAC,KAAK,CACT,wDAAwD,CACxD,CAAC;YACF,OAAO,KAAK,CAAC;QACd,CAAC;QAED,2CAA2C;QAC3C,IAAI,wBAAwB,EAAE,CAAC;YAC9B,IAAI,CAAC,OAAO,CACX,sGAAsG;gBACrG,qCAAqC,IAAI,CAAC,UAAU,wBAAwB,CAC7E,CAAC;QACH,CAAC;QAED,qBAAqB;QACrB,MAAM,QAAQ,GAAG,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,IAAI,EAAE,CAAC;QAExD,uBAAuB;QACvB,MAAM,eAAe,GAAG,oBAAoB,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;QAC7D,IAAI,CAAC,qBAAqB,CAAC,WAAW,GAAG,eAAe,CAAC;QACzD,eAAe,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC;QAEzD,uBAAuB;QACvB,MAAM,WAAW,GAAG,oBAAoB,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC;QAC5D,IAAI,CAAC,qBAAqB,CAAC,WAAW,GAAG,WAAW,CAAC;QAErD,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,IAAI,WAAW,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;YACvD,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACpC,CAAC;QAED,IACC,CAAC,WAAW,CAAC,WAAW,CAAC,KAAK;YAC9B,WAAW,CAAC,WAAW,CAAC,KAAK,EAC5B,CAAC;YACF,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;QAC3C,CAAC;QAED,+BAA+B;QAC/B,MAAM,eAAe,GAAG,4BAA4B,CAAC,WAAW,CAAC,CAAC;QAClE,IAAI,CAAC,KAAK,CAAC,kBAAkB;YAC5B,eAAe,CAAC,KAAK,CAAC,kBAAkB,CAAC;QAC1C,IAAI,CAAC,KAAK,CAAC,kBAAkB;YAC5B,eAAe,CAAC,KAAK,CAAC,kBAAkB,CAAC;QAC1C,eAAe,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC;QACjE,eAAe,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE,CACzC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAC1B,CAAC;QAEF,yBAAyB;QACzB,MAAM,gBAAgB,GAAG,sBAAsB,CAAC,WAAW,CAAC,CAAC;QAC7D,IAAI,CAAC,qBAAqB,CAAC,UAAW,CAAC,cAAc;YACpD,gBAAgB,CAAC;QAElB,IAAI,CAAC,gBAAgB,CAAC,oBAAoB,EAAE,CAAC;YAC5C,IAAI,CAAC,OAAO,CACX,0FAA0F;gBACzF,kDAAkD,CACnD,CAAC;QACH,CAAC;QAED,wBAAwB;QACxB,MAAM,EACL,QAAQ,EAAE,iBAAiB,EAC3B,QAAQ,EAAE,iBAAiB,GAC3B,GAAG,qBAAqB,CAAC,WAAW,CAAC,CAAC;QACvC,IAAI,CAAC,qBAAqB,CAAC,UAAW,CAAC,aAAa;YACnD,iBAAiB,CAAC;QACnB,iBAAiB,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;QAEhE,oBAAoB;QACpB,MAAM,gBAAgB,GAAG,iBAAiB,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC;QAC9D,IAAI,CAAC,qBAAqB,CAAC,UAAW,CAAC,QAAQ;YAC9C,gBAAgB,CAAC,QAAQ,CAAC;QAC3B,IAAI,CAAC,qBAAqB,CAAC,UAAW,CAAC,SAAS;YAC/C,gBAAgB,CAAC,SAAS,CAAC;QAC5B,gBAAgB,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE,CAC1C,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAC1B,CAAC;QAEF,4CAA4C;QAC5C,MAAM,kBAAkB,GAAG,gBAAgB,CAAC,IAAI,CAAC,CAAC;QAClD,IAAI,CAAC,KAAK,CAAC,UAAU,GAAG,kBAAkB,CAAC,KAAK,CAAC,UAAU,CAAC;QAC5D,IAAI,CAAC,KAAK,CAAC,gBAAgB;YAC1B,kBAAkB,CAAC,KAAK,CAAC,gBAAgB,CAAC;QAC3C,IAAI,CAAC,KAAK,CAAC,UAAU,GAAG,kBAAkB,CAAC,KAAK,CAAC,UAAU,CAAC;QAC5D,IAAI,CAAC,KAAK,CAAC,WAAW,GAAG,kBAAkB,CAAC,KAAK,CAAC,WAAW,CAAC;QAC9D,IAAI,CAAC,KAAK,CAAC,QAAQ,GAAG,kBAAkB,CAAC,KAAK,CAAC,QAAQ,CAAC;QACxD,IAAI,CAAC,KAAK,CAAC,eAAe;YACzB,kBAAkB,CAAC,KAAK,CAAC,eAAe,CAAC;QAC1C,kBAAkB,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE,CACzC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,CACvB,CAAC;QACF,kBAAkB,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE,CAC5C,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAC1B,CAAC;QAEF,OAAO,IAAI,CAAC;IACb,CAAC;IAEM,YAAY;QAClB,qBAAqB;QACrB,MAAM,UAAU,GAAG,kBAAkB,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QACvD,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC;YACvB,UAAU,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC;YAC5D,OAAO;gBACN,MAAM,EAAE,IAAI,CAAC,MAAM;gBACnB,QAAQ,EAAE,IAAI,CAAC,QAAQ;gBACvB,QAAQ,EAAE,KAAK;gBACf,KAAK,EAAE,IAAI,CAAC,KAAK;gBACjB,UAAU,EAAE,IAAI,CAAC,qBAAqB;aACtC,CAAC;QACH,CAAC;QAED,oBAAoB;QACpB,IAAI,CAAC,iBAAiB,EAAE,CAAC;QAEzB,sBAAsB;QACtB,MAAM,WAAW,GAAG,mBAAmB,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QACzD,WAAW,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC;QAC7D,WAAW,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE,CACrC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAC1B,CAAC;QAEF,mBAAmB;QACnB,MAAM,cAAc,GAAG,gBAAgB,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QACzD,cAAc,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE,CACxC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAC1B,CAAC;QAEF,kBAAkB;QAClB,MAAM,aAAa,GAAG,eAAe,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QACvD,aAAa,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE,CACvC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAC1B,CAAC;QAEF,wDAAwD;QACxD,IAAI,CAAC,qBAAqB,CAAC,sBAAsB,GAAG;YACnD,aAAa,EAAE;gBACd,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,UAAU;gBAC5B,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,UAAU;gBAC5B,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,gBAAgB;gBACnC,kBAAkB,EAAE,IAAI,CAAC,KAAK,CAAC,UAAU,GAAG,EAAE;gBAC9C,kBAAkB,EAAE,IAAI,CAAC,KAAK,CAAC,UAAU,GAAG,IAAI;aAChD;YACD,UAAU,EAAE,WAAW,CAAC,UAAU;SAClC,CAAC;QAEF,OAAO;YACN,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,QAAQ,EAAE,IAAI,CAAC,MAAM,CAAC,MAAM,KAAK,CAAC;YAClC,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,UAAU,EAAE,IAAI,CAAC,qBAAqB;SACtC,CAAC;IACH,CAAC;IAEM,UAAU;QAChB,OAAO,IAAI,CAAC,MAAM,CAAC;IACpB,CAAC;IAEM,YAAY;QAClB,OAAO,IAAI,CAAC,QAAQ,CAAC;IACtB,CAAC;CACD"}
|
package/dist/index.js
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
+
import { doctor_command } from './commands/doctor.js';
|
|
2
3
|
import { init_command } from './commands/init.js';
|
|
3
4
|
import { install_command } from './commands/install.js';
|
|
4
5
|
import { package_command } from './commands/package.js';
|
|
@@ -14,6 +15,7 @@ function show_help() {
|
|
|
14
15
|
console.log(' init Create a new skill');
|
|
15
16
|
console.log(' install Install a bundled skill (e.g., skill-creator)');
|
|
16
17
|
console.log(' validate Validate a skill');
|
|
18
|
+
console.log(' doctor Fix common skill issues automatically');
|
|
17
19
|
console.log(' package Package a skill to zip');
|
|
18
20
|
console.log(' stats Show overview of all skills in a directory\n');
|
|
19
21
|
console.log('Options:');
|
|
@@ -29,6 +31,7 @@ function show_help() {
|
|
|
29
31
|
console.log(' claude-skills-cli validate .claude/skills/my-skill');
|
|
30
32
|
console.log(' claude-skills-cli validate .claude/skills/my-skill --format json');
|
|
31
33
|
console.log(' claude-skills-cli validate .claude/skills/my-skill --strict');
|
|
34
|
+
console.log(' claude-skills-cli doctor .claude/skills/my-skill');
|
|
32
35
|
console.log(' claude-skills-cli package .claude/skills/my-skill');
|
|
33
36
|
console.log(' claude-skills-cli stats .claude/skills');
|
|
34
37
|
console.log('\n⚠️ IMPORTANT FOR LLMs:');
|
|
@@ -115,6 +118,18 @@ async function main() {
|
|
|
115
118
|
});
|
|
116
119
|
break;
|
|
117
120
|
}
|
|
121
|
+
case 'doctor': {
|
|
122
|
+
const skill_path = parsed._positional;
|
|
123
|
+
if (!skill_path) {
|
|
124
|
+
console.error('Error: skill path required');
|
|
125
|
+
console.log('\nUsage: claude-skills-cli doctor <skill_path>');
|
|
126
|
+
process.exit(1);
|
|
127
|
+
}
|
|
128
|
+
doctor_command({
|
|
129
|
+
skill_path,
|
|
130
|
+
});
|
|
131
|
+
break;
|
|
132
|
+
}
|
|
118
133
|
case 'package': {
|
|
119
134
|
const skill_path = parsed._positional;
|
|
120
135
|
if (!skill_path) {
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,9 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: skill-creator
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
principles. Use when building new skills, planning skill
|
|
6
|
-
architecture, or writing skill content.
|
|
3
|
+
# prettier-ignore
|
|
4
|
+
description: Design and create Claude Skills using progressive disclosure principles. Use when building new skills, planning skill architecture, or writing skill content.
|
|
7
5
|
---
|
|
8
6
|
|
|
9
7
|
# Skill Creator
|
|
@@ -14,22 +12,10 @@ Create effective Claude Skills using progressive disclosure.
|
|
|
14
12
|
|
|
15
13
|
Create a skill when you notice:
|
|
16
14
|
|
|
17
|
-
- **Repeating context** across conversations
|
|
18
|
-
|
|
19
|
-
- **Domain expertise** needed repeatedly (API integration, framework
|
|
20
|
-
conventions)
|
|
15
|
+
- **Repeating context** across conversations
|
|
16
|
+
- **Domain expertise** needed repeatedly
|
|
21
17
|
- **Project-specific knowledge** Claude should know automatically
|
|
22
18
|
|
|
23
|
-
## Skill Structure
|
|
24
|
-
|
|
25
|
-
```
|
|
26
|
-
my-skill/
|
|
27
|
-
├── SKILL.md # Core instructions + metadata
|
|
28
|
-
├── references/ # Detailed docs (loaded as needed)
|
|
29
|
-
├── scripts/ # Executable operations
|
|
30
|
-
└── assets/ # Templates, images, files
|
|
31
|
-
```
|
|
32
|
-
|
|
33
19
|
## Progressive Disclosure
|
|
34
20
|
|
|
35
21
|
Skills load in 3 levels:
|
|
@@ -41,15 +27,20 @@ Skills load in 3 levels:
|
|
|
41
27
|
|
|
42
28
|
**Key**: Keep Levels 1 & 2 lean. Move details to Level 3.
|
|
43
29
|
|
|
44
|
-
##
|
|
30
|
+
## Structure
|
|
45
31
|
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
32
|
+
```
|
|
33
|
+
my-skill/
|
|
34
|
+
├── SKILL.md # Core instructions + metadata
|
|
35
|
+
├── references/ # Detailed docs (loaded as needed)
|
|
36
|
+
├── scripts/ # Executable operations
|
|
37
|
+
└── assets/ # Templates, images, files
|
|
38
|
+
```
|
|
50
39
|
|
|
51
|
-
##
|
|
40
|
+
## References
|
|
52
41
|
|
|
42
|
+
- [quick-start.md](references/quick-start.md) - Creating your first
|
|
43
|
+
skill
|
|
53
44
|
- [writing-guide.md](references/writing-guide.md) - Writing effective
|
|
54
45
|
skills
|
|
55
46
|
- [development-process.md](references/development-process.md) -
|
|
@@ -156,6 +156,8 @@ npx claude-skills-cli validate .claude/skills/skill-2
|
|
|
156
156
|
|
|
157
157
|
- Description length: <200 chars (optimal), <300 chars (warning),
|
|
158
158
|
<1024 chars (max)
|
|
159
|
+
- Description format: Must be on single line (warns if multi-line,
|
|
160
|
+
suggests `doctor` command)
|
|
159
161
|
- Description includes trigger keywords ("Use when...", "Use for...",
|
|
160
162
|
"Use to...")
|
|
161
163
|
- Description comma count (warns if >3, suggesting list bloat)
|
|
@@ -248,6 +250,112 @@ npx claude-skills-cli validate .claude/skills/skill-2
|
|
|
248
250
|
|
|
249
251
|
---
|
|
250
252
|
|
|
253
|
+
### `doctor` - Fix Common Issues
|
|
254
|
+
|
|
255
|
+
Automatically fix common skill issues to ensure compatibility with
|
|
256
|
+
Claude Code.
|
|
257
|
+
|
|
258
|
+
#### Syntax
|
|
259
|
+
|
|
260
|
+
```bash
|
|
261
|
+
claude-skills-cli doctor <skill_path>
|
|
262
|
+
```
|
|
263
|
+
|
|
264
|
+
#### Arguments
|
|
265
|
+
|
|
266
|
+
| Argument | Type | Required | Description |
|
|
267
|
+
| -------------- | ------ | -------- | ----------------------- |
|
|
268
|
+
| `<skill_path>` | string | Yes | Path to skill directory |
|
|
269
|
+
|
|
270
|
+
#### What It Fixes
|
|
271
|
+
|
|
272
|
+
**Multi-line Descriptions:**
|
|
273
|
+
|
|
274
|
+
When formatters like Prettier wrap descriptions across multiple lines,
|
|
275
|
+
Claude Code cannot recognize the skill. The doctor command:
|
|
276
|
+
|
|
277
|
+
1. Detects multi-line descriptions in YAML frontmatter
|
|
278
|
+
2. Adds `# prettier-ignore` comment before the description field
|
|
279
|
+
3. Reflows the description to a single line
|
|
280
|
+
|
|
281
|
+
**Example:**
|
|
282
|
+
|
|
283
|
+
Before:
|
|
284
|
+
|
|
285
|
+
```yaml
|
|
286
|
+
---
|
|
287
|
+
name: my-skill
|
|
288
|
+
description:
|
|
289
|
+
This is a long description that got wrapped by prettier across
|
|
290
|
+
multiple lines
|
|
291
|
+
---
|
|
292
|
+
```
|
|
293
|
+
|
|
294
|
+
After:
|
|
295
|
+
|
|
296
|
+
```yaml
|
|
297
|
+
---
|
|
298
|
+
name: my-skill
|
|
299
|
+
# prettier-ignore
|
|
300
|
+
description: This is a long description that got wrapped by prettier across multiple lines
|
|
301
|
+
---
|
|
302
|
+
```
|
|
303
|
+
|
|
304
|
+
#### Examples
|
|
305
|
+
|
|
306
|
+
```bash
|
|
307
|
+
# Fix multi-line description
|
|
308
|
+
npx claude-skills-cli doctor .claude/skills/my-skill
|
|
309
|
+
|
|
310
|
+
# Common workflow after formatting
|
|
311
|
+
npx prettier --write .claude/skills/my-skill/SKILL.md
|
|
312
|
+
npx claude-skills-cli doctor .claude/skills/my-skill
|
|
313
|
+
npx claude-skills-cli validate .claude/skills/my-skill
|
|
314
|
+
```
|
|
315
|
+
|
|
316
|
+
#### Output
|
|
317
|
+
|
|
318
|
+
**When issues are found:**
|
|
319
|
+
|
|
320
|
+
```
|
|
321
|
+
📋 Running doctor on: my-skill
|
|
322
|
+
============================================================
|
|
323
|
+
📋 Found multi-line description. Fixing...
|
|
324
|
+
✅ Fixed multi-line description!
|
|
325
|
+
|
|
326
|
+
Changes made:
|
|
327
|
+
• Added # prettier-ignore comment before description
|
|
328
|
+
• Reflowed description to single line
|
|
329
|
+
|
|
330
|
+
✓ Run validate command to confirm the fix
|
|
331
|
+
```
|
|
332
|
+
|
|
333
|
+
**When no issues exist:**
|
|
334
|
+
|
|
335
|
+
```
|
|
336
|
+
📋 Running doctor on: my-skill
|
|
337
|
+
============================================================
|
|
338
|
+
✅ No issues found. Description is already on a single line.
|
|
339
|
+
```
|
|
340
|
+
|
|
341
|
+
#### Exit Codes
|
|
342
|
+
|
|
343
|
+
| Code | Meaning |
|
|
344
|
+
| ---- | ---------------------------- |
|
|
345
|
+
| 0 | Success (fixed or no issues) |
|
|
346
|
+
| 1 | Error (file not found, etc.) |
|
|
347
|
+
|
|
348
|
+
#### When to Use
|
|
349
|
+
|
|
350
|
+
Run `doctor` when:
|
|
351
|
+
|
|
352
|
+
- Validation warns about multi-line descriptions
|
|
353
|
+
- After running code formatters (Prettier, dprint, etc.)
|
|
354
|
+
- After manually editing SKILL.md files
|
|
355
|
+
- Before packaging or distributing skills
|
|
356
|
+
|
|
357
|
+
---
|
|
358
|
+
|
|
251
359
|
### `package` - Create Distribution Zip
|
|
252
360
|
|
|
253
361
|
Package skill into a zip file for distribution.
|
|
@@ -334,13 +442,19 @@ vim .claude/skills/database-queries/SKILL.md
|
|
|
334
442
|
# 3. Add references
|
|
335
443
|
vim .claude/skills/database-queries/references/schema.md
|
|
336
444
|
|
|
337
|
-
# 4.
|
|
445
|
+
# 4. Format (if using formatter)
|
|
446
|
+
npx prettier --write .claude/skills/database-queries/SKILL.md
|
|
447
|
+
|
|
448
|
+
# 5. Fix any formatting issues
|
|
449
|
+
npx claude-skills-cli doctor .claude/skills/database-queries
|
|
450
|
+
|
|
451
|
+
# 6. Validate
|
|
338
452
|
npx claude-skills-cli validate .claude/skills/database-queries
|
|
339
453
|
|
|
340
|
-
#
|
|
454
|
+
# 7. Fix any remaining issues, re-validate
|
|
341
455
|
npx claude-skills-cli validate .claude/skills/database-queries
|
|
342
456
|
|
|
343
|
-
#
|
|
457
|
+
# 8. Package
|
|
344
458
|
npx claude-skills-cli package .claude/skills/database-queries
|
|
345
459
|
```
|
|
346
460
|
|
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
# Quick Start Guide
|
|
2
|
+
|
|
3
|
+
## Creating Your First Skill
|
|
4
|
+
|
|
5
|
+
1. **Create the skill directory**
|
|
6
|
+
|
|
7
|
+
```bash
|
|
8
|
+
mkdir -p .claude/skills/my-skill
|
|
9
|
+
```
|
|
10
|
+
|
|
11
|
+
2. **Create SKILL.md with frontmatter**
|
|
12
|
+
|
|
13
|
+
```markdown
|
|
14
|
+
---
|
|
15
|
+
name: my-skill
|
|
16
|
+
description: Brief description of what this skill does
|
|
17
|
+
---
|
|
18
|
+
|
|
19
|
+
# My Skill
|
|
20
|
+
|
|
21
|
+
Core instructions go here...
|
|
22
|
+
```
|
|
23
|
+
|
|
24
|
+
3. **Test in conversation**
|
|
25
|
+
- Invoke the skill using the Skill tool
|
|
26
|
+
- Verify it loads and provides correct guidance
|
|
27
|
+
|
|
28
|
+
4. **Iterate and expand**
|
|
29
|
+
- Add references/ directory for detailed documentation
|
|
30
|
+
- Add scripts/ for executable operations
|
|
31
|
+
- Add assets/ for templates and files
|
|
32
|
+
|
|
33
|
+
## Skill Structure Details
|
|
34
|
+
|
|
35
|
+
### Directory Layout
|
|
36
|
+
|
|
37
|
+
```
|
|
38
|
+
my-skill/
|
|
39
|
+
├── SKILL.md # Core instructions + YAML frontmatter
|
|
40
|
+
├── references/ # Detailed documentation (loaded as needed)
|
|
41
|
+
│ ├── guide.md
|
|
42
|
+
│ └── examples.md
|
|
43
|
+
├── scripts/ # Executable shell scripts or programs
|
|
44
|
+
│ └── setup.sh
|
|
45
|
+
└── assets/ # Templates, images, configuration files
|
|
46
|
+
└── template.yaml
|
|
47
|
+
```
|
|
48
|
+
|
|
49
|
+
### SKILL.md Anatomy
|
|
50
|
+
|
|
51
|
+
```markdown
|
|
52
|
+
---
|
|
53
|
+
name: skill-name # Unique identifier
|
|
54
|
+
description: Short desc # <200 chars, shows in skill list
|
|
55
|
+
---
|
|
56
|
+
|
|
57
|
+
# Skill Title
|
|
58
|
+
|
|
59
|
+
Brief overview of what this skill does.
|
|
60
|
+
|
|
61
|
+
## Section 1
|
|
62
|
+
|
|
63
|
+
Core patterns and instructions...
|
|
64
|
+
|
|
65
|
+
## Section 2
|
|
66
|
+
|
|
67
|
+
More essential guidance...
|
|
68
|
+
```
|
|
69
|
+
|
|
70
|
+
## Progressive Disclosure Strategy
|
|
71
|
+
|
|
72
|
+
### Level 1: Metadata (Always Loaded)
|
|
73
|
+
|
|
74
|
+
- YAML frontmatter only
|
|
75
|
+
- Target: <200 chars, <30 tokens
|
|
76
|
+
- Used for: Skill discovery and triggering
|
|
77
|
+
|
|
78
|
+
### Level 2: Instructions (Loaded When Triggered)
|
|
79
|
+
|
|
80
|
+
- SKILL.md body content
|
|
81
|
+
- Target: <50 lines, <1000 words, <680 tokens
|
|
82
|
+
- Contains: Core patterns, essential rules, reference links
|
|
83
|
+
|
|
84
|
+
### Level 3: Resources (Loaded On Demand)
|
|
85
|
+
|
|
86
|
+
- references/ scripts/ assets/ directories
|
|
87
|
+
- Size: Unlimited
|
|
88
|
+
- Contains: Detailed docs, code, templates
|
|
89
|
+
|
|
90
|
+
## Tips for Effective Skills
|
|
91
|
+
|
|
92
|
+
- **Start minimal**: Begin with just SKILL.md
|
|
93
|
+
- **Iterate**: Add references/ as complexity grows
|
|
94
|
+
- **Link clearly**: Use relative links to reference files
|
|
95
|
+
- **Test often**: Validate with `pnpx claude-skills-cli validate`
|
|
96
|
+
- **Stay focused**: One skill = one clear purpose
|