| CONTRIBUTOR TOOL - Validate plugin against latest Claude Code documentation. Catches breaking changes, deprecations, discovers new features. Run before releases or periodically. NOT part of the distributed plugin.
npx skills add https://github.com/oliver-kriska/claude-elixir-phoenix --skill docs-check
Validates plugin agents, skills, hooks, and config against the latest
Claude Code documentation to catch breaking changes and discover new features.
/docs-check # Full validation (all components)
/docs-check --quick # Structural checks only (no docs fetch, no tokens)
/docs-check --focus=agents # Validate only agents
/docs-check --focus=skills # Validate only skills
/docs-check --focus=hooks # Validate only hooks
/docs-check --focus=config # Validate only plugin.json/marketplace.json
┌─────────────────────────────────────────────────────────────────┐
│ /docs-check (skill entry point) │
│ │ │
│ ├─ Step 1: bash scripts/fetch-claude-docs.sh (zero tokens) │
│ │ Always fetches all 9 doc pages (~420KB) │
│ │ │
│ └─ Step 2: delegate to orchestrator (reads from cache only) │
│ │ │
│ │ docs-validation-orchestrator (opus) │
│ │ │
│ │ SCAN → READ CACHE → SPAWN WORKERS → COMPRESS → REPORT │
│ │ │ │ │ │ │ │
│ │ ↓ ↓ ↓ ↓ ↓ │
│ │ inventory pre-fetched 4 parallel context report │
│ │ plugin docs-cache subagents supervisor │
│ │ components (sonnet) (haiku) │
│ └─────────────────────────────────────────────────────────┘
└─────────────────────────────────────────────────────────────────┘
Always run first. Downloads all doc pages to cache. Skips pages
already cached within 24h. Zero token cost — pure curl.
# --quick mode: skip this step entirely (structural checks only)
# All other modes: always fetch
bash scripts/fetch-claude-docs.sh
After docs are cached, delegate. The orchestrator reads from cache only
and crashes if cache files are missing.
Task(subagent_type: "docs-validation-orchestrator")
Pass the user's flags (--quick, --focus) in the prompt.
plugins/elixir-phoenix/ for existing components.claude/docs-check/docs-cache/ (never fetches)scripts/fetch-claude-docs.sh — single source of truth for doc fetchingreferences/validation-rules.md — Per-component validation checklistsreferences/doc-pages.md — Component-to-URL mappingCreate new skills, modify and improve existing skills, and measure skill performance. Use when users want to create a skill from scratch, edit, or optimize an existing skill, run evals to test a skill, benchmark skill performance with variance analysis, or optimize a skill's description for better triggering accuracy.
Guide for creating effective skills. This skill should be used when users want to create a new skill (or update an existing skill) that extends Claude's capabilities with specialized knowledge, workflows, or tool integrations.
Guide for creating effective skills. This skill should be used when users want to create a new skill (or update an existing skill) that extends Claude's capabilities with specialized knowledge, workflows, or tool integrations.
Replace with description of the skill and when Claude should use it.
Use when facing 2+ independent tasks that can be worked on without shared state or sequential dependencies
This skill should be used when the user wants to "create a skill", "add a skill to plugin", "write a new skill", "improve skill description", "organize skill content", or needs guidance on skill structure, progressive disclosure, or skill development best practices for Claude Code plugins.
Helps users discover and install agent skills when they ask questions like "how do I do X", "find a skill for X", "is there a skill that can...", or express interest in extending capabilities. This skill should be used when the user is looking for functionality that might exist as an installable skill.
Use when creating new skills, editing existing skills, or verifying skills work before deployment
Take oliver-kriska/docs-check from the repository into ~/.claude/skills for personal
use, or into .claude/skills inside a project.
The agent identifies a skill by the name field in its header. Two skills with the
same name cannot sit side by side — one of them will be ignored.