-
Notifications
You must be signed in to change notification settings - Fork 77
Expand file tree
/
Copy pathtest-parser.js
More file actions
executable file
·117 lines (98 loc) · 5.19 KB
/
test-parser.js
File metadata and controls
executable file
·117 lines (98 loc) · 5.19 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
#!/usr/bin/env node
/**
* Test Script for Skill Parser
*
* Tests the parser with real skills from ~/.claude/skills/
*/
const { findAllSkills, parseSkill, validateSkill } = require('./dist/parser/skill-parser.js');
const { join } = require('path');
const { homedir } = require('os');
async function testParser() {
console.log('═══════════════════════════════════════════════');
console.log(' SKILL PARSER TEST');
console.log('═══════════════════════════════════════════════\n');
const skillsDir = join(homedir(), '.claude', 'skills');
console.log(`Testing with skills from: ${skillsDir}\n`);
// Test 1: Find all skills
console.log('TEST 1: Find all skills');
console.log('─────────────────────────────────────────────\n');
try {
const skills = await findAllSkills(skillsDir, { validate: false });
console.log(`✅ Found ${skills.length} skills\n`);
// Show first 5 skills
console.log('First 5 skills:');
skills.slice(0, 5).forEach((skill, index) => {
console.log(` ${index + 1}. ${skill.metadata.name}`);
console.log(` Path: ${skill.path}`);
console.log(` Keywords: ${skill.metadata.keywords.join(', ') || 'none'}`);
console.log(` Templates: ${skill.templates ? skill.templates.length : 0} files`);
console.log();
});
} catch (error) {
console.error('❌ Error finding skills:', error.message);
return;
}
// Test 2: Parse specific skill with templates
console.log('\n─────────────────────────────────────────────');
console.log('TEST 2: Parse skill with templates (tailwind-v4-shadcn)');
console.log('─────────────────────────────────────────────\n');
try {
const tailwindSkillPath = join(skillsDir, 'tailwind-v4-shadcn');
const tailwindSkill = await parseSkill(tailwindSkillPath, { validate: false });
console.log(`✅ Parsed: ${tailwindSkill.metadata.name}`);
console.log(` Description length: ${tailwindSkill.metadata.description.length} chars`);
console.log(` Keywords: ${tailwindSkill.metadata.keywords.join(', ')}`);
console.log(` Use when: ${tailwindSkill.metadata.useWhen ? 'Found' : 'Not found'}`);
console.log(` Templates: ${tailwindSkill.templates ? tailwindSkill.templates.length : 0} files`);
if (tailwindSkill.templates && tailwindSkill.templates.length > 0) {
console.log('\n Template files:');
tailwindSkill.templates.forEach((template) => {
console.log(` - ${template}`);
});
}
console.log();
} catch (error) {
console.error('❌ Error parsing tailwind-v4-shadcn:', error.message);
}
// Test 3: Validation
console.log('\n─────────────────────────────────────────────');
console.log('TEST 3: Validate skills');
console.log('─────────────────────────────────────────────\n');
try {
const skills = await findAllSkills(skillsDir, { validate: false });
const testSkill = skills[0];
if (testSkill) {
const validation = await validateSkill(testSkill);
console.log(`✅ Validation for: ${testSkill.metadata.name}`);
console.log(` Valid: ${validation.valid}`);
console.log(` Errors: ${validation.errors.length}`);
console.log(` Warnings: ${validation.warnings.length}`);
if (validation.warnings.length > 0) {
console.log('\n Warnings:');
validation.warnings.forEach((warning) => {
console.log(` - ${warning}`);
});
}
}
} catch (error) {
console.error('❌ Error validating skill:', error.message);
}
// Test 4: Parse all with validation
console.log('\n─────────────────────────────────────────────');
console.log('TEST 4: Parse all skills with validation');
console.log('─────────────────────────────────────────────\n');
try {
const skills = await findAllSkills(skillsDir, { validate: true });
console.log(`✅ Successfully parsed and validated ${skills.length} skills\n`);
} catch (error) {
console.error('❌ Error during validation:', error.message);
}
console.log('═══════════════════════════════════════════════');
console.log(' TEST COMPLETE');
console.log('═══════════════════════════════════════════════');
}
// Run tests
testParser().catch((error) => {
console.error('Fatal error:', error);
process.exit(1);
});