/paper-marketing — On-Brand Visual Content in Paper MCP
Spawn parallel designer agents in Paper, each creating a unique on-brand interpretation of marketing content. Same brand system, different creative executions. Agent count and approach intelligently adapt to the user's actual goal.
Quick Reference
| Phase | What Happens | Key Tool |
|---|---|---|
| 1. Load Brand | Read brand/ files, discover Paper file, confirm with user | mcp__paper__get_basic_info() |
| 2. Goal Discovery | Interrogate user: content type, variation count, priority | AskUserQuestion |
| 3. Create Tasks | Build rich task descriptions with full brand system + content | TeamCreate + TaskCreate |
| 4. Spawn Agents | Launch N designer agents in parallel | Agent (background, Sonnet) |
| 5. Review | Screenshot artboards, compare, user selects winner | mcp__paper__get_screenshot() |
| 6. Export | Extract JSX, write handoff YAML, instruct user to export PNG | mcp__paper__get_jsx() |
| 7. Log | Update brand/assets.md, append workflow log | File writes |
For Paper MCP HTML rules, see references/paper-mcp-rules.md. For brand system extraction template, see references/brand-system-template.md. For platform-specific conventions, see references/platform-conventions.md. For agent quality rubric, see references/agent-quality-rubric.md.
Workflow
Phase 1: Load Brand System + Discover Paper File
Step 1a: Load brand context. Run mktg status --json to confirm brand files exist. Then read in parallel:
brand/voice-profile.md— tone, vocabulary, do's/don'ts, signature phrasesbrand/creative-kit.md— colors (hex + roles), fonts (families + weights + sizes), spacing rhythmbrand/positioning.md— angles, headlines, proof pointsbrand/assets.md— what already exists (avoid duplication)
Step 1b: Extract the design system. From brand files, build:
- Palette: every color token with hex and role (bg, accent, text, muted, divider)
- Typography: font families, weights, sizes for each role (display, section, body, label, stat)
- Layout tokens: slide dimensions, padding, content area, footer structure
- Voice rules: signature phrases, copy rules, words to use/avoid
- Positioning angles: available angles and their headline directions
If creative-kit.md is missing, use AskUserQuestion to gather basics (bg color light/dark, accent color, font preference), then write the result to brand/creative-kit.md so it persists.
Step 1c: Discover the Paper workspace. Call mcp__paper__get_basic_info() and record:
- File name — this is the workspace all agents will use
- Existing artboards — names and IDs, so agents know what's already there
- Loaded fonts — so agents can use them without guessing
Step 1d: Confirm with AskUserQuestion:
"I see Paper file '{fileName}' is open with artboards: {list}. I'll create new artboards here for the marketing designs. Right file?"
Options:
1. "Yes, use this file" — proceed
2. "Different file" — user specifies which file to open
Do NOT proceed until the user confirms.
Phase 2: Intelligent Goal Discovery
This is the most important phase. Use AskUserQuestion to understand what the user actually needs before deciding how many agents to spawn.
2a. Check for Content Specs
First, check if content spec YAMLs already exist (written by /slideshow-script or /tiktok-slideshow):
ls marketing/content-specs/*.yaml 2>/dev/null
If content specs exist: Read them. Each spec has content_type, visual_direction, slides[], and scripting_framework. Skip to Phase 2d — the scripts are already written.
If no content specs: Proceed to interrogation (2b).
2b. Interrogate the User
Use AskUserQuestion to understand the goal. Don't assume 5 agents or any specific format:
"What visual content do you need? Help me understand so I can design the right approach."
Options:
1. "TikTok slideshow (1080×1920, 5-9 slides)" — vertical storytelling
2. "Instagram carousel (1080×1350, 5-9 slides)" — educational/positioning
3. "Instagram single post (1080×1080 or 1080×1350)" — one powerful image
4. "Instagram story / Reel cover (1080×1920)" — single claim
5. "Social graphics batch" — multiple formats for one message
6. "Ad creative" — single high-impact visual for ads
7. "Custom" — user describes what they need
Then follow up based on answer:
"How many variations do you want to explore?"
Options:
1. "Just 1 great one" — single agent, iterate until perfect
2. "2-3 options" — focused exploration
3. "5 full variations" — maximum creative exploration
4. "Match my content specs" — 1 per content spec YAML
Then:
"What's the priority?"
Options:
1. "Speed — get something designed fast" → fewer agents, simpler approach
2. "Quality — make it exceptional" → load /frontend-design, thorough review
3. "Exploration — see many different directions" → max agents, varied styles
Use these answers to determine:
- How many agents to spawn (1-5)
- Whether to load
/frontend-designfor design quality - Which variation directions to use
- How much review/iteration to do
2c. Select Variations (Intelligent)
Based on interrogation, select the RIGHT number of variations with the RIGHT directions:
Variation types for marketing content:
| Direction | What Changes | Good For |
|---|---|---|
| Typographic | Text-dominant, massive display type, minimal decoration | Quote posts, positioning statements |
| Data-Led | Giant stat numbers as visual anchors, text secondary | Proof points, market data, before/after |
| Editorial | Magazine-layout feel, asymmetric text placement, generous white space | Long-form carousel slides, thought leadership |
| Product-Forward | Mockup/screenshot center stage, text supports the visual | Feature demos, app screenshots |
| Atmospheric | Arabic script as decoration, calligraphic accents, spacious and reverent | Spiritual content, Quranic references |
| Bold Minimal | One idea per slide, maximum white space, zero ornamentation | Hook slides, CTAs, single-message posts |
| Structured | Clear grid feel, numbered steps, consistent slot layout | How-it-works, listicles, tutorials |
| Contrast Play | Dramatic scale differences, weight extremes | Attention-grabbing hooks, comparison content |
| Stacked | Vertical rhythm, everything centered, one element per visual beat | Stories, reels covers |
| Split | Two-column or two-zone layout, tension between halves | Before/after, problem/solution |
Rules for selection:
- Each must be tangibly different (different layout structure, emphasis, visual rhythm)
- Match directions to the content type and user's priority
- If user chose "Just 1 great one" — pick the best direction for their content and go
- If content specs exist, use their
visual_directionfield
Present the plan via AskUserQuestion:
"Here's my design plan: {N} variation(s), {content_type}:"
1. **{Direction}** — {one-line description of this approach}
[... more if multiple]
Options:
1. "Looks great, go" — proceed
2. "Change direction(s)" — user adjusts
3. "Add more variations" — increase agent count
4. "Fewer variations" — reduce agent count
2d. Define Content Spec
If content specs exist from /slideshow-script: Read them. Each agent gets its own spec's content.
If no content specs: Write out the exact content each agent will design with:
- Every text string (headings, body copy, labels, CTAs)
- Which positioning angle is being used
- Every slide/section and its purpose
- Information hierarchy (what's most important)
- Signature phrases from
brand/voice-profile.md
Show to user via AskUserQuestion:
"Here's the content for the designs. Anything to add or ch