CoreCMO

Agent directory · Orchestration

Brand Voice Agent

The filter that ships before publish. Scores every draft output from every agent against the Brief’s Voice DOs, Voice DON’Ts, Forbidden Language, and Brand Pillars. Blocks low-scoring drafts; routes borderline ones to humans; passes clean ones through.

Who is this agent
Identity card
NameBrand Voice Agent
RoleBrand voice compliance gate: the single most-important quality layer
OwnerHead of Brand
Reports toVP Marketing
Versionv0.5 (supervised)
SurfaceClaude API + scoring rubric (deterministic) + Postgres for score history
Output target/voice-sentinel/scores/ (every draft scored) + pass/route/block decision returned inline to the drafting agent
Review cadenceWeekly score-distribution review; monthly voice-calibration session; quarterly rubric tuning
Mission
Be the gate that prevents AI from multiplying scaled wrongness. Every draft output from every agent (copy variant, email body, ad creative, social post, press quote, customer reply) gets scored against the Brief’s voice rules before it can be approved or published. Clean drafts pass through. Borderline drafts route to a named human. Bad drafts get blocked with specific fix suggestions. The agent is the difference between AI scaling your brand or AI eroding it.
Goals & KPIs the agent moves
Leading indicators: the agent controls these
% of agent drafts scored before reaching human review100%
Voice-score latency per draft< 10 seconds
Lagging indicators: downstream outcomes with review triggers
Voice-score precision vs. Head of Brand weekly spot-check. Trigger: 2 consecutive weeks below 80% agreement pages the Head of Brand for rubric calibration.≥ 90% agreement
False-pass rate (drafts passed that humans would have blocked). Trigger: any single week above 5% pages the Head of Brand for immediate rubric review.< 2%
What it does
Task list
  1. Real-time Receive every draft output from every drafting agent via API. Score against the 5-dimension rubric: voice match, ICP alignment, forbidden-language hits, claim sourcing, format fit.
  2. Real-time Return a pass / route-to-human / block decision with the score breakdown + specific rewrite suggestions for any sub-threshold dimension.
  3. Real-time When a draft scores in the route-to-human band, attach the drafting agent, the named human reviewer, and the specific rewrite hints.
  4. Daily Compile the daily score-distribution digest: by agent, by dimension, top failures, top successes. Surface drift early.
  5. Weekly Run the calibration audit: Head of Brand re-scores a 20-draft sample. Compute Agent vs. human agreement. Flag dimensions where drift exceeds 10%.
  6. Weekly Pattern-mine the blocks. Which agents fail which dimensions most? Surface agent-specific voice-calibration needs.
  7. Monthly Voice-calibration session with Head of Brand + every drafting agent’s owner. Walk through 5 blocked drafts + 5 passed drafts. Calibrate shared understanding.
  8. Monthly Forbidden-language list refresh. Add new terms surfaced from misses; retire terms that are no longer relevant.
  9. Quarterly Rubric tuning. Adjust dimension weights based on which dimensions correlate most with downstream outcomes (variant win rate, customer reply rate, etc.).
  10. Event When the Brief Section 8 (Voice DOs / DON’Ts / Forbidden) updates, immediately refresh the rubric and re-score the last 30 days of drafts to catch drift.
  11. Event When a drafting agent fails 3+ times in a week on the same dimension, page that agent’s owner for a calibration session.
Schedule grid
TaskFrequencyDurationOutput goes to
Real-time draft scoringContinuous< 5 sec per draftDrafting agent (decision returned inline)
Daily score-distribution digestDaily 17:00~10 minHead of Brand + Director MarOps
Weekly calibration auditWeekly Wed 10:00~60 minHead of Brand
Weekly block-pattern miningWeekly Wed 11:00~30 minDrafting agent owners (per-agent)
Monthly voice-calibration sessionMonthly 2nd Wed 10:00~90 minHead of Brand + all drafting agent owners
Monthly forbidden-language refreshMonthly 15th~30 minHead of Brand
Quarterly rubric tuningQuarterly Q-1 days~3 hoursHead of Brand + VP Marketing
Triggers

Scheduled (cron-style):

ScheduleWhat it runs
0 17 * * *Daily score-distribution digest
0 10 * * 3Weekly calibration audit + block pattern mining
0 10 8-14 * 3Monthly voice-calibration session (2nd Wed)
0 9 15 * *Monthly forbidden-language refresh

Event-driven:

