
This is the hands-on guide. By the end of it you will have a Claude Skill that takes a one-paragraph brief — “a services page for a plumbing company: hero, three service cards, trust band, FAQ, CTA” — and turns it into a real page on a real WordPress site, built in your builder, using your design tokens, with a plan you approve before anything is written. The skill is the procedure; NibWP is the set of typed tools it drives; your approval is the gate. Nothing here is a demo trick: it is the loop agencies run daily.
We use Claude Code as the client because skills and MCP are both first-class there. The same skill, with minor changes, works in Cursor and Windsurf. Allow about forty minutes the first time, ten for every site after that.
Two ways. The plugin has a 1-click config generator that produces the MCP entry for Claude Code. Or, from the terminal after installing the NibWP CLI:
nibwp auth login https://client-site.com --scope read,write
nibwp agent add claude-code
The first command opens your browser; the site asks what to allow; you approve. No password stored anywhere. The second writes the connection into Claude Code's config. Start Claude Code, run /mcp, and you should see the NibWP server with three tools: discover abilities, get ability info, execute ability. Those three are the door to all 132 typed tools on the site.
Sanity check before writing any skill: ask Claude Code “list the last five pages on the site.” It should call discover, find nibwp/wp-list-posts (or the page equivalent), execute it, and return structured results. If it does not, the MCP troubleshooting guide covers the usual causes.
Before you write a line, draw the boundary. A good page-building skill owns the procedure and the house rules; it does not own the site's facts (those come from NibWP at run time) and it does not own the output format (that comes from the builder and, ideally, the Pro Skill). Our skill will:
That boundary is what makes the skill portable: it runs on every client site because it learns the site each time instead of hard-coding it.
Create the folder and the file. Personal (every project) or project (this repo only) — for agency work, personal is usually right:
mkdir -p ~/.claude/skills/wp-page-from-brief
$EDITOR ~/.claude/skills/wp-page-from-brief/SKILL.md
And the file itself. This is complete and works as written; adjust the builder names for your stack.
---
name: wp-page-from-brief
description: Build a WordPress page from a short brief on a site connected through NibWP. Use when the user asks to create, draft or build a page, landing page or section from a description. Produces native builder output (Bricks by default), as a draft, after an approved outline.
argument-hint: [site-url] [brief]
---
# Build a WordPress page from a brief
## 0. Ground rules
- Never write raw HTML or inline CSS into the page. Output must be native builder elements.
- Create drafts only. Never publish.
- Every write goes through NibWP's approval. Do not ask for it to be skipped.
## 1. Outline first
Turn the brief into a numbered section list (hero, proof, services, FAQ, CTA...). For each: purpose, one-line content, CTA target if any.
Show the outline and STOP until the user confirms.
## 2. Learn the site before building
Using the NibWP discover tool, find and call:
- the builder info ability (detect Bricks / Etch / Elementor / Kadence and version)
- global classes / tokens (ACSS variables if present, builder global classes)
- existing header/footer templates and an example page to match structure
Summarise in 5 lines: builder, token names for colour/spacing/type, class naming pattern.
## 3. Build
If a Pro Skill for the detected builder is installed (nibwp/skill-preflight will say), route the build through it with the approved outline and the token summary.
Otherwise build with the builder's native create/update abilities, one section at a time, reusing global classes. Never invent class names.
Create the page as draft with a clean slug from the brief.
## 4. Verify and report
Read the page back. Check: H1 present and single; H2s in outline order; every button has an href; no inline style attributes; featured image set if the brief named one.
Report: page URL (draft preview), sections built, tokens used, anything skipped and why.
A few deliberate choices in that file:
Save the file — Claude Code picks up new skills live — and invoke it directly the first time so you can watch each step:
/wp-page-from-brief https://client-site.com "Services page for Harbor Plumbing: hero with emergency number, three service cards (repairs, installs, drain cleaning), a trust band with 4 badges, FAQ with 5 questions, final CTA to /book/"
What you should see, in order:
Second run onward you do not need the slash command: “build a pricing page for client-site.com from this brief” matches the description and Claude loads the skill itself.
Open the draft in Bricks. Because the output is native elements with your global classes, polishing is ordinary builder work: drag a section, change a padding token, swap an icon. That is the whole reason to insist on native output in the skill — a page made of pasted HTML would be a cleanup job here instead of a five-minute pass.
If you want the same flow for screenshots or Figma frames instead of text briefs, the screenshot-to-page and Figma + MCP guides show the inputs; the skill structure stays identical — only step 1's source changes.
Once it works, make it safe to hand to the rest of the team.
A Claude Skill turns “build me a page” from a conversation you steer into a procedure you trust: outline, learn the site, build natively, verify, report — the same way every time, on every site. NibWP supplies the typed tools, the approval gate and the audit log that make it safe to run on client work. Connect a site in five minutes (the WordPress plugin that lets Claude build sites), write the skill above, and the next page is a paragraph away. Plans and the Bundle are on the pricing page; the explainer on Claude Skills and WordPress covers the concepts this guide assumes.
No. The skill falls back to the builder's native create/update abilities through NibWP core. A Pro Skill (Bricks, EtchWP, Elementor, Kadence, Breakdance, Voxel) adds server-side validation — token mapping, class rules, element whitelists — which is what you want for design-to-page work at volume.
Any builder NibWP integrates: Bricks, EtchWP, Elementor, Kadence, Breakdance, Divi, GeneratePress and the block editor. The skill detects the builder at run time through NibWP, so one skill covers a mixed portfolio.
Not as written — it creates drafts only, and every write goes through NibWP's approval gate. Publishing is a separate, human step.
It reads tokens and global classes before building and is instructed never to invent class names or write inline styles. With a Pro Skill installed, the server also validates output against those rules before anything is written.
The NibWP connection does — nibwp agent add cursor writes it. Skill discovery differs per client; in clients without Claude-style skills, paste the SKILL.md body as a rules file or project instruction and the procedure is the same.
Snapshot first with nibwp snapshot create, and restore with nibwp snapshot restore if needed. Drafts can also simply be trashed; the audit log shows exactly what was written.