Content Pipeline v2.0

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

Why two loops?

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.

Two-Loop Architecture OUTER LOOP — QUARTERLY BRAND S1 · Foundation STRATEGY REVIEW S2 · Pillars & Rules PERFORMANCE SIGNAL Every 3 pieces quarterly calibrate ↺ INNER LOOP — PER PIECE TOPIC DISC S3 ANGLE S3.5 4a Kickstart 4b Research 4c Scaffold 4d Draft GATES 4e · G1–G4 FAIL → revision loop Kill → dead-letter → Stage 3 DISTRIBUTION S5 · Publish Legend Brand / Research Strategy / Angle / 4a / Distribution Perf Signal / Scaffold Draft / Revision Gates Outer loop (quarterly) Inner loop band Revision / kill path Forward flow Outer loop triggers after every 3 published pieces OR quarterly minimum · Inner loop runs per content piece QUARTERLY CALIBRATE Stage 1 Brand brand-brief Full Pipeline Flow QUARTERLY CALIBRATE STAGE 1 Brand brand-brief.md STAGE 2 Strategy pillars.md STAGE 3 Topic Disc topics.md STAGE 3.5 Angle Gen angle.md STAGE 4 · PRODUCTION 4a Kickstart kickstart.md 4b Research research.md 4c Scaffold scaffold.md 4d Draft draft.md 4e Gates FAIL PASS → FAIL → revise STAGE 5 Distrib. published KILL → dead-letter → Stage 3 Legend Brand / Topic Disc / Gates Strategy / Angle / 4a / Distribution 4b Research 4c Scaffold 4d Draft / Kill Path Gates (diamond = decision) Quarterly calibrate arc Revision loop (FAIL) Kill → dead-letter path Inner loop (4a→4e) Forward flow PASS FAIL → Revise Max 2 revision rounds/gate · 3rd fail = KILL · dead-letter log · return to Stage 3 Artifact filenames in gray below each stage · Stage 4 sub-steps in dashed Production group

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

Why this stage exists

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

Gate Requirement

Cannot enter inner loop without: at least 3 content pillars defined + 1 audience × funnel map complete

What Gets Built
  • 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.

ColumnDescription
Positions We've StakedClaim, first made in which piece, pillar, status
Contradictions to WatchTension between positions
Gaps — What We Haven't SaidTopics that should exist but don't
Opposing ViewsCounter-arguments to our positions

Updated after every published piece. Reviewed quarterly in outer loop.

03Topic Discovery — Inner Loop Entry

Why this stage exists

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

Entry Check — Dead-Letter Log

Before scanning sources, check dead-letter-log.md for entries with revisit date ≤ today. These get added as candidates alongside fresh scan results.

Topic Scoring Rubric
Criterion1 (Weak)3 (Adequate)5 (Strong)Score
Strategic fitDoesn't connect to any pillarServes one pillar tangentiallyDirectly advances a core pillar/5
ICP relevanceNo clear target readerInteresting but not urgentAddresses primary pain point now/5
Trend momentumPeaked 18+ months agoStable ongoing conversationActive spike in last 30 days/5
Evidence baseNo data availableSome material, needs moreMultiple credible sources ready/5

Gate: 17+/20 — scores must be grounded with cited evidence

Type Balance Check

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.

Signal types: Technical/builder, Founder/operator, Practitioner frustration, Industry analysis, Regulatory, Cultural/political. Pillar mapping matters — wrong source for a pillar produces noise.

Weekly sources feed the inner loop. Monthly sources feed the outer loop.

03.5Angle Generation — Where Differentiation Lives

Why this stage exists

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

Angle Scoring Rubric
Criterion1 (Weak)3 (Adequate)5 (Strong)Score
DistinctivenessSays what top 5 results already sayDifferent framing, same conclusionSomething no one in the space has said/5
Brand fitDoesn't connect to any beliefLoosely aligned with one beliefDirectly expresses a core brand position/5
ProvabilityPure opinion, no evidence pathPartially supportableStrong evidence trail + experience/5
ICP resonanceInteresting to us, not readerReader nods but doesn't shareReader thinks "this is about MY problem"/5
SharpnessTakes no position ("it depends")Has position but hedgesMakes a clear falsifiable claim/5

Gate: 20+/25 — rank by total score, present top 3 to Founder

Example — Angle Candidates (Mesa Digital)

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
4b
Research
4c
Scaffold
4d
Draft
4e
4 Gates
5
Publish

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
Bidirectional check: If the interview surfaces something that makes the angle wrong, STOP. Send back to Stage 3.5 for re-scoring. The interview is a final check, not a rubber stamp.

4b Research

Two phases: write the research brief first, then gather 3–5 sources.

Research Brief — Default Questions (thought leadership)
  • 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.

Output

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.

Required Fields Per Section
FieldRequiredDescription
ClaimYesOne sentence — what this section asserts
EvidenceYesSpecific sources with line refs
PurposeYesinform / persuade / orient / demonstrate
Voice noteYesHow this section should sound
Brand termsOptionalSpecific vocab to deploy here
No exceptions. Scaffold must be approved by Founder before drafting proceeds.

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

