yaml-agent-format
The yaml-agent-format skill provides a structured YAML schema for defining Claude Code agents as an alternative to markdown. Use this skill when programmatically generating agents, validating agent definitions against schemas, converting existing markdown agents to YAML format, or working in automation pipelines where machine-parseable configuration is preferred over human-readable documentation.
git clone --depth 1 https://github.com/MadAppGang/claude-code /tmp/yaml-agent-format && cp -r /tmp/yaml-agent-format/plugins/agentdev/skills/yaml-agent-format ~/.claude/skills/yaml-agent-formatSKILL.md
# YAML Agent Format
## Overview
### Why YAML for Agents?
YAML provides an alternative format for defining Claude Code agents with several advantages:
**Benefits:**
- **Machine-parseable**: Easy to validate, transform, and generate programmatically
- **Less verbose**: No markdown headers, cleaner structure
- **Schema validation**: Strong typing with JSON Schema or Zod
- **Tooling support**: Better IDE autocomplete, linting, formatting
- **Data-first**: Natural for configuration management
**Trade-offs:**
- **Less readable**: Markdown is better for long-form documentation
- **Indentation-sensitive**: YAML whitespace can be error-prone
- **No rich formatting**: Can't use markdown tables, code blocks in descriptions
### When to Use YAML vs Markdown
**Use YAML when:**
- Generating agents programmatically
- Agent definitions are data-heavy (many examples, tools, rules)
- You need strong schema validation
- Agent is simple and concise
- Working in automation/CI pipelines
**Use Markdown when:**
- Agent has extensive documentation needs
- You want rich formatting (tables, diagrams, code examples)
- Agent is tutorial-like with explanations
- Human readability is priority
- Agent includes narrative instructions
### Compatibility with Claude Code
YAML agents are **fully compatible** with Claude Code:
- Placed in `agents/` directory with `.agent.yaml` extension
- Registered in `plugin.json` identically to markdown agents
- Loaded and executed the same way
- Can mix YAML and markdown agents in same plugin
---
## YAML Agent Schema
### Complete Schema Definition
```yaml
# Required fields
name: string # Agent name (kebab-case)
description: string # Brief description (1-2 sentences)
version: string # Semver version (e.g., "1.0.0")
# Optional but recommended
role:
identity: string # Agent's role/identity
expertise: string[] # List of expertise areas
mission: string # Primary mission statement
tools: string[] # Available tools (Read, Write, Edit, Bash, etc.)
instructions:
constraints: string[] # Critical constraints/rules
workflow: # Step-by-step workflow
- phase: string # Phase name
objective: string # Phase objective
steps: string[] # List of steps
knowledge: # Knowledge base entries
- topic: string # Knowledge topic
content: string # Knowledge content
examples: # Usage examples
- name: string # Example name
user: string # User message
assistant: string # Assistant response
formatting:
style: string # Communication style
templates: # Output templates
success: string
error: string
```
### Field Details
**Required Fields:**
- `name`: Agent identifier (must match filename without extension)
- `description`: Shown in agent list, used for agent selection
- `version`: Semver for tracking changes
**Role Section:**
- `identity`: Who the agent is (e.g., "React Component Builder")
- `expertise`: Array of skills (e.g., ["React 19", "TypeScript", "Testing"])
- `mission`: What the agent does (e.g., "Build production-ready React components")
**Tools Array:**
Standard Claude Code tools:
```yaml
tools:
- Read
- Write
- Edit
- Bash
- Glob
- Grep
```
**Workflow Structure:**
```yaml
instructions:
workflow:
- phase: "Phase 1: Discovery"
objective: "Find relevant files"
steps:
- "Use Glob to find components"
- "Use Grep to search for patterns"
- "Read existing implementations"
```
---
## YAML vs Markdown Comparison
### Simple Agent: Side-by-Side
**Markdown (`simple-agent.md`):**
```markdown
---
name: simple-agent
description: A simple example agent
version: 1.0.0
---
<role>
<identity>Code Formatter</identity>
<mission>Format code files according to standards</mission>
</role>
<instructions>
1. Read the file
2. Format using appropriate tool
3. Write back to file
</instructions>
```
**YAML (`simple-agent.agent.yaml`):**
```yaml
name: simple-agent
description: A simple example agent
version: 1.0.0
role:
identity: Code Formatter
mission: Format code files according to standards
instructions:
workflow:
- phase: Format
steps:
- Read the file
- Format using appropriate tool
- Write back to file
```
### Complex Agent: Side-by-Side
**Markdown (`react-builder.md`):**
```markdown
---
name: react-builder
description: Build React components with tests
version: 2.1.0
---
<role>
<identity>React Component Builder</identity>
<expertise>
- React 19 with TypeScript
- React Testing Library
- Component patterns
</expertise>
</role>
<instructions>
<workflow>
<phase number="1" name="Create Component">
<steps>
<step>Create component file with TypeScript types</step>
<step>Implement component logic</step>
</steps>
</phase>
</workflow>
</instructions>
<examples>
<example name="Button Component">
<user>Create a button component</user>
<assistant>I'll create Button.tsx with props...</assistant>
</example>
</examples>
```
**YAML (`react-builder.agent.yaml`):**
```yaml
name: react-builder
description: Build React components with tests
version: 2.1.0
role:
identity: React Component Builder
expertise:
- React 19 with TypeScript
- React Testing Library
- Component patterns
instructions:
workflow:
- phase: "Phase 1: Create Component"
steps:
- Create component file with TypeScript types
- Implement component logic
examples:
- name: Button Component
user: Create a button component
assistant: I'll create Button.tsx with props...
```
**Key Difference:** YAML is ~30% shorter for structured data.
---
## Conversion Patterns
### Markdown to YAML C|
|
|
Common agent patterns and templates for Claude Code. Use when implementing agents to follow proven patterns for Tasks integration, quality checks, and external model invocation via claudish CLI.
YAML frontmatter schemas for Claude Code agents and commands. Use when creating or validating agent/command files.
XML tag structure patterns for Claude Code agents and commands. Use when designing or implementing agents to ensure proper XML structure following Anthropic best practices.
Linear API patterns and examples for autopilot. Includes authentication, webhooks, issue CRUD, state transitions, file attachments, and comment handling.
Proof artifact generation patterns for task validation. Covers screenshots, test results, deployments, and confidence scoring.