Content Pipeline Skill
Safe content automation with human-in-the-loop approval. Draft → Review → Approve → Post.
Setup
npm install -g agent-content-pipeline
content init . # Creates folders + global config (in current directory)
For cryptographic approval signatures (password-protected):
content init . --secure
This creates:
drafts/— work in progress (one post per file)reviewed/— human reviewed, awaiting your revisionrevised/— you revised, ready for another lookapproved/— human-approved, ready to postposted/— archive after postingtemplates/— 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 listto 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:
---
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
You write draft to
drafts/Human runs
content review <file>:- With feedback → file moves to
reviewed/, you get notified - No feedback → human is asked "Approve?" → moves to
approved/
- With feedback → file moves to
If feedback: you revise and move to
revised/Human reviews from
revised/:- More feedback → back to
reviewed/ - Approve → moves to
approved/
- More feedback → back to
Posting happens manually via
content post
After Receiving Feedback
When you get review feedback:
Read the file from
reviewed/Apply the feedback
Move the file to
revised/Confirm what you changed
(Optional) Add a note:
content thread <file> --from agent
Platform Guidelines
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_tokenandct0manually
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 frontmatterTitle comes from frontmatter
title:(or first line if missing)Match each subreddit's rules and tone
Commands Reference
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? |
|---|---|---|---|
| Browser profile | ✅ Yes | ✅ Yes | |
| X/Twitter | Firefox tokens | ✅ Yes | ✅ Yes |
Both platforms require password to post. Tokens are extracted from Firefox and encrypted locally.