site-spec
This skill gathers design and feature preferences for a WordPress site through interactive questions before building begins.
Identity proven by GitHub's verified organisation badge (Automattic)
- Agents
- Claude Code
- License
- LGPL-2.1 (copyleft)
- Pin
- 870948cpinned Oct 9, 2026
- Context cost
- about 1,500 tokenswhen the skill loads
- GitHub stars
- 533on automattic/studio
- Scripts
- None found
What it does
“Settle the design and plugin needs for the active site before building it. Run this after the site to work on has been picked and before any design work.”
Generated summary from the skill's own text
This skill gathers design and feature preferences for a WordPress site through interactive questions before building begins. It produces a Site Spec document that captures the chosen visual direction, layout concept, and required plugins to guide subsequent development work.
When to use it
- Starting a new WordPress site project and design choices need to be settled
- Confirming visual direction and layout with the user before any code is written
- Determining which plugins are needed based on the site's planned functionality
When not to
- Modifying an existing site where the design is already finalized
- Building static content that needs no interactive discovery phase
- Working on a site where the user explicitly skips setup questions
Install
These commands install from the publisher's repository and need no account.
skills CLI
npx skills add automattic/studio --skill site-specInstalls from the repository's default branch, which may have changed since the commit we checked.
GitHub CLI 2.90 or later
gh skill install automattic/studio site-spec@870948cd5cbdba4d05a432c38fa5e8e1e796b3b1Installs the commit we checked (870948c).
Copy by hand
Download the folder at 870948c and put it in .claude/skills/site-spec for Claude Code and in .agents/skills/site-spec for Codex, Cursor, Gemini CLI, GitHub Copilot and OpenCode.
Claude Code plugin
/plugin install build-with-wordpress@claude-plugins-officialThe publisher's plugin in Claude's official marketplace. It may hold more than this skill, and we have not pinned it.
Copy for your agent
A prompt for any coding agent. It installs this skill from GitHub at the pinned commit, copies the files as they are, and runs nothing unless you ask.
Prompt
Install the agent skill "site-spec" by Automattic. Source, pinned to commit 870948cd5cbdba4d05a432c38fa5e8e1e796b3b1: https://github.com/automattic/studio/tree/870948cd5cbdba4d05a432c38fa5e8e1e796b3b1/apps/cli/ai/skills/site-spec 1. Download that folder at exactly this commit. Do not use the default branch. 2. Copy every file unchanged, keeping the folder structure, into .claude/skills/site-spec/ for Claude Code and .agents/skills/site-spec/ for Codex, Cursor, Gemini CLI, GitHub Copilot and OpenCode. Create the folders if they do not exist. 3. Do not edit the files, and do not run any script in the folder unless I ask you to. 4. When you are done, list the files you copied and where you put them. Listing and checks: https://www.agentnative.dev/skills/automattic/site-spec
SKILL.md at the pin
---
name: site-spec
description: Settle the design and plugin needs for the active site before building it. Run this after the site to work on has been picked and before any design work.
user-invokable: true
---
# Site Spec Discovery
Before building a WordPress site, gather the user's basic preferences through a short interactive discovery phase. This produces a **Site Spec** that guides all subsequent design and development decisions.
## Precondition: an active site
This skill works on the active site — the one announced at the top of the user's message. If there is no active site, stop and let the user know.
## How to Run
**AskUserQuestion constraints**: Each call supports 1-4 questions, each with 2-4 options. An "Other" free-form option is automatically provided by the system — do NOT add one yourself. Keep option labels short (1-5 words). Only use AskUserQuestion for questions that have meaningful predefined options. For open-ended questions, just ask in your text output — the user will type their answer in the prompt.
Use AskUserQuestion for:
- One-page site or multi-page site? (e.g., single scrollable page with sections vs. separate pages for each area)
The business/brand name is the active site's name unless the prompt gives a different one. Do not ask for it. The one exception: when the site name is clearly a placeholder (e.g. "test", "Site 1") and the prompt gives no brand, ask for the brand name in your text output and **stop and wait for the reply** — do NOT call any tools in that turn.
A new site's spec needs nothing from the site itself: do not search its files or list its plugins and themes before the design is settled.
### The design
Load the `visual-design` skill first — the catalogs, the DESIGN.md format, and the sneak-peek rules live there — and follow its "Concept and Direction" runbook. The design is settled in two steps, the look and then the layout, each with one `pick_design` call, repeated only when the user asks for other options:
- Pass `options: 4` so the user picks, or `options: 1` when there is nothing to pick — the user asked to be surprised or to skip the questions, or the brief names that step's catalog entry. Neither a page count ("one page") nor adjectives ("elegant", "warm") pick an entry: ask, and apply them to the options you choose. For a reference site, look at it once with `take_screenshot` (`display: false`) and choose its closest entries, with `options` set to their number: two when `present_design_options` is available, otherwise one.
- With one entry, use it without asking. With more, ask once, one option per entry in the order returned, labelled with the entry's name, without describing the options in prose first. A typed answer ("2 but darker") is a preference to apply to the closest option; asking for other options, as a choice or in their own words, means drawing that step again and asking the same way.
1. **The look**: `catalog: "directions"`, asking "Which look should I build?". Skip this step when the active-site line names a design system and the user did not ask for a new look.
- If `present_design_options` is available: when you can make images (`generate_images`, or an image tool of your own), load the `imagery` skill and make the look image first. Pass each option's `DESIGN.md` draft (see the `visual-design` skill) as its `preview`, with that image and a one-line description of the feel.
- Otherwise use `AskUserQuestion`, each option with a one-line description of the look.
- Write the picked look to `DESIGN.md` at the site root: the draft's front matter exactly as the user saw it, then every section. Then, when you can make images (`generate_images`, or an image tool of your own), load the `imagery` skill and make the site's image set in that look so the layout previews and the build have it.
2. **The layout**: `catalog: "layouts"`, asking "Which layout should I build?".
- If `present_design_options` is available: pass one sneak peek per option, in the picked look and with the site's image set (see the `visual-design` skill), as its `preview`, with a one-line description of the layout.
- Otherwise use `AskUserQuestion`, each option with a one-line description of how its first screen would look.
- Add the picked layout to the Layout section of `DESIGN.md`, then build it.
## After Gathering Answers
State the plan as a short **Site Spec** summary before building. The summary MUST include a **Concept** line — the signature layout concept settled by `pick_design` or picked by the user, as `Concept: <catalog name> — <one-line adaptation>`, the entry's name verbatim so the user can find it, then the twist — followed by a **Layout map** (as the `visual-design` skill defines it: one line per section of the page saying what the concept does to it), a **Direction** line — the artistic direction behind `DESIGN.md`, as `Direction: <catalog name> — <one-line adaptation>` — and a **Functionality & plugins** line. A side designed from the brief rather than the catalog is stated as `Concept: <the brief's words> — <how it is built>` or `Direction: <the brief's words> — <how it is built>`. For the plugins line: review the requested features, load the `plugin-recommendations` skill, and list the specific plugins the site needs — e.g. WooCommerce for selling products, Jetpack Forms for a contact form, Jetpack Newsletter for email signups, Sensei LMS for courses, Crowdsignal for polls/surveys — or "None — core blocks only" when nothing beyond static content is required. Install the listed plugins while building (Workflow Step 3); do not silently hand-build static markup for a feature a plugin should provide.
## When to Skip the Questions
Skipping means skipping the interactive questions only — each design step then returns a single entry, `DESIGN.md` is still written, and you still produce the Site Spec summary (including the Functionality & plugins line) before building. Do NOT ask questions if:
- The user says "just build something" or "surprise me". Pick a bold creative direction yourself and proceed.
- The user explicitly asks to skip the setup or says they don't want questions.
From automattic/studio at 870948c, shown as plain text under its license: LGPL-2.1 (copyleft). The license text is in apps/cli/LICENSE.md.
View SKILL.md on GitHub at 870948cFiles
- SKILL.md6.2 KB · b218c7008677
1 file, 6.2 KB in total. Each file has a sha256 in the pin's manifest; the first 12 characters are shown.
Skill folder on GitHub at 870948cMore from Automattic
annotate
This skill opens a browser with annotation tools that let users click page elements and leave feedback, then the agent reads those annotations and applies the…
Claude Code, Codex, Cursor +3 · about 1K tokens · pinned 6 days ago
block-content
This skill instructs agents to write editable WordPress block markup for block themes, enforcing use of core blocks over HTML, managing layout cascades, and…
Claude Code, Codex, Cursor +3 · about 4.4K tokens · pinned 6 days ago
hosting-plans-helper
This skill fetches current WordPress.com plan names, pricing, and feature details from live APIs, then answers questions about which plan tier includes…
Claude Code, Codex, Cursor +3 · about 840 tokens · pinned 6 days ago
imagery
This skill guides generating AI images for WordPress sites using the generate_images tool, or alternative image generation tools.
Claude Code, Codex, Cursor +3 · about 2.6K tokens · pinned 6 days ago
liberate
This skill helps agents migrate websites into WordPress by copying the site from a URL or local files using the Studio CLI, then comparing the imported…
Claude Code, Codex, Cursor +4 · about 830 tokens · pinned 6 days ago
need-for-speed
Measures Core Web Vitals and page composition metrics for WordPress sites using synthetic testing, then suggests targeted optimization actions based on…
Claude Code, Codex, Cursor +3 · about 650 tokens · pinned 6 days ago
Related in Frontend and design
next-bundle-optimizer
Audits Next.js applications to identify and reduce browser bundle size and initial-load work by analyzing routes, dependencies and client outputs.
by VercelOfficial publisher
Claude Code, Codex, Cursor +4 · about 2.3K tokens · pinned 6 days ago
next-cache-components-optimizer
Optimize Next.js routes to display meaningful UI instantly on initial load or client navigation by encoding the optimization goal as a failing…
by VercelOfficial publisher
Claude Code, Codex, Cursor +4 · about 5.6K tokens · pinned 6 days ago
next-partial-prefetching-adoption
Enables Partial Prefetching in Next.js 16.3+ apps and guides adoption through auditing Link prefetch behavior, preserving UI in tests or manually, and…
by VercelOfficial publisher
Claude Code, Codex, Cursor +4 · about 6.7K tokens · pinned 6 days ago
remotion-interactivity
This skill teaches how to structure Remotion code so the Studio IDE recognizes and makes it interactive.
by RemotionOfficial publisher
Claude Code, Codex, Cursor +3 · about 2.4K tokens · pinned 6 days ago
remotion-interactivity
This skill teaches how to structure Remotion video components to unlock Studio interactivity features like click selection, drag-and-drop, resizing, rotation…
by RemotionOfficial publisher
Claude Code, Codex, Cursor +3 · about 4.8K tokens · pinned 6 days ago
remotion-maps
This skill enables creating map-based animations with Remotion using four different mapping libraries: Mapbox, MapLibre, MapTiler, or CesiumJS.
by RemotionOfficial publisher
Contains scripts
Claude Code, Codex, Cursor +3 · about 240 tokens · pinned 6 days ago