When Anthropic released Skills in October 2025, I faced a confusing problem: Skills, Workflows (formerly Commands), and Agents are all essentially markdown files containing prompts. Structurally identical. So which do you use, and when?
| Primitive | Purpose | When to Use | Location |
|---|---|---|---|
| Skill | Domain container | Grouping related capabilities | ~/.claude/skills/{Domain}/ |
| Workflow | Task procedure | Executing specific operations | ~/.claude/skills/{Domain}/Workflows/ |
| Agent | Parallel worker | Concurrent multi-task execution | ~/.claude/agents/ |
┌─────────────────────────────────────────────────────────────┐
│ AGENTS │
│ (Parallel workers - execute skills) │
│ ┌─────────────┐ ┌─────────────┐ ┌─────────────┐ │
│ │ Engineer │ │ Architect │ │ Researcher │ ... │
│ └──────┬──────┘ └──────┬──────┘ └──────┬──────┘ │
└─────────┼────────────────┼────────────────┼─────────────────┘
│ │ │
▼ ▼ ▼
┌─────────────────────────────────────────────────────────────┐
│ SKILLS │
│ (Domain containers - 77+ skills) │
│ ┌─────────────────────────────────────────────────────┐ │
│ │ Blogging/ Research/ Art/ ... │ │
│ │ ├── SKILL.md ├── SKILL.md ├── SKILL.md │ │
│ │ ├── Workflows/ ├── Workflows/ ├── Workflows/ │ │
│ │ ├── Tools/ ├── Tools/ ├── Tools/ │ │
│ │ └── *.md └── *.md └── *.md │ │
│ └─────────────────────────────────────────────────────┘ │
└─────────────────────────────────────────────────────────────┘
│ │ │
▼ ▼ ▼
┌─────────────────────────────────────────────────────────────┐
│ WORKFLOWS │
│ (Task procedures inside skills) │
│ Create.md Publish.md Deploy.md Research.md │
└─────────────────────────────────────────────────────────────┘Skills = Domain containers (Blogging, Research, Art, Security) Workflows = Task procedures (Create, Publish, Deploy - nested inside skills) Agents = Parallel workers (Engineer, Architect, Researcher - execute skills concurrently)
Every skill follows this flat structure:
~/.claude/skills/
├── Blogging/ # Domain container (TitleCase)
│ ├── SKILL.md # Main file: triggers, routing, docs
│ ├── Voice.md # Context file (in root, NOT in subdirectory)
│ ├── Formatting.md # Context file (in root, NOT in subdirectory)
│ ├── Workflows/ # Task procedures only
│ │ ├── Create.md # Write new content
│ │ ├── Publish.md # Deploy to production
│ │ └── Rewrite.md # Edit existing content
│ └── Tools/ # CLI automation
│ └── DevServer.ts # TypeScript toolingKey rules:
Blogging, not blogging)context/ subdirectory)The main skill file has two parts:
1. YAML Frontmatter (what triggers activation):
---
name: Blogging
description: Blog workflow. USE WHEN blog, website, publish, deploy, write.
---2. Markdown Body (routing and documentation):
# Blogging
## Workflow Routing
| Workflow | Trigger | File |
|----------|---------|------|
| **Create** | "write a post" | `Workflows/Create.md` |
| **Publish** | "deploy", "publish" | `Workflows/Publish.md` |
| **Rewrite** | "edit this post" | `Workflows/Rewrite.md` |Claude matches your intent to the description, loads the skill, and routes to the appropriate workflow.
When to use: Organizing a domain of related capabilities.
Skills are self-contained modules. Everything for blogging lives in skills/Blogging/. Everything for research lives in skills/Research/.
When you say "write a blog post," the Blogging skill activates, analyzes your intent, and routes to Workflows/Create.md.
When to use: Executing a specific task within a domain.
Workflows are step-by-step procedures that live inside their parent skill. They're the "how to do X" files.
Examples:
Blogging/Workflows/Create.md — How to write a new postResearch/Workflows/ExtensiveResearch.md — How to conduct deep researchArt/Workflows/Essay.md — How to create blog header imagesWhen to use: Concurrent execution of multiple tasks.
Agents are standalone files in ~/.claude/agents/ that execute work in parallel. They invoke skills and workflows as workers.
Example flow:
~/.claude/
├── skills/ # 77+ domain containers
│ ├── Blogging/
│ │ ├── SKILL.md # Routing and documentation
│ │ ├── Voice.md # Writing style guidelines
│ │ ├── Formatting.md # Post structure rules
│ │ ├── Workflows/
│ │ │ ├── Create.md
│ │ │ ├── Publish.md
│ │ │ └── Rewrite.md
│ │ └── Tools/
│ │ └── DevServer.ts
│ ├── Research/
│ │ ├── SKILL.md
│ │ ├── Sources.md
│ │ ├── Workflows/
│ │ │ ├── QuickResearch.md
│ │ │ ├── StandardResearch.md
│ │ │ └── ExtensiveResearch.md
│ │ └── Tools/
│ ├── Art/
│ │ ├── SKILL.md
│ │ ├── Aesthetic.md
│ │ ├── Workflows/
│ │ │ ├── Essay.md
│ │ │ ├── TechnicalDiagrams.md
│ │ │ └── Mermaid.md
│ │ └── Tools/
│ │ └── Generate.ts
│ └── ... (74 more skills)
├── agents/ # Parallel workers
│ ├── Engineer.md
│ ├── Architect.md
│ ├── Researcher.md
│ └── ... (20+ agents)
└── MEMORY/ # Learning and state
├── LEARNING/
└── STATE/Encapsulation: All blogging capabilities live in one place.
Discoverability: ls skills/Blogging/Workflows/ shows all blogging tasks.
Portability: Skills are self-contained and shareable.
Intent routing: Natural language triggers the right skill automatically.
Modularity: Small, focused files instead of monolithic prompts.
When adding new capability, ask:
The system is working well—I currently have 77 skills, hundreds of workflows, and 20+ agents, all following this structure.