claude-skills-cli 0.0.20 → 0.0.22
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/dist/add-hook.cmd-JWw5UqA3.js +193 -0
- package/dist/add-hook.cmd-JWw5UqA3.js.map +1 -0
- package/dist/dependency-validator-CQJ1hCoU.js +382 -0
- package/dist/dependency-validator-CQJ1hCoU.js.map +1 -0
- package/dist/doctor.cmd-DJpHLDCV.js +142 -0
- package/dist/doctor.cmd-DJpHLDCV.js.map +1 -0
- package/dist/fs-CuGv3Ob2.js +23 -0
- package/dist/fs-CuGv3Ob2.js.map +1 -0
- package/dist/index.js +24 -22
- package/dist/index.js.map +1 -1
- package/dist/init.cmd-BdqImX8b.js +108 -0
- package/dist/init.cmd-BdqImX8b.js.map +1 -0
- package/dist/install.cmd-BaP8k9d2.js +79 -0
- package/dist/install.cmd-BaP8k9d2.js.map +1 -0
- package/dist/output-DiffPD2u.js +104 -0
- package/dist/output-DiffPD2u.js.map +1 -0
- package/dist/package.cmd-BYhkheya.js +107 -0
- package/dist/package.cmd-BYhkheya.js.map +1 -0
- package/dist/stats.cmd-Dd46qjoV.js +154 -0
- package/dist/stats.cmd-Dd46qjoV.js.map +1 -0
- package/dist/{core/templates.js → templates-fyteNbD0.js} +20 -13
- package/dist/templates-fyteNbD0.js.map +1 -0
- package/dist/validate.cmd-BxF4HNsu.js +96 -0
- package/dist/validate.cmd-BxF4HNsu.js.map +1 -0
- package/dist/validator-Dp5x-OjP.js +729 -0
- package/dist/validator-Dp5x-OjP.js.map +1 -0
- package/package.json +34 -35
- package/dist/commands/add-hook.cmd.js +0 -35
- package/dist/commands/add-hook.cmd.js.map +0 -1
- package/dist/commands/add-hook.js +0 -216
- package/dist/commands/add-hook.js.map +0 -1
- package/dist/commands/doctor.cmd.js +0 -19
- package/dist/commands/doctor.cmd.js.map +0 -1
- package/dist/commands/doctor.js +0 -128
- package/dist/commands/doctor.js.map +0 -1
- package/dist/commands/init.cmd.js +0 -37
- package/dist/commands/init.cmd.js.map +0 -1
- package/dist/commands/init.js +0 -86
- package/dist/commands/init.js.map +0 -1
- package/dist/commands/install.cmd.js +0 -23
- package/dist/commands/install.cmd.js.map +0 -1
- package/dist/commands/install.js +0 -64
- package/dist/commands/install.js.map +0 -1
- package/dist/commands/package.cmd.js +0 -28
- package/dist/commands/package.cmd.js.map +0 -1
- package/dist/commands/package.js +0 -134
- package/dist/commands/package.js.map +0 -1
- package/dist/commands/stats.cmd.js +0 -19
- package/dist/commands/stats.cmd.js.map +0 -1
- package/dist/commands/stats.js +0 -154
- package/dist/commands/stats.js.map +0 -1
- package/dist/commands/validate.cmd.js +0 -39
- package/dist/commands/validate.cmd.js.map +0 -1
- package/dist/commands/validate.js +0 -77
- package/dist/commands/validate.js.map +0 -1
- package/dist/core/templates.js.map +0 -1
- package/dist/core/validator.js +0 -252
- package/dist/core/validator.js.map +0 -1
- package/dist/help.js +0 -305
- package/dist/help.js.map +0 -1
- package/dist/skills/.gitkeep +0 -0
- package/dist/types.js +0 -2
- package/dist/types.js.map +0 -1
- package/dist/utils/fs.js +0 -25
- package/dist/utils/fs.js.map +0 -1
- package/dist/utils/output.js +0 -102
- package/dist/utils/output.js.map +0 -1
- package/dist/validators/alignment-validator.js +0 -54
- package/dist/validators/alignment-validator.js.map +0 -1
- package/dist/validators/content-validator.js +0 -156
- package/dist/validators/content-validator.js.map +0 -1
- package/dist/validators/description-validator.js +0 -150
- package/dist/validators/description-validator.js.map +0 -1
- package/dist/validators/file-structure-validator.js +0 -125
- package/dist/validators/file-structure-validator.js.map +0 -1
- package/dist/validators/frontmatter-validator.js +0 -190
- package/dist/validators/frontmatter-validator.js.map +0 -1
- package/dist/validators/references-validator.js +0 -155
- package/dist/validators/references-validator.js.map +0 -1
- package/dist/validators/text-analysis.js +0 -71
- package/dist/validators/text-analysis.js.map +0 -1
package/dist/help.js
DELETED
|
@@ -1,305 +0,0 @@
|
|
|
1
|
-
// Help data structures and formatting for commands
|
|
2
|
-
export const INIT_HELP = {
|
|
3
|
-
command: 'init',
|
|
4
|
-
description: 'Create a new skill',
|
|
5
|
-
usage: 'claude-skills-cli init [options]',
|
|
6
|
-
options: [
|
|
7
|
-
{
|
|
8
|
-
flag: '--name',
|
|
9
|
-
type: 'string',
|
|
10
|
-
required: true,
|
|
11
|
-
description: 'Skill name (kebab-case, lowercase)',
|
|
12
|
-
},
|
|
13
|
-
{
|
|
14
|
-
flag: '--description',
|
|
15
|
-
type: 'string',
|
|
16
|
-
required: true,
|
|
17
|
-
description: 'Brief description with trigger keywords',
|
|
18
|
-
},
|
|
19
|
-
{
|
|
20
|
-
flag: '--path',
|
|
21
|
-
type: 'string',
|
|
22
|
-
description: 'Custom path (alternative to --name)',
|
|
23
|
-
},
|
|
24
|
-
{
|
|
25
|
-
flag: '--with-examples',
|
|
26
|
-
type: 'boolean',
|
|
27
|
-
description: 'Include example files (scripts/, assets/)',
|
|
28
|
-
},
|
|
29
|
-
{ flag: '--help, -h', description: 'Show this help' },
|
|
30
|
-
],
|
|
31
|
-
examples: [
|
|
32
|
-
'claude-skills-cli init --name my-skill --description "Brief description"',
|
|
33
|
-
'claude-skills-cli init --name my-skill --description "..." --with-examples',
|
|
34
|
-
'claude-skills-cli init --path /custom/path/my-skill --description "..."',
|
|
35
|
-
],
|
|
36
|
-
};
|
|
37
|
-
export const INSTALL_HELP = {
|
|
38
|
-
command: 'install',
|
|
39
|
-
description: 'Install a bundled skill (see claude-code-toolkit for pre-built skills)',
|
|
40
|
-
usage: 'claude-skills-cli install <skill-name> [options]',
|
|
41
|
-
options: [
|
|
42
|
-
{
|
|
43
|
-
flag: '<skill-name>',
|
|
44
|
-
required: true,
|
|
45
|
-
description: 'Name of bundled skill',
|
|
46
|
-
},
|
|
47
|
-
{
|
|
48
|
-
flag: '--force',
|
|
49
|
-
type: 'boolean',
|
|
50
|
-
description: 'Replace existing skill without prompting',
|
|
51
|
-
},
|
|
52
|
-
{ flag: '--help, -h', description: 'Show this help' },
|
|
53
|
-
],
|
|
54
|
-
examples: [
|
|
55
|
-
'claude-skills-cli install my-skill',
|
|
56
|
-
'claude-skills-cli install my-skill --force',
|
|
57
|
-
],
|
|
58
|
-
};
|
|
59
|
-
export const VALIDATE_HELP = {
|
|
60
|
-
command: 'validate',
|
|
61
|
-
description: 'Validate a skill',
|
|
62
|
-
usage: 'claude-skills-cli validate <skill-path> [options]',
|
|
63
|
-
options: [
|
|
64
|
-
{
|
|
65
|
-
flag: '<skill-path>',
|
|
66
|
-
required: true,
|
|
67
|
-
description: 'Path to skill directory',
|
|
68
|
-
},
|
|
69
|
-
{
|
|
70
|
-
flag: '--format',
|
|
71
|
-
type: 'json|text',
|
|
72
|
-
description: 'Output format (default: text)',
|
|
73
|
-
},
|
|
74
|
-
{
|
|
75
|
-
flag: '--strict',
|
|
76
|
-
type: 'boolean',
|
|
77
|
-
description: 'Fail validation if warnings present',
|
|
78
|
-
},
|
|
79
|
-
{
|
|
80
|
-
flag: '--lenient',
|
|
81
|
-
type: 'boolean',
|
|
82
|
-
description: 'Use relaxed limits (150 lines max)',
|
|
83
|
-
},
|
|
84
|
-
{
|
|
85
|
-
flag: '--loose',
|
|
86
|
-
type: 'boolean',
|
|
87
|
-
description: 'Use Anthropic official limits (500 lines max)',
|
|
88
|
-
},
|
|
89
|
-
{ flag: '--help, -h', description: 'Show this help' },
|
|
90
|
-
],
|
|
91
|
-
examples: [
|
|
92
|
-
'claude-skills-cli validate .claude/skills/my-skill',
|
|
93
|
-
'claude-skills-cli validate .claude/skills/my-skill --lenient',
|
|
94
|
-
'claude-skills-cli validate .claude/skills/my-skill --loose',
|
|
95
|
-
'claude-skills-cli validate .claude/skills/my-skill --format json',
|
|
96
|
-
],
|
|
97
|
-
};
|
|
98
|
-
export const DOCTOR_HELP = {
|
|
99
|
-
command: 'doctor',
|
|
100
|
-
description: 'Fix common skill issues automatically',
|
|
101
|
-
usage: 'claude-skills-cli doctor <skill-path>',
|
|
102
|
-
options: [
|
|
103
|
-
{
|
|
104
|
-
flag: '<skill-path>',
|
|
105
|
-
required: true,
|
|
106
|
-
description: 'Path to skill directory',
|
|
107
|
-
},
|
|
108
|
-
{ flag: '--help, -h', description: 'Show this help' },
|
|
109
|
-
],
|
|
110
|
-
examples: ['claude-skills-cli doctor .claude/skills/my-skill'],
|
|
111
|
-
};
|
|
112
|
-
export const PACKAGE_HELP = {
|
|
113
|
-
command: 'package',
|
|
114
|
-
description: 'Package a skill to zip',
|
|
115
|
-
usage: 'claude-skills-cli package <skill-path> [options]',
|
|
116
|
-
options: [
|
|
117
|
-
{
|
|
118
|
-
flag: '<skill-path>',
|
|
119
|
-
required: true,
|
|
120
|
-
description: 'Path to skill directory',
|
|
121
|
-
},
|
|
122
|
-
{
|
|
123
|
-
flag: '--output',
|
|
124
|
-
type: 'string',
|
|
125
|
-
description: 'Output path for zip file',
|
|
126
|
-
},
|
|
127
|
-
{
|
|
128
|
-
flag: '--skip-validation',
|
|
129
|
-
type: 'boolean',
|
|
130
|
-
description: 'Skip validation before packaging',
|
|
131
|
-
},
|
|
132
|
-
{ flag: '--help, -h', description: 'Show this help' },
|
|
133
|
-
],
|
|
134
|
-
examples: [
|
|
135
|
-
'claude-skills-cli package .claude/skills/my-skill',
|
|
136
|
-
'claude-skills-cli package .claude/skills/my-skill --output my-skill.zip',
|
|
137
|
-
],
|
|
138
|
-
};
|
|
139
|
-
export const STATS_HELP = {
|
|
140
|
-
command: 'stats',
|
|
141
|
-
description: 'Show overview of all skills in a directory',
|
|
142
|
-
usage: 'claude-skills-cli stats [directory]',
|
|
143
|
-
options: [
|
|
144
|
-
{
|
|
145
|
-
flag: '[directory]',
|
|
146
|
-
description: 'Directory containing skills (default: .claude/skills)',
|
|
147
|
-
},
|
|
148
|
-
{ flag: '--help, -h', description: 'Show this help' },
|
|
149
|
-
],
|
|
150
|
-
examples: [
|
|
151
|
-
'claude-skills-cli stats',
|
|
152
|
-
'claude-skills-cli stats .claude/skills',
|
|
153
|
-
],
|
|
154
|
-
};
|
|
155
|
-
export const ADD_HOOK_HELP = {
|
|
156
|
-
command: 'add-hook',
|
|
157
|
-
description: 'Add skill activation hook to .claude/settings.json',
|
|
158
|
-
usage: 'claude-skills-cli add-hook [options]',
|
|
159
|
-
options: [
|
|
160
|
-
{
|
|
161
|
-
flag: '--type',
|
|
162
|
-
type: 'forced-eval|llm-eval|prompt-eval|simple-script|simple-inline',
|
|
163
|
-
description: 'Hook type (default: forced-eval)',
|
|
164
|
-
},
|
|
165
|
-
{
|
|
166
|
-
flag: '--project',
|
|
167
|
-
type: 'boolean',
|
|
168
|
-
description: 'Install in project .claude/settings.json',
|
|
169
|
-
},
|
|
170
|
-
{
|
|
171
|
-
flag: '--local',
|
|
172
|
-
type: 'boolean',
|
|
173
|
-
description: 'Install in project .claude/settings.local.json',
|
|
174
|
-
},
|
|
175
|
-
{
|
|
176
|
-
flag: '--force',
|
|
177
|
-
type: 'boolean',
|
|
178
|
-
description: 'Replace existing hook without prompting',
|
|
179
|
-
},
|
|
180
|
-
{ flag: '--help, -h', description: 'Show this help' },
|
|
181
|
-
],
|
|
182
|
-
examples: [
|
|
183
|
-
'claude-skills-cli add-hook',
|
|
184
|
-
'claude-skills-cli add-hook --type llm-eval',
|
|
185
|
-
'claude-skills-cli add-hook --project',
|
|
186
|
-
'claude-skills-cli add-hook --type forced-eval --force',
|
|
187
|
-
],
|
|
188
|
-
};
|
|
189
|
-
export const MAIN_HELP = {
|
|
190
|
-
name: 'claude-skills-cli',
|
|
191
|
-
description: 'CLI toolkit for creating Claude Agent Skills',
|
|
192
|
-
usage: 'claude-skills-cli <command> [options]',
|
|
193
|
-
commands: [
|
|
194
|
-
{ command: 'init', description: 'Create a new skill' },
|
|
195
|
-
{
|
|
196
|
-
command: 'install',
|
|
197
|
-
description: 'Install a bundled skill',
|
|
198
|
-
},
|
|
199
|
-
{ command: 'validate', description: 'Validate a skill' },
|
|
200
|
-
{
|
|
201
|
-
command: 'doctor',
|
|
202
|
-
description: 'Fix common skill issues automatically',
|
|
203
|
-
},
|
|
204
|
-
{ command: 'package', description: 'Package a skill to zip' },
|
|
205
|
-
{
|
|
206
|
-
command: 'stats',
|
|
207
|
-
description: 'Show overview of all skills in a directory',
|
|
208
|
-
},
|
|
209
|
-
{
|
|
210
|
-
command: 'add-hook',
|
|
211
|
-
description: 'Add skill activation hook to .claude/settings.json',
|
|
212
|
-
},
|
|
213
|
-
],
|
|
214
|
-
globalOptions: [
|
|
215
|
-
{ flag: '--help, -h', description: 'Show help' },
|
|
216
|
-
{ flag: '--version, -v', description: 'Show version' },
|
|
217
|
-
{
|
|
218
|
-
flag: '--format',
|
|
219
|
-
type: 'text|json',
|
|
220
|
-
description: 'Output format for help (default: text)',
|
|
221
|
-
},
|
|
222
|
-
],
|
|
223
|
-
examples: [
|
|
224
|
-
'claude-skills-cli init --name my-skill --description "Description"',
|
|
225
|
-
'claude-skills-cli validate .claude/skills/my-skill',
|
|
226
|
-
'claude-skills-cli add-hook',
|
|
227
|
-
'claude-skills-cli --help --format json',
|
|
228
|
-
],
|
|
229
|
-
notes: [
|
|
230
|
-
'IMPORTANT FOR LLMs:',
|
|
231
|
-
' ALWAYS run validate after creating or editing a skill:',
|
|
232
|
-
' claude-skills-cli validate <skill-path>',
|
|
233
|
-
' Skills MUST pass validation before use.',
|
|
234
|
-
' Fix all errors immediately. Address warnings promptly.',
|
|
235
|
-
'',
|
|
236
|
-
'Resources:',
|
|
237
|
-
' Pre-built skills: https://github.com/spences10/claude-code-toolkit',
|
|
238
|
-
],
|
|
239
|
-
};
|
|
240
|
-
export function show_command_help(help, format) {
|
|
241
|
-
if (format === 'json') {
|
|
242
|
-
console.log(JSON.stringify(help, null, 2));
|
|
243
|
-
return;
|
|
244
|
-
}
|
|
245
|
-
// Text format (human-friendly)
|
|
246
|
-
console.log(`claude-skills-cli ${help.command} - ${help.description}\n`);
|
|
247
|
-
console.log('Usage:');
|
|
248
|
-
console.log(` ${help.usage}\n`);
|
|
249
|
-
if (help.options.length > 0) {
|
|
250
|
-
console.log('Options:');
|
|
251
|
-
for (const opt of help.options) {
|
|
252
|
-
const flag_part = opt.flag.padEnd(20);
|
|
253
|
-
const type_part = opt.type ? `<${opt.type}>`.padEnd(15) : '';
|
|
254
|
-
const req_part = opt.required ? '[required]'.padEnd(12) : '';
|
|
255
|
-
console.log(` ${flag_part}${type_part}${opt.description}`);
|
|
256
|
-
}
|
|
257
|
-
console.log('');
|
|
258
|
-
}
|
|
259
|
-
if (help.examples.length > 0) {
|
|
260
|
-
console.log('Examples:');
|
|
261
|
-
for (const example of help.examples) {
|
|
262
|
-
console.log(` ${example}`);
|
|
263
|
-
}
|
|
264
|
-
}
|
|
265
|
-
}
|
|
266
|
-
export function show_main_help(format) {
|
|
267
|
-
if (format === 'json') {
|
|
268
|
-
console.log(JSON.stringify(MAIN_HELP, null, 2));
|
|
269
|
-
return;
|
|
270
|
-
}
|
|
271
|
-
// Text format (human-friendly)
|
|
272
|
-
console.log(`${MAIN_HELP.name} - ${MAIN_HELP.description}\n`);
|
|
273
|
-
console.log('Usage:');
|
|
274
|
-
console.log(` ${MAIN_HELP.usage}\n`);
|
|
275
|
-
if (MAIN_HELP.commands.length > 0) {
|
|
276
|
-
console.log('Commands:');
|
|
277
|
-
for (const cmd of MAIN_HELP.commands) {
|
|
278
|
-
const cmd_part = cmd.command.padEnd(12);
|
|
279
|
-
console.log(` ${cmd_part}${cmd.description}`);
|
|
280
|
-
}
|
|
281
|
-
console.log('');
|
|
282
|
-
}
|
|
283
|
-
if (MAIN_HELP.globalOptions.length > 0) {
|
|
284
|
-
console.log('Global Options:');
|
|
285
|
-
for (const opt of MAIN_HELP.globalOptions) {
|
|
286
|
-
const flag_part = opt.flag.padEnd(20);
|
|
287
|
-
const type_part = opt.type ? `<${opt.type}>`.padEnd(15) : '';
|
|
288
|
-
console.log(` ${flag_part}${type_part}${opt.description}`);
|
|
289
|
-
}
|
|
290
|
-
console.log('');
|
|
291
|
-
}
|
|
292
|
-
if (MAIN_HELP.examples.length > 0) {
|
|
293
|
-
console.log('Examples:');
|
|
294
|
-
for (const example of MAIN_HELP.examples) {
|
|
295
|
-
console.log(` ${example}`);
|
|
296
|
-
}
|
|
297
|
-
}
|
|
298
|
-
if (MAIN_HELP.notes && MAIN_HELP.notes.length > 0) {
|
|
299
|
-
console.log('');
|
|
300
|
-
for (const note of MAIN_HELP.notes) {
|
|
301
|
-
console.log(note);
|
|
302
|
-
}
|
|
303
|
-
}
|
|
304
|
-
}
|
|
305
|
-
//# sourceMappingURL=help.js.map
|
package/dist/help.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"help.js","sourceRoot":"","sources":["../src/help.ts"],"names":[],"mappings":"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"}
|
package/dist/skills/.gitkeep
DELETED
|
File without changes
|
package/dist/types.js
DELETED
package/dist/types.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":""}
|
package/dist/utils/fs.js
DELETED
|
@@ -1,25 +0,0 @@
|
|
|
1
|
-
import { chmodSync, mkdirSync, writeFileSync } from 'node:fs';
|
|
2
|
-
import { dirname } from 'node:path';
|
|
3
|
-
export function ensure_dir(path) {
|
|
4
|
-
mkdirSync(path, { recursive: true });
|
|
5
|
-
}
|
|
6
|
-
export function write_file(path, content) {
|
|
7
|
-
ensure_dir(dirname(path));
|
|
8
|
-
writeFileSync(path, content, 'utf-8');
|
|
9
|
-
}
|
|
10
|
-
export function make_executable(path) {
|
|
11
|
-
chmodSync(path, 0o755);
|
|
12
|
-
}
|
|
13
|
-
export function to_title_case(kebab_case) {
|
|
14
|
-
return kebab_case
|
|
15
|
-
.split('-')
|
|
16
|
-
.map((word) => word.charAt(0).toUpperCase() + word.slice(1))
|
|
17
|
-
.join(' ');
|
|
18
|
-
}
|
|
19
|
-
export function is_kebab_case(str) {
|
|
20
|
-
return /^[a-z0-9-]+$/.test(str);
|
|
21
|
-
}
|
|
22
|
-
export function is_lowercase(str) {
|
|
23
|
-
return str === str.toLowerCase();
|
|
24
|
-
}
|
|
25
|
-
//# sourceMappingURL=fs.js.map
|
package/dist/utils/fs.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"fs.js","sourceRoot":"","sources":["../../src/utils/fs.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAC9D,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEpC,MAAM,UAAU,UAAU,CAAC,IAAY;IACtC,SAAS,CAAC,IAAI,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;AACtC,CAAC;AAED,MAAM,UAAU,UAAU,CAAC,IAAY,EAAE,OAAe;IACvD,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;IAC1B,aAAa,CAAC,IAAI,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;AACvC,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,IAAY;IAC3C,SAAS,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;AACxB,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,UAAkB;IAC/C,OAAO,UAAU;SACf,KAAK,CAAC,GAAG,CAAC;SACV,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;SAC3D,IAAI,CAAC,GAAG,CAAC,CAAC;AACb,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,GAAW;IACxC,OAAO,cAAc,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACjC,CAAC;AAED,MAAM,UAAU,YAAY,CAAC,GAAW;IACvC,OAAO,GAAG,KAAK,GAAG,CAAC,WAAW,EAAE,CAAC;AAClC,CAAC"}
|
package/dist/utils/output.js
DELETED
|
@@ -1,102 +0,0 @@
|
|
|
1
|
-
import chalk from 'chalk';
|
|
2
|
-
export const success = (msg) => console.log(`✅ ${msg}`);
|
|
3
|
-
export const error = (msg) => console.log(`❌ ${msg}`);
|
|
4
|
-
export const warning = (msg) => console.log(`⚠️ ${msg}`);
|
|
5
|
-
export const info = (msg) => console.log(`📋 ${msg}`);
|
|
6
|
-
export const step = (msg) => console.log(` ${msg}`);
|
|
7
|
-
export const package_ = (msg) => console.log(`📦 ${msg}`);
|
|
8
|
-
export const upload = (msg) => console.log(`📤 ${msg}`);
|
|
9
|
-
export const search = (msg) => console.log(`🔍 ${msg}`);
|
|
10
|
-
/**
|
|
11
|
-
* Display progressive disclosure statistics with color-coded feedback
|
|
12
|
-
*/
|
|
13
|
-
export function display_validation_stats(stats) {
|
|
14
|
-
console.log(chalk.cyan('\n📊 Progressive Disclosure Stats:'));
|
|
15
|
-
// Level 1: Description
|
|
16
|
-
console.log(chalk.bold('\n Level 1 (Metadata - Always Loaded):'));
|
|
17
|
-
const desc_status = stats.description_length <= 200
|
|
18
|
-
? chalk.green('✅ Optimal')
|
|
19
|
-
: stats.description_length <= 300
|
|
20
|
-
? chalk.yellow('⚠️ Long')
|
|
21
|
-
: chalk.red('❌ Too long');
|
|
22
|
-
console.log(` Description: ${stats.description_length} chars, ~${stats.description_tokens} tokens ${desc_status}`);
|
|
23
|
-
console.log(` ${chalk.dim('(Target: <200 chars, <30 tokens for Level 1 efficiency)')}`);
|
|
24
|
-
// Level 2: SKILL.md Body
|
|
25
|
-
console.log(chalk.bold('\n Level 2 (SKILL.md Body - Loaded when triggered):'));
|
|
26
|
-
// Line count (strict defaults: max 50)
|
|
27
|
-
let line_status;
|
|
28
|
-
if (stats.line_count <= 30) {
|
|
29
|
-
line_status = chalk.green('✅ Excellent');
|
|
30
|
-
}
|
|
31
|
-
else if (stats.line_count <= 40) {
|
|
32
|
-
line_status = chalk.green('✅ Good');
|
|
33
|
-
}
|
|
34
|
-
else if (stats.line_count <= 50) {
|
|
35
|
-
line_status = chalk.yellow('⚠️ Consider splitting');
|
|
36
|
-
}
|
|
37
|
-
else {
|
|
38
|
-
line_status = chalk.red('❌ Too large');
|
|
39
|
-
}
|
|
40
|
-
console.log(` Lines: ${stats.line_count} (max: 50) ${line_status}`);
|
|
41
|
-
// Word count with recommendations (strict defaults: max 1000)
|
|
42
|
-
let word_status;
|
|
43
|
-
if (stats.word_count < 300) {
|
|
44
|
-
word_status = chalk.green('✅ Excellent');
|
|
45
|
-
}
|
|
46
|
-
else if (stats.word_count < 500) {
|
|
47
|
-
word_status = chalk.green('✅ Good');
|
|
48
|
-
}
|
|
49
|
-
else if (stats.word_count < 1000) {
|
|
50
|
-
word_status = chalk.yellow('⚠️ Consider splitting');
|
|
51
|
-
}
|
|
52
|
-
else {
|
|
53
|
-
word_status = chalk.red('❌ Too large');
|
|
54
|
-
}
|
|
55
|
-
console.log(` Words: ${stats.word_count} (max: 1000) ${word_status}`);
|
|
56
|
-
// Token estimation
|
|
57
|
-
const token_budget = 6500; // Level 2 budget (~5000 words * 1.3)
|
|
58
|
-
const token_status = stats.estimated_tokens < token_budget
|
|
59
|
-
? chalk.green('within budget')
|
|
60
|
-
: chalk.red('exceeds budget');
|
|
61
|
-
console.log(` Est. tokens: ~${stats.estimated_tokens} (budget: <${token_budget}) ${token_status}`);
|
|
62
|
-
// Code blocks
|
|
63
|
-
const code_status = stats.code_blocks > 3
|
|
64
|
-
? chalk.yellow(' (recommended: 1-2)')
|
|
65
|
-
: stats.code_blocks <= 2
|
|
66
|
-
? chalk.green(' ✅')
|
|
67
|
-
: '';
|
|
68
|
-
console.log(` Code blocks: ${stats.code_blocks}${code_status}`);
|
|
69
|
-
// Sections
|
|
70
|
-
const section_status = stats.sections > 8
|
|
71
|
-
? chalk.yellow(' (recommended: 3-5)')
|
|
72
|
-
: stats.sections >= 3 && stats.sections <= 5
|
|
73
|
-
? chalk.green(' ✅')
|
|
74
|
-
: '';
|
|
75
|
-
console.log(` Sections: ${stats.sections}${section_status}`);
|
|
76
|
-
// Long paragraphs
|
|
77
|
-
if (stats.long_paragraphs > 0) {
|
|
78
|
-
const para_status = stats.long_paragraphs > 3
|
|
79
|
-
? chalk.yellow(' (consider moving to references/)')
|
|
80
|
-
: '';
|
|
81
|
-
console.log(` Long paragraphs: ${stats.long_paragraphs}${para_status}`);
|
|
82
|
-
}
|
|
83
|
-
// Level 3 info
|
|
84
|
-
console.log(chalk.bold('\n Level 3+ (References - Loaded as needed):'));
|
|
85
|
-
console.log(` ${chalk.dim('Use references/ directory for detailed docs (unlimited size)')}`);
|
|
86
|
-
// Overall assessment (based on strict defaults)
|
|
87
|
-
console.log(chalk.bold('\n Overall Assessment:'));
|
|
88
|
-
if (stats.line_count <= 30 && stats.description_length <= 200) {
|
|
89
|
-
console.log(chalk.green(' ✅ Excellent progressive disclosure!'));
|
|
90
|
-
}
|
|
91
|
-
else if (stats.line_count <= 50 &&
|
|
92
|
-
stats.description_length <= 300) {
|
|
93
|
-
console.log(chalk.green(' ✅ Good progressive disclosure'));
|
|
94
|
-
}
|
|
95
|
-
else if (stats.line_count <= 150 && stats.word_count < 5000) {
|
|
96
|
-
console.log(chalk.yellow(' ⚠️ Consider splitting content into references/'));
|
|
97
|
-
}
|
|
98
|
-
else {
|
|
99
|
-
console.log(chalk.red(' ❌ Violates progressive disclosure (move content to references/)'));
|
|
100
|
-
}
|
|
101
|
-
}
|
|
102
|
-
//# sourceMappingURL=output.js.map
|
package/dist/utils/output.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"output.js","sourceRoot":"","sources":["../../src/utils/output.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,54 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Alignment validation - checks description and content alignment
|
|
3
|
-
*/
|
|
4
|
-
import { extract_keywords } from './text-analysis.js';
|
|
5
|
-
/**
|
|
6
|
-
* Analyze description and content alignment
|
|
7
|
-
*/
|
|
8
|
-
export function analyze_alignment(description, body) {
|
|
9
|
-
const desc_keywords = extract_keywords(description);
|
|
10
|
-
const content_keywords = extract_keywords(body);
|
|
11
|
-
const overlap = desc_keywords.filter((k) => content_keywords.includes(k));
|
|
12
|
-
const desc_only = desc_keywords.filter((k) => !content_keywords.includes(k));
|
|
13
|
-
const content_only = content_keywords
|
|
14
|
-
.filter((k) => !desc_keywords.includes(k))
|
|
15
|
-
.slice(0, 20);
|
|
16
|
-
const overlap_ratio = desc_keywords.length > 0
|
|
17
|
-
? overlap.length / desc_keywords.length
|
|
18
|
-
: 0;
|
|
19
|
-
let severity = 'good';
|
|
20
|
-
let explanation = 'Description aligns well with content';
|
|
21
|
-
if (overlap_ratio < 0.2 && desc_keywords.length > 5) {
|
|
22
|
-
severity = 'critical';
|
|
23
|
-
explanation = `Very low keyword overlap (${Math.round(overlap_ratio * 100)}%). Description may not match skill content.`;
|
|
24
|
-
}
|
|
25
|
-
else if (overlap_ratio < 0.3 && desc_keywords.length > 5) {
|
|
26
|
-
severity = 'moderate';
|
|
27
|
-
explanation = `Low keyword overlap (${Math.round(overlap_ratio * 100)}%). Description may not accurately reflect skill content.`;
|
|
28
|
-
}
|
|
29
|
-
const keywords = {
|
|
30
|
-
description_keywords: desc_keywords,
|
|
31
|
-
content_keywords: content_keywords.slice(0, 30),
|
|
32
|
-
overlap,
|
|
33
|
-
description_only: desc_only,
|
|
34
|
-
content_only,
|
|
35
|
-
};
|
|
36
|
-
const alignment = {
|
|
37
|
-
severity,
|
|
38
|
-
description_focus: desc_keywords.slice(0, 10),
|
|
39
|
-
content_focus: content_keywords.slice(0, 10),
|
|
40
|
-
matches: overlap,
|
|
41
|
-
mismatches: desc_only,
|
|
42
|
-
explanation,
|
|
43
|
-
};
|
|
44
|
-
const warnings = [];
|
|
45
|
-
if (overlap_ratio < 0.3 && desc_keywords.length > 5) {
|
|
46
|
-
warnings.push({
|
|
47
|
-
type: 'low_overlap',
|
|
48
|
-
message: `Low keyword overlap between description and content (${Math.round(overlap_ratio * 100)}%)\n` +
|
|
49
|
-
` → Description may not accurately reflect skill content`,
|
|
50
|
-
});
|
|
51
|
-
}
|
|
52
|
-
return { keywords, alignment, warnings };
|
|
53
|
-
}
|
|
54
|
-
//# sourceMappingURL=alignment-validator.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"alignment-validator.js","sourceRoot":"","sources":["../../src/validators/alignment-validator.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AActD;;GAEG;AACH,MAAM,UAAU,iBAAiB,CAChC,WAAmB,EACnB,IAAY;IAEZ,MAAM,aAAa,GAAG,gBAAgB,CAAC,WAAW,CAAC,CAAC;IACpD,MAAM,gBAAgB,GAAG,gBAAgB,CAAC,IAAI,CAAC,CAAC;IAEhD,MAAM,OAAO,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAC1C,gBAAgB,CAAC,QAAQ,CAAC,CAAC,CAAC,CAC5B,CAAC;IACF,MAAM,SAAS,GAAG,aAAa,CAAC,MAAM,CACrC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,gBAAgB,CAAC,QAAQ,CAAC,CAAC,CAAC,CACpC,CAAC;IACF,MAAM,YAAY,GAAG,gBAAgB;SACnC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;SACzC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IAEf,MAAM,aAAa,GAClB,aAAa,CAAC,MAAM,GAAG,CAAC;QACvB,CAAC,CAAC,OAAO,CAAC,MAAM,GAAG,aAAa,CAAC,MAAM;QACvC,CAAC,CAAC,CAAC,CAAC;IAEN,IAAI,QAAQ,GAAqC,MAAM,CAAC;IACxD,IAAI,WAAW,GAAG,sCAAsC,CAAC;IAEzD,IAAI,aAAa,GAAG,GAAG,IAAI,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACrD,QAAQ,GAAG,UAAU,CAAC;QACtB,WAAW,GAAG,6BAA6B,IAAI,CAAC,KAAK,CAAC,aAAa,GAAG,GAAG,CAAC,8CAA8C,CAAC;IAC1H,CAAC;SAAM,IAAI,aAAa,GAAG,GAAG,IAAI,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC5D,QAAQ,GAAG,UAAU,CAAC;QACtB,WAAW,GAAG,wBAAwB,IAAI,CAAC,KAAK,CAAC,aAAa,GAAG,GAAG,CAAC,2DAA2D,CAAC;IAClI,CAAC;IAED,MAAM,QAAQ,GAAoB;QACjC,oBAAoB,EAAE,aAAa;QACnC,gBAAgB,EAAE,gBAAgB,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC;QAC/C,OAAO;QACP,gBAAgB,EAAE,SAAS;QAC3B,YAAY;KACZ,CAAC;IAEF,MAAM,SAAS,GAAsB;QACpC,QAAQ;QACR,iBAAiB,EAAE,aAAa,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC;QAC7C,aAAa,EAAE,gBAAgB,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC;QAC5C,OAAO,EAAE,OAAO;QAChB,UAAU,EAAE,SAAS;QACrB,WAAW;KACX,CAAC;IAEF,MAAM,QAAQ,GAAuB,EAAE,CAAC;IAExC,IAAI,aAAa,GAAG,GAAG,IAAI,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACrD,QAAQ,CAAC,IAAI,CAAC;YACb,IAAI,EAAE,aAAa;YACnB,OAAO,EACN,wDAAwD,IAAI,CAAC,KAAK,CAAC,aAAa,GAAG,GAAG,CAAC,MAAM;gBAC7F,0DAA0D;SAC3D,CAAC,CAAC;IACJ,CAAC;IAED,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,QAAQ,EAAE,CAAC;AAC1C,CAAC"}
|