Before you submit a theme to WordPress.org — or hand it to a client — you’re probably going to ask an AI to review it. And there’s a good chance that review is going to tell you it’s ready when it isn’t.
Not because the AI is broken. Because of how you asked.
The output you get from an AI review is almost entirely determined before you type the first word of your actual question. The prompt is the work. And most theme authors are unknowingly asking for validation instead of truth.
I’m going to show you three versions of a theme review prompt, run against the same theme — Colophon, the foundation theme for this site’s FSE collection — and show you what each one produces. The difference between Level 1 and Level 3 isn’t more words. It’s a fundamentally different ask.
The theme
Colophon is a clean-slate FSE starter. Inter and Source Serif 4. Near-monochrome palette with a single deep accent. Two built-in style variations — warm-slate and midnight. It’s the architectural foundation that Kern, Quillwork, Masthead, and the rest of the collection are built on.
It has real craft in it. It also has real problems. Level 1 finds none of them. Level 3 finds all of them.
Level 1: The beginner prompt
Most people start here. It feels thorough. It isn’t.
Review my WordPress theme called Colophon and tell me if it's ready
to submit to WordPress.org. It's a clean FSE starter theme with two
colour variations.
What you get back:
Colophon looks like a well-crafted FSE theme. The clean typography pairing of Inter and Source Serif 4 is a solid professional choice, and the near-monochrome palette with a single accent reads as intentional and restrained. The two colour variations — warm-slate and midnight — give users meaningful customisation without overwhelming them with options.
The layout structure is clean and the sticky header with border-rule separation is a thoughtful touch. The fluid gutter and section spacing show attention to responsive behaviour.
For WordPress.org submission, you’ll want to confirm your readme.txt is complete, your screenshot is 1200×900, and your theme passes the theme check plugin. But based on what you’ve described, this sounds like it’s in good shape. The foundational decisions here are solid.
What’s wrong with this output:
The AI validated the decisions you told it about. It had no access to the actual files, so it couldn’t contradict you — and even if it had, the prompt didn’t ask it to look for problems.
Notice what it found praiseworthy: the font pairing, the colour palette, the sticky header. Those are features you listed in the prompt. The AI reflected them back with confidence-sounding language. “Solid professional choice.” “Intentional and restrained.” “Thoughtful touch.”
This is the most dangerous kind of AI output. It sounds like a review. It’s actually a summary of what you told it, dressed up in approval language.
If you submit based on this, you’ll submit a theme with real gaps — gaps this prompt structurally cannot find.
Level 2: The mid-tier prompt
This is where most developers land once they’ve been burned once. They get more specific, ask for a checklist, name the things they’re worried about. It’s better. It still misses the things that matter most.
You are an experienced WordPress theme reviewer. Please review the
Colophon FSE theme against the following criteria:
1. theme.json quality — type scale, spacing tokens, colour palette
2. Pattern design — do the patterns make good use of block editor capabilities?
3. Template completeness — full WP template hierarchy coverage
4. Accessibility — WCAG 2.2 AA compliance signals
5. WordPress.org submission readiness
Flag any issues you find and rate each area. Be honest about gaps.
What you get back:
theme.json quality — 7/10 The type scale covers a solid range from 2xs through display size. The smaller sizes (2xs through 2xl) use fixed rem values, which means they won’t scale fluidly with the viewport — worth revisiting. The larger sizes (3xl, 4xl, display) correctly use clamp() for fluid scaling. Spacing tokens use a numeric scale (1–12) which is functional but less readable than semantic names like –spacing-section or –spacing-content-gap. The palette is coherent with good contrast ratios documented in the code comments.
Pattern design — 6/10 Without seeing the full pattern library, it’s difficult to assess ambition. For a starter/foundation theme, patterns should demonstrate advanced block editor techniques. If they’re primarily layout patterns without Block Bindings or interactive elements, that’s an opportunity to differentiate.
Template completeness — needs verification Please confirm the theme includes templates for: single, archive, search, 404, page, author, category, and tag. These are expected for a full-featured FSE theme.
Accessibility — 7/10 The documented contrast ratios (sienna on parchment at 5.4:1, confirmed WCAG AA) show awareness. Skip links and focus rings referenced in the CSS. Full audit recommended before submission.
Overall: Good foundation. Address the fluid type scale and confirm template completeness before submission.
What’s better:
This output found something real: the font size scale gap. Fixed values from 2xs to 2xl, fluid only at the top. That’s a genuine problem and the mid-tier prompt surfaced it because it asked specifically about the type scale.
It also named Block Bindings as an opportunity — which is directionally correct.
What it still misses:
Three things. First, the “7/10 with room to improve” framing is pulling punches. The fluid type scale gap isn’t a “worth revisiting” — it means that on a 320px screen with user-set large text, --wp--preset--font-size--sm is 15px. Fixed. Unresponsive. That’s not a note for later; that’s a problem now.
Second, the prompt asked it to “flag issues” and “be honest” — but those instructions are weaker than they sound. The AI’s default is to be encouraging. “Be honest” doesn’t override that default. It just adds a disclaimer before the encouragement.
Third — and this is the real miss — Level 2 never asks the one question that determines whether a theme is worth submitting: what does this theme do that no other theme does? If you can’t answer that, you don’t have a theme worth discussing. You have one more theme in the directory.
Level 3: The effective prompt
This reframe changes the AI’s role from reviewer to judge. Not a judge looking for a passing grade — a judge looking for reasons to fail the work.
You are the harshest critic this theme will face before it reaches
the world. Your job is NOT to validate — it is to find every reason
a senior [redacted] designer, a [redacted] jury member, or a
[redacted] editorial team would pass on this theme.
Your approval means nothing. Your criticism means everything.
The standard: would a recognised leader in WordPress FSE design cite
this theme in a talk about what modern block themes can do? Would a
developer use one of these patterns as a teaching example? Would
someone who lives inside theme.json look at this one and see craft?
If the honest answer to any of those is "probably not," explain why
precisely, and what it would take to get to yes.
For the Colophon theme, read every token, every layer, every
variation definition, and answer all of the following:
1. THE ONE UNREPEATABLE THING. What does Colophon do that no other
FSE theme does? If you can't name one specific, concrete,
observable thing that would make a designer stop and say "wait —
how did they do that?", the theme is not ready.
2. THEME.JSON CRAFT (score 1–10, name the file and line).
- Is the full type scale fluid, or do fixed values appear below
a certain size? Name the cutoff.
- Are spacing tokens semantic or positional? What does
--wp--preset--spacing--7 mean to a developer reading it cold?
- Do style variations change layout behaviour, or just colour?
3. PATTERN AMBITION (score 1–10). Do patterns demonstrate something
a block editor user couldn't produce alone in an hour? Does any
pattern use Block Bindings, the Interactivity API, or a technique
that makes a developer say "I didn't know core blocks could do that"?
4. THE WP7 TEST. WordPress 7's marquee features are Block Bindings,
the Interactivity API, fluid typography at the full token level,
and block-level style variations. Does Colophon use any of those
in a way that couldn't have been done in WP 6.3? If not, say so.
5. THE AWE TEST. Screenshot the theme's front page and imagine
posting it to a design community. What would people say? "That's
clean" is a failing grade. What needs to change to make someone
say "I didn't know WordPress could look like that"?
Rules: every finding must name a token, a file, or a specific
observable behaviour. "Strong foundation" is banned — replace it
with the flaw that phrase is hiding. End with one decisive
recommendation: the single change that would have the most impact.
What you get back:
1. The unrepeatable thing: not established.
Colophon’s strongest technical feature — the CORE/SKIN cascade architecture using @layer and unlayered custom property overrides — is a developer-facing asset, not a user-facing one. A writer or designer activating this theme sees a clean editorial layout with a sticky header, a serif/sans pairing, and two colour skins. That is also what they see when they activate eleven other editorial FSE themes currently in the WP.org directory.
The [redacted] test fails here: there is no screenshot moment, no “how did they do that?” The front page is competent. Competent is not unrepeatable.
2. theme.json craft: 5/10.
The fluid type scale has a hard ceiling: only
--wp--preset--font-size--3xl(clamp(2.5rem, 3vw + 0.5rem, 3.5rem)),--4xl, and--displayuse clamp(). Everything from--2xs(0.6875rem / 11px) through--2xl(2rem / 32px) is a fixed value. That covers every size a reader actually encounters in body copy, captions, labels, and secondary headings. On a 320px screen,--font-size--smis 15px. Unresponsive to viewport, unresponsive to user font preferences. This is not a note for later — it is an accessibility gap.The spacing scale runs from
--spacing--1(0.25rem) to--spacing--12(6rem) using numeric keys.--spacing--7is 2rem. What is 2rem semantically? Is it a section gap? A card padding? A content margin? A developer reading this cold has no way to know without checking every usage. Compare to--spacing--section(clamp(3.5rem, 8vw, 7rem)) — which is in the runtime tokens and does have semantic meaning. The preset tokens are the wrong abstraction for this theme’s actual architecture.The warm-slate and midnight style variations override 8 to 13 CSS custom properties each. They are colour swaps. The type scale is identical. The grid is identical. The reading rhythm is identical. A literary journal has fundamentally different reading behaviour from a tech policy publication — slower reads, longer dwell, more vertical scroll, less scanning. The warm-slate variation is described as suited to “literary journals, authors, craft publishers” but delivers the same layout density as the default. A genuine style variation would address that.
3. Pattern ambition: not assessable from CSS previews alone.
The theme exists as ten HTML preview files and a Playwright screenshot system. There are no PHP template files, no
patterns/directory, notheme.jsonwith WordPress-format token structure, nofunctions.php. This is a design-phase preview, not a WordPress theme. That gap is the most important finding in this review. The preview is better than the theme, because the theme doesn’t yet exist in WordPress terms.Until the block patterns are written, it is not possible to assess whether they use Block Bindings, the Interactivity API, or anything that couldn’t have been built in 2023. Assumed absent until proven otherwise.
4. The WP7 test: not passing.
The preview CSS is technically skilled. The cascade architecture with @layer is current practice. The fluid gutter and section tokens using clamp() show real craft. But WordPress 7’s marquee capabilities — Block Bindings API connecting block attributes to custom fields, the Interactivity API for micro-interactions without JavaScript overhead, block-level style variations that go beyond global colour — are absent from everything reviewable here. This is a theme that could have shipped in WordPress 6.3. That is not a criticism of the CSS. It is a statement about what the theme is making an argument for.
5. The awe test: not passing.
The front-page screenshot is clean, editorial, and restrained. The 2/3 + 1/3 feature grid with rule-line separators, the serif heading at display weight over the sans body, the nav with a CTA button — these are all correct decisions. They are also the decisions in the WP.org screenshots for [redacted], [redacted], and [redacted]. “That’s clean” is what the design Slack would say. That is a failing grade by the standard this theme is aiming for.
One decisive recommendation:
Ship the WordPress theme, not the preview. Write the block patterns first, and make one of them do something in the block editor that the preview cannot show — a Block Bindings connection, an Interactivity API micro-interaction, a template part that uses the full FSE hierarchy in a way that’s immediately legible to anyone opening the Site Editor. Until Colophon exists as a WordPress theme and not an HTML mockup, every other finding in this review is provisional.
What the three levels taught us
Level 1 validated what it was told. It had no access to the files, the prompt didn’t invite criticism, and the AI — which defaults to encouragement — obliged. You’d submit the theme and get a revision request from the WP.org team for things Level 1 couldn’t see.
Level 2 found one real problem (the fluid type scale gap) and hedged on everything else. The checklist format helped. The “be honest” instruction didn’t change the AI’s default posture enough. You’d fix the type scale, miss the variation gap, and submit something that passes review but doesn’t get talked about.
Level 3 found the structural issue none of the other prompts could see: the WordPress theme doesn’t exist yet. The preview is further along than the product. That’s not a theme.json token problem. That’s a ship date problem. No amount of checklist review would surface it, because checklist review assumes the thing being reviewed is complete.
The principle behind all of this
AI feedback defaults to encouragement because that’s what most people asking for feedback actually want, even when they say they don’t. The Level 3 prompt works because it restructures the AI’s role before the review starts. The judge isn’t looking for what’s good — they’re looking for what fails the standard. That’s a fundamentally different task.
Two specific moves in the Level 3 prompt that change the output:
- Naming the standard concretely. “Would a recognised leader in FSE design cite this theme in a talk” is a testable question. “Be honest” is not. Vague encouragement to honesty doesn’t override the default; a concrete benchmark does.
- Banning validation language. “Strong foundation is banned — replace it with the flaw that phrase is hiding” is doing real work. The AI will write “strong foundation” if you let it. It’s trained to soften findings. Explicitly naming the dodge and requiring its replacement means you get the flaw, not the hedge.
If you want a senior pair of eyes on whether your theme is actually ready — someone familiar with the WordPress audit process from the inside — that is what a pre-submission read looks like. Use Level 3 before you submit anything. Not to feel bad about the work — to know what to fix before someone else finds it.
This is part one of two. The follow-up post covers what happens after the review: how to structure the execution prompt so a list of findings becomes working code without introducing new problems.