* feat: extract SKILL.md body into AGENTS.md with H1 title and Overview section Build system now parses SKILL.md body to extract H1 heading as the AGENTS.md title and places remaining content under an Overview section. Adds validation that SKILL.md body starts with H1, directory name is kebab-case, and name field matches directory name. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * feat: AGENTS.md is now SKILL.md body with frontmatter stripped Build now generates AGENTS.md by extracting the SKILL.md markdown body (everything after YAML frontmatter). CLAUDE.md remains a symlink to AGENTS.md. Removes content generation logic (Structure, Usage, Overview, Reference Categories, Available References sections) — SKILL.md is the single source of truth for agent instructions. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * feat: add Structure and Usage sections to AGENTS.md, validate H1 title matches directory name Build now generates AGENTS.md as: H1 Title > Structure > Usage > rest of SKILL.md body. Validates that SKILL.md body starts with H1 heading and that the title in kebab-case matches the directory name. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> --------- Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
5.2 KiB
AGENTS.md
Guidance for AI coding agents working with this repository.
Note:
CLAUDE.mdis a symlink to this file.
Repository Structure
skills/
{skill-name}/
SKILL.md # Required: skill manifest (Agent Skills spec)
AGENTS.md # Generated: SKILL.md body (frontmatter stripped)
CLAUDE.md # Generated: symlink to AGENTS.md
references/
_sections.md # Required: section definitions
{prefix}-{name}.md # Reference files
packages/
skills-build/ # Generic build system for all skills
Commands
npm run build # Build all skills
npm run build -- {skill-name} # Build specific skill
npm run validate # Validate all skills
npm run validate -- {skill-name} # Validate specific skill
npm run check # Format and lint (auto-fix)
Before completing any task, run npm run check and npm run build to
ensure CI passes.
Creating a New Skill
Skills follow the Agent Skills Open Standard.
- Create directory:
mkdir -p skills/{skill-name}/references - Create
SKILL.mdfollowing the format below - Add
references/_sections.mddefining sections - Add reference files:
{prefix}-{reference-name}.md - Run
npm run build
Writing SKILL.md Files
SKILL.md is the core of every skill. It consists of YAML frontmatter followed by Markdown instructions.
Frontmatter (Required)
---
name: skill-name
description: What this skill does and when to use it.
---
| Field | Required | Constraints |
|---|---|---|
name |
Yes | 1-64 chars. Lowercase alphanumeric and hyphens only. Must match directory name. |
description |
Yes | 1-1024 chars. Describe what the skill does AND when to use it. |
license |
No | License name or reference to bundled license file. |
metadata |
No | Arbitrary key-value pairs (e.g., author, version). |
Name Field Rules
- Lowercase letters, numbers, and hyphens only (
a-z,0-9,-) - Must not start or end with
- - Must not contain consecutive hyphens (
--) - Must match the parent directory name
# Valid
name: pdf-processing
name: data-analysis
# Invalid
name: PDF-Processing # uppercase not allowed
name: -pdf # cannot start with hyphen
name: pdf--processing # consecutive hyphens not allowed
Description Field (Critical)
The description is the primary trigger mechanism. Claude uses it to decide when to activate the skill.
Include both:
- What the skill does
- Specific triggers/contexts for when to use it
# Good - comprehensive and trigger-rich
description: >
Supabase database best practices for schema design, RLS policies,
indexing, and query optimization. Use when working with Supabase
projects, writing PostgreSQL migrations, configuring Row Level Security,
or optimizing database performance.
# Bad - too vague
description: Helps with databases.
Do not put "when to use" in the body. The body loads only after triggering, so trigger context must be in the description.
Body Content
The Markdown body contains instructions for using the skill. Write concisely—Claude is already capable. Only add context Claude doesn't already have.
Guidelines:
- Use imperative form ("Create the table", not "You should create the table")
- Keep under 500 lines; move detailed content to
references/ - Prefer concise examples over verbose explanations
- Challenge each paragraph: "Does this justify its token cost?"
Recommended structure:
- Quick start or core workflow
- Key patterns with examples
- Links to reference files for advanced topics
## Quick Start
Create a table with RLS:
[concise code example]
## Common Patterns
### Authentication
[pattern with example]
## Advanced Topics
- **Complex policies**: See
[references/rls-patterns.md](references/rls-patterns.md)
- **Performance tuning**: See
[references/optimization.md](references/optimization.md)
Progressive Disclosure
Skills use three loading levels:
- Metadata (~100 tokens) - Always loaded for all skills
- Body (<5k tokens recommended) - Loaded when skill triggers
- References (as needed) - Loaded on demand by Claude
Keep SKILL.md lean. Move detailed reference material to separate files and link to them.
Reference File Format
Reference files in references/ extend skills with detailed documentation.
---
title: Action-Oriented Title
impact: CRITICAL|HIGH|MEDIUM-HIGH|MEDIUM|LOW-MEDIUM|LOW
impactDescription: Quantified benefit
tags: keywords
---
## Title
1-2 sentence explanation.
**Incorrect:** \`\`\`sql -- bad example \`\`\`
**Correct:** \`\`\`sql -- good example \`\`\`
What NOT to Include
Skills should only contain essential files. Do NOT create:
- README.md
- INSTALLATION_GUIDE.md
- QUICK_REFERENCE.md
- CHANGELOG.md
The skill should contain only what an AI agent needs to do the job.