Instrucciones de origen · Vista previa de solo lectura
name
universal-plugin
description
Use this skill when creating, inspecting, updating, or deleting a universal agent plugin that targets multiple AI coding agent runtimes.
Universal Plugin
When to use
When the user wants to create, inspect, update, or delete a plugin targeting Claude Code, Cursor, Codex, and/or GitHub Copilot CLI from a single source of truth.
Prerequisites
Load governance before starting:
npx universal-plugin governance show plugin-design
Until the CLI is available, read governances/plugin-design.md from this plugin's installation directory. It is the authoritative source for component selection rules and anti-patterns.
Create
Step 1 — Gather plugin identity
Ask if not provided. All fields map to the canonical .plugin/plugin.json.
Field
Required
Notes
name
Yes
kebab-case, 1–64 chars, a-z 0-9 - . only
description
Recommended
one sentence; Codex requires this
version
If publishing
semver; Codex requires this
author.name
Recommended
person or org name
homepage
Optional
docs or landing page URL
repository
Optional
source repo URL
license
Optional
SPDX identifier e.g. MIT
keywords
Optional
discovery tags; array of strings
Step 2 — Choose vendor targets
Ask the user which runtimes to support. Each chosen vendor becomes a key in vendorExtensions — that is what drives the build output; no separate vendors declaration is required.
Vendor ID
Output manifest path
Hook event case
Required fields beyond name
claude-code
.claude-plugin/plugin.json
PascalCase
none
cursor
.cursor-plugin/plugin.json
camelCase
none
codex
.codex-plugin/plugin.json
PascalCase
version, description
copilot-cli
plugin.json at plugin root
camelCase
none
Universal minimum (no vendor manifest needed): skills/<name>/SKILL.md + .mcp.json.
Default to all four if the user is unsure.
Step 3 — Choose components
Infer from context; ask only if ambiguous. Apply rules from the plugin-design governance loaded in Prerequisites.
Component
Field
Directory
Cross-vendor?
Skills
skills
skills/<name>/SKILL.md
Yes — all
Commands
commands
commands/<name>.md
Claude Code, Cursor, Copilot CLI
Agents
agents
agents/<name>.md
Claude Code, Cursor, Copilot CLI
MCP servers
mcpServers
.mcp.json
Yes — all
Hooks
hooks
hooks/hooks.json
Partial — event names translated on build
Rules
rules
rules/<name>.mdc
Cursor-only
LSP servers
lspServers
.lsp.json
Claude Code, Cursor
Output styles
outputStyles
output-styles/
Claude Code only
Step 4 — Scaffold files
Read the templates from assets/templates/ and fill in the placeholders:
In .plugin/plugin.json, add a vendorExtensions key with one entry per chosen vendor. An empty {} opts into that vendor's output with no vendor-specific fields.
Add the vendor key to vendorExtensions in .plugin/plugin.json.
Populate vendor-specific fields (see spec §3.3).
If vendor requires extra fields (codex: version, description), ensure they are in the canonical section.
Re-run Step 7 (build) for the new vendor.
Remove a vendor
Remove the vendor key from vendorExtensions.
Delete the generated manifest at its output path.
Add or remove a component
Add/remove the component field in .plugin/plugin.json (e.g. "commands": "./commands/").
Scaffold or delete the corresponding files.
Re-run Step 7 (build) to regenerate all vendor manifests.
Delete
Remove generated manifests only (keep source)
Delete each vendor's output file. Generated manifests are build artifacts — safe to delete and regenerate.
rm -f .claude-plugin/plugin.json
rm -f .cursor-plugin/plugin.json
rm -f .codex-plugin/plugin.json
rm -f plugin.json # copilot-cli; only if this file is the generated artifact
Remove the whole plugin
Delete the plugin root directory. Confirm with the user before proceeding — this is irreversible.
References
Governance: npx cyberplace governance show plugin-design