Herald · Stages H0–H5
Sign inAI Marketing Manager
Herald routes work to specialist employee agents, assembles a walled per-task briefing packet (one company per context, always), brand-checks output, runs the authorization chain to Nick, and learns from real outcomes.
H0 · Foundation (the walls)
- ✓ Schema + RLS migrations —
supabase/migrations - ✓ Briefing Packet Assembler (the runtime wall) —
lib/packet.ts - ✓ Isolation test —
npm run test:isolation - ✓ Seed loader (agents · knowledge · OKRs · authority) —
npm run seed - ✓ Ingestion worker (content + SOPs, walled) —
npm run ingest
H1 · Content agent loop (GMRV)
drafted → brand_checked → pending_authorization → authorized → published
- ✓ Employee runtime
runEmployee— packet → draft, never publishes - ✓ Herald brand-check — reviews vs overlay, returns notes, never rewrites
- ✓ Authority routing — L0 → Nick's queue; L1/L2 graduate
- ✓ Nick authorizes → publish with a
tracking_id - ✓ Lifecycle test (nothing auto-publishes) —
npm test
H2 · Attribution + KPIs + brief
- ✓ Attribution — ARC
revenue_events→asset_metricsviatracking_id, idempotent - ✓ Scorecard rollup — department → company → agent (outcomes vs activity)
- ✓ Performance brief — Sonnet composes from real numbers
- ✓ Nightly rollup cron —
/api/cron/rollup(CRON_SECRET-guarded) - ✓ CLIs —
npm run attribute·npm run brief
H3 · Authority graduation + performance (IDPs)
- ✓ Graduation — N proven outcome deltas → Herald proposes L0→L1→L2; Nick approves
- ✓ Pinned L0 —
ad_spend·positioningnever graduate - ✓ Reversible — a bad streak drops a level
- ✓ IDPs — missed KPI → diagnosis + upgrade action + leadership style (we upgrade, don't fire)
- ✓ Weekly cron + CLIs —
npm run review·npm run graduate
H4 · Gated learning loop
- ✓ Surface — a tracked win becomes a
candidate_lesson(Frontier→Playbook) - ✓ Gate — promotes into the
knowledgebrain only on Nick's approval - ✓ Commons bar — 2+ companies OR structural, always a metric delta
- ✓ Closes the loop — the promoted lesson rides in the next packet
- ✓ Weekly cron + CLIs —
npm run lessons·npm run promote
H5 · Hire #2 + multi-agent routing
- ✓ SEO Strategist hired — added via the template, no code change
- ✓ Routing — one owner per category; Herald picks the specialist
- ✓ No freelancing — cross-domain/unknown work escalates to Herald
- ✓ Isolated per company and per agent (playbooks don't leak)
- ✓ Generic CLI —
npm run task -- --category seo_brief …
Hard rules: exactly one companyId enters any packet — two companies never coexist in a context window. Nothing publishes without an authorized proposal. Herald brand-checks and returns; it never rewrites a specialist's output. One owner per domain — no cross-domain freelancing. Outcomes, not activity. Nothing self-promotes.