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.
Files changed (81) hide show
  1. package/dist/add-hook.cmd-JWw5UqA3.js +193 -0
  2. package/dist/add-hook.cmd-JWw5UqA3.js.map +1 -0
  3. package/dist/dependency-validator-CQJ1hCoU.js +382 -0
  4. package/dist/dependency-validator-CQJ1hCoU.js.map +1 -0
  5. package/dist/doctor.cmd-DJpHLDCV.js +142 -0
  6. package/dist/doctor.cmd-DJpHLDCV.js.map +1 -0
  7. package/dist/fs-CuGv3Ob2.js +23 -0
  8. package/dist/fs-CuGv3Ob2.js.map +1 -0
  9. package/dist/index.js +24 -22
  10. package/dist/index.js.map +1 -1
  11. package/dist/init.cmd-BdqImX8b.js +108 -0
  12. package/dist/init.cmd-BdqImX8b.js.map +1 -0
  13. package/dist/install.cmd-BaP8k9d2.js +79 -0
  14. package/dist/install.cmd-BaP8k9d2.js.map +1 -0
  15. package/dist/output-DiffPD2u.js +104 -0
  16. package/dist/output-DiffPD2u.js.map +1 -0
  17. package/dist/package.cmd-BYhkheya.js +107 -0
  18. package/dist/package.cmd-BYhkheya.js.map +1 -0
  19. package/dist/stats.cmd-Dd46qjoV.js +154 -0
  20. package/dist/stats.cmd-Dd46qjoV.js.map +1 -0
  21. package/dist/{core/templates.js → templates-fyteNbD0.js} +20 -13
  22. package/dist/templates-fyteNbD0.js.map +1 -0
  23. package/dist/validate.cmd-BxF4HNsu.js +96 -0
  24. package/dist/validate.cmd-BxF4HNsu.js.map +1 -0
  25. package/dist/validator-Dp5x-OjP.js +729 -0
  26. package/dist/validator-Dp5x-OjP.js.map +1 -0
  27. package/package.json +34 -35
  28. package/dist/commands/add-hook.cmd.js +0 -35
  29. package/dist/commands/add-hook.cmd.js.map +0 -1
  30. package/dist/commands/add-hook.js +0 -216
  31. package/dist/commands/add-hook.js.map +0 -1
  32. package/dist/commands/doctor.cmd.js +0 -19
  33. package/dist/commands/doctor.cmd.js.map +0 -1
  34. package/dist/commands/doctor.js +0 -128
  35. package/dist/commands/doctor.js.map +0 -1
  36. package/dist/commands/init.cmd.js +0 -37
  37. package/dist/commands/init.cmd.js.map +0 -1
  38. package/dist/commands/init.js +0 -86
  39. package/dist/commands/init.js.map +0 -1
  40. package/dist/commands/install.cmd.js +0 -23
  41. package/dist/commands/install.cmd.js.map +0 -1
  42. package/dist/commands/install.js +0 -64
  43. package/dist/commands/install.js.map +0 -1
  44. package/dist/commands/package.cmd.js +0 -28
  45. package/dist/commands/package.cmd.js.map +0 -1
  46. package/dist/commands/package.js +0 -134
  47. package/dist/commands/package.js.map +0 -1
  48. package/dist/commands/stats.cmd.js +0 -19
  49. package/dist/commands/stats.cmd.js.map +0 -1
  50. package/dist/commands/stats.js +0 -154
  51. package/dist/commands/stats.js.map +0 -1
  52. package/dist/commands/validate.cmd.js +0 -39
  53. package/dist/commands/validate.cmd.js.map +0 -1
  54. package/dist/commands/validate.js +0 -77
  55. package/dist/commands/validate.js.map +0 -1
  56. package/dist/core/templates.js.map +0 -1
  57. package/dist/core/validator.js +0 -252
  58. package/dist/core/validator.js.map +0 -1
  59. package/dist/help.js +0 -305
  60. package/dist/help.js.map +0 -1
  61. package/dist/skills/.gitkeep +0 -0
  62. package/dist/types.js +0 -2
  63. package/dist/types.js.map +0 -1
  64. package/dist/utils/fs.js +0 -25
  65. package/dist/utils/fs.js.map +0 -1
  66. package/dist/utils/output.js +0 -102
  67. package/dist/utils/output.js.map +0 -1
  68. package/dist/validators/alignment-validator.js +0 -54
  69. package/dist/validators/alignment-validator.js.map +0 -1
  70. package/dist/validators/content-validator.js +0 -156
  71. package/dist/validators/content-validator.js.map +0 -1
  72. package/dist/validators/description-validator.js +0 -150
  73. package/dist/validators/description-validator.js.map +0 -1
  74. package/dist/validators/file-structure-validator.js +0 -125
  75. package/dist/validators/file-structure-validator.js.map +0 -1
  76. package/dist/validators/frontmatter-validator.js +0 -190
  77. package/dist/validators/frontmatter-validator.js.map +0 -1
  78. package/dist/validators/references-validator.js +0 -155
  79. package/dist/validators/references-validator.js.map +0 -1
  80. package/dist/validators/text-analysis.js +0 -71
  81. 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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"}
File without changes
package/dist/types.js DELETED
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=types.js.map
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
@@ -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"}
@@ -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
@@ -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"}