Authoring Skills

VerifiedSafe

How to create and maintain agent skills in .agents/skills/. Covers frontmatter fields, description writing, naming conventions, and the relationship between AGENTS.md and skills.

Sby Skills Guide Bot
DocumentationIntermediate
107/27/2026
Claude Code
#authoring#skills#agent-configuration#frontmatter#conventions

Recommended for

Our review

This skill provides guidelines and conventions for creating and maintaining agent skill files in the .agents/skills/ directory.

Strengths

  • Clear specification of supported frontmatter fields
  • Detailed conventions for description writing
  • Clear distinction between AGENTS.md and skills
  • File structure guidance with concrete examples

Limitations

  • Only covers the authoring process, not skill usage
  • Assumes familiarity with the agent system
  • May not cover all edge cases of advanced configuration
When to use it

Use this skill when creating a new skill or updating an existing one to ensure consistency and adherence to conventions.

When not to use it

Do not use this skill when the task is a simple one-liner rule or guardrail that belongs in AGENTS.md.

Security analysis

Safe
Quality score92/100

The skill is purely documentation about authoring skills. It contains no executable code, destructive commands, or instructions that could compromise security.

No concerns found

Examples

Create a new skill
Create a new skill in .agents/skills/ for a common debugging workflow. Follow the conventions from the authoring-skills skill.
Frontmatter fields guidance
I need to write a SKILL.md for a skill that automates code review tasks. What frontmatter fields should I use and how should I structure the description?
Description writing help
How should I write the description for a skill about managing feature flags so that it auto-triggers correctly when a user mentions feature flags?

name: authoring-skills description: > How to create and maintain agent skills in .agents/skills/. Use when creating a new SKILL.md, writing skill descriptions, choosing frontmatter fields, or deciding what content belongs in a skill vs AGENTS.md. Covers the supported spec fields, description writing, naming conventions, and the relationship between always-loaded AGENTS.md and on-demand skills. user-invocable: false

Authoring Skills

Use this skill when creating or modifying agent skills in .agents/skills/.

When to Create a Skill

Create a skill when content is:

  • Too detailed for AGENTS.md (code templates, multi-step workflows, diagnostic procedures)
  • Only relevant for specific tasks (not needed every session)
  • Self-contained enough to load independently

Keep in AGENTS.md instead when:

  • It's a one-liner rule or guardrail every session needs
  • It's a general-purpose gotcha any agent could hit

File Structure

.agents/skills/
└── my-skill/
    ├── SKILL.md          # Required: frontmatter + content
    ├── workflow.md        # Optional: supplementary detail
    └── examples.md        # Optional: referenced from SKILL.md

Supported Frontmatter Fields

---
name: my-skill # Required. Used for $name references and /name commands.
description: > # Required. How Claude decides to auto-load the skill.
  What this covers and when to use it. Include file names and keywords.
argument-hint: "<pr-number>" # Optional. Hint for expected arguments.
user-invocable: false # Optional. Set false to hide from / menu.
disable-model-invocation: true # Optional. Set true to prevent auto-triggering.
allowed-tools: [Bash, Read] # Optional. Tools allowed without permission.
model: opus # Optional. Model override.
context: fork # Optional. Isolated subagent execution.
agent: Explore # Optional. Subagent type (with context: fork).
---

Only use fields from this list. Unknown fields are silently ignored.

Writing Descriptions

The description is the primary matching surface for auto-activation. Include:

  1. What the skill covers (topic)
  2. When to use it (trigger scenario)
  3. Key file names the skill references (e.g. config-shared.ts)
  4. Keywords a user or agent might mention (e.g. "feature flag", "DCE")
# Too vague - won't auto-trigger reliably
description: Helps with flags.

# Good - specific files and concepts for matching
description: >
  How to add or modify Next.js experimental feature flags end-to-end.
  Use when editing config-shared.ts, config-schema.ts, define-env-plugin.ts.

Content Conventions

Structure for Action

Skills should tell the agent what to do, not just what to know:

  • Lead with "Use this skill when..."
  • Include step-by-step procedures
  • Add code templates ready to adapt
  • End with verification commands
  • Cross-reference related skills in a "Related Skills" section

Relationship to AGENTS.md

| AGENTS.md (always loaded) | Skills (on demand) | | --------------------------------------- | ---------------------------------------------------------------------- | | One-liner guardrails | Step-by-step workflows | | "Keep require() behind if/else for DCE" | Full DCE pattern with code examples, verification commands, edge cases | | Points to skills via $name | Expands on AGENTS.md rules |

When adding a skill, also add a one-liner summary to the relevant AGENTS.md section with a $skill-name reference.

Naming

  • Short, descriptive, topic-scoped: flags, dce-edge, react-vendoring
  • No repo prefix (already scoped by .agents/skills/)
  • Hyphens for multi-word names

Supplementary Files

For complex skills, use a hub + detail pattern:

pr-status-triage/
├── SKILL.md         # Overview, quick commands, links to details
├── workflow.md      # Prioritization and patterns
└── local-repro.md   # CI env matching
Related skills