Content Production Pipeline
v2.0 · Self-contained · Inner + Outer Loop
A two-loop system: an inner loop (per-piece, runs frequently) that moves content from topic discovery through production to distribution, and an outer loop (quarterly) that aggregates performance data to calibrate brand strategy and content pillars. The inner loop produces content. The outer loop ensures the content adds up to something.
§Two-Loop Architecture
Most content pipelines treat every piece as a one-off. You publish, you move on. After 20 posts you have a folder, not a body of work. The outer loop exists to prevent that — it closes the feedback loop between what you publish and what you believe, so your content actually compounds into authority over time.
The ICP Template
Each ICP is a structured document — not prose. This makes it loadable and referenceable across every stage.
- Identity — role, company size/sector, who they report to
- Problems — primary + secondary pain points, current non-working solution
- Buying Behavior — how they find vendors, evaluation criteria, decision timeline
- Language — phrases they actually use; subtext they don't say
- Content Needs — awareness/consideration/decision by funnel stage
"Language they use" feeds Voice Encoder positive patterns. "What they don't say but mean" feeds angle sharpness at Stage 3.5.
02Content Strategy — The Translation Layer
Brand strategy says who you are. Content strategy answers: given who you are, what should you be talking about, to whom, and where? Without this bridge, you have principles with no execution plan and topics with no strategic backbone.
S2 Content Strategy Agent → Founder approves
Cannot enter inner loop without: at least 3 content pillars defined + 1 audience × funnel map complete
- 3–5 Content Pillars — thematic buckets with ICP + funnel stage + boundaries + example topics
- Audience × Funnel Map — what each ICP needs at awareness, consideration, decision
- Editorial Rules — cadence, type ratio, rotation logic, banned topics
- Position Register — living record of claims staked across all published pieces
- Lightweight SEO Layer — keyword clusters, content gaps, priority terms
The Position Register
A living document tracking intellectual coherence across all published pieces. Without it, you end up with 10 posts that don't add up.
| Column | Description |
|---|---|
| Positions We've Staked | Claim, first made in which piece, pillar, status |
| Contradictions to Watch | Tension between positions |
| Gaps — What We Haven't Said | Topics that should exist but don't |
| Opposing Views | Counter-arguments to our positions |
Updated after every published piece. Reviewed quarterly in outer loop.
03Topic Discovery — Inner Loop Entry
Random topic selection produces disconnected content. Topic discovery enforces systematic scanning of the landscape, scoring each candidate against strategic fit, ICP relevance, trend momentum, and evidence base. The result: topics that connect to pillars and have source trails to back them up.
S3 Topic Discovery Agent → Founder selects
Before scanning sources, check dead-letter-log.md for entries with revisit date ≤ today. These get added as candidates alongside fresh scan results.
| Criterion | 1 (Weak) | 3 (Adequate) | 5 (Strong) | Score |
|---|---|---|---|---|
| Strategic fit | Doesn't connect to any pillar | Serves one pillar tangentially | Directly advances a core pillar | /5 |
| ICP relevance | No clear target reader | Interesting but not urgent | Addresses primary pain point now | /5 |
| Trend momentum | Peaked 18+ months ago | Stable ongoing conversation | Active spike in last 30 days | /5 |
| Evidence base | No data available | Some material, needs more | Multiple credible sources ready | /5 |
Gate: 17+/20 — scores must be grounded with cited evidence
Enforce editorial type ratios (e.g. 50% thought leadership, 30% tactical, 20% case study). A tactical piece scoring 17/20 may be selected over a thought leadership piece scoring 18/20 if thought leadership is over-represented.
The Source Inventory
A canonical, maintained list of sources to scan repeatedly. Not ad-hoc. Schema: Source · URL · Signal Type · Pillar(s) · Frequency · Last Checked.
Weekly sources feed the inner loop. Monthly sources feed the outer loop.
03.5Angle Generation — Where Differentiation Lives
A topic is "digital strategy for NGOs." An angle is "why most NGOs mistake a website refresh for digital strategy." The topic is the territory. The angle is your specific claim within it. Skip angle generation and you get generic content that sounds like everyone else's. The angle is where you take a position.
S3.5 Angle Generation Agent → Founder selects
| Criterion | 1 (Weak) | 3 (Adequate) | 5 (Strong) | Score |
|---|---|---|---|---|
| Distinctiveness | Says what top 5 results already say | Different framing, same conclusion | Something no one in the space has said | /5 |
| Brand fit | Doesn't connect to any belief | Loosely aligned with one belief | Directly expresses a core brand position | /5 |
| Provability | Pure opinion, no evidence path | Partially supportable | Strong evidence trail + experience | /5 |
| ICP resonance | Interesting to us, not reader | Reader nods but doesn't share | Reader thinks "this is about MY problem" | /5 |
| Sharpness | Takes no position ("it depends") | Has position but hedges | Makes a clear falsifiable claim | /5 |
Gate: 20+/25 — rank by total score, present top 3 to Founder
Topic: Why Greek Businesses Confuse Digital Presence With Digital Strategy
"Are You Running a Digital Presence or a Digital Strategy?" — Frame the article as a self-assessment. Present 7 diagnostic questions. Hook: "If your marketing dashboard shows follower counts but not revenue attribution, you have a digital presence." — Score: 8.5/10 SELECTED
Alternative: "Why the Presence-vs-Strategy Problem Is Worse in Greece" (2,400 agencies, fewer than 40 with analytics staff) — Score: 8.3/10
Alternative: "5 Things Greek Agencies Call 'Digital Strategy' That Are Actually Just Digital Presence" — Score: 7.8/10
04Content Production — The Inner Loop Core
Takes a selected topic + angle and produces a publishable piece. Five sub-stages: Kickstart Interview → Research → Scaffold → Draft → Quality Gates.
4a Kickstart Interview Bidirectional
Starts from the chosen angle — not a blank topic. Can refine or reject the angle. Territories:
- Origin & urgency — why this angle, why now?
- Central claim — the one thing the reader should take away
- Reader — specific ICP, current state, desired shift
- Scope — what's in, what's out
- Form & length — essay? reported? tactical?
- Research needs — what we know vs. need to find
4b Research
Two phases: write the research brief first, then gather 3–5 sources.
- What's the strongest counterargument to our central claim?
- What's the best data point that makes this concrete?
- What has been said that we disagree with?
- What evidence would change our mind?
- What do we need to know that we currently don't?
Variants exist for case study and tactical/how-to content forms.
00-research-brief.md + 01-research.md — each finding as a bullet with source URL, tagged by research question.
4c Scaffold Founder approves
The most important step. The scaffold IS the plan — drafting follows it exactly.
| Field | Required | Description |
|---|---|---|
| Claim | Yes | One sentence — what this section asserts |
| Evidence | Yes | Specific sources with line refs |
| Purpose | Yes | inform / persuade / orient / demonstrate |
| Voice note | Yes | How this section should sound |
| Brand terms | Optional | Specific vocab to deploy here |
4d Draft
Write from the scaffold. The scaffold IS the plan.
- Follow section order and purpose from scaffold
- Weave brand terms where scaffold specifies
- Cite sources inline
- No new sections without returning to scaffold
- If a section needs evidence not in the brief — STOP
Output: 03-draft.md
04eQuality Gates — Four Independent Binary Gates
A single composite score hides failure. "90/100" can mean Voice 60 + Evidence 95. You revise generically and never fix the actual problem. Four separate binary gates force surgical diagnosis: which specific gate failed, what the violation is, and what revision path to take.
Gate 1 Voice: PASS — Opens with reader's problem, not credentials. Contains 12 specific data points. No forbidden phrases found. Minor: one 32-word sentence in Section 3.
Gate 2 Evidence: PASS (with 2 notes) — SEV statistic needs footnote. GEMI count needs source parenthetical.
Overall: CONDITIONAL PASS — Ready for publication after 5 minor revisions (35 min estimated).
05Distribution & Measurement
Publishing is not distribution. A piece that sits on a blog with no distribution brief is a product no one finds. Each derivative format (LinkedIn post, newsletter excerpt, etc.) is its own content type — not a copy-paste. Distribution is also where the outer loop gets triggered: after 3 published pieces, performance data feeds back into strategy.
S5 Distribution Agent briefs → Founder publishes
- Channel selection — primary (full piece lives here), secondary (adapted), skip (doesn't belong)
- Per-format distribution briefs — LinkedIn hook + claim + CTA; newsletter subject + teaser + pullquote
- Lightweight quality check — each derivative passes a mini Voice Gate
- Position Register update — add new positions staked, flag contradictions, note gaps closed (not optional)
- Publish + schedule + measure
Views/reach · Engagement (comments, shares, saves) · Inbound inquiries attributed · Best-performing format/channel
∞The Outer Loop — Quarterly Calibration
Individual pieces are data points. The outer loop looks at the aggregate: which pillars are producing results, which ICPs are actually engaging, whether your brand positioning still holds after real-world feedback. Without this, you keep producing content that doesn't add up to a body of work.
Performance Signal
Aggregate learnings after 3+ published pieces. Triggered automatically — not optional.
- What worked — topics/angles/formats with data
- What didn't — topics/angles/formats that fell flat
- Pattern observations — emerging patterns across pieces
- Recommendations — for Stage 2, Stage 3, Stage 1
03-content-strategy/performance-signals/quarterly-NNN.md
Pillar Review Session
One structured session triggered by the Performance Signal. Focused — not an ongoing discussion.
- Pillar Health Check — is each pillar producing results?
- Missing Pillar Detection — performance patterns suggest a pillar we don't have?
- Audience × Funnel Calibration — does the audience map still reflect reality?
- Brand Positioning Check — does positioning still hold?
- Source Calibration — which sources produced the best topics?
content-strategy.md with tracked changes + rationale. Any Stage 1 changes flagged for Founder approval. Source inventory adjusted based on what produced results.
§Artifact Map — All Outputs
Every artifact that travels between stages. Each has a name, location, template, and owner.
| Artifact | Template | Owner | Purpose |
|---|---|---|---|
brand-brief.md |
templates/brand-brief.md |
Founder | Core brand identity — positioning, beliefs, ICPs |
voice-encoder.md |
templates/voice-encoder.md |
Agent / Founder approves | Voice definition for production — versioned, living |
icp-001.md |
templates/icp.md |
Founder | Structured ICP — identity, problems, buying, language |
core-beliefs.md |
templates/core-beliefs.md |
Founder | Non-negotiables every piece must be consistent with |
content-strategy.md |
templates/content-strategy.md |
Agent / Founder approves | Pillars, audience × funnel map, editorial rules |
position-register.md |
templates/position-register.md |
Agent | Living record of claims, positions, gaps across all pieces |
source-inventory.md |
templates/source-inventory.md |
Agent | Canonical maintained list of sources to scan |
scan-NNN.md |
templates/topic-candidates-scan.md |
Agent | Scored topics from source scans with source trails |
00-angle-candidates.md |
templates/angle-candidates.md |
Agent / Founder selects | 5–7 ranked angle candidates per selected topic |
00-scope.md |
templates/scope.md |
Agent + Founder | Confirmed brief from kickstart interview |
00-research-brief.md |
templates/research-brief.md |
Agent | Research questions the evidence must answer |
01-research.md |
templates/research.md |
Agent | Sourced evidence with URLs, tagged by question |
02-scaffold.md |
templates/scaffold.md |
Agent / Founder approves | Structural skeleton — 5 fields per section, mandatory approval |
03-draft.md |
templates/draft.md |
Agent | Full written piece — follows scaffold exactly |
04-quality-report.md |
templates/quality-report.md |
Agent | Four-gate pass/fail with specifics and iteration count |
distribution-brief.md |
templates/distribution-brief.md |
Agent | Per-format briefs — LinkedIn, newsletter, etc. |
dead-letter-log.md |
templates/dead-letter-log.md |
Agent | Record of killed pieces — topic, angle, reason, revisit date |
perf-signal.md |
templates/performance-signal.md |
Agent | Aggregate learnings after 3+ pieces — triggers outer loop |
pillar-review.md |
templates/pillar-review.md |
Agent proposes / Founder approves | Quarterly strategy adjustment — one focused session |
§Data Flow — Stage Handoffs
What travels between stages, in what format, and who is responsible.
§Roles Matrix — Human vs. AI Agent
| Stage | Founder (Human) | AI Agent |
|---|---|---|
| S1 — Brand | Decides positioning, approves ICPs, approves Voice Encoder | Drafts, challenges, documents |
| S2 — Strategy | Approves pillars and editorial rules | Derives from brand + research, proposes |
| S3 — Topic Disc | Selects final topics | Scans sources, scores, recommends |
| S3.5 — Angle | Selects angle | Generates candidates, scores |
| S4a — Kickstart | Answers interview questions | Conducts interview, writes scope |
| S4b — Research | — | Writes brief, gathers sources |
| S4c — Scaffold | Approves scaffold (mandatory gate) | Builds scaffold with 5 fields per section |
| S4d — Draft | — | Drafts from scaffold |
| S4e — Gates | Reviews quality report, decides pass/revise | Runs 4 gates, reports specifics |
| S5 — Distribution | Publishes, selects primary channel | Creates distribution briefs, tracks metrics |
| Outer Loop | Approves pillar/brand adjustments | Creates Performance Signal, proposes updates |
§Failure Modes — 12 Ways the Pipeline Breaks
§Quick Start
Bootstrap a New Content Project
# Scaffold a new project (creates all Stage 1-2 files from templates)
python ~/.hermes/skills/content-pipeline/scripts/bootstrap.py ./my-content-project --scaffold
# Check pipeline status
python ~/.hermes/skills/content-pipeline/scripts/bootstrap.py ./my-content-project --status
# Quick one-line status
python ~/.hermes/skills/content-pipeline/scripts/bootstrap.py ./my-content-project --status
# Scaffold only Stage 1 files
python ~/.hermes/skills/content-pipeline/scripts/bootstrap.py ./my-content-project --scaffold --stage 1
After scaffolding, fill in each template with real content. The bootstrap tool reports exactly what's missing and what gate is blocking.
The complete pipeline specification — templates, examples, and tooling included.