EventWhat it runs
Drafting agent submits a draft for scoringScore + return decision within 5 sec
Operator Brief Section 8 updatesRefresh rubric + re-score last 30 days of drafts within 1 hour
Drafting agent fails 3+ same-dimension scores in a weekPage that agent’s owner; schedule calibration
Weekly Agent-vs-human agreement drops below 90%Page Head of Brand; pause auto-block mode; revert to route-to-human only
False-pass discovered post-publish (customer complaint, social pushback)Root-cause audit within 24 hours; tune rubric
Who it works with
Inputs
SourceTypeCadenceRequired?
Operator Brief Section 8 (Voice DOs, DON’Ts, Forbidden Language)MarkdownRead every runRequired: THE core context
Operator Brief Section 6 (Brand pillars + positioning)MarkdownRead every runRequired
Operator Brief Section 2 (ICP) + 3 (Personas)MarkdownRead every runRequired: audience-fit dimension
Scoring rubric (the 5-dimension matrix + weights)YAMLVersioned, quarterly tuningRequired: core config
Forbidden-language listYAMLMonthly refreshRequired
Historical score corpusPostgres tableAppend-onlyRequired: calibration baseline
Drafting agent output (the thing being scored)Text / MarkdownOn-requestRequired: the input itself
Outputs
OutputFormatTarget pathAudience
Score decision (returned inline)JSON: { decision: pass/route/block, scores: {...}, hints: [...] }Returned to drafting agentDrafting agent + downstream approver
Per-draft score logJSON (append-only)/voice-sentinel/scores/YYYY-MM-DD.jsonlHead of Brand (audit + analysis)
Daily score-distribution digestMarkdown + Slack message/voice-sentinel/digest/YYYY-MM-DD.mdHead of Brand + Director MarOps
Weekly calibration audit reportMarkdown + chart bundle/voice-sentinel/calibration/YYYY-WW.mdHead of Brand + VP Marketing
Weekly block-pattern report (per agent)Markdown/voice-sentinel/patterns/<agent>-YYYY-WW.mdDrafting agent owner
Monthly forbidden-language diffMarkdown/voice-sentinel/forbidden-diff/YYYY-MM.mdHead of Brand + drafting agent owners
↑ Upstream: agents/sources that feed this one
  • Operator Brief (human-maintained). Section 8 voice rules are the gospel. Sections 2, 3, 6 inform secondary dimensions.
  • Every drafting agent. Web Operations, Performance Marketing, Field Marketing, Content Operations, Email/Lifecycle, LinkedIn/Social, PR Comms, Customer Marketing, Executive Comms: all submit drafts for scoring.
  • Win/Loss Agent. Surfaces verbatim customer language that should make it INTO the voice (preferred phrasing) or OUT (objection language).
  • Brief Sync Agent. Flags Brief Section 8 drift; triggers re-scoring.
↓ Downstream: agents/humans that consume its output
  • Every drafting agent. Receives the inline decision. Pass = approval queue. Route = named human. Block = rewrite + re-submit.
  • Head of Brand (human). Reviews route decisions; runs weekly calibration; owns rubric tuning.
  • Drafting agent owners (humans). Receive weekly block-pattern reports for their agents.
  • Eval Library Agent. Uses Brand Voice Agent scores as a quality signal in the agent performance review.
  • Brief Sync Agent. Receives forbidden-language list updates that propagate back to Brief Section 8.
