Skip to content
Development
Skill

/voice-review

Runs parallel prose and craft review agents against a voice profile. Use when checking generated content for AI patterns and voice drift before publishing.

From plugin
claude-night-market
350200 skills60 agents162 commands1 MCP

Claude Code

$ npx -y skills add athola/claude-night-market --skill voice-review --agent claude-code

SKILL.md

voice-review.SKILL.md
name: voice-review
description: Runs parallel prose and craft review agents against a voice profile. Use when checking generated content for AI patterns and voice drift before publishing.
globs: "**/*.{md,txt}"
alwaysApply: false
category: writing-quality
tags:
- voice
- review
- prose
- craft
- quality
tools: []
complexity: medium
estimated_tokens: 1600
progressive_loading: false
dependencies:
- scribe:voice-extract
- scribe:voice-generate
- scribe:slop-detector
- imbue:review-core
- imbue:structured-output

Voice Review Skill

Dispatch dual review agents and present unified findings.

When NOT To Use

  • Producing the text (use `scribe:voice-generate`)
  • A generic AI-pattern scan with no voice profile (use

`scribe:slop-detector`)

Method: Parallel Dual-Gate Review

Two agents run in parallel on the generated text: 1. **Prose reviewer**: AI patterns, banned phrases, voice drift 2. **Craft reviewer**: Naming, destinations, dwelling, devices, anchoring

Hard failures (banned phrases, em dashes) are auto-fixed. Everything else returns as advisory tables for user decision.

Required Progress Items

1. `voice-review:text-loaded` - Generated text read 2. `voice-review:register-loaded` - Voice register loaded 3. `voice-review:agents-dispatched` - Both reviewers launched 4. `voice-review:hard-fails-fixed` - Auto-corrections applied 5. `voice-review:advisories-presented` - Tables shown to user 6. `voice-review:findings-verified` - Citations confirmed by verifier

Step 1: Load Context

Read:

  • The generated text (from file or clipboard)
  • The active voice register
  • The banned phrases list

Step 2: Dispatch Review Agents

Launch both agents in parallel:

Agent(prose-reviewer):
  - text: {generated_text}
  - register: {register_content}
  - banned_phrases: {banned_list}

Agent(craft-reviewer):
  - text: {generated_text}
  - register: {register_content}

Step 3: Process Results

Hard Failures

Apply all auto-fixes from prose reviewer silently:

  • Remove/replace banned phrases
  • Replace em dashes with appropriate punctuation
  • Rewrite negation-correction patterns

Report: "Fixed N hard failures (X banned phrases, Y em dashes, Z patterns)"

Advisory Tables

Present both tables to the user:

**Prose Review Advisories:**

| # | Line | Anchor | Pattern | Current | Proposed fix | |---|------|--------|---------|---------|--------------|

**Craft Review:**

| Dimension | Rating | Notes | Proposed improvement | |-----------|--------|-------|---------------------|

Step 4: User Decision

For each advisory row, user can:

  • **Accept** (a): Apply the proposed fix
  • **Reject** (r): Keep the current text
  • **Rewrite** (w): Apply a custom fix

Present as:

[1] Prose: Frictionless transition at "Furthermore, the..."
    Proposed: Cut transition, start mid-thought
    [a]ccept / [r]eject / re[w]rite?

Step 5: Apply Decisions

  • Apply accepted fixes to the text
  • Skip rejected items
  • For rewrites, incorporate user's version
  • Save final text

Step 6: Snapshot (if learning active)

If the user has learning mode enabled:

  • Save "post-review" snapshot (text after hard-fail fixes,

before user decisions on advisories)

  • Save "post-fixes" snapshot (text after user decisions)
  • Both go to `~/.claude/voice-profiles/{name}/learning/snapshots/`

Integration with voice-generate

When dispatched from voice-generate, the flow is: 1. voice-generate produces text 2. voice-generate calls voice-review 3. voice-review dispatches agents, processes results 4. User makes decisions on advisories 5. If learning mode: snapshots saved for later comparison

Standalone Usage

Can also be run on any existing text:

/voice-review path/to/file.md --profile myvoice --register casual

Verify Findings Are Grounded (`voice-review:findings-verified`)

Write advisory rows to `.review/findings.json`, run the citation verifier (`Skill(imbue:review-core)` Step 5), and drop or label `UNVERIFIED` any the verifier rejects.

Verification

After the review completes, validate these conditions:

  • Both review agents returned results (no timeouts)
  • Hard failures auto-fixed and diff shown to user
  • Advisory tables presented with accept/reject/rewrite options
  • User decisions applied to the final text
  • Final text saved to disk
  • Snapshots saved (if learning mode active)

Exit Criteria

  • [ ] Both review agents returned results without timeout
  • [ ] Hard failures auto-fixed and diff shown to user
  • [ ] Advisory tables presented with accept/reject/rewrite options
  • [ ] User decisions applied to the final text
  • [ ] Final text saved to disk
  • [ ] Every advisory row carries a `Line` (file:line) and verbatim `Anchor`;

`citation_verifier.py` confirmed all citations (exit `0`) or unverified rows are dropped/labeled `UNVERIFIED`

Test Spec

The test suite (`test_voice_review.py`) validates:

  • Skill file exists and references parallel dispatch
  • Hard failure vs advisory separation is documented
  • Prose reviewer agent exists with hard-failure patterns
  • Craft reviewer agent exists with five-dimension ratings
  • Both agents produce tabular output for downstream merging
Read more
@athola
Ships withclaude-night-market

A plugin marketplace for Claude Code. Install only the plugins you need to run git workflows, code review, spec-driven development, and autonomous agents from inside your Claude Code session.

350200 skills60 agents1 MCP
Get the whole plugin

Stars on GitHub

Momentum

stars in total
350
Star history of athola/claude-night-market on GitHub, a chart by star-history.com

Other skills on claude-night-market.

More skills from other plugins.

brainstorming
Auto-invoked

brainstorming

You MUST use this before any creative work - creating features, building components, adding functionality, modifying behavior, or…

@obra@obraInstall Skill
ask-matt

ask-matt

Ask which skill or flow fits your situation. A router over the skills in this repo.

skills2w309k
@mattpocock@mattpocockInstall Skill
accessibility
Auto-invoked

accessibility

Design, implement, and audit accessible UI to WCAG 2.2 Level AA across Web, iOS, and Android — semantic ARIA roles and labels,…

ecc2w293k
@affaan-m@affaan-mInstall Skill
compiler-commit

compiler-commit

Use when you want to verify compiler changes and commit with the correct convention. Runs tests, lint, and format, then commits…

react5d252k
@facebook@facebookInstall Skill

Questions about voice-review.

Which coding agents can use voice-review?
voice-review installs in Claude Code, Codex, Cursor, Gemini CLI, GitHub Copilot, OpenCode and Windsurf with the skills CLI, using each agent's flag shown on this page. Flowy's auto-invocation, which fires a skill when your prompt matches, runs in Claude Code only.