Read first: ../make-static-ads/references/prompts.md.
Reads: the board.md row with its final copy, level and template; profile.md (the brand's real look); ../make-static-ads/references/levels.md; the product record and photos, the logo, the brand kit's colours and fonts, every must and dont rule.
Writes: per ad and ratio, the exact prompt and image_urls into the batch file, the template it is based on as template_id (its id from ads_template_read) or, with no id, as reference_image_url (the template's public image URL), never both, so the app shows "Based on" (this only records it; the image still goes in image_urls when levels.md says so), a title (" — ()"), plus a render-<ad>-<ratio>.json holding the gooseworks:ads_render arguments on a host with files.
- Product images. Pick the official photo(s) that show the label most clearly from the angle the scene needs; for software, real UI screenshots or the mascot, never the logo (
../make-static-ads/SKILL.md, Before you start). Public https URLs only; a local or attached file goes throughgooseworks:media_uploadfirst. Look at each one before using it. - Shared foundation. Write it once for the batch (
prompts.md§2) with the brand's look fromprofile.md, its fonts and rules. Reuse it word for word. - Style, layout and scene. For each ad, write
prompts.md§3 from the board row: its own style, the template's layout as the level keeps it, then the scene. Leave the logo area clear (no shell and a drawn logo chosen: attach the logo instead), and attach images asprompts.md§1 says. The physical event and the protected choice go in as concrete sentences; the protected choice also appears word for word. - Copy. Every word to be drawn is in quotes, exactly as the board has it, placed in its slot. Nothing else is asked to be drawn.
- Ratios. One prompt per ratio the placements need (
prompts.md§4,../make-static-ads/references/formats-and-placements.md). - Read it back (
prompts.md§5). Then hand it to the claims check.
Engine: leave engine unset (the default) unless the marketer asked for another or the default refused the content. A prompt with no attached images stays on the default engine. A changed prompt after the claims check goes through the check again.
Done: each ad and ratio has its prompt, image list and render arguments; each passed the read-back.