claude-skills-cli 0.0.7 → 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.
@@ -1,960 +0,0 @@
1
- # claude-skills-cli: Enhancement Recommendations
2
-
3
- Actionable improvements based on ecosystem analysis, prioritized by
4
- impact and feasibility.
5
-
6
- ## Overview
7
-
8
- Current CLI commands:
9
-
10
- - `init` - Create skill scaffolding
11
- - `validate` - Check progressive disclosure compliance
12
- - `stats` - Overview of all skills
13
- - `package` - Create uploadable zip
14
-
15
- **Gaps identified**:
16
-
17
- 1. No behavioral testing capability
18
- 2. No skill discovery/installation
19
- 3. No hook management
20
- 4. Limited quality metrics
21
- 5. No community integration
22
-
23
- ## Priority 0: Critical Enhancements
24
-
25
- ### 1. Add `test` Command - Behavioral Validation
26
-
27
- **Problem**: Validation only checks structure, not effectiveness.
28
-
29
- **Solution**: Subagent-based behavioral testing.
30
-
31
- #### Implementation
32
-
33
- ```typescript
34
- // src/commands/test.ts
35
- export async function testSkill(skillPath: string, options: TestOptions): Promise<TestResult> {
36
- // 1. Load test scenarios
37
- const scenarios = loadTestScenarios(skillPath);
38
-
39
- // 2. For each scenario:
40
- // - Launch subagent with skill
41
- // - Provide scenario input
42
- // - Observe behavior
43
- // - Compare to expected
44
-
45
- // 3. Generate report
46
- return {
47
- passed: 5,
48
- failed: 2,
49
- scenarios: [...],
50
- coverage: 0.71
51
- };
52
- }
53
- ```
54
-
55
- #### CLI Usage
56
-
57
- ```bash
58
- # Test with default scenarios
59
- pnpx claude-skills-cli test .claude/skills/my-skill
60
-
61
- # Test with custom scenarios
62
- pnpx claude-skills-cli test .claude/skills/my-skill --scenarios tests.json
63
-
64
- # Test all skills
65
- pnpx claude-skills-cli test .claude/skills --all
66
-
67
- # Generate test scenarios from skill description
68
- pnpx claude-skills-cli test .claude/skills/my-skill --generate-scenarios
69
- ```
70
-
71
- #### Test Scenario Format
72
-
73
- ```json
74
- {
75
- "name": "my-skill-tests",
76
- "version": "1.0.0",
77
- "scenarios": [
78
- {
79
- "id": "happy-path-1",
80
- "name": "Creates new feature with tests",
81
- "skill": "feature-implementer",
82
- "input": "Add a user profile component",
83
- "context": {
84
- "files": ["src/App.tsx", "src/types.ts"],
85
- "framework": "React"
86
- },
87
- "expected": {
88
- "files_created": [
89
- "src/components/UserProfile.tsx",
90
- "src/components/UserProfile.test.tsx"
91
- ],
92
- "behavior_keywords": [
93
- "creates component",
94
- "adds tests",
95
- "updates imports"
96
- ],
97
- "not_behavior_keywords": [
98
- "deletes files",
99
- "modifies unrelated"
100
- ]
101
- },
102
- "pressure": ["time constraint", "unclear requirements"],
103
- "timeout_seconds": 120
104
- }
105
- ]
106
- }
107
- ```
108
-
109
- #### Value Proposition
110
-
111
- - **Validates effectiveness**, not just structure
112
- - **Catches regressions** when updating skills
113
- - **Documents expected behavior** via tests
114
- - **Builds confidence** in skill quality
115
-
116
- #### Effort Estimate
117
-
118
- - Implementation: 2-3 days
119
- - Testing: 1 day
120
- - Documentation: 0.5 days
121
- - **Total: ~4 days**
122
-
123
- ### 2. Add `search` and `install` Commands - Discovery
124
-
125
- **Problem**: No way to discover or install community skills.
126
-
127
- **Solution**: Skills registry with search/install commands.
128
-
129
- #### Registry Format
130
-
131
- ```json
132
- {
133
- "name": "claude-skills-registry",
134
- "version": "1.0.0",
135
- "skills": [
136
- {
137
- "name": "test-runner",
138
- "description": "Smart test execution based on changes...",
139
- "author": "community",
140
- "version": "1.2.0",
141
- "source": "https://github.com/user/repo/tree/main/.claude/skills/test-runner",
142
- "tags": ["testing", "automation", "qa"],
143
- "languages": ["javascript", "python", "rust"],
144
- "quality_score": 0.92,
145
- "downloads": 1523,
146
- "updated": "2025-10-15"
147
- }
148
- ]
149
- }
150
- ```
151
-
152
- #### CLI Usage
153
-
154
- ```bash
155
- # Search for skills
156
- pnpx claude-skills-cli search testing
157
- pnpx claude-skills-cli search --tag security
158
- pnpx claude-skills-cli search --language python
159
-
160
- # Show skill details
161
- pnpx claude-skills-cli info test-runner
162
-
163
- # Install skill
164
- pnpx claude-skills-cli install test-runner
165
- pnpx claude-skills-cli install test-runner --global # ~/.claude/skills
166
- pnpx claude-skills-cli install https://github.com/user/repo/tree/main/.claude/skills/custom-skill
167
-
168
- # List installed skills
169
- pnpx claude-skills-cli list
170
- pnpx claude-skills-cli list --global
171
-
172
- # Update skills
173
- pnpx claude-skills-cli update test-runner
174
- pnpx claude-skills-cli update --all
175
- ```
176
-
177
- #### Implementation
178
-
179
- ```typescript
180
- // src/commands/search.ts
181
- export async function searchSkills(
182
- query: string,
183
- options: SearchOptions,
184
- ): Promise<Skill[]> {
185
- // 1. Fetch registry from GitHub/CDN
186
- const registry = await fetchRegistry();
187
-
188
- // 2. Filter by query, tags, language
189
- const results = registry.skills.filter(
190
- (skill) =>
191
- skill.name.includes(query) ||
192
- skill.description.includes(query) ||
193
- skill.tags.some((tag) => tag.includes(query)),
194
- );
195
-
196
- // 3. Sort by relevance and quality score
197
- return results.sort((a, b) => b.quality_score - a.quality_score);
198
- }
199
-
200
- // src/commands/install.ts
201
- export async function installSkill(
202
- skillName: string,
203
- options: InstallOptions,
204
- ): Promise<void> {
205
- // 1. Find skill in registry
206
- const skill = await findSkill(skillName);
207
-
208
- // 2. Download skill files
209
- const files = await downloadSkill(skill.source);
210
-
211
- // 3. Validate before installing
212
- const validation = await validateSkill(files);
213
- if (!validation.valid) {
214
- throw new Error(`Skill validation failed: ${validation.errors}`);
215
- }
216
-
217
- // 4. Install to ~/.claude/skills or .claude/skills
218
- const targetPath = options.global
219
- ? '~/.claude/skills'
220
- : '.claude/skills';
221
- await copyFiles(files, `${targetPath}/${skill.name}`);
222
-
223
- // 5. Report success
224
- console.log(
225
- `✅ Installed ${skill.name} to ${targetPath}/${skill.name}`,
226
- );
227
- }
228
- ```
229
-
230
- #### Registry Hosting
231
-
232
- **Phase 1**: Static JSON on GitHub
233
-
234
- - `https://raw.githubusercontent.com/spences10/claude-skills-registry/main/registry.json`
235
- - Updated via PRs to registry repo
236
- - Free, simple, version controlled
237
-
238
- **Phase 2**: Dynamic API
239
-
240
- - Search with full-text indexing
241
- - Analytics (downloads, ratings)
242
- - Automated quality scoring
243
- - Community curation
244
-
245
- #### Value Proposition
246
-
247
- - **Solves discovery problem** - Users can find relevant skills
248
- - **One-click installation** - Lower barrier to adoption
249
- - **Quality signals** - Scores help users choose
250
- - **Community growth** - Makes skill sharing easy
251
-
252
- #### Effort Estimate
253
-
254
- - Implementation: 3-4 days
255
- - Registry setup: 1 day
256
- - Testing: 1 day
257
- - Documentation: 0.5 days
258
- - **Total: ~6 days**
259
-
260
- ### 3. Enhanced `validate` Command - Quality Scoring
261
-
262
- **Problem**: Validation is pass/fail, no quality guidance.
263
-
264
- **Solution**: Add quality scoring with actionable feedback.
265
-
266
- #### Quality Dimensions
267
-
268
- ```typescript
269
- interface QualityScore {
270
- overall: number; // 0-1
271
- dimensions: {
272
- structure: number; // Frontmatter, sections, organization
273
- clarity: number; // Description, examples, documentation
274
- completeness: number; // References, scripts, tests
275
- maintainability: number; // Freshness, versioning, changelog
276
- effectiveness: number; // Test results, usage metrics
277
- };
278
- feedback: Feedback[];
279
- }
280
-
281
- interface Feedback {
282
- type: 'error' | 'warning' | 'suggestion';
283
- dimension: string;
284
- message: string;
285
- action?: string; // What to do to fix it
286
- }
287
- ```
288
-
289
- #### Implementation
290
-
291
- ```typescript
292
- // src/validation/quality-scorer.ts
293
- export function scoreQuality(skill: Skill): QualityScore {
294
- const scores = {
295
- structure: scoreStructure(skill),
296
- clarity: scoreClarity(skill),
297
- completeness: scoreCompleteness(skill),
298
- maintainability: scoreMaintainability(skill),
299
- effectiveness: scoreEffectiveness(skill),
300
- };
301
-
302
- const overall = Object.values(scores).reduce((a, b) => a + b) / 5;
303
-
304
- return {
305
- overall,
306
- dimensions: scores,
307
- feedback: generateFeedback(skill, scores),
308
- };
309
- }
310
-
311
- function scoreClarity(skill: Skill): number {
312
- let score = 1.0;
313
-
314
- // Description quality
315
- if (skill.description.length < 50) score -= 0.2;
316
- if (!hasTriggerWords(skill.description)) score -= 0.2;
317
- if (hasGenericPhrases(skill.description)) score -= 0.1;
318
-
319
- // Example quality
320
- if (skill.examples.length === 0) score -= 0.2;
321
- if (hasConcreteExamples(skill.examples)) score += 0.1;
322
-
323
- // Documentation quality
324
- if (skill.body.includes('TODO')) score -= 0.2;
325
- if (hasVagueInstructions(skill.body)) score -= 0.1;
326
-
327
- return Math.max(0, score);
328
- }
329
- ```
330
-
331
- #### CLI Usage
332
-
333
- ```bash
334
- # Validate with quality score
335
- pnpx claude-skills-cli validate .claude/skills/my-skill --score
336
-
337
- # Output:
338
- # ✅ Valid skill structure
339
- #
340
- # Quality Score: 0.78 / 1.00 (Good)
341
- #
342
- # Dimensions:
343
- # Structure: 0.95 ✅ Excellent
344
- # Clarity: 0.72 ⚠️ Could improve
345
- # Completeness: 0.65 ⚠️ Could improve
346
- # Maintainability: 0.90 ✅ Excellent
347
- # Effectiveness: 0.68 ⚠️ Could improve
348
- #
349
- # Feedback:
350
- # ⚠️ Clarity: Description lacks trigger keywords
351
- # Action: Add keywords like "testing", "coverage", "qa"
352
- #
353
- # ⚠️ Completeness: No reference documentation
354
- # Action: Move detailed examples to references/ directory
355
- #
356
- # 💡 Suggestion: Add test scenarios to validate effectiveness
357
- # Action: Run `claude-skills-cli test --generate-scenarios`
358
- ```
359
-
360
- #### Value Proposition
361
-
362
- - **Actionable feedback** - Not just "bad", but "how to improve"
363
- - **Continuous improvement** - Track score over time
364
- - **Competitive benchmark** - Compare to high-quality skills
365
- - **Learning tool** - Teaches skill development best practices
366
-
367
- #### Effort Estimate
368
-
369
- - Implementation: 2 days
370
- - Scoring algorithms: 1 day
371
- - Testing: 1 day
372
- - Documentation: 0.5 days
373
- - **Total: ~4.5 days**
374
-
375
- ## Priority 1: Important Enhancements
376
-
377
- ### 4. Add `hook` Command - Hook Management
378
-
379
- **Problem**: Hook integration is underutilized, lacks templates.
380
-
381
- **Solution**: Hook management with common templates.
382
-
383
- #### CLI Usage
384
-
385
- ```bash
386
- # List available hook templates
387
- pnpx claude-skills-cli hook list-templates
388
-
389
- # Add hook from template
390
- pnpx claude-skills-cli hook add --template pre-commit-validation
391
- pnpx claude-skills-cli hook add --template post-edit-skill-validation
392
- pnpx claude-skills-cli hook add --template resource-tracking
393
-
394
- # Add custom hook
395
- pnpx claude-skills-cli hook add --tool Edit --script ./my-hook.sh
396
-
397
- # List installed hooks
398
- pnpx claude-skills-cli hook list
399
-
400
- # Remove hook
401
- pnpx claude-skills-cli hook remove --tool Edit --script ./my-hook.sh
402
-
403
- # Test hook
404
- pnpx claude-skills-cli hook test pre-commit-validation --tool Bash --args "git commit -m 'test'"
405
- ```
406
-
407
- #### Hook Templates
408
-
409
- ```typescript
410
- // src/hooks/templates.ts
411
- export const HOOK_TEMPLATES = {
412
- 'pre-commit-validation': {
413
- name: 'Pre-commit Validation',
414
- description: 'Validates code before commits',
415
- tool: 'Bash',
416
- pattern: 'git commit*',
417
- script: `#!/bin/bash
418
- set -euo pipefail
419
-
420
- # Run linter
421
- npm run lint || exit 1
422
-
423
- # Run tests
424
- npm test || exit 1
425
-
426
- echo "✅ Pre-commit checks passed"
427
- exit 0
428
- `,
429
- },
430
-
431
- 'post-edit-skill-validation': {
432
- name: 'Post-Edit Skill Validation',
433
- description: 'Validates skills after editing SKILL.md files',
434
- tool: 'Edit',
435
- pattern: '*/SKILL.md',
436
- script: `#!/bin/bash
437
- set -euo pipefail
438
-
439
- SKILL_DIR=$(dirname "$CLAUDE_FILE_PATH")
440
-
441
- # Validate skill structure
442
- pnpx claude-skills-cli validate "$SKILL_DIR" --quiet || {
443
- echo "❌ Skill validation failed. Please fix errors before proceeding."
444
- exit 1
445
- }
446
-
447
- exit 0
448
- `,
449
- },
450
-
451
- 'resource-tracking': {
452
- name: 'Resource Usage Tracking',
453
- description: 'Tracks token usage and performance',
454
- tool: '*',
455
- script: `#!/usr/bin/env python3
456
- import json
457
- import time
458
- from pathlib import Path
459
-
460
- log_file = Path.home() / '.claude' / 'usage.jsonl'
461
-
462
- entry = {
463
- 'timestamp': time.time(),
464
- 'tool': os.environ.get('CLAUDE_TOOL'),
465
- 'file_paths': os.environ.get('CLAUDE_FILE_PATHS', '').split(',')
466
- }
467
-
468
- with open(log_file, 'a') as f:
469
- f.write(json.dumps(entry) + '\\n')
470
-
471
- exit 0
472
- `,
473
- },
474
- };
475
- ```
476
-
477
- #### Implementation
478
-
479
- ```typescript
480
- // src/commands/hook.ts
481
- export async function addHook(
482
- options: AddHookOptions,
483
- ): Promise<void> {
484
- // 1. Load or create .claude/settings.json
485
- const settings = await loadSettings();
486
-
487
- // 2. Get hook script (from template or custom)
488
- const hookScript = options.template
489
- ? HOOK_TEMPLATES[options.template].script
490
- : fs.readFileSync(options.script, 'utf-8');
491
-
492
- // 3. Write hook script to .claude/hooks/
493
- const hookPath = `.claude/hooks/${options.name}.sh`;
494
- await fs.writeFile(hookPath, hookScript, { mode: 0o755 });
495
-
496
- // 4. Update settings.json
497
- if (!settings.PreToolUse) settings.PreToolUse = {};
498
- settings.PreToolUse[options.tool] = `bash ${hookPath}`;
499
-
500
- await saveSettings(settings);
501
-
502
- console.log(`✅ Added hook: ${options.name}`);
503
- }
504
- ```
505
-
506
- #### Value Proposition
507
-
508
- - **Lowers barrier** - Templates make hooks accessible
509
- - **Best practices** - Templates encode proven patterns
510
- - **Automation** - Enables powerful workflows
511
- - **Learning tool** - Shows what's possible with hooks
512
-
513
- #### Effort Estimate
514
-
515
- - Implementation: 2 days
516
- - Templates: 1 day
517
- - Testing: 0.5 days
518
- - Documentation: 0.5 days
519
- - **Total: ~4 days**
520
-
521
- ### 5. Enhanced `stats` Command - Rich Analytics
522
-
523
- **Problem**: Current stats are basic, no insights.
524
-
525
- **Solution**: Add quality metrics, trends, comparisons.
526
-
527
- #### CLI Usage
528
-
529
- ```bash
530
- # Basic stats (current behavior)
531
- pnpx claude-skills-cli stats .claude/skills
532
-
533
- # Enhanced stats with quality scores
534
- pnpx claude-skills-cli stats .claude/skills --detailed
535
-
536
- # Compare against benchmarks
537
- pnpx claude-skills-cli stats .claude/skills --benchmark
538
-
539
- # Show trends over time
540
- pnpx claude-skills-cli stats .claude/skills --history
541
-
542
- # Export to JSON for analysis
543
- pnpx claude-skills-cli stats .claude/skills --json > stats.json
544
- ```
545
-
546
- #### Enhanced Output
547
-
548
- ```
549
- 📊 Skills Statistics
550
-
551
- Overview:
552
- Total skills: 12
553
- Average quality: 0.78 (Good)
554
- Total size: 156 KB
555
- Last updated: 2 days ago
556
-
557
- Quality Distribution:
558
- Excellent (0.9+): 3 skills ▓▓▓░░░░░░░
559
- Good (0.7-0.9): 6 skills ▓▓▓▓▓▓░░░░
560
- Fair (0.5-0.7): 2 skills ▓▓░░░░░░░░
561
- Poor (<0.5): 1 skill ▓░░░░░░░░░
562
-
563
- Top Skills by Quality:
564
- 1. test-runner 0.94 ✅
565
- 2. git-workflow 0.91 ✅
566
- 3. doc-generator 0.88 ✅
567
-
568
- Skills Needing Attention:
569
- 1. old-skill 0.42 ❌ No tests, outdated
570
- 2. experimental 0.58 ⚠️ Missing references
571
-
572
- Recommendations:
573
- 💡 Add test scenarios to 8 skills without tests
574
- 💡 Update 3 skills not modified in 30+ days
575
- 💡 Consider archiving 'old-skill' (low quality, unused)
576
- ```
577
-
578
- #### Implementation
579
-
580
- ```typescript
581
- // src/commands/stats.ts
582
- export async function generateStats(
583
- skillsPath: string,
584
- options: StatsOptions,
585
- ): Promise<Stats> {
586
- const skills = await loadAllSkills(skillsPath);
587
-
588
- // Calculate quality scores for all skills
589
- const scores = await Promise.all(
590
- skills.map((skill) => scoreQuality(skill)),
591
- );
592
-
593
- // Analyze trends if history available
594
- const trends = options.history
595
- ? await analyzeTrends(skillsPath)
596
- : null;
597
-
598
- // Compare against benchmarks
599
- const comparison = options.benchmark
600
- ? compareAgainstBenchmarks(scores)
601
- : null;
602
-
603
- return {
604
- overview: generateOverview(skills, scores),
605
- distribution: generateDistribution(scores),
606
- topSkills: getTopSkills(skills, scores),
607
- needsAttention: getNeedsAttention(skills, scores),
608
- recommendations: generateRecommendations(skills, scores),
609
- trends,
610
- comparison,
611
- };
612
- }
613
- ```
614
-
615
- #### Value Proposition
616
-
617
- - **Portfolio view** - Understand skill quality at a glance
618
- - **Actionable insights** - Know what to improve
619
- - **Trend tracking** - See quality evolution over time
620
- - **Benchmark comparison** - Know how you compare to community
621
-
622
- #### Effort Estimate
623
-
624
- - Implementation: 1.5 days
625
- - Visualization: 0.5 days
626
- - Testing: 0.5 days
627
- - Documentation: 0.5 days
628
- - **Total: ~3 days**
629
-
630
- ### 6. Add `init` Templates - Framework-Specific Scaffolding
631
-
632
- **Problem**: Generic init template, no framework-specific patterns.
633
-
634
- **Solution**: Add templates for common skill types.
635
-
636
- #### CLI Usage
637
-
638
- ```bash
639
- # List available templates
640
- pnpx claude-skills-cli init --list-templates
641
-
642
- # Use template
643
- pnpx claude-skills-cli init --name my-skill --template testing
644
- pnpx claude-skills-cli init --name api-docs --template documentation
645
- pnpx claude-skills-cli init --name react-patterns --template framework
646
-
647
- # Interactive mode
648
- pnpx claude-skills-cli init --interactive
649
- ```
650
-
651
- #### Templates
652
-
653
- ```typescript
654
- export const INIT_TEMPLATES = {
655
- basic: {
656
- name: 'Basic Skill',
657
- description: 'Minimal skill structure',
658
- includes: ['SKILL.md', 'README.md'],
659
- },
660
-
661
- testing: {
662
- name: 'Testing Skill',
663
- description: 'Skill for test-related workflows',
664
- includes: [
665
- 'SKILL.md',
666
- 'README.md',
667
- 'references/',
668
- 'scripts/',
669
- 'tests/',
670
- ],
671
- skillMdTemplate: `---
672
- name: {{name}}
673
- description: Smart test execution and analysis. Use when running tests, analyzing failures, or improving test coverage.
674
- ---
675
-
676
- # {{name}}
677
-
678
- Intelligent test runner that adapts to your testing framework.
679
-
680
- ## Quick Start
681
-
682
- Run tests for changed files:
683
- \`\`\`bash
684
- python .claude/skills/{{name}}/scripts/run_tests.py --changed
685
- \`\`\`
686
-
687
- ## Supported Frameworks
688
-
689
- - Jest / Vitest (JavaScript/TypeScript)
690
- - pytest (Python)
691
- - cargo test (Rust)
692
- - go test (Go)
693
-
694
- ## Core Patterns
695
-
696
- 1. **Smart test selection**: Runs only tests affected by changes
697
- 2. **Failure analysis**: Parses errors and suggests fixes
698
- 3. **Coverage tracking**: Identifies untested code paths
699
-
700
- See [references/framework-detection.md](references/framework-detection.md) for details.
701
- `,
702
- },
703
-
704
- documentation: {
705
- name: 'Documentation Skill',
706
- description: 'Skill for documentation workflows',
707
- includes: ['SKILL.md', 'README.md', 'references/', 'templates/'],
708
- skillMdTemplate: `---
709
- name: {{name}}
710
- description: Generate and maintain documentation. Use when creating docs, updating API references, or improving documentation quality.
711
- ---
712
- ...
713
- `,
714
- },
715
-
716
- framework: {
717
- name: 'Framework Expertise Skill',
718
- description: 'Skill for framework-specific patterns',
719
- includes: ['SKILL.md', 'README.md', 'references/', 'examples/'],
720
- skillMdTemplate: `---
721
- name: {{name}}
722
- description: Expert knowledge of {{framework}} patterns, best practices, and conventions. Use when working with {{framework}} code.
723
- ---
724
- ...
725
- `,
726
- },
727
- };
728
- ```
729
-
730
- #### Value Proposition
731
-
732
- - **Faster starts** - Don't start from scratch
733
- - **Best practices** - Templates encode proven patterns
734
- - **Consistency** - Similar skills have similar structure
735
- - **Learning** - Shows what good looks like
736
-
737
- #### Effort Estimate
738
-
739
- - Implementation: 1.5 days
740
- - Template creation: 1 day
741
- - Testing: 0.5 days
742
- - Documentation: 0.5 days
743
- - **Total: ~3.5 days**
744
-
745
- ## Priority 2: Nice-to-Have Enhancements
746
-
747
- ### 7. Add `publish` Command - Community Sharing
748
-
749
- **Problem**: No easy way to share skills with community.
750
-
751
- **Solution**: Publish skills to registry with one command.
752
-
753
- #### CLI Usage
754
-
755
- ```bash
756
- # Publish skill to registry
757
- pnpx claude-skills-cli publish .claude/skills/my-skill
758
-
759
- # Update published skill
760
- pnpx claude-skills-cli publish .claude/skills/my-skill --update
761
-
762
- # Unpublish skill
763
- pnpx claude-skills-cli unpublish my-skill
764
- ```
765
-
766
- **Effort**: 2-3 days
767
-
768
- ### 8. Add `doctor` Command - Health Check
769
-
770
- **Problem**: Hard to diagnose skill issues.
771
-
772
- **Solution**: Comprehensive health check command.
773
-
774
- #### CLI Usage
775
-
776
- ```bash
777
- # Check skill health
778
- pnpx claude-skills-cli doctor .claude/skills/my-skill
779
-
780
- # Check all skills
781
- pnpx claude-skills-cli doctor .claude/skills --all
782
-
783
- # Fix common issues
784
- pnpx claude-skills-cli doctor .claude/skills/my-skill --fix
785
- ```
786
-
787
- **Effort**: 2 days
788
-
789
- ### 9. Add `benchmark` Command - Performance Testing
790
-
791
- **Problem**: No way to measure skill performance impact.
792
-
793
- **Solution**: Benchmark token usage and execution time.
794
-
795
- #### CLI Usage
796
-
797
- ```bash
798
- # Benchmark skill
799
- pnpx claude-skills-cli benchmark .claude/skills/my-skill
800
-
801
- # Compare before/after changes
802
- pnpx claude-skills-cli benchmark .claude/skills/my-skill --compare
803
- ```
804
-
805
- **Effort**: 2-3 days
806
-
807
- ## Implementation Roadmap
808
-
809
- ### Version 0.1.0 (Current)
810
-
811
- - ✅ init
812
- - ✅ validate
813
- - ✅ stats
814
- - ✅ package
815
-
816
- ### Version 0.2.0 (Next Release - ~2-3 weeks)
817
-
818
- **Priority 0 features**:
819
-
820
- - `test` command with subagent harness
821
- - `search` and `install` commands
822
- - Enhanced `validate` with quality scoring
823
-
824
- **Effort**: ~14 days **Impact**: Massive - enables behavioral
825
- validation and discovery
826
-
827
- ### Version 0.3.0 (Future - ~1-2 months)
828
-
829
- **Priority 1 features**:
830
-
831
- - `hook` command with templates
832
- - Enhanced `stats` with analytics
833
- - `init` templates for common patterns
834
-
835
- **Effort**: ~10 days **Impact**: High - improves usability and
836
- automation
837
-
838
- ### Version 0.4.0 (Future - ~2-3 months)
839
-
840
- **Priority 2 features**:
841
-
842
- - `publish` command
843
- - `doctor` command
844
- - `benchmark` command
845
-
846
- **Effort**: ~7 days **Impact**: Medium - enables community growth
847
-
848
- ## Technical Considerations
849
-
850
- ### Testing Strategy
851
-
852
- ```
853
- tests/
854
- ├── unit/
855
- │ ├── validation.test.ts
856
- │ ├── quality-scorer.test.ts
857
- │ └── ...
858
- ├── integration/
859
- │ ├── test-command.test.ts
860
- │ ├── install-command.test.ts
861
- │ └── ...
862
- └── fixtures/
863
- ├── valid-skill/
864
- ├── invalid-skill/
865
- └── test-scenarios/
866
- ```
867
-
868
- ### Dependencies to Add
869
-
870
- ```json
871
- {
872
- "dependencies": {
873
- "node-fetch": "^3.3.2", // For registry fetching
874
- "js-yaml": "^4.1.0", // YAML parsing
875
- "chalk": "^5.6.2" // Already have
876
- },
877
- "devDependencies": {
878
- "vitest": "^1.0.0", // Testing
879
- "@types/js-yaml": "^4.0.9"
880
- }
881
- }
882
- ```
883
-
884
- ### Configuration File
885
-
886
- ```typescript
887
- // .claude/skills-cli.json
888
- {
889
- "registry": "https://raw.githubusercontent.com/spences10/claude-skills-registry/main/registry.json",
890
- "quality_thresholds": {
891
- "minimum": 0.5,
892
- "good": 0.7,
893
- "excellent": 0.9
894
- },
895
- "test": {
896
- "timeout": 120,
897
- "parallel": false
898
- },
899
- "analytics": {
900
- "enabled": false, // Opt-in
901
- "anonymous": true
902
- }
903
- }
904
- ```
905
-
906
- ## Success Metrics
907
-
908
- ### User Adoption
909
-
910
- - Downloads per week
911
- - Active users (via opt-in analytics)
912
- - GitHub stars and forks
913
-
914
- ### Quality Improvement
915
-
916
- - Average skill quality score over time
917
- - % of skills with tests
918
- - % of skills passing behavioral validation
919
-
920
- ### Community Growth
921
-
922
- - Skills in registry
923
- - Skill installs per week
924
- - Community contributions (PRs, issues)
925
-
926
- ### User Satisfaction
927
-
928
- - Issue resolution time
929
- - Positive feedback ratio
930
- - Feature request themes
931
-
932
- ## Conclusion
933
-
934
- Prioritized implementation plan:
935
-
936
- **Ship first** (v0.2.0):
937
-
938
- 1. `test` command - Solves validation gap
939
- 2. `search`/`install` - Solves discovery gap
940
- 3. Quality scoring - Raises quality bar
941
-
942
- **Ship second** (v0.3.0): 4. `hook` command - Enables automation 5.
943
- Enhanced `stats` - Provides insights 6. Init templates - Lowers
944
- creation barrier
945
-
946
- **Ship third** (v0.4.0): 7. `publish` command - Grows community 8.
947
- `doctor` command - Improves debugging 9. `benchmark` command -
948
- Optimizes performance
949
-
950
- This roadmap positions `claude-skills-cli` as the definitive tool for
951
- Claude Skills development, with unique capabilities (behavioral
952
- testing) that no other tool provides.
953
-
954
- Next steps:
955
-
956
- 1. Review and prioritize based on your goals
957
- 2. Set up testing infrastructure
958
- 3. Implement v0.2.0 features
959
- 4. Create skills registry repository
960
- 5. Document new features