pdugan20/claudelint/validate-skills
- community
- ext:[{"type":"hook","description":"Pre/post lifecycle hooks"}]
Checking that the SKILL.md file is still in the repository.
Validates Claude Code skills for schema, naming, documentation, and security. Use when user asks to "check my skill", "validate skill syntax", "why isn't my skill loading", "skill errors", or "dangerous command detected". Validates SKILL.md frontmatter, allowed-tools, file references, directory organization, and shell script security.
Install
npx vskill@latest install pdugan20/claudelint/validate-skillsSemi-extensibleMentions customization, but needs skill-specific knowledge. Read the extensible skills standard
SKILL.md
Validate Claude Code Skills
Runs claudelint validate-skills to validate Claude Code skill directories.
Usage
Options
--path <path>- Custom path to skills directory--skill <name>- Validate specific skill--verbose- Show detailed output--warnings-as-errors- Treat warnings as errors
Examples
Example 1: Skill appears in slash menu but won't execute
User says: "I see my skill /deploy-app in the menu but when I run it, Claude says it can't find it" What happens:
- Checks directory name is
deploy-app/but SKILL.md hasname: deployApp - Shows mismatch: directory uses kebab-case, frontmatter uses camelCase
- Explains skill names must match directory name exactly
- Shows fix: change frontmatter to
name: deploy-app
Result: Skill executes correctly after fixing name mismatch
Example 2: Claude won't use Bash tool even though it's needed
User says: "My skill script.sh needs to run bash commands but Claude says 'Tool Bash not allowed'" What happens:
- Checks SKILL.md frontmatter has
allowed-tools: ["bash", "read"] - Shows tool names are case-sensitive - found lowercase "bash" instead of "Bash"
- Lists all valid tool names with correct capitalization
- Shows fix:
allowed-tools: ["Bash", "Read"]
Result: Claude can now execute bash commands in the skill
Example 3: Skill validation blocks git commit with "dangerous command"
User says: "Pre-commit hook is failing on my cleanup skill with 'dangerous command detected: rm -rf'" What happens:
- Scans cleanup.sh script, finds
rm -rf $TEMP_DIR - Flags it because
$TEMP_DIRcould be empty or/(dangerous) - Suggests safer alternative: validate directory first, use explicit path
- Shows fixed version:
[[ -n "$TEMP_DIR" && "$TEMP_DIR" != "/" ]] && rm -rf "$TEMP_DIR"
Result: Skill now validates paths before deletion, commit succeeds
Command Examples
Validate all skills:
Validate specific skill:
What Gets Validated
Required Fields
namefield must match directory namedescriptionmust be present- Name must be kebab-case (lowercase with hyphens)
- Name must not exceed 64 characters
allowed-tools Validation
- Must be an array
- Warns for unknown tools
- Accepts: Bash, Read, Write, Edit, Grep, Glob, LSP, WebFetch, WebSearch, etc.
Model Validation
- Validates model field if present
- Accepted values: sonnet, opus, haiku
File References
- Checks that referenced files in SKILL.md exist
- Validates relative paths
Directory Organization
- Warns if skill has >10 loose files (suggest subdirectories)
- Warns if directory nesting >3 levels deep
Documentation
- Warns if CHANGELOG.md is missing
- Warns if SKILL.md lacks usage examples (no code blocks)
- Warns if multi-file skill (>3 scripts) lacks README.md
- Warns if skill lacks version field
Best Practices
- Warns if shell scripts lack shebang (#!/bin/bash)
- Warns if scripts have no explanatory comments
- Detects inconsistent naming conventions
Security
- Errors for dangerous commands (rm -rf /, dd, mkfs)
- Warns for eval/exec usage
- Warns for path traversal patterns
Exit Codes
0- No errors or warnings1- Warnings found2- Errors found
For troubleshooting, see common issues. For customization, see configuration.
See Also
- validate-all - Run all validators
- optimize-cc-md - Optimize CLAUDE.md files
Security
- Security scanPassed, 90 of 100Pattern checks on the skill's files.
- Model reviewPassed
Quality evaluation
- Task evaluationNot runNo evaluation yet. Run one in Skill Studio.
Source
- SKILL.md in the repositoryCheckingskills/validate-skills/SKILL.md
Popularity
- Repository stars
- 12
- Repository forks
- 4
- 7-day trend score
- 13
Stars and forks are for the whole GitHub repository, not this skill alone. Not refreshed yet.
Extension points
hookPre/post lifecycle hooks
Works with
Any agent vskill installs to: 56 targets in all. These 39 have a page on this site.
- Claude Code
- Cursor
- GitHub Copilot
- Windsurf
- Codex
- Gemini CLI
- Cline
- Amp
- Roo Code
- Goose
- Continue
- Kilo Code
- Junie
- Trae
- OpenHands
- Qwen Code
- AI Agent
- Tabnine Chat
- Sourcegraph Cody
- Amazon Q
- Firebase Genkit
- Sweep
- Devin
- Phind
- Mentat
- Claude Desktop
- Aider
- GPT Pilot
- Plandex
- bolt.new
- v0
- Replit Agent
- Anse
- TypingMind
- BetterChatGPT
- LibreChat
- Warp AI
- Pieces
- Fig AI
Embed badge
[](https://verified-skill.com/skills/pdugan20/claudelint/validate-skills)