claude-skills-cli 0.0.6 → 0.0.8
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 +49 -9
- package/dist/commands/doctor.js +128 -0
- package/dist/commands/doctor.js.map +1 -0
- package/dist/commands/init.js +5 -3
- package/dist/commands/init.js.map +1 -1
- package/dist/commands/install.js +1 -1
- package/dist/commands/install.js.map +1 -1
- package/dist/commands/stats.js +1 -1
- package/dist/commands/stats.js.map +1 -1
- package/dist/commands/validate.js +24 -3
- package/dist/commands/validate.js.map +1 -1
- package/dist/commands/watch.js +82 -0
- package/dist/commands/watch.js.map +1 -0
- package/dist/core/templates.js +18 -0
- package/dist/core/templates.js.map +1 -1
- package/dist/core/validator.js +174 -321
- package/dist/core/validator.js.map +1 -1
- package/dist/index.js +38 -12
- package/dist/index.js.map +1 -1
- package/dist/skills/skill-creator/SKILL.md +28 -112
- package/dist/skills/skill-creator/references/cli-reference.md +152 -38
- package/dist/skills/skill-creator/references/development-process.md +208 -0
- package/dist/skills/skill-creator/references/skill-examples.md +1 -1
- package/dist/validators/alignment-validator.js +54 -0
- package/dist/validators/alignment-validator.js.map +1 -0
- package/dist/validators/content-validator.js +144 -0
- package/dist/validators/content-validator.js.map +1 -0
- package/dist/validators/description-validator.js +136 -0
- package/dist/validators/description-validator.js.map +1 -0
- package/dist/validators/file-structure-validator.js +125 -0
- package/dist/validators/file-structure-validator.js.map +1 -0
- package/dist/validators/frontmatter-validator.js +165 -0
- package/dist/validators/frontmatter-validator.js.map +1 -0
- package/dist/validators/references-validator.js +125 -0
- package/dist/validators/references-validator.js.map +1 -0
- package/dist/validators/text-analysis.js +71 -0
- package/dist/validators/text-analysis.js.map +1 -0
- package/docs/prompt-that-started-it-all.md +19 -0
- package/package.json +3 -3
- package/docs/SKILL-DEVELOPMENT.md +0 -460
- package/docs/SKILL-EXAMPLES.md +0 -528
- package/docs/SKILLS-ARCHITECTURE.md +0 -381
package/README.md
CHANGED
|
@@ -39,8 +39,6 @@ lean and scannable.
|
|
|
39
39
|
|
|
40
40
|
## Commands
|
|
41
41
|
|
|
42
|
-
For Claude Code to read, this id detailed in the CLI
|
|
43
|
-
|
|
44
42
|
### init
|
|
45
43
|
|
|
46
44
|
```bash
|
|
@@ -56,14 +54,56 @@ references/). Use `--with-examples` for example files.
|
|
|
56
54
|
```bash
|
|
57
55
|
pnpx claude-skills-cli validate .claude/skills/my-skill
|
|
58
56
|
pnpx claude-skills-cli validate .claude/skills/my-skill --strict
|
|
57
|
+
pnpx claude-skills-cli validate .claude/skills/my-skill --format json
|
|
58
|
+
```
|
|
59
|
+
|
|
60
|
+
Comprehensive validation including:
|
|
61
|
+
|
|
62
|
+
**Structure & Format:**
|
|
63
|
+
|
|
64
|
+
- Name format (kebab-case) and directory matching
|
|
65
|
+
- YAML frontmatter validity
|
|
66
|
+
- Required fields presence
|
|
67
|
+
|
|
68
|
+
**Level 1 (Metadata):**
|
|
69
|
+
|
|
70
|
+
- Description length (<200 chars optimal, ~30 tokens)
|
|
71
|
+
- Trigger phrase presence and specificity
|
|
72
|
+
- User phrasing (third-person, action-oriented, gerunds)
|
|
73
|
+
- Keyword richness and alignment with content
|
|
74
|
+
|
|
75
|
+
**Level 2 (SKILL.md Body):**
|
|
76
|
+
|
|
77
|
+
- Line count (~50 target, 150 max)
|
|
78
|
+
- Word count (<1000 recommended, <5000 max)
|
|
79
|
+
- Token estimates (<6500 budget)
|
|
80
|
+
- Code blocks (1-2 optimal)
|
|
81
|
+
- Sections (3-5 recommended)
|
|
82
|
+
|
|
83
|
+
**Level 3 (References):**
|
|
84
|
+
|
|
85
|
+
- Referenced files exist (no broken links)
|
|
86
|
+
- Orphaned files detection
|
|
87
|
+
- Nesting depth analysis
|
|
88
|
+
- Progressive disclosure structure
|
|
89
|
+
|
|
90
|
+
Use `--strict` to fail on warnings, `--format json` for programmatic
|
|
91
|
+
use.
|
|
92
|
+
|
|
93
|
+
### doctor
|
|
94
|
+
|
|
95
|
+
```bash
|
|
96
|
+
pnpx claude-skills-cli doctor .claude/skills/my-skill
|
|
59
97
|
```
|
|
60
98
|
|
|
61
|
-
|
|
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
|
|
62
104
|
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
sections (3-5)
|
|
66
|
-
- Level 3: Referenced files exist, no broken links
|
|
105
|
+
Run after formatting or if validation warns about multi-line
|
|
106
|
+
descriptions.
|
|
67
107
|
|
|
68
108
|
### stats
|
|
69
109
|
|
|
@@ -93,8 +133,8 @@ Creates uploadable zip for Claude.ai. Validates first unless
|
|
|
93
133
|
creation workflow
|
|
94
134
|
- [docs/SKILL-EXAMPLES.md](docs/SKILL-EXAMPLES.md) - Real-world
|
|
95
135
|
examples
|
|
96
|
-
- [skills/skill-creator/](skills/skill-creator/) -
|
|
97
|
-
skills
|
|
136
|
+
- [.claude/skills/skill-creator/](.claude/skills/skill-creator/) -
|
|
137
|
+
Skill for creating skills (validated example)
|
|
98
138
|
|
|
99
139
|
**Official Anthropic docs:**
|
|
100
140
|
|
|
@@ -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/commands/init.js
CHANGED
|
@@ -21,8 +21,8 @@ export function init_command(options) {
|
|
|
21
21
|
else {
|
|
22
22
|
error('Either --name or --path must be provided');
|
|
23
23
|
console.log('\nUsage:');
|
|
24
|
-
console.log(' claude-skills init --name my-skill --description "Description"');
|
|
25
|
-
console.log(' claude-skills init --path /custom/path/my-skill');
|
|
24
|
+
console.log(' claude-skills-cli init --name my-skill --description "Description"');
|
|
25
|
+
console.log(' claude-skills-cli init --path /custom/path/my-skill');
|
|
26
26
|
process.exit(1);
|
|
27
27
|
}
|
|
28
28
|
// Validate name format
|
|
@@ -74,6 +74,8 @@ function create_skill(path, name, description, with_examples = false) {
|
|
|
74
74
|
else {
|
|
75
75
|
console.log(`3. Use --with-examples flag if you need scripts/ and example files`);
|
|
76
76
|
}
|
|
77
|
-
console.log(`\
|
|
77
|
+
console.log(`\n⚠️ REQUIRED: Validate the skill before use:`);
|
|
78
|
+
console.log(` claude-skills-cli validate ${path}`);
|
|
79
|
+
console.log(` Fix all errors immediately.`);
|
|
78
80
|
}
|
|
79
81
|
//# sourceMappingURL=init.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EACN,eAAe,EACf,kBAAkB,EAClB,eAAe,EACf,iBAAiB,GACjB,MAAM,sBAAsB,CAAC;AAE9B,OAAO,EACN,UAAU,EACV,YAAY,EACZ,eAAe,EACf,aAAa,EACb,UAAU,GACV,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAEpD,MAAM,UAAU,YAAY,CAAC,OAAoB;IAChD,IAAI,UAAkB,CAAC;IACvB,IAAI,IAAY,CAAC;IACjB,IAAI,WAAmB,CAAC;IAExB,0BAA0B;IAC1B,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;QAClB,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC;QAC1B,IAAI,GAAG,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,IAAI,EAAE,CAAC;QACzC,WAAW,GAAG,OAAO,CAAC,WAAW,IAAI,uBAAuB,CAAC;IAC9D,CAAC;SAAM,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;QACzB,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;QACpB,WAAW,GAAG,OAAO,CAAC,WAAW,IAAI,uBAAuB,CAAC;QAC7D,uCAAuC;QACvC,UAAU,GAAG,IAAI,CAAC,SAAS,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAC;IAC9C,CAAC;SAAM,CAAC;QACP,KAAK,CAAC,0CAA0C,CAAC,CAAC;QAClD,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;QACxB,OAAO,CAAC,GAAG,CACV,
|
|
1
|
+
{"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"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"}
|
package/dist/commands/install.js
CHANGED
|
@@ -15,7 +15,7 @@ export function install_command(options) {
|
|
|
15
15
|
if (!skill_name) {
|
|
16
16
|
error('Skill name required');
|
|
17
17
|
console.log('\nUsage:');
|
|
18
|
-
console.log(' claude-skills install <skill-name>');
|
|
18
|
+
console.log(' claude-skills-cli install <skill-name>');
|
|
19
19
|
console.log('\nAvailable bundled skills:');
|
|
20
20
|
AVAILABLE_SKILLS.forEach((name) => console.log(` - ${name}`));
|
|
21
21
|
process.exit(1);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"install.js","sourceRoot":"","sources":["../../src/commands/install.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAC7C,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAEzC,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAC5C,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAE1D,kEAAkE;AAClE,MAAM,UAAU,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAClD,MAAM,SAAS,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;AAEtC,+CAA+C;AAC/C,MAAM,kBAAkB,GAAG,IAAI,CAAC,SAAS,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAC;AAE3D,MAAM,gBAAgB,GAAG,CAAC,eAAe,CAAC,CAAC;AAE3C,MAAM,UAAU,eAAe,CAAC,OAAuB;IACtD,MAAM,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC;IAEtC,sBAAsB;IACtB,IAAI,CAAC,UAAU,EAAE,CAAC;QACjB,KAAK,CAAC,qBAAqB,CAAC,CAAC;QAC7B,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;QACxB,OAAO,CAAC,GAAG,CAAC,
|
|
1
|
+
{"version":3,"file":"install.js","sourceRoot":"","sources":["../../src/commands/install.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAC7C,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAEzC,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAC5C,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAE1D,kEAAkE;AAClE,MAAM,UAAU,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAClD,MAAM,SAAS,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;AAEtC,+CAA+C;AAC/C,MAAM,kBAAkB,GAAG,IAAI,CAAC,SAAS,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAC;AAE3D,MAAM,gBAAgB,GAAG,CAAC,eAAe,CAAC,CAAC;AAE3C,MAAM,UAAU,eAAe,CAAC,OAAuB;IACtD,MAAM,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC;IAEtC,sBAAsB;IACtB,IAAI,CAAC,UAAU,EAAE,CAAC;QACjB,KAAK,CAAC,qBAAqB,CAAC,CAAC;QAC7B,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;QACxB,OAAO,CAAC,GAAG,CAAC,0CAA0C,CAAC,CAAC;QACxD,OAAO,CAAC,GAAG,CAAC,6BAA6B,CAAC,CAAC;QAC3C,gBAAgB,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC,CAAC;QAC/D,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACjB,CAAC;IAED,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC;QAC5C,KAAK,CAAC,kBAAkB,UAAU,EAAE,CAAC,CAAC;QACtC,OAAO,CAAC,GAAG,CAAC,6BAA6B,CAAC,CAAC;QAC3C,gBAAgB,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC,CAAC;QAC/D,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACjB,CAAC;IAED,+BAA+B;IAC/B,MAAM,WAAW,GAAG,IAAI,CAAC,kBAAkB,EAAE,UAAU,CAAC,CAAC;IACzD,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC;IAExD,mCAAmC;IACnC,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,EAAE,CAAC;QAC9B,KAAK,CAAC,4BAA4B,UAAU,EAAE,CAAC,CAAC;QAChD,OAAO,CAAC,GAAG,CACV,gBAAgB,WAAW,+CAA+C,CAC1E,CAAC;QACF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACjB,CAAC;IAED,6BAA6B;IAC7B,IAAI,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;QAC3B,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC;YACnB,IAAI,CACH,2BAA2B,SAAS,4BAA4B,CAChE,CAAC;QACH,CAAC;aAAM,CAAC;YACP,IAAI,CAAC,+BAA+B,SAAS,EAAE,CAAC,CAAC;YACjD,OAAO,CAAC,GAAG,CAAC,gDAAgD,CAAC,CAAC;YAC9D,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACjB,CAAC;IACF,CAAC;IAED,+BAA+B;IAC/B,UAAU,CAAC,IAAI,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC,CAAC;IAEtC,uBAAuB;IACvB,IAAI,CAAC;QACJ,MAAM,CAAC,WAAW,EAAE,SAAS,EAAE;YAC9B,SAAS,EAAE,IAAI;YACf,KAAK,EAAE,OAAO,CAAC,KAAK,IAAI,KAAK;SAC7B,CAAC,CAAC;QACH,OAAO,CAAC,aAAa,UAAU,QAAQ,SAAS,EAAE,CAAC,CAAC;QAEpD,sBAAsB;QACtB,IAAI,UAAU,KAAK,eAAe,EAAE,CAAC;YACpC,OAAO,CAAC,GAAG,CACV,sEAAsE,CACtE,CAAC;YACF,OAAO,CAAC,GAAG,CACV,iEAAiE,CACjE,CAAC;QACH,CAAC;IACF,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACd,KAAK,CAAC,4BAA6B,GAAa,CAAC,OAAO,EAAE,CAAC,CAAC;QAC5D,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACjB,CAAC;AACF,CAAC"}
|
package/dist/commands/stats.js
CHANGED
|
@@ -29,7 +29,7 @@ export function stats_command(options) {
|
|
|
29
29
|
}
|
|
30
30
|
if (skills.length === 0) {
|
|
31
31
|
console.log(`No skills found in ${directory}`);
|
|
32
|
-
console.log('\nCreate a skill with: claude-skills init --name my-skill --description "..."\n');
|
|
32
|
+
console.log('\nCreate a skill with: claude-skills-cli init --name my-skill --description "..."\n');
|
|
33
33
|
return;
|
|
34
34
|
}
|
|
35
35
|
// Display overview header
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"stats.js","sourceRoot":"","sources":["../../src/commands/stats.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAC5D,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAEtD,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAE3C,MAAM,UAAU,aAAa,CAAC,OAAqB;IAClD,MAAM,SAAS,GAAG,OAAO,CAAC,SAAS,IAAI,gBAAgB,CAAC;IAExD,0BAA0B;IAC1B,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;QAC5B,KAAK,CAAC,wBAAwB,SAAS,EAAE,CAAC,CAAC;QAC3C,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACjB,CAAC;IAED,MAAM,SAAS,GAAG,QAAQ,CAAC,SAAS,CAAC,CAAC;IACtC,IAAI,CAAC,SAAS,CAAC,WAAW,EAAE,EAAE,CAAC;QAC9B,KAAK,CAAC,4BAA4B,SAAS,EAAE,CAAC,CAAC;QAC/C,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACjB,CAAC;IAED,mDAAmD;IACnD,MAAM,OAAO,GAAG,WAAW,CAAC,SAAS,CAAC,CAAC;IACvC,MAAM,MAAM,GAAa,EAAE,CAAC;IAE5B,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;QAC7B,MAAM,UAAU,GAAG,IAAI,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;QAC1C,MAAM,IAAI,GAAG,QAAQ,CAAC,UAAU,CAAC,CAAC;QAElC,IAAI,IAAI,CAAC,WAAW,EAAE,EAAE,CAAC;YACxB,MAAM,aAAa,GAAG,IAAI,CAAC,UAAU,EAAE,UAAU,CAAC,CAAC;YACnD,IAAI,UAAU,CAAC,aAAa,CAAC,EAAE,CAAC;gBAC/B,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;YACzB,CAAC;QACF,CAAC;IACF,CAAC;IAED,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACzB,OAAO,CAAC,GAAG,CAAC,sBAAsB,SAAS,EAAE,CAAC,CAAC;QAC/C,OAAO,CAAC,GAAG,CACV,
|
|
1
|
+
{"version":3,"file":"stats.js","sourceRoot":"","sources":["../../src/commands/stats.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,12 +2,33 @@ import { basename } from 'node:path';
|
|
|
2
2
|
import { SkillValidator } from '../core/validator.js';
|
|
3
3
|
import { display_validation_stats, error, info, success, } from '../utils/output.js';
|
|
4
4
|
export function validate_command(options) {
|
|
5
|
-
const { skill_path, strict } = options;
|
|
5
|
+
const { skill_path, strict, format = 'text' } = options;
|
|
6
6
|
const skill_name = basename(skill_path);
|
|
7
|
-
info(`Validating skill: ${skill_name}`);
|
|
8
|
-
console.log('='.repeat(60));
|
|
9
7
|
const validator = new SkillValidator(skill_path);
|
|
10
8
|
const result = validator.validate_all();
|
|
9
|
+
// JSON output
|
|
10
|
+
if (format === 'json') {
|
|
11
|
+
const json_output = {
|
|
12
|
+
skill_name,
|
|
13
|
+
valid: result.is_valid,
|
|
14
|
+
errors: result.errors,
|
|
15
|
+
warnings: result.warnings,
|
|
16
|
+
validation: result.validation,
|
|
17
|
+
stats: result.stats,
|
|
18
|
+
};
|
|
19
|
+
console.log(JSON.stringify(json_output, null, 2));
|
|
20
|
+
// Exit codes for JSON mode
|
|
21
|
+
if (!result.is_valid) {
|
|
22
|
+
process.exit(1);
|
|
23
|
+
}
|
|
24
|
+
if (strict && result.warnings.length > 0) {
|
|
25
|
+
process.exit(1);
|
|
26
|
+
}
|
|
27
|
+
process.exit(0);
|
|
28
|
+
}
|
|
29
|
+
// Text output (existing)
|
|
30
|
+
info(`Validating skill: ${skill_name}`);
|
|
31
|
+
console.log('='.repeat(60));
|
|
11
32
|
// Display progressive disclosure stats
|
|
12
33
|
if (result.stats) {
|
|
13
34
|
display_validation_stats(result.stats);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"validate.js","sourceRoot":"","sources":["../../src/commands/validate.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AACrC,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAEtD,OAAO,EACN,wBAAwB,EACxB,KAAK,EACL,IAAI,EACJ,OAAO,GACP,MAAM,oBAAoB,CAAC;AAE5B,MAAM,UAAU,gBAAgB,CAAC,OAAwB;IACxD,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"validate.js","sourceRoot":"","sources":["../../src/commands/validate.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AACrC,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAEtD,OAAO,EACN,wBAAwB,EACxB,KAAK,EACL,IAAI,EACJ,OAAO,GACP,MAAM,oBAAoB,CAAC;AAE5B,MAAM,UAAU,gBAAgB,CAAC,OAAwB;IACxD,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,OAAO,CAAC;IACxD,MAAM,UAAU,GAAG,QAAQ,CAAC,UAAU,CAAC,CAAC;IAExC,MAAM,SAAS,GAAG,IAAI,cAAc,CAAC,UAAU,CAAC,CAAC;IACjD,MAAM,MAAM,GAAG,SAAS,CAAC,YAAY,EAAE,CAAC;IAExC,cAAc;IACd,IAAI,MAAM,KAAK,MAAM,EAAE,CAAC;QACvB,MAAM,WAAW,GAAG;YACnB,UAAU;YACV,KAAK,EAAE,MAAM,CAAC,QAAQ;YACtB,MAAM,EAAE,MAAM,CAAC,MAAM;YACrB,QAAQ,EAAE,MAAM,CAAC,QAAQ;YACzB,UAAU,EAAE,MAAM,CAAC,UAAU;YAC7B,KAAK,EAAE,MAAM,CAAC,KAAK;SACnB,CAAC;QACF,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,WAAW,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;QAElD,2BAA2B;QAC3B,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC;YACtB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACjB,CAAC;QACD,IAAI,MAAM,IAAI,MAAM,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC1C,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACjB,CAAC;QACD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACjB,CAAC;IAED,yBAAyB;IACzB,IAAI,CAAC,qBAAqB,UAAU,EAAE,CAAC,CAAC;IACxC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC;IAE5B,uCAAuC;IACvC,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC;QAClB,wBAAwB,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IACxC,CAAC;IAED,eAAe;IACf,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC9B,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;QAC3B,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;YACjC,OAAO,CAAC,GAAG,CAAC,KAAK,GAAG,EAAE,CAAC,CAAC;QACzB,CAAC;IACF,CAAC;IAED,iBAAiB;IACjB,IAAI,MAAM,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAChC,OAAO,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC;QAC/B,KAAK,MAAM,IAAI,IAAI,MAAM,CAAC,QAAQ,EAAE,CAAC;YACpC,OAAO,CAAC,GAAG,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC;QAC1B,CAAC;IACF,CAAC;IAED,qBAAqB;IACrB,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC;QACtD,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAChB,OAAO,CAAC,iBAAiB,CAAC,CAAC;IAC5B,CAAC;SAAM,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;QAClC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAChB,OAAO,CAAC,gCAAgC,CAAC,CAAC;IAC3C,CAAC;SAAM,CAAC;QACP,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAChB,KAAK,CACJ,gCAAgC,MAAM,CAAC,MAAM,CAAC,MAAM,WAAW,CAC/D,CAAC;IACH,CAAC;IAED,oBAAoB;IACpB,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC;QACtB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACjB,CAAC;IAED,IAAI,MAAM,IAAI,MAAM,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC1C,OAAO,CAAC,GAAG,CAAC,2CAA2C,CAAC,CAAC;QACzD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACjB,CAAC;IAED,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AACjB,CAAC"}
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
import { watch } from 'node:fs';
|
|
2
|
+
import { basename, dirname, join } from 'node:path';
|
|
3
|
+
import { existsSync } from 'node:fs';
|
|
4
|
+
import { SkillValidator } from '../core/validator.js';
|
|
5
|
+
import { display_validation_stats, error, info, success, warning, } from '../utils/output.js';
|
|
6
|
+
export function watch_command(options) {
|
|
7
|
+
const { directory } = options;
|
|
8
|
+
const watch_path = directory || '.claude/skills';
|
|
9
|
+
if (!existsSync(watch_path)) {
|
|
10
|
+
error(`Directory does not exist: ${watch_path}`);
|
|
11
|
+
process.exit(1);
|
|
12
|
+
}
|
|
13
|
+
info(`Watching for changes in: ${watch_path}`);
|
|
14
|
+
console.log('='.repeat(60));
|
|
15
|
+
console.log('Auto-validating SKILL.md files on save...\n');
|
|
16
|
+
console.log('Press Ctrl+C to stop\n');
|
|
17
|
+
// Track last validation time to debounce rapid changes
|
|
18
|
+
const last_validation = new Map();
|
|
19
|
+
const DEBOUNCE_MS = 500;
|
|
20
|
+
// Watch recursively
|
|
21
|
+
const watcher = watch(watch_path, { recursive: true }, (eventType, filename) => {
|
|
22
|
+
if (!filename)
|
|
23
|
+
return;
|
|
24
|
+
// Only validate SKILL.md files
|
|
25
|
+
if (!filename.endsWith('SKILL.md'))
|
|
26
|
+
return;
|
|
27
|
+
const full_path = join(watch_path, filename);
|
|
28
|
+
const skill_path = dirname(full_path);
|
|
29
|
+
const skill_name = basename(skill_path);
|
|
30
|
+
// Debounce rapid changes
|
|
31
|
+
const now = Date.now();
|
|
32
|
+
const last = last_validation.get(full_path) || 0;
|
|
33
|
+
if (now - last < DEBOUNCE_MS)
|
|
34
|
+
return;
|
|
35
|
+
last_validation.set(full_path, now);
|
|
36
|
+
console.log('\n' + '='.repeat(60));
|
|
37
|
+
info(`Change detected: ${skill_name}/SKILL.md`);
|
|
38
|
+
console.log('='.repeat(60));
|
|
39
|
+
// Validate
|
|
40
|
+
const validator = new SkillValidator(skill_path);
|
|
41
|
+
const result = validator.validate_all();
|
|
42
|
+
// Display progressive disclosure stats
|
|
43
|
+
if (result.stats) {
|
|
44
|
+
display_validation_stats(result.stats);
|
|
45
|
+
}
|
|
46
|
+
// Print errors
|
|
47
|
+
if (result.errors.length > 0) {
|
|
48
|
+
console.log('\n❌ Errors:');
|
|
49
|
+
for (const err of result.errors) {
|
|
50
|
+
console.log(` ${err}`);
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
// Print warnings
|
|
54
|
+
if (result.warnings.length > 0) {
|
|
55
|
+
console.log('\n⚠️ Warnings:');
|
|
56
|
+
for (const warn of result.warnings) {
|
|
57
|
+
console.log(` ${warn}`);
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
// Print final status
|
|
61
|
+
if (!result.errors.length && !result.warnings.length) {
|
|
62
|
+
console.log('');
|
|
63
|
+
success(`✅ ${skill_name} is valid!`);
|
|
64
|
+
}
|
|
65
|
+
else if (!result.errors.length) {
|
|
66
|
+
console.log('');
|
|
67
|
+
warning(`⚠️ ${skill_name} is valid (with warnings)`);
|
|
68
|
+
}
|
|
69
|
+
else {
|
|
70
|
+
console.log('');
|
|
71
|
+
error(`❌ ${skill_name} validation failed with ${result.errors.length} error(s)`);
|
|
72
|
+
}
|
|
73
|
+
console.log('\nWatching for changes...');
|
|
74
|
+
});
|
|
75
|
+
// Handle cleanup
|
|
76
|
+
process.on('SIGINT', () => {
|
|
77
|
+
console.log('\n\nStopping watcher...');
|
|
78
|
+
watcher.close();
|
|
79
|
+
process.exit(0);
|
|
80
|
+
});
|
|
81
|
+
}
|
|
82
|
+
//# sourceMappingURL=watch.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"watch.js","sourceRoot":"","sources":["../../src/commands/watch.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"}
|