make-static-ads
Skill1.3k starsChanged 22 days agoMITView on GitHub
Make new static image ads, a fresh batch, more ads, a winner's variations, copy variants or a rejected ad fix. Reads the brand, its customers and the ads it already runs, turns real product facts and customer situations into distinct visual ideas, shows a concept board, writes each render prompt, quotes, renders and reviews through GooseWorks. Also handles requested branded header/social graphics. Use for static ad creation rather than goose-ads. Not for video, product photos or launching campaigns.
1 other project uses a version of this.
Trending
More talk lately.about the whole repository
Most recently taken up by
- athina-ai/goose-skillsword for word, first seen Nov 9, 2026
Who's talking about gooseworks-ai/goose-skills
- akhmadilham/pinax-registry“[Skill Proposal]: goose-skills”GitHub · Nov 3, 2026
- sudosubin/agents.nix“agent-skills.github.gooseworks-ai.goose-skills: 0-unstable-2026-10-20 → 0-unstable-2026-10-23”GitHub · Oct 23, 2026
- gooseworks-ai/gooseworks“Route focused marketing requests to existing playbook steps”GitHub · Oct 22, 2026
- sudosubin/agents.nix“agent-skills.github.gooseworks-ai.goose-skills: 0-unstable-2026-10-17 → 0-unstable-2026-10-20”GitHub · Oct 20, 2026
- sudosubin/agents.nix“agent-skills.github.gooseworks-ai.goose-skills: 0-unstable-2026-10-16 → 0-unstable-2026-10-17”GitHub · Oct 17, 2026
The biggest 5 of 20 mentions linking to the repository that our crawl found. Each line is their own headline.
See all 20
Talked about on GitHub (20 times).
On GitHub · 20
- Nov 3, 2026[Skill Proposal]: goose-skills — akhmadilham/pinax-registry0 reactions · 1 comment
- Oct 23, 2026agent-skills.github.gooseworks-ai.goose-skills: 0-unstable-2026-10-20 → 0-unstable-2026-10-23 — sudosubin/agents.nix0 reactions
- Oct 22, 2026Route focused marketing requests to existing playbook steps — gooseworks-ai/gooseworks0 reactions
- Oct 20, 2026agent-skills.github.gooseworks-ai.goose-skills: 0-unstable-2026-10-17 → 0-unstable-2026-10-20 — sudosubin/agents.nix0 reactions
- Oct 17, 2026agent-skills.github.gooseworks-ai.goose-skills: 0-unstable-2026-10-16 → 0-unstable-2026-10-17 — sudosubin/agents.nix0 reactions
15 more on GitHub
- Oct 16, 2026[Candidate] gooseworks-ai/goose-skills - large collection (295 SKILL.md files) — ProSkillsMD/proskills0 reactions · 1 comment
- Oct 16, 2026agent-skills.github.gooseworks-ai.goose-skills: 0-unstable-2026-10-12 → 0-unstable-2026-10-16 — sudosubin/agents.nix0 reactions
- Oct 13, 2026agent-skills.github.gooseworks-ai.goose-skills: 0-unstable-2026-10-06 → 0-unstable-2026-10-12 — sudosubin/agents.nix0 reactions
- Oct 6, 2026agent-skills.github.gooseworks-ai.goose-skills: 0-unstable-2026-10-05 → 0-unstable-2026-10-06 — sudosubin/agents.nix0 reactions
- Oct 5, 2026agent-skills.github.gooseworks-ai.goose-skills: 92b02ac → f76cec4 — sudosubin/agents.nix0 reactions
- Oct 5, 2026agent-skills.github.gooseworks-ai.goose-skills: 80b0c5e → 92b02ac — sudosubin/agents.nix0 reactions
- Oct 5, 2026agent-skills.github.gooseworks-ai.goose-skills: 0-unstable-2026-10-04 → 0-unstable-2026-10-05 — sudosubin/agents.nix0 reactions
- Oct 4, 2026agent-skills.github.gooseworks-ai.goose-skills: 0-unstable-2026-10-03 → 0-unstable-2026-10-04 — sudosubin/agents.nix0 reactions
- Oct 4, 2026agent-skills.github.gooseworks-ai.goose-skills: af5944c → 770e3c2 — sudosubin/agents.nix0 reactions
- Oct 3, 2026agent-skills.github.gooseworks-ai.goose-skills: init at 0-unstable-2026-10-03 — sudosubin/agents.nix0 reactions
- Oct 2, 2026Preserve angle evidence through local video script planning — gooseworks-ai/gooseworks0 reactions
- Aug 5, 202622 skills have links.github pointing at something that is not a skill directory — gaia-research/gaia-skill-tree0 reactions · 7 comments
- Jul 16, 2026Skill submission: goose-skills (growth/GTM library by GooseWorks) — numman-ali/n-skills0 reactions
- Jul 16, 2026Add goose-skills to Collections — BehiSecc/awesome-claude-skills0 reactions · 1 comment
- May 3, 2026Import skill: linkedin-post-research — jettyio/agent-runbooks0 reactions
Other versions1 project uses a version of this.
Word for word · 1
- athina-ai/goose-skills★ 1.3k100% same
Edited · 0
None found.
Wrote their own version · 0
None found.
How matches are found. Word for word: the exact same text. Edited: shares passages with this file (“99% same” means 99% of its five-word phrases also appear here; 10% or more counts). Their own version: similar meaning, or, weakest, the same name. We can’t tell which project had it first. Projects are counted among the 200 most-starred candidates, and mentions are links to the repository we found, up to 50 per site, so both counts are a floor.
In this repository180 other files it gives its agents.
- goose-adsSkill
- goose-product-photosSkill
- goose-video-localSkill
- goose-videoSkill
- gooseworksSkill
- make-custom-videoSkill
- ad-policy-checkSkill
- analyze-performance-call-and-learnSkill
- analyze-performance-diagnoseSkill
- analyze-performance-intakeSkill
- analyze-performance-rank-and-readSkill
- analyze-performance-revenue-joinSkill
- analyze-performanceSkill
- claims-gateSkill
- email-lifecycle-broadcast-plannerSkill
- email-lifecycle-flow-writerSkill
- email-lifecycle-lifecycle-auditSkill
- email-lifecycle-offer-mathSkill
- email-lifecycle-send-checkSkill
- email-lifecycleSkill
- honest-reviewSkill
- improve-search-visibility-citation-checkSkill
- improve-search-visibility-entity-footprintSkill
- improve-search-visibility-fix-writerSkill
- improve-search-visibility-page-and-foundation-checkSkill
- improve-search-visibility-question-setSkill
- improve-search-visibilitySkill
- improve-search-visibility-store-listing-auditSkill
- make-content-content-briefSkill
- make-contentSkill
- make-content-source-to-unitsSkill
- make-content-two-pass-editSkill
- make-static-ads-ad-copySkill
- make-static-ads-claims-extractSkill
- make-static-ads-composeSkill
- make-static-ads-concept-gridSkill
- make-static-ads-copy-variantsSkill
- make-static-ads-find-referencesSkill
- make-static-ads-fix-rejectedSkill
- make-static-ads-graphic-requestSkill
- make-static-ads-render-reviewSkill
- marketing-data-accessSkill
- marketing-guideSkill
- outcomes-ledgerSkill
- plan-campaign-brief-and-assetsSkill
- plan-campaign-budget-and-testsSkill
- plan-campaign-channel-decisionSkill
- plan-campaign-goal-chainSkill
- plan-campaignSkill
- research-audience-account-sourcingSkill
- research-audience-fit-definitionSkill
- research-audience-people-and-contactsSkill
- research-audience-score-segment-qaSkill
- research-audience-segment-passSkill
- research-audience-signals-and-hooksSkill
- research-audienceSkill
- research-competitors-category-passSkill
- research-competitors-edge-casesSkill
- research-competitors-rival-passSkill
- research-competitorsSkill
- The first 60 shown.
The file
Show its rules and text
We split this skill into the rules it gives an agent
13 rules. About 0 are common, 7 are distinctive, and 6 are very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈7
Distinctive · estimate
This author's own choices. Worth a look.
6
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Very specific: line 20
Setup: Run the marketing-guide skill (../marketing-guide/SKILL.md) §1–2 only: connect, gooseworks:get_started, pick the brand, the …
- Very specific: line 31
Use the small calls in references/engine-notes.md.
- Distinctive: line 38
Write what you actually read, with counts, at the top of the profile: "Read 14 reviews, 20 of ~300 live Meta ads, 15 X posts, the …
- Very specific: line 53
Claims: only when lines for the chosen angles need approval and the marketer approves them.
- Very specific: line 66
Run the make-static-ads-concept-grid skill (../make-static-ads-concept-grid/SKILL.md): angle → message → visual idea → style → template, …
- Very specific: line 72
Run the make-static-ads-ad-copy skill (../make-static-ads-ad-copy/SKILL.md).
- Distinctive: line 74
Done: every slot of every ad has its final words.
- Very specific: line 78
Run the make-static-ads-compose skill (../make-static-ads-compose/SKILL.md): one prompt per ad and ratio (references/prompts.md).
- Distinctive: line 86
Done: every span is keep, quote or cut.
- Distinctive: line 92
run memory read (or "first run").
- Distinctive: line 98
every ad and ratio ready to quote (the dry runs come next).
- Distinctive: line 116
Done: every image passed, is flagged for the marketer's look, or was dropped with the reason.
- Distinctive: line 146
Every delivered ad comes from a board row with a reason to exist, passed its claims and policy check, was rendered within the approved …
≈ “Common” is an estimate: at least 1 in 5 of the 350,495 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
make-static-ads
The idea is the job, and it must be this brand's idea. An ad idea is a real product fact or customer situation turned into one visible event the viewer gets at a glance (references/ideas.md), said the way this brand already talks and looks (references/brand-profile.md), built on a template at the creativity level the marketer chose (references/levels.md). Everything else serves that idea or protects the brand.
The proof that the work happened is the concept board, shown to the marketer before any render credits are spent. It cannot be skipped, shortened to "your choice", or replaced by a summary.
What you get
Finished, reviewed images with their ad copy, the concept board behind them, what was cut and why, and a batch file the launch reads.
Before you start
- Setup. Run the
marketing-guideskill (../marketing-guide/SKILL.md) §1–2 only: connect,gooseworks:get_started, pick the brand, the workspace scope, and the current names of the brand-brain tools. Ifget_startedshows a brand-setup or sign-in card, wait for its press; any other card: the Server hints bullet below. - Render tool. No
ads_render→ stop before spending and say so;ads_generaterewrites your prompt through templates and is not a substitute. - Server hints. Answers like "one short line and wait" or "recommend one plan" govern GooseWorks' own cards, setup, rights and spending. They never replace this playbook's research, board or critic.
- Product identity. A physical product needs real product photos (
brand_readwithproduct_ids). Software or a service: real UI screenshots and any brand character it owns (never a generated fake UI). The logo is never the identity image; it is placed after the render on every ad (no shell: the marketer's Step 2 choice). Missing photos or screenshots → ask in Step 2. Still none: a physical product stops at the board (no quotes) with an offer of the product-photos job; software goes ahead only with ideas that need no screen (type-led, the mascot). - Run memory. The
run-memoryskill (../run-memory/SKILL.md), Start of run (§1–5) only: playbookmake-static-ads, jobstatic ads, subject the product's slug, cadencead hoc, outcomes from thepickedtags andgooseworks:meta_readview: "performance"matched to this playbook's creative ids. Its "since last time" note goes in one sentence before the first Step 2 question (this replaces run-memory §4's 3–5 lines). Add every ad already made in this conversation to the history. - Files. Work in
ads/batches/<YYYY-MM-DD>-<slug>/in the brand's workspace:profile.md,board.md, prompts. The batch fileads/batches/<YYYY-MM-DD>-<slug>.mdis started at Step 3 and filled in as you go (references/reading-the-brain.md§7).
Steps
1. Read the brand and write its profile (free)
Use the small calls in references/engine-notes.md. Read:
- the claims contract: the
claims-gateskill (../claims-gate/SKILL.md) §1. Never read claim statuses from the brain yourself; - the product: the one the marketer named; none named → the one the latest performance report or request names, else the bestseller (confirm it in Step 2). Its record and photos, looked at;
- how the brand already advertises: its own ads (looked at, not listed), recent social posts, website and kit →
profile.md(references/brand-profile.md); - customer words (
references/reading-the-brain.md§2), the angle bank (§3), and any performance report or open request (§4); - history for the no-repeat test: the last 10 approved ads made in GooseWorks for this brand (
references/engine-notes.md; fewer with no shell) and every live static (references/brand-profile.md§1).
Write what you actually read, with counts, at the top of the profile: "Read 14 reviews, 20 of ~300 live Meta ads, 15 X posts, the homepage." Name a skimmed source as skimmed and an unopened one as not checked.
Done: profile.md has every section of its template; the Read line names own ads, social posts, website and kit, each with a count or "not checked: <why>"; five product truths and up to five customer lines with sources (fewer, or "none found", when the sources hold fewer; never a made-up quote).
2. Quick questions
Ask with the host's question tool when it has one (Claude Code: AskUserQuestion): up to four questions per call, each with a header of at most 12 characters, 2–4 options of about five words (details go in the option's description), the recommendation first and labelled "(Recommended)". Never a long paragraph. Without a question tool, the same questions as a short numbered list, one line each, options inline, recommendations in bold. Put the run-memory line, if any, in one sentence before the first call.
First call:
- Creativity: Balanced (Recommended: "a new idea inside a proven layout"), Close ("a proven ad layout with your words; safest"), Bold ("the idea comes first, in your own style; most surprising"). One level for the whole set unless the marketer asks for one ad per level.
- Angles: multi-select, up to four options: the profile's strongest angles first, at most one marked "(new)" per five ads (one in any set of five or fewer); each description names the claim line it needs; others via Other. Recommend only angles whose lines are already usable. This is the one home of the new-angle rule.
- Settings: "Use these (Recommended)", its description spelling out every default ("
<product>, 5 ads, 4:5 feed, link:<page>, logo on every ad"); "Change something". - Approver, only when claim lines will need approval and no approver is on record (claims-gate §4.2): "Who approves what the ads claim?" "I do", "Someone else" (named in Other; no name back → ask it in the next call).
Next call, only for what is open (a further call if more than four are open or "Change something" needs details):
- Claims: only when lines for the chosen angles need approval and the marketer approves them; the
claims-gateskill §4 says how (one multi-select question, ticks are the sign-off). Someone else approves → claims-gate §4.2, no question. Record the ticks by claims-gate §5 and read them back before Step 4. - each conflict the profile found, your pick first;
- the logo, when there is no file, it is under about 300 px wide (ask for a bigger one, a transparent PNG if possible), or the host can't run scripts ("Clear corner you fill (Recommended)", "Model draws it, may change");
- missing product photos or UI screenshots;
- a live offer and, if an ad will show it, the price;
- paid reads, only if there's no browser and nothing imported (the one "up to N credits" ask from the
spend-gateskill (../spend-gate/SKILL.md) branch B). Other placements: 9:16 for Stories and Reels and 1:1 only if they say.
An unanswered creativity question is asked again alone. "Your choice" or "just give me the images" takes every recommendation (balanced, no new claims); say what you chose on the board. No other questions until the board.
Done: the answers, or "recommended", recorded in board.md under ## Step 2 answers; ticked claim lines saved by claims-gate §5 and read back, or none were needed.
3. Find the ideas → the concept board
Run the make-static-ads-concept-grid skill (../make-static-ads-concept-grid/SKILL.md): angle → message → visual idea → style → template, the tests, and a fresh critic.
Done: board.md has one row per ad that passed the tests, with the critic's notes and what changed; the batch file is started.
4. Copy
Run the make-static-ads-ad-copy skill (../make-static-ads-ad-copy/SKILL.md).
Done: every slot of every ad has its final words; each ad has primary texts A and B, link headline, description, CTA and destination.
5. Write each prompt
Run the make-static-ads-compose skill (../make-static-ads-compose/SKILL.md): one prompt per ad and ratio (references/prompts.md).
Done: each prompt passed the read-back in prompts.md §5, with its image list.
6. Check the exact prompts
Pass A of the make-static-ads-claims-extract skill (../make-static-ads-claims-extract/SKILL.md) and the ad-policy-check skill (../ad-policy-check/SKILL.md) on each prompt and its copy. A cut line goes back to Step 4 or 5 and through this check again. A cut that needs a new approval goes on the board as a cut, never into the ad.
Done: every span is keep, quote or cut; no cut words remain; policy passed or its flags are on the board.
7. Show the board and the quote
First tick this run check under ## Run check in board.md. The template sheets and the quotes are never skipped: do them now. Anything else unticked is done now, or listed below the cards as skipped, with why:
- Step 2 asked with the question tool (or a short list); answers in
board.md; ticked claim lines saved (or none needed); - run memory read (or "first run"); the Read line covers own ads, posts, website and kit with counts;
- the last 10 approved ads and every live static checked for repeats;
- three looked-at templates per ad in different styles; one template sheet per ad, shown to the marketer;
- at close and balanced, the template image attached when it is the brand's own ad or a library template, otherwise the layout in words; every ad's render call names its template (
template_idorreference_image_url); - the critic got the records as they came back;
- three headline candidates per ad; Pass A and the policy check on every prompt;
- every ad and ratio ready to quote (the dry runs come next).
Then gooseworks:ads_render with dry_run: true for every ad and ratio. Show the board as references/handoff-format.md §2 says, each quote exactly as given (never your own total). The marketer's yes covers the quotes shown plus one retry per ad and ratio, each at that ratio's quoted price; the spend-gate skill applies to anything beyond that.
Changes at this gate, then show only the changed ads with their new quotes for a yes:
- a template swap → Steps 4–6 for that ad (its words follow the new slots), and the set's style and no-repeat tests again;
- a changed angle, message or idea → Steps 3–6 for that row, critic included; a level change (it applies to the whole set) → Steps 3–6;
- an edited line → Steps 5–6; a newly approved claim →
claims-gate§4–5 first, then Steps 4–6; - an added ratio → Steps 5–6 for that ratio; a dropped ad needs no new quote.
Submit nothing that wasn't quoted and approved as shown. "Finals only" shortens delivery, not this message.
Done: the marketer said yes to the quotes shown, or the run stops here with the board saved.
8. Render and review
Submit the exact quoted requests and wait for them (references/engine-notes.md, Polling). Then run the make-static-ads-render-review skill (../make-static-ads-render-review/SKILL.md).
Done: every image passed, is flagged for the marketer's look, or was dropped with the reason.
9. Deliver and remember
Hand over as references/handoff-format.md §3 says; finish the batch file and the tags. Ask which ads the marketer prefers (a multi-select question); offer copy variants for those. Save lasting human feedback through the save-learning skill (../save-learning/SKILL.md). Run run-memory End of run (§6–7) on every exit, including a stop or partial run.
Done: the marketer has each ad with its "Based on" sheet and copy, and was offered copy variants; the batch file, tags and the run-memory record (End of run) are saved, or a failed save is reported.
Other modes
| Request | Path |
| More ads | Same steps; earlier ads are history for the no-repeat test. In the same conversation, reuse the level, logo, placements and claim approvals already given (never a spend yes: every new ad gets its own quote); ask only what is new. |
| Iterate a winner | Keep its idea and proof; change the one lever named (hook, scene detail, look). One board row with the parent linked; no new idea search. |
Rotation request (a Rotation needed: line, references/reading-the-brain.md §4) | Keep the winner's angle, make new executions through the full steps, and answer Rotation ready: under the request line. |
| Same image, different text or font | The make-static-ads-copy-variants skill (../make-static-ads-copy-variants/SKILL.md). |
| Rejected ad | The make-static-ads-fix-rejected skill (../make-static-ads-fix-rejected/SKILL.md). |
| Header or social graphic | The make-static-ads-graphic-request skill (../make-static-ads-graphic-request/SKILL.md). |
| Price or stock change | List affected delivered ads with pause flags; remakes need copy checks and new quotes. |
Approval gates
Claims through claims-gate before public copy; the marketer's yes to the exact quotes before paid work; human words only for preferences, ratings and launch.
Output and write-back
The board, the batch file, tagged creatives (the logo version of each, or the kept render on a host without scripts) and the run record. Agent verdicts go in tags and the batch file; render feedback carries only the marketer's own words.
Done when
Every delivered ad comes from a board row with a reason to exist, passed its claims and policy check, was rendered within the approved quotes, and was judged against its protected choice and the product's identity. Failures and anything not checked are said plainly.
Out of scope
Video, product photography, campaign launches and performance conclusions. Offer the matching job when asked; this playbook neither publishes nor predicts performance.
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

