算法艺术创作
algorithmic-art
通过代码和可调参数创作生成艺术与交互式视觉效果。
suede-ad-creative【设计与创意】Suede-owned paid-media creative system for hooks, headlines, primary text, static and motion concepts, platform specs, review pages, and test-ready variant batches. Use when producing or iterating ad creative from grounded product and audience inputs. NOT FOR: campaign budgets, bidding, or targeting (use suede-ads), statistical test design (use suede…
独立 GitHub 快照 · 自动分类 · 以原作者文档为准
Use this Suede performance-creative system to generate testable headlines, descriptions, primary text, and visual concepts, then iterate from real performance data.
Check for product marketing context first:
If .agents/product-marketing.md exists (or .claude/product-marketing.md, or the legacy product-marketing-context.md filename, in older setups), read it before asking questions. Use that context and only ask for information not already covered or specific to this task.
Gather this context (ask if not provided):
This skill supports four modes:
When starting fresh, you generate a full set of ad creative based on product context, audience insights, and platform best practices.
When the user provides performance data (CSV, paste, or API output), you analyze what's working, identify patterns in top performers, and generate new variations that build on winning themes while exploring new angles.
The core loop:
Pull performance data → Identify winning patterns → Generate new variations → Validate specs → Deliver
For recurring static ad production at volume (e.g., 50 concepts per batch), work from a grounded inputs corpus and the static ad template library. Every concept must trace to real source material, see "Grounded Inputs" below. To run this on a daily or weekly cadence, route the production loop to suede-marketing-loops. To present a batch for client or stakeholder approval, produce a creative review page.
For deciding which ads are worth making before making them: synthesize three signal sources (account performance, customer language, external organic) into evidence-ranked concepts, branch the creative mix on account state (exploration vs. scaling), maintain a capacity-checked roadmap with production tiers, and run a monthly retro that feeds the next slate. The full system lives in references/creative-roadmap.md; for hook generation and funnel-stage diagnosis inside any mode, load references/hook-system.md.
Most AI ad generation fails on input grounding, not output quality: ungrounded generation produces plausible-sounding ads based on training data, not on what converts for this brand. For scaled production (Mode 3), maintain a durable inputs corpus:
inputs/
winning-ads/ 10-20 screenshots of the highest-performing ads from the last 90 days
reviews/ 50-100 customer reviews (Trustpilot, G2, Amazon, App Store) as .md/.txt
comments/ Top comments from existing ad campaigns: objections, unprompted praise, customer-raised angles
brand/ Brand voice doc, hex codes, logo, product/screenshot assets
outputs/ Dated batch folders (outputs/YYYY-MM-DD/)
Why each input matters:
Grounding rules:
inputs/winning-ads/ or inputs/reviews/ is empty, stop and ask the user to populate it before generating. Do not generate ungrounded concepts as a fallback.inputs/winning-ads/ as new ads scale; refresh inputs/reviews/ and inputs/comments/ monthlyPlatforms reject or truncate creative that exceeds these limits, so verify every piece of copy fits before delivering.
| Element | Limit | Quantity |
|---|---|---|
| Headline | 30 characters | Up to 15 |
| Description | 90 characters | Up to 4 |
| Display URL path | 15 characters each | 2 paths |
RSA rules:
suede-ads, its RSA output spec mandates the full 15 headlines and 4 descriptions, ship all of them.| Element | Limit | Notes |
|---|---|---|
| Primary text | 125 chars visible (up to 2,200) | Front-load the hook |
| Headline | 40 characters recommended | Below the image |
| Description | 30 characters recommended | Below headline |
| URL display link | 40 characters | Optional |
| Element | Limit | Notes |
|---|---|---|
| Intro text | 150 chars recommended (600 max) | Above the image |
| Headline | 70 chars recommended (200 max) | Below the image |
| Description | 100 chars recommended (300 max) | Appears in some placements |
| Element | Limit | Notes |
|---|---|---|
| Ad text | 80 chars recommended (100 max) | Above the video |
| Display name | 40 characters | Brand name |
| Element | Limit | Notes |
|---|---|---|
| Tweet text | 280 characters | The ad copy |
| Headline | 70 characters | Card headline |
| Description | 200 characters | Card description |
For detailed specs and format variations, see references/platform-specs.md.
For static ad structure, use the 15-template library in references/static-ad-templates.md, layout frameworks (Us vs. Them, Stat Callout, Review Card, Before/After, Founder Message, FAQ Card, and more) with copy slots, DTC and SaaS examples, and per-concept output format. Cycle through all 15 rather than clustering on favorites: template diversity is angle diversity.
When the concept is an iOS-native reveal video, an iMessage thread, a ChatGPT answer, an Apple Notes confessional, or an AirDrop share, where the screen surface itself is the ad, read references/imessage-video-ads.md before scripting. It carries surface selection, concept angles, pacing rules, production routes, and the compliance rules for dramatized conversations.
When the concept is a faceless motion/explainer video (15–45s, generated stills → image-to-video motion → TTS → captions), read references/motion-video-ads.md before writing prompts. It carries the pipeline, the visual-style library with fill-in prompt formulas, the brand-slots contract, and the QC gotchas.
When you need to pick an image, video, voice, or code-based generation tool, or price a batch, read references/generative-tools.md. It owns the tool-class roster (described by capability, not brand), per-placement image specs, and cost comparisons; those age, so use its numbers rather than any you remember.
Recommended workflow for scaled production:
Before writing individual headlines, establish 3-5 distinct angles, different reasons someone would click. Each angle should tap into a different motivation.
Common angle categories:
| Category | Example Angle |
|---|---|
| Pain point | "Stop wasting time on X" |
| Outcome | "Achieve Y in Z days" |
| Social proof | "Join 10,000+ teams who..." |
| Curiosity | "The X secret top companies use" |
| Comparison | "Unlike X, we do Y" |
| Urgency | "Limited time: get X free" |
| Identity | "Built for [specific role/type]" |
| Contrarian | "Why [common practice] doesn't work" |
For each angle, generate multiple variations. Vary:
At volume (10+ variations), close with a wild-card pass: 3-5 concepts on angles nobody asked for: contrarian, emotional, uncomfortably specific. These are where the outliers come from, and they cost one extra pass.
Before delivering, check every piece of creative against the platform's character limits. Flag anything that's over and provide a trimmed alternative.
Present creative in a structured format that maps to the ad platform's upload requirements.
When the user provides performance data, follow this process:
Look at the top-performing creative (by CTR, conversion rate, or ROAS, ask which metric matters most) and identify:
Look at the worst performers and identify:
Name the underperformers explicitly and say why the angle failed. Do not open by praising the existing set, and do not soften a losing angle into "needs more testing" when the declared metric has already resolved it at sufficient volume, say it lost, and retire it.
Create new creative that:
Track what was learned and what's being tested:
## Iteration Log
- Round: [number]
- Date: [date]
- Top performers: [list with metrics]
- Winning patterns: [summary]
- New variations: [count] headlines, [count] descriptions
- New angles being tested: [list]
- Angles retired: [list]
Strong headlines:
Avoid:
Never ship these strings. They are the ad-copy defaults a model produces unprompted, and each is generic across every product in every category: the definition of a wasted slot. The fix is always the same: substitute the specific number, the specific verb, or the specific customer sentence from the grounding inputs. If a headline would be true of a competitor's product too, it is one of these in disguise.
Descriptions should complement headlines, not repeat them. Use descriptions to:
Organize by angle, with character counts:
## Angle: [Pain Point: Manual Reporting]
### Headlines (30 char max)
1. "Stop Building Reports by Hand" (29)
2. "Automate Your Weekly Reports" (28)
3. "Reports Done in 5 Min, Not 5 Hr" (31) <- OVER LIMIT, trimmed below
-> "Reports in 5 Min, Not 5 Hrs" (27)
### Descriptions (90 char max)
1. "Marketing teams save 10+ hours/week with automated reporting. Start free." (73)
2. "Connect your data sources once. Get automated reports forever. No code required." (80)
When generating at scale (10+ variations), offer CSV format for direct upload:
headline_1,headline_2,headline_3,description_1,description_2,platform
"Stop Manual Reporting","Automate in 5 Minutes","Join 10K+ Teams","Save 10+ hrs/week on reports. Start free.","Connect data sources once. Reports forever.","google_ads"
For scaled static batches, save to a dated folder with an index:
outputs/YYYY-MM-DD/
INDEX.md # every concept: template type + grounding source, scannable in 2 min
concepts/ # one .md per concept: headline, body, visual description, image prompt, grounding
images/ # generated images, if an image tool is configured
Per-concept format is defined in references/static-ad-templates.md. The human workflow this supports: open the folder, scan INDEX.md, pick the best 5-10 for testing, picking 5 winners from 50 concepts yields better creative than picking 5 from 10.
When a person who isn't you needs to review and pick, a client, a partner, a stakeholder, produce a creative review page: a self-contained HTML artifact that presents each concept as an in-feed platform mockup (Instagram/Facebook, with a whitelist-handle toggle), breaks carousels into a labeled frame-by-frame storyboard, lets them toggle headline/copy variations, and discloses what's grounded in real assets. It's the visual upgrade to INDEX.md, a decision made off one link instead of by reading markdown. The template ships at assets/creative-review-template.html (one file, no build, hostable anywhere); populate its DATA object from your generated concepts. Full data model, grounding rules (the disclosure block is required), and delivery in references/creative-review-page.md.
When iterating, include a summary:
## Performance Summary
- Analyzed: [X] headlines, [Y] descriptions
- Top performer: "[headline]": [metric]: [value]
- Worst performer: "[headline]": [metric]: [value]
- Pattern: [observation]
## New Creative
[organized variations]
## Recommendations
- [What to pause, what to scale, what to test next]
Every mode clears this gate before anything is handed over. It is not mode-specific and it is not optional.
Any failure means fix it before delivering. Do not ship a batch with the failure noted as a caveat.
This pack does not ship ad-platform connectors or CLI wrappers. Use only the user's authorized platform UI, export, API, or installed connector, and verify the current official platform documentation before constructing a call.
For a performance-led batch:
suede-ads.suede-ads.suede-ab-testing.suede-customer-research.suede-copy or suede-marketing-loops.suede-deslop.suede-ad-creative.