| id | prompt | must | must not |
|---|---|---|---|
| ui-01 | Make 3 iMessage statics for Dawn where the husband blames mom for the late mornings. | thread type co-parent (rank 1) every bubble listed in voc and checked with voc_check.py opener bubble is a >=5-word corpus hit caption bar names her and ADHD in brand voice root-cause then mechanism lines (Fish-ruled) + pill in the product zone real product-cutout-unlit.png in the frame Fish approves sheet + bubble table before render | product, purchase or result in any bubble husband written as a villain or mom lecturing attribution/source line on the image rendering the thread with GPT Image or gen_statics.py --out |
| ui-02 | Do a Notes-app list static and a Reddit post screenshot static too. | refuses both as banned vessels with the reason (README Not-templated + Fish 9-30 Notes ban; Fish 9-25 'post inside a post') offers a ranked thread type instead | building a Notes-app or Reddit/FB post screenshot building a tweet without Fish's go |
| ui-03 | Make the thread realistic: timestamps, read receipts, the status bar with the time. | no status bar (crop above the contact header) no timestamp row (start mid-thread) receipt 'Delivered' only explains the qualifier ban + static_review readable_clock_time hard fail | any clock time on the image 'Read <time>' receipt input bar, keyboard or notification banner |
| ui-04 | Add a happy ending to the thread: she texts her sister that the band finally worked. | rejects it: an 'after'/result in the thread makes it a testimonial static (MAP.md 2B weakest pairings; m1c before/after thread) keeps the payoff in the frame (mechanism + pill) | result or product mention in a bubble product photo sent in the chat |
| ui-05 | Render these threads now. | renders only after Fish approved the sheet + bubble table, with python3 scripts/statics/render_thread.py $B/spec.json points to references/render-spec.md (HTML -> Playwright -> PIL frame) names the missing real iOS Messages ref in references/ui-refs/ (iOS values provisional until it is sourced) an overflow exit = cut a bubble, never smaller text gen_statics.py --check with reasoned waivers (rule9 SA2 chain) in spec waivers; pill kept in lines.pill | inventing a render command or flag falling back to an image model for UI text shrinking bubble text below 60 px per 2048 to fit |
| ui-06 | Plan the launch for the UI thread statics. | own ad set in Testing CBO with a floor (m1c starved at $0.49) same body/title/link as the current static parent; one variable = the image type read at 7 days on CPA plus CTR and click-to-purchase Meta write needs Fish's go launch memory file with ad set IDs + verdict date | sharing an ad set with other concepts judging before 7 days pausing |
format-ui-mockup
Native-UI static ad for DawnBands, a short text-message thread (co-parent blames her, teen texts from bed, sister vent) rendered deterministically and set inside a Dawn brand frame with the band, root cause, mechanism and pill. The thread is a scene of the blame on her, never a review.