amirfish1/claude-command-center/voice-guard
Claude Code and agent skill by amirfish1/claude-command-center
- community
Checking that the SKILL.md file is still in the repository.
Use to check ONE already-written piece of copy against a voice guide before it ships — it spawns ONE fresh sibling session via CCC that scores the existing draft against the stated voice rules, flags every violation with the offending quote and a minimal in-voice rewrite, and gives a ship / revise verdict. For an artifact that already exists, not a copy competition.
Install
npx vskill@latest install amirfish1/claude-command-center/voice-guardSKILL.md
Voice-guard spawns a single fresh CCC session that holds an existing draft up against an explicit voice guide and reports where it breaks voice. It is a one-artifact audit: you already wrote the README section / landing headline / changelog entry / launch post, and you want an independent read of whether it sounds like it should before it goes out. It builds on the spawn/report_to mechanics in the ccc-orchestration skill — read that first for the full Spawn/Inject/Ask API.
Cost
1 spawned session. Each spawn is a real billed session on the user's kanban — tell the user the count before spawning. For a one-line tweak you can already see the fix on, just fix it — this earns its cost on a paragraph or more, or when the voice guide has enough rules that a human misses some.
Setup
- (a) Run every CCC curl with the network sandbox disabled — the Bash
sandbox blocks loopback and fails spuriously even when CCC is up.
- (b) URL-encode `repo_path` in query strings (
+→%2B, space →%20). - (c) Resolve your own session id:
$CLAUDE_SESSION_ID, else the newest
*.jsonl under ~/.claude/projects/<slugified-cwd>/ (see ccc-orchestration).
Preconditions — assemble these BEFORE spawning
The guard is only as good as the guide you hand it. Have both ready:
- (a) The draft — the exact text to check, inline in the prompt (not "the
headline on the landing page" — paste the words).
- (b) The voice guide — the rules as concrete do/don't statements, not a
vibe. Pull them from the repo's style source if one exists (e.g. a CONTRIBUTING voice section, an output-style file, or documented copy rules) rather than inventing them; a made-up guide produces made-up violations. If a rule is a hard ban (e.g. "never use em-dashes", "no exclamation marks"), say so — those become automatic-fail checks.
If you cannot state the voice as checkable rules, you are not ready — the result would be one session's taste, which is what a-b-copy's judge already gives you. Get the guide first.
Spawning the guard
Omit "model" and "reasoning_effort": the server spawn defaults (Settings → Spawn defaults) apply. Pass either explicitly to keep cost down, with "engine" alongside it, since both are validated per engine (see ccc-orchestration § 2 for the per-engine effort ladders). CCC appends the return-address footer (report_to), so the guard injects its findings back to you when it finishes.
Waiting for the report
After spawning, end your turn. Tell the user a voice check is running and give its session id. The findings arrive by injection (report_to) — do not poll or sleep-loop. If they never arrive, check GET /api/sessions/spawned for whether the child is still alive.
Interpreting the verdict
- SHIP — no real voice breaks (or cosmetic only). Apply any nits and go.
- REVISE — apply the listed minimal rewrites; each violation comes with the
exact span and its in-voice replacement, so you patch rather than rewrite.
- OFF-VOICE — the draft fights the guide top to bottom; a patch list won't
save it. Rewrite from the message architecture (that's a-b-copy territory if you want competing takes).
Drafts only — voice-guard never posts or publishes; applying the fixes and shipping is a human decision.
Dry run
If the arguments contain dry-run, print the exact payload — session count (1), the voice guide rules (with hard bans marked), the draft, and the target repo — and POST nothing.
When CCC is down
If CCC_DOWN=1 or the spawn curl returns connection refused (exit 7), fall back to the built-in Task tool subagent with the same rule-by-rule prompt — an independent read of one artifact against a fixed guide does not need kanban visibility to work. Never pretend the CCC spawn ran.
What this is not
- Not
a-b-copy— that spawns two writers to draft the SAME message in
DIFFERENT voices and has a judge pick a winner; its input is a brief and its output is new copy. Voice-guard takes ONE piece that already exists and checks it against a fixed guide; its output is a violation list, not a new draft. Use a-b-copy to choose a voice; use voice-guard to enforce one you already chose.
- Not
/code-reviewor a fact check — it does not verify the claims in the copy
are true (that's docs-drift for docs, or your own review). It only checks how the words sound.
Security
- Security scanPassed, 90 of 100Pattern checks on the skill's files.
- Model reviewPassed
Quality evaluation
- Task evaluationNot runNo evaluation yet. Run one in Skill Studio.
Source
- SKILL.md in the repositoryCheckingplugin/skills/voice-guard/SKILL.md
Popularity
- 7-day trend score
- 0
Not refreshed yet.
Works with
Any agent vskill installs to: 56 targets in all. These 39 have a page on this site.
- Claude Code
- Cursor
- GitHub Copilot
- Windsurf
- Codex
- Gemini CLI
- Cline
- Amp
- Roo Code
- Goose
- Continue
- Kilo Code
- Junie
- Trae
- OpenHands
- Qwen Code
- AI Agent
- Tabnine Chat
- Sourcegraph Cody
- Amazon Q
- Firebase Genkit
- Sweep
- Devin
- Phind
- Mentat
- Claude Desktop
- Aider
- GPT Pilot
- Plandex
- bolt.new
- v0
- Replit Agent
- Anse
- TypingMind
- BetterChatGPT
- LibreChat
- Warp AI
- Pieces
- Fig AI
Embed badge
[](https://verified-skill.com/skills/amirfish1/claude-command-center/voice-guard)