Why four 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.

Quality Gates — 4e Four independent binary gates · Each must pass independently DRAFT IN G1 Voice Gate 1 — Voice & Tone · Matches Voice Encoder positive patterns? · Forbidden vocabulary absent? · Sentence rhythm within target range? FAIL escalation — G1 Voice 1st fail → revise voice sections 2nd fail → return to Voice Encoder update 3rd fail → KILL · dead-letter log PASS G2 Evidence Gate 2 — Evidence & Sources · Every factual claim has a source? · Research brief questions answered? · Counterarguments addressed? FAIL escalation — G2 Evidence 1st fail → add missing sources 2nd fail → return to Stage 3.5 3rd fail → KILL · dead-letter log PASS G3 Strategy Gate 3 — Strategy Alignment · Serves the content pillar selected for? · Angle maintained throughout (no drift)? · Position Register consulted? FAIL escalation — G3 Strategy 1st fail → revise for pillar/ICP alignment 2nd fail → return to Stage 3.5 re-score 3rd fail → KILL · dead-letter log PASS G4 Format Gate 4 — Format & Structure · Opening is concrete (no throat-clearing)? · Structure matches scaffold? · No banned AI patterns? · Length within target range? FAIL escalation — G4 Format 1st fail → revise structure / format 2nd fail → return to Stage 4c (scaffold) 3rd fail → KILL · dead-letter log PASS ALL PASS → S5 KILL → dead-letter → Stage 3 3rd fail any gate → KILL ◆ Diamond = binary gate (PASS / FAIL) ——→ PASS flow (teal) – – → FAIL escalation (coral) Info blocks show gate checklist
Example — Quality Report (Mesa Digital)

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

Why this stage exists

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

Process
  • 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
What Gets Tracked

Views/reach · Engagement (comments, shares, saves) · Inbound inquiries attributed · Best-performing format/channel

The Outer Loop — Quarterly Calibration

Why this stage exists

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.

Outer Loop Cycle

Triggers after 3+ published pieces OR quarterly minimum (whichever comes first)

3 published pieces → Performance Signal
Pillar Review — is each pillar producing results?
Brand Calibration — does positioning still hold?
Updated strategy → next inner loop

Performance Signal

Aggregate learnings after 3+ published pieces. Triggered automatically — not optional.

What It Captures
  • 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.

Session Covers
  • 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?
Output: Updated 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.

From → To
What travels
Format
Owner
S1 → S2
Brand Brief
.md
Founder
S1 → S3
ICP(s)
.md
Agent
S2 → S3
Pillars + audience map + type ratios
.md
Agent
S3 → S3.5
Selected topic + source trail + type balance
scan-NNN.md
Founder selects
S3.5 → S4a
Selected angle (score rationale attached)
angle-candidates.md
Founder selects
S1 → S4c
Voice Encoder (versioned)
voice-encoder.md
Founder approves
S4b → S4c
Research brief + sources
brief + .md
Agent
S4c → S4d
Approved scaffold
scaffold.md
Founder approves
S4e → S4d
Quality report (4-gate pass/fail)
quality-report.md
Agent
S4 → S5
Published piece + metadata
draft.md
Founder publishes
S5 → Outer
Performance Signal doc
perf-signal.md
Agent
Outer → S2
Pillar adjustments
content-strategy.md
Agent proposes
Dead-letter → S3
Revisit candidates (date ≤ today)
dead-letter-log.md
Agent

§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

1
Generic content Posts don't connect to brand. No positioning, no Voice Encoder.
→ Lock S1 gate items first
2
Random topics Blog feels like disconnected takes. Stage 2 skipped — no pillars.
→ Define pillars before discovering
3
No differentiation Content says what everyone else says. Stage 3.5 skipped — no angle generation.
→ Always generate angles first
4
Thin evidence Claims without backing. Research brief skipped.
→ Brief before sourcing
5
Strategic drift Well-written but doesn't serve the brand. Scaffold lacks purpose/claim fields.
→ Five-field scaffold is mandatory
6
Voice inconsistency Some pieces "sound right," others don't. Voice Encoder missing or not loaded.
→ Voice Encoder must be versioned artifact
7
Composite score hiding "90/100" masks Voice 60 + Readability 95. Single quality gate.
→ Four separate binary gates
8
No accumulated authority 10 posts that don't add up. No Position Register.
→ Update register after every piece
9
Feedback never happens Stage 5 data doesn't inform Stage 2/3. No trigger mechanism.
→ Performance Signal after every 3 pieces
10
Derivative content is sloppy LinkedIn post is just a blog excerpt. Stage 5 has no quality standard.
→ Per-format briefs + light quality check
11
Infinite revision loop Piece never ships, keeps failing gates. No iteration cap.
→ Max 2 rounds/gate; 3rd fail = escalation
12
Noisy topic discovery Topics don't connect to pillars. Source inventory has no pillar mapping.
→ Sources tagged by signal type + pillar

§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.