Go Back
Recipe Name: RCP-005-002-003-BLOG-PLAN - Blog Content Planner
RCP-005-002-003-BLOG-PLAN - Blog Content Planner
Develops detailed blog content plans aligned with campaign phases, including topic outlines, SEO recommendations, and social amplification strategies. Transforms blog schedule from Campaign Timeline into actionable content briefs that serve as anchor content for the broader social campaign.
Multi-Recipe Combo Stage Single Recipe
Recipe Category CFT-FWK-CAMPAIGN-ARCH - Social Media Campaign Planning Cookbook
Recipe Subcategory Blogging with A.I., Brainstorming with A.I.
Recipe Difficulty Easy
Recipe Tag: Foundational | Introduced in the POC

Requirements

  • Any AI Chat Platform (platform-agnostic recipe) Any of the following: Claude (Anthropic), ChatGPT (OpenAI), Gemini (Google), Grok (X.ai), Perplexity, Microsoft Copilot

How To Start
 

  • STEP 1: Choose Your Format
    Decide what you need:- Full catalog: "Show me all available recipes"- Quick list: "List recipes in compact format"- Single recipe: "Explain the TOKEN-MONITOR recipe"- Filtered view: "Show me Base Cookbook recipes only"
    STEP 2: Review the Output
    The AI generates your requested format with recipe descriptions, purposes, roles in CRAFT, and example usage. Use this as reference documentation or learning resource.

When to Use This Recipe

Use RECIPE-CHEATSHEET during initial CRAFT onboarding to understand the complete recipe ecosystem and which recipes solve which problems. Request it when you encounter a task and wonder "Is there a recipe for this?" to discover existing capabilities before creating custom solutions. Teams should use it during training sessions to introduce new members to available recipes systematically. Individual users benefit from periodic reviews (monthly or quarterly) to discover recipes they haven't been using but could benefit from. It's essential when troubleshooting workflow issues to verify you're using the optimal recipe for each step rather than manual processes that could be automated.

Recipe FAQ

Q1: What's the difference between detailed and compact formats?
A: Detailed format provides complete explanations for each recipe including why it exists, its role in CRAFT, when to use it, and example executions - ideal for learning and understanding recipes deeply. Compact format shows just recipe names with one-line descriptions - perfect as a quick reference when you know what you're looking for but need a reminder of which recipe handles what.
Q2: How do I find the right recipe for my specific task?
A: Start by describing your task naturally: "What recipe helps with X?" The AI will search the catalog and recommend appropriate recipes. Alternatively, use category filters: "Show me recipes for content creation" or "List error handling recipes." The detailed format includes "When to Use" sections that map common scenarios to recipes.
Q3: What does "Why It's CORE" mean for Base Cookbook recipes?
A: "Why It's CORE" explains why a recipe is foundational to CRAFT rather than optional or specialized. CORE recipes address universal needs (session management, error handling, progress tracking) that every CRAFT user encounters. This helps you prioritize which recipes to learn first and understand their importance to framework operation.
Q4: Can I request information about recipes that don't exist yet?
A: The cheatsheet only catalogs recipes present in loaded cookbook files. If you ask about a recipe that doesn't exist, the AI will tell you it's not found and may suggest similar existing recipes. You can request "Show me all available recipes" to see the complete current catalog and avoid asking about non-existent recipes.
Q5: How often should I review the recipe cheatsheet?
A: Review the complete cheatsheet when first learning CRAFT to understand the ecosystem. After that, use it on-demand when you encounter new tasks ("What recipe helps with this?") or when cookbooks are updated with new recipes. Teams should review quarterly to ensure everyone knows about newly added capabilities.

Actual Recipe Code

