First composition draft failed hyperframes check with 3 layout errors: scene wrapper clips hid the hero's text boxes from the checker, which reported the shrunken header name overflowing and overlapping the SAMPLE REVIEWS label. Rebuilt flat — every element a top-level clip, hero pieces animated individually — and the re-check passed; the render itself was then clean on the first pass.
The two radius-ring pulses initially overlapped by 0.2s and the second fromTo had no baseline; shortened the first pulse and set immediateRender:false on the second, per the linter.
Original promptTested
Local business promo — HyperFrames prompt (reviews, service area, call now)
Banned list —Beat grid —Build method —Self-review —
<direction>
Build a 1280x720, 10-second local business promo in HyperFrames + GSAP that a real trades business could post as-is: hero, social proof, service-area map, and a Call Now end card. House style: background #0a0a0a, white type, ONE orange accent #ff5c1a, Arial/Helvetica bold, NO webfonts, no gradients, no glows, no 3D. Everything in the demo is fictional and labelled: the footer "FICTIONAL BUSINESS — SAMPLE PROMO" runs the whole film and the reviews carry a visible "SAMPLE REVIEWS" label.
Business name: BrightFlow Plumbing
Service line: 24/7 Emergency Plumbing
City served: Austin
Rating shown beside five orange stars: 4.9
Phone number for the Call Now card: (555) 010-2834 — this is a fiction-safe 555 SAMPLE number for the demo render only; swap in your own real business number before publishing anywhere.
Banned: real review text copied from Google/Yelp, stock photos, map tiles or logos from real map providers, any phone number other than the one supplied.
</direction>
<structure>
0.0-1.5s: business name slams in huge and centred, service line under it in the accent, then a row of five orange stars pops in with the rating beside it.
1.5-4.0s: the hero shrinks up into a header; two review cards slide in from opposite sides under a "SAMPLE REVIEWS" label — five stars each, one short fictional review line each, reviewer first names only.
4.0-7.0s: service-area map — a stylised drawn map (flat grey street grid, a river curve, park blocks), title "PROUDLY SERVING Austin"; a location pin drops at the centre, an accent radius ring pulses outward twice, and area-name chips pop in around the ring.
7.0-10.0s: the Call Now block takes over: a big accent panel with "CALL NOW" and the phone number huge, business name + city on the panel, and "SERVING Austin · LICENSED & INSURED" under it. Hold to the end.
</structure>
<build>
One paused GSAP timeline registered as window.__timelines["main"]. Draw stars as inline SVG polygons in the accent (never a unicode star character — it renders inconsistently headless). Build the map as one inline SVG: dark panel, #3d3d3d street lines, one muted river path, two park blocks; animate the radius ring with GSAP attr r + opacity as two separate fromTo pulses with immediateRender:false on the second. Animate hero elements individually to their header positions (same y shift and scale on each) instead of scaling a wrapper, so text boxes stay measurable. Review cards: 530px wide, #161616 fill, 2px #2c2c2c border, radius 16px.
</build>
<gotchas>
- The demo phone number is a 555 sample on purpose — publishing it unchanged would send customers to a dead number; the swap is the user's job and the prompt says so.
- Review quotes must stay short and fictional; never paste a real customer's words into the sample cards.
- Chips must sit around the ring, not on the pin: check the map still — the pin and its pulse stay the visual centre.
- The Call Now panel is the one full-accent surface in the film; keep its text near-black (#0a0a0a) — white text on the orange fails contrast at this size.
</gotchas>
Before you finish: step through the timeline at five points and fix anything that overlaps, clips the frame, or drifts off the beat grid.
Built as the local-SEO sales piece: hero with star rating, two labelled sample review cards, a drawn service-area map with a pulsing pin, and a full-accent Call Now end card. The demo phone is a fiction-safe 555 sample and the prompt itself instructs the user to swap in their real number before publishing.