---
description: Authoring agent, skill, and command markdown for cross-harness portability
globs: ["plugins/*/agents/*.md", "plugins/*/skills/*/SKILL.md", "plugins/*/commands/*.md"]
---

# Authoring portable plugin content

This content ships to Claude Code, Codex CLI, Cursor, OpenCode, and the Antigravity CLI. The
adapter framework handles per-harness mechanics, but content choices affect portability.

## Frontmatter

- Agents: `name`, `description` (with "Use when…" trigger), `model: opus|sonnet|haiku|inherit`, optional `tools:`, optional `color:`.
- Skills: `name`, `description`. Other Anthropic SKILL.md fields are optional and respected only on Claude Code.
- Commands: `description`, `argument-hint`.

## Body

- Use action verbs, not tool-name vocabulary: prefer *"open the file"* over *"use the Read tool"*. The adapter rewrites a conservative set, but the unrewritten cases bleed through.
- Cap skill body at ~8 KB. Push longer reference material into `skills/<name>/references/` files. Codex will hard-truncate at 8 KB anyway.
- Don't name agents `default`, `worker`, or `explorer` — they collide with Codex built-ins.
- Don't reference `TodoWrite` as load-bearing — it doesn't exist in Codex, Cursor, or Antigravity. The `Task` spawn tool and hooks don't exist in Codex or Cursor either, but Antigravity supports both through its native equivalents (`invoke_subagent`/`define_subagent`, lifecycle hooks).

See `docs/authoring.md` for the full guide.
