memstack-automation-content-pipeline

$npx mdskill add cwinvestments/memstack/memstack-automation-content-pipeline

*Automates end-to-end content workflows from ideation through draft, review, approval, cross-platform formatting, scheduling, and publishing with CMS integration and image optimization.*

SKILL.md

.github/skills/memstack-automation-content-pipelineView on GitHub ↗
---
name: memstack-automation-content-pipeline
description: "Use this skill when the user says 'content pipeline', 'content automation', 'auto-publish', 'repurpose content', 'multi-platform publishing', or needs end-to-end content workflow from ideation through cross-platform formatting and publishing. Do NOT use for single social media posts or individual blog posts."
version: 1.0.0
license: "Proprietary — MemStack™ Pro by CW Affiliate Investments LLC. See LICENSE.txt"
---

# Content Pipeline — Automating content workflow...
*Automates end-to-end content workflows from ideation through draft, review, approval, cross-platform formatting, scheduling, and publishing with CMS integration and image optimization.*

## Activation

When this skill activates, output:

`Content Pipeline — Automating content workflow...`

Then execute the protocol below.

## Context Guard

| Context | Status |
|---------|--------|
| User says "content pipeline", "content automation", "auto-publish" | ACTIVE |
| User says "repurpose content" or "multi-platform publishing" | ACTIVE |
| User wants to automate content creation through distribution | ACTIVE |
| User wants a single blog post | DORMANT — use Blog Post |
| User wants a single social media post | DORMANT — use Twitter Thread or TikTok Script |

## Common Mistakes

| Mistake | Why It's Wrong |
|---------|---------------|
| "Same content on every platform" | Each platform has its own format, tone, and audience expectations. Repurpose, don't copy-paste. |
| "Automate quality away" | Automation handles formatting and scheduling, not editorial judgment. Keep human review in the loop. |
| "No content calendar" | Publishing without a schedule leads to feast-or-famine posting. Consistency beats volume. |
| "Skip image optimization" | Unoptimized images slow page load and fail platform size requirements. Automate resizing. |
| "Publish and forget" | Monitor engagement within 24-48 hours. Boost winners, learn from underperformers. |

## Protocol

### Step 1: Gather Pipeline Requirements

If the user hasn't provided details, ask:

> 1. **Content types** — what do you produce? (blog, newsletter, social, video, podcast)
> 2. **Platforms** — where do you publish? (website, Twitter/X, LinkedIn, Instagram, YouTube, email)
> 3. **Frequency** — how often? (daily, 3x/week, weekly)
> 4. **Team** — who's involved? (writer, editor, designer, social manager)
> 5. **CMS** — what do you use? (WordPress, Ghost, Notion, Webflow, headless CMS)
> 6. **Current process** — what's manual today that should be automated?

### Step 2: Design Pipeline Stages

```
[Ideation] → [Draft] → [Review] → [Approve] → [Format] → [Schedule] → [Publish] → [Monitor]
```

**Stage definitions:**

| Stage | Owner | Input | Output | Automation Level |
|-------|-------|-------|--------|-----------------|
| **Ideation** | Content lead | Keyword research, trending topics, audience questions | Content brief | Semi-auto (AI-assisted topic generation) |
| **Draft** | Writer | Content brief | Raw draft (Markdown/Docs) | Manual (AI-assisted) |
| **Review** | Editor | Raw draft | Edited draft with feedback | Manual |
| **Approve** | Content lead | Edited draft | Approved for publishing | Manual (checklist-gated) |
| **Format** | Pipeline | Approved content | Platform-specific versions | Fully automated |
| **Schedule** | Pipeline | Formatted content | Queued posts with dates/times | Fully automated |
| **Publish** | Pipeline | Scheduled posts | Live content across platforms | Fully automated |
| **Monitor** | Marketing | Published content | Engagement metrics | Semi-auto (dashboard) |

### Step 3: Content Repurposing Matrix

Define how one piece of content becomes many:

| Source | → Blog Post | → Twitter Thread | → LinkedIn | → Newsletter | → Instagram |
|--------|-----------|-----------------|-----------|-------------|------------|
| **Blog post** | Original | Key points (5-10 tweets) | Summary + insights | Featured article | Quote card + carousel |
| **Video** | Transcript → post | Key quotes | Behind-the-scenes | Recap + link | Clips (15-60s) |
| **Podcast** | Show notes | Soundbite quotes | Episode summary | Weekly roundup | Audiogram |
| **Newsletter** | Expanded article | Thread from section | Cross-post | Original | Highlight card |

