ads-generate
Skill2 starsChanged 6 months agoMITView on GitHub
AI image generation for paid ad creatives. Reads campaign-brief.md and brand-profile.json to produce platform-sized ad images using banana-claude. Requires banana-claude (v1.4.1+) with nanobanana-mcp configured. Triggers on: generate ads, create images, make ad creatives, generate visuals, create ad images, generate campaign images, make the images, generate from brief.
We split this skill into the rules it gives an agent
14 rules. 3 are common, 3 are distinctive, and 8 are very specific to this project.
3
Common
Most of the 3 edited versions we read keep these.
3
Distinctive
This author's own choices. Worth a look.
8
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Very specific: line 25
Run /banana setup to configure API key and MCP
- Distinctive: line 28
If banana-claude is not installed, this skill will display setup instructions and stop.
- Very specific: line 31
If banana-claude is unavailable, alternatives include: OpenAI gpt-image-1 ($0.040/image), Stability SD 3.5 ($0.065), or Replicate FLUX.1 …
- Very specific: line 37
Verify banana-claude is installed (run /banana setup to check).
- Very specific: line 46
If campaign-brief.md is found: Use ## Image Generation Briefs section as the generation job list.
- Very specific: line 79
Create banana brand preset from brand-profile.json if one does not already exist at ~/.banana/presets/{brand-slug}.json.
- Distinctive: line 97
Use banana-claude with the configured domain mode for each asset
- Very specific: line 103
After the visual-designer completes, spawn the format-adapter agent with context: fork to validate dimensions and report missing formats.
- Distinctive: line 108
Use Claude vision to assess each generated image against the brief (score 1 to 10 on brand alignment, composition, platform fit).
- Very specific: line 120
Read banana cost data from ~/.banana/costs.json and include total creative spend in generation-manifest.json.
- Common: line 146
Before generating, estimate and show the cost:
- Common: line 149
If >$1.00, ask for confirmation before proceeding
- Common: line 153
When running without a campaign brief:
- Very specific: line 166
Use /banana generate directly with the specified prompt and aspect ratio.
“Common” is measured: kept by at least 6 in 10 of the 3 edited versions of this file we could read. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
Ads Generate: AI Ad Image Generator
Generates platform-sized ad creative images from your campaign brief and brand profile. Uses banana-claude as the image generation provider.
Quick Reference
| Command | What it does |
/ads generate | Generate all images from campaign-brief.md |
/ads generate --platform meta | Generate Meta assets only |
/ads generate --prompt "text" --ratio 9:16 | Standalone generation without brief |
Environment Setup
Required before running:
- Requires banana-claude (v1.4.1+) with nanobanana-mcp configured
- Run
/banana setupto configure API key and MCP - Fallback: if banana is not available, use
scripts/generate_image.py(deprecated)
If banana-claude is not installed, this skill will display setup instructions and stop. It will never fail silently.
If banana-claude is unavailable, alternatives include: OpenAI gpt-image-1 ($0.040/image), Stability SD 3.5 ($0.065), or Replicate FLUX.1 Pro ($0.055). Configure via ADS_IMAGE_PROVIDER env var.
Process
Step 1: Verify banana-claude
Verify banana-claude is installed (run /banana setup to check). If not installed,
display setup instructions and exit.
Step 2: Locate Source Files
Check for:
campaign-brief.md→ primary source for prompts and dimensionsbrand-profile.json→ brand color/style injection (optional but recommended)
If campaign-brief.md is found: Use ## Image Generation Briefs section as the
generation job list.
If no campaign-brief.md: Enter standalone mode (Step 2b).
Step 2b: Standalone Mode
Ask the user:
- Generation prompt (what should the image show?)
- Target platform (to set correct dimensions)
- Output filename (optional)
Then skip to Step 5.
Step 3: Read Provider Config
Load ~/.claude/skills/ads/references/image-providers.md to confirm:
- Active provider pricing (show user the cost estimate)
- Rate limits for current tier
- Batch API availability
Step 4: Read Platform Specs
For each platform in the campaign brief, load the relevant spec reference:
~/.claude/skills/ads/references/meta-creative-specs.md~/.claude/skills/ads/references/google-creative-specs.md~/.claude/skills/ads/references/tiktok-creative-specs.md~/.claude/skills/ads/references/linkedin-creative-specs.md~/.claude/skills/ads/references/youtube-creative-specs.md~/.claude/skills/ads/references/microsoft-creative-specs.md
Step 5: Prepare banana Configuration
Create banana brand preset from brand-profile.json if one does not already exist
at ~/.banana/presets/{brand-slug}.json.
Select banana domain mode based on campaign brief content:
- Product: e-commerce, packshots
- Editorial: brand awareness, lifestyle
- Cinema: video thumbnails, dramatic
- UI/Web: app install, SaaS
- Portrait: testimonials, people
Step 6: Spawn Visual Designer Agent
Spawn the visual-designer agent using the Task tool with context: fork,
passing the selected domain mode and preset name.
The agent will:
- Parse the image generation briefs from campaign-brief.md
- Inject brand colors and mood from brand-profile.json
- Use banana-claude with the configured domain mode for each asset
- Save to
./ad-assets/[platform]/[concept]/directory structure - Write
generation-manifest.json
Step 7: Validate with Format Adapter
After the visual-designer completes, spawn the format-adapter agent
with context: fork to validate dimensions and report missing formats.
Step 8: Quality Gate
Use Claude vision to assess each generated image against the brief (score 1 to 10 on brand alignment, composition, platform fit). If any image scores below 6, regenerate once with an adjusted prompt.
Quality Gate Rubric:
- 9-10: Professional quality, brand-aligned, platform-optimized, no issues
- 7-8: Good quality, minor composition or brand alignment improvements possible
- 5-6: Acceptable but needs regeneration. Text readability issues, poor composition, or brand mismatch
- Below 5: Reject. Regenerate with adjusted prompt
Step 9: Aggregate Costs
Read banana cost data from ~/.banana/costs.json and include total creative spend
in generation-manifest.json.
Step 10: Report Results
Present a summary:
Generation complete:
Generated assets:
✓ ./ad-assets/meta/concept-1/feed-1080x1350.png
✓ ./ad-assets/tiktok/concept-1/vertical-1080x1920.png
✗ ./ad-assets/google/concept-1/landscape-1200x628.png [error reason]
Format validation: See format-report.md
Cost: $[N] total creative spend (from ~/.banana/costs.json)
Next steps:
1. Review assets in ./ad-assets/
2. Check format-report.md for any missing formats
3. Upload to your ad platform managersCost Transparency
Before generating, estimate and show the cost:
- Count the number of image briefs in campaign-brief.md
- Show estimated cost based on banana pricing tiers
- If >$1.00, ask for confirmation before proceeding
Standalone Mode (No campaign-brief.md)
When running without a campaign brief:
Platform target → dimensions used:
meta-feed → 1080×1350 (4:5)
meta-reels → 1080×1920 (9:16)
tiktok → 1080×1920 (9:16)
google-pmax → 1200×628 (1.91:1)
linkedin → 1080×1080 (1:1)
youtube → 1280×720 (16:9)
youtube-short → 1080×1920 (9:16)Use /banana generate directly with the specified prompt and aspect ratio.
Reference Files
~/.claude/skills/ads/references/image-providers.md: provider config, pricing, limits~/.claude/skills/ads/references/[platform]-creative-specs.md: per-platform specs~/.claude/skills/ads/references/brand-dna-template.md: brand injection schema
Other versions4 projects use a version of this.
Word for word · 1
- chriswestt/claude-skills★ 0100% same
Edited · 2
- Hainrixz/claude-ads★ 10293% same
- Biznomad/claude-skills★ 061% same
Wrote their own version · 1
- AgriciDaniel/claude-ads★ 10ksame name
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 repository32 other files it gives its agents.
- ads-appleSkill
- Audience Persona BuilderSkill
- ads-auditSkill
- ads-blueprint-executionSkill
- ads-blueprintSkill
- ads-budgetSkill
- ads-competitorSkill
- Platform-Specific Ad Copy GeneratorSkill
- ads-createSkill
- ads-creative-auditSkill
- ads-creativeSkill
- ads-dnaSkill
- ads-funnelSkill
- ads-googleSkill
- Scroll-Stopping Hook GeneratorSkill
- Google Ads Keyword StrategySkill
- ads-landingSkill
- ads-linkedinSkill
- ads-mathSkill
- ads-metaSkill
- ads-microsoftSkill
- ads-photoshootSkill
- ads-planSkill
- ads-quickSkill
- ads-report-pdfSkill
- adsSkill
- ads-strategySkill
- ads-testingSkill
- ads-testSkill
- ads-tiktokSkill
- Video Ad Script WriterSkill
- ads-youtubeSkill
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
Reviews can't be read right now.
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.

