Cross-Platform Creative Quality Audit
Process
- Brand context check — look for
./branding.md. If not found, run the Brand Info Collection flow below before proceeding.
- Collect creative assets or performance data from active platforms
- Read
ads/references/platform-specs.md for creative specifications
- Read
ads/references/creative-volume.md for per-platform volume and refresh requirements
- Read
ads/references/benchmarks.md for CTR/engagement benchmarks
- Read
ads/references/scoring-system.md for weighted scoring algorithm
- Evaluate creative quality per platform
- Run Brand Consistency Audit using branding.md (advisory, not scored)
- Assess cross-platform creative consistency
- Generate production priority recommendations
- Offer to generate new creatives using
/infographic-v2 for any flagged gaps
Brand Info Collection
Run this at the start if ./branding.md does not exist in the project root.
Goal: Extract the brand's actual styling, copy, and identity — primarily from their
website — to personalize the creative audit and enable on-brand creative generation via
infographic-v2.
Step 1: Ask for brand name and website
"Before I audit your creatives, I need your brand context to check consistency. What's your brand name and website URL?"
Ask for the brand name and website URL first. If the user provides a URL, immediately
run the website extraction (step 2) before asking any further questions.
Step 2: Website extraction (when URL provided)
Do not guess or assume anything. Extract the actual values from the live website.
2a — Fetch the homepage
Use WebFetch on the homepage URL. Extract ALL of the following:
Visual identity:
- All colors used prominently: backgrounds, buttons, headers, links, text, borders,
footer. Report exact hex values. Identify which is primary (most prominent brand color,
usually on CTAs and headers), secondary, accent, background, and text color.
- Font families: read the actual
font-family declarations used on headings and body text.
Look in CSS, <link> tags for Google Fonts / Typekit / custom font URLs, and inline styles.
Report the exact font names (e.g., "Plus Jakarta Sans", "DM Sans", "Geist"), not generic
fallbacks like "sans-serif".
- Logo: describe the logo from the header/nav. Note if it's text-based, icon-based, or both.
- Visual style: describe what you observe — minimal with whitespace? Bold with saturated
colors? Dark mode? Gradient-heavy? Illustration-driven? Corporate?
- Button styles: rounded, square, pill-shaped? What color? What text color on buttons?
- Spacing and density: tight and information-dense, or airy and spacious?
Copy and messaging:
- Tagline / slogan from the hero section
- Hero headline: the main H1 or hero text
- Value proposition: what they do and why it matters
- Key benefits: any benefit sections, feature highlights, selling points
- Social proof: testimonials, customer logos, metrics, awards, trust badges, star ratings
- CTAs: every call-to-action button text on the page
- Navigation items: main nav labels reveal product/service categories
Brand voice signals:
- Tone of the copy: formal or casual? Technical or plain? Playful or serious?
- Person: first person ("We help...") or second person ("You can...")?
- Specific words/phrases: any repeated brand language, trademarked terms
2b — Fetch additional pages (if needed)
If the homepage left gaps, also fetch:
/about or /about-us — company story, mission, team, more voice signals
/pricing — pricing model (free trial, freemium, tiers, contact-us)
Only fetch if there are genuine gaps. Don't fetch for the sake of it.
2c — Present extraction to user
Show everything extracted clearly:
Here's what I found on [website]:
Brand: [name]
Tagline: "[extracted tagline]"
Industry: [detected industry]
Business model: [detected model]
Colors:
Primary: [name] #[hex] — used on [CTAs, headers, etc.]
Secondary: [name] #[hex] — used on [subheadings, etc.]
Accent: [name] #[hex] — used on [highlights, badges, etc.]
Background: #[hex]
Text: #[hex]
Fonts:
Headings: [exact font name]
Body: [exact font name]
Visual style: [description of what you observed]
Button style: [pill/rounded/square], [color], [hover behavior if visible]
Voice: [formal/casual], [serious/playful], [technical/simple]
Hero: "[exact hero headline]"
Value prop: "[extracted value proposition]"
CTAs found: "[CTA 1]", "[CTA 2]", "[CTA 3]"
Social proof: [what's shown — logos, metrics, testimonials]
Does this look right? Anything to correct or add?
The user confirms or corrects. Only after confirmation, proceed with remaining questions.
Step 3: Fill gaps with questions
After website extraction, only ask about things that could not be determined from
the website. Skip any section where the website gave a clear answer.
Likely still needed (websites rarely cover these):
- Target audience: who they sell to (job title/role, age), pain points, buying triggers,
where they spend time online
- Ad-specific guidelines: confirm extracted CTAs, pricing in ads?, required elements
(trust badges, ratings), anything forbidden
- Brand voice refinement (only if ambiguous from the site): words they always/never use
Do NOT re-ask about colors, fonts, tagline, visual style, or value proposition if the
website extraction already captured them.
Step 4: No-URL fallback
If the user does not provide a website URL, collect everything manually:
- Brand colors — primary, secondary, accent (hex codes)
- Typography — headline and body fonts
- Visual style — clean/minimal, bold/colorful, professional, playful, premium
- Tagline / value proposition
- Brand voice — formal vs casual (1-10), serious vs playful, technical vs simple
- Target audience — who they sell to, main pain points
- Approved CTAs
- Anything forbidden in ads
Step 5: Save branding.md
Write ./branding.md in the project root using the canonical format from
ads/references/brand-context.md.
Every value in branding.md must come from the website extraction or the user's direct
answers. Never fill in defaults or placeholders. If a field has no data, leave it blank
or omit the section.
Validate before writing:
- Brand name is not empty
- At least one color with hex value exists
- At least one audience description exists
- Business model is identified
Step 6: Confirm and continue
Brand context saved: ./branding.md
Brand: [name]
Colors: [primary hex] [secondary hex] [accent hex]
Fonts: [heading font] / [body font]
Voice: [tone summary]
Audience: [persona summary]
Proceeding with creative audit...
Then continue with the normal creative audit flow (step 2 onward in the Process section).
Per-Platform Assessment
Google Ads Creative
- RSA: ≥8 unique headlines, ≥3 descriptions per ad group
- RSA ad strength: "Good" or "Excellent"
- Pin usage: minimal and strategic (over-pinning kills RSA flexibility)
- Extensions: sitelinks (≥4), callouts (≥4), structured snippets, image
- PMax asset groups: text + image + video + optional product feed
- YouTube: video quality, hook, subtitles (see ads-youtube sub-skill)
Meta Ads Creative
- Format diversity: ≥3 formats active (image, video, carousel, collection)
- Creative volume: Standard ≥5 per ad set (ideal 5-8 for Andromeda); ASC ≥50 (ideal 50-150)
- Fatigue detection: CTR declining >20% over 14 days = FAIL; top brands refresh every 10.4 days
- Video length: 15s max Stories/Reels, 30s max Feed
- UGC/testimonial content tested
- Advantage+ Creative enhancements enabled
- Headline under 40 chars, primary text under 125 chars
LinkedIn Creative
- Thought Leader Ads active, ≥30% budget for B2B
- Format diversity: ≥2 formats tested (single image, carousel, video, document)
- Video ads tested
- Creative refresh: every 4-6 weeks
- Professional tone appropriate for platform
TikTok Creative
- ≥6 creatives per ad group (Critical; top performers: 10-20/campaign; Smart+ launch: ≥4)
- All video 9:16 vertical 1080x1920 (non-negotiable)
- Native-looking content (not corporate)
- Hook in first 1-2 seconds
- Fatigue onset: 3-5 days; typical lifespan: 7-10 days; refresh every 10-14 days
- No creative active >7 days with declining CTR; hard ceiling: 30 days regardless
- Spark Ads tested (~3% CTR vs ~2% standard)
- Sound-on optimization (never silent)
- Safe zone compliance: X:40-940, Y:150-1470
- Trending audio used
Microsoft Creative
- RSA: ≥8 headlines, ≥3 descriptions
- Multimedia Ads tested (unique rich format)
- Ad copy optimized for Bing demographics (older, higher income, professional)
- Action Extension utilized (unique to Microsoft)
- Filter Link Extension tested
Creative Fatigue Detection
Signals of Fatigue
| Signal |
Threshold |
Action |
| CTR declining |
>20% over 14 days |
Refresh creative |
| Frequency (Meta) |
>5.0 prospecting, >12.0 retargeting |
New audience or creative |
| Watch time declining (TikTok) |
<3s average |
New hook needed |
| QS declining (Google) |
Drop of 2+ points |
Refresh ad copy |
| Engagement rate drop |
>30% decline |
Full creative overhaul |
Refresh Cadence by Platform
| Platform |
Recommended Refresh |
| Google Search |
Every 8-12 weeks |
| Meta |
Every 10-14 days (top brands avg 10.4 days); hard ceiling 90 days |
| LinkedIn |
Every 2-4 weeks; 80/20 winner/testing split |
| TikTok |
Every 10-14 days (fatigue onset 3-5 days, lifespan 7-10 days); hard ceiling 30 days |
| Microsoft |
Every 8-12 weeks |
| YouTube |
Every 4-8 weeks |
Format Diversity Matrix
Evaluate which formats are active per platform:
| Format |
Google |
Meta |
LinkedIn |
TikTok |
Microsoft |
| Static Image |
RSA image ext |
✅ |
✅ |
❌ |
Multimedia |
| Video |
YouTube, PMax |
✅ |
✅ |
✅ (required) |
❌ |
| Carousel |
❌ |
✅ |
✅ |
❌ |
❌ |
| Collection |
❌ |
✅ |
❌ |
❌ |
❌ |
| Document |
❌ |
❌ |
✅ |
❌ |
❌ |
| Shopping |
PMax, Shopping |
Catalog |
❌ |
Shop |
Shopping |
Universal Creative Best Practices
Cross-Platform Safe Zone
- 900x1000px usable area works across all vertical placements
- Keep critical elements centered and within safe margins
- Test on mobile devices (75%+ of ad impressions are mobile)
Ad Copy Principles
- Lead with benefit, not feature
- Include clear CTA (what should they do next?)
- Match ad message to landing page (message match)
- Use numbers and specifics over vague claims
- Test emotional vs rational appeals
Video Production Standards
- H.264 codec, AAC audio, MP4 container
- Minimum 720p (1080p preferred)
- Subtitles/captions always (accessibility + sound-off viewing)
- Brand mention within first 5s (awareness) or at CTA (performance)
Brand Consistency Audit (Advisory)
Using ./branding.md, evaluate these dimensions. Results are advisory only — they
appear as "Brand Consistency Notes" in the report but are NOT included in the health score.
| Dimension |
What to Check |
| Color compliance |
Ad visuals use brand primary/secondary colors (hex match) |
| Typography |
Headlines and body text match brand font guidelines |
| Tone alignment |
Ad copy matches brand voice dimensions (formal/casual, etc.) |
| CTA consistency |
CTAs match approved CTA list from branding.md |
| Visual style |
Photography/illustration style matches brand guidelines |
| Forbidden elements |
No forbidden words or elements present in ads |
| Audience match |
Messaging addresses documented persona pain points |
Creative Generation with Infographic v2
After the audit, when the production priority list identifies creatives to produce (static images, infographics, data visuals for ads), offer to generate them using /infographic-v2.
Flow:
- Identify the highest-priority static creative gaps from the audit
- Ask: "I can generate ad creatives for the top gaps using the infographic tool. Want me to start with [highest priority gap]?"
- If yes, invoke
/infographic-v2 — it will pick up ./branding.md for brand-consistent output
- The infographic skill handles concept selection, visualization approach, and generation
- After generation, return to the next creative gap or wrap up
What infographic-v2 uses from branding.md:
- Brand colors → color palette for the infographic
- Typography → font selection
- Visual style → style anchors
- Brand voice → headline and copy tone
- Approved CTAs → CTA text in ad creatives
Output
Creative Quality Report
Cross-Platform Creative Health
Google: ████████░░ X/X checks passing
Meta: ██████████ X/X checks passing
LinkedIn: ███████░░░ X/X checks passing
TikTok: █████░░░░░ X/X checks passing
Microsoft: ████████░░ X/X checks passing
Deliverables
CREATIVE-AUDIT-REPORT.md — Per-platform creative assessment
- Fatigue alerts (any creative past refresh cadence)
- Format diversity gaps per platform
- Production priority list (most impactful creative to produce next)
- Quick Wins (format conversions, CTA changes, Spark Ads setup)
- Generated ad creatives via infographic-v2 (if user opts in)
1---2name: ads-creative3description: Cross-platform creative quality audit covering ad copy, video, image, and format diversity across all platforms. Detects creative fatigue, evaluates platform-native compliance, and provides production priorities. Collects brand context and creates branding.md if missing. Uses infographic-v2 for generating ad creatives. Use when user says "creative audit", "ad creative", "creative fatigue", "ad copy", "ad design", or "creative review".4---56# Cross-Platform Creative Quality Audit78## Process9101. **Brand context check** — look for `./branding.md`. If not found, run the Brand Info Collection flow below before proceeding.112. Collect creative assets or performance data from active platforms123. Read `ads/references/platform-specs.md` for creative specifications134. Read `ads/references/creative-volume.md` for per-platform volume and refresh requirements145. Read `ads/references/benchmarks.md` for CTR/engagement benchmarks156. Read `ads/references/scoring-system.md` for weighted scoring algorithm167. Evaluate creative quality per platform178. Run Brand Consistency Audit using branding.md (advisory, not scored)189. Assess cross-platform creative consistency1910. Generate production priority recommendations2011. **Offer to generate new creatives** using `/infographic-v2` for any flagged gaps2122---2324## Brand Info Collection2526Run this at the start if `./branding.md` does not exist in the project root.2728**Goal:** Extract the brand's actual styling, copy, and identity — primarily from their29website — to personalize the creative audit and enable on-brand creative generation via30infographic-v2.3132### Step 1: Ask for brand name and website3334> "Before I audit your creatives, I need your brand context to check consistency. What's your brand name and website URL?"3536Ask for the brand name and website URL first. If the user provides a URL, immediately37run the website extraction (step 2) before asking any further questions.3839### Step 2: Website extraction (when URL provided)4041**Do not guess or assume anything.** Extract the actual values from the live website.4243#### 2a — Fetch the homepage4445Use WebFetch on the homepage URL. Extract ALL of the following:4647**Visual identity:**48- All colors used prominently: backgrounds, buttons, headers, links, text, borders,49 footer. Report exact hex values. Identify which is primary (most prominent brand color,50 usually on CTAs and headers), secondary, accent, background, and text color.51- Font families: read the actual `font-family` declarations used on headings and body text.52 Look in CSS, `<link>` tags for Google Fonts / Typekit / custom font URLs, and inline styles.53 Report the exact font names (e.g., "Plus Jakarta Sans", "DM Sans", "Geist"), not generic54 fallbacks like "sans-serif".55- Logo: describe the logo from the header/nav. Note if it's text-based, icon-based, or both.56- Visual style: describe what you observe — minimal with whitespace? Bold with saturated57 colors? Dark mode? Gradient-heavy? Illustration-driven? Corporate?58- Button styles: rounded, square, pill-shaped? What color? What text color on buttons?59- Spacing and density: tight and information-dense, or airy and spacious?6061**Copy and messaging:**62- Tagline / slogan from the hero section63- Hero headline: the main H1 or hero text64- Value proposition: what they do and why it matters65- Key benefits: any benefit sections, feature highlights, selling points66- Social proof: testimonials, customer logos, metrics, awards, trust badges, star ratings67- CTAs: every call-to-action button text on the page68- Navigation items: main nav labels reveal product/service categories6970**Brand voice signals:**71- Tone of the copy: formal or casual? Technical or plain? Playful or serious?72- Person: first person ("We help...") or second person ("You can...")?73- Specific words/phrases: any repeated brand language, trademarked terms7475#### 2b — Fetch additional pages (if needed)7677If the homepage left gaps, also fetch:78- `/about` or `/about-us` — company story, mission, team, more voice signals79- `/pricing` — pricing model (free trial, freemium, tiers, contact-us)8081Only fetch if there are genuine gaps. Don't fetch for the sake of it.8283#### 2c — Present extraction to user8485Show everything extracted clearly:8687```88Here's what I found on [website]:8990 Brand: [name]91 Tagline: "[extracted tagline]"92 Industry: [detected industry]93 Business model: [detected model]9495 Colors:96 Primary: [name] #[hex] — used on [CTAs, headers, etc.]97 Secondary: [name] #[hex] — used on [subheadings, etc.]98 Accent: [name] #[hex] — used on [highlights, badges, etc.]99 Background: #[hex]100 Text: #[hex]101102 Fonts:103 Headings: [exact font name]104 Body: [exact font name]105106 Visual style: [description of what you observed]107 Button style: [pill/rounded/square], [color], [hover behavior if visible]108109 Voice: [formal/casual], [serious/playful], [technical/simple]110 Hero: "[exact hero headline]"111 Value prop: "[extracted value proposition]"112 CTAs found: "[CTA 1]", "[CTA 2]", "[CTA 3]"113 Social proof: [what's shown — logos, metrics, testimonials]114115Does this look right? Anything to correct or add?116```117118The user confirms or corrects. Only after confirmation, proceed with remaining questions.119120### Step 3: Fill gaps with questions121122After website extraction, only ask about things that **could not** be determined from123the website. Skip any section where the website gave a clear answer.124125**Likely still needed (websites rarely cover these):**126127- Target audience: who they sell to (job title/role, age), pain points, buying triggers,128 where they spend time online129- Ad-specific guidelines: confirm extracted CTAs, pricing in ads?, required elements130 (trust badges, ratings), anything forbidden131- Brand voice refinement (only if ambiguous from the site): words they always/never use132133**Do NOT re-ask about colors, fonts, tagline, visual style, or value proposition if the134website extraction already captured them.**135136### Step 4: No-URL fallback137138If the user does not provide a website URL, collect everything manually:1391401. **Brand colors** — primary, secondary, accent (hex codes)1412. **Typography** — headline and body fonts1423. **Visual style** — clean/minimal, bold/colorful, professional, playful, premium1434. **Tagline / value proposition**1445. **Brand voice** — formal vs casual (1-10), serious vs playful, technical vs simple1456. **Target audience** — who they sell to, main pain points1467. **Approved CTAs**1478. **Anything forbidden** in ads148149### Step 5: Save branding.md150151Write `./branding.md` in the project root using the canonical format from152`ads/references/brand-context.md`.153154**Every value in branding.md must come from the website extraction or the user's direct155answers. Never fill in defaults or placeholders.** If a field has no data, leave it blank156or omit the section.157158Validate before writing:159- Brand name is not empty160- At least one color with hex value exists161- At least one audience description exists162- Business model is identified163164### Step 6: Confirm and continue165166```167Brand context saved: ./branding.md168169 Brand: [name]170 Colors: [primary hex] [secondary hex] [accent hex]171 Fonts: [heading font] / [body font]172 Voice: [tone summary]173 Audience: [persona summary]174175Proceeding with creative audit...176```177178Then continue with the normal creative audit flow (step 2 onward in the Process section).179180---181182## Per-Platform Assessment183184### Google Ads Creative185- RSA: ≥8 unique headlines, ≥3 descriptions per ad group186- RSA ad strength: "Good" or "Excellent"187- Pin usage: minimal and strategic (over-pinning kills RSA flexibility)188- Extensions: sitelinks (≥4), callouts (≥4), structured snippets, image189- PMax asset groups: text + image + video + optional product feed190- YouTube: video quality, hook, subtitles (see ads-youtube sub-skill)191192### Meta Ads Creative193- Format diversity: ≥3 formats active (image, video, carousel, collection)194- Creative volume: Standard ≥5 per ad set (ideal 5-8 for Andromeda); ASC ≥50 (ideal 50-150)195- Fatigue detection: CTR declining >20% over 14 days = FAIL; top brands refresh every 10.4 days196- Video length: 15s max Stories/Reels, 30s max Feed197- UGC/testimonial content tested198- Advantage+ Creative enhancements enabled199- Headline under 40 chars, primary text under 125 chars200201### LinkedIn Creative202- Thought Leader Ads active, ≥30% budget for B2B203- Format diversity: ≥2 formats tested (single image, carousel, video, document)204- Video ads tested205- Creative refresh: every 4-6 weeks206- Professional tone appropriate for platform207208### TikTok Creative209- ≥6 creatives per ad group (Critical; top performers: 10-20/campaign; Smart+ launch: ≥4)210- All video 9:16 vertical 1080x1920 (non-negotiable)211- Native-looking content (not corporate)212- Hook in first 1-2 seconds213- Fatigue onset: 3-5 days; typical lifespan: 7-10 days; refresh every 10-14 days214- No creative active >7 days with declining CTR; hard ceiling: 30 days regardless215- Spark Ads tested (~3% CTR vs ~2% standard)216- Sound-on optimization (never silent)217- Safe zone compliance: X:40-940, Y:150-1470218- Trending audio used219220### Microsoft Creative221- RSA: ≥8 headlines, ≥3 descriptions222- Multimedia Ads tested (unique rich format)223- Ad copy optimized for Bing demographics (older, higher income, professional)224- Action Extension utilized (unique to Microsoft)225- Filter Link Extension tested226227## Creative Fatigue Detection228229### Signals of Fatigue230| Signal | Threshold | Action |231|--------|-----------|--------|232| CTR declining | >20% over 14 days | Refresh creative |233| Frequency (Meta) | >5.0 prospecting, >12.0 retargeting | New audience or creative |234| Watch time declining (TikTok) | <3s average | New hook needed |235| QS declining (Google) | Drop of 2+ points | Refresh ad copy |236| Engagement rate drop | >30% decline | Full creative overhaul |237238### Refresh Cadence by Platform239| Platform | Recommended Refresh |240|----------|-------------------|241| Google Search | Every 8-12 weeks |242| Meta | Every 10-14 days (top brands avg 10.4 days); hard ceiling 90 days |243| LinkedIn | Every 2-4 weeks; 80/20 winner/testing split |244| TikTok | Every 10-14 days (fatigue onset 3-5 days, lifespan 7-10 days); hard ceiling 30 days |245| Microsoft | Every 8-12 weeks |246| YouTube | Every 4-8 weeks |247248## Format Diversity Matrix249250Evaluate which formats are active per platform:251252| Format | Google | Meta | LinkedIn | TikTok | Microsoft |253|--------|--------|------|----------|--------|-----------|254| Static Image | RSA image ext | ✅ | ✅ | ❌ | Multimedia |255| Video | YouTube, PMax | ✅ | ✅ | ✅ (required) | ❌ |256| Carousel | ❌ | ✅ | ✅ | ❌ | ❌ |257| Collection | ❌ | ✅ | ❌ | ❌ | ❌ |258| Document | ❌ | ❌ | ✅ | ❌ | ❌ |259| Shopping | PMax, Shopping | Catalog | ❌ | Shop | Shopping |260261## Universal Creative Best Practices262263### Cross-Platform Safe Zone264- 900x1000px usable area works across all vertical placements265- Keep critical elements centered and within safe margins266- Test on mobile devices (75%+ of ad impressions are mobile)267268### Ad Copy Principles269- Lead with benefit, not feature270- Include clear CTA (what should they do next?)271- Match ad message to landing page (message match)272- Use numbers and specifics over vague claims273- Test emotional vs rational appeals274275### Video Production Standards276- H.264 codec, AAC audio, MP4 container277- Minimum 720p (1080p preferred)278- Subtitles/captions always (accessibility + sound-off viewing)279- Brand mention within first 5s (awareness) or at CTA (performance)280281## Brand Consistency Audit (Advisory)282283Using `./branding.md`, evaluate these dimensions. Results are **advisory only** — they284appear as "Brand Consistency Notes" in the report but are NOT included in the health score.285286| Dimension | What to Check |287|-----------|--------------|288| Color compliance | Ad visuals use brand primary/secondary colors (hex match) |289| Typography | Headlines and body text match brand font guidelines |290| Tone alignment | Ad copy matches brand voice dimensions (formal/casual, etc.) |291| CTA consistency | CTAs match approved CTA list from branding.md |292| Visual style | Photography/illustration style matches brand guidelines |293| Forbidden elements | No forbidden words or elements present in ads |294| Audience match | Messaging addresses documented persona pain points |295296## Creative Generation with Infographic v2297298After the audit, when the production priority list identifies creatives to produce (static images, infographics, data visuals for ads), offer to generate them using `/infographic-v2`.299300**Flow:**3011. Identify the highest-priority static creative gaps from the audit3022. Ask: "I can generate ad creatives for the top gaps using the infographic tool. Want me to start with [highest priority gap]?"3033. If yes, invoke `/infographic-v2` — it will pick up `./branding.md` for brand-consistent output3044. The infographic skill handles concept selection, visualization approach, and generation3055. After generation, return to the next creative gap or wrap up306307**What infographic-v2 uses from branding.md:**308- Brand colors → color palette for the infographic309- Typography → font selection310- Visual style → style anchors311- Brand voice → headline and copy tone312- Approved CTAs → CTA text in ad creatives313314## Output315316### Creative Quality Report317318```319Cross-Platform Creative Health320321Google: ████████░░ X/X checks passing322Meta: ██████████ X/X checks passing323LinkedIn: ███████░░░ X/X checks passing324TikTok: █████░░░░░ X/X checks passing325Microsoft: ████████░░ X/X checks passing326```327328### Deliverables329- `CREATIVE-AUDIT-REPORT.md` — Per-platform creative assessment330- Fatigue alerts (any creative past refresh cadence)331- Format diversity gaps per platform332- Production priority list (most impactful creative to produce next)333- Quick Wins (format conversions, CTA changes, Spark Ads setup)334- **Generated ad creatives** via infographic-v2 (if user opts in)