mirror of
https://github.com/supabase/agent-skills.git
synced 2026-03-27 10:09:26 +08:00
223 lines
6.4 KiB
Markdown
223 lines
6.4 KiB
Markdown
# AGENTS.md
|
|
|
|
Guidance for AI coding agents working with this repository.
|
|
|
|
> **Note:** `CLAUDE.md` is a symlink to this file.
|
|
|
|
## Prerequisites
|
|
|
|
This project uses [mise](https://mise.jdx.dev/) to manage tool versions,
|
|
environment variables, and project tasks. Run `mise install` to set up the
|
|
correct tool versions from `mise.toml`.
|
|
|
|
## 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
|
|
evals/ # LLM evaluation system for skills
|
|
AGENTS.md # Agent guide for developing evals
|
|
CLAUDE.md # Symlink to AGENTS.md
|
|
scenarios/
|
|
workflow-scenarios.json # Handwritten workflow test scenarios
|
|
src/
|
|
cli.ts # Entry point
|
|
prompts/ # Eval and judge prompts
|
|
scorer/ # Zod schemas and judge execution
|
|
dataset/ # Test case extraction from skill references
|
|
runner/ # Eval orchestrator and runners
|
|
```
|
|
|
|
## Commands
|
|
|
|
All tasks are defined in `mise.toml` and can be run with `mise run` (or via
|
|
`npm run` which delegates to the same commands).
|
|
|
|
```bash
|
|
mise install # Install tool versions (Node.js)
|
|
mise run install # Install all npm dependencies
|
|
mise run build # Build all skills
|
|
mise run validate # Validate all skills
|
|
mise run check # Format and lint (auto-fix)
|
|
mise run test # Run tests
|
|
mise run eval # Run all LLM evals
|
|
mise run eval:code-fix # Run code-fix evals only
|
|
mise run eval:workflow # Run workflow evals only
|
|
```
|
|
|
|
Tasks with `sources`/`outputs` defined in `mise.toml` skip automatically when
|
|
nothing has changed.
|
|
|
|
**Before completing any task**, run `mise run check` and `mise run build` to
|
|
ensure CI passes.
|
|
|
|
## Creating a New Skill
|
|
|
|
Skills follow the [Agent Skills Open Standard](https://agentskills.io/).
|
|
|
|
1. Create directory: `mkdir -p skills/{skill-name}/references`
|
|
2. Create `SKILL.md` following the format below
|
|
3. Add `references/_sections.md` defining sections
|
|
4. Add reference files: `{prefix}-{reference-name}.md`
|
|
5. Run `mise 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)
|
|
|
|
```yaml
|
|
---
|
|
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
|
|
|
|
```yaml
|
|
# 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:**
|
|
|
|
1. What the skill does
|
|
2. Specific triggers/contexts for when to use it
|
|
|
|
```yaml
|
|
# 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:**
|
|
|
|
1. Quick start or core workflow
|
|
2. Key patterns with examples
|
|
3. Links to reference files for advanced topics
|
|
|
|
```markdown
|
|
## 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:
|
|
|
|
1. **Metadata** (~100 tokens) - Always loaded for all skills
|
|
2. **Body** (<5k tokens recommended) - Loaded when skill triggers
|
|
3. **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.
|
|
|
|
```markdown
|
|
---
|
|
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.
|