Agents — Index
The agents that exist in ContentOS today. One folder per agent; each folder holds a spec grounded in the shipped code, not a proposal.
This maps onto the Mktg OS sketch in ../../roadmap_ref_extracted.md,
where every spoke off an OS is annotated A (= Agent). Of the agents drawn on
that whiteboard, three are built.
Current agents
Every agent has two docs: a plain-English guide for the people who use it, and a technical reference for the people who maintain it.
| # | Agent | Trigger | Runs on | Docs |
|---|---|---|---|---|
| 1 | Discovery Agent | Automatic — background worker + cron sweep | Every news item that lands in the feed | plain-English · technical |
| 2 | Compliance Agent | On demand — reviewer clicks a button | A feed item (source) or a blog draft (draft) | plain-English · technical |
| 3 | Creative Agent | Semi-automatic — queue a topic, draft generates in background | Blog drafts, video scripts, hooks | plain-English · technical |
All three are OpenAI-only by deliberate pin, not by fallback. All three are tenant-scoped — every read and write routes through the owner filter.
Which doc do I want?
- "What does this do for me, and what do I control?" → the plain-English guide. No file paths, no code, no JSON.
- "Where does it live, what does it return, how does it fail?" → the technical reference.
How they chain
┌──────────────────────────────────────────────────────────┐
│ sources: crawler · Tavily · GNews/NewsAPI · Apify │
└───────────────────────────┬──────────────────────────────┘
│ raw rows, enrichmentStatus: "pending"
▼
╔═══════════════════════════════════════════════════════════╗
║ 1. DISCOVERY AGENT (automatic, per item) ║
║ summary · category · geo · SEO keywords · scores ║
╚═══════════════════════════════╤═══════════════════════════╝
│ enrichmentStatus: "ready"
▼
┌───────────────────────┐
│ Discovery feed (UI) │
└───────────┬───────────┘
reviewer picks │
▼
╔═══════════════════════════════════════════════════════════╗
║ 2. COMPLIANCE AGENT subject: "source" (on demand) ║
║ is this topic safe to write FROM? ║
╚═══════════════════════════════╤═══════════════════════════╝
│ queue the item
▼
╔═══════════════════════════════════════════════════════════╗
║ 3. CREATIVE AGENT (background job) ║
║ draft → quality repair → SEO bolding → humanize ║
╚═══════════════════════════════╤═══════════════════════════╝
│ draft state: "ready"
▼
╔═══════════════════════════════════════════════════════════╗
║ 2. COMPLIANCE AGENT subject: "draft" (on demand) ║
║ is this copy safe to PUBLISH? ║
╚═══════════════════════════════╤═══════════════════════════╝
│ gate cleared by a human
▼
┌───────────────────────┐
│ Send to CMS │
└───────────────────────┘
The compliance agent appears twice with different framing — judging a source
article is not the same job as judging finished copy. Same code path, different
subject.
What is not an agent (yet)
Named on the roadmap, not built as an agent today:
- Segments / micro-segmentation (
A3on the whiteboard) — marked✗ - Rollout across SMS / WA / RCS / App push (
A5) — no channel dispatcher - Analytics agent (
A6) — dashboards exist, no agent reads them - ORM agent — Meltwater / LocoBuzz named, nothing wired
- NBA (Next Best Action) — target-state capability only
The whiteboard marks these with ✗ for exactly this reason: they are the build
list, not the inventory.
Folder convention
agents/
index.md ← this file
<name>-agent/
README.md ← landing page: points at the two docs below
overview.md ← plain-English guide — no code, no file paths
technical.md ← engineering spec
Every technical.md follows the same eight sections so the three can be read
side by side: What it does · Where it lives · Trigger · Input · Output ·
Model & prompt · Failure mode · Known gaps.
Every overview.md answers the same five questions in plain language: what
problem it solves · when it runs · what you get · what you control · what it
does not do.
Both docs close on the same gaps, described at different depth — so a non-technical reader and an engineer come away with the same picture of what is missing, not two different ones.