blueprint
Use when the deliverable is WordPress Playground Blueprint JSON or a Blueprint bundle, including creating, editing, reviewing,…
Use when designing, updating, or reviewing the schemas or behavior of a WordPress ability.
Claude Code
$ npx -y skills add WordPress/agent-skills --skill wp-ability-development --agent claude-code
Codex
$ npx skills add WordPress/agent-skills --skill wp-ability-development -a codex -y
Cursor
$ npx skills add WordPress/agent-skills --skill wp-ability-development -a cursor -y
Gemini CLI
$ npx skills add WordPress/agent-skills --skill wp-ability-development -a gemini-cli -y
GitHub Copilot
$ npx skills add WordPress/agent-skills --skill wp-ability-development -a github-copilot -y
OpenCode
$ npx skills add WordPress/agent-skills --skill wp-ability-development -a opencode -y
Windsurf
$ npx skills add WordPress/agent-skills --skill wp-ability-development -a windsurf -y
name: wp-ability-development description: "Use when designing, updating, or reviewing the schemas or behavior of a WordPress ability." compatibility: "Targets WordPress 7.0+ (PHP 7.4.0+)."
Use this skill when deciding what a WordPress ability accepts, returns, or does. For registration, exposure, and client usage, see [wp-abilities-api](../wp-abilities-api/SKILL.md).
Identify who will call the ability, what they want to do, what information they already have, and what they need back. For example, a caller opening a note from a permalink may have its slug, while an editor loading a saved draft may already have its ID. The information available to each caller helps you choose the inputs the ability should support.
For an existing ability, read its schemas and callbacks to see what it accepts, returns, and changes. Check related abilities for shared object shapes and terminology. If the ability is published, look at its documentation, tests, and known call sites to identify what callers already rely on before changing the contract.
Describe the request in the caller’s words. Use that vocabulary in the ability’s name, field descriptions, and result, then map those concepts to the implementation. In field descriptions, explain what each field controls and, where it matters, what omission means. A caller should be able to choose the ability and form a request from its name, description, and schemas.
For example, “Find published posts by this author” suggests `where.status` and `where.author`. The callback can translate those fields into WordPress query arguments.
Group fields that describe one concept in a nested object with its own schema. A named object gives callers and developers a value they can validate, pass around, and reuse independently.
For example, an ability that exposes both raw and rendered content might group them as `content.raw` and `content.rendered`. If it also returns publication and modification dates in both site time and GMT, those dates might share a type with `site` and `gmt` fields.
Use nested objects for related input controls so each group can evolve on its own. Prefer one clear input form for a task. When there are distinct scenarios, model the choice inside the relevant object so common inputs only need one definition. Define what each branch requires and accepts so the schema rejects mixed or incomplete requests.
For example, if a lookup supports both ID and slug, its `selector` object can use `oneOf` to accept exactly one of those forms.
Choose a stable result type and structure for every successful call. A collection query returns a collection whether zero, one, or many records match, so the caller can iterate over the results in every case. A top-level `oneOf` that alternates between a single record and a collection makes callers check the shape before they can use it. Check that the intended clients support the schema features you use.
Teach AI coding assistants how to build WordPress the right way. Agent Skills are portable bundles of instructions, checklists, and scripts that help AI assistants (Claude, Copilot, Codex, Cursor, etc.)
Use when the deliverable is WordPress Playground Blueprint JSON or a Blueprint bundle, including creating, editing, reviewing,…
Use when the user asks about WordPress codebases (plugins, themes, block themes, Gutenberg blocks, WP core checkouts) and you…
Use when working with the WordPress Abilities API (wp_register_ability, wp_register_ability_category, /wp-json/wp-abilities/v1/*,…
Audit a WordPress plugin's REST surface and produce a standardized audit document proposing Abilities API registrations. Produces…
Verify a WordPress plugin's Abilities API registrations: enumerate abilities, check that callback behavior matches each…
Use when developing WordPress (Gutenberg) blocks: block.json metadata, register_block_type(_from_metadata),…
You MUST use this before any creative work - creating features, building components, adding functionality, modifying behavior, or…
Ask which skill or flow fits your situation. A router over the skills in this repo.