Content Pipeline
4-stage content pipeline orchestrator: Research -> Ideate -> Write -> Queue. Give it a topic, it researches existing discussions, generates hook angles, writ...
Description
name: Content Pipeline version: 1.0.0 description: | 4-stage content pipeline orchestrator: Research -> Ideate -> Write -> Queue. Give it a topic, it researches existing discussions, generates hook angles, writes a draft, and queues it for review. Inspired by @shannholmberg's 4-Agent content system (Research -> Ideate -> Write -> Orchestrate). Designed for creators who build in public and want systematic content production. when_to_use: when creating original content that needs research, angle selection, and drafting from scratch trigger: /pipeline languages: all attribution: Inspired by @shannholmberg's 4-Agent content system. Pipeline architecture is original. allowed-tools:
- Read
- Write
- Edit
- Bash
- Grep
- Glob
- Agent
- AskUserQuestion
Content Pipeline Orchestrator
One command, from topic to review-ready draft. Research -> Ideate -> Write -> Queue
When to use vs. not
Use pipeline (original content that needs research):
- Writing from scratch on a topic you haven't deeply explored
- Need to survey existing discussion, find data, pick an angle
- Example: "write about the impact of MoE on local inference" / "year-end market review"
Don't use pipeline (already have material):
- Quoting someone else's post -> just write directly
- Replying/commenting -> just write directly
- Polishing an existing draft -> just edit directly
- These scenarios waste 4-5x tokens through the pipeline with zero benefit
File locations
Configure these paths for your project:
| File | Purpose |
|---|---|
./content-queue.json |
Idea lifecycle state |
./research/ |
Research results (by date + slug) |
Commands
Parse user input, match first hit:
| Input | Command | Action |
|---|---|---|
/pipeline <topic> |
run | Full pipeline: research -> ideate -> write -> queue |
/pipeline url <url> |
url | Extract from URL -> ideate -> write -> queue |
/pipeline seed <idea> |
seed | Add raw idea to queue as seed |
/pipeline status |
status | Show queue grouped by status |
/pipeline review <id> |
review | Show a draft for review |
/pipeline approve <id> |
approve | Mark as approved |
/pipeline adapt <id> <platform> |
adapt | Generate platform variant |
/pipeline publish <id> |
publish | Mark as published + timestamp |
/pipeline clean |
clean | Archive items published 30+ days ago |
Queue data model
File: ./content-queue.json
{
"ideas": [
{
"id": 1,
"topic": "AI Agent end-to-end automation",
"status": "drafted",
"platform": "twitter",
"created": "2026-03-03T15:00:00Z",
"updated": "2026-03-03T15:05:00Z",
"research_file": "research/20260303-ai-agent-automation.md",
"hook_angle": "Builder perspective: Writing is easy, Research is the bottleneck",
"draft": "This person built a full...",
"variants": {},
"source_url": null,
"feedback": [],
"published": null
}
],
"next_id": 2
}
Status flow: seed -> researched -> drafted -> approved -> published -> archived
Queue read/write rules
- Read: Read
./content-queue.json - Write: Write back complete JSON (single-user, no concurrency issue)
- ID assignment: Use
next_id, increment after write - Timestamps: ISO 8601 with timezone
Command details
/pipeline -- Full Pipeline
Input: topic (keywords or short phrase)
Stage 1: Research
- Search for existing discussion on the topic using available search tools:
- Twitter/X search for relevant posts and threads
- Web search for articles and data
- Any domain-specific sources you have access to
- Compile findings into a research file:
slug = topic keywords, lowercase with hyphens, max 30 chars./research/YYYYMMDD-{slug}.md
Research file format:
# Research: {topic}
**Date**: YYYY-MM-DD
**Sources**: [list search methods used]
## Key findings
- [Finding 1 + source attribution]
- [Finding 2 + data/numbers]
- [Finding 3 + opposing viewpoint]
## Notable posts/articles
1. @user1 (N likes): "Core point summary"
2. @user2 (N likes): "Core point summary"
## Data points
- [Specific numbers, comparisons, statistics]
## Opposing viewpoints
- [Contrarian takes, if any]
## Source links
- [List of original URLs]
Stage 2: Ideate
- Read the research file
- Generate 3 hook angles based on the research:
Angle generation prompt (adapt for your LLM of choice):
You are a content strategist. Based on the following research, generate 3 hook angles for a post.
Research:
{research file content}
Requirements:
1. Each angle includes:
- Hook type (contrast / counterintuitive / data-driven / story / question)
- Core thesis (one sentence)
- Key supporting points (2-3)
- Estimated virality score (1-5)
2. Match the creator's voice and domain expertise
3. Avoid: AI cliches, marketing speak, listicle format
Output as JSON array:
[{"type": "contrast", "thesis": "...", "supports": ["...", "..."], "score": 4}, ...]
- Select the highest-scored angle
- If multiple angles tie, present options for user to choose
Stage 3: Write
- Write the draft using the selected hook angle + research data points
- Content format routing:
- Content <= 280 chars -> short post (tweet)
- 280-2000 chars -> long post (thread)
-
2000 chars -> article
- Apply your preferred writing style/voice (integrate with a style skill if you have one)
- Verify all claims have source attribution from the research
Stage 4: Queue
- Read content-queue.json
- Create new entry:
status: "drafted"platform: target platformresearch_file: relative pathhook_angle: selected angle descriptiondraft: written text
- Write back content-queue.json
- Output confirmation:
Pipeline complete -- queued #<id> Topic: <topic> Hook: <angle summary> Draft: <first 80 chars>... Format: short / long / article Use /pipeline review <id> to see full content
/pipeline url -- From URL input
- Fetch the URL content using available tools
- Extract core arguments and data points
- Skip Stage 1 (use extracted content as research)
- Continue to Stage 2 (ideate) -> Stage 3 (write) -> Stage 4 (queue)
- Record
source_urlin the entry
/pipeline seed -- Add raw seed
- Create queue entry:
status: "seed"topic: the idea textdraft: null (seeds have no draft yet)
- Output:
Seed added to queue #<id>
Seeds are raw ideas waiting to be developed. Run /pipeline <topic> later to expand a seed through the full pipeline.
/pipeline status -- Queue status
Read content-queue.json, output grouped by status:
Content Pipeline Status
Seed (N):
#3 "Multi-agent orchestration" -- 3/3 15:00
Drafted (N):
#1 "AI Agent automation" -- 3/3 15:05
#2 "Market arbitrage math" -- 3/3 16:20
Approved (N):
#5 "MCP practical experience" -- 3/2 20:00
Published (N):
#4 "Three-layer scraping approach" -- 3/1
Total: N items | Pending: seed(N) + drafted(N)
Show only non-archived items. If over 20 items, show most recent 20 + total count.
/pipeline review -- Review
- Find the entry in queue
- Display full info:
Review #<id>
Topic: <topic>
Status: <status>
Hook: <hook_angle>
Created: <created>
--- Draft ---
<full draft text>
--- Variants ---
[list any platform variants]
--- Research ---
File: <research_file>
[first 5 key findings if research file exists]
Actions:
/pipeline approve <id> -- approve for publishing
/pipeline adapt <id> <platform> -- generate platform variant
/pipeline approve -- Approve
- Change status to "approved"
- Update
updatedtimestamp - Output:
#<id> approved -- ready to publish
/pipeline adapt -- Multi-platform adaptation
Adapt the draft for a different platform:
- Read the entry's draft
- Rewrite for the target platform's conventions:
- Different character limits
- Different audience expectations
- Different formatting norms
- Store in
variants.<platform>field - Output:
<platform> variant generated -- /pipeline review <id> to see
/pipeline publish -- Publish marker
- Change status to "published"
- Record
publishedtimestamp - Output:
#<id> marked as published
/pipeline clean -- Archive cleanup
- Scan all
publishedentries - Archive entries older than 30 days
- Output:
Archived N old entries
Design principles
- Research and Ideate stages are platform-agnostic -- only the Write stage adapts for platform
- One research effort can produce content for multiple platforms ("one fish, many meals")
- Drafts should be source-verified before entering the queue -- no unsourced claims
- Seeds are cheap to capture, expensive to develop -- capture freely, develop selectively
- The pipeline is a framework, not a straitjacket -- skip stages when you already have what you need
Reviews (0)
No reviews yet. Be the first to review!
Comments (0)
No comments yet. Be the first to share your thoughts!