**Repurposing rules:**
- Each platform version should feel native (not like a cross-post)
- Adjust tone: Twitter (punchy, direct), LinkedIn (professional, storytelling), Instagram (visual, emotional)
- Adjust length: Twitter (280 chars/tweet), LinkedIn (1300 chars optimal), Instagram (2200 chars max)
- Add platform-specific elements: hashtags (Instagram), mentions (Twitter), links (LinkedIn)

### Step 4: Image Optimization Pipeline

**Platform image specs:**

| Platform | Size | Aspect Ratio | Max File Size | Format |
|----------|------|-------------|--------------|--------|
| Blog (hero) | 1200×630 | 1.91:1 | 200KB | WebP (JPEG fallback) |
| Twitter | 1200×675 | 16:9 | 5MB | PNG/JPEG |
| LinkedIn | 1200×627 | 1.91:1 | 5MB | PNG/JPEG |
| Instagram (feed) | 1080×1080 | 1:1 | 8MB | JPEG |
| Instagram (story) | 1080×1920 | 9:16 | 8MB | JPEG |
| Newsletter | 600×300 | 2:1 | 100KB | PNG/JPEG |
| Open Graph | 1200×630 | 1.91:1 | 200KB | PNG/JPEG |

**Automated image processing:**

```bash
# Using sharp (Node.js) or ImageMagick
# From one source image, generate all platform variants:

sharp(sourceImage)
  .resize(1200, 630, { fit: 'cover' })
  .webp({ quality: 80 })
  .toFile('blog-hero.webp');

sharp(sourceImage)
  .resize(1080, 1080, { fit: 'cover' })
  .jpeg({ quality: 85 })
  .toFile('instagram-square.jpg');

sharp(sourceImage)
  .resize(1080, 1920, { fit: 'cover' })
  .jpeg({ quality: 85 })
  .toFile('instagram-story.jpg');
```

### Step 5: Scheduling Strategy

**Optimal posting times (general — adjust to your analytics):**

| Platform | Best Days | Best Times (ET) | Frequency |
|----------|----------|----------------|-----------|
| Blog | Tue-Thu | 10 AM | 1-3x/week |
| Twitter/X | Mon-Fri | 8 AM, 12 PM, 5 PM | 1-3x/day |
| LinkedIn | Tue-Thu | 7-8 AM, 12 PM | 3-5x/week |
| Instagram | Mon, Wed, Fri | 11 AM, 1 PM | 3-5x/week |
| Newsletter | Tue or Thu | 9-10 AM | 1x/week |
| YouTube | Thu-Sat | 2-4 PM | 1-2x/week |

**Content calendar template:**

```markdown
## Week of [Date]

| Day | Blog | Twitter | LinkedIn | Newsletter | Instagram |
|-----|------|---------|----------|-----------|-----------|
| Mon | — | [Thread from Friday's blog] | — | — | [Quote card] |
| Tue | [New post: Topic] | [3 promo tweets] | [Post: summary] | [Weekly send] | — |
| Wed | — | [Engagement thread] | — | — | [Carousel] |
| Thu | — | [Tips thread] | [Article share] | — | [Behind-scenes] |
| Fri | [New post: Topic] | [3 promo tweets] | [Post: summary] | — | [Quote card] |
```

### Step 6: CMS Integration Patterns

**Headless CMS workflow (API-based):**

```typescript
// Publish to CMS via API
async function publishToCMS(content: {
  title: string;
  body: string;
  slug: string;
  featuredImage: string;
  tags: string[];
  publishAt?: Date;
}): Promise<string> {
  const response = await cmsClient.post('/posts', {
    title: content.title,
    content: content.body,
    slug: content.slug,
    featured_image: content.featuredImage,
    tags: content.tags,
    status: content.publishAt ? 'scheduled' : 'published',
    published_at: content.publishAt?.toISOString(),
  });
  return response.data.url;
}
```

**Social media scheduling (via Buffer/Hootsuite API or native):**

