skills/lint-skill/SKILL.md
Lint a Claude Code skill against best practices. Triggers on 'lint this skill', 'check my skill', 'review this skill', or /lint-skill.
npx skillsauth add agentic-cookbook/tools lint-skillInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
If $ARGUMENTS is --version, respond with exactly:
lint-skill v1.1.0
Then stop. Do not continue with the rest of the skill.
Otherwise, print lint-skill v1.1.0 as the first line of output, then proceed.
Version check: Read ${CLAUDE_SKILL_DIR}/SKILL.md from disk and extract the version: field from frontmatter. If it differs from this skill's version (1.0.1), print:
⚠ This skill is running v1.1.0 but vA.B.C is installed. Restart the session to use the latest version.
Continue running — do not stop.
Lint a Claude Code skill against best practices and structural requirements. Produces a structured report with PASS/WARN/FAIL ratings and actionable recommendations.
SKILL.md, stop immediately with a clear errorResolve $ARGUMENTS to a skill directory containing SKILL.md.
$ARGUMENTS is provided:Path check: If $ARGUMENTS contains / or points to a directory:
SKILL.md, use it.SKILL.md file, use its parent directory.SKILL.md found, check if it's an agent or rule file and print a helpful error:
ERROR: Not a skill — no SKILL.md found. Use /lint-agent or /lint-rule instead.
Search string: Otherwise, treat $ARGUMENTS as a search string. Use Glob to find .claude/skills/*/SKILL.md. Filter to directories whose name contains the search string (case-insensitive).
$ARGUMENTS is empty:Session context: Check if a skill was recently created, edited, or read in this conversation. If so, offer it with AskUserQuestion: "Lint <skill-name>?" with options "Yes" and "No, choose another".
Current directory: Check if the current directory contains SKILL.md — use it.
Prompt: If nothing found, use AskUserQuestion: "Which skill? Enter a name or path." The user's response re-enters the search string flow above.
SKILL.mdSKILL.mdPrint a brief header:
=== LINT: <name> ===
Type: Skill
Path: <path>
Files: <count> (<file list>)
Lines: <SKILL.md line count>
Fetch these URLs using WebFetch to get the latest official guidance:
https://code.claude.com/docs/en/skillshttps://code.claude.com/docs/en/best-practicesIf any fetch fails, note it and continue with the bundled checklist alone.
Load the review criteria:
${CLAUDE_SKILL_DIR}/references/skill-checklist.md${CLAUDE_SKILL_DIR}/references/skill-structure-reference.mdEvaluate every criterion from the checklist against the target. For each check:
--- STRUCTURE & FORMAT ---
[PASS] S01: YAML frontmatter present
[FAIL] S06: SKILL.md exceeds 500 lines (currently 627)
-> Move detailed content to references/ files
[WARN] S10: $ARGUMENTS used but no argument-hint in frontmatter
-> Add argument-hint: "<expected-input>" to frontmatter
...
--- CONTENT QUALITY ---
[PASS] C01: Single responsibility — clear, focused purpose
[WARN] C04: No error handling instructions found
-> Add guidance for what to do when <specific scenario> fails
...
--- BEST PRACTICES ---
[PASS] B01: Verification method provided
[WARN] B03: Side-effect skill without disable-model-invocation
-> Add disable-model-invocation: true to prevent auto-invocation
...
After all sections, print the summary:
=== SUMMARY ===
Pass: <n> | Warn: <n> | Fail: <n> | N/A: <n>
If there are any WARN or FAIL results, print a prioritized recommendations list (FAILs first, then WARNs, max 10).
The review is complete. Do not modify any files.
testing
Validate cookbook integrity — frontmatter, cross-references, indexes, skills, rules, file placement. Run from cookbook or consuming project.
tools
Remove the agentic cookbook from your project. Removes rules, state files, CLAUDE.md section, and optionally global plugins and status line.
tools
Analyze a macOS SwiftUI app and plan its conversion to native AppKit. Triggers on 'port to AppKit', 'convert SwiftUI to AppKit', 'remove SwiftUI', or /port-swiftui-to-appkit.
tools
--- name: plan-cookbook-recipe version: 2.3.0 description: Interactively design a new cookbook recipe through guided discussion disable-model-invocation: true context: fork allowed-tools: Read, Glob, Grep, Agent, Write, Edit, AskUserQuestion, Bash(git *), Bash(mkdir *), Bash(ls *) argument-hint: [recipe-name] [--version] --- # Plan Agentic Cookbook Recipe v2.3.0 ## Startup **First action**: If `$ARGUMENTS` is `--version`, print `plan-cookbook-recipe v2.3.0` and stop. Otherwise, print `plan-c