CommunityImagegithub.com

umairmsm/wp-content

Stage 4 of a wp-site-kit WordPress build - real copy and photos. Content truth (facts only from the owner), AI drafts and owner approval, claims audits, banned words and fake proof, legal pages, the photo pipeline (dedupe, real-only, EXIF strip, WebP sizes, alt text, AI image register), and recorded content changes. Use for "write the copy", "add photos", "the owner sent new photos", "check for duplicates", "update prices or text on the live site", "legal pages".

What is wp-content?

wp-content is a Claude Code agent skill that stage 4 of a wp-site-kit WordPress build - real copy and photos. Content truth (facts only from the owner), AI drafts and owner approval, claims audits, banned words and fake proof, legal pages, the photo pipeline (dedupe, real-only, EXIF strip, WebP sizes, alt text, AI image register), and recorded content changes. Use for "write the copy", "add photos", "the owner sent new photos", "check for duplicates", "update prices or text on the live site", "legal pages".

Works with~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/umairmsm/wp-site-kit/tree/HEAD/skills/wp-content

Installed? Explore more Image skills: steipete/songsee, affaan-m/frontend-design, mattpocock/improve-codebase-architecture · View all 6 →

Ask in your favorite AI

Open a new chat with this agent skill pre-loaded.

Documentation

Stage 4: Content

Goal: every public page carries text the owner approved and photos that are real, legal and light. Nothing on the site claims what the business can't prove.

Copy steps

  1. Inventory: list each page and item with what it needs (text, facts, photos) in docs/data/content-plan.md.
  2. Facts first:
    • Facts (prices, inclusions, times, policies, safety notes) come from the owner via docs/BRIEF.md or a data file in docs/data/<type>/.
    • Missing → PENDING-<who> in a flags list (docs/data/<type>/_SUMMARY.md). Never invent a fact.
  3. Draft: AI may draft, but the draft is marked as a draft (a <prefix>_copy_status meta, or a list in the content plan) until the owner approves it.
  4. Claims audit before anything ships (references/copy-and-claims.md):
    • every claim is checked against its source;
    • banned words are removed;
    • numbers, awards and reviews need proof. If the claims-auditor agent is installed, run it.
  5. Owner review on staging, in batches. Send short messages, each with one question that can be answered with yes or no. Long questionnaires go unanswered for weeks.
  6. Legal pages: privacy notice (with the enquiry retention period), terms or booking policy (only the owner's wording), cookie notice if any tracking needs consent, and an imprint where the law requires one (Germany, Austria).
  7. Changes to live content go through docs/data/content-changes/*.json and scripts/apply-content-change.sh (stage wp-ship). Never through hand edits on live.

Photo steps (details: references/photo-library.md)

  1. Keep the owner's originals in a backed-up folder outside git.
  2. python3 -I scripts/photos/photos.py review <folder> → a review CSV: duplicates (perceptual hash), photos already in the library, small photos.
  3. Look at every candidate yourself, or have a cheaper model do it with the CSV. Decide IMPORT, HOLD-people (no consent yet), HOLD-licence (stock or unknown), or SKIP.
  4. Write the manifest (group,file,key,alt). Run the import with --dry-run, then for real. Paste the printed lines into photo-library.php.
  5. Templates use <prefix>_photo( 'key' ). Use at most two photos per section, and only the LCP image loads eagerly.

Gate (tick in SITE_STATUS.md)

  • Every public page has owner-approved copy (dates)
  • Real photos imported with alt text; AI images logged in AI_IMAGES.md
  • Privacy notice, terms and policies published (owner wording)
  • No PENDING- facts and no placeholder text on public pages

Never

  • Fake or imported review counts, star ratings, "as seen in" badges, "12,000+ happy customers" without proof. (We removed a made-up number like that, and made-up review counts on an old site.)
  • AI images of a named room, place, product or person, or anything that says "this is what you get".
  • Photos of people without their consent. Stock photos without a licence you can show.
  • A price or a policy sentence typed into a template or a translation.

Individual skills in this repo

This repo contains 7 individual skills — each has its own dedicated page.

umairmsm/wp-build

Stage 3 of a wp-site-kit WordPress build - local DDEV site, the core must-use plugin (modules), the presentation-only child theme with skins, the content model (custom post types, meta, WP_Query, render functions), and the enquiry pipeline that saves leads before forwarding. Use when building or changing features, templates, content types, forms or plugin modules on a wp-site-kit site.

umairmsm/wp-design

Stage 2 of a wp-site-kit WordPress build - design direction, a static HTML/CSS prototype with design tokens, owner sign-off with screenshots, self-hosted fonts, and porting the approved look into a swappable WordPress skin. Use for "design the site", "new look", "redesign", "change colours or fonts", "make a new skin", "port the prototype to WordPress".

umairmsm/wp-kickoff

Stage 1 of a wp-site-kit WordPress build. Use when starting a new WordPress website or taking over or rebuilding an existing one - discovery brief, stack decision, creating the project with bin/wp-site-new, locked decisions, private repo and credentials inventory. Triggers - "new WordPress site", "start a client website", "rebuild this site", "take over this WordPress site".

umairmsm/wp-operate

Stage 8 of a wp-site-kit WordPress build and everything after launch - backups with an off-machine copy, restore drills, the disaster-recovery runbook, credentials inventory, update policy, alerts, and working from more than one machine (bridge file, workstation doctor, encrypted state bundle, rescuing unpushed work). Use for "backup", "restore", "move to a new machine/server", "update plugins", "what if the server dies", "work from the cloud box", "set up a second machine".

umairmsm/wp-seo

Stage 5 of a wp-site-kit WordPress build - titles and descriptions, canonical URLs, one schema owner and JSON-LD, sitemaps, robots.txt and llms.txt, AI crawler access, redirects (301 vs 302), legacy URL maps, Search Console, and adding languages one pilot at a time with Polylang (hreflang, .po/.mo strings, native review). Use for "SEO", "schema", "redirect", "old URLs", "translate the site", "add French/Spanish", "hreflang", "canonical".

umairmsm/wp-ship

Stage 7 of a wp-site-kit WordPress build - staging behind Cloudflare Access, server hardening, safe deploys from a commit (scripts/deploy-safe.sh), database content changes, the launch audit, DNS cutover without breaking a running business, and the first week after launch. Use for "deploy", "set up staging", "go live", "launch", "cutover", "move DNS", "harden the server".

umairmsm/wp-site

Start here for any WordPress website built with wp-site-kit, from an empty folder to a live site. Use when someone says "build a WordPress site", "new website for a client", "where are we on the site", "what is next before launch", or asks to continue a site project. Finds the current stage from SITE_STATUS.md, applies the hard rules, and hands over to the right stage skill.

Related Skills