From wp-agent-skills
Create a new WordPress page by assembling existing block patterns, filling in real content, and publishing or saving as draft. Use when the user wants to add a new page to the site — home, about, portfolio, contact, projects, or any custom page. Takes a title and content brief; outputs a complete, ready-to-review page. Does not create generic Lorem Ipsum — all content is specific to the brief.
npx claudepluginhub antonysilverhand/wp-agent-skills --plugin wp-agent-skillsThis skill is limited to using the following tools:
Assemble a new page from existing block patterns and real content. Publish or save as draft.
Acquire memory dumps from live systems/VMs and analyze with Volatility 3 for processes, networks, DLLs, injections in incident response or malware hunts.
Provides x86-64/ARM disassembly patterns, calling conventions, control flow recognition for static analysis of executables and compiled binaries.
Identifies anti-debugging checks like IsDebuggerPresent, NtQueryInformationProcess in Windows binaries; suggests bypasses via patches/hooks/scripts for malware analysis, CTFs, authorized RE.
Assemble a new page from existing block patterns and real content. Publish or save as draft.
PAGE_TITLE — the page name (e.g., "About", "Portfolio", "Contact")CONTENT_BRIEF — what this page is about and what it should containSTATUS — draft (default) or publishUse two subagents in parallel before assembly:
Merge the results (which patterns exist + what content to put in them), then assemble. This saves a full round-trip of reading → thinking → writing.
curl -s "$WP_SITE_URL/wp-json/wp/v2/block-patterns/patterns" \
| jq '[.[] | select(.categories[] | contains("lavon-patterns")) | .slug]'
Only use patterns that exist. If a needed pattern is missing, run wp-create-pattern first.
Pick a pattern sequence based on the page type. Default recipes:
| Page | Pattern sequence |
|---|---|
| Home | nav-sticky → hero-cinematic → about-split → gallery-masonry → quote-feature → contact-minimal |
| About | nav-sticky → hero-cinematic → about-split → timeline-scroll → quote-feature |
| Portfolio | nav-sticky → hero-cinematic → gallery-masonry → contact-minimal |
| Contact | nav-sticky → about-split → contact-minimal |
For custom pages: think narrative arc — hook → story → proof → connection. Only include a pattern if the content brief gives you real material for it.
Replace every placeholder. No Lorem Ipsum — use the brief.
IMAGE:<descriptive caption> as a placeholder. Example: IMAGE:portrait outdoors in warm afternoon light. These get resolved by wp-add-media.Combine selected patterns in order. Substitute real content into each pattern's placeholders.
Wrap in template parts if the nav is a separate template part:
<!-- wp:template-part {"slug":"header","theme":"lavon"} /-->
curl -s -X POST "$WP_SITE_URL/wp-json/wp/v2/pages" \
-H "Authorization: Basic $(echo -n "$WP_USER:$WP_APP_PASSWORD" | base64)" \
-H "Content-Type: application/json" \
-d "{\"title\": \"$PAGE_TITLE\", \"content\": \"<markup>\", \"status\": \"$STATUS\"}"
<!-- wp:heading -->..<!-- /wp:heading -->). Raw HTML without block comments renders fine on the frontend but is uneditable in the block editor.base64 encoding of credentials differs across platforms. On macOS, use base64 without -w 0; on Linux, add -w 0 to prevent line-wrapping that breaks the header.status: "publish" is irreversible without WP Admin access. Default to draft and ask before publishing.IMAGE: placeholders needing media (pass to wp-add-media)