What Are Agent Primitives?
Claude Code is Anthropic's CLI for AI-assisted software development. Its plugin system lets developers extend Claude's capabilities by defining specialized configurations in Markdown and YAML files. These configurations come in three types, referred to here as agent primitives.
| Primitive | What It Is | Defined In |
|---|---|---|
| Agent | A full persona with its own system prompt, tool access, and model configuration. Runs in an isolated context window. Think of it as a job description for the AI: scope of responsibility, areas of expertise, rules of engagement. | AGENT.md |
| Skill | A reusable capability or workflow that extends what Claude can do. Can be invoked as a slash command or loaded automatically when relevant. More procedural than persona-driven. | SKILL.md |
| Command | A slash-command shortcut that triggers a specific, bounded action. The older convention, now functionally merged into skills but still widely used. | .md files in commands/ |
A plugin bundles all three. A single plugin directory might contain 2 agents, 5 skills, and 3 commands, all working together. The wshobson/agents repository organizes its contributions this way: 69 plugin directories, each contributed by a different author, containing a total of 119 agents, 153 skills, and 81 commands.
What makes this interesting is that Claude Code plugins are configuration-driven behavior augmentation. The system is convention-driven, not contract-driven: There is no schema validation, type checking, or enforced interface. A plugin is just Markdown and YAML files in a directory that follows naming conventions. Claude interprets the natural language in those files and adapts its behavior accordingly. This means the quality, clarity, and structure of that text directly shapes what the agent actually does.
This taxonomy matters for the analysis that follows. Agents with full personas need boundaries and uncertainty guidance more than simple commands do. When measuring "does this entity define what it doesn't know?", the answer carries different weight depending on whether it's an autonomous agent or a one-line command shortcut.