```typescript
async function scheduleToSocial(posts: SocialPost[]): Promise<void> {
  for (const post of posts) {
    await bufferClient.post('/updates/create', {
      profile_ids: [post.profileId],
      text: post.content,
      media: post.imageUrl ? { photo: post.imageUrl } : undefined,
      scheduled_at: post.scheduledAt.toISOString(),
    });
  }
}
```

### Step 7: Monitoring & Optimization

**Engagement tracking (24-48 hours post-publish):**

| Metric | Blog | Twitter | LinkedIn | Newsletter |
|--------|------|---------|----------|-----------|
| Views/Impressions | Page views | Impressions | Impressions | Opens |
| Engagement | Time on page | Likes + replies | Reactions + comments | Click rate |
| Conversion | CTA clicks | Link clicks | Link clicks | Reply rate |
| Share/Viral | Social shares | Retweets | Reposts | Forwards |

**Content scoring formula:**

```
Score = (Engagement Rate × 40%) + (Conversion Rate × 40%) + (Shares × 20%)
```

- **A-tier (top 20%):** Repurpose aggressively, boost with ads, create sequel content
- **B-tier (middle 60%):** Standard distribution, note what worked
- **C-tier (bottom 20%):** Analyze why it underperformed, adjust future topics

## Output Format

```markdown
# Content Pipeline — [Brand/Product Name]

## Pipeline Stages
[Stage diagram and definitions from Step 2]

## Repurposing Matrix
[From Step 3 — source → platform transformations]

## Image Specs
[Platform-specific sizes from Step 4]

## Content Calendar
[Weekly template from Step 5]

## CMS & Social Integration
[API patterns from Step 6]

## Monitoring Dashboard
[Metrics and scoring from Step 7]
```

## Completion

```
Content Pipeline — Complete!

Platforms: [Count] ([list])
Content types: [Count]
Pipeline stages: 8 (ideation → monitor)
Publishing frequency: [X pieces/week across platforms]
Automation level: [X/8 stages automated]

Next steps:
1. Set up CMS API access and social scheduling tool
2. Create image templates for each platform
3. Build the first week's content calendar
4. Automate the Format → Schedule → Publish stages
5. Review engagement data weekly and adjust
```

## Level History

- **Lv.1** — Base: 8-stage pipeline (ideation through monitoring), content repurposing matrix (blog/video/podcast → 5 platforms), platform image specs with automated processing, optimal posting times, content calendar template, CMS integration patterns (headless API, social scheduling), engagement monitoring with content scoring formula. (Origin: MemStack Pro v3.2, Mar 2026)

More from cwinvestments/memstack

SkillDescription
compressUse when the user says 'headroom', 'compression', 'token savings', 'proxy status', or asks about context window usage.
diaryUse when the user says 'save diary', 'log session', 'wrapping up', or at end of a productive session.
echoUse when the user references past sessions, asks 'what did we do', 'do you remember', 'last session', 'recall', or 'continue from'.
familiarUse when the user says 'dispatch', 'send familiar', 'split task', or needs work split across parallel CC sessions.
forgeUse when the user says 'forge this', 'new skill', 'create enchantment', or wants to create a MemStack skill.
governorUse when the user says 'new project', 'project init', 'what tier', 'scope', or discusses project maturity, complexity budget, or what's appropriate to build.
grimoireUse when the user says 'update context', 'update claude', 'save library', or after significant project changes.
memstack-automation-api-integrationUse this skill when the user says 'API integration', 'connect APIs', 'sync data', 'data mapping', 'rate limiting', or needs system-to-system connectors with authentication, rate limit handling, and error recovery. Generates API integration code with authentication (OAuth, API key, JWT), request/response mapping, rate limit handling, error recovery with circuit breakers, and sync monitoring. Do NOT use for visual n8n workflows or webhook receiving.
memstack-automation-cron-schedulerUse this skill when the user says 'cron job', 'scheduled task', 'run every', 'cron expression', 'recurring job', or needs production-grade scheduled jobs with overlap prevention, monitoring, and structured logging. Do NOT use for n8n workflows or event-driven webhooks.
memstack-automation-hosted-mcp-catalogUse when the user says 'what MCP servers', 'find an MCP for', 'hosted MCP', 'list MCP servers', 'MCP catalog', 'available MCP tools', or needs to discover zero-setup hosted MCP servers they can use immediately. Do NOT use for building MCP servers or configuring local MCP.