Individual skill

make-static-ads-compose

Step of make-static-ads: writes each ad's render prompt and ordered image list from its concept-board row, one per ad and ratio, ready for a quoted render. Run make-static-ads instead; not for direct use.

skills/marketing/make-static-ads-compose/SKILL.md

Read pinned source

Source commit df8298140d434a6363de0c265eb6af2e571d97a5

What was checked

Matches the observed repository HEAD
Yes
Scanner rules are current
Yes
Repository scan complete
No
Skill scan complete
No
Observed behavior
Local scripts
Last checked
Nov 11, 2026

These are observations at the recorded commit, not a guarantee of safety. Review the source before running it.

Install this skill

Choose an agent in your Stack or copy a command below. Commands fetch the pinned commit and copy only this skill directory. Existing destinations are refused. Copying a command does not install anything.

An install command is unavailable: current rules, complete repository and skill scans, an eligible behavior level and a permitted license are required.

Repository context

Repository stars (not skill ratings)
1,315
Repository last updated
Nov 6, 2026
License
MIT

Observed agent integration: No specific integration evidence. Standard SKILL.md installation does not imply verified compatibility.

Files and excerpt

File metadata and permitted, redacted excerpts come from the recorded scan. Source links are pinned to that commit.

Browse files
Read excerpt

# compose

**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` ("<brand> — <headline> (<level>)"), plus a `render-<ad>-<ratio>.json` holding the `gooseworks:ads_render` arguments on a host with files.

1. **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 through `gooseworks:media_upload` first. Look at each one before using it.
2. **Shared foundation.** Write it once for the batch (`prompts.md` §2) with the brand's look from `profile.md`, its fonts and rules. Reuse it word for word.
3. **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 as `prompts.md` §1 says. The physical event and the protected choice go in as concrete sentences; the protected choice also appears word for word.
4. **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.
5. **Ratios.** One prompt per ratio the placements need (`prompts.md` §4, `../make-static-ads/references/formats-and-placements.md`).
6. **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.
Back to top