Voice Setup for Openclaw

Voice Setup turns a writer's samples, interview answers, or both into an editable and enforceable writing voice profile.

whit3rabbit
v0.5.0
Aug 31, 2026
0
168
0

Install & Download

1. ClawHub CLI

The fastest way to install a skill directly from the registry.

npx clawhub@latest install voice-setup

2. Manual Installation

Copy the skill folder to one of these locations

Global
~/.openclaw/skills/
Workspace
<project>/skills/

Priority: Workspace > Local > Bundled

3. Prompt Installation

Copy this prompt to OpenClaw to install it automatically.

Help me install voice-setup using Clawhub. If Clawhub is not installed, install it first (npm i -g clawhub).

Prefer to download?

Get the raw skill files in a ZIP archive.

What is Voice Setup?

Voice Setup is an Openclaw Skills workflow for the rabbit-writes plugin that captures how a person actually writes and converts it into two reusable files: a human-readable Markdown profile and a machine-enforceable JSON ruleset. It measures mechanics, vocabulary, sentence patterns, register, refusals, and writing fingerprints instead of relying only on vague style descriptions.

The skill supports profile creation, validation, correction, activation, blending, inheritance, and host installation. Its evidence-first workflow separates measured behavior from stated preferences, preserves contrastive examples, detects contaminated or AI-assisted samples, and helps ensure generated writing sounds like the intended author.

Voice Setup Use Cases

  • Create a personal writing voice from three or four existing articles, emails, posts, or chat logs.
  • Build a profile through a short Taste Interview when no writing samples are available.
  • Combine measured samples with an interview to resolve gaps and contradictions.
  • Diagnose drafts that do not sound like the author and capture repeated corrections.
  • Enforce banned words, phrases, punctuation, formatting, sentence-length, and paragraph-length preferences.
  • Measure future documents against a saved writing fingerprint.
  • Blend two voices with weighted lineage or extend an existing voice for a client or repository style.
  • Switch the active voice used by rabbit-writes and install it into supported Claude Code hosts.

How Voice Setup Works

  1. Confirm the profile slug, destination directory, priority tier, active-voice preference, and whether author exemplars may be embedded.
  2. Choose a route: interview only, sample analysis, or the recommended combination of samples followed by targeted interview questions.
  3. Run measure_voice.py to calculate sentence, paragraph, opener, connector, contraction, hedge, intensifier, vocabulary, and ending distributions.
  4. Stop and investigate contamination when samples contain P0 fingerprints such as chatbot artifacts, cutoff disclaimers, or hidden Unicode.
  5. Scaffold paired files in voices/<name>.md and voices/<name>.rules.json.
  6. Write specific author preferences into Markdown and place regex-testable rules, bans, mechanics, limits, and substitutions into JSON.
  7. Preserve exact write-versus-refuse examples in contrastive_pairs and distinguish measured evidence from author-stated rules.
  8. Optionally generate a fingerprint, with or without exemplars, for later distance and conversion analysis.
  9. Run build_voice.py --check to validate structure, inheritance, regex compilation, metadata, template residue, and live rule execution.
  10. Run audit_voice.py against the author's complete corpus to detect rules that incorrectly fire on their own writing.
  11. Apply focused corrections with learn_edits.py; repeated edits are proposed only after they occur at least twice.
  12. Activate the validated profile or install the generated host integration after showing status and a dry run. Reinstall after profile changes because generated output styles are snapshots.

Voice Setup Setup

Requirements

  • Python 3 available as python3.
  • The rabbit-writes plugin repository or this skill's directory.
  • Optional remote model configuration only when using scan.py --apply-model: RABBIT_MODEL_API_KEY, RABBIT_MODEL_BASE_URL, and RABBIT_MODEL_NAME.

Create and measure a profile

python3 {baseDir}/scripts/measure_voice.py sample1.md sample2.md sample3.md --name <voice> --write-fingerprint --with-exemplars
python3 {baseDir}/scripts/build_voice.py --scaffold --name <voice> --out {baseDir}/voices --priority P0

