plugins/plugin-dev/skills/plugin-authoring/SKILL.md
Author, scaffold, or edit a plugin once in Claude Code format, then generate the Codex, Antigravity, and Cursor manifests so one directory loads in all four runtimes. Use when creating/scaffolding a new plugin, editing a plugin or its manifest, wiring a marketplace entry, running the multi-format generator, or when the user mentions "plugin.json", ".claude-plugin", ".codex-plugin", ".cursor-plugin", "multi-format", "marketplace.json", "scaffold a plugin", or "Codex/Cursor/Antigravity plugin".
npx skillsauth add pleaseai/claude-code-plugins plugin-authoringInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
This marketplace ships the same plugin directory across four runtimes. You author once in Claude Code format (the source of truth) and generate the rest. Never hand-write the Codex, Antigravity, or Cursor manifests.
.claude-plugin/plugin.json ← author here, source of truth
│ bun scripts/cli.ts multi-format
▼
.codex-plugin/plugin.json + .mcp.json ← generated
plugin.json (root) + mcp_config.json + hooks.json ← generated (Antigravity)
.cursor-plugin/plugin.json ← generated
.agents/plugins/marketplace.json ← generated (Codex marketplace)
.cursor-plugin/marketplace.json ← generated (Cursor marketplace)
.claude-plugin/:
plugins/<name>/
├── .claude-plugin/plugin.json # manifest only (source of truth)
├── commands/ agents/ skills/ # at root, auto-discovered
└── hooks/hooks.json # at root
Author the manifest from references/plugin-json-spec.md — start with valid defaults, no
[TODO: ...] placeholders. Prefer skills over SessionStart hooks (they load only when
relevant). Full quality checklist: references/best-practices.md..claude-plugin/marketplace.json (source: "./plugins/<name>"). Claude-only
fields like relevance live only here. For a new plugin, wire the companion files
(release-please, README) too — see references/multi-runtime-manifests.md.bun scripts/cli.ts multi-format
The generator is bundled in this plugin (scripts/run.ts + scripts/multi-format.ts). Details,
the per-runtime mapping table, and the $schema each manifest carries:
references/multi-runtime-manifests.md.git restore any unrelated
churn so the commit stays atomic.claude plugin validate plugins/<name>; deeper audit via the validating-plugins
skill.Every local plugin's Claude source is .claude-plugin/plugin.json; the root plugin.json is the
generated Antigravity manifest. Edit the .claude-plugin/ file — never the root one — then
re-run multi-format.
references/plugin-json-spec.md — manifest + marketplace field guide with canonical samples.references/multi-runtime-manifests.md — per-runtime mapping, the generator, diff scoping.references/best-practices.md — quality checklist, pitfalls, testing.validating-plugins — audit a plugin's manifest and structure before release.migrating-gemini-extensions — port a Gemini CLI extension to Claude Code.claude-code-plugin-builder (Claude Code component deep-dive),
plugin-creator (Codex-native), create-plugin-scaffold (Cursor-native)..codex-plugin/, .cursor-plugin/, the generated root Antigravity plugin.json, or
the Codex/Cursor marketplace.json — re-run multi-format.relevance (or other Claude-only fields) in the Codex/Cursor marketplaces.commands/ / agents/ / skills/ inside .claude-plugin/ — they won't load.tools
Creates durable, resumable workflows using Vercel's Workflow SDK. Use when building workflows that need to survive restarts, pause for external events, retry on failure, or coordinate multi-step operations over time. Triggers on mentions of "workflow", "durable functions", "resumable", "workflow sdk", "queue", "event", "push", "subscribe", or step-based orchestration.
tools
Install and configure Vercel Workflow SDK before it exists in node_modules. Use when the user asks to "install workflow", "set up workflow", "add durable workflows", "configure workflow sdk", or "init workflow" for Next.js, Express, Hono, Fastify, NestJS, Nitro, Nuxt, Astro, SvelteKit, or Vite.
tools
Migrates Temporal, Inngest, Trigger.dev, and AWS Step Functions workflows to the Workflow SDK. Use when porting Activities, Workers, Signals, step.run(), step.waitForEvent(), Trigger.dev tasks / wait.forToken / triggerAndWait, ASL JSON state machines, Task/Choice/Wait/Parallel states, task tokens, or child workflows.
tools
Use when building UIs leveraging the WordPress Design System (WPDS) and its components, tokens, patterns, etc.