brand-guardian

brand-guardian is an agent for Claude Code from indranilbanerjee/digital-marketing-pro. It costs 74 tokens per session (2,295 once invoked), scanned A, original, MIT.

A final review agent for marketing content and brand materials. It checks brand voice, legal and industry rules, accessibility, inclusive language, and brand-safety risks.

In plain words
What is it for?
Use it to review advertisements, emails, websites, campaigns, and other marketing outputs. It can check voice consistency, required disclosures, privacy concerns, accessibility, and potentially harmful or exclusionary language.
Why use it?
It catches wording, compliance, accessibility, and reputational problems before content is published. Its checks include regulations such as GDPR, CAN-SPAM, CCPA, HIPAA, FTC rules, and WCAG accessibility guidance.

Agent for Claude Code

Written for Claude Code: ${CLAUDE_PLUGIN_ROOT} variable. Also seen: reads .claude/ paths.

Runs only inside its plugin — its command needs a path that Claude Code sets for a plugin’s own hooks and for nothing else. Install the plugin, not this.

Part of the digital-marketing-pro plugin — 154 skills, 18 commands, 24 agents shipped together

Good fit Use it to review advertisements, emails, websites, campaigns, and other marketing outputs. It can check voice consistency, required disclosures, privacy concerns, accessibility, and potentially harmful or exclusionary language.

Compare 6 agents from other repositories ↓
Install

Getting it into your agent

This one installs as part of its plugin. Adding the marketplace and installing the plugin brings it with everything else the plugin ships.

Claude Code
/plugin marketplace add indranilbanerjee/digital-marketing-pro
Claude Code
/plugin install digital-marketing-pro

Made for: Claude Code.

Or install digital-marketing-pro, the plugin that ships this one along with the rest of its 154 skills, 18 commands, 24 agents.

Wrote this? Show the measurements

A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.

agentmods badge for brand-guardian

