From dh
Reviews Claude Code SKILL.md files and agent definitions for frontmatter validity, token budget, description quality, tool scope, and agent contract compliance. Loads on skill or agent files.
How this skill is triggered — by the user, by Claude, or both
Slash command
/dh:code-review-claude-skillsThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
Stack-specific rules loaded by `dh:code-reviewer` when `SKILL.md`, agent frontmatter files, or `plugin.json` files are detected.
Stack-specific rules loaded by dh:code-reviewer when SKILL.md, agent frontmatter files, or plugin.json files are detected.
name must match the containing directory name exactly — mismatch causes lookup failuresname must satisfy ^[a-z][a-z0-9-]*$ — lowercase letters, digits, hyphens onlydescription must be a single-line string — no YAML multiline indicators (>-, |-, >, |)description must not contain colons (:) except in URLs — colons trigger YAML quoting requirementstools field (in agents) must be a comma-separated string, not a YAML array — Read, Grep, Glob not [Read, Grep, Glob]model must be one of sonnet, opus, haiku, or inherit — no version strings, no full model IDsuvx skilllint@latest check <path> after every frontmatter editallowed-tools in agent frontmatter must be scoped to the minimum required for the agent's taskWrite or Edit in their tools listuser-invocable: false must be set for skills intended only for agent context injection, not direct user activationdisable-model-invocation: true must be set for skills that execute shell commands or other side-effecting operations that should not be run as prompts[text](./path/to/file.md) with ./ prefixskills/ silently fail to register — all skill directories must be directly under skills/ (one level deep only)/plugin:skill-name skill" — never backtick paths to other skills' internal filesdocs/ path references at runtime — developer documentation must not appear in agent-facing skill content./ relative paths, not absolute paths or backtick referencesagents, skills, and commands keys in plugin.json are only for non-default locations — omit them when all components are in their default directoriesagents key overrides auto-discovery completely — unlisted agents become invisibleplugin.json, every component in that category must be listed# WRONG: multiline description
description: >-
This skill helps with TypeScript code review
when the user asks for a review.
# RIGHT: single-line description
description: TypeScript-specific code review patterns covering strict mode, ESM, type safety, and branded types. Loaded automatically when reviewing TypeScript code.
# WRONG: colon in description (breaks YAML without quoting)
description: Code review: TypeScript patterns for strict mode and type safety.
# RIGHT: no colon
description: Code review for TypeScript — strict mode, type safety, branded types, and ESM patterns.
<!-- WRONG: cross-skill backtick path reference -->
See `plugins/plugin-creator/skills/prompt-optimization/SKILL.md` for optimization patterns.
<!-- RIGHT: activation syntax -->
For prompt optimization, activate the `/plugin-creator:prompt-optimization` skill.
npx claudepluginhub jamie-bitflight/claude_skills --plugin dhValidates SKILL.md files against agentskills specification and Anthropic best practices. Catches structural, semantic, naming, and quality issues before publishing or debugging triggers.
Internal development tool that validates all SKILL.md and agent .md files against the Claude Code spec. Checks frontmatter completeness, field validity, allowed-tools presence, line count, hardcoded paths, and description quality. Use when the user says "lint skills", "validate skills", "check skill quality", "run the linter", "are my skills valid", or before shipping changes to the skills repo.
Guides creation, editing, and verification of skills for AI coding agents using test-driven development with subagent scenarios. Use when authoring or debugging skills.