.agents/skills/agent-skills-spec/SKILL.md
Validate, audit, and fix agent skills for agentskills.io spec compliance. Use when creating a new skill structure, auditing an existing skill against the specification, fixing common spec deviations, or reviewing frontmatter, directory layout, progressive disclosure, or script interfaces. Triggers on "validate skill", "audit skill", "spec compliance", "fix skill structure", "skill frontmatter", "SKILL.md format", or "agent skills spec".
npx skillsauth add connorads/dotfiles agent-skills-specInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Structural compliance for the agentskills.io specification. For content quality and expertise transfer, use skill-creator-v2 instead.
A skill is a progressive disclosure pipeline. Each layer has strict constraints:
Layer 1: METADATA (~100 tokens) ← always loaded
name + description in YAML frontmatter
Must be precise enough for activation decisions
Layer 2: INSTRUCTIONS (<5000 tokens recommended) ← loaded on activation
SKILL.md body, <500 lines
Core workflows, decision frameworks, essential examples
Layer 3: RESOURCES (on demand) ← loaded when referenced
references/*.md, scripts/*, assets/*
Deep knowledge, executable code, templates
Every spec rule serves this pipeline. Name/description enable discovery. Body enables execution. Resources enable depth without cost.
Create a new spec-compliant skill:
mkdir -p skill-name/referencesname + descriptionreferences/scripts/ if needed (see script guidelines)skills-ref validate ./skill-name or walk through validation checklistMinimal valid skill:
---
name: my-skill
description: >
Extract text from PDFs and fill forms. Use when working with PDF files
or when the user mentions PDFs, forms, or document extraction.
---
# My Skill
[Instructions here]
Audit an existing skill for spec compliance:
scripts/, references/, assets/ allowed)scripts/ existsFor the full checklist: see references/validation-checklist.md
Remediate common issues. For the complete decision tree with before/after examples: see references/common-fixes.md
Quick reference:
| Issue | Severity | Fix |
|-------|----------|-----|
| Non-spec frontmatter fields | Error | Move to metadata or remove |
| Name/directory mismatch | Error | Rename to match |
| allowed-tools as YAML array | Error | Convert to space-delimited string |
| Interactive prompts in scripts | Error | Replace with CLI flags/stdin |
| SKILL.md >500 lines | Warning | Split into references/ |
| README/LICENSE/CHANGELOG present | Warning | Remove (AI meta-docs) |
| Non-standard directories (rules/, templates/) | Warning | Rename to references//assets/ |
| Vague description | Warning | Add specific triggers and "Use when..." |
| Scripts without --help | Info | Add usage documentation |
| Field | Constraints |
|-------|-------------|
| name | 1–64 chars. Lowercase alphanumeric + hyphens only. No leading/trailing/consecutive hyphens. Must match parent directory name (after NFKC normalisation). |
| description | 1–1024 chars. Non-empty. Describe what the skill does AND when to use it. Include specific trigger keywords. |
| Field | Constraints |
|-------|-------------|
| license | String. License name or reference to bundled file. |
| compatibility | 1–500 chars. Environment requirements only. Most skills don't need this. |
| metadata | Key-value map (string → string). For client-specific properties. |
| allowed-tools | Space-delimited string (not YAML array). Experimental. e.g. Bash(git:*) Read |
Any field not in {name, description, license, compatibility, metadata, allowed-tools} is a validation error. Common offenders:
| Found | Fix |
|-------|-----|
| version | Move to metadata.version |
| author | Move to metadata.author |
| tags | Move to metadata.tags |
| references | Remove (use directory convention) |
| user-invocable | Remove (non-spec) |
| argument-hint | Remove (non-spec) |
skill-name/ # Must match frontmatter name
├── SKILL.md # Required
├── scripts/ # Optional: executable code
├── references/ # Optional: on-demand documentation
└── assets/ # Optional: static resources
Should not exist at top level:
README.md, LICENSE, CHANGELOG.md — AI meta-docspackage.json, tsconfig.json, lock files — build artifacts.md files other than SKILL.md — move to references/Non-standard directories (rename):
rules/ → references/templates/ → assets/examples/ → references/src/, docs/, test/ → remove or restructureKeep SKILL.md body under 500 lines. When approaching this limit, offload to references/:
| Content type | Move to |
|-------------|---------|
| Detailed examples | references/examples.md |
| API reference tables | references/api.md |
| Edge cases/gotchas | references/advanced.md |
| Installation/setup | references/setup.md |
| Pattern libraries | references/patterns.md |
Replace offloaded content with a one-line reference:
For detailed examples, see [references/examples.md](references/examples.md).
Keep references one level deep from SKILL.md. Avoid chains (A → B → C).
A description is effective when an agent can answer from it alone:
| Quality | Pattern | Example | |---------|---------|---------| | Poor | Vague noun phrase | "Helps with documents" | | Fair | Capability only | "Processes PDF files" | | Good | Capability + trigger | "Extract text from PDFs. Use when working with PDF files." | | Excellent | Capability + specific triggers + scope | "Extract text and tables from PDFs, fill forms, merge documents. Use when working with PDF files or when the user mentions PDFs, forms, or document extraction." |
With skills-ref installed:
skills-ref validate ./my-skill # structural validation
skills-ref read-properties ./my-skill # dump parsed frontmatter
Install if needed:
uv tool install skills-ref # or: pip install skills-ref
Without the tool, walk through references/validation-checklist.md manually.
Full guide: references/script-guidelines.md
Non-negotiable:
--help — agents discover script interfaces through help output--help--dry-run for destructive operationsdevelopment
Comprehensive Cloudflare platform skill covering Workers, Pages, storage (KV, D1, R2), AI (Workers AI, Vectorize, Agents SDK), networking (Tunnel, Spectrum), security (WAF, DDoS), and infrastructure-as-code (Terraform, Pulumi). Use for any Cloudflare development task. Biases towards retrieval from Cloudflare docs over pre-trained knowledge.
tools
Configure Better Auth server and client, set up database adapters, manage sessions, add plugins, and handle environment variables. Use when users mention Better Auth, betterauth, auth.ts, or need to set up TypeScript authentication with email/password, OAuth, or plugin configuration.
development
Build voice AI agents with ElevenLabs. Use when creating voice assistants, customer service bots, interactive voice characters, or any real-time voice conversation experience.
tools
Browser automation CLI for AI agents. Use when the user needs to interact with websites, including navigating pages, filling forms, clicking buttons, taking screenshots, extracting data, testing web apps, or automating any browser task. Triggers include requests to "open a website", "fill out a form", "click a button", "take a screenshot", "scrape data from a page", "test this web app", "login to a site", "automate browser actions", or any task requiring programmatic web interaction.