Overview
A plugin is a directory that extends the agent with slash commands (skills) and MCP server tools. Athena loads plugins from paths in your config or via --plugin.
What Plugins Provide
Skills — Slash commands defined as SKILL.md files with YAML frontmatter. Skills marked user-invocable: true appear as commands:
/add-e2e-tests <url> <feature>
/analyze-test-codebase [path]
/plan-test-coverage <url> <feature>
MCP Servers — A .mcp.json file in the plugin root exposes tools to the agent. Athena merges all plugin MCP configs into a single temp file passed to the harness at startup.
Directory Structure
my-plugin/
.claude-plugin/
plugin.json # required — manifest
skills/
add-tests/
SKILL.md # skill definition
analyze/
SKILL.md
.mcp.json # optional — MCP server config
workflow.json # optional — auto-discovered workflow
The Manifest: .claude-plugin/plugin.json
{
"name": "e2e-test-builder",
"description": "Iterative workflow runner for adding Playwright E2E tests.",
"version": "1.0.0",
"author": { "name": "Your Name" },
"repository": "https://github.com/..."
}| Field | Type | Required |
|---|---|---|
name | string | Yes |
description | string | Yes |
version | string | Yes |
author | object | No |
repository | string | No |
Skill Frontmatter
Each skills/<name>/SKILL.md uses YAML frontmatter:
---
name: add-e2e-tests
description: Full pipeline orchestrator for adding Playwright E2E tests
user-invocable: true
argument-hint: "<url> <feature>"
allowed-tools:
- Read
- Bash
- Write
---| Field | Type | Description |
|---|---|---|
name | string | Slash command name (add-e2e-tests → /add-e2e-tests) |
description | string | Shown in help output |
user-invocable | boolean | If true, appears as a user command. Default: false |
argument-hint | string | Argument description in help |
allowed-tools | string[] | Tools this skill can use |
The body below --- is the prompt template. Use $ARGUMENTS to interpolate user input.