claude-skill-lint 0.4.0 → 0.5.0

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 CHANGED
@@ -16,42 +16,16 @@ Caught in under two seconds. No LLM calls. Deterministic.
16
16
 
17
17
  "Tolerate" is not "work correctly."
18
18
 
19
- ## Two Layers
19
+ ## Companion: /te-review
20
20
 
21
- | | `claude-skill-lint` | `/te-review` |
22
- |-|-------------|-------------|
23
- | **What** | Structural validation | Token efficiency audit |
24
- | **Speed** | <2s, every PR | ~60s, on demand |
25
- | **Approach** | Deterministic CI — no LLM | LLM-powered deep analysis |
26
- | **Catches** | Broken refs, orphans, cycles, collisions, parse errors, size violations, quality regressions | Redundant content, output format waste, instruction bloat, model routing, architecture-level optimization |
21
+ This repo also includes [`/te-review`](skills/te-review.md), an LLM-powered deep audit skill that goes beyond structural validation — analyzing token efficiency, redundancy, output constraints, and instruction quality. It produces a scored assessment (0-24) with estimated token savings per fix.
27
22
 
28
- claude-skill-lint enforces the structural foundation. `/te-review` (included in [`skills/te-review.md`](skills/te-review.md)) goes deeper — four-pass analysis across architecture, efficiency, and instruction quality, producing a scored assessment (0-24) with a prioritized optimization plan and estimated token savings per fix.
29
-
30
- We ran te-review against itself. It scored 20/24. The main finding: the skill didn't constrain its own output the way it tells others to. After adding "top 5 findings per category" and "each subagent returns top 10 findings only," estimated output token savings on large suite reviews dropped by ~50%. The tool practices what it preaches.
31
-
32
- Install the deep audit skill from the [repository](https://github.com/shinytoyrobots/claude-skills-linter/blob/main/skills/te-review.md):
23
+ claude-skill-lint catches structural bugs deterministically in CI. `/te-review` is an on-demand complement for deeper optimization.
33
24
 
34
25
  ```bash
35
26
  curl -o ~/.claude/commands/te-review.md https://raw.githubusercontent.com/shinytoyrobots/claude-skills-linter/main/skills/te-review.md
36
27
  ```
37
28
 
38
- Then in any Claude Code session:
39
-
40
- ```
41
- /te-review suite # Full suite audit (scored 0-24)
42
- /te-review audit my-skill # Single skill deep dive
43
- /te-review compare old.md new.md # Before/after token impact
44
- ```
45
-
46
- ### What te-review checks
47
-
48
- Four sequential passes, each producing up to 5 findings per severity level:
49
-
50
- 1. **Structural Audit** — CLAUDE.md bloat, unused tool declarations, reference depth, subagent model routing, file size
51
- 2. **Redundancy Detection** — skill-context overlap, cross-skill duplication, CLAUDE.md-skill overlap. High-fanout context files are flagged as highest-ROI optimization targets.
52
- 3. **Output Efficiency** — missing format constraints, missing conciseness directives, unbounded output sections, prose where structured would suffice. Output tokens cost 5x input — this pass often finds the biggest savings.
53
- 4. **Instruction Quality** — motivational fluff, politeness tokens, filler phrases, default-behavior instructions, conflicting constraints, emphasis overuse
54
-
55
29
  ## What It Actually Found
56
30
 
57
31
  ### Against a 139-file shared skill suite
@@ -67,10 +41,10 @@ The headline: `inv-output-conventions.md` was renamed to `inv-output-patterns.md
67
41
 
68
42
  ```
69
43
  $ claude-skill-lint graph ~/Development/anthropic-skills/
70
- 19 errors and 10 warnings in 26 files (63 files checked)
44
+ 14 errors and 24 warnings in 37 files (72 files checked)
71
45
  ```
72
46
 
73
- Name-collision findings in the `claude-api` skill — five language-specific `claude-api.md` files (PHP, Java, Ruby, Go, C#) all resolve to the same canonical name. Broken references to `shared/tool-use-concepts.md` and `shared/live-sources.md` files that don't exist. Orphaned theme files in `theme-factory` (loaded dynamically, not via static references). Legitimate structural observations, not false positives.
47
+ Name collisions in the `claude-api` skill — five language-specific `claude-api.md` files (PHP, Java, Ruby, Go, C#) all resolve to the same canonical name, plus Python/TypeScript duplicates for `tool-use.md`, `streaming.md`, `files-api.md`, and `batches.md`. One genuinely broken `./README.md` reference. Orphaned theme files in `theme-factory` (loaded dynamically, not via static references) and shared context files referenced only from other context files. All legitimate structural findings.
74
48
 
75
49
  ### Against a multi-plugin production repo
76
50
 
@@ -336,6 +310,16 @@ graph:
336
310
 
337
311
  ## CI Integration
338
312
 
313
+ ### Exit Codes
314
+
315
+ | Code | Meaning |
316
+ |------|---------|
317
+ | `0` | Clean — no errors (warnings don't fail by default) |
318
+ | `1` | Errors found (or warnings with `--strict`) |
319
+ | `2` | Configuration or git error |
320
+
321
+ By default, **warnings are informational** — orphaned files and minor issues appear as annotations but don't fail the build. Add `--strict` to treat warnings as errors and fail on any finding.
322
+
339
323
  ### GitHub Actions
340
324
 
341
325
  ```yaml
@@ -366,6 +350,13 @@ jobs:
366
350
  run: claude-skill-lint lint . --ratchet --base origin/${{ github.base_ref }} --format github
367
351
  ```
368
352
 
353
+ To fail on warnings too, add `--strict` to any step:
354
+
355
+ ```yaml
356
+ - name: Graph validation (strict)
357
+ run: claude-skill-lint graph . --format github --strict
358
+ ```
359
+
369
360
  `--format github` produces annotations that appear inline on PR diffs.
370
361
 
371
362
  ### Pre-commit Hook
@@ -378,6 +369,16 @@ if [ -n "$STAGED" ]; then
378
369
  fi
379
370
  ```
380
371
 
372
+ ## Programmatic API
373
+
374
+ All core functions are exported for integration into custom tooling:
375
+
376
+ ```ts
377
+ import { runLint, runGraph, loadConfig, validateFrontmatter, extractFile } from 'claude-skill-lint';
378
+ ```
379
+
380
+ See the [package exports](src/index.ts) for the full API surface.
381
+
381
382
  ## License
382
383
 
383
384
  MIT
@@ -1 +1 @@
1
- {"version":3,"file":"validate-graph.d.ts","sourceRoot":"","sources":["../src/validate-graph.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,EAAc,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAwLtF;;;;;;GAMG;AACH,wBAAgB,WAAW,CAAC,QAAQ,EAAE,MAAM,GAAG,KAAK,CAAC;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,MAAM,CAAA;CAAE,CAAC,CAcxF;AAED;;;GAGG;AACH,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,MAAM,GAAG,KAAK,CAAC;IAAE,GAAG,EAAE,MAAM,CAAA;CAAE,CAAC,CAa5E;AAED;;;;;;;GAOG;AACH,wBAAgB,eAAe,CAAC,QAAQ,EAAE,MAAM,GAAG,KAAK,CAAC;IAAE,GAAG,EAAE,MAAM,CAAA;CAAE,CAAC,CAaxE;AAweD;;;;;;;;;;;;;GAaG;AACH,wBAAgB,aAAa,CAC3B,KAAK,EAAE,aAAa,EAAE,EACtB,MAAM,EAAE,MAAM,EACd,OAAO,CAAC,EAAE,MAAM,GACf,gBAAgB,EAAE,CAiCpB"}
1
+ {"version":3,"file":"validate-graph.d.ts","sourceRoot":"","sources":["../src/validate-graph.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,EAAc,gBAAgB,EAAE,MAAM,YAAY,CAAC;AA0OtF;;;;;;GAMG;AACH,wBAAgB,WAAW,CAAC,QAAQ,EAAE,MAAM,GAAG,KAAK,CAAC;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,MAAM,CAAA;CAAE,CAAC,CAcxF;AAED;;;GAGG;AACH,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,MAAM,GAAG,KAAK,CAAC;IAAE,GAAG,EAAE,MAAM,CAAA;CAAE,CAAC,CAa5E;AAED;;;;;;;GAOG;AACH,wBAAgB,eAAe,CAAC,QAAQ,EAAE,MAAM,GAAG,KAAK,CAAC;IAAE,GAAG,EAAE,MAAM,CAAA;CAAE,CAAC,CAaxE;AAsiBD;;;;;;;;;;;;;GAaG;AACH,wBAAgB,aAAa,CAC3B,KAAK,EAAE,aAAa,EAAE,EACtB,MAAM,EAAE,MAAM,EACd,OAAO,CAAC,EAAE,MAAM,GACf,gBAAgB,EAAE,CAoCpB"}
@@ -148,6 +148,50 @@ function buildPathToFile(files) {
148
148
  }
149
149
  return map;
150
150
  }
151
+ /**
152
+ * Build a set of skill root directories by scanning for SKILL.md on disk.
153
+ *
154
+ * In plugin/multi-plugin format, each skill lives under a directory containing
155
+ * SKILL.md (e.g., `skills/claude-api/SKILL.md`). Bare references like
156
+ * `shared/prompt-caching.md` are written relative to this skill root, not
157
+ * relative to the referencing file's own directory.
158
+ *
159
+ * We scan disk rather than the error-free file set because SKILL.md may have
160
+ * parse errors but still marks the skill root directory.
161
+ */
162
+ function buildSkillRoots(files) {
163
+ const roots = new Set();
164
+ // First: add directories of all SKILL.md files found in the extract results
165
+ // (regardless of errors — the file still marks a skill root).
166
+ for (const file of files) {
167
+ if (basename(file.filePath) === 'SKILL.md') {
168
+ roots.add(dirname(file.filePath));
169
+ }
170
+ }
171
+ return roots;
172
+ }
173
+ /**
174
+ * Find the skill root directory for a given file by walking up to a known root.
175
+ *
176
+ * Returns the directory containing SKILL.md, or undefined if not found
177
+ * before reaching rootDir.
178
+ */
179
+ function findSkillRoot(filePath, skillRoots, rootDir) {
180
+ let dir = dirname(filePath);
181
+ while (true) {
182
+ if (skillRoots.has(dir)) {
183
+ return dir;
184
+ }
185
+ const parent = dirname(dir);
186
+ if (parent === dir)
187
+ break;
188
+ // Don't walk above rootDir.
189
+ if (dir === rootDir)
190
+ break;
191
+ dir = parent;
192
+ }
193
+ return undefined;
194
+ }
151
195
  /**
152
196
  * Extract canonical (non-relative) references from a single file's body text.
153
197
  * Returns an array of { raw, normalized } reference objects.
@@ -219,7 +263,7 @@ function escapesRepo(resolvedPath, rootDir) {
219
263
  * For legacy-commands: canonical name resolution only.
220
264
  * For plugin/multi-plugin: relative path resolution first, then canonical fallback.
221
265
  */
222
- function resolveAllRefs(bodyText, sourceFilePath, format, rootDir, filePathSet, pathToFile, index) {
266
+ function resolveAllRefs(bodyText, sourceFilePath, format, rootDir, filePathSet, pathToFile, index, skillRoots) {
223
267
  const resolved = [];
224
268
  const seenNormalized = new Set();
225
269
  const isPluginFormat = format === 'plugin' || format === 'multi-plugin';
@@ -256,13 +300,31 @@ function resolveAllRefs(bodyText, sourceFilePath, format, rootDir, filePathSet,
256
300
  seenNormalized.add(cn);
257
301
  }
258
302
  else {
259
- // Relative path didn't resolve — mark for broken-reference.
260
- resolved.push({
261
- raw: ref.raw,
262
- normalized: ref.raw,
263
- isRelative: true,
264
- });
265
- seenNormalized.add(ref.raw);
303
+ // File-relative didn't resolve — try skill-root-relative.
304
+ const skillRoot = findSkillRoot(sourceFilePath, skillRoots, rootDir);
305
+ const absFromSkillRoot = skillRoot ? resolve(skillRoot, ref.raw) : undefined;
306
+ if (absFromSkillRoot && !escapesRepo(absFromSkillRoot, rootDir) && filePathSet.has(absFromSkillRoot)) {
307
+ const targetFile = pathToFile.get(absFromSkillRoot);
308
+ const cn = targetFile
309
+ ? canonicalName(targetFile.filePath, targetFile.fileType)
310
+ : ref.raw;
311
+ resolved.push({
312
+ raw: ref.raw,
313
+ normalized: cn,
314
+ isRelative: true,
315
+ resolvedPath: absFromSkillRoot,
316
+ });
317
+ seenNormalized.add(cn);
318
+ }
319
+ else {
320
+ // Neither file-relative nor skill-root-relative resolved — broken.
321
+ resolved.push({
322
+ raw: ref.raw,
323
+ normalized: ref.raw,
324
+ isRelative: true,
325
+ });
326
+ seenNormalized.add(ref.raw);
327
+ }
266
328
  }
267
329
  }
268
330
  }
@@ -274,7 +336,7 @@ function resolveAllRefs(bodyText, sourceFilePath, format, rootDir, filePathSet,
274
336
  // Skip if already seen (e.g., matched by RELATIVE_REF_PATTERN).
275
337
  if (seenNormalized.has(ref.raw))
276
338
  continue;
277
- // Try relative resolution first.
339
+ // Try file-relative resolution first.
278
340
  const absPath = resolve(sourceDir, ref.raw);
279
341
  if (!escapesRepo(absPath, rootDir) && filePathSet.has(absPath)) {
280
342
  const targetFile = pathToFile.get(absPath);
@@ -290,8 +352,24 @@ function resolveAllRefs(bodyText, sourceFilePath, format, rootDir, filePathSet,
290
352
  seenNormalized.add(cn);
291
353
  }
292
354
  else {
293
- // Canonical fallback: check if the raw ref matches a canonical name.
294
- if (index.nameToPath.has(ref.raw)) {
355
+ // File-relative didn't resolve try skill-root-relative.
356
+ const skillRoot = findSkillRoot(sourceFilePath, skillRoots, rootDir);
357
+ const absFromSkillRoot = skillRoot ? resolve(skillRoot, ref.raw) : undefined;
358
+ if (absFromSkillRoot && !escapesRepo(absFromSkillRoot, rootDir) && filePathSet.has(absFromSkillRoot)) {
359
+ const targetFile = pathToFile.get(absFromSkillRoot);
360
+ const cn = targetFile
361
+ ? canonicalName(targetFile.filePath, targetFile.fileType)
362
+ : ref.raw;
363
+ resolved.push({
364
+ raw: ref.raw,
365
+ normalized: cn,
366
+ isRelative: true,
367
+ resolvedPath: absFromSkillRoot,
368
+ });
369
+ seenNormalized.add(cn);
370
+ }
371
+ else if (index.nameToPath.has(ref.raw)) {
372
+ // Canonical fallback.
295
373
  resolved.push({
296
374
  raw: ref.raw,
297
375
  normalized: ref.raw,
@@ -300,7 +378,7 @@ function resolveAllRefs(bodyText, sourceFilePath, format, rootDir, filePathSet,
300
378
  seenNormalized.add(ref.raw);
301
379
  }
302
380
  else {
303
- // Neither relative nor canonical resolved — broken ref.
381
+ // No resolution strategy worked — broken ref.
304
382
  resolved.push({
305
383
  raw: ref.raw,
306
384
  normalized: ref.raw,
@@ -341,13 +419,35 @@ function resolveAllRefs(bodyText, sourceFilePath, format, rootDir, filePathSet,
341
419
  seenNormalized.add(ref.normalized);
342
420
  }
343
421
  else {
344
- // Fall through to canonical resolution.
345
- seenNormalized.add(ref.normalized);
346
- resolved.push({
347
- raw: ref.raw,
348
- normalized: ref.normalized,
349
- isRelative: false,
350
- });
422
+ // File-relative didn't resolve try skill-root-relative.
423
+ const rawPath = ref.raw.startsWith(INSTALLED_PREFIX)
424
+ ? ref.raw.slice(INSTALLED_PREFIX.length)
425
+ : ref.raw;
426
+ const skillRoot = findSkillRoot(sourceFilePath, skillRoots, rootDir);
427
+ const absFromSkillRoot = skillRoot ? resolve(skillRoot, rawPath) : undefined;
428
+ if (absFromSkillRoot && !escapesRepo(absFromSkillRoot, rootDir) && filePathSet.has(absFromSkillRoot)) {
429
+ const targetFile = pathToFile.get(absFromSkillRoot);
430
+ const cn = targetFile
431
+ ? canonicalName(targetFile.filePath, targetFile.fileType)
432
+ : ref.normalized;
433
+ resolved.push({
434
+ raw: ref.raw,
435
+ normalized: cn,
436
+ isRelative: true,
437
+ resolvedPath: absFromSkillRoot,
438
+ });
439
+ seenNormalized.add(cn);
440
+ seenNormalized.add(ref.normalized);
441
+ }
442
+ else {
443
+ // Fall through to canonical resolution.
444
+ seenNormalized.add(ref.normalized);
445
+ resolved.push({
446
+ raw: ref.raw,
447
+ normalized: ref.normalized,
448
+ isRelative: false,
449
+ });
450
+ }
351
451
  }
352
452
  }
353
453
  }
@@ -371,13 +471,13 @@ function resolveAllRefs(bodyText, sourceFilePath, format, rootDir, filePathSet,
371
471
  * Detect broken references: references that don't resolve to any file
372
472
  * via canonical name lookup or relative path resolution.
373
473
  */
374
- function detectBrokenRefs(files, index, format, rootDir, filePathSet, pathToFile) {
474
+ function detectBrokenRefs(files, index, format, rootDir, filePathSet, pathToFile, skillRoots) {
375
475
  const results = [];
376
476
  for (const file of files) {
377
477
  if (file.errors.length > 0)
378
478
  continue;
379
479
  const bodyText = file.data['___body_text'] ?? '';
380
- const refs = resolveAllRefs(bodyText, file.filePath, format, rootDir, filePathSet, pathToFile, index);
480
+ const refs = resolveAllRefs(bodyText, file.filePath, format, rootDir, filePathSet, pathToFile, index, skillRoots);
381
481
  for (const ref of refs) {
382
482
  if (ref.resolvedPath)
383
483
  continue; // Successfully resolved via relative path.
@@ -423,7 +523,7 @@ function detectBrokenRefs(files, index, format, rootDir, filePathSet, pathToFile
423
523
  * For legacy-commands: only command files are referencing entities.
424
524
  * For plugin/multi-plugin: both command and skill files are referencing entities.
425
525
  */
426
- function detectOrphans(files, format, rootDir, filePathSet, pathToFile, index) {
526
+ function detectOrphans(files, format, rootDir, filePathSet, pathToFile, index, skillRoots) {
427
527
  const results = [];
428
528
  const isPluginFormat = format === 'plugin' || format === 'multi-plugin';
429
529
  // Collect all canonical names referenced from command (and skill) files.
@@ -439,7 +539,7 @@ function detectOrphans(files, format, rootDir, filePathSet, pathToFile, index) {
439
539
  if (!referencingTypes.has(file.fileType))
440
540
  continue;
441
541
  const bodyText = file.data['___body_text'] ?? '';
442
- const refs = resolveAllRefs(bodyText, file.filePath, format, rootDir, filePathSet, pathToFile, index);
542
+ const refs = resolveAllRefs(bodyText, file.filePath, format, rootDir, filePathSet, pathToFile, index, skillRoots);
443
543
  for (const ref of refs) {
444
544
  referencedCanonical.add(ref.normalized);
445
545
  // AC-6: If resolved via relative path, also add the canonical name of the target.
@@ -514,7 +614,7 @@ function detectDuplicates(files) {
514
614
  * AC-9: For plugin format, adjacency uses canonical names derived from resolved
515
615
  * relative paths.
516
616
  */
517
- function detectCycles(files, index, format, rootDir, filePathSet, pathToFile) {
617
+ function detectCycles(files, index, format, rootDir, filePathSet, pathToFile, skillRoots) {
518
618
  const results = [];
519
619
  // Build adjacency list using canonical names.
520
620
  const adjacency = new Map();
@@ -525,7 +625,7 @@ function detectCycles(files, index, format, rootDir, filePathSet, pathToFile) {
525
625
  const key = canonicalName(file.filePath, file.fileType);
526
626
  keyToFilePath.set(key, file.filePath);
527
627
  const bodyText = file.data['___body_text'] ?? '';
528
- const refs = resolveAllRefs(bodyText, file.filePath, format, rootDir, filePathSet, pathToFile, index);
628
+ const refs = resolveAllRefs(bodyText, file.filePath, format, rootDir, filePathSet, pathToFile, index, skillRoots);
529
629
  const targets = refs
530
630
  .map((r) => r.normalized)
531
631
  .filter((t) => index.nameToPath.has(t));
@@ -630,13 +730,15 @@ export function validateGraph(files, config, rootDir) {
630
730
  // Build file path set and reverse index for relative path resolution.
631
731
  const filePathSet = buildFilePathSet(files);
632
732
  const pathToFile = buildPathToFile(files);
733
+ // Build skill root directories for skill-root-relative reference resolution.
734
+ const skillRoots = buildSkillRoots(files);
633
735
  // Name collisions (always checked — these are install-time bugs).
634
736
  results.push(...detectNameCollisions(index));
635
737
  // Broken references.
636
- results.push(...detectBrokenRefs(files, index, format, rootDir, filePathSet, pathToFile));
738
+ results.push(...detectBrokenRefs(files, index, format, rootDir, filePathSet, pathToFile, skillRoots));
637
739
  // Orphaned files (only if enabled).
638
740
  if (config.graph.warn_orphans) {
639
- results.push(...detectOrphans(files, format, rootDir, filePathSet, pathToFile, index));
741
+ results.push(...detectOrphans(files, format, rootDir, filePathSet, pathToFile, index, skillRoots));
640
742
  }
641
743
  // Duplicate content (only if enabled).
642
744
  if (config.graph.detect_duplicates) {
@@ -644,7 +746,7 @@ export function validateGraph(files, config, rootDir) {
644
746
  }
645
747
  // Cycle detection (only if enabled).
646
748
  if (config.graph.detect_cycles) {
647
- results.push(...detectCycles(files, index, format, rootDir, filePathSet, pathToFile));
749
+ results.push(...detectCycles(files, index, format, rootDir, filePathSet, pathToFile, skillRoots));
648
750
  }
649
751
  return results;
650
752
  }
@@ -1 +1 @@
1
- {"version":3,"file":"validate-graph.js","sourceRoot":"","sources":["../src/validate-graph.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"validate-graph.js","sourceRoot":"","sources":["../src/validate-graph.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "claude-skill-lint",
3
- "version": "0.4.0",
3
+ "version": "0.5.0",
4
4
  "description": "A CLI tool that validates Claude Code skill files for structural correctness",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",