Agent Native

site-spec

This skill gathers design and feature preferences for a WordPress site through interactive questions before building begins.

by AutomatticOfficial publisherNot reviewed

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.”
The author's description, from SKILL.md

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-spec

Installs 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@870948cd5cbdba4d05a432c38fa5e8e1e796b3b1

Installs 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.

Skill folder on GitHub at 870948c

Claude Code plugin

/plugin install build-with-wordpress@claude-plugins-official

The 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 870948c

Files

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 870948c
All 31 skills from Automattic

More 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

  • 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

The skills listed here are third-party software, collected from public GitHub repositories as a catalog of recent skills and provided as is. Agent Native does not write or control them and is not responsible for any harm, loss or damage caused by installing or using them. Labels and checks describe what we saw at one commit and are not a guarantee. Read a skill's files before you run it. Terms of use