Why the statics fall off: review of the CHL, Wonder and RAW threads (2026-09-23 → 09-24)
Read-only review. No images generated, no Meta or Shopify changes, no skill edits. Author: Claude, AdMaker thread, 2026-09-24. The ratings are my own judgement from viewing every ad; they are not blind-judge scores or Meta results.
Update 2026-09-24 22:40Z: the fix is built. The proof ads are not generated yet. - Skill:
make-printing-format-staticsis rewritten around one verified printing source ad per concept. CONCEPT is the only per-concept prompt section. The furniture follows the source, and lessons stay scoped. - Gate:tools/gate_concept_sources.pyis calibrated on all 24 past batches (gate-calibration.txt). It passes every round that was fully built from source ads and fails every collapsed one. - Ledgers: each brand has a ledger of the source ads it has already used. - Proof run: 3 concepts per brand, each built A and B, from 9 new sources (proof-plan/PROOF-PLAN.md, proof-plan/proof-sources.jpg). - Proof run done (2026-09-25 00:05Z): 18 ads across Wonder, CHL and RAW, each concept built from its own verified printing ad, A and B, all gates passing. Board: https://vps-327b7201.vps.ovh.us/ADS/source-locked-2026-09-24/
Ratings
| what | rating | one line |
|---|---|---|
| Early work: origin thread r1–r4, Wonder v56, RAW r6 | 7–7.5 / 10 | Each ad has its own idea, scene and layout. Built from one printing ad per concept. |
| Latest work: CHL r4–r8 | 5–6 / 10 | Each ad looks clean on its own, but the set is one template. |
| Latest work: Wonder v57–v62 | 3–5.5 / 10 | Photo-grid collages with the same furniture. v61 is literally one layout ×20. |
| Wonder v63 (3 ads, today) | 7 / 10 | Recovered by going back to one source ad per concept. |
find-printing-ads skill |
7 / 10 | The research method is sound, but it hands off words, not designs. |
make-printing-format-statics skill |
4 / 10 | Good product-fidelity hygiene, no creative method, and rules pile up on every round. |
| The system as a sellable service today | 4 / 10 | The decline is built into the pipeline and will repeat for every client. |
Root cause in one sentence: the pipeline learns by adding rules, and it applies every rule to every ad. After enough rounds, the only layout that satisfies all the rules is a single one:
- headline on top
- product at lower right
- offer and stars at lower left
- one tested line
The early rounds were good because each concept was hand-built from one specific printing ad's design. The later rounds replaced "build it like this ad" with "obey these 40 rules". They generated prompts from shared blocks by script, and they iterated toward a judge's score.
What I looked at
The four Claude threads, with operator messages and agent replies read end to end:
| thread | session | span | ads |
|---|---|---|---|
| Origin ("going back and forth on ads…"), where the two skills were built | 378c3d0e |
09-23 05:36 → 09-24 07:08 | 56 (r1–r4, all three brands, A+B) |
| 🧲 RAW Chemistry — AdMaker | d8e91e71 |
09-23 20:06 → 09-24 07:51 | 39 (R17–R36, A+B) |
| 💊 CHL — AdMaker | c3dd73a9 |
09-23 17:42 → 09-24 20:50 | 72 (C7–C68) |
| 🌿 Wonder Serum — AdMaker | ff89de1c |
09-23 20:06 → 09-24 21:36 | 153 (W7–W56, P/X pairs, V1–V3) |
The Meta thread (1b5fe995) supplied your Wonder critique and the fix that added today's two HARD RULE sections.
I viewed all 320 ads round by round in sheets/ (numbered in date order). I also read:
- both skills, including the backup taken before today's edit
- the prompts and prompt-generator scripts behind each round
- the owner-feedback files, the Wonder craft teardown and the pipeline write-up
Round by round
| round | when | ads | rating | what it looks like |
|---|---|---|---|---|
| Origin r1–r2 | 09-23 am | 36 | 7.5 | Split bedroom, native tweet, designer-vs-RAW, fridge whiteboard, days-since counter, Google autocomplete, toddler "yeller", iMessage. Every concept has a different camera, palette and structure. The shared part is only the brand footer. |
| Origin r3–r4 (RAW) | 09-23 | 20 | 7.5 | Silhouette hero, guarantee seal, same-box/condoms, casting call, NOT VIAGRA pills, POV hold. Still distinct. |
| RAW r5 | 09-24 00:04 | 19 | 6.5 | Varied scenes. The offer lockup is fixed along the bottom edge and a red roundel repeats. You said the apology and comparison ads were better. |
| RAW r6 | 09-24 00:52 | 20 | 7 | PR statement, newspaper notice, twins, split, shirts. The best of the RAW thread. Same offer furniture. |
| CHL r3 (C7–C16) | 09-23 18:56 | 20 | 6.5 | Varied formats; route A type was weak ("all the Bs are better"). C13-B was your favourite. |
| CHL r4 (C17–C26) | 09-23 19:06 | 10 | 5 | "Each ad follows the C13-B pattern" (agent's words). The same layout 10 times, with iridescent/neon glow on all of them. A route dropped. |
| CHL r5 (C27–C36) | 09-23 22:54 | 10 | 6 | AG1/IM8 realism with more varied devices. The CTA pill and stars line repeat. |
| CHL r6–r7 (C37–C56) | 09-23 23:35 → 09-24 00:19 | 20 | 6 | Clean realistic photos, but the same skeleton on all 20: bottle at lower right, CTA at lower left, stars under it, and the same tired-woman-hand-on-face pose. You liked them individually; as a set they are a template. |
| CHL r8 (C57–C68) | 09-24 07:42 | 12 | 5 | The most templated CHL round. 11 of 12 carry the identical ✗ FOLIC ACID / ✓ L-METHYLFOLATE module, navy-and-coral type and offer block. You replaced its three picks with C1-B, C24 and C41, two of them from earlier rounds. |
| Wonder v56 (W7–W16) | 09-23 23:03 | 10 | 7 | One-pass progressions, each with its own palette and grid. You called them "great before-and-afters". |
| Wonder v57 (W17–W26 ×2) | 09-24 05:00–05:40 | 40 | 4.5 | Photo tiles on a page with a big $14. One skeleton; round 2 re-ran the same 10. |
| Wonder v58 (W27–W36) | 09-24 06:20 | 20 | 4.5 | The same skeleton, brighter. Duplicate poses between before and after. |
| Wonder v59 (W37–W46) | 09-24 08:00 | 20 | 5.5 | Better ideas (doorbell, chemo text, wedding prints). The footer is identical on all 20. |
| Wonder v60 (W47–W56) | 09-24 16:30 | 20 | 5 | Obvi's system copied on purpose: roundel plus spec row on all 20. Claim-led, not pain-first. |
| Wonder v61 (P pairs) | 09-24 19:50 | 20 | 3 | Judge coach notes applied to all 10: one layout, 20 times. Rejected. |
| Wonder v62 (X pairs) | 09-24 20:46 | 20 | 4 | Layouts varied, but it reused the same women and poses and the same tiny furniture. Rejected as "genuinely visually awful". |
| Wonder v63 (V1–V3) | 09-24 21:31 | 3 | 7 | Sticky notes on a mirror, They said/I said, camera roll. Built from three different printing ads. V2 sits very close to the GLOV layout it came from. |
What I measured
For every round I compared each concept's prompt with every other concept's prompt. The measure is the share of
6-word phrases they have in common, where 0 means every prompt is unique. I also re-ran the layout-similarity score
from tools/gate_distinct_layouts.py on the finished ads. Script: tools/metrics.py. Data:
prompt-and-layout-metrics.json.
"Layout-text overlap" is the same measure after deleting the text any prompt is allowed to share: the product-identity
paragraph, the size line and the realism block. What remains is the concept's own scene, layout, type and offer
instructions (tools/metrics2.py).
| round | own source ad drives the layout? | avg prompt words | prompt overlap | layout-text overlap | layout gate median |
|---|---|---|---|---|---|
| Origin r1–r4 (all brands) | yes, every concept | 214–371 | 0.00–0.22 | 0.000–0.009 | 0.55–0.70 |
| RAW r5 / r6 | yes, every concept | 306–335 | 0.06–0.09 | 0.009–0.013 | 0.60–0.62 |
| CHL r3 | yes ("reference for its … layout") | 300 | 0.24 | 0.003 | 0.61 |
| CHL r4 | "loose reference", layout written the same | 454 | 0.46 | 0.25 | 0.62 |
| CHL r5 / r6 / r7 | "loose reference" | 553–615 | 0.41–0.56 | 0.18–0.27 | 0.68–0.72 |
| CHL r8 | "copy nothing from it" (34/34 prompts) | 630 | 0.58 | 0.33 | 0.68 (passed) |
| Wonder v56 | yes, every concept | 641 | 0.45 | 0.26 | 0.64 |
| Wonder v57 / v58 | no, 0 of 120 jobs | 1,084–1,151 | 0.37–0.54 | 0.14–0.42 | 0.68–0.81 |
| Wonder v59 / v60 | no | 516–721 | 0.42–0.46 | 0.28–0.29 | 0.56–0.75 |
| Wonder v61 | no | 882 | 0.65 | 0.56 | 0.88 |
| Wonder v62 | no | 872 | 0.48 | 0.16 | 0.68 (passed) |
| Wonder v63 | yes, every concept | 770 | 0.28 | 0.18* | 0.77 |
* Wonder v56 and v63 still read 0.18–0.26 even though they looked good. Their shared identity and people-realism paragraphs are hard-wrapped over many lines, and my filter only removes the first line of each. I checked v63 by hand: every sentence its prompts share is product identity or "the people must not look AI-generated". So this measure cleanly separates the early, RAW and CHL-r3 rounds (≤0.013) from the CHL template rounds (0.18–0.33), but it does not separate Wonder's good rounds from its bad ones. For Wonder, the separator is the source ad.
What the numbers show:
-
The strongest predictor is the source ad. Every round where each concept was built from its own printing ad looks varied and designed:
- origin r1–r4
- all six RAW rounds
- CHL r3
- Wonder v56 and v63
Every round that weakened or dropped the source ad collapsed into a template:
- CHL r4–r8
- Wonder v57–v62
RAW held up best because it never dropped the source ad.
-
Prompts grew two to three times longer, and most of each prompt became copy-paste. In every early and RAW round, the concept's own instructions were unique (layout-text overlap ≤0.013). In the CHL template rounds, 0.18–0.33 of those instructions were the same across concepts. In the Wonder script rounds it was 0.14–0.56. In CHL r6–r8, 65–72% of each prompt was the same sentences, and even the layout sentence repeated word for word. From CHL r8: "Top: huge heavy dark navy condensed capitals … Bottom left: very large bold deep coral FIRST BOTTLE FREE → and under it ★★★★★ 2,600 five-star reviews."
-
Shared text is fine when it covers identity and safety, harmful when it covers layout.
-
Wonder v56 and v63 also shared a lot of text. That text covered product identity, realism and type safety, and the layout came from each concept's attached competitor ad. Both look good.
-
From v57 on, the shared blocks decided the layout, the offer size and the proof and mechanism lines, and no competitor ad was attached.
-
-
The layout gate added today cannot catch this. It scores CHL r8 at 0.68 and v62 at 0.68, and both pass the 0.78 limit, yet both are visibly one template. The gate compares where pixels sit. It does not see the same furniture, the same type kit or the same pose moved around.
Why it fell off, in order of impact
-
The source ad stopped driving the design. In r1–r4, Wonder v56 and v63, every concept was one specific printing ad attached to the generation as its layout. Those are all the good rounds. Then the instruction weakened:
- Round 1: "format reference (split photo with BEFORE/AFTER labels under a bold headline)".
- CHL r4–r7: "loose reference".
- CHL r8: "copy nothing from it … loose reference for layout rhythm", on all 34 prompts.
- Wonder v57–v62: no competitor ad was attached to any of the 120 generation jobs, and none of the 143 prompts mentions one.
Research kept happening, but it no longer reached the pixels.
-
Prompts were built from shared blocks by script. Wonder had 7
make_prompts*.pygenerators and 6 typesetters (layout_a*.py,layout_pairs.py,layout_x.py). Each generator combined HEAD, REAL and TAIL blocks with fixedPROOFandMECHstrings. That is a template engine by construction. CHL did the same by hand with copy-pasted paragraphs. The skill already said "one shared prompt block = one picture N times", but nothing enforced it. -
One liked ad became the rule for all.
- C13-B became the layout for all of CHL r4.
- The v56 week grid became v57–v62.
- The judge's coach notes became v61 ×10.
- "All the Bs are better" became dropping route A.
Praise for one ad should become one concept family to test, not a law for the batch.
-
Research averages became universal rules. The Wonder craft teardown was excellent research: 50 competitor ads, measured to a 5% grid. But it ended as "23 rules for a 9+ Wonder static" plus a realism block marked "paste verbatim". Winning ads are distinctive one at a time. Their average is generic, and forcing every ad to hit the median gives you median ads.
-
The loop optimised toward a judge. "9+ only" led to four or five judge rounds per brand, each pulling every ad toward the judge's taste. The judges are weak predictors:
- RAW blind judges agreed at only 0.34 and ranked GODA5H, your proven winner, #438 of 584.
- The judges scored Obvi's 246–273-day winners 5.5–6.9.
Even the better survival-trained judge (0.75 on 36 held-out ads) produced v61, the worst round, once it was used as a coach. Scores also misled. RAW r1–r6 board scores were "pre-spend producer judgment" that crept from 8.6 to 9.1. All of CHL r7 carried an identical typed-in 8.6.
-
Rules pile up and never expire.
make-printing-format-staticsis now:- 3,159 words, with 670 of them added in the last two hours
- 9 "Lessons from round N" logs
- about 80 never/must/always/no directives
Almost every rule is a prohibition, and each new session reads all of them as law. The design space shrinks every round.
-
Volume went up. The origin thread made 3–5 concepts per brand per round with a hand-written prompt for each. The Wonder thread made 153 ads in about 22 hours, which is only possible with scripts.
-
Route A became a caption layer. Type was set last into the same four zones, and the plate prompt told the model to keep those zones empty. The Wonder agent's own diagnosis: "I built pages as slots." The craft that makes set type look designed (type on real surfaces, type behind the subject using masks) lives in the carousel skill, not in this one.
What is working (keep)
-
Product fidelity. References reach
image_genand labels are checked at 100%. Bottles are right in nearly every ad across all 320. -
Hooks. They were not what fell off. Pain-first lines stayed strong in every round, and the Wonder teardown reached the same conclusion: "the losses are in the visual, the offer and the result, not the words."
-
Research. The GetHookd harvest, the durability rule (30+ days live, launched in the last 100 days, top by impressions) and re-checking "active" on the day of the brief.
-
One printing ad per concept. This is the mechanism behind every good round.
- Side-by-side A/B. It is useful for learning. One-pass (B) is currently the stronger designer.
- The trained survival judge. Useful as a floor or tie-breaker, never as a target.
The two skills
find-printing-ads — 7/10. Strong:
- the definition of "printing"
- the three lanes: adjacent brands, direct competitors, industry-wide by format
- the tooling
- verification before use
- "look at the pixels, not the caption"
- the buyer-evidence ladder
Gaps:
-
It hands off words (the hook bank), not designs. Layout is only one column in §4, and nothing requires each concept to carry its source ad's design forward.
-
It keeps no record of formats already used, so later rounds re-mine the same favourites instead of pulling new ones.
- It gives no warning that category averages must not become rules for every ad.
make-printing-format-statics — 4/10. Strong:
- reference-conditioned generation
- label and text checks at 100%
- known model failures such as aspect drift, safety-filter staging and capsule scale
- the review-board workflow
Gaps:
-
No creative method. There is no step where each concept gets its art direction from its source (grid, type voice, colour, where the offer and proof live and what form they take).
-
No plan for variety across a batch, and no rule against scripted prompts or typesetters.
- Mostly an incident log. Brand-specific lessons (RAW safety filter, CHL capsules) sit in the shared method.
- It fights itself. The two new HARD RULE sections ban templates, but the rest of the file still prescribes one composition: pain first and largest, then offer, then one trust signal, plus a fixed copy budget, hook size and keep-clear box.
The fix (proposal, not implemented; needs your go)
-
One printing ad per concept, always attached. The prompt names what to inherit: the layout grid, where the type goes, and the form of the offer and proof (roundel, sticker, note, price tag, review card). Only the brand, people, words and colours change. No two concepts in a batch share a source or a layout type.
-
Hand-write each prompt. Shared text may cover only product identity, exact facts and strings, and safety. It never covers layout, type, offer or proof treatment. Ban scripts that loop a prompt or typesetter over concepts. Write every prompt in labelled sections (IDENTITY / REALISM / SAFETY / CONCEPT), then add a gate that checks two things:
- every concept has its own attached source ad, named as its layout
- the CONCEPT sections overlap less than about 0.05 between concepts (every early and RAW round scored ≤0.013; the collapsed rounds scored 0.14–0.56)
Keep the pixel gate as a third check.
-
Separate invariants from style. Invariants apply everywhere: product identity, prices and facts as sold, no edits, a legibility floor and the brand locks. Style lessons apply to their own concept family only and get tested on Meta, never pasted into every prompt.
-
Let the furniture follow the source. The offer and proof take whatever form the source ad uses. No offer-plus- proof treatment appears more than twice in a batch.
-
Show 3 before 10, and reset from research. Cap a round at 10 new concepts. When a round disappoints, pull new printing ads instead of iterating the same concepts toward a judge. Keep a per-brand ledger of formats already used.
-
Judges are a floor, not a target. Use them for pass/fail craft checks (label, text, legibility) and as a tie-breaker. No "9+" loops, and never show producer-typed numbers as scores.
-
Rebuild the skill as a short method (≤1,000 words). Step one is art direction per concept from its source. Technical gotchas move to a references file, brand lessons move to each brand's NOTES, and the round logs leave the skill.
-
Route A must earn its place. It stays, per your rule, but as integrated typography: type in the scene, on surfaces or behind the subject using masks. It must not be a caption strip. If A can only produce captions for a concept, it ships marked FAIL next to B.
What this means for selling it
The version that survives many rounds and many clients has to carry no style forward. Only facts, invariants and a used-formats ledger carry from batch to batch, and each batch takes its style from printing ads harvested that week. That is also the pitch: "every ad is built from an ad that is printing right now". Without that change, any client account ends up where Wonder is now, one template repeated, within about three rounds.
Evidence
decay-timeline.jpg: four representative ads per phase, with my rating and the prompt-overlap score.sheets/01…14*.jpg: every ad from all 320, in date order.-
prompt-and-layout-metrics.json,layout-text-overlap.json,tools/metrics.py,tools/metrics2.py,tools/sheet.py,tools/timeline.py: reproducible. -
Operator and agent turns are quoted from the four session transcripts listed above. Source folders are the round paths named in the boards under
docs/research/winning-ads-pipeline-2026-09-23/board*.


