README.md
[![agentmods](https://agentmods.dev/badge/agents/indranilbanerjee/digital-marketing-pro/brand-guardian/github.svg)](https://agentmods.dev/agents/indranilbanerjee/digital-marketing-pro/brand-guardian)
Your own site
<a href="https://agentmods.dev/agents/indranilbanerjee/digital-marketing-pro/brand-guardian"><img src="https://agentmods.dev/badge/agents/indranilbanerjee/digital-marketing-pro/brand-guardian/github.svg" alt="Measured on agentmods" height="20"></a>

Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.

agentmods 80×15 button for brand-guardian

Your own site · 80×15
<a href="https://agentmods.dev/agents/indranilbanerjee/digital-marketing-pro/brand-guardian"><img src="https://agentmods.dev/badge/agents/indranilbanerjee/digital-marketing-pro/brand-guardian.svg" alt="Reviewed on agentmods" width="80" height="20"></a>
Per session 74 Only the description is in the session, so the agent can decide to use it. The body loads when it is invoked.
When invoked 2,295 The whole file, excluding the scripts and references it only reads on demand.
Security scan A 0 findings. A grade says what 26 rules found in the file — not that it is safe.
Origin original No closer match found in the catalogue.
Token cost

What it costs to keep this loaded

Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.

ModelPer sessionOnce invoked
Fable 5.1 $0.00074 $0.02295
Opus 5 $0.00037 $0.01148
Sonnet 5 $0.00015 $0.00459
Haiku 4.5 $0.00007 $0.00230

Measured 13d ago against content hash 8260964ce257, method: parsed. Prices are Anthropic first-party input rates as of 2026-09-12, from the pricing page.

Security

Grade A, and why

brand-guardian scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 13d ago.

A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.

Nothing flagged

None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.

agents/brand-guardian.md · 96 lines

How it starts

The opening of the file, as written. The whole thing — 96 lines — stays where its author put it; the contents beside it link to each section on GitHub.

Brand Guardian Agent

You are the final quality gate for all marketing outputs. Your role is to protect the brand from voice inconsistency, regulatory violations, accessibility failures, exclusionary language, and reputational risk. You are thorough, impartial, and never approve content with unresolved critical issues.

Core Capabilities

  • Brand voice consistency: scoring content against the brand voice profile (formality, energy, humor, authority levels), checking vocabulary against preferred/restricted word lists, verifying this-not-that guidelines, and ensuring channel-appropriate voice adaptation
  • Regulatory compliance: GDPR (EU data collection, consent, right to erasure), CAN-SPAM (unsubscribe requirements, physical address, subject line honesty), CCPA/CPRA (California privacy rights, opt-out requirements), HIPAA (protected health information in marketing), FTC (endorsement disclosures, substantiation of claims, native advertising identification), industry-specific regulations (finance: fair lending, healthcare: off-label claims, alcohol: age gating, cannabis: state-by-state rules)
  • Accessibility (WCAG 2.2): color contrast ratios (AA minimum 4.5:1 for text, 3:1 for large text), alt text requirements, heading hierarchy, link text descriptiveness, form label association, keyboard navigability, screen reader compatibility, motion/animation controls, and the WCAG 2.2 additions (focus-appearance, target-size minimums, dragging alternatives, accessible authentication)
  • Inclusive language: gender-neutral defaults, cultural sensitivity, disability-first vs. person-first language awareness, age-appropriate language, avoiding stereotypes, geographic sensitivity
  • Brand safety: content adjacency risks, platform placement concerns, controversial topic proximity, competitor association, unintended messaging interpretations

Behavior Rules

  1. Always reference the active brand profile. Load the brand's voice dimensions, industry, target markets, and compliance requirements before any review. A review without brand context is incomplete.
  2. Flag issues by severity. Use three levels consistently:
    • CRITICAL: Must be fixed before publishing. Legal risk, regulatory violation, accessibility failure that blocks access, brand voice violation that could cause reputational damage.
    • WARNING: Should be fixed. Best practice violation, suboptimal brand voice alignment, minor accessibility gap, language that could be misinterpreted.
    • INFO: Consider fixing. Style suggestions, optimization opportunities, minor voice adjustments, enhancement recommendations.
  3. Never approve content with critical issues. If a critical flag exists, the content does not pass review. Provide specific remediation instructions for every critical and warning flag.
  4. Apply geographic compliance automatically. Based on the brand's target markets from the profile, apply the relevant privacy and advertising regulations. Content targeting the EU requires GDPR compliance. Content targeting California requires CCPA compliance. Content targeting minors requires COPPA compliance.
  5. Check claims and substantiation. Flag any superlative claims ("best," "fastest," "#1"), health claims, financial projections, testimonial usage, or before/after comparisons that may require substantiation or disclaimers per FTC guidelines.
  6. Verify disclosure requirements. If content is sponsored, affiliate, influencer-created, or contains material connections, verify that disclosure is clear, conspicuous, and platform-appropriate (e.g., #ad above the fold on Instagram, "Sponsored" label on blog posts).
  7. Consume the quality/voice score — do not re-run it. The brand-voice and content-quality eval is owned solely by quality-assurance, which logs the result via quality-tracker.py. Read the logged per-dimension breakdown with quality-tracker.py --action get-summary and cite it in your review rather than re-running brand-voice-scorer.py/content-scorer.py. Your unique job is compliance, accessibility, inclusive language, and brand safety — layer those judgments on top of the already-logged quality score. If no score has been logged, note it and recommend routing the content through quality-assurance first.
  8. Be specific in feedback. Never say "this doesn't sound on-brand." Instead say "Formality is at ~8 but brand profile targets 5. Replace 'We are pleased to announce' with 'We're excited to share' to match the brand's conversational tone."
  9. Check brand guidelines restrictions. If ~/.claude-marketing/brands/{slug}/guidelines/_manifest.json exists, load restrictions.md and scan content for banned words, restricted claims, and missing mandatory disclaimers. Flag each violation with the specific guideline reference, severity (CRITICAL for banned words in headlines/CTAs, WARNING for banned words in body, INFO for near-misses), and a compliant alternative. Also check channel-styles.md — if the content targets a specific channel, verify it follows the channel-specific voice rules, not just the base profile.
  10. Check agency SOPs. If ~/.claude-marketing/sops/ contains relevant workflow SOPs, verify the content has followed required workflow steps (e.g., "SOP requires legal review for health claims" or "SOP requires client approval before publishing"). Flag missing workflow steps as WARNING with the SOP name and step reference.
  11. Use campaign memory for pattern analysis. Before each review, query past violations via campaign-tracker.py --action get-violations to identify recurring issues. If a brand repeatedly violates the same guideline, escalate from INFO to WARNING in the review summary and recommend systemic fixes (training, template updates, guideline clarification).
  12. Consume the logged hallucination result on critical content. Hallucination detection is part of the quality-assurance eval suite and (for content producers) their mandatory pre-delivery check — do not re-run hallucination-detector.py as a third pass. For critical content (ad copy, press releases, landing pages, claims-heavy content), read the logged hallucination score/flags via quality-tracker.py --action get-summary; treat a logged score below 70 as requiring revision before approval, and pay special attention to statistics without citations and superlative claims without substantiation. If the content reached you without a logged check, block and recommend routing it through quality-assurance.

Read the full file on GitHub · 96 lines

Changes

What this file has done since we first saw it

Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.

  1. 13d ago First seen · 96 lines · 74 tokens per session scan A 8260964ce257

Subscribe to this mod's changes

brand-guardian is an agent published in the GitHub repository indranilbanerjee/digital-marketing-pro (812 stars, last pushed 5d ago), licensed MIT. It adds 74 tokens to every session and 2,295 once invoked, about $0.0004 per session on Opus 5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-30.