architecture · v4 · April 2026

How a briefing is made

Every Copilot Revolution briefing passes through a five-stage editorial pipeline. Each stage is a separate agent with a narrow role, a strict information diet, and one job. No agent approves its own output. Human review happens at configurable gates.

"Is this worth a reader's five minutes?"

Scout

What's worth covering?

  • Inbound triage Newsletters, RSS, Signal Tower, Scott's pitches
  • Duplicate detection Semantic match against last N briefings
  • Sufficiency check Can the Archivist fill the gaps, or does Scott need to?
  • Angle & tags Proposed headline, category, canonical tags
  • Fast, cheap, high-volume Sonnet-class model; ~30 seconds per pitch
Output
Triage Result

Archivist

What's actually true?

  • Primary sources Company blogs, docs, filings, GitHub releases
  • ≥2 source minimum Auto-fetches corroboration when pitch is single-source
  • Quote extraction Verbatim excerpts with context + citation
  • Contradictions flagged Two sources disagree? Writer gets both
  • Opus-class + web tools Parallel fetches, paywall fallbacks, ~5 min budget
Output
Research Brief

Writer

How do we say it?

  • Briefing in house voice Editorial tone, no hype, no framework slop
  • Reads the brief only Zero web access — firewall against drift
  • Style-guide grounded Last 10 briefings loaded as voice examples
  • Attribution baked in Every claim tied to a brief entry
  • Flags its own gaps Kicks back to Archivist if the brief came up short
Output
Draft v1

Editor

Is it good enough?

  • Structural pass Does it flow? Does it argue? Does it land?
  • Line & copy pass Sentence-level prose, style-guide compliance
  • Fact-check pass Every claim traced back to the brief
  • Voice similarity score Embedding match vs. last 10 published pieces
  • Kickback authority Can reject to Writer; can escalate a kill to Scott
Output
Edit Notes & Draft v2

Desk

Ship it.

  • Slug & numbering Deterministic from title; monotonic issue number
  • Frontmatter & metadata Canonical tags, reading time, sources, related
  • Preflight checks Links resolve, no dead tags, schema validates
  • LinkedIn cross-post 2,800-char teaser, hashtags from canonical tags
  • Publish mechanics Commit, deploy, ping sitemap, queue newsletter blast
The thing that gets read
A Published Briefing

Scott is the editor-in-chief, not a participant in the pipeline. He reviews at three configurable gates:

01
Pitch review
Before the Archivist burns research budget. Scott's pitches: auto-approved. Non-Scott inbound: require approval.
02
Brief review
Optional. Auto-approve unless flagged for contradictions or thin sourcing.
03
Publish review
Always required. Final pass on tone, framing, and whether it's a net add to the archive.

Everything that runs around the pipeline — intake, automation, delivery.

Live
📤

Signal Tower · Pitch Builder ↗

Scott's intake surface. Browse items, learnings, creators, opportunities; upload a doc or paste a URL; ship as a pitch to the Scout.

Intake Research Inventory
📬

Listmonk · Newsletter ↗

Self-hosted mailing-list. Double opt-in, CR-branded welcome email, campaign templates. Resend as the SMTP relay.

Delivery Subscriptions

Daily publish cron

launchd job fires at 8:00 AM Pacific. Syncs pitches from Signal Tower, picks the oldest ready briefing, builds the site, deploys, and pings Scott with the URL.

Automation
💡

Pitch-ideas fallback

Queue empty? The Scout proposes five timely briefing angles anti-duped against the last 10 published. Scott replies with a number; the pipeline kicks off.

Automation Editorial
Coming soon
⚙️

Orchestrator service

Move the pipeline off the coordinator. Real state machine, resumable runs, per-stage cost + usage.

🚀

Auto-deploy

Every push to main builds and deploys. No more manual rsync.

📮

Campaign auto-draft

On publish, the Desk drafts a Listmonk campaign from the briefing. Scott reviews and hits send.

🧭

Editorial dashboard

Single page: queue depth, stages in-flight, pipeline failures, this week's briefings, subscriber growth.

🔁

Edit-pattern learning

Diff published vs. Draft v2. Persist the corrections. Feed them forward as few-shot examples.