Creative supply planner
Skill afelipeg/Anthropic-Skills-for-enterprise-marketing-os/skills/creative-supply-planner
30 connected Claude Skills for enterprise marketing ops. Install in-house to replace fragmented tools or reclaim outsourced operations. Marketing & Comms [working & non-working media]· CRM & Growth · Shopper & Trade · RGM · Finance.
npx -y skills add afelipeg/Anthropic-Skills-for-enterprise-marketing-os --skill creative-supply-plannerAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
One thing to look at
- 1 stars1 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
What its author says it does
Copied from the file, not written here
Plans the creative asset supply chain required for campaigns, CRM, media, content, personalization, testing, localization, and optimization. Use when defining asset requirements, creative versions, format matrices, production workload, creative fatigue risk, GenAI production support, or campaign content operations. Also trigger when someone says "what assets do we need?", "how many versions?", "plan the creative", "are we ready for launch?", "creative production plan", "format matrix", or when media-routing-planner or crm-journey-architect define channels that need creative. Even casual phrasing like "do we have enough creative?", "when do we need to refresh?", "what can AI produce?", or "how much production work is this?" should activate this skill.
SKILL.md
10.4 KB, as published. Nobody here has run it
Creative Supply Planner
Design the creative supply chain needed to execute campaigns without bottlenecks, asset gaps, QA failures, or performance fatigue. Treat creative assets like construction materials: the right assets must be specified, produced, versioned, delivered, checked, and replaced on time.
How This Skill Orchestrates
- Script execution (
scripts/asset_matrix_builder.py): Combinatorial calculator — channels × placements × audiences × messages × geos × languages = total asset matrix. Estimates production hours, identifies GenAI-eligible work, detects bottlenecks - Script execution (
scripts/fatigue_refresh_calculator.py): Estimates when assets need rotation per channel based on empirical fatigue windows. Outputs a refresh schedule with variant gap analysis - Reference lookup (
references/channel_format_requirements.md): Platform-specific specs (Meta, TikTok, YouTube, Google Display, LinkedIn, email, OOH, CTV) with sizes, file types, character limits, restrictions - Reference lookup (
references/genai_production_guidelines.md): GenAI tool selection (Firefly, GenStudio, Claude, Runway, Midjourney), brand safety rules, when NOT to use GenAI, cost comparison vs traditional, production workflow - Upstream context (Claude): Pull channel allocation from
media-routing-planner, journey channels fromcrm-journey-architect, audience segments fromaudience-segmentation-brief - Visual output (Visualizer): Asset matrix dashboard + production load chart + fatigue schedule + GenAI opportunities
Model decision: Combinatorial math + rule-based scheduling (Capacity layer). Not ML — we're counting permutations (channels × audiences × formats) and applying empirical fatigue windows. The GenAI eligibility scoring is rule-based (asset type → AI %, not a trained classifier).
70/30 on creative production: ~70% AI-operated (resizing, adaptation, copy variants, template fills, GenAI generation with human review, naming/tagging, spec QA). ~30% human (concept ideation, art direction, brand judgment, compliance review, final approval, complex video editing).
Quick Reference
| Resource | Purpose | Usage |
|---|---|---|
scripts/asset_matrix_builder.py | Combinatorial asset matrix (12 channel/placement types, GenAI eligibility per asset type, production hours estimation, bottleneck detection, 70/30 split calculation, QA checklist) | python asset_matrix_builder.py --input config.json --output matrix.json |
scripts/fatigue_refresh_calculator.py | Fatigue window scheduling per channel/asset type, variant gap analysis, refresh date calculation, risk scoring | python fatigue_refresh_calculator.py --input assets.json --output schedule.json |
references/channel_format_requirements.md | Platform-specific specs: Meta (feed/stories/reels), TikTok, YouTube (pre-roll/bumper/shorts), Google Display (standard + HTML5), LinkedIn, email, OOH/DOOH, CTV | Read for format specs before building the matrix |
references/genai_production_guidelines.md | GenAI tool selection, brand safety rules (8 rules), when NOT to use GenAI (7 scenarios), 10-step AI production workflow, cost comparison table (traditional vs GenAI) | Read when estimating GenAI savings and setting production workflow |
How to Use the Scripts
# Step 1: Build the asset matrix
from scripts.asset_matrix_builder import AssetMatrixBuilder
config = {
"client_name": "AcmeAuto MX",
"campaign_name": "Q3 2026 Summer Campaign",
"channels": ["meta_feed", "meta_stories", "tiktok_infeed", "youtube_preroll", "google_display", "email"],
"audiences": ["New prospects", "Existing owners"],
"messages": ["Summer offer", "Trade-in benefit"],
"geos": ["Mexico City", "Monterrey"],
"languages": ["es"],
"production_budget_hours": 120,
"timeline_days": 21,
}
matrix = AssetMatrixBuilder(config).build()
# Step 2: Check fatigue refresh needs
from scripts.fatigue_refresh_calculator import FatigueRefreshCalculator
asset_groups = [
{"channel": "Meta", "asset_type": "static", "current_variants": 3, "launch_date": "2026-07-01", "campaign_duration_days": 90},
{"channel": "TikTok", "asset_type": "video", "current_variants": 2, "launch_date": "2026-07-01", "campaign_duration_days": 90},
]
schedule = FatigueRefreshCalculator(asset_groups).calculate()
Process
Step 1 — Define campaign objective and funnel role
What is the campaign trying to achieve? Brand awareness needs high-impact hero assets. Conversion needs variant-rich, personalized formats.
Step 2 — Map channels and placements
Pull from media-routing-planner output. List every channel and placement that needs creative assets.
Step 3 — Identify required formats and specs
For each channel/placement, lookup specs in references/channel_format_requirements.md. Note file types, sizes, character limits, safe zones.
Step 4 — Map creative variants
Define the versioning dimensions: audiences × messages × geos × languages. The asset matrix builder calculates the combinatorial total.
Step 5 — Identify production source per asset
Classify each asset: net new production, adaptation from existing, localization, resize, GenAI generation, or template-based. This determines hours per asset.
Step 6 — Identify GenAI opportunities
Review references/genai_production_guidelines.md. Score each asset type for GenAI eligibility. Flag assets where GenAI should NOT be used (regulated content, hero imagery, celebrity likeness).
Step 7 — Define QA requirements
Apply the 13-item QA checklist from the asset matrix builder: brand, legal, copy, specs, UTMs, accessibility, naming, localization, mobile, personalization, client approval.
Step 8 — Define approval workflow
Who approves what? Client approval for concepts, legal for claims/disclaimers, brand for visual identity, platform for ad policy compliance.
Step 9 — Calculate fatigue and refresh schedule
Run the fatigue calculator to determine when each channel's creative needs rotation. Identify variant gaps (current variants vs. needed for campaign duration).
Step 10 — Produce the creative supply plan
Generate the full matrix, production load, bottlenecks, GenAI savings, refresh schedule, and recommendations.
Output Format
Produce in TWO forms: inline visual dashboard (Visualizer) and structured markdown plan.
Visual Dashboard (Primary)
Render as inline HTML widget:
- Header with campaign name, total assets, total production hours, GenAI savings %
- Asset count cards — one card per channel showing asset count, production hours, GenAI-eligible count
- Versioning formula display — "2 audiences × 2 messages × 2 geos × 1 language = 8× multiplier"
- Production load bar — stacked by production source (new / adaptation / resize / GenAI)
- Fatigue schedule timeline — per channel, showing refresh dates and variant status (🟢 sufficient / 🔴 gap)
- Bottleneck alerts — capacity, video-heavy, version overload flags
sendPrompt()buttons: "Run campaign QA for these assets" →campaign-launch-qa, "Check team capacity for this production load" →fte-capacity-sizing
Markdown Plan (Secondary)
## 🎨 CREATIVE SUPPLY PLAN — [Campaign] — [Client]
### Creative supply verdict
[Sufficient / At risk / Insufficient — with rationale]
### Asset requirement matrix
| Channel | Placement | Format | Audience | Message | Geo | Source | Hours | GenAI | Status |
[Full matrix — sorted by channel then placement]
### Versioning summary
| Dimension | Variants | Rationale |
[Audiences, messages, geos, languages, total multiplier]
### Production load
| Source type | Asset count | Hours | % of total |
[New, adaptation, resize, localization, GenAI, template]
Total: [X] assets | [Y] hours → [Z] hours with GenAI ([W]% savings)
### Creative fatigue schedule
| Channel | Type | Current variants | Needed | Refresh window | Next rotation | Risk |
[Per channel/type — sorted by risk]
### GenAI opportunities
| Asset type | Count | Hours saveable | Tools | Risk | Human review |
[Per asset type — sorted by hours saveable]
### Bottlenecks
[Each bottleneck: type, description, severity, fix]
### QA checklist
[13-item checklist]
### Recommendations
[What to produce first, what to cut, what to GenAI, what to delay]
Examples
Example 1 — Simple social campaign: User: "Need assets for a Meta + TikTok campaign targeting 2 audiences with 1 message. 3 weeks to produce." → Matrix: 2 channels × ~3 formats × 2 audiences = ~12 assets. Production: 48h (38h with GenAI). Fatigue: 3 Meta variants needed for 4-week campaign, 5 TikTok variants. Verdict: Tight but feasible.
Example 2 — Multi-market full-funnel: User: "Campaign across Meta, TikTok, YouTube, Google Display, email. 3 audiences, 2 messages, 3 geos, 2 languages." → Matrix: 5 channels × ~12 formats × 3 × 2 × 3 × 2 = 216+ assets. Bottleneck: version overload + video production heavy. Recommendation: reduce to 2 geos, consolidate audiences, maximize GenAI on display/email.
Skill Chaining
| Direction | Skill | Connection |
|---|---|---|
| Upstream | media-routing-planner | Channel allocation → defines which channels need creative |
| Upstream | audience-segmentation-brief | Segments → defines audience versioning dimension |
| Upstream | crm-journey-architect | Journey channels → defines CRM content needs |
| Downstream | campaign-launch-qa | Asset list → QA readiness check per asset |
| Downstream | fte-capacity-sizing | Production hours → can team absorb this workload? |
| Downstream | weekly-control-tower | Creative fatigue → monitoring trigger |