Complete the generated Markdown and JSON files using the author's own language. Remove generic writing advice, complete all angle-bracket prompts, add examples for regex rules, and review every inferred rule.

Validate and audit

python3 {baseDir}/scripts/build_voice.py --check <voice>
python3 {baseDir}/scripts/audit_voice.py <voice> sample1.md sample2.md sample3.md
python3 {baseDir}/scripts/scan.py sample1.md --voice <voice>

Activate or install for Claude Code

python3 {baseDir}/scripts/build_voice.py --check <voice> --activate
python3 {baseDir}/scripts/install_host.py --status
python3 {baseDir}/scripts/install_host.py --install --dry-run
python3 {baseDir}/scripts/install_host.py --install

Ask for approval before writing to user or project configuration. Host installation supports user and project scopes, and activation is refused for incomplete or externally stored profiles. After installation, start a new session or use /clear; rebuild the installation whenever the profile changes.

Voice Setup Data Schema & Taxonomy

Profile files

File Purpose
voices/<name>.md Human-readable profile covering structure, mechanics, tone, register, refusals, measured evidence, and contextual judgment.
voices/<name>.rules.json Regex-enforceable rules consumed by scan.py, including bans, mechanics, limits, substitutions, priorities, inheritance, and contrastive pairs.
voices/<name>.fingerprint.json Optional statistical fingerprint created from samples, with optional author exemplars and register metadata.
voices/ACTIVE Name of the active profile resolved from the plugin's voices/ directory.

Common JSON taxonomy

  • banned_words and banned_phrases: plain strings or objects with opt-in inflect behavior.
  • banned_regex: entries with an id, label, regular expression, optional max_allowed, and a required matching example.
  • mechanics: enforceable punctuation, date, sentence, paragraph, and formatting preferences.
  • preferred_substitutions: measured vocabulary replacements applied by scan.py --apply-safe.
  • contrastive_pairs: verbatim examples of what the author would write versus refuse to write.
  • default_priority: normally P0, with supported tiers P0, P1, and P2.
  • extends: optional parent profile; bans are inherited and mechanics merge by key with child overrides.
  • blend: lineage metadata for weighted profiles; bans use the union and the stricter refusal wins.
  • Known contamination: Markdown documentation for excluded or AI-assisted samples.

Fingerprint data contains measured distributions such as sentence length, paragraph openings, connectors, contractions, hedges, intensifiers, content words, document endings, calibration size, register, and distance metrics. measure_voice.py --json, learn_edits.py --json, and audit_voice.py --json provide machine-readable output.

Voice Setup Advanced Features

  • Evidence-first profile generation distinguishes observed sample behavior from self-reported preferences and explicitly surfaces disagreements.
  • P0 contamination gates prevent chatbot artifacts, hidden Unicode, or cutoff language from becoming permanent style rules.
  • Fingerprint calibration converts subjective sound-alike judgments into measurable distance reports, with optional register-aware analysis.
  • contrastive_pairs preserve high-signal author examples for conversion decisions and style imitation.
  • Safe vocabulary transformation uses measured preferred_substitutions and --apply-safe rather than broad generic rewriting.
  • learn_edits.py detects repeated substitutions, removals, sentence-opener changes, punctuation changes, and movement across six profile measures without writing automatically.
  • Profile inheritance with extends supports compact client, repository, or house-style overrides while preventing silent removal of inherited bans.
  • Weighted voice blending unions refusals, records lineage, and identifies incompatible requirements for manual confirmation.
  • Priority tiers, regex max_allowed thresholds, inflection-aware bans, and live-fire validation support precise enforcement.
  • Claude Code integration generates output styles and hooks, supports user or project scope, preserves the previous outputStyle, and provides reversible uninstall behavior.
  • The workflow is compatible with Openclaw Skills conventions and uses only Python 3 locally unless optional model application is explicitly configured.

SKILL.md


Loading

Related Openclaw Skills

METADATA

Requires
Bins python3
Github Stars: 0
forks: 0

Featured*