skill-check
Validate skill/command file format and structure
git clone --depth 1 https://github.com/claude-world/director-mode-lite /tmp/skill-check && cp -r /tmp/skill-check/skills/skill-check ~/.claude/skills/skill-checkSKILL.md
# Skill File Validator
Validate skill files for correct format.
---
## Validation Target
- With argument: validate specific file
- Without: validate all `.claude/skills/*/SKILL.md`
---
## Required Frontmatter
```yaml
---
name: skill-name # Required: lowercase, hyphenated
description: What it does # Required: shown in / menu
version: 0.1.0 # Optional: semantic version
user-invocable: true # Optional: default true
model: sonnet # Optional: inherit, haiku, sonnet, opus, best, sonnet[1m], opus[1m], opusplan
allowed-tools: # Optional: restrict tools (YAML list)
- Read
- Write
- Bash
context: fork # Optional: isolated context
agent: agent-name # Optional: run as specific agent
argument-hint: "<hint>" # Optional: hint for arguments
when_to_use: Description of when this skill should be used # Optional: underscore format
arguments: # Optional: structured argument definitions
- name: arg-name
description: What the argument does
required: true
disable-model-invocation: false # Optional: prevent programmatic invocation
hooks: # Optional: lifecycle hooks (same format as settings.json)
PreToolUse:
- matcher: Write
hooks:
- type: command
command: ./scripts/validate.sh
PostToolUse:
- matcher: Bash
hooks:
- type: command
command: ./scripts/log.sh
Stop:
- hooks:
- type: command
command: ./scripts/verify.sh
once: true
---
```
### Valid Tools (for allowed-tools)
```
Read, Write, Edit, Bash, Grep, Glob, Task,
WebFetch, WebSearch, TodoWrite, NotebookEdit
```
---
## Validation Checklist
### Required Fields
- [ ] `name` exists (lowercase, hyphenated)
- [ ] `description` exists
### Optional Field Validation
- [ ] `allowed-tools` are valid tool names (if specified)
- [ ] `allowed-tools` uses YAML list format (if specified)
- [ ] `agent` references existing agent file (if specified)
- [ ] `version` is valid semver format (if specified)
- [ ] `model` is valid value: inherit, haiku, sonnet, opus, best, sonnet[1m], opus[1m], opusplan (if specified)
- [ ] `context` is valid value: fork (if specified)
- [ ] `argument-hint` is a string (if specified)
- [ ] `when_to_use` is a descriptive string (if specified)
- [ ] `arguments` is a valid array with name/description/required entries (if specified)
- [ ] `disable-model-invocation` is boolean (if specified)
- [ ] `hooks` has valid structure (if specified)
### Content Structure
- [ ] Clear instructions
- [ ] Uses `$ARGUMENTS` if expecting input
- [ ] Step-by-step process if complex
---
## Output Format
```markdown
## Skill Validation Report
### Files Checked
| File | Status | Issues |
|------|--------|--------|
| workflow/SKILL.md | OK | None |
| my-skill/SKILL.md | WARN | Missing description |
### Summary
- Total: [N]
- Valid: [N]
- Needs fixes: [N]
```
---
## Auto-Fix
- Add missing `name` from directory name
- Add missing `description`
- Convert bracket array tools to YAML list format
- Remove invalid frontmatter fields
- Add `$ARGUMENTS` handlingTrack development session events in a daily markdown changelog, including file changes, test results, and key decisions.
Expert on creating and configuring custom Claude Code agents. Helps design specialized agents for project-specific tasks.
Expert on CLAUDE.md design patterns, best practices, and project configuration. Essential for project initialization and customization.
Code review specialist for quality, security, and best practices
Decision-making agent for Self-Evolving Loop. Evaluates validation results and decides next action (continue, evolve, or ship).
Debugging specialist for root cause analysis and problem resolution
Documentation specialist for README, API docs, and code comments
Lightweight orchestrator for Self-Evolving Loop with Meta-Engineering integration. Coordinates phases, manages memory, and handles lifecycle. Only returns brief summaries.