skills/tier-4-growth/creative-matrix/SKILL.md
Generate Meta/Facebook ad creative concepts using a 3x3x3 Creative Multiplication framework (3 messaging angles x 3 formats x 3 funnel stages = 27 unique concepts). Produces structured briefs with copy, format specs, and targeting. Optionally generates draft image and video assets.
npx skillsauth add pbc-os/agent-skills-public creative-matrixInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Generate a full set of ad creative concepts for any brand using the Creative Multiplication framework by Curtis Howland. The framework produces 27 unique creative concepts by combining 3 messaging angles (Pain Point, Desire, Social Proof) x 3 creative formats (Static, Video, Carousel) x 3 funnel stages (TOF, MOF, BOF). Each concept is distinct enough to avoid auction overlap in Meta's algorithm.
Attribution: The Creative Multiplication framework was created by Curtis Howland, based on $30M+ in Meta ad spend. This skill implements his methodology as published on LinkedIn.
Brief/copy generation requires no additional tools. Asset generation is optional:
python3 -c "from google import genai; print('ok')" and GEMINI_API_KEY in environment. Alternatively: fal.ai MCP server (Flux, SDXL)generate_image.py → edit_image.py → make_transparent.py → pngquant). See nano-banana skill's references/web-asset-workflow.mdTo detect availability, check if nano-banana scripts are accessible before offering asset generation:
python3 -c "from google import genai; print('nano-banana: ok')"
Before generating concepts, collect the following from the user. Ask concisely — do not overwhelm with questions. Prioritize the first three; the rest are helpful but optional.
Load references/framework.md for the full framework reference including angles, formats, funnel stages, sub-triggers, benchmarks, and combination examples.
For each concept in the matrix, produce a structured brief:
## [Cell ID] — [Funnel] x [Format] x [Angle]
**Hook/Headline**: [The opening line or visual hook]
**Body Copy**: [Supporting copy, 2-3 sentences max]
**CTA**: [Call to action]
**Sub-Angle**: [Which sub-angle: frustration/fear/regret, aspiration/freedom/status, testimony/authority/relatability]
**Triggers**: [Psychological triggers activated]
**Format Spec**: [Dimensions, duration, card count, production notes]
**Targeting**: [Funnel stage targeting notes]
**Priority**: [High/Medium/Low based on rules below]
Apply these rules when assigning priority and recommending test order:
When the user selects Starter tier or does not specify, generate these 6 as a minimum viable test:
If asset generation tools are available and the user requests assets:
generate_image.py:
# Feed static (1080x1080 = 1:1)
python3 scripts/generate_image.py "{hook visual description}, {brand aesthetic}, {product in context}" \
--aspect-ratio 1:1 --output ./assets/ --filename tof-static-pain-v1.png
# Stories/Reels static (1080x1920 = 9:16)
python3 scripts/generate_image.py "{same concept adapted for vertical}" \
--aspect-ratio 9:16 --output ./assets/ --filename tof-static-pain-stories-v1.png
# Generate product on white bg → remove bg → make transparent → composite
python3 scripts/generate_image.py "{product}, on a simple white background" \
--output ./assets/ --filename product-raw.png
python3 scripts/edit_image.py \
"Remove the background completely. Make the background fully transparent. Keep only the main subject with clean edges. Output as PNG with alpha transparency." \
--images ./assets/product-raw.png --output ./assets/ --filename product-keyed.png
python3 scripts/make_transparent.py ./assets/product-keyed.png \
--output ./assets/ --filename product-transparent.png
pngquant --quality=65-85 --force --output ./assets/product-transparent.png \
./assets/product-transparent.png
Then composite the transparent product onto ad backgrounds using edit_image.py with the product + background as multi-image input.generate_image.py with --aspect-ratio 1:1edit_image.py:
# Generate card 1, then use it as style reference for cards 2-5
python3 scripts/edit_image.py \
"Create card 2 of a carousel in the exact same visual style. {card 2 content description}" \
--images ./assets/carousel-card-1.png --output ./assets/ --filename carousel-card-2.png
After generating all concepts, provide a summary table:
| # | Funnel | Format | Angle | Sub-Angle | Hook (short) | Priority | |---|--------|--------|-------|-----------|--------------|----------|
Follow with:
See examples/starter-set-example.md for a complete example of the 6-concept starter set generated for a premium butcher shop. Use this as a reference for the expected output format, level of detail, and quality bar.
| Format | Dimensions | Notes | |--------|-----------|-------| | Static (Feed) | 1080x1080 or 1080x1350 | 1350 for more real estate | | Static (Stories/Reels) | 1080x1920 | Full screen vertical | | Video (Feed) | 1080x1080 or 1080x1350 | First 3 sec = everything | | Video (Stories/Reels) | 1080x1920 | 15s or 30s preferred | | Carousel (Feed) | 1080x1080 per card | 3-5 cards typical |
tools
Generate and iteratively refine USPTO-style patent figure drawings from provisional patent application markdown files, using nano-banana for v1 generation and targeted single-fix edits for v2+ iteration.
data-ai
Weekly revenue / sales forecasting for small businesses with multiple locations or product lines. Blends recent trend + seasonal baseline + YoY growth with per-entity holiday multipliers and week-of-month adjustments. Ships autoresearch-compatible eval and parameters so you can tune it on your own historical data.
data-ai
Analyze email, calendar, and file patterns to discover repeatable workflows that AI agents can automate.
testing
Automated daily digest for small business owners. Combines email triage, calendar agenda, open tasks, and business KPIs into a single morning briefing. Composable — works with whatever data sources are available. Urgent emails require body inspection and explicit escalation signals — never classified from sender/timing metadata alone.