The Claude side needs no connectors. Codex needs an image key and Python. Google Drive is optional.
The black and orange buttons open the Codex or Claude desktop app with a setup prompt already typed in. Nothing runs until you press send.
Default after the client review: go live with what they approved, then build a new set at the next creative refresh.
If you'd rather keep some of this round's work, see parking rejected ads for a future refresh.
Δ Change log what changed and why
| Skill | Current version | Installed |
| $brand-standards (Codex) | 4.2 | 2026-09-15 |
| /creative-strategy (Claude Cowork) | 5.6.0 | 2026-09-30 |
| $meta-ad-creative-generator (Codex) | 4.7.0 | 2026-09-30 |
| drive_social_handoff | v1 out of Run 1 · v2 + production_plan: v1 out of Run 2 | 2026-09-15 |
v6.3 "Authentic photos, real design" 2026-09-30
Why. A request for less invented scenery, authentic client photos and a minimal, moody look came
back as default Arial headlines on black canvases, cutouts and repeated fades — and passed QA because the text was readable
and the photos were untouched. Three things went wrong: a scenery restriction was read as a reason to drop the designed
headline, a fallback font from a brand document became the finished treatment, and "readable and preserved" was accepted
as proof of good design. v6.3 fixes all three on both sides of the handoff, without new approval questions, blanket bans,
or layout quotas. The handoff contract (drive_social_handoff: v2 + production_plan: v1) is
unchanged — no new fields or values — so v5 and v6.x packages still validate.
/creative-strategy — v5.5.0 → v5.6.0 (Claude Cowork)
Changed
- Restrictions apply only to what they're about. Each restriction is recorded against the element it governs — the real subject, the surrounding scene, the typography, the logo, or the factual copy — with its source. "Less AI scenery", "authentic photos" or "minimal" limit the scene or subject; they don't switch off generated headline lettering or justify a plainer layout. Only an explicit ban on generated lettering or on all AI changes the type route. Section 4 gains a "Restrictions by element" line.
- Typography is classified. Every font mentioned is labeled observed styling, sourced requirement, proposed direction, or technical fallback. A fallback (Arial, a system or CSS fallback font) is never the headline treatment. Expressive editorial lettering counts without metallic or 3D effects. No font blacklist.
- Asset-led concepts. When real client work carries the ad, Keep real names the subject and the details that must survive (a tattoo's linework, the real product), Enhance/Generate say what the surroundings may become, and Must accomplish describes the result. Mood is written as light, tonal depth, framing, scale and negative space — a black background alone isn't "dramatic."
- Must accomplish is judgeable — the requested treatment, how the image carries the message, and what must survive about the protected subject, not "premium" or "scroll-stopping". Reference ads carry the specific quality or failure they show; none are invented, and a clean run can exclude past work.
- Codex's new quality check is stated in the package: one representative ad is finished and passed before a new look is repeated across a batch — inside the existing budget, with no extra approval question for you.
$meta-ad-creative-generator — v4.6.0 → v4.7.0 (Codex)
- Restrictions by element. Scenery, authenticity, minimalism or background-only requests no longer revoke the generated-headline default or excuse a simpler composition; explicit lettering or all-AI bans are honored exactly; no manufactured font conflicts.
- Typography classes. Observed website styling, sourced requirement, proposed direction, technical fallback — a font's presence in a fallback list or a missing font file never makes system type the headline. Exact-font requirements need the real font files and still get designed type.
- Asset-led production route. Keep the real photograph, enhance or generate only permitted surroundings, develop lettering separately, compose with the authentic logo; compare the protected region with the source; never redraw a protected tattoo or product to fix the design around it.
- Representative-ad calibration. Before repeating a new visual system across subjects, ratios or a batch script, Codex completes one ad and passes its visual gate — batch authorization doesn't waive it, and it adds no routine approval. A failing composition is rethought, not polished.
- Creative QA, not just technical QA. The visual gate now checks the requested treatment and integration (black fill alone isn't drama; empty space alone isn't elegance) and relevant benchmark craft. Readable text, a correct logo, preserved pixels and a clean export don't make an ad review-ready; the same standard applies to Python/HTML composition.
- Updated
SKILL.md and references/pipeline-intake.md; scripts unchanged from 4.6.0.
$brand-standards — 4.2 (Codex)
Validated: the v4.7.0 checker returns production_plan_valid on the v6.2 fixtures (planned 12 / render 9 and 4 / 4) and on an all-3-size (30 / 27) and a 1:1-carousel (22 / 19) test package; 46/46 fixture, negative and skill-text checks and the older 22/22 set pass; the generator's own suites pass (37 + 12 + 18 tests, portability OK). A written review covers the six target cases (minimal scenery with untouched tattoos, a fallback-only brand font, an exact-font or no-AI requirement, a full-batch authorization, a logo-only correct with preserved rows, and a technically valid but undramatic ad). Not tested: a live Codex render — these checks prove the rules are in place, not that the ads look better. Known: packages keep 1.1-style concept IDs; Codex maps them to A1 in the Ad Index.
v6.2 "Codex finishes the words" 2026-09-29
Why. v6 made Codex the creative director, but two loose ends were left. Codex still treated Run 2's on-image
wording as locked, so a better line meant a proposal and a round trip instead of a better ad. And Run 2 still printed the
old pixel sizes, so the package and the generator disagreed about what a finished file should be. v6.2 closes both: Codex
may improve any unlocked copy while it builds (facts, prices, dates, offer terms, quotes and disclosures stay exact, and every
change is logged in the Ad Index), and the whole package now uses the generator's dated 2026-09-27 image profiles with an
sRGB export helper. The handoff contract (drive_social_handoff: v2 + production_plan: v1) is
unchanged — no new fields, no new values — so v5, v6 and v6.1 packages still validate.
/creative-strategy — v5.4.1 → v5.5.0 (Claude Cowork)
Changed
- What's fixed and what Codex may change, in one place. Run 2 fixes the audience, objective, service, proposition, factual offer, evidence, sourced restrictions and the counted plan. Within those, Codex may change the visual metaphor, composition, lettering, background, asset treatment and any unlocked copy on a build or revise without a replacement concept. Changing the audience, proposition, product or offer is a scope change (a replace).
- Copy authority across rounds.
copy_status: approved means the facts are verified and the copy is cleared — by actual approval or the strategist's delegated authority — never that the client approved the exact words. A wording-only hold resolves under that authority; only an unresolved fact or a required client sign-off holds an artwork. A separately requested wording change still routes as a copy-only correct with old wording, new wording and the authorization basis in the change note.
- New image profiles. Section 8 now prints the v4.6.0 set: 1:1 1088×1088 → 1080×1080, 4:5 1472×1840 → 1440×1800, 9:16 1440×2560, labeled as dated internal profiles (not Meta minimums); 6% margins and the 14–65% vertical band kept; preserved artwork is never rerendered for a profile change. The package never promises Meta will show an ad unchanged.
- Creative defaults protected in the package text. Generated graphic text is the default main headline (no basic font overlays, no font steering, website-observed fonts are observed styling); supporting text may be conventional; suggested treatments are optional; there is no minimum headline length and no requirement that the words repeat the picture.
- Safeguards without new blanket rules. People stay recognizably themselves; logos are transparent with no backing box (a faithful transparent derivative may be prepared); a "real" asset can still be relit or given a new background; generic generated people follow
people_policy; nothing invents staff, customers, reviews, credentials, offers or proof.
- Renderer settings left to Codex. The package never asks for
input_fidelity, streaming, maximum quality or extra candidates; a successful API call is not a quality check.
$meta-ad-creative-generator — v4.5 → v4.6.0 (Codex)
- Copy authority. Codex may rewrite on-image headlines, supporting lines, captions, Meta headline/description and written CTAs when that makes a better ad, in any round. It preserves audience, proposition, brand voice and supported facts; never invents or strengthens claims, changes prices, dates or offer terms, alters attributed quotes or rewrites disclosures; honors sourced verbatim locks. Rewrites are logged before/after in the Ad Index and the delivered copy matches the artwork.
- Image profiles updated 2026-09-27: generation 1088×1088 / 1472×1840 / 1440×2560, posting 1080×1080 / 1440×1800 / 1440×2560 — exact ratios, no upscaling. New
scripts/export_meta_image.py writes sRGB posting files at exact size with an export receipt and no automatic crop, stretch or upscale.
- Image controls documented: new
references/api-controls.md and scripts/image_controls.py (size, quality, background, output format, source images, mask, candidates, streaming). input_fidelity is rejected for Sunburst; streaming is off by default and not live-verified; nothing is maximized automatically.
- Updated
handoff_contract.py, pipeline-intake.md, production-plan.md, portability.md, runner-notes.md; new test_image_controls.py.
$brand-standards — 4.2 (Codex)
Validated: two new fictional fixtures (a normal 3-size build with a 1:1 carousel and both a factual hold and a client-approval hold; a round-2 package with a copy-only correction, preserved siblings, a preserve-only carousel and a 3-size revise) return production_plan_valid from the v4.6.0 checker — 46/46 positive, dispatch, negative and prose checks pass; the generator's own suites pass (37 tests). Not tested: a live Codex render on a real client package. Known: the generator's docs mention A1-style concept IDs but its checker accepts only 1.1-style, so packages keep 1.1 IDs and Codex maps them to A1 in the Ad Index.
v6.1 "More control, cleaner files" 2026-09-26
Why. The 4:5-only default in v6 was too narrow — most accounts still want every size — and Run 2 set
the ad count on its own with no simple way to change it. On the Codex side, finished files came out with long, inconsistent
names that were hard to match to an ad. v6.1 puts ad count, sizes and carousels in front of you as three quick questions and
gives every finished file a short, uniform name. The handoff contract (drive_social_handoff: v2 +
production_plan: v1) is unchanged, so v5 and v6 packages still validate.
/creative-strategy — v5.2.0 → v5.4.1 (Claude Cowork)
Added
- Ad volume control. Once the service categories are shown and confirmed: "N service categories identified — 5 ads each (total)", then "Make 5 ads per category or adjust?" — Keep 5, Decrease to 3, Increase to 8, Increase to 10, or a custom mix per category. Every total is computed from the real category count. Carousels are extra; a client promise above the chosen number is flagged, and near-duplicates are never added to hit a count.
- Size question with all 3 as the default. "Produce all 3 ad sizes for each ad? (4:5, 1:1, 9:16)" · "Produce 1:1 Only?" · "Produce 4:5 Only?" · "Produce 9:16 Only?", plus your own instruction. No answer means all 3, with 4:5 as the primary.
Changed
- The questions under the slate are now in order: #1 ads per category, #2 sizes, #3 carousels. The carousel question is still asked every run; carousel cards default to 1:1, separate from the single-image sizes.
- The slate's totals line now reads categories × ads each, total ads, images, ready and on hold.
- The package's
filename_scheme now states Codex's universal naming and how Codex maps concept IDs (1.1, 2.1) to its A1/B1 ad IDs. Package IDs don't change.
Removed
- The 4:5-only default and the "All ads will be 4:5 ratio…" question; the strategist setting the ad count with no volume prompt ("allocate by need").
$meta-ad-creative-generator — v4.4 → v4.5 (Codex)
- Uniform, identifiable file names on every run:
<AdID>_<RatioCode>_<Category>.jpg — e.g. A1_45_LivingRoom.jpg, B1_916_Bedroom.jpg. Ratio codes 11, 45, 916; carousel cards add _Card01, _Card02. PNG masters keep the same name. No client names, dates, "final", or candidate numbers in the name — round and revision live in folders.
- Categories and stable ad IDs: "Categories" replaces buckets/services (older packages are still accepted). Categories are lettered A, B, C in strategy order and ads numbered A1, A2, B1; IDs are kept across revisions and never reused.
- Ratio defaults match Run 2: new single-image ads default to 1:1, 4:5 and 9:16; carousels default to 1:1. Your instruction or the package's explicit sizes always win, and a targeted fix never adds missing sizes.
- New reference:
references/naming-and-ratios.md. Before delivery it reconciles every ad, size and card against the file names and the Ad Index.
$brand-standards — 4.2 (Codex)
Validated: all-3-size (30 images, 27 ready) and 1:1-carousel (22 planned, 19 ready) test packages return production_plan_valid from the v4.5 checker; the v5 fixtures pass 22/22; the generator's test suites pass. Still open: Codex keeps Run 2's on-image wording exact, so it proposes copy changes rather than making them.
v6 "Codex directs, Claude researches and writes" 2026-09-26
Why. Ads built from client photos were coming out badly — a phone photo with
text laid over it isn't a Meta ad. Trafficking separate 9:16 and 1:1 versions through Meta's interface
cost more than it returned. And the Run 2 slate printed as a wide fixed-width block that wrapped into
an unreadable jumble in the chat. v6 makes Codex the creative director with heavy enhancement as the
default, makes 4:5 the default for every ad, and rebuilds how Run 2 shows its plan. The handoff contract
(drive_social_handoff: v2 + production_plan: v1) is unchanged, so v5 packages
still validate.
/creative-strategy — v5.0.1 → v5.2.0 (Claude Cowork)
Added
- 4:5 by default. Every single image and carousel card is 4:5. Every run asks, word for word, "All ads will be 4:5 ratio. Do you want any other ad ratios made in this run? (9:16, 1:1?)" and adds other versions only for the ads you name. A promised Stories or square version is pointed out, never added silently.
- Carousels are opt-in. The recommended slate is single images only; every run asks whether you want carousels — no, yes and Claude picks the services, or yes and you pick the buckets.
- A new review display for the slate and every other review: totals first, one four-column table per bucket (# · Concept · Art · Why), then On hold, Not included, and numbered questions. No code blocks.
- Heavy enhancement flag on every client asset — what to transform (light, clutter, background, setting, color) and the only protected elements: people's face, features, body type and weight; the logo's mark and wording; the actual result of documented work.
Changed
- Roles: Codex is the Director of Creative with the final say on copy and creative choices;
/creative-strategy is its lead market researcher, copywriter and editor. Copy is suggested (a lead headline plus alternates); only verified facts, fixed strings (legal lines, offer terms), compliance and Drive Social copy rules (40/25, no "vibes", real CTAs) are binding. copy_status: approved now means facts verified and cleared for production.
- Client copy changes after review still route as
correct; Codex's own copy changes never need approval.
Removed
- Pre-approved placement alternatives, "Step 3 never rewords approved copy", the 9:16 and 1:1 versions planned by default, the "logo must be the real file" rule (the mark and wording are protected; a faithful transparent rebuild is allowed).
$meta-ad-creative-generator — v4.3 → v4.4 (Codex)
- Heavy AI enhancement of client assets is the standing default — rebuild lighting, color, sharpness, composition, surroundings, backdrop and setting; minor cleanup plus pasted text doesn't pass. An explicit limit from you or the package still wins.
- People are the likeness guardrail: surroundings can change completely, but people keep their facial features, age, body proportions, skin tone and distinguishing characteristics; source and output are compared directly.
- Generated graphic headlines by default — lettering art-directed as part of the image, not a stock font over a photo. Readable-but-basic typography fails the visual gate.
- Transparent logos only — never on a white or colored box. If the folder has no transparent original, it rebuilds a faithful one from the best available copy and verifies it over light and dark backgrounds.
- New guiding question: will this stop someone scrolling? Quality gate updated to match.
$brand-standards — 4.2 (Codex)
Known gap: generator v4.4 still keeps Run 2's on-image wording exact, so until the next generator update, Codex proposes copy changes rather than making them. Also note: the generator's runner reads a bare format of "carousel" as square; Codex writes each job's format from the package's ratio, which avoids it. Validated: a 4:5-only package with a 4-card 4:5 carousel returns production_plan_valid from the v4.4 checker; the v5 fixtures still pass 22/22; the generator's own test suites pass.
v5 "Count the work before you make it" 2026-09-17
Why. v4 fixed what a concept is (an idea, not a layout) but left three
things loose. Run 2 asked "5 or 10 per bucket?" and treated every service as an equal quota, so a
client who had been promised four door ads and a Stories version got the same shape of package as
one who had been promised nothing. Nobody could say how many finished artworks a package meant —
a concept at two ratios, a four-card carousel, and a PNG+JPG export all counted differently — and
the Codex checker only validated concept routing, so a package that authorized only 4:5 for a
concept still accepted a 9:16 job. Run 2 also carried rules that fought good design: a minimum
headline length, a mandatory square-safe center on every broad-placement feed ad, "newest
transcript wins," and a Gemini summary treated as a verbatim quote. A 2026-09-15 workflow review
laid this out; v5 is the response across all three skills. The workflow's shape is unchanged —
what changed is that Run 2 recommends the slate and shows the counts before writing anything, and
every artwork in the package is a row Codex validates before it renders.
/creative-strategy — v4.5 → v5.0.1 (Claude Cowork)
Added
- A recommended production slate replaces the "5 or 10?" question. Built from sourced client commitments (a promised quantity is a floor), priorities, the client's actual objective, assets, seasonality, and capacity. Unequal allocation is normal; shortfalls are surfaced with a remedy; nothing is padded.
- Counts shown before the package is written: concepts, placement versions, carousel cards, held artworks, exports at delivery, and working allowance — each with a basis (required by commitment, recommended, optional). Optional and reserve ideas stay out of scope until promoted.
- Production plan in the package —
production_plan: v1 alongside drive_social_handoff: v2: one deliverables row per finished artwork (each carousel card its own row) with concept, action, ratio, format, placements, reason, ready / hold / preserved status, and copy state; concept_ratios, planned_total (ready + held), render_total (ready only), and a reserve list. Section 9 is the readable twin.
- Evidence ledger from the brand skill: source, source type (transcript, AI summary, approved brief, direct instruction, public source), date, excerpt, status, scope, supersession. A Gemini summary is an AI summary, not a transcript.
- Copy states and a repair route: on-image copy is approved or draft; mandatory strings identified; placement alternatives can be pre-approved. If production finds approved words fight the design it proposes an exact replacement; the approved copy-only change routes as
correct. A changed message is a replace.
- Per-placement corrections: fix the 9:16 only, with the 4:5 and 1:1 inventoried as preserved rows with their original files.
- Asset permissions split into three sourced scopes — use of supplied assets, editing scope, fidelity — and descriptive header fields
objective, placement_setup, platform_spec_check.
Removed
- "Concepts per bucket — 5 or 10?" and "reserve — 2 or 3?" as every-run questions;
concepts_per_bucket / reserve_per_bucket.
- The minimum headline length and "a weak line ships unless rewritten by hand." Image and words are judged together, without the caption, with no length rule either way.
placement_mode, the square-safe center for every broad-placement 4:5, the "manual placements eliminate cropping" claim, the motion-only justification for 9:16, the 9:16 safe-zone table, and "Marketplace & carousels" as one placement.
- "Newest transcript wins," "website always wins," the rule that a meeting-only offer must be on the website, and blanket asset permission labeled client-approved.
- The "never ecommerce / SaaS" assumption; the rule that a package without
concept_ratios means every ratio.
Changed
- Placement targets, media type, ad format, and ratio are four separate decisions; vertical stills are legitimate; platform specs are verified per run against Meta's Ads Guide with a date, and the pixel profiles are labeled internal defaults.
render_total now means ready artworks (it meant "files the build list expands to").
- Conflicts resolve by authority, explicit approval, scope, supersession, and freshness together; an approved private offer need not be on the website.
- Every Account Context rule says whether it is Drive Social policy (with source) or a starting recommendation. Run 2 reuses the brand guide's ledger and asset shortlist instead of re-crawling.
- v5.0.1 (2026-09-17): last machine-specific default path removed for team distribution; Codex references at v4.2 / v4.3.
Validated: two fictional fixture packages (selective ratios, a 3-card carousel, held work, a round-2 correction to one placement with preserved siblings and a copy-only correction) return production_plan_valid from the installed v4.3 checker; 22 positive/negative checks pass. The fixtures ship in the skills package under validation/.
$brand-standards — v4.0 → v4.2 (Codex)
- v4.1: evidence ledger schema (
references/evidence-and-context.md) — id, statement, source, source type, dates, excerpt, status, scope, supersedes, uncertainty; AI summaries labeled; reported approvals recorded as reported. Dated client expectations (promised services, markets, deliverables, timing, quantities) kept separate from durable identity. Asset shortlist with condition, use scope, editing scope, and evidence role. Standing enhancement/generation authorization carried without re-asking; people_policy governs generic AI people only. No mandatory board or extra approval round.
- v4.2: no built-in default drive or folder — resolves the existing project, then an explicit destination, then the user's own workspace instructions; never assumes a drive letter, username, volume, or OS.
$meta-ad-creative-generator — v4.1 → v4.3 (Codex)
- v4.2:
production_plan: v1 — the shared Run 2 / Run 3 artwork contract (references/production-plan.md with a complete offline example). handoff_contract.py now validates the full plan, not just routing: disjoint action lists, concept_ratios equal to the active rows, every carousel card inventoried, the totals' arithmetic, held rows cannot dispatch, a master's ratio must match, preserved siblings cannot be regenerated, duplicate or unauthorized deliveries rejected, partial delivery reported. New test_production_plan.py. Plan-before-batch reconciliation; a calibration set of up to three concepts, not every ratio of three. Copy rules aligned with Run 2 (no minimum headline length; copy-only corrections as correct). Placement, media type, format, and ratio kept distinct; no square-safe mandate. The visual gate must retain mobile review views and QA notes tied to the file hash. Legacy packages adapted locally with --actions-only; missing concept_ratios never expands to every ratio.
- v4.3: cross-platform paths —
source_file and delivery paths accept absolute Windows or POSIX syntax on any OS (new path_support.py, test_portability.py), so a package written on a PC validates on a Mac. New references/portability.md: Python 3.10+ with Pillow, PyYAML, OpenAI SDK; python3 on Mac, py -3 / python on Windows; CODEX_HOME honored; foreign paths mapped in a local adaptation, never rewritten blindly. Codex builds preserved-files.json from the package's source_file rows and the Ad Index. No default client root.
v4 "Ideas, not templates" 2026-09-11
Why. The v3 skills produced visually different ads without producing
better ads. Run 2 was assigning layouts — format families, color modes, rotation quotas, a
mandatory no-photo card per bucket — and Run 3 was executing them, so weak design decisions were
specified upstream and rendered faithfully downstream. A Codex self-audit and a Claude review
reached the same diagnosis. v4 moves visual decisions to the step that can see the pixels, gives
every concept a visual idea instead of a layout, and adds a real visual-review gate before anything
is presented. The workflow also changes shape: the client approves or rejects rendered ads, approved
ads go live, and rejected ones are remade as new options — per-ad editing is retired.
/creative-strategy — v3 → v4.3 (Claude Cowork)
Added
- Concept count asked every run — "5 or 10? (or type a number)" plus a reserve count. A ceiling, not a quota.
- Visual idea per concept: Visual idea, Message–image relationship, Why this client. A layout description no longer counts as a concept.
- Per-concept asset plan — Keep real / Enhance / Generate / Must accomplish — replaces the bucket-level asset mode as the operative instruction.
- Section 4: Resolved production brief. Every governing rule tagged client-approved requirement, strategist-approved direction, verified fact, proposed recommendation, or unresolved question. Overrides quote the Appendix A rule they supersede.
- Reserve ideas per bucket, marked not authorized for production, held for replacements.
- Replacement round (
/creative-strategy replace): rejections classified as replace / revise / correct, proposed then confirmed; approved concepts marked preserve and verified unchanged by diff against an archived copy.
- Visual benchmarks in
brand/benchmarks/approved/ and rejected/; the first client review establishes them when none exist.
- Rejection scope — execution, concept, campaign, or brand; only the last two become restrictions.
- Explicit restrictions as a separate mandatory list with source, date, and scope, distinct from suggested treatments.
- Standing bucket rules folded in: hero-product businesses, restaurants by occasion, shared-menu multi-location clients, both tonal registers by default, outside research as creative substance, no "vibes" in copy.
- Handoff upgraded to
drive_social_handoff: v2: round, counts, benchmarks, suggested_treatments, restricted_treatments, and the build / preserve / revise / correct lists (IDs always quoted).
Removed
- "Resolve everything here" — layout is now Run 3's decision.
- The variation matrix, rotation rules, family census, and required format family / color mode / headline device / photo treatment fields. The vocabulary survives only as an optional, provisional Suggested execution line.
- The two-no-photo-concepts-per-bucket quota; the
GEN- plate brief table; the treatment-rotation table; the fixed 10-per-bucket default.
Changed
brand_tile optional with an approved / reference status; people_policy asked, never assumed.
- v3
permitted_families / permitted_color_modes read as suggested vocabulary only; real prohibitions move to restricted_treatments.
- Appendix A stays verbatim for traceability but Section 4 governs.
- Tone: both registers by default unless audience, subject, or an approved direction calls for one.
- v4.1 (same day): quoted YAML IDs, rejection scope, contextual tone rule, and
preserve defined as a status-line change only — Codex's four compatibility refinements.
- v4.2 (same day): the replacement round is explicitly optional — the default after a client review is to go live with approved ads and build fresh next refresh. Rejected ads are described in plain words (filename, headline, "the testimonial ones"); the skill matches them to concepts and confirms in a table. Every prompt now states what it needs, why, and an example answer, for team members running the skill. Client-provided assets are always approved for use, people in them or not —
people_policy governs AI-generated people only.
- v4.3 (same day): all folder references made system-agnostic for Mac and Windows team members — the client folder is whatever the strategist points the skills at; no built-in default path.
- v4.4–v4.5 (2026-09-13 to 09-15, not distributed): placement-led ratios,
placement_mode, concept_ratios, a render manifest, safe-zone rules. Superseded by v5's production plan.
$brand-standards — v3 → v4.0 (Codex)
Added
- Six-way evidence classification, including observed website styling as its own class — the website is a source, not a ceiling.
- Asset inventory with condition: usable-as-is, enhancement candidate, identity reference, or missing, with Keep real / Enhance / Generate / Must accomplish principles for Run 2.
suggested_treatments and sourced, scoped restricted_treatments in the v1 handoff; optional brand/benchmarks/ folders.
references/asset-intake.md — Drive scan and download rules moved out of the main skill.
Removed
- Industry-to-font templates, fixed color area percentages, "exactly one accent," family rotation, compulsory no-photo cards, blanket bans on effects.
permitted_families / permitted_color_modes for new guides; the mandatory brand tile and required brand-board prompts (both optional now).
Changed
- A rejected render is a specific execution failure, not a universal ban.
- The guide never selects production concepts, sets counts, or emits action lists — Run 2 owns those. Handoff stays at v1.
$meta-ad-creative-generator — v3 → v4.1 (Codex)
Added
- Visual gate before presentation: every master opened at full size and ~360 px; five checks (idea, composition, typography, brand and fidelity, finish) recorded pass / revise / blocked with evidence. Technical validity, creative review, and client approval are separate statuses.
- Execution brief per concept before rendering; suggestions from Run 2 are evaluated, not obeyed.
- Handoff v2 routing — build / preserve / revise / correct honored as disjoint lists; reserves and preserved concepts fail before any API call. New
scripts/handoff_contract.py; scripts/test_workflow.py with 33 offline regression tests.
- Protected originals via
preserved-files.json hash inventory, checked before and after execution.
- Two production routes, both gated: a fully generated master, or AI imagery finished deterministically with the original logo, licensed fonts, and editable layout tools (prohibited in v3).
- Reliable resume: sidecar receipts fingerprint prompt, ordered sources and contents, model, quality, size, and candidate count; resume requires a match plus decoded dimensions and SHA-256. Changed jobs need new filenames or revision directories.
- v4.1 renderer: default
gpt-image-2.5-sunburst at quality: high (xhigh / max for specific unmet needs). gpt-image-2 and Flare stay explicit overrides, never silent fallbacks.
- Bounded exploration: up to three concepts × two candidates for a new direction, two repair rounds per concept, batches of at most five.
Removed
- Stage A whole-campaign background approval before any ad is built.
- The single-ad smoke test as the sole gate; the 45-ad default; 32% band / 42% panel geometry; five-family minimum; big-type quota; asset-reuse cap; universal effect bans; the ban on local compositing and finishing.
Changed
- Similarity audit is advisory — a duplicate warning, never a taste score or redesign trigger.
- Bucket
asset_mode is a summary; the per-concept asset plan is operative.
- Rejected benchmarks establish specific failures; approved benchmarks guide craft without copying claims.
v3 "Variety by layout" 2026-09-10 · superseded
/creative-strategy v3: format families, color modes, headline devices, photo treatments, a per-bucket variation matrix, rotation rules, and two no-photo concepts per bucket — the response to "ten ads look like one ad." Fixed the symptom, not the cause.
$brand-standards v3: brand tile, permitted_families, permitted_color_modes, people_policy added to the handoff.
$meta-ad-creative-generator v3: 4:5 masters at 1088×1360; per-job quality, candidates, photo_required; dry-run variety audit; new scripts/similarity_audit.py.
v2 2026-09-02 · the version this site previously described
- Three-run pipeline with the single-file handoff, the bucket gate in Run 2, Stage A background approval and the one-ad smoke test in Run 3, 45 ads in batches of five.