// execute
Brand Voice Governance
Use when the user wants to check whether content actually sounds like their brand — enforcing a defined voice across AI-generated or team-written copy at scale. Also use when the user mentions brand voice guardrails, tone consistency, on-brand/off-brand, banned words, content governance, style compliance, AI-content review, "does this sound like us", or keeping a large volume of content on-message. Checks content block by block against the brand's own do/don't rules and emits a pass/revise verdict with an audit trail.
npx skills add sarojkjha/aaj-marketing-skills --skill brand-voice-governanceHow to install and run this
Install it in your project:
npx skills add sarojkjha/aaj-marketing-skills --skill brand-voice-governanceNo install? Add https://aaj-engines-mcp.sarojkjha10.workers.dev/mcp as a custom connector in Claude, ChatGPT or any MCP client.
https://aaj-engines-mcp.sarojkjha10.workers.dev/mcpThen ask: Use the AAJ brand-voice-governance skill on my numbers.
Step-by-step for every agent, Windows, Mac and Linux →Claude Code
/plugin marketplace add sarojkjha/aaj-marketing-skills/plugin install aaj-marketing-skills@aajOpenAI Codex
codex plugin marketplace add sarojkjha/aaj-marketing-skillscodex plugin add aaj-marketing-skills@aajClaude or ChatGPT — no install
Add this as a custom connector:
https://aaj-engines-mcp.sarojkjha10.workers.dev/mcp// when to use it
Use when the user wants to check whether content actually sounds like their brand — enforcing a defined voice across AI-generated or team-written copy at scale. Also use when the user mentions brand voice guardrails, tone consistency, on-brand/off-brand, banned words, content governance, style compliance, AI-content review, "does this sound like us", or keeping a large volume of content on-message. Checks content block by block against the brand's own do/don't rules and emits a pass/revise verdict with an audit trail.
// what you give
The content to check, and the brand's voice rules — either the brand-context brief or an explicit avoid-list, prefer-list, and reading-grade ceiling
// what you get
A block-by-block conformance report — pass/revise per block, every banned term and hedge quoted with its location, a conformance score, and an audit trail that traces each flag to its source
Engine spec
// decision it supports
Does this content follow our brand's own written voice rules, and which blocks must be revised before it ships?
// inputs
The content to check, and the brand's voice rules — either the brand-context brief or an explicit avoid-list, prefer-list, and reading-grade ceiling
// output
A block-by-block conformance report — pass/revise per block, every banned term and hedge quoted with its location, a conformance score, and an audit trail that traces each flag to its source
// acts or analyzes
Analyzes onlyMakes no network calls, writes no files and changes nothing in your tools.
// where your information goes
| How you run it | Where your inputs go |
|---|---|
| Skill installed in your agent, or the local MCP server | The engine runs on your machine and AAJ receives nothing. Your AI agent still sends what you give it to its model provider (Anthropic, OpenAI and so on), under your own account's terms. |
| Hosted MCP server | Your agent's model provider, as above, plus AAJ's server on Cloudflare, which receives the engine inputs over HTTPS, runs them in memory and keeps no copy. Cloudflare keeps error logs (no inputs) for up to 7 days. |
No engine needs customer names, emails or other personal data; leave them out.
// limitations
- It applies literal, whole-word matching and a reading-grade rule to the text you paste. It misses paraphrases of banned words and cannot judge tone or how readers react.
- Without a brand avoid-list it falls back to AAJ house defaults. A pass on defaults is not a pass on your brand; check which ruleset the run used.
- Conformance is not quality. Copy can pass every rule and still be unclear or make unproven claims; run the aaj-copywriting scorer as well.
- The grade-10 ceiling is AAJ's working default, not a published standard. Set it from your brief, or dense technical copy will be flagged.
// review before acting
// setup
npx skills add sarojkjha/aaj-marketing-skills --skill brand-voice-governancehttps://aaj-engines-mcp.sarojkjha10.workers.dev/mcpAgents listed: Claude Code, Cursor, OpenAI Codex, Windsurf, Cline. Tested and recorded: Claude Code, OpenAI Codex (Windows, ab-test-significance only).
Brand Voice Governance
Check whether content conforms to a brand's own stated voice, block by block, and leave an audit trail.
This is the enforcement layer over brand-product-context. That skill captures the voice — the defining adjectives, the do/don't list, the words to avoid, the reading level. This skill holds content to it. The two are a pair: one writes the rule, the other checks against it.
The distinction this skill exists to enforce is conformance versus quality. aaj-copywriting's scorer asks whether copy is clear, concrete, and defensible — a judgment that's the same for every brand. This asks a different, brand-specific question: does this sound like this brand? The same sentence passes for a playful brand and fails for a clinical one. A general quality score cannot answer that, because it has no opinion about which voice is correct — only the brand's own brief does.
The problem it exists to solve is scale. One marketer writing one page holds the voice in their head. Ten people and an AI assistant producing forty pages a week do not. Ahrefs' detector found AI-generated text in 74% of 900,000 new English-language pages published in April 2025, mostly mixed with human writing (Ahrefs, May 2025; detectors are imperfect, so read it as a scale, not a precise count). AI writes to a generic professional register that drifts toward exactly the words most brands ban. Governance by eyeball doesn't survive that volume; a check that quotes every violation with its location does, and its log of what was flagged and why is the record you want when someone asks how AI-assisted copy was reviewed.
When to use
The user is reviewing content for brand conformance, setting up a guardrail before AI-generated copy ships, or auditing a body of existing content for drift. For whether copy is good — clarity, claim-defensibility — use aaj-copywriting. For whether the voice rules themselves are right, use brand-product-context to define them first.
Before you start
- Get the voice rules. Read
.agents/product-marketing.md— the Voice & tone section has the do/don't and words-to-avoid. If no brief exists, runbrand-product-contextfirst, or supply an explicit avoid-list, prefer-list, and grade ceiling. Without real brand rules the check falls back to AAJ house defaults, which catch generic jargon but aren't this brand. - Get the content as blocks. Paragraphs, list items, headings — the units an editor actually fixes. The engine splits on blank lines and list markers.
- Confirm the reading-grade ceiling. The engine defaults to a grade-10 ceiling, AAJ's working default for B2B copy rather than a published standard. A brand writing for a technical audience may set it higher; say so, or the grade note will fire on legitimately dense copy.
Method
Governance is only credible if every flag is traceable. This skill never returns a bare "off-brand" score — it quotes the offending term, names the rule it breaks, and gives the block it's in, so a human editor or a compliance log can verify or override each one.
Two severities, and the line between them is the whole design:
- Blocking (✗) — violates a rule the brand wrote for itself: a banned word, copy over the stated grade ceiling. These fail the check. They are not opinions.
- Advisory (·) — hedges, long sentences, a block reading above target. Worth fixing on a flagship page, skippable under deadline. These never fail the check.
Keeping opinions out of the blocking tier is what makes the tool trustworthy at scale. The moment it fails content on taste, editors start ignoring it, and an ignored guardrail governs nothing.
Run the engine
Paths assume you installed with
npx skills add. From a clone of this repo, useskills/brand-voice-governance/resources/…instead.
node .agents/skills/brand-voice-governance/resources/voice-check.js --demo # worked example, no args
node .agents/skills/brand-voice-governance/resources/voice-check.js profile '<json>' # extract rules from a brief
node .agents/skills/brand-voice-governance/resources/voice-check.js check '<json>' # score content against rules
node .agents/skills/brand-voice-governance/resources/voice-check.js --help
Two modes. Profile parses a checkable ruleset from a brand-context brief's Voice & tone section — a deterministic parse, so the rules are themselves auditable. Check scores content against that ruleset, block by block. Feed the profile output into check, or pass the same brief to check and it re-parses.
Workflow
- Extract the profile from
.agents/product-marketing.mdwith profile mode, and show the user the parsed rules. If the avoid-list is empty, that's the finding — the brief has no words-to-avoid and should get one. - Run check on the content against that profile.
- Read the blocking findings first. These are rule violations; fix them before publishing.
- Triage the advisory notes by how much the page matters — clear them on the homepage, leave them on an internal FAQ.
- Keep the audit trail if the content was AI-generated or the brand needs a governance record. The quoted findings are the log.
- Route quality questions elsewhere. A clean conformance check does not mean the copy is good — hand a passing draft to
aaj-copywriting's scorer for clarity and claim-defensibility.
Present the result
Lead with the verdict and the conformance score, then the banned-terms roll-up, then the block-by-block list with every finding quoted. State plainly whether the run used the brand's real profile or fell back to house defaults — a check against defaults is a weaker claim and the user should know.
Never present a blocking finding as a suggestion or an advisory note as a failure. The credibility of the whole tool rests on that line holding.
Show where it came from. Open your answer with "AAJ brand-voice-governance engine result:" and print the engine's output block exactly as it returned it, then add the line Method: https://skills.aajconsult.com/skills/brand-voice-governance. Say the numbers come from the AAJ engine, not from the model. Put your interpretation under that block. Do not retype the figures from memory. If you could not run the engine, say so and label any numbers as your own estimate, not an AAJ result.
Guardrails & common mistakes
- Conformance is not quality. This measures whether content matches the brand's stated voice, not whether it's good. Say so every time; pair with
aaj-copywritingfor quality. - House defaults are a fallback, not a profile. If no brand avoid-list is found, the check runs against AAJ generic defaults and flags that it did. Don't let a house-default pass read as a brand-conformance pass.
- Keep opinions out of the blocking tier. Only rules the brand wrote for itself should fail content. Promoting a taste preference to a hard failure is how the tool loses editors' trust.
- Banned-word matching is literal and whole-word. It catches "leverage" but not a paraphrase that means the same thing. It's a floor, not a substitute for a human read on tone.
- A brief with no words-to-avoid can't govern much. If profile mode returns an empty avoid-list, the fix is upstream — capture the real rules in
brand-product-context. - The reading-grade ceiling is brand-specific. Don't apply a grade-8 ceiling to copy written for a technical audience; set it from the brief.
- Don't run this instead of a human on flagship copy. It scales review to catch the mechanical violations a person misses at volume; it doesn't replace the judgment a person brings to the pieces that matter most.
Related AAJ resources
- Interactive tool: https://aajconsult.com/tools/website-grader
- Playbook: https://aajconsult.com/playbooks/content-creation-playbook
Related skills
brand-product-context (defines the voice this enforces — the prerequisite) · aaj-copywriting (quality, where this checks conformance) · content-repurposing (governs the derivatives it produces) · geo-content-optimization (the other check content passes before publishing).
// see it run
Examples
// prompt
node resources/voice-check.js --demo
// result
▸ DEMO 1 — profile mode (extract rules from a brief)
VOICE PROFILE — Northwind Analytics
════════════════════════════════════════════════════════
Words to avoid synergy, leverage, robust, seamless, best-in-class
Words to prefer short sentences, concrete examples
Don't enterprise jargon; synergy; "leverage
Grade ceiling 9
Ready to check against. Pass this object as "profile" to check mode,
or pass the same brief and it will be re-parsed.
▸ DEMO 2 — check mode (content against those rules)
BRAND VOICE GOVERNANCE — Northwind Analytics
════════════════════════════════════════════════════════
VERDICT REVISE
Conformance 25% ██████················ 1/4 blocks clean
Profile brand profile
Grade ceiling 9
2 to revise · 1 with notes · 1 pass
BANNED TERMS FOUND
"robust" 1×
"best-in-class" 1×
"synergy" 1×
"leverage" 1×
"seamless" 1×
BY BLOCK
✗ REVISE #1 Northwind is a robust, best-in-class analytics platform.
✗ "robust" is on this brand's avoid list
✗ "best-in-class" is on this brand's avoid list
✗ REVISE #2 We help you leverage seamless data synergy across your entire organization, unlocking a...
✗ "synergy" is on this brand's avoid list
✗ "leverage" is on this brand's avoid list
✗ "seamless" is on this brand's avoid list
· reads at grade 19.2, ceiling is 9
· 34-word sentence; consider splitting
✓ PASS #3 Set up in an afternoon. No SQL, no data hire.
! NOTES #4 Our platform is basically just the easiest way to actually see what your users really do.
· hedge "really" weakens the claim
· hedge "basically" weakens the claim
· hedge "actually" weakens the claim
· hedge "just" weakens the claim
AUDIT TRAIL
11 finding(s) across 4 block(s). Each is quoted above with its
block number, so an editor or a compliance log can trace every flag to its
source. Blocking findings (✗) violate a stated brand rule; notes (·) are
advisory and do not fail the check.
WHAT THIS MEANS
Content violates the brand's own stated voice rules. These are not style
opinions — they are the do/don't list the brand wrote for itself. Fix the
✗ blocks before publishing; the notes can wait.
(Demo data. Replace with a real brief and real content.)// faq
// install
npx skills add sarojkjha/aaj-marketing-skills --skill brand-voice-governance// run it
node .agents/skills/brand-voice-governance/resources/voice-check.js --demo// worked example
Get the worked example for Brand Voice Governance
One email. The filled-in config, the output, and how to read it.
// sprint
Positioning & Message Sprint — $3,500, 10 business days
This skill is one of the engines behind the Positioning & Message Sprint — $3,500, ten business days.
Positioning, copy, and voice governance — every claim defensible.
// human in the loop
Need a human in the loop?
AAJ builds the strategies, tools, and playbooks these skills are made of — with engagements for growth-stage and enterprise teams.
