| name | plan-content |
| description | Create content calendars and plans. Use for 30-day calendars, campaign planning, content strategy. |
| allowed-tools | Bash Read Write Edit Glob Grep |
Plan Content
RUN PRE-FLIGHT FIRST
Before planning, run content-preflight: classify the
topic, verify project + brand (+ product if it's a product topic), and resolve the required
reusable assets (characters, products, logos, voices) from
projects/{name}/config/assets.yaml. Generate or register any missing asset once and
save its path so every planned piece reuses it. See
templates/content-requirements.md for what each
content type requires.
CHECK THE RECIPES FIRST
If the request matches a known campaign shape โ product launch, authority/consistency
calendar, testimonial ad, podcast repurposing โ start from the matching recipe in
workflows/recipes/ instead of planning from scratch.
Recipes encode proven structure; adapt the pieces to the user's platforms, then
materialize as a calendar below so /produce-content can execute it.
IMPORTANT: DO NOT SKIP QUESTIONS
Even if user says "just create a plan" or "quick content plan" - YOU MUST:
- Ask the required questions below
- Wait for user answers
- THEN create the plan
Never assume or make up:
- Brand name
- Target audience details
- Offers or CTAs
- Testimonials or stats (NEVER fake these)
Step 1: Create or Check Project
Ask: "What's your project/campaign name?"
IMPORTANT: ALL projects go under projects/ folder!
Create folder structure:
mkdir -p projects/{name}/templates
mkdir -p projects/{name}/content-plans
mkdir -p projects/{name}/style-samples
mkdir -p projects/{name}/output-contents
mkdir -p projects/{name}/assets
mkdir -p projects/{name}/config
mkdir -p projects/{name}/scripts
Copy templates:
cp templates/project.template.md projects/{name}/templates/project.md
cp templates/brand.template.md projects/{name}/templates/brand.md
Project structure must be:
projects/
โโโ {project-name}/
โโโ templates/ # project.md, brand.md
โโโ content-plans/ # content calendars
โโโ output-contents/ # generated files
โโโ assets/ # reference files (characters/, products/, logo/, โฆ)
โโโ config/ # assets.yaml โ reusable asset registry
Generate content by CALLING the workflow CLI (node workflows/cli.cjs <command> '<json>'),
not by writing scripts. Projects hold data (templates, assets, outputs) โ not code.
Copy the asset registry template too:
cp templates/assets.config.template.yaml projects/{name}/config/assets.yaml
Step 2: MUST ASK These Questions (DO NOT SKIP)
Read templates/project.template.md for all fields, then ASK:
STOP and wait for answers before creating any content plan.
Business Info โ fills product section
- Business name? โ
product.name
- What do you sell? โ
product.description
- Website? โ
product.website
- What makes you unique? โ
product.unique_selling_points[]
Target Audience โ fills audience section
-
Who is your ideal customer?
- Name/label โ
audience.primary.name
- Age range โ
audience.primary.age_range
- Location โ
audience.primary.location
- Their situation โ
audience.primary.situation
-
What pain points do they have? โ audience.pain_points[]
-
What do they want to achieve? โ audience.goals[]
Offer โ fills offer section
- What's your offer? โ
offer.headline, offer.details
- What's the CTA? โ
cta.primary
- Any urgency? โ
offer.urgency
Social Proof โ fills social_proof section (MUST BE REAL)
- Any customer stats? โ
social_proof.stats[]
- Any testimonials? โ
social_proof.testimonials[]
- Featured in or awards? โ
social_proof.authority[]
If no social proof, leave empty - NEVER make it up.
Step 3: Fill Brand Info - ASK User
Read templates/brand.template.md, then ask:
Colors โ fills colors section
- Primary brand color? โ
colors.primary (hex)
- Secondary color? โ
colors.secondary (hex)
- Accent/highlight color? โ
colors.accent (hex)
Tone โ fills tone section
- How should we speak? โ
tone.voice (professional, casual, friendly, bold)
- What energy level? โ
tone.energy (high, medium, calm)
Visual Style โ fills visual section
- Visual style? โ
visual.style (modern, minimal, bold, elegant)
- What imagery to use? โ
visual.imagery (photos, illustrations, etc.)
Restrictions โ fills restrictions section
- Any words to AVOID? โ
restrictions.never_say[]
- Any topics to avoid? โ
restrictions.avoid_topics[]
Step 4: Plan Content Calendar
Ask:
- How many days? (7, 14, 30)
- How many posts per day? (1-5)
- Which platforms? (TikTok, Instagram, YouTube, etc.)
Content Pillars (suggest these):
- Educational (40%) - tips, how-to, value
- Promotional (20%) - offers, CTAs
- Engagement (20%) - questions, polls
- Testimonial (10%) - social proof (REAL only)
- Behind scenes (10%) - authentic content
Step 5: Create Calendar File
Copy template:
cp templates/content-calendar.template.md projects/{name}/content-plans/calendar.md
Fill the calendar with:
schedule:
- day: 1
date: "YYYY-MM-DD"
contents:
- id: "d01-c01"
type: "video"
platform: "tiktok"
pillar: "educational"
topic: "Brief topic description"
plan_file: "day-01/content-01-video.md"
Step 6: Create Individual Content Plans
For each content piece, create a plan file:
mkdir -p projects/{name}/content-plans/day-01
Copy appropriate template:
- Video:
templates/video-content.template.md
- Image:
templates/image-content.template.md
- Carousel:
templates/carousel-content.template.md
- Text:
templates/text-content.template.md
Fill with specific details for that content.
Step 7: Show Summary & Confirm
Present to user:
Project: {name}
Duration: 30 days
Total contents: {count}
By type:
- Videos: X
- Carousels: X
- Images: X
- Text posts: X
By platform:
- TikTok: X
- Instagram: X
Estimated cost: ${total}
Ready to generate? Which day first?
Templates Location
All templates are in templates/ folder:
project.template.md - Business info
brand.template.md - Visual identity
content-calendar.template.md - 30-day overview
video-content.template.md - Video plans
image-content.template.md - Image plans
carousel-content.template.md - Carousel plans
text-content.template.md - Text post plans
Rules
- NEVER fake testimonials or stats
- ASK for missing required info
- SUGGEST options where template says "Agent can suggest"
- UPDATE files as user answers
- CONFIRM before generating