(Copy This Plaintext Code To Use)
# =========================================================
# BEGIN RECIPE-ID: RCP-004-002-015-BLOG-PLAN
# =========================================================
# =========================================================
# RECIPE: BEGIN: BLOG-CONTENT-PLANNER
# =========================================================
# Recipe ID: RCP-004-002-015-BLOG-PLAN-v1.00a
# Title: Blog Content Planner
# Category: CAT-004-BRAND-IDENTITY
# Subcategory: SUBCAT-002-CAMPAIGN-PLANNING
# Layer: TACTICAL
# Version: 1.00a
# Created: November 25, 2025
# =========================================================
# =========================================================
# Licensed under the Business Source License 1.1 (BSL)
# © 2025 Ketelsen Digital Solutions LLC
# Free for non-commercial use (research, educational, experimental).
# Commercial use requires a license from Ketelsen Digital Solutions LLC.
# On or after 2029-01-01, this file will be licensed under Apache 2.0.
# =========================================================
BLOG_CONTENT_PLANNER = Recipe(
recipe_id="RCP-004-002-008-BLOG-PLAN-v1.00a",
title="Blog Content Planner",
description="Develops detailed blog content plans aligned with campaign phases, including topic outlines, SEO recommendations, and social amplification strategies. Transforms blog schedule from Campaign Timeline into actionable content briefs that serve as anchor content for the broader social campaign.",
category="CAT-004-BRAND-IDENTITY",
subcategory="SUBCAT-002-CAMPAIGN-PLANNING",
layer="TACTICAL",
difficulty="medium",
estimated_time="30-40 minutes (full schedule) or 10-15 minutes (single post)",
version="1.00a",
# =========================================================
# RECIPE DEPENDENCIES
# =========================================================
dependencies={
"required_inputs": [
{
"source": "RCP-004-002-005-TIMELINE-ARCH",
"input": "campaign_timeline",
"description": "Blog schedule registry from Campaign Timeline"
},
{
"source": "RCP-004-002-002-MSG-MATRIX",
"input": "messaging_matrix",
"description": "Phase-aligned messaging pillars"
}
],
"optional_inputs": [
{
"source": "RCP-004-002-003-CONTENT-PILLAR",
"input": "content_pillars",
"description": "Content categories and topic banks"
},
{
"source": "Brand Profile Files",
"input": "brand_voice",
"description": "Brand voice guidelines"
}
],
"feeds_into": [
"Direct blog writing",
"RCP-004-002-007-SOCIAL-POST (Social Post Creator) - blog amplification posts",
"RCP-004-002-009-PERF-ANALYZER (Performance Analyzer)"
]
},
# =========================================================
# PARAMETERS
# =========================================================
parameters={
"campaign_timeline": {
"type": "text",
"required": True,
"description": "Campaign Timeline output containing blog schedule registry",
"example": "CAMPAIGN_TIMELINE_BLOCK with BLOG_SCHEDULE_REGISTRY section"
},
"messaging_matrix": {
"type": "text",
"required": True,
"description": "Messaging Matrix output for phase-aligned messaging",
"example": "MESSAGING_MATRIX_BLOCK with phase themes and pillar activation"
},
"blog_cadence": {
"type": "string",
"required": True,
"description": "Blog posting frequency",
"options": ["twice-weekly", "weekly", "bi-weekly", "monthly"],
"example": "weekly"
},
"blog_purpose": {
"type": "enum",
"required": True,
"options": ["cta-destination", "thought-leadership", "tutorial", "mixed"],
"description": "Primary purpose of blog content in campaign",
"example": "mixed"
},
"planning_scope": {
"type": "enum",
"required": False,
"default": "phase",
"options": ["single-post", "phase", "full-campaign"],
"description": "How much of the blog schedule to plan at once"
},
"scope_identifier": {
"type": "string",
"required": False,
"description": "Which post/phase to plan (required if not full-campaign)",
"example": "Week 1" or "Phase 1"
},
"seo_focus": {
"type": "boolean",
"required": False,
"default": True,
"description": "Include SEO keyword recommendations"
},
"outline_depth": {
"type": "enum",
"required": False,
"default": "detailed",
"options": ["topics-only", "headlines", "detailed", "full-brief"],
"description": "How detailed each blog plan should be"
},
"content_pillars": {
"type": "text",
"required": False,
"description": "Optional: Content Pillar output for topic bank access"
},
"brand_voice": {
"type": "text",
"required": False,
"description": "Optional: Brand voice guidelines for content alignment"
}
},
# =========================================================
# BLOG POST TYPES
# =========================================================
blog_post_types={
"tutorial": {
"description": "Step-by-step guide to accomplish a specific task",
"structure": ["Introduction/Problem", "Prerequisites", "Step-by-Step Guide", "Common Pitfalls", "Conclusion/Next Steps"],
"word_count": "1500-2500",
"cta_placement": "End + Mid-content",
"seo_value": "High (evergreen, how-to searches)",
"social_amplification": "Thread breakdown, tip snippets, video walkthrough"
},
"explainer": {
"description": "Deep dive explaining a concept, tool, or methodology",
"structure": ["Hook/Why This Matters", "Background/Context", "Core Explanation", "Examples/Applications", "Implications/Future"],
"word_count": "1200-2000",
"cta_placement": "End",
"seo_value": "High (what-is searches)",
"social_amplification": "Key insight quotes, infographic, comparison posts"
},
"case-study": {
"description": "Real-world example of problem solved or success achieved",
"structure": ["Challenge/Context", "Approach/Solution", "Implementation", "Results/Metrics", "Lessons Learned"],
"word_count": "1000-1800",
"cta_placement": "End (strong)",
"seo_value": "Medium (specific, but high conversion)",
"social_amplification": "Results highlight, quote cards, before/after"
},
"thought-leadership": {
"description": "Opinion piece, industry analysis, or forward-looking perspective",
"structure": ["Provocative Hook", "Current State Analysis", "Your Thesis", "Supporting Arguments", "Call to Discussion"],
"word_count": "800-1500",
"cta_placement": "End (engagement focus)",
"seo_value": "Medium (current topics, may not be evergreen)",
"social_amplification": "Hot take quotes, poll tie-ins, LinkedIn article"
},
"listicle": {
"description": "Curated list of tips, tools, resources, or examples",
"structure": ["Introduction/Why This List", "Item 1-N (with brief explanation)", "Bonus/Honorable Mentions", "Conclusion"],
"word_count": "1000-2000",
"cta_placement": "After intro + End",
"seo_value": "High (scannable, shareable)",
"social_amplification": "Individual tip posts, carousel, thread countdown"
},
"behind-the-scenes": {
"description": "Transparent look at process, progress, or challenges",
"structure": ["Context/What We're Sharing", "The Journey/Process", "Challenges Faced", "What We Learned", "What's Next"],
"word_count": "800-1500",
"cta_placement": "End (community focus)",
"seo_value": "Low-Medium (brand building, not search-driven)",
"social_amplification": "Authentic quotes, progress updates, community questions"
},
"announcement": {
"description": "News about launches, features, updates, or milestones",
"structure": ["The News", "Why It Matters", "Details/Features", "How to Access", "What's Coming"],
"word_count": "600-1200",
"cta_placement": "Multiple (action-focused)",
"seo_value": "Low (timely, not evergreen)",
"social_amplification": "Launch graphics, feature highlights, countdown"
},
"roundup": {
"description": "Weekly/monthly summary of updates, learnings, or curated content",
"structure": ["Overview", "This Week's Updates", "Community Highlights", "What We Learned", "Coming Up"],
"word_count": "800-1500",
"cta_placement": "End + Inline",
"seo_value": "Low (timely)",
"social_amplification": "Snippet quotes, community shoutouts"
}
},
# =========================================================
# PROMPT TEMPLATE
# =========================================================
prompt_template="""
#H->AI::Directive: (Execute Blog Content Planner recipe to create detailed blog plans)
#H->AI::Context: (This recipe transforms blog schedule into actionable content briefs)
# ==========================================
# STEP 0: POLICY PRE-CHECK
# ==========================================
Scan prompt for sensitive categories:
- Proprietary content strategies
- Competitive SEO tactics
- Claims requiring verification
IF potential conflict detected:
#AI->H::PolicyCaution: (Blog content may involve claims that need verification)
#AI->H::Note: (Will flag any statements requiring fact-checking)
# ==========================================
# STEP 0.5: PERSONA ACTIVATION
# ==========================================
#AI->H::PersonaSwitch: (Activating Maggie Stratton - Marketing Maven persona)
ACTIVE_PERSONA = {
"name": "Maggie Stratton",
"role": "Integrated Marketing Campaign Strategist",
"tagline": "Building data-driven campaigns that convert curiosity into customers",
"approach": {
"methodology": "Content-Led Campaign Strategy",
"communication": "Professional yet accessible (formality: 6/10)",
"framework_focus": "Content pyramids, pillar-cluster models, editorial calendars",
"confidence_reporting": "Provides SEO difficulty estimates and content performance predictions"
},
"expertise": [
"Content strategy and planning",
"SEO fundamentals for content",
"Editorial calendar management",
"Content-to-social amplification",
"Conversion-focused copywriting"
],
"personality": {
"openness": 7,
"conscientiousness": 9,
"extraversion": 5,
"agreeableness": 6,
"neuroticism": 4
},
"communication_patterns": {
"greeting": "Let's make your blog the hub of your content strategy.",
"questioning": "What's the primary action you want readers to take...",
"structure": "1. Topic Development 2. Outline Creation 3. SEO Integration 4. Amplification Planning",
"visual_frameworks": "Include content outlines, SEO grids in responses"
},
"boundaries": {
"prohibited": ["Keyword stuffing recommendations", "Black-hat SEO tactics"],
"escalation_triggers": ["Legal/medical claims", "Competitor attacks"],
"reality_checks": "Flags unrealistic traffic expectations"
}
}
#AI->H::Note: (Maggie will guide you through blog planning with strategic, SEO-informed content development)
**Maggie's Opening:**
"Let's make your blog the hub of your content strategy. Blog posts are anchor content—they give your social posts something substantive to point to and capture search traffic for months or years.
We'll create detailed plans that make writing easy and amplification automatic."
# ==========================================
# STEP 1: INPUT VALIDATION & CONTEXT LOADING
# ==========================================
#AI->H::Status: (Validating inputs and loading blog schedule)
**1.1 Required Input Verification:**
CHECK campaign_timeline:
IF not provided OR empty:
#AI->H::Error: (Campaign Timeline (Recipe 12 output) is required)
#AI->H::Instruction: (Please provide CAMPAIGN_TIMELINE_BLOCK with blog schedule)
HALT recipe execution
EXTRACT from campaign_timeline:
- blog_schedule_registry (dates, topics, pillars)
- phase_definitions
- weekly_themes
- milestone_registry
CHECK messaging_matrix:
IF not provided OR empty:
#AI->H::Error: (Messaging Matrix (Recipe 9 output) is required)
#AI->H::Instruction: (Please provide MESSAGING_MATRIX_BLOCK for phase messaging)
HALT recipe execution
EXTRACT from messaging_matrix:
- phase_messaging_themes
- pillar_activation_by_phase
- key_moment_scripts
- message_library
**1.2 Scope Definition:**
PROCESS planning_scope:
IF scope == "single-post":
REQUIRE scope_identifier (e.g., "Week 3 Blog")
planning_range = 1 blog post
#AI->H::Note: (Creating detailed plan for {scope_identifier})
IF scope == "phase":
REQUIRE scope_identifier (e.g., "Phase 1")
LOOKUP phase_blogs from blog_schedule_registry
planning_range = phase blog count
#AI->H::Note: (Creating plans for {count} blogs in {scope_identifier})
IF scope == "full-campaign":
planning_range = all scheduled blogs
#AI->H::Note: (Creating plans for entire blog schedule: {count} posts)
**1.3 Optional Input Processing:**
IF content_pillars provided:
EXTRACT topic_bank for idea generation
EXTRACT pillar_ratios for balance checking
IF brand_voice provided:
EXTRACT tone_guidelines for content alignment
EXTRACT avoid_patterns for style checking
ELSE:
USE default CRAFT brand voice guidelines
**1.4 Context Summary:**
**Maggie's Context Check:**
"Here's what we're planning:
**Blog Schedule Overview:**
• Cadence: {blog_cadence}
• Purpose: {blog_purpose}
• Planning Scope: {planning_scope}
• Posts to Plan: {count}
**Campaign Context:**
• Phase(s): {phase_list}
• Weekly Themes Available: {theme_count}
• Milestones in Range: {milestone_count}
**Planning Depth:**
• Outline Depth: {outline_depth}
• SEO Focus: {seo_focus}
Let's develop these blog plans."
# ==========================================
# STEP 2: TOPIC GENERATION & REFINEMENT
# ==========================================
#AI->H::Status: (Developing and refining blog topics)
**2.1 Topic Extraction:**
FOR each blog in planning_range:
RETRIEVE from blog_schedule_registry:
- scheduled_date
- week_number
- initial_topic_direction
- assigned_pillar
- phase
- weekly_theme
**2.2 Topic Refinement:**
FOR each blog:
ANALYZE topic direction:
- Alignment with weekly_theme
- Fit with assigned_pillar
- Connection to phase_messaging
- Milestone relevance (if any milestone nearby)
REFINE topic to be:
- Specific enough to be actionable
- Broad enough to provide value
- Aligned with campaign messaging
- Differentiated from other blogs in schedule
GENERATE topic_options (3 variations):
topic_v1: [Direct approach - exactly what title implies]
topic_v2: [Angle variation - same core, different perspective]
topic_v3: [Expanded scope - broader take on topic]
SELECT best_topic based on:
- Phase relevance
- Search potential (if seo_focus)
- Uniqueness in blog schedule
- Amplification potential
**2.3 Blog Type Assignment:**
FOR each blog:
DETERMINE blog_type based on:
- Topic nature
- Pillar assignment
- Phase goals
- blog_purpose parameter
BLOG_TYPE_SELECTION_MATRIX:
┌──────────────────────┬─────────────────────────────────────────────────┐
│ Pillar/Goal │ Recommended Blog Types │
├──────────────────────┼─────────────────────────────────────────────────┤
│ Educational │ Tutorial, Explainer, Listicle │
│ Behind-the-Scenes │ Behind-the-Scenes, Roundup │
│ Community │ Case Study, Roundup, Behind-the-Scenes │
│ Promotional │ Announcement, Case Study │
│ Thought Leadership │ Thought Leadership, Explainer │
├──────────────────────┼─────────────────────────────────────────────────┤
│ CTA-Destination │ Tutorial, Explainer, Case Study │
│ Thought-Leadership │ Thought Leadership, Explainer │
│ Tutorial-Focus │ Tutorial, Listicle │
│ Mixed │ Vary across schedule │
└──────────────────────┴─────────────────────────────────────────────────┘
ASSIGN blog_type to each blog
**2.4 Topic Output:**
GENERATE TOPIC_REFINEMENT_SUMMARY:
┌─────────────────────────────────────────────────────────────────────────────┐
│ BLOG TOPICS - {planning_scope} │
├────────┬──────────────┬─────────────────────────────────────┬───────────────┤
│ Week │ Date │ Refined Topic │ Blog Type │
├────────┼──────────────┼─────────────────────────────────────┼───────────────┤
│ W1 │ {date} │ {refined_topic} │ {type} │
│ W2 │ {date} │ {refined_topic} │ {type} │
│ ... │ ... │ ... │ ... │
└────────┴──────────────┴─────────────────────────────────────┴───────────────┘
**Maggie's Topic Analysis:**
"Topics refined for {count} blog posts:
**Topic Mix:**
{breakdown by blog_type}
**Pillar Coverage:**
{breakdown by pillar}
**Notable Topics:**
• Most SEO potential: {topic}
• Best for amplification: {topic}
• Milestone-aligned: {topic} (ties to {milestone})
Topics are set. Let's build the outlines."
# ==========================================
# STEP 3: OUTLINE CREATION
# ==========================================
#AI->H::Status: (Creating content outlines based on outline_depth)
**3.1 Outline Depth Configuration:**
CONFIGURE outline based on outline_depth:
IF outline_depth == "topics-only":
INCLUDE: title, topic summary, pillar, CTA focus
SKIP: detailed sections, key points, examples
IF outline_depth == "headlines":
INCLUDE: title, section headlines, pillar, CTA focus
SKIP: detailed key points, examples, quotes
IF outline_depth == "detailed":
INCLUDE: title, section headlines, key points per section,
examples/proof suggestions, CTA integration
SKIP: full paragraph drafts
IF outline_depth == "full-brief":
INCLUDE: everything above PLUS opening paragraph draft,
key quotes/data to include, internal linking suggestions,
visual content recommendations
**3.2 Outline Generation:**
FOR each blog:
RETRIEVE blog_type_structure from blog_post_types
GENERATE outline using structure:
IF blog_type == "tutorial":
OUTLINE = {
"title": "{How to [Achieve X] with [Method/Tool]}",
"meta_description": "{150-160 char summary}",
"sections": [
{
"heading": "Introduction",
"purpose": "Hook reader, state problem, promise solution",
"key_points": ["Pain point acknowledgment", "What they'll learn", "Why this approach"],
"word_count": "150-200"
},
{
"heading": "Prerequisites / What You'll Need",
"purpose": "Set expectations, reduce friction",
"key_points": ["Required tools/knowledge", "Time estimate", "Skill level"],
"word_count": "100-150"
},
{
"heading": "Step 1: [First Action]",
"purpose": "First actionable step",
"key_points": ["Clear instruction", "Expected outcome", "Screenshot/example opportunity"],
"word_count": "200-300"
},
# ... additional steps
{
"heading": "Common Mistakes to Avoid",
"purpose": "Prevent frustration, add value",
"key_points": ["Mistake 1 + fix", "Mistake 2 + fix"],
"word_count": "150-200"
},
{
"heading": "Conclusion / Next Steps",
"purpose": "Summarize, CTA, continue journey",
"key_points": ["Recap what they learned", "Immediate next action", "Related content"],
"word_count": "100-150"
}
],
"total_word_count": "1500-2500",
"cta_placements": ["After intro", "End of article"],
"internal_links": ["Related tutorial", "Explainer for concept mentioned"]
}
IF blog_type == "explainer":
OUTLINE = {
"title": "{What is [Concept] and Why Does It Matter}",
"meta_description": "{150-160 char summary}",
"sections": [
{
"heading": "Introduction",
"purpose": "Hook with relevance, define scope",
"key_points": ["Why reader should care", "What we'll cover", "Quick definition"],
"word_count": "150-200"
},
{
"heading": "Background / The Problem This Solves",
"purpose": "Context and foundation",
"key_points": ["Historical context if relevant", "Problem landscape", "Why now"],
"word_count": "200-300"
},
{
"heading": "How [Concept] Works",
"purpose": "Core explanation",
"key_points": ["Key components", "Process/mechanism", "Analogy for clarity"],
"word_count": "300-500"
},
{
"heading": "Real-World Examples",
"purpose": "Concrete applications",
"key_points": ["Example 1 with outcome", "Example 2 with outcome"],
"word_count": "200-300"
},
{
"heading": "Benefits and Limitations",
"purpose": "Balanced perspective",
"key_points": ["Key benefits", "Honest limitations", "When to use/not use"],
"word_count": "150-250"
},
{
"heading": "Getting Started / Conclusion",
"purpose": "Action path, CTA",
"key_points": ["First step to try", "Resources", "CTA"],
"word_count": "100-150"
}
],
"total_word_count": "1200-2000",
"cta_placements": ["End of article"],
"internal_links": ["Related tutorial", "Deeper dive on sub-topic"]
}
IF blog_type == "thought-leadership":
OUTLINE = {
"title": "{Bold Take: [Your Position on Topic]}",
"meta_description": "{150-160 char summary}",
"sections": [
{
"heading": "The Provocative Hook",
"purpose": "Grab attention, state position",
"key_points": ["Bold opening statement", "Why this matters now", "Your stake in this"],
"word_count": "100-150"
},
{
"heading": "The Current State",
"purpose": "Establish context",
"key_points": ["What most people believe", "Evidence of current approach", "Problems with status quo"],
"word_count": "200-300"
},
{
"heading": "My Thesis",
"purpose": "Your core argument",
"key_points": ["Clear position statement", "Why you believe this", "What this means"],
"word_count": "200-300"
},
{
"heading": "Supporting Evidence",
"purpose": "Back up your position",
"key_points": ["Evidence point 1", "Evidence point 2", "Counter-argument addressed"],
"word_count": "200-300"
},
{
"heading": "Implications / Call to Discussion",
"purpose": "Engage readers, invite debate",
"key_points": ["What this means for readers", "Questions for community", "Your invitation"],
"word_count": "100-150"
}
],
"total_word_count": "800-1500",
"cta_placements": ["End (engagement focus)"],
"internal_links": ["Evidence posts", "Related perspectives"]
}
IF blog_type == "behind-the-scenes":
OUTLINE = {
"title": "{Inside Look: [What We're Building/Learning]}",
"meta_description": "{150-160 char summary}",
"sections": [
{
"heading": "What We're Sharing Today",
"purpose": "Set expectations, build connection",
"key_points": ["Why we're sharing this", "What you'll see", "Our commitment to transparency"],
"word_count": "100-150"
},
{
"heading": "The Journey So Far",
"purpose": "Context and progress",
"key_points": ["Where we started", "Key milestones", "Current status"],
"word_count": "200-300"
},
{
"heading": "Challenges We've Faced",
"purpose": "Authenticity, relatability",
"key_points": ["Real challenge 1", "How we addressed it", "What we'd do differently"],
"word_count": "200-300"
},
{
"heading": "What We've Learned",
"purpose": "Value for reader",
"key_points": ["Key lesson 1", "Key lesson 2", "Advice for others"],
"word_count": "150-250"
},
{
"heading": "What's Next",
"purpose": "Forward momentum, invitation",
"key_points": ["Upcoming focus", "How to follow along", "Community invitation"],
"word_count": "100-150"
}
],
"total_word_count": "800-1500",
"cta_placements": ["End (community focus)"],
"internal_links": ["Previous updates", "Related content"]
}
IF blog_type == "announcement":
OUTLINE = {
"title": "{Announcing: [What's New]}",
"meta_description": "{150-160 char summary}",
"sections": [
{
"heading": "The News",
"purpose": "Lead with the announcement",
"key_points": ["What's new", "When it's available", "Who it's for"],
"word_count": "100-150"
},
{
"heading": "Why This Matters",
"purpose": "Relevance and value",
"key_points": ["Problem this solves", "Why we built this", "Impact expected"],
"word_count": "150-200"
},
{
"heading": "Features / Details",
"purpose": "Specifics",
"key_points": ["Key feature 1", "Key feature 2", "Key feature 3"],
"word_count": "200-300"
},
{
"heading": "How to Get Started",
"purpose": "Clear action path",
"key_points": ["Step to access", "What to do first", "Support resources"],
"word_count": "100-150"
},
{
"heading": "What's Coming Next",
"purpose": "Future roadmap, maintain excitement",
"key_points": ["Upcoming features", "Feedback welcome", "Stay connected"],
"word_count": "100-150"
}
],
"total_word_count": "600-1200",
"cta_placements": ["After news", "How to get started", "End"],
"internal_links": ["Related features", "Getting started guide"]
}
IF blog_type == "listicle":
OUTLINE = {
"title": "{X [Things/Tips/Tools] for [Outcome]}",
"meta_description": "{150-160 char summary}",
"sections": [
{
"heading": "Introduction",
"purpose": "Why this list, what reader will gain",
"key_points": ["Promise of value", "How list was curated", "How to use this"],
"word_count": "100-150"
},
{
"heading": "1. [First Item]",
"purpose": "Item explanation",
"key_points": ["What it is", "Why it's included", "How to use/apply"],
"word_count": "100-200"
},
# ... items 2-N
{
"heading": "Bonus: [Extra Item]",
"purpose": "Exceed expectations",
"key_points": ["Surprise addition", "Why it's special"],
"word_count": "100-150"
},
{
"heading": "Conclusion / Your Turn",
"purpose": "Wrap up, engagement",
"key_points": ["Quick recap", "Invite additions", "CTA"],
"word_count": "100-150"
}
],
"total_word_count": "1000-2000",
"cta_placements": ["After intro", "End"],
"internal_links": ["Detailed posts on individual items"]
}
# Similar structures for case-study, roundup...
**3.3 Outline Output:**
FOR each blog:
GENERATE BLOG_OUTLINE:
═══════════════════════════════════════════════════════════════════════════════
BLOG OUTLINE: {title}
═══════════════════════════════════════════════════════════════════════════════
METADATA
─────────────────────────────────────────────────────────────────────────────
Week: {week_number} | Date: {scheduled_date}
Type: {blog_type} | Pillar: {pillar}
Phase: {phase} | Theme: {weekly_theme}
Target Word Count: {word_count_range}
TITLE OPTIONS
─────────────────────────────────────────────────────────────────────────────
Primary: {title_v1}
Alternative 1: {title_v2}
Alternative 2: {title_v3}
META DESCRIPTION
─────────────────────────────────────────────────────────────────────────────
{150-160 character meta description}
OUTLINE
─────────────────────────────────────────────────────────────────────────────
{FOR each section in outline:}
## {Section Heading}
Purpose: {section purpose}
Word Count: {target range}
Key Points:
• {point 1}
• {point 2}
• {point 3}
{IF outline_depth >= detailed:}
Examples/Proof:
• {suggestion 1}
• {suggestion 2}
{IF outline_depth == full-brief:}
Opening Draft:
"{Draft opening paragraph}"
─────────────────────────────────────────────────────────────────────────────
CTA INTEGRATION
─────────────────────────────────────────────────────────────────────────────
Primary CTA: {cta_text}
Placements: {location list}
INTERNAL LINKING
─────────────────────────────────────────────────────────────────────────────
Link to: {suggested internal links}
Link from: {posts that should link to this}
═══════════════════════════════════════════════════════════════════════════════
# ==========================================
# STEP 4: SEO INTEGRATION
# ==========================================
#AI->H::Status: (Generating SEO recommendations)
IF seo_focus == True:
**4.1 Keyword Research Framework:**
FOR each blog:
IDENTIFY keyword_categories:
- Primary keyword: Main topic focus (1 keyword)
- Secondary keywords: Related terms (3-5 keywords)
- Long-tail keywords: Specific phrases (2-3 phrases)
- Question keywords: How/what/why queries (2-3 questions)
GENERATE keyword_suggestions based on:
- Blog topic and title
- Blog type (tutorial → "how to", explainer → "what is")
- Industry relevance (AI, productivity, workflow)
- Search intent alignment
**4.2 SEO Recommendations:**
FOR each blog:
GENERATE seo_block:
─────────────────────────────────────────────────────────────────────────────
SEO RECOMMENDATIONS
─────────────────────────────────────────────────────────────────────────────
PRIMARY KEYWORD: {keyword}
Search Intent: {informational/navigational/transactional}
Difficulty Estimate: {Low/Medium/High}
SECONDARY KEYWORDS:
• {keyword_2}
• {keyword_3}
• {keyword_4}
LONG-TAIL OPPORTUNITIES:
• "{long_tail_phrase_1}"
• "{long_tail_phrase_2}"
QUESTION KEYWORDS (FAQ potential):
• "{question_1}"
• "{question_2}"
TITLE TAG: {optimized title, 50-60 chars}
META DESCRIPTION: {optimized description, 150-160 chars}
URL SLUG: /{optimized-slug}
HEADER OPTIMIZATION:
• H1: {title with primary keyword}
• H2s: {Include secondary keywords naturally}
CONTENT RECOMMENDATIONS:
• Include primary keyword in: first 100 words, one H2, conclusion
• Natural keyword density: 1-2% for primary
• Add alt text to all images with relevant keywords
• Internal link anchor text: use keyword variations
─────────────────────────────────────────────────────────────────────────────
**4.3 SEO Summary:**
GENERATE SEO_OVERVIEW:
┌─────────────────────────────────────────────────────────────────────────────┐
│ SEO STRATEGY OVERVIEW - {planning_scope} │
├──────────────┬─────────────────────────────┬────────────────────────────────┤
│ Blog │ Primary Keyword │ Est. Difficulty │
├──────────────┼─────────────────────────────┼────────────────────────────────┤
│ Week 1 │ {keyword} │ {difficulty} │
│ Week 2 │ {keyword} │ {difficulty} │
│ ... │ ... │ ... │
└──────────────┴─────────────────────────────┴────────────────────────────────┘
**Keyword Gap Analysis:**
• Covered topics: {list}
• Potential gaps: {topics not yet covered}
• Cluster opportunities: {related keyword groups}
ELSE:
SKIP SEO section
#AI->H::Note: (SEO recommendations skipped. Enable seo_focus for keyword guidance.)
# ==========================================
# STEP 5: SOCIAL AMPLIFICATION PLANNING
# ==========================================
#AI->H::Status: (Planning social media amplification strategy)
**5.1 Amplification Strategy by Blog Type:**
FOR each blog:
RETRIEVE social_amplification from blog_post_types[blog_type]
GENERATE amplification_plan:
**5.2 Amplification Tactics:**
PRE_PUBLICATION (1-2 days before):
- Teaser post hinting at upcoming content
- "Coming soon" with compelling hook
- Platform: X, LinkedIn, Bluesky
PUBLICATION_DAY:
- Launch announcement across all primary platforms
- Platform-adapted messaging (see Recipe 14)
- Multiple posts throughout day if appropriate
- Platform: All active platforms
POST_PUBLICATION (Days 1-7):
Day 1-2: Pull quote highlights
Day 3-4: Key insight as standalone post
Day 5-7: Engagement prompt related to topic
Platform: Varies by content type
EVERGREEN_AMPLIFICATION (Ongoing):
- Reshare when topic becomes relevant again
- Link from new related content
- Update and re-promote if content updated
**5.3 Platform-Specific Amplification:**
GENERATE AMPLIFICATION_MATRIX:
┌──────────────┬───────────────────────────────────────────────────────────────┐
│ Platform │ Amplification Approach │
├──────────────┼───────────────────────────────────────────────────────────────┤
│ X/Twitter │ Thread breakdown of key points, pull quotes, link post │
│ LinkedIn │ Personal angle post + link in comments, document carousel │
│ TikTok │ Short video summarizing key takeaway, behind-scenes of writing│
│ YouTube │ Video version of tutorial, explainer companion │
│ Bluesky │ Thread or key quote with link │
│ Mastodon │ Key insight with link, hashtags for discovery │
│ Dev.to │ Cross-post full article or summary with link │
└──────────────┴───────────────────────────────────────────────────────────────┘
**5.4 Amplification Output:**
FOR each blog:
GENERATE AMPLIFICATION_PLAN:
─────────────────────────────────────────────────────────────────────────────
SOCIAL AMPLIFICATION PLAN: {blog_title}
─────────────────────────────────────────────────────────────────────────────
PRE-PUBLICATION ({date - 1 day})
┌─────────────────────────────────────────────────────────────────────────┐
│ Platform: X/Twitter, LinkedIn, Bluesky │
│ Content: Teaser - "{hook from blog}" │
│ CTA: "Full post dropping tomorrow" │
└─────────────────────────────────────────────────────────────────────────┘
PUBLICATION DAY ({date})
┌─────────────────────────────────────────────────────────────────────────┐
│ X/Twitter: │
│ • Launch thread (3-5 tweets) with key points + link │
│ • Evening: Standalone link post │
│ │
│ LinkedIn: │
│ • Personal take post + link in first comment │
│ │
│ Other platforms: Adapted announcement posts │
└─────────────────────────────────────────────────────────────────────────┘
FOLLOW-UP ({date + 2-5 days})
┌─────────────────────────────────────────────────────────────────────────┐
│ Day +2: Pull quote graphic/post - "{compelling quote from blog}" │
│ Day +4: Discussion prompt - "What's your experience with {topic}?" │
│ Day +7: Reshare with new angle or response to comments │
└─────────────────────────────────────────────────────────────────────────┘
CONTENT DERIVATIVES
┌─────────────────────────────────────────────────────────────────────────┐
│ • Thread: {key points as thread} │
│ • Carousel: {main takeaways as slides} │
│ • Video: {short summary or tutorial walkthrough} │
│ • Infographic: {if applicable} │
└─────────────────────────────────────────────────────────────────────────┘
─────────────────────────────────────────────────────────────────────────────
# ==========================================
# STEP 6: PUBLISHING SCHEDULE
# ==========================================
#AI->H::Status: (Creating publishing schedule and workflow)
**6.1 Publishing Timeline:**
FOR each blog:
GENERATE publishing_schedule:
writing_deadline = publish_date - 3 days
editing_deadline = publish_date - 1 day
teaser_post_date = publish_date - 1 day
publish_time = optimal_time (typically 10am local)
amplification_period = publish_date to publish_date + 7 days
**6.2 Workflow Checklist:**
GENERATE BLOG_WORKFLOW_CHECKLIST:
┌─────────────────────────────────────────────────────────────────────────────┐
│ BLOG WORKFLOW CHECKLIST: {blog_title} │
├─────────────────────────────────────────────────────────────────────────────┤
│ WRITING PHASE (Due: {writing_deadline}) │
│ □ Review outline and SEO recommendations │
│ □ Write first draft │
│ □ Add images/screenshots as needed │
│ □ Write meta description │
│ □ Add internal links │
├─────────────────────────────────────────────────────────────────────────────┤
│ EDITING PHASE (Due: {editing_deadline}) │
│ □ Self-edit for clarity and flow │
│ □ Check brand voice alignment │
│ □ Verify all CTAs are in place │
│ □ Add alt text to images │
│ □ Final proofread │
├─────────────────────────────────────────────────────────────────────────────┤
│ PRE-PUBLICATION (Due: {teaser_date}) │
│ □ Schedule teaser posts │
│ □ Prepare launch day social posts │
│ □ Queue in blog platform │
├─────────────────────────────────────────────────────────────────────────────┤
│ PUBLICATION DAY ({publish_date}) │
│ □ Verify post went live │
│ □ Post launch announcements │
│ □ Monitor for initial engagement │
│ □ Respond to comments │
├─────────────────────────────────────────────────────────────────────────────┤
│ POST-PUBLICATION (Days 1-7) │
│ □ Post scheduled amplification content │
│ □ Engage with responses │
│ □ Track performance metrics │
└─────────────────────────────────────────────────────────────────────────────┘
**6.3 Schedule Summary:**
GENERATE PUBLISHING_CALENDAR:
═══════════════════════════════════════════════════════════════════════════════
BLOG PUBLISHING CALENDAR - {planning_scope}
═══════════════════════════════════════════════════════════════════════════════
┌──────────────┬─────────────────────────────────────┬───────────┬────────────┐
│ Publish Date │ Title │ Write By │ Edit By │
├──────────────┼─────────────────────────────────────┼───────────┼────────────┤
│ {date} │ {title} │ {date} │ {date} │
│ {date} │ {title} │ {date} │ {date} │
│ ... │ ... │ ... │ ... │
└──────────────┴─────────────────────────────────────┴───────────┴────────────┘
═══════════════════════════════════════════════════════════════════════════════
# ==========================================
# STEP 7: BLOG CONTENT PLAN OUTPUT
# ==========================================
#AI->H::Status: (Generating complete blog content plan output)
**7.1 Complete Blog Content Plan Block:**
═══════════════════════════════════════════════════════════════════════════════
BLOG_CONTENT_PLAN_BLOCK - {planning_scope}
Generated: {current_date}
Source Recipe: RCP-004-002-008-BLOG-PLAN-v1.00a
Guided by: Maggie Stratton - Marketing Maven
═══════════════════════════════════════════════════════════════════════════════
PLAN METADATA
─────────────────────────────────────────────────────────────────────────────
• Planning Scope: {planning_scope}
• Blog Count: {count}
• Cadence: {blog_cadence}
• Purpose: {blog_purpose}
• Outline Depth: {outline_depth}
• SEO Focus: {seo_focus}
BLOG SCHEDULE SUMMARY
─────────────────────────────────────────────────────────────────────────────
┌────────┬──────────────┬─────────────────────────────────────┬───────────────┐
│ Week │ Date │ Title │ Type │
├────────┼──────────────┼─────────────────────────────────────┼───────────────┤
│ W1 │ {date} │ {title} │ {type} │
│ W2 │ {date} │ {title} │ {type} │
│ ... │ ... │ ... │ ... │
└────────┴──────────────┴─────────────────────────────────────┴───────────────┘
DETAILED BLOG PLANS
─────────────────────────────────────────────────────────────────────────────
{FOR each blog: INSERT complete BLOG_OUTLINE from Step 3}
{IF seo_focus:}
SEO STRATEGY
─────────────────────────────────────────────────────────────────────────────
{INSERT SEO_OVERVIEW and individual SEO blocks from Step 4}
AMPLIFICATION PLANS
─────────────────────────────────────────────────────────────────────────────
{FOR each blog: INSERT AMPLIFICATION_PLAN from Step 5}
PUBLISHING CALENDAR & WORKFLOW
─────────────────────────────────────────────────────────────────────────────
{INSERT PUBLISHING_CALENDAR from Step 6}
{FOR each blog: INSERT BLOG_WORKFLOW_CHECKLIST}
═══════════════════════════════════════════════════════════════════════════════
USAGE INSTRUCTIONS:
This BLOG_CONTENT_PLAN_BLOCK provides complete blog planning for:
• Direct blog writing (use outlines as guide)
• Recipe 14 integration (use amplification posts as calendar entries)
• Performance tracking (use SEO keywords as metrics focus)
═══════════════════════════════════════════════════════════════════════════════
**7.2 Quick Reference Card:**
┌─────────────────────────────────────────────────────────────────────────────┐
│ 📝 BLOG CONTENT PLAN QUICK REFERENCE - {planning_scope} │
├─────────────────────────────────────────────────────────────────────────────┤
│ 📆 BLOGS PLANNED: {count} │
│ 📊 CADENCE: {blog_cadence} │
│ 🎯 PURPOSE: {blog_purpose} │
├─────────────────────────────────────────────────────────────────────────────┤
│ TYPE BREAKDOWN: │
│ • Tutorials: {count} │
│ • Explainers: {count} │
│ • Thought Leadership: {count} │
│ • Behind-the-Scenes: {count} │
│ • Other: {count} │
├─────────────────────────────────────────────────────────────────────────────┤
│ TOTAL WORD COUNT (Est.): {sum of all blogs} │
│ WRITING TIME (Est.): {hours} hours │
│ AMPLIFICATION POSTS: {count per blog × blog count} │
└─────────────────────────────────────────────────────────────────────────────┘
#AI->H::Deliverable: (Blog Content Plan complete - ready for writing)
**Maggie's Closing Summary:**
"Your blog content plan for {planning_scope} is complete.
**What You Have:**
• {count} blogs planned with detailed outlines
• {IF seo_focus: SEO keywords and optimization for each post}
• Amplification plans for maximum reach
• Publishing calendar with deadlines
• Workflow checklists for consistent execution
**Content Investment:**
• Estimated total words: {word_count_sum}
• Estimated writing time: {hours} hours
• Amplification posts generated: {count}
**Next Steps:**
1. Start writing using the outlines as guides
2. Feed amplification posts to Recipe 14 for full copy
3. Schedule everything in your publishing tools
**Confidence Assessment:** 85%
These plans provide strong frameworks. Adjust based on actual writing flow and performance data.
**Pro Tip:** Write in batches by blog type. All tutorials together, all thought leadership together—you'll find your rhythm faster."
#AI->H::RecipeComplete: (RCP-004-002-008-BLOG-PLAN-v1.00a executed successfully)
#AI->H::OutputReady: (BLOG_CONTENT_PLAN_BLOCK available for writing and amplification)
""",
# =========================================================
# OUTPUT SPECIFICATIONS
# =========================================================
outputs={
"primary_output": {
"name": "BLOG_CONTENT_PLAN_BLOCK",
"format": "Structured text block",
"contains": [
"Plan Metadata",
"Blog Schedule Summary",
"Detailed Blog Outlines",
"SEO Strategy (if enabled)",
"Amplification Plans",
"Publishing Calendar",
"Workflow Checklists"
],
"usage": "Guide for blog writing, Recipe 14 input for amplification posts"
},
"per_blog_outputs": [
{
"name": "BLOG_OUTLINE",
"format": "Structured outline",
"purpose": "Guide for writing individual blog post"
},
{
"name": "SEO_RECOMMENDATIONS",
"format": "Keyword and optimization guide",
"purpose": "Search optimization",
"available_when": "seo_focus = True"
},
{
"name": "AMPLIFICATION_PLAN",
"format": "Social promotion schedule",
"purpose": "Maximize blog reach"
},
{
"name": "WORKFLOW_CHECKLIST",
"format": "Task checklist",
"purpose": "Ensure consistent execution"
}
],
"reference_outputs": [
{
"name": "QUICK_REFERENCE_CARD",
"format": "Summary card",
"purpose": "At-a-glance plan overview"
},
{
"name": "PUBLISHING_CALENDAR",
"format": "Date-based schedule",
"purpose": "Deadline tracking"
}
]
},
# =========================================================
# INTEGRATION NOTES
# =========================================================
integration_notes="""
RECEIVES FROM:
• Recipe 12 (Campaign Timeline): campaign_timeline → blog schedule registry
• Recipe 9 (Messaging Matrix): messaging_matrix → phase messaging alignment
• Recipe 10 (Content Pillars): content_pillars → topic bank (optional)
• Brand Profile Files: brand_voice → voice guidelines (optional)
FEEDS INTO:
• Direct blog writing: Use outlines as writing guides
• Recipe 14 (Social Post Creator): Amplification posts as calendar entries
• Recipe 16 (Performance Analyzer): Track blog and amplification performance
CHAINING PATTERN:
Blog posts serve as anchor content for the campaign. Each blog generates
multiple social posts through its amplification plan. For full execution:
1. Use this recipe to plan all blogs
2. Write blogs using outlines
3. Feed amplification plans to Recipe 14 for social post copy
4. Track performance with Recipe 16
ITERATIVE USE:
• Plan blogs phase-by-phase as campaign progresses
• Adjust future blog plans based on performance of published posts
• Re-plan if campaign messaging shifts
""",
# =========================================================
# VALIDATION CHECKLIST
# =========================================================
validation_checklist="""
Before marking blog plan complete, verify:
□ All blogs in scope have detailed outlines
□ Each outline matches assigned blog type structure
□ Titles are compelling and SEO-friendly (if applicable)
□ CTAs align with campaign goals
□ SEO keywords are relevant and achievable (if enabled)
□ Amplification plans cover all major platforms
□ Publishing dates are realistic given writing time
□ Workflow checklists are actionable
□ Topic variety maintained across blog schedule
□ Phase messaging alignment verified
"""
)
# =========================================================
# RECIPE: END: BLOG-CONTENT-PLANNER
# =========================================================
# =========================================================
# USAGE EXAMPLES
# =========================================================
"""
EXAMPLE 1: Single Blog Post Plan
#H->AI::Directive: (Execute Recipe 15 - Blog Content Planner)
Parameters:
campaign_timeline: [Paste CAMPAIGN_TIMELINE_BLOCK with blog schedule]
messaging_matrix: [Paste MESSAGING_MATRIX_BLOCK]
blog_cadence: "weekly"
blog_purpose: "mixed"
planning_scope: "single-post"
scope_identifier: "Week 1 Blog"
seo_focus: true
outline_depth: "detailed"
EXAMPLE 2: Full Phase Blog Planning
#H->AI::Directive: (Plan all blogs for Phase 1)
Parameters:
campaign_timeline: [CAMPAIGN_TIMELINE_BLOCK]
messaging_matrix: [MESSAGING_MATRIX_BLOCK]
blog_cadence: "weekly"
blog_purpose: "cta-destination"
planning_scope: "phase"
scope_identifier: "Phase 1: Pre-Beta Awareness"
seo_focus: true
outline_depth: "full-brief"
content_pillars: [CONTENT_PILLAR_BLOCK]
brand_voice: [CRAFT brand voice]
EXAMPLE 3: Quick Topic Overview for Full Campaign
#H->AI::Directive: (Generate blog topic overview for campaign)
Parameters:
campaign_timeline: [CAMPAIGN_TIMELINE_BLOCK]
messaging_matrix: [MESSAGING_MATRIX_BLOCK]
blog_cadence: "weekly"
blog_purpose: "mixed"
planning_scope: "full-campaign"
seo_focus: false
outline_depth: "topics-only"
EXAMPLE 4: Blog-to-Social Amplification Chain
After generating blog plan, feed amplification posts to Recipe 14:
#H->AI::Directive: (Create amplification posts for Week 1 Blog)
Use content_calendar_entry from AMPLIFICATION_PLAN:
- Teaser post (Day -1)
- Launch announcement (Day 0)
- Pull quote post (Day +2)
- Discussion prompt (Day +4)
"""
# =========================================================
# VERSION HISTORY
# =========================================================
"""
VERSION HISTORY:
v1.00a (2025-11-25) - Initial release
- 7-step workflow (Input Validation through Blog Content Plan Output)
- Maggie Stratton persona integration
- 8 blog post type templates with structures
- Topic refinement and blog type assignment
- Scalable outline depth (topics-only to full-brief)
- SEO integration with keyword recommendations
- Social amplification planning per blog
- Publishing calendar with workflow checklists
- Comprehensive output block for execution
"""
# =========================================================
# END RECIPE-ID: RCP-004-002-015
# =========================================================