Human escalation paths
Trigger conditionEscalate toWithin
Agent-vs-human agreement drops below 90% in weekly auditHead of Brand + VP MarketingSame business day
False-pass discovered post-publishHead of Brand + Director MarOps< 24 hours (root-cause audit)
Drafting agent fails 5+ times in a week on the same dimensionThat agent’s owner + Head of BrandSame business day
Brief Section 8 updated mid-weekAll drafting agent ownersImmediate (re-scoring + drift check)
Rubric drift detected (scores trending up or down with no agent change)Head of Brand + VP Marketing< 48 hours
How to build it
System prompt
You are the Brand Voice Agent for [COMPANY]. YOUR JOB Score every draft output from every agent against the Brief's voice rules BEFORE it can be approved or published. Pass clean drafts. Route borderline. Block bad ones with specific fix suggestions. Prevent AI from multiplying scaled wrongness. INPUTS (always read in this order) 1. /operator-brief.md Section 8 (Voice DOs / DON'Ts / Forbidden) - the gospel 2. /operator-brief.md Sections 2, 3, 6 (ICP, personas, brand pillars) 3. /voice-sentinel/rubric.yaml - the 5-dimension scoring rubric 4. /voice-sentinel/forbidden.yaml - the forbidden-language list 5. The draft itself (passed via API call) OUTPUTS (returned inline to the drafting agent) { "decision": "pass" | "route" | "block", "scores": { "voice_match": 0-100, "icp_alignment": 0-100, "forbidden_hits": 0-100 (100 = no hits), "claim_sourcing": 0-100, "format_fit": 0-100 }, "composite": 0-100, "hints": [ "specific rewrite suggestions for sub-threshold dims" ], "rubric_version": "vX.Y" } THRESHOLDS - Composite >= 85: pass (drafting agent's normal approval flow continues) - Composite 70-84: route (named human reviewer required before approval) - Composite < 70: block (rewrite + re-submit) - Any forbidden_hits < 100: route or block regardless of composite RULES 1. Score deterministically against the rubric. Same draft + same Brief + same rubric = same score. 2. Hints must be specific ("Remove 'leverage' (forbidden list); replace with 'use'"). Generic feedback isn't useful. 3. Never auto-approve. The drafting agent's human approver is the final gate even on pass. 4. Log every score with rubric version for audit + calibration analysis. 5. When the agent isn't sure, route to human rather than guess pass/block.
Tools & integrations
Platform / toolUsed forRequired?
Claude API (with structured output)Scoring inferenceRequired
Postgres (append-only score log)Calibration baseline + audit trailRequired
Slack APIDaily digest + escalation alertsRequired
CI/CD-style integration for drafting agentsDrafting agents call the Brand Voice Agent API in their workflowRequired
Looker / Mode / MetabaseScore distribution + drift visualizationOptional but recommended
Guardrails: what it must not do
  • Never auto-approve. The agent passes drafts to the drafting agent’s normal approval flow; humans still gate every customer-facing send.
  • Never modify the Brief or the rubric autonomously. Surface proposed changes for Head of Brand approval.
  • Never compress a sub-threshold dimension into a passing composite. Forbidden-language hits always route or block regardless.
  • Never penalize a drafting agent for the agent’s own drift. If Agent-vs-human agreement drops, the agent isn’t the problem.
  • Honor the rubric versioning: never compare scores across rubric versions without reconciling.
  • Never store full draft text beyond the audit window (90 days). Store score + hints + reference to source artifact.
  • Never share the forbidden-language list outside the marketing function: it’s sensitive brand IP.
Evals + hallucination defense

Evals: output quality checks:

  1. Calibration agreement. Weekly: Head of Brand re-scores 20-draft sample. Agent-vs-human agreement. Target ≥ 90% on composite decision, ≥ 85% on each dimension.
  2. False-block rate. Monthly: of all blocks, what % did Head of Brand override on review? Target < 5%.
  3. False-pass rate. Monthly: of all passes that shipped, what % triggered post-publish concern? Target < 2%.
  4. Latency p99. p99 scoring latency. Target < 5 sec per draft.

Hallucination defense: specific checkpoints:

  • Score values must derive from the rubric formulas applied to specific draft segments. No vibes-based scores.
  • Hints must reference specific draft text. “Line 3 contains a forbidden word” not “Tone is off.”
  • Forbidden-language detection must be exact-match or rule-based. No fuzzy interpretation that flags acceptable phrasing.
  • When the rubric doesn’t cover a draft type, surface that gap rather than improvise a score.
  • Composite calculation must show its work, weights, dimension scores, math: never a black-box number.
Maturity curve + first-run checklist
v0.1: Manual-assistagent scores on-request. Head of Brand uses scores as one input in manual review. Useful from day 1 to formalize voice discipline.
v0.5: SupervisedAuto-routing on (block / route / pass decisions delivered inline). Head of Brand reviews calibration weekly. Default ship state.
v1.0: Semi-autonomousAfter 90 days of clean evals + ≥ 90% calibration agreement, low-risk passes (internal docs, social drafts) can publish without human approval. Customer-facing channels (paid, email, press) stay human-approved.

First-run checklist: 5 steps from spec to running agent:

  1. Author the rubric YAML: the 5 dimensions, scoring criteria per dimension, weights, thresholds. Head of Brand owns this.
  2. Author the forbidden-language list: brand-specific terms to block. Start with 30 terms; tune as patterns surface.
  3. Wire the Brand Voice Agent API into every drafting agent’s output flow. Each agent submits drafts before its human approval step.
  4. Run in shadow mode for 2 weeks. Score everything; don’t enforce. Head of Brand reviews scores daily; tunes rubric.
  5. Turn on enforcement (block / route / pass). Subscribe Head of Brand to the daily digest. Log every score in /voice-sentinel/scores/.

Back to the AI Operating Model