skill-review
$
npx mdskill add richtabor/agent-skills/skill-reviewValidate agent skills against best practices instantly.
- Detects structural errors and anti-patterns in skill definitions.
- Checks frontmatter consistency and directory organization.
- Compares content against compiled guidelines and checklists.
- Reports specific issues with actionable improvement suggestions.
SKILL.md
.github/skills/skill-reviewView on GitHub ↗
--- name: skill-review description: Reviews and validates agent skills against best practices. Triggers on "review this skill", "check my skill", "validate skill", "is this skill well-written", or when creating/editing skills. --- # Skill Review ## Overview Validates agent skills against the Agent Skills standard and compiled best practices. Reviews structure, frontmatter, description quality, progressive disclosure, and common anti-patterns. ## When to Use - User asks to review or validate a skill - User is creating a new skill and wants feedback - User asks "is this skill well-written?" - User mentions skill quality, best practices, or improvement ## Review Process ### Phase 1: Load References Before reviewing, read: - `references/best-practices.md` — Comprehensive guidelines - `references/checklist.md` — Quick validation checklist ### Phase 2: Identify Target Determine what to review: - **Single skill**: Review `skills/<name>/SKILL.md` and its structure - **All skills**: Audit entire `skills/` directory - **New skill draft**: Review provided content before creation ### Phase 3: Structural Audit Check the skill directory structure: ``` skill-name/ ├── SKILL.md # Required ├── references/ # Optional - loaded docs ├── scripts/ # Optional - executable code └── assets/ # Optional - output files (not loaded) ``` **Verify:** - [ ] SKILL.md exists - [ ] Directory name matches `name` in frontmatter - [ ] References are one level deep (no nested chains) - [ ] Scripts use forward slashes (no Windows paths) - [ ] No extraneous files (README.md, CHANGELOG.md, etc.) - [ ] Script paths in SKILL.md body (`scripts/foo.py`) exist in directory - [ ] If scripts use external binaries, dependencies are documented ### Phase 4: Frontmatter Validation Check YAML frontmatter: ```yaml --- name: skill-name # Required: lowercase, hyphens, ≤64 chars description: >- # Required: ≤1024 chars, third-person What it does. When to use it. --- ``` **Validate:** - [ ] `name`: Lowercase with hyphens only (`[a-z0-9-]`) - [ ] `name`: ≤64 characters - [ ] `name`: No "anthropic" or "claude" in name - [ ] `description`: Non-empty, ≤1024 characters - [ ] `description`: Third-person voice (not "I can" or "You can") - [ ] `description`: Includes what it does AND when to trigger - [ ] `description`: Contains specific trigger phrases ### Phase 5: Description Quality The description is **the** triggering mechanism. Evaluate: **Good descriptions include:** - Specific actions: "Extract text and tables from PDF files" - Trigger phrases: "Use when analyzing Excel files, spreadsheets, or .xlsx" - Synonyms users might say: "tabular data, CSV, workbooks" **Bad descriptions:** - Vague: "Helps with documents" - Generic: "Processes data" - Missing triggers: "Analyzes spreadsheets" (no "when to use") ### Phase 6: Body Analysis Review SKILL.md body content: **Length:** - [ ] Under 500 lines (check with `wc -l`) - [ ] If longer, split into reference files **Progressive Disclosure:** - [ ] Quick start or overview near top - [ ] Details moved to references/ - [ ] Long reference files (>100 lines) have TOC **Token Efficiency:** - [ ] No obvious explanations (Claude already knows) - [ ] Examples over lengthy prose - [ ] Each line justifies its token cost **Degrees of Freedom:** - [ ] High freedom for context-dependent tasks - [ ] Low freedom for fragile/error-prone tasks - [ ] Defaults provided when multiple options exist ### Phase 7: Anti-Pattern Check Scan for common issues: | Anti-Pattern | Look For | |-------------|----------| | Windows paths | `scripts\file.py` instead of `scripts/file.py` | | Nested references | A.md → B.md → C.md chains | | Time-sensitive info | "If before August 2025..." | | Magic numbers | Unexplained values | | Too many options | "You can use X, or Y, or Z..." without default | | Inconsistent terms | Mixing "endpoint"/"URL"/"route" | | User-facing docs | README, CHANGELOG, installation guides | | First/second person descriptions | "I can help" or "You can use" | ### Phase 8: Report Findings Present findings using this format: ``` ## Skill Review: [skill-name] ### Summary [1-2 sentence overall assessment] ### Structure [✓/✗] Directory organization [✓/✗] File presence [✓/✗] Reference depth ### Frontmatter [✓/✗] name validation [✓/✗] description validation ### Description Quality **Score**: [Strong / Adequate / Needs Work] **Issues**: [List specific problems] **Suggested rewrite** (if needed): ```yaml description: >- [Improved description] ``` ### Body Analysis **Line count**: [X] lines **Token efficiency**: [Good / Could trim] **Progressive disclosure**: [✓/✗] ### Anti-Patterns Found - [Issue 1] — Location: `file:line` - [Issue 2] — Location: `file:line` ### Recommendations 1. [Actionable fix] 2. [Actionable fix] ``` ## Quick Review Mode For rapid validation, run through the checklist in `references/checklist.md` and report only failures. ## Resources ### references/best-practices.md Comprehensive guide covering architecture, design principles, writing effective descriptions, bundled resources, workflow patterns, and advanced patterns from production skills. ### references/checklist.md Quick-reference validation checklist for fast reviews.
More from richtabor/agent-skills
- accessibility-reviewReviews UI for accessibility issues against WCAG 2.1/2.2 AA. Triggers on "is this accessible?", "check accessibility", or contrast/a11y review requests.
- create-prdPlan features interactively. Asks clarifying questions, then generates a detailed PRD document.
- fresh-eyesRe-reads code you just wrote with fresh perspective to catch bugs, errors, and issues. Use after completing a feature, fixing a bug, or any code changes. Triggers on "review my code", "fresh eyes", "check for bugs", "did I miss anything", or "sanity check".
- motion-designProvides motion design guidance for UI components. Triggers on animation requests ("animate this", "add transition", "motion for"), refinement requests ("clean up this animation", "clean up the motion", "this feels too fast/slow", "make this feel more alive/natural"), and questions about easing, timing, or micro-interactions.
- og-imagesGuides creation of OpenGraph and Twitter share images using next/og ImageResponse. Covers layout patterns, custom fonts, avatars, title case, and Satori rules. Use when building OG images, Twitter cards, or social previews.
- ralph-github-create-issuesConverts a PRD markdown file into GitHub Issues (parent + sub-issues) for ralph-github-start-loop to execute. Use when user wants to push PRD stories to GitHub Issues.
- ralph-github-start-loopRuns autonomous loop fetching stories from GitHub Issues. Implements and closes issues as done. Triggers on "loop through my PRDs", "work on my issues", "start the autonomous loop", "implement my PRDs", or requests to work through GitHub issues autonomously.
- ralph-json-create-issuesConverts a PRD or plan markdown file into prd.json format for ralph-json-start-loop to execute autonomously. Use when user wants to convert a PRD or plan to JSON stories.
- ralph-json-start-loopRuns the Ralph autonomous loop. Executes stories from prds/*.json using git worktrees.
- red-pen>