---
name: agent-content-pipeline
description: Safe content workflow (drafts/reviewed/revised/approved/posted) with human-in-the-loop approval, plus CLI to list/move/review and post to LinkedIn/X. Use when setting up a content pipeline, drafting content, managing review threads, or posting approved content.
---
# Content Pipeline Skill
Safe content automation with human-in-the-loop approval. Draft ā Review ā Approve ā Post.
## Setup
```bash
npm install -g agent-content-pipeline
content init . # Creates folders + global config (in current directory)
```
For cryptographic approval signatures (password-protected):
```bash
content init . --secure
```
This creates:
- `drafts/` ā work in progress (one post per file)
- `reviewed/` ā human reviewed, awaiting your revision
- `revised/` ā you revised, ready for another look
- `approved/` ā human-approved, ready to post
- `posted/` ā archive after posting
- `templates/` ā review and customize before use
- `.content-pipeline/threads/` ā feedback thread logs (not posted)
## Your Permissions
ā
**Can do:**
- Write to `drafts/`
- Read all content directories
- Revise drafts based on feedback
- Move revised files to `revised/`
- Run `content list` to see pending content
ā **Cannot do:**
- Move files to `approved/` (only the human can approve)
- Post content
- Set `status: approved`
## Creating Content
**One post per file.** Each suggestion or draft should be a single post, not a collection.
File naming: `YYYY-MM-DD-<platform>-<slug>.md`
Use frontmatter:
```yaml
---
platform: linkedin # linkedin | x | reddit (experimental)
title: Optional Title
status: draft
subreddit: programming # Required for Reddit
---
Your content here.
```
Tell the human: "Draft ready for review: `content review <filename>`"
## The Review Loop
```
drafts/ ā reviewed/ ā revised/ ā approved/ ā posted/
ā ā
āāāāāāāāāāāā
more feedback
```
1. You write draft to `drafts/`
2. Human runs `content review <file>`:
- **With feedback** ā file moves to `reviewed/`, you get notified
- **No feedback** ā human is asked "Approve?" ā moves to `approved/`
3. If feedback: you revise and move to `revised/`
4. Human reviews from `revised/`:
- More feedback ā back to `reviewed/`
- Approve ā moves to `approved/`
5. Posting happens manually via `content post`
### After Receiving Feedback
When you get review feedback:
1. Read the file from `reviewed/`
2. Apply the feedback
3. Move the file to `revised/`
4. Confirm what you changed
5. (Optional) Add a note: `content thread <file> --from agent`
## Platform Guidelines
### LinkedIn
- Professional but human
- Idiomatic language (Dutch for NL audiences, don't be stiff)
- 1-3 paragraphs ideal
- End with question or CTA
- 3-5 hashtags at end
### X (Twitter)
- 280 chars per tweet (unless paid account)
- Punchy, direct
- 1-2 hashtags max
- Use threads sparingly
- If Firefox auth fails, you can paste `auth_token` and `ct0` manually
Manual cookie steps:
1) Open x.com and log in
2) Open DevTools ā Application/Storage ā Cookies ā https://x.com
3) Copy `auth_token` and `ct0`
### Reddit (experimental)
- Treat as experimental; API and subreddit rules can change
- Requires `subreddit:` in frontmatter
- Title comes from frontmatter `title:` (or first line if missing)
- Match each subreddit's rules and tone
## Commands Reference
```bash
content list # Show drafts and approved
content review <file> # Review: feedback OR approve
content mv <dest> <file> # Move file to drafts/reviewed/revised/approved/posted
content edit <file> # Open in editor ($EDITOR or code)
content post <file> # Post (prompts for confirmation)
content post <file> --dry-run # Preview without posting
content thread <file> # Add a note to the feedback thread
```
## Security Model
The security model separates drafting (AI) from approval/posting (human):
- ā
Agent drafts content
- ā
Agent revises based on feedback
- ā Agent cannot approve (human approves via `content review`)
- ā Agent cannot post
Posting is handled manually via CLI ā never by the agent directly.
### Platform-specific security
| Platform | Auth Storage | Encrypted? | Password Required? |
|----------|--------------|------------|-------------------|
| LinkedIn | Browser profile | ā
Yes | ā
Yes |
| X/Twitter | Firefox tokens | ā
Yes | ā
Yes |
Both platforms require password to post. Tokens are extracted from Firefox and encrypted locally.AI advertising agents that automates ad campaigns across Google Ads, Meta Ads, LinkedIn Ads, and TikTok Ads. Creates campaigns, reads live performance data, researches keywords with real CPC data, optimizes budgets, and manages ads through natural language via the Adspirer MCP server. 103 tools across 4 ad platforms.
Self-orchestrating multi-agent development workflows.
Complete guide for creating and deploying browser automation functions
Comprehensive guide for building AI workflows, agents