// 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-governance// 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
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. 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 — 74% of new web pages now contain AI-generated content, and 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 when 2026 state privacy laws require a transparency trail for AI-assisted decisions, an audit log of what was flagged and why stops being a nicety.
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 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. Most B2B copy should sit at grade 8–10. 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
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.
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
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) · 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.
Skills