Requirements
How To Start
STEP 0: POLICY PRE-CHECK
- Scan prompt for sensitive categories: - Proprietary content strategies - Competitive posting patterns - Platform-specific algorithm gamingIF potential conflict detected: #AI->H::PolicyCaution: (Content calendar may involve sensitive scheduling strategies) #AI->H::Note: (Keep calendar details confidential as requested)
STEP 0.5: PERSONA CONTINUITY
- #AI->H::PersonaStatus: (Continuing with {PERSONA_NAME} persona)IF CAMPAIGN_PERSONA is defined: PERSONA_NAME = CAMPAIGN_PERSONA.PERSONA_NAME PERSONA_TITLE = CAMPAIGN_PERSONA.PERSONA_TITLE PERSONA_TIER = CAMPAIGN_PERSONA.PERSONA_TIERELSE: PERSONA_NAME = "Campaign Strategist" PERSONA_TITLE = "Integrated Marketing Campaign Strategist" PERSONA_TIER = "Beginner"ACTIVE_PERSONA = { "name": PERSONA_NAME, "role": PERSONA_TITLE, "current_focus": "Content Calendar Development and Batch Planning", "calendar_expertise": [ "Multi-channel content planning", "Editorial calendar management", "Content batching and efficiency", "Platform-specific optimization", "CTA strategy and placement" ], "approach_this_recipe": { "methodology": "RACE Framework + Content Matrix Planning", "output_style": "Calendar grids, content matrices, batch planning", "quality_check": "Provides confidence percentages for content recommendations" }}{PERSONA_NAME} Opening:"Let us turn your strategy into a content machine.We are taking your campaign timeline andtranslating it into specific pieces of content -what to post, when to post it, where to post it,and what action you want people to take.By the end of this, you will have a calendar youcan actually execute."
STEP 1: INPUT VALIDATION AND SCOPE DEFINITION
- #AI->H::Status: (Validating inputs and defining calendar scope)1.1 REQUIRED INPUT VERIFICATION:CHECK campaign_timeline: IF not provided OR empty: #AI->H::Error: (Campaign Timeline from Recipe 5 is required) #AI->H::Instruction: (Please run Recipe 5 first or provide CAMPAIGN_TIMELINE_BLOCK) HALT recipe execution EXTRACT from campaign_timeline: - total_weeks - phase_definitions - weekly_themes - weekly_intensity - milestone_registry - blog_schedule (if present)CHECK channel_strategy: IF not provided OR empty: #AI->H::Error: (Channel Strategy from Recipe 4 is required) #AI->H::Instruction: (Please run Recipe 4 first or provide CHANNEL_STRATEGY_BLOCK) HALT recipe execution EXTRACT from channel_strategy: - platform_playbooks - posting_frequencies - optimal_posting_times - platform_content_formats - engagement_tacticsCHECK content_pillars: IF not provided OR empty: #AI->H::Error: (Content Pillars from Recipe 3 is required) #AI->H::Instruction: (Please run Recipe 3 first or provide CONTENT_PILLAR_BLOCK) HALT recipe execution EXTRACT from content_pillars: - pillar_definitions (5 categories) - phase_ratios - topic_bank - format_recommendations1.2 SCOPE DEFINITION:PROCESS calendar_scope:IF scope == "single-week": REQUIRE scope_identifier (e.g., "Week 3") calendar_range = 1 week #AI->H::Note: (Generating calendar for {scope_identifier})IF scope == "two-weeks": REQUIRE scope_identifier (e.g., "Weeks 3-4") calendar_range = 2 weeks #AI->H::Note: (Generating calendar for {scope_identifier})IF scope == "phase": REQUIRE scope_identifier (e.g., "Phase 1") LOOKUP phase_weeks from campaign_timeline calendar_range = phase duration #AI->H::Note: (Generating calendar for {scope_identifier}: Weeks {start}-{end})IF scope == "full-campaign": calendar_range = total_weeks #AI->H::Caution: (Full campaign calendar will be extensive. Consider generating phase-by-phase for manageability.) #AI->H::Question: (Proceed with full campaign, or would you prefer to start with Phase 1?)1.3 DETAIL LEVEL CONFIGURATION:CONFIGURE detail_level:IF detail_level == "topics-only": include_in_slot = ["date", "platform", "pillar", "topic_direction"] estimated_time_per_slot = "2-3 minutes to review"IF detail_level == "with-hooks": include_in_slot = ["date", "platform", "pillar", "topic_direction", "hook_idea", "cta", "hashtag_suggestions"] estimated_time_per_slot = "5-7 minutes to review"IF detail_level == "full-briefs": include_in_slot = ["date", "platform", "pillar", "topic_direction", "hook_idea", "key_points", "cta", "hashtags", "visual_recommendation", "cross_post_notes"] estimated_time_per_slot = "10-15 minutes"{PERSONA_NAME} Scope Summary:"Here is what we are building:Calendar Scope: {calendar_scope}Range: {scope_identifier or 'Full Campaign'}Weeks Covered: {calendar_range} weeksDetail Level: {detail_level}Output Format: {output_format}Content Sources Loaded: [CHECK] Campaign Timeline ({total_weeks} weeks) [CHECK] Channel Strategy ({platform_count} plats) [CHECK] Content Pillars ({pillar_count} cats) [CHECK/EMPTY] Messaging Matrix (optional)Let us build your calendar."
STEP 2: CALENDAR FRAMEWORK CREATION
- #AI->H::Status: (Creating calendar framework with date structure)2.1 DATE GRID GENERATION:FOR each week in calendar_range: RETRIEVE from campaign_timeline: - week_number - date_range (Mon-Sun) - phase - weekly_theme - intensity_percentage - milestones (if any) - blog_slot (if any) FOR each day (Monday through Sunday): CREATE day_slot = { "date": specific date, "day_of_week": Mon/Tue/Wed/Thu/Fri/Sat/Sun, "week_number": week_number, "phase": phase_name, "theme": weekly_theme, "intensity": intensity_percentage, "is_milestone_day": check milestone_registry, "milestone_name": if applicable, "is_blog_day": check blog_schedule, "platform_slots": [] }2.2 PLATFORM SLOT ALLOCATION:RETRIEVE posting_frequencies from channel_strategy:platform_daily_targets = { "X/Twitter": calculate_daily_posts(freq, int), "LinkedIn": calculate_daily_posts(freq, int), "YouTube": calculate_weekly_posts(freq, int), "TikTok": calculate_daily_posts(freq, int), "Bluesky": calculate_daily_posts(freq, int), "Mastodon": calculate_daily_posts(freq, int), "Dev.to": calculate_weekly_posts(freq, int), "GitHub": calculate_biweekly_posts(freq, int)}FUNCTION calculate_daily_posts(base_frequency, int): adjusted = base_frequency * (intensity / 100) RETURN rounded_value with minimum of 12.3 WEEKLY POST DISTRIBUTION:FOR each week: CALCULATE total_posts_this_week per platform DISTRIBUTE posts across days: - Prioritize high-engagement days (Tue-Thu) - Avoid Sunday unless platform-appropriate - Cluster around milestone days - Ensure even spread for consistency CREATE weekly_distribution_map: Monday: {platform: count, platform: count...} Tuesday: {platform: count, platform: count...} ... Sunday: {platform: count, platform: count...}2.4 FRAMEWORK OUTPUT:GENERATE CALENDAR_FRAMEWORK: CALENDAR FRAMEWORK - {scope_identifier} Dates: {start_date} to {end_date} ------------------------------------------- WEEKLY POST TARGETS: | Week | X | LI | YT | TT | BS | Blog | Other| |------|----|----|----|----|----|----- |------| | Wk N | {X}| {X}| {X}| {X}| {X}| {X} | {X} | -------------------------------------------{PERSONA_NAME} Framework Analysis:"Your calendar framework for {scope_identifier}:Total Content Slots: {total_slots} across {weeks}Platform Distribution: {FOR each platform: X posts total, Y per week}High-Activity Days: {list days with most posts}Milestone Days: {list any milestone dates}Blog Publication Days: {list blog days}Framework is set. Now let us fill those slots withspecific content."
STEP 3: PLATFORM SLOT ASSIGNMENT
- #AI->H::Status: (Assigning specific platform slots with optimal timing)3.1 SLOT CREATION LOGIC:FOR each day in calendar_range: FOR each platform with posts scheduled today: RETRIEVE from channel_strategy: - optimal_posting_times for platform - content_formats preferred - engagement_tactics FOR each post_slot (1 to posts_today): SELECT posting_time: IF multiple posts: distribute across optimal times IF single post: use primary optimal CREATE content_slot = { "slot_id": generate unique ID, "date": specific_date, "day": day_of_week, "week": week_number, "platform": platform_name, "posting_time": selected_time, "phase": phase_name, "weekly_theme": theme, "pillar": null, "topic": null, "content_type": null, "hook": null, "cta": null, "notes": [] } ADD content_slot to day_slot.platform_slots3.2 SPECIAL SLOT HANDLING:FOR milestone days: FLAG all slots on this day as "milestone-related" PRIORITIZE milestone messaging for primary plats ADD milestone_context to slot notesFOR blog publication days: CREATE blog_slot = { "slot_id": "W{n}-{DAY}-BLOG-1", "date": specific_date, "platform": "Blog", "posting_time": "10:00 AM", "content_type": "Long-form article", "topic": from blog_schedule, "social_amplification": ["X", "LinkedIn"] } CREATE amplification_slots for each social: - Teaser slot (day before) - Launch announcement slot (same day) - Pull quote slot (day after)3.3 PLATFORM SLOT SUMMARY:GENERATE SLOT_SUMMARY: ------------------------------------------- | PLATFORM SLOTS - {scope_identifier} | ------------------------------------------- | Platform | Slots | Typical Times | |-----------|-------|---------------------| | X/Twitter | {cnt} | 9am, 12pm, 5pm | | LinkedIn | {cnt} | 8am, 12pm | | YouTube | {cnt} | Thursday 3pm | | TikTok | {cnt} | 7pm, 9pm | | Bluesky | {cnt} | 10am, 3pm | | Blog | {cnt} | {blog_day} 10am | ------------------------------------------- | TOTAL | {tot} | | -------------------------------------------
STEP 4: CONTENT ASSIGNMENT
- #AI->H::Status: (Assigning content pillars, topics, and formats to each slot)4.1 PILLAR DISTRIBUTION LOGIC:RETRIEVE phase_ratios from content_pillars:Example for current phase: - Educational: 40% - Behind-the-Scenes: 20% - Community: 20% - Promotional: 15% - Thought Leadership: 5%CALCULATE pillar_targets for scope: FOR each pillar: target_slots = total_slots * (ratio / 100) ROUND to nearest integer ENSURE sum equals total_slots4.2 PILLAR ASSIGNMENT STRATEGY:ASSIGN pillars to slots using weighted distribution:PRIORITY_RULES: 1. Milestone days: Promotional or Community 2. Blog days: Educational pillar (for blog) 3. Blog amplification: mix based on blog topic 4. Monday: Educational (start week with value) 5. Friday: Community or BTS (engagement focus) 6. Primary platforms: balanced across pillars 7. Technical platforms: Educational focusAVOID: - Same pillar consecutive days on same platform - Promotional clustering (spread throughout) - All educational on low-engagement daysFOR each content_slot: ASSIGN pillar based on rules UPDATE slot.pillar = selected_pillar INCREMENT pillar_count[selected_pillar]4.3 TOPIC ASSIGNMENT:RETRIEVE topic_bank from content_pillarsFOR each content_slot: RETRIEVE relevant_topics = topic_bank[pillar] FILTER topics by: - Alignment with weekly_theme - Platform appropriateness - Not recently used (avoid repetition) SELECT topic using: IF milestone_day AND pillar == Promotional: topic = milestone-specific content IF blog_amplification_slot: topic = derived from blog topic ELSE: topic = best_fit from filtered_topics UPDATE slot.topic = selected_topic MARK topic as "used this week"4.4 CONTENT TYPE ASSIGNMENT:RETRIEVE format_recommendations from content_pillarsRETRIEVE platform_formats from channel_strategyPLATFORM_FORMAT_MATRIX: ------------------------------------------- | Platform | Primary Formats | |-----------|----------------------------| | X/Twitter | Text, Thread, Image, Poll | | LinkedIn | Text, Article, Carousel | | YouTube | Video (long), Shorts | | TikTok | Video (short), Duet | | Bluesky | Text, Thread, Image | | Dev.to | Article, Tutorial | -------------------------------------------FOR each content_slot: SELECT format based on: - Platform primary formats - Pillar format preferences - Weekly variety (no repeat formats) - Resource requirements UPDATE slot.content_type = selected_format4.5 HOOK GENERATION (if detail >= with-hooks):IF detail_level in ["with-hooks", "full-briefs"]: FOR each content_slot: GENERATE hook_idea based on: - Topic direction - Platform conventions - Weekly theme - Pillar messaging approach HOOK_PATTERNS by pillar: Educational: "Did you know...", "Here is how to...", "The mistake..." Behind-the-Scenes: "Here is what I am working on...", "Real talk:" Community: "Question for you:", "What is your experience with..." Promotional: "Exciting news:", "Limited time:", "Join us for..." Thought Leadership: "Hot take:", "The future of...", "Why I think..." UPDATE slot.hook = generated_hook_idea4.6 PILLAR BALANCE CHECK:AFTER all assignments: CALCULATE actual_distribution: FOR each pillar: actual_pct = (count / total_slots) * 100 COMPARE to target_ratios: FOR each pillar: variance = actual_pct - target_pct IF ABS(variance) > 5%: FLAG for adjustment IF imbalance detected: #AI->H::Caution: (Pillar distribution variance detected) #AI->H::Note: ({pillar} is {variance}% off) #AI->H::Recommendation: (Consider swapping {X} slots from {over} to {under})GENERATE PILLAR_BALANCE_REPORT: ------------------------------------------- | PILLAR BALANCE CHECK - {scope_identifier}| ------------------------------------------- | Pillar | Target | Actual | Status | |---------------|--------|--------|--------| | Educational | 40% | {X}% | OK/! | | BTS | 20% | {X}% | OK/! | | Community | 20% | {X}% | OK/! | | Promotional | 15% | {X}% | OK/! | | Thought Lead | 5% | {X}% | OK/! | -------------------------------------------
STEP 5: CTA MAPPING
- #AI->H::Status: (Assigning calls-to-action to each content slot)5.1 CTA LIBRARY DEFINITION:DEFINE CTA_LIBRARY:PRIMARY_CTAS (Direct conversion): - "Sign up for early access" - "Join the waitlist" - "Get started today" - "Visit our website"ENGAGEMENT_CTAS (Community building): - "What do you think?" - "Share your experience" - "Follow for more" - "Join the conversation" - "Tag someone who needs this"CONTENT_CTAS (Content consumption): - "Read the full article" - "Watch the tutorial" - "Check the thread below" - "Link in bio"SOFT_CTAS (Awareness): - "More coming soon" - "Stay tuned" - "This is just the beginning"5.2 CTA ASSIGNMENT LOGIC:FOR each content_slot: DETERMINE cta_type based on: PILLAR-CTA MAPPING: - Educational: 60% Engagement, 30% Content, 10% Primary - Behind-the-Scenes: 50% Engagement, 30% Soft, 20% Primary - Community: 80% Engagement, 10% Content, 10% Primary - Promotional: 60% Primary, 25% Content, 15% Engagement - Thought Leadership: 50% Engagement, 30% Content, 20% Soft SELECT specific CTA based on: - Platform conventions - Content type (Thread: "Check thread below") - Phase urgency (closer to launch: more Primary) - Daily variety (no repeat CTA twice per day) UPDATE slot.cta = selected_cta5.3 CTA DISTRIBUTION CHECK:CALCULATE cta_distribution: - Primary CTAs: {count} ({percentage}%) - Engagement CTAs: {count} ({percentage}%) - Content CTAs: {count} ({percentage}%) - Soft CTAs: {count} ({percentage}%)VERIFY balance: - Primary should be 15-25% (not too salesy) - Engagement should be 40-50% (community focus) - Content should be 20-30% (drive consumption) - Soft should be 5-15% (awareness building){PERSONA_NAME} CTA Analysis:"CTA distribution for {scope_identifier}:Balance Check: {Show distribution with assessment}CTA Strategy: - Primary CTAs concentrated on: {days/platforms} - Engagement CTAs spread across: {all days} - Milestone days receive: {CTA type focus}Your content now has clear actions attached toevery piece."
STEP 6: CALENDAR GENERATION
- #AI->H::Status: (Generating formatted calendar output)6.1 DAILY VIEW FORMAT:FOR each day in calendar_range:GENERATE DAY_VIEW: =============================================== {DAY_NAME}, {DATE} | Week {N} | Phase: {PHASE} Theme: {THEME} | Intensity: {PERCENTAGE}% {IF milestone: "MILESTONE: {milestone_name}"} =============================================== {FOR each content_slot on this day:} ------------------------------------------- | {TIME} | {PLATFORM} [{SLOT_ID}] | ------------------------------------------- | Pillar: {PILLAR} | | Type: {CONTENT_TYPE} | | Topic: {TOPIC_DIRECTION} | | {IF detail >= with-hooks:} | | Hook: {HOOK_IDEA} | | CTA: {CTA} | | {IF detail == full-briefs:} | | Key Points: {BULLET_POINTS} | | Visual: {VISUAL_RECOMMENDATION} | | Hashtags: {HASHTAG_SUGGESTIONS} | ------------------------------------------- {NEXT slot...} Day Total: {COUNT} pieces of content ===============================================6.2 WEEKLY SUMMARY VIEW:FOR each week in calendar_range:GENERATE WEEKLY_SUMMARY: =============================================== WEEK {N}: {DATE_RANGE} Phase: {PHASE} | Theme: {THEME} Intensity: {PERCENTAGE}% | Total: {COUNT} =============================================== | Day | X | LI | YT | TT | BS | Other| Total| |-----|----|----|----|----|----| -----|------| | Mon | {X}| {X}| {X}| {X}| {X}| {X} | {X} | | Tue | {X}| {X}| {X}| {X}| {X}| {X} | {X} | | Wed | {X}| {X}| {X}| {X}| {X}| {X} | {X} | | Thu | {X}| {X}| {X}| {X}| {X}| {X} | {X} | | Fri | {X}| {X}| {X}| {X}| {X}| {X} | {X} | | Sat | {X}| {X}| ---| {X}| {X}| {X} | {X} | | Sun | {X}| ---| ---| {X}| {X}| --- | {X} | ------------------------------------------- | TOT | {X}| {X}| {X}| {X}| {X}| {X} | {X} | ------------------------------------------- HIGHLIGHTS: - {milestone if any} - {blog if any} - {special content notes} ===============================================6.3 CSV-READY FORMAT (if output_format includes):GENERATE CSV_CONTENT:slot_id,date,day,week,platform,time,phase,theme,pillar,topic,content_type,hook,cta,hashtags,notesW1-MON-X-1,2026-01-15,Monday,1,X/Twitter,09:00,Phase 1,Awareness,Educational,Topic explained,Thread,Did you know...,What do you think?,#hashtag1 #hashtag2,Campaign launch day#AI->H::Note: (CSV format ready for import into scheduling tools or spreadsheets)
STEP 7: BATCH IDENTIFICATION
- #AI->H::Status: (Grouping content for efficient batch creation)7.1 BATCH GROUPING LOGIC:IDENTIFY content batches for efficient creation:BATCH_STRATEGIES:1. BY_PLATFORM: Group all X/Twitter posts together Group all LinkedIn posts together Benefit: Stay in platform mindset2. BY_PILLAR: Group all Educational content together Group all Behind-the-Scenes together Benefit: Research once, create multiple3. BY_FORMAT: Group all Threads together Group all Videos together (script + shoot) Benefit: Efficient production workflow4. BY_DAY: Create Monday content together Create Tuesday content together Benefit: Context switching minimizationRECOMMEND optimal batching based on scope: IF single-week: BY_DAY or BY_PLATFORM IF phase: BY_PILLAR or BY_FORMAT IF full-campaign: BY_FORMAT (especially video)7.2 BATCH OUTPUT:GENERATE BATCH_CREATION_GUIDE: BATCH CREATION GUIDE - {scope_identifier} Recommended Strategy: {recommended_strategy} =============================================== BATCH 1: {BATCH_NAME} ------------------------------------------- Content Count: {X} pieces Estimated Creation Time: {X} hours Includes: - {slot_id}: {brief description} - {slot_id}: {brief description} - ... Preparation Needed: - {research/assets needed} ------------------------------------------- BATCH 2: {BATCH_NAME} ... =============================================== BATCH SUMMARY =============================================== Total Batches: {X} Total Content Pieces: {X} Estimated Total Creation Time: {X} hours Recommended Creation Schedule: - Batch 1: {suggested_date/time} - Batch 2: {suggested_date/time} - ... ==============================================={PERSONA_NAME} Batching Analysis:"For efficient content creation, I recommend the{recommended_strategy} approach:Why This Strategy: {Rationale based on scope and content types}Time Investment: - {X} batches total - Average {Y} hours per batch - Full calendar creation: ~{Z} hoursPro Tip: Block dedicated creation time for eachbatch. Context-switching kills productivity.Batch your creation, then schedule it out. Youwill thank yourself later."
STEP 8: CALENDAR OUTPUT BLOCK
- #AI->H::Status: (Generating complete calendar output block)8.1 STRUCTURED OUTPUT BLOCK:=== CONTENT_CALENDAR_BLOCK ===Generated: {date}Recipe: RCP-005-002-001-CONTENT-CAL-v2.00aCALENDAR METADATA-------------------------------------------- Scope: {calendar_scope}- Range: {scope_identifier}- Dates: {start_date} to {end_date}- Detail Level: {detail_level}- Total Content Slots: {total_slots}- Platforms Active: {platform_list}CONTENT DISTRIBUTION SUMMARY-------------------------------------------By Platform: - X/Twitter: {count} posts - LinkedIn: {count} posts - YouTube: {count} videos - TikTok: {count} videos - Bluesky: {count} posts - Blog: {count} articlesBy Pillar: - Educational: {count} ({percentage}%) - Behind-the-Scenes: {count} ({percentage}%) - Community: {count} ({percentage}%) - Promotional: {count} ({percentage}%) - Thought Leadership: {count} ({percentage}%)By CTA Type: - Primary (conversion): {count} ({percentage}%) - Engagement: {count} ({percentage}%) - Content: {count} ({percentage}%) - Soft: {count} ({percentage}%)DAILY CALENDAR-------------------------------------------[INSERT FULL DAILY VIEW OUTPUT FROM STEP 6.1]WEEKLY SUMMARIES-------------------------------------------[INSERT WEEKLY SUMMARY OUTPUT FROM STEP 6.2]BATCH CREATION GUIDE-------------------------------------------[INSERT BATCH GUIDE OUTPUT FROM STEP 7.2]MILESTONE CONTENT FOCUS-------------------------------------------{FOR each milestone in scope:}MILESTONE: {milestone_name} ({date}) - Pre-milestone content: {list slot_ids} - Milestone day content: {list slot_ids} - Post-milestone content: {list slot_ids}BLOG AMPLIFICATION SCHEDULE-------------------------------------------{FOR each blog in scope:}BLOG: {blog_topic} (Publishing: {date}) - Teaser slots: {list slot_ids with dates} - Launch slots: {list slot_ids} - Follow-up slots: {list slot_ids}=== END CONTENT_CALENDAR_BLOCK ===USAGE INSTRUCTIONS:This CONTENT_CALENDAR_BLOCK provides execution-ready content assignments for: - Recipe 7 (Social Post Creator): Individual slots as input - Direct scheduling in social media tools - Team content creation assignments - Progress tracking during campaign8.2 QUICK REFERENCE CARD: ------------------------------------------- | CALENDAR QUICK REFERENCE | ------------------------------------------- | RANGE: {start_date} to {end_date} | | TOTAL CONTENT: {total_slots} pieces | | DETAIL LEVEL: {detail_level} | ------------------------------------------- | DAILY AVERAGE: {average} posts/day | | BUSIEST DAY: {day} with {count} posts | | QUIETEST DAY: {day} with {count} posts | ------------------------------------------- | CREATION BATCHES: {batch_count} | | EST. CREATION TIME: {total_hours} hours | | RECOMMENDED: {batch_strategy} approach | -------------------------------------------#AI->H::Deliverable: (Content Calendar Block created - ready for execution or Recipe 7){PERSONA_NAME} Closing Summary:"Your content calendar for {scope_identifier} iscomplete.What You Have: - {total_slots} content slots with assignments - Every slot has: platform, time, pillar, topic, and CTA - Organized into {batch_count} creation batches - Estimated {total_hours} hours to create allNext Steps: 1. Option A: Take individual slots to Recipe 7 (Social Post Creator) to generate actual copy 2. Option B: Use batch guide to schedule creation sessions 3. Option C: Export CSV to your scheduling tool and start creatingConfidence Assessment: 85% This calendar provides a solid execution framework. Adjust based on real-time performance data.Pro Tip: Do not try to create everything at once.Batch it, schedule creation time, and maintainconsistency over perfection."#AI->H::RecipeComplete: ( RCP-005-002-001-CONTENT-CAL-v2.00a executed successfully)#AI->H::OutputReady: (CONTENT_CALENDAR_BLOCK available for execution or downstream recipes)
When to Use This Recipe
Use this recipe after completing the StrategicLayer (Recipes 1-5). This is the first recipe inthe Execution Layer (SUBCAT-002).IDEAL TIMING: - After campaign timeline is complete - When ready to begin content creation - Before delegation to team members - When scheduling tools need populatedPREREQUISITES: - Campaign Timeline Output Block (Recipe 5) - Channel Strategy Output Block (Recipe 4) - Content Pillar Output Block (Recipe 3) - Scope decision (single-week, phase, etc.) - Detail level preferenceRELATIONSHIP TO OTHER RECIPES: - Follows: Recipes 1-5 (Strategic Layer) - Precedes: Recipe 7 (Social Post Creator) - Precedes: Recipe 8 (Blog Content Planner) - Precedes: Recipe 9 (Performance Analyzer)
Recipe FAQ
RECOMMENDED RECIPE PERSONA
This recipe works best with the Campaign Strategist
persona (Maggie in the default CRAFT persona set).
The persona should have expertise in:
- Multi-channel message adaptation
- Persona-specific communication
- Brand voice consistency
- Platform culture alignment
- Conversion-focused copywriting The recipe uses the {PERSONA_NAME} variable to allow
customization for different persona implementations. Q: Should I generate the full campaign calendar at
once or phase by phase?
A: For manageability, generate phase by phase. Full
campaign calendars are extensive and harder to
review. Phase-by-phase allows for adjustments
based on performance data. Q: What detail level should I choose?
A: Use "topics-only" for quick planning overviews,
"with-hooks" for creation-ready calendars, and
"full-briefs" for team handoffs or delegation. Q: How do I handle content that does not fit the
pillar ratios exactly?
A: The recipe flags variances over 5%. Small
variances are acceptable; large ones may need
slot swapping to maintain balance. Q: Can I update the calendar after generating it?
A: Yes. Regenerate specific weeks or phases as
needed. The modular structure supports partial
updates without regenerating everything. Q: What if I do not have time for all the content?
A: Reduce intensity in your timeline (Recipe 5),
or focus on Tier 1 platforms only. Quality and
consistency beat volume. EXAMPLE 1: SINGLE WEEK CALENDAR Scope: Week 3 of campaign
Detail Level: with-hooks
Output Format: structured-text Execution: Execute CONTENT_CALENDAR_GENERATOR with:
- campaign_timeline: [Output from Recipe 5]
- channel_strategy: [Output from Recipe 4]
- content_pillars: [Output from Recipe 3]
- calendar_scope: "single-week"
- scope_identifier: "Week 3"
- detail_level: "with-hooks" Outcome: {PERSONA_NAME} creates: Calendar Structure:
- 7 days of content slots
- 35 total content pieces
- Each slot includes hook ideas and CTAs Pillar Distribution:
- Educational: 14 posts (40%)
- Behind-the-Scenes: 7 posts (20%)
- Community: 7 posts (20%)
- Promotional: 5 posts (14%)
- Thought Leadership: 2 posts (6%) Batch Recommendation: BY_DAY
- 7 batches (one per day)
- ~2 hours per batch
- Total: ~14 hours creation time Confidence: 85% EXAMPLE 2: PHASE CALENDAR Scope: Phase 2 - Momentum Building
Detail Level: full-briefs
Output Format: both (structured + CSV) Execution: Execute CONTENT_CALENDAR_GENERATOR with:
- calendar_scope: "phase"
- scope_identifier: "Phase 2"
- detail_level: "full-briefs"
- output_format: "both" Outcome: {PERSONA_NAME} creates: Calendar Structure:
- 6 weeks of content slots
- 210 total content pieces
- Full briefs for team handoff CSV Export:
- Ready for import into Buffer/Hootsuite
- All fields populated for scheduling Batch Recommendation: BY_PILLAR
- 5 batches (one per pillar)
- ~8-10 hours per batch
- Total: ~45 hours creation time Confidence: 80% - Large scope requires flexibility
persona (Maggie in the default CRAFT persona set).
The persona should have expertise in:
- Multi-channel message adaptation
- Persona-specific communication
- Brand voice consistency
- Platform culture alignment
- Conversion-focused copywriting The recipe uses the {PERSONA_NAME} variable to allow
customization for different persona implementations. Q: Should I generate the full campaign calendar at
once or phase by phase?
A: For manageability, generate phase by phase. Full
campaign calendars are extensive and harder to
review. Phase-by-phase allows for adjustments
based on performance data. Q: What detail level should I choose?
A: Use "topics-only" for quick planning overviews,
"with-hooks" for creation-ready calendars, and
"full-briefs" for team handoffs or delegation. Q: How do I handle content that does not fit the
pillar ratios exactly?
A: The recipe flags variances over 5%. Small
variances are acceptable; large ones may need
slot swapping to maintain balance. Q: Can I update the calendar after generating it?
A: Yes. Regenerate specific weeks or phases as
needed. The modular structure supports partial
updates without regenerating everything. Q: What if I do not have time for all the content?
A: Reduce intensity in your timeline (Recipe 5),
or focus on Tier 1 platforms only. Quality and
consistency beat volume. EXAMPLE 1: SINGLE WEEK CALENDAR Scope: Week 3 of campaign
Detail Level: with-hooks
Output Format: structured-text Execution: Execute CONTENT_CALENDAR_GENERATOR with:
- campaign_timeline: [Output from Recipe 5]
- channel_strategy: [Output from Recipe 4]
- content_pillars: [Output from Recipe 3]
- calendar_scope: "single-week"
- scope_identifier: "Week 3"
- detail_level: "with-hooks" Outcome: {PERSONA_NAME} creates: Calendar Structure:
- 7 days of content slots
- 35 total content pieces
- Each slot includes hook ideas and CTAs Pillar Distribution:
- Educational: 14 posts (40%)
- Behind-the-Scenes: 7 posts (20%)
- Community: 7 posts (20%)
- Promotional: 5 posts (14%)
- Thought Leadership: 2 posts (6%) Batch Recommendation: BY_DAY
- 7 batches (one per day)
- ~2 hours per batch
- Total: ~14 hours creation time Confidence: 85% EXAMPLE 2: PHASE CALENDAR Scope: Phase 2 - Momentum Building
Detail Level: full-briefs
Output Format: both (structured + CSV) Execution: Execute CONTENT_CALENDAR_GENERATOR with:
- calendar_scope: "phase"
- scope_identifier: "Phase 2"
- detail_level: "full-briefs"
- output_format: "both" Outcome: {PERSONA_NAME} creates: Calendar Structure:
- 6 weeks of content slots
- 210 total content pieces
- Full briefs for team handoff CSV Export:
- Ready for import into Buffer/Hootsuite
- All fields populated for scheduling Batch Recommendation: BY_PILLAR
- 5 batches (one per pillar)
- ~8-10 hours per batch
- Total: ~45 hours creation time Confidence: 80% - Large scope requires flexibility
Actual Recipe Code
(Copy This Plaintext Code To Use)
# ===========================================================# START RECIPE-ID: RCP-005-002-001-CONTENT-CAL-v2.00a# ===========================================================CONTENT_CALENDAR_GENERATOR = Recipe( recipe_id="RCP-005-002-001-CONTENT-CAL-v2.00a", title="Content Calendar Generator", description="Transforms campaign timeline into specific, actionable content slots with dates, platforms, content types, topics, and CTAs.", category="CAT-005-CAMPAIGN-PLANNING", subcategory="SUBCAT-002-EXECUTION", layer="TACTICAL", difficulty="medium-hard", estimated_time="45-60 minutes per phase", version="2.00a", # ------------------------------------------------------- # RECIPE DEPENDENCIES # ------------------------------------------------------- dependencies={ "required_inputs": [ { "source": "RCP-005-001-005-TIMELINE-ARCH", "input": "campaign_timeline", "description": "Week-by-week timeline with themes and intensity" }, { "source": "RCP-005-001-004-CHANNEL-STRAT", "input": "channel_strategy", "description": "Platform playbooks with frequency and tactics" }, { "source": "RCP-005-001-003-CONTENT-PILLAR", "input": "content_pillars", "description": "Content categories with ratios and topic banks" } ], "optional_inputs": [ { "source": "RCP-005-001-002-MSG-MATRIX", "input": "messaging_matrix", "description": "Phase-aligned messaging for content alignment" } ], "feeds_into": [ "RCP-005-002-002 (Social Post Creator)", "RCP-005-002-003 (Blog Content Planner)", "Direct content creation and scheduling" ] }, # ------------------------------------------------------- # PARAMETERS # ------------------------------------------------------- parameters={ "campaign_timeline": { "type": "text", "required": True, "description": "Output from Recipe 5" }, "channel_strategy": { "type": "text", "required": True, "description": "Output from Recipe 4" }, "content_pillars": { "type": "text", "required": True, "description": "Output from Recipe 3" }, "calendar_scope": { "type": "enum", "required": True, "options": ["single-week", "two-weeks", "phase", "full-campaign"], "description": "How much to calendar" }, "scope_identifier": { "type": "string", "required": False, "description": "Which week/phase" }, "detail_level": { "type": "enum", "required": False, "default": "with-hooks", "options": ["topics-only", "with-hooks", "full-briefs"], "description": "Detail per content slot" }, "include_blog": { "type": "boolean", "required": False, "default": True, "description": "Include blog posts" }, "output_format": { "type": "enum", "required": False, "default": "structured-text", "options": ["structured-text", "csv-ready", "both"], "description": "Output format" } }, # ------------------------------------------------------- # OUTPUT SPECIFICATIONS # ------------------------------------------------------- outputs={ "primary_output": { "name": "CONTENT_CALENDAR_BLOCK", "format": "Structured text block", "contains": [ "Calendar Metadata", "Content Distribution Summary", "Daily Calendar (all slots)", "Weekly Summaries", "Batch Creation Guide", "Milestone Content Focus", "Blog Amplification Schedule" ], "usage": "Input for Recipe 7, direct execution, scheduling tools" }, "export_outputs": [ { "name": "CSV_EXPORT", "format": "Comma-separated values", "purpose": "Import into scheduling tools or spreadsheets", "available_when": "output_format includes csv-ready" } ], "reference_outputs": [ { "name": "QUICK_REFERENCE_CARD", "format": "Bordered card", "purpose": "At-a-glance summary" }, { "name": "BATCH_CREATION_GUIDE", "format": "Structured guide", "purpose": "Efficient creation planning" } ] }, # ------------------------------------------------------- # VALIDATION CHECKLIST # ------------------------------------------------------- validation_checklist='''Before marking recipe complete, verify:[ ] All days in scope have content assigned[ ] Every slot has: date, platform, time, pillar, topic, CTA[ ] Pillar distribution within 5% of targets[ ] CTA distribution balanced (not too promotional)[ ] No content gaps on milestone days[ ] Blog amplification slots created for all blogs[ ] Batches logically grouped[ ] Total content volume realistic for resources[ ] CSV export valid format (if requested)[ ] Quick reference card accurate ''')# ===========================================================# END RECIPE-ID: RCP-005-002-001-CONTENT-CAL-v2.00a# ==========================================================="""# -----------------------------------------------------------# SECTION: NOTES# -----------------------------------------------------------WPRM_FIELD_NOTES = """RECIPE NOTES:1. DEPENDENCY: This recipe requires output from Recipes 3, 4, and 5. Recipe 2 (Messaging Matrix) is optional but enhances content alignment.2. SCOPE SELECTION: Choose scope based on your planning needs: - single-week: Detailed creation planning - phase: Recommended for most use cases - full-campaign: Overview only, detailed later3. DETAIL LEVELS: Three levels available: - topics-only: Quick planning, 2-3 min/slot - with-hooks: Creation-ready, 5-7 min/slot - full-briefs: Team handoff, 10-15 min/slot4. PILLAR DISTRIBUTION: The recipe automatically distributes content across pillars based on phase ratios from Recipe 3. Variances over 5% are flagged for review.5. CTA BALANCE: Primary CTAs (conversion-focused) should not exceed 25% of total. The recipe checks distribution and flags imbalances.6. BATCH STRATEGIES: Four approaches available: - BY_PLATFORM: Best for solo creators - BY_PILLAR: Best for research-heavy content - BY_FORMAT: Best for video production - BY_DAY: Best for daily publishing rhythm7. CSV EXPORT: When enabled, generates import-ready format for Buffer, Hootsuite, Later, and similar scheduling tools.8. ITERATIVE USE: This recipe can be run multiple times for different scopes or to regenerate specific weeks based on performance data.9. DOWNSTREAM RECIPES: Individual content slots can be passed to Recipe 7 (Social Post Creator) for full copy generation."""# ===========================================================# END WPRM RECIPE CONTENT# ===========================================================