---
name: content-engine
description: Runs the full content pipeline on one topic by calling six single-job skills in order (interview, draft, edit, hooks, repurpose, retro) and passing files between them. Use when the user says "run the content engine," "content engine on [topic]," "turn this idea into posts," "take this from idea to LinkedIn," "make content from this," "full content run," or wants one idea turned into finished posts for multiple channels. For a single step only (just hooks, just editing), use that step's skill directly.
---

# Content Engine (Orchestrator)

One job: run the six content skills in order and hand each one the file the last one produced.
This skill writes no content itself. Each step belongs to its own skill so you always know which one to fix.

Built from the one-agent-per-task workflow Mark Fershteyn showed on the GTM AI Podcast with Coach K.

## The pipeline

| Step | Skill | Reads | Writes |
|---|---|---|---|
| 1 | content-interviewer | topic from user | `interview.md` |
| 2 | content-drafter | `interview.md` | `draft.md` |
| 3 | content-editor | `draft.md` | `edited.md` |
| 4 | hook-writer | `edited.md` | `hooks.md` |
| 5 | content-repurposer | `edited.md`, `hooks.md` | `repurposed.md` |
| 6 | content-retro | all of the above + user feedback | appends to `learnings.md` |

All run files live in `content-runs/YYYY-MM-DD-topic-slug/`.
Shared files live in the workspace root: `voice/` (writing samples) and `learnings.md` (rules from past retros).

## STEP 0 (REQUIRED): Set up the run

1. Confirm the topic in one line. If the user gave no topic, ask: "What's the topic, and who is it for?" Do not proceed without a topic.
2. Create `content-runs/YYYY-MM-DD-topic-slug/`. Use today's date and a 2 to 5 word slug.
3. Check for `voice/`. If missing or holding fewer than 5 files, tell the user once: "No voice samples yet. Drop 10 or more of your best posts into `voice/` and I'll match them. Running with defaults for now." Then continue.
4. Check for `learnings.md`. If it exists, tell the user how many rules it holds.

## STEP 1 to 6 (REQUIRED): Run each skill in order

For each step:
- Load that step's skill and follow it exactly.
- Confirm its output file exists and passed that skill's check before starting the next step.
- If a step fails its check twice, stop and show the user what failed. Do not push a weak file downstream.

Between steps, give the user a one-line status: "Interview done (12 questions, 5 hard details). Drafting now."

The user can stop or skip at any point. If they say "skip the interview, here are my notes," save their notes as `interview.md` and start at Step 2.

## Running as separate agents (Claude Code)

If subagents are available, run Steps 2 to 5 each in a fresh subagent that receives only its input files and its skill. This keeps one job from bleeding into another. Steps 1 and 6 need live back-and-forth with the user, so run those in the main session.

## Done looks like

A run folder containing all five files, `learnings.md` updated, and a final message to the user:

```
Run complete: content-runs/2026-09-23-one-agent-rule/
- Edited piece: 412 words (cut 31% from draft)
- Top hook (score 27/30): "Your AI agent is bad because it has six jobs."
- Ready to post: LinkedIn, X thread (7 posts), newsletter section, 45-sec video script
- 2 new rules saved to learnings.md
```

## Edge cases

- **User pastes a finished draft:** save it as `draft.md` and start at Step 3.
- **User wants one channel only:** run Steps 1 to 4, then tell the repurposer which channel.
- **Topic too broad** ("AI in sales"): the interviewer narrows it. Do not start drafting on a broad topic.
- **Expect about four full runs** with honest retro feedback before output is consistently great. Plan roughly 30 minutes of feedback total. The results hold every run after.
