Install
openclaw skills install @athola/nm-scribe-voice-reviewRuns parallel prose and craft review agents against a voice profile
openclaw skills install @athola/nm-scribe-voice-reviewNight Market Skill — ported from claude-night-market/scribe. For the full experience with agents, hooks, and commands, install the Claude Code plugin.
Dispatch dual review agents and present unified findings.
Two agents run in parallel on the generated text:
Hard failures (banned phrases, em dashes) are auto-fixed. Everything else returns as advisory tables for user decision.
voice-review:text-loaded - Generated text readvoice-review:register-loaded - Voice register loadedvoice-review:agents-dispatched - Both reviewers launchedvoice-review:hard-fails-fixed - Auto-corrections appliedvoice-review:advisories-presented - Tables shown to userRead:
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}
Apply all auto-fixes from prose reviewer silently:
Report: "Fixed N hard failures (X banned phrases, Y em dashes, Z patterns)"
Present both tables to the user:
Prose Review Advisories:
| # | Line | Pattern | Current | Proposed fix |
|---|
Craft Review:
| Dimension | Rating | Notes | Proposed improvement |
|---|
For each advisory row, user can:
Present as:
[1] Prose: Frictionless transition at "Furthermore, the..."
Proposed: Cut transition, start mid-thought
[a]ccept / [r]eject / re[w]rite?
If the user has learning mode enabled:
~/.claude/voice-profiles/{name}/learning/snapshots/When dispatched from voice-generate, the flow is:
Can also be run on any existing text:
/voice-review path/to/file.md --profile myvoice --register casual
After the review completes, validate these conditions:
The test suite (test_voice_review.py) validates: