From voice-sweep
This skill should be used when scanning a repo for tone violations, banned phrases, stale stat-claims, or missed brand-voice reframes against a configurable brand-profile JSON. Trigger phrases include "voice sweep", "tone check", "brand-voice audit", "find banned phrases", "stale stat claims", "find old positioning". Pure static scan; no LLM, no paid APIs. Operates on any text source — Markdown, MDX, TSX, JSX, TS, JS — and reports per-file findings classified by severity.
How this skill is triggered — by the user, by Claude, or both
Slash command
/voice-sweep:voice-sweepThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
A grep-strength brand-voice gate. Scans every text file in the project
A grep-strength brand-voice gate. Scans every text file in the project against a brand-profile JSON and flags banned phrases, stale numeric claims, and missed reframes. Built so when positioning shifts, you can ship the new voice across the codebase in one PR — no LLM, no ambiguity, no missed surfaces.
Trigger this skill when:
Do NOT use for:
design-audit skill instead)visual-qa skill instead)npx @operator-skills/voice-sweep
Common flags:
| Flag | What it does |
|---|---|
--profile <path> | Path to brand-profile JSON (default: ./voice-sweep.profile.json) |
--remote-profile <url> | Fetch brand-profile from a URL (opt-in, no LLM) |
--glob <pattern> | Override default glob (default: src/**/*.{ts,tsx,jsx,js,md,mdx}) |
--format table|json | Output format (default: table) |
--verbose | Per-finding detail with file:line + excerpt |
--severity error|warn|info | Minimum severity to surface |
Exit codes: 0 clean, 1 finding at-or-above severity, 2 config error.
The brand profile is a plain JSON file. The default location is
voice-sweep.profile.json at the repo root. Each rule type has a
severity and a list of patterns; patterns can be plain strings (exact
substring match, case-insensitive) or { regex: "...", flags: "..." }
objects.
{
"$schema": "https://github.com/cmj-hub/operator-skills/blob/main/skills/voice-sweep/references/profile-schema.json",
"name": "JMC brand voice — spine reframe (2026)",
"version": "1.0",
"rules": {
"banned-phrases": {
"severity": "error",
"patterns": [
"install our methodology",
"scorecards + 90-day plans",
"419+ assets",
{ "regex": "\\b7 Pro (SaaS )?[Tt]ools\\b", "message": "Use \"14 Prototypes\" or current post-cull count" }
]
},
"stale-stat-claims": {
"severity": "warn",
"patterns": [
{ "regex": "\\b\\d{3,}\\+ scorecards\\b", "message": "Numeric scorecard count is deprecated; use 'growing weekly'" }
]
},
"preferred-reframes": {
"severity": "info",
"patterns": [
{ "regex": "\\bbuy the (system|methodology|process)\\b", "message": "Prefer 'seat on the build' framing" }
]
}
},
"ignore": ["src/legacy/**", "**/*.test.tsx"]
}
The profile supports any rule category — these are just conventions for organizing patterns. Each category gets its own severity:
banned-phrases — exact text that must not appear (error by default)stale-stat-claims — numeric claims that may have changed (warn)preferred-reframes — old phrasings that have a better successor (info){/* @voice-sweep: allow banned-phrases */}
{/* Reason: legacy testimonial quote — verbatim, do not edit */}
<p>"They installed our methodology in two weeks."</p>
The Reason: line must appear within 5 lines after the suppression.
- name: Voice sweep
run: npx @operator-skills/voice-sweep --severity error
Fails the build on any error-level finding. Run a --severity warn
variant on a nightly cadence to catch slower decay.
This skill works in:
npx @operator-skills/voice-sweep/plugin install voice-sweep; Claude auto-invokes when trigger phrases matchnpx @operator-skills/voice-sweep mcp into any MCP-aware runtimedesign-audit — static-analysis design-system checksvisual-qa — runtime layout / overflow checks (Playwright)npx claudepluginhub cmj-hub/operator-skills --plugin design-auditCreates, edits, and optimizes skills for Claude Code, including drafting, evaluating with test prompts, iterating on performance, and improving skill descriptions for better triggering accuracy.