Skip to content
Agentmart
Submit a tool

rl-voice-discovery

Use when someone has no author-voice skill set up yet, asks "help me find my voice," "build a voice profile," "what does my writing actually sound like," or…

Skill by reventurelabs

IndexedMIT★ 3
Write a review

Chalk Labs

Need help deploying rl-voice-discovery?

Chalk Labs sets up agents like this inside real teams: connected to your tools, tested on your data, with a human in the loop where it matters.

Book a call

Install

Works with Claude Code, Claude apps, Codex, Cursor, Gemini CLI, GitHub Copilot, VS Code, OpenCode, Goose, Windsurf. Read the repository before you give any tool access to your data.

npx agentmarket install skill/reventurelabs-rl-voice-discovery

Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.

Get the weekly diff

The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.

We use your email only for this newsletter. Privacy

About

Use when someone has no author-voice skill set up yet, asks "help me find my voice," "build a voice profile," "what does my writing actually sound like," or when `rl-content-pipeline` notes no author-voice skill is configured. Builds a portable voice profile — register, rhythm, phrase preferences, what to avoid — from real writing samples (preferred when they exist), a structured interview (when there are no samples, or when the person wants to name a voice they are building toward rather than the one already on the page), or both together, then validates it against a test passage before finalizing. Produces `VOICE-PROFILE.md` at the repo root, which `rl-content-pipeline` and `rl-writing-craft` reference generically as "your author-voice skill." A one-time (or occasional refresh) process, not invoked per-draft — once the file exists, other skills read it directly. Does not replace a fuller, continuously-evolving voice skill built from ongoing corrections — this produces the seed, not the finished thing.

Use cases: testing, data, writing, productivity

No reviews yet. Installed it? Reviews come from verified installers only. How reviews work

Permissions

What this skill can do and what it asks for, from its SKILL.md and code. Checked Oct 26, 2026.

Tools
No tools found
Secrets
None asked for
Install scripts
None found
Runs as
Python package

Network hosts it talks to 1

  • codeload.github.com · found in install command

Files it touches

  • ~/.claude/skills/rl-voice-discovery

What's inside

Skill name
rl-voice-discovery
Description
Use when someone has no author-voice skill set up yet, asks "help me find my voice," "build a voice profile," "what does my writing actually sound like," or when `rl-content-pipeline` notes no author-voice skill is configured. Builds a portable voice profile — register, rhythm, phrase preferences, what to avoid — from real writing samples (preferred when they exist), a structured interview (when there are no samples, or when the person wants to name a voice they are building toward rather than the one already on the page), or both together, then validates it against a test passage before finalizing. Produces `VOICE-PROFILE.md` at the repo root, which `rl-content-pipeline` and `rl-writing-craft` reference generically as "your author-voice skill." A one-time (or occasional refresh) process, not invoked per-draft — once the file exists, other skills read it directly. Does not replace a fuller, continuously-evolving voice skill built from ongoing corrections — this produces the seed, not the finished thing.
License
MIT
Instructions
220 lines in SKILL.md · view on GitHub

Before installing

  • Ships executable scripts

Files (2)

  • SKILL.md
  • voice_metrics.py

SKILL.md (first lines)

# Voice Discovery

Most people can't accurately describe their own writing voice in the
abstract — they describe how they *want* to sound, or a generic idea of
"professional but approachable." Real writing beats a vague description of
writing every time: patterns stated about yourself in the abstract are
often wrong; patterns pulled from what you actually wrote are grounded.

That doesn't rule out intent. Wanting to sound like a voice you haven't
fully written into yet is a real, legitimate target, not a bias to correct
for — people hire ghostwriters with direction all the time, and there's
nothing dishonest about building toward a voice on purpose. The actual
distinction this skill draws isn't existing-voice-good,
wanted-voice-bad — it's specific versus vague. A concrete answer to "what's
a phrase you'd never say out loud" is signal whether it describes what's
already true or what someone's building toward. A vague answer to "how
would you describe your voice" is noise either way. This skill's design
follows from that distinction, not from a preference for the past over the
future.

Output is `VOICE-PROFILE.md` at the repo root — a structured reference the
rest of the suite already knows to look for wherever "your author-voice
skill" is mentioned. This is a discovery process, not a per-draft tool: run
it once to build the profile, run it again later only to refresh it (a
voice can drift, or you might want to capture a second register — e.g. a
more technical one for a different audience).

## Step 1: Get real material — and ask about intent

Ask for **5-10 pieces of real writing**, in whatever formats the person
writes most: emails they actually sent, posts they actually published,
messages written fast and not overthought. Minimum useful sample is roughly
500 words total; more is better, and variety of format matters more than
raw volume — three genuinely different contexts (an email, a LinkedIn post,
a Slack message) reveal more than nine similar emails.

**If they have samples:** work from those first — don't ask them to also
describe their voice in the abstract, let the samples speak, then check
your read against their reactions in step 4. But also ask directly: is this
profile meant to describe how you already write, or is there a voice
you're building toward that these samples don't fully show yet? Both are
legitimate answers. If they want the second, run the structured interview
below alongside the sample analysis, and keep the two sources
distinguishable in the profile (Step 3) rather than quietly blending them
into one voice that overstates what the samples actually show.

**Run the structured interview** when there are no samples (a brand-new
writer, or someone who's never published anything), or whenever the person
wants it regardless of samples — direction toward a voice they're aiming
for, not just a description of the one they already have. Ask open-ended
questions that surface concrete preferences rather than abstractions — not
"how would you describe your voice" (too abstract, people default to
flattering generalities either way, whether describing the past or the
future) but things like: "read this paragraph out loud in your head — does
it sound like you, or like a brand?", "what's a phrase you'd never say out
loud?", "when you write fast and don't edit, what do you sound like?" —
and, when it's about intent specifically, "who's a writer whose voice you'd
want this to have some of?", "what would this sound like if you'd already
become the writer you're trying to be?"

Interview answers describing an **existing** voice with no samples to check
them against are a rougher first draft than sample-derived ones — flag that
portion "interview-derived, lower confidence" until real samples validate
it. Interview answers naming an **aspirational** voice don't get that same
flag; they're not claiming to describe current behavior, so there's nothing
to validate them against. They're a direction, stated as one.

## Step 2: Extract the actual patterns

Read the samples for what's *there*, not what they say about themselves.
Cover, at minimum:

- **Sentence rhythm** — average length, variance, how short sentences get
  used (for emphasis? fragments?), how long ones get built (subordinate
  clauses stacked, or simple additive "and... and...").
- **Formality baseline** — where it sits on a scale, and whether it shifts
  by context (more formal for technical explanation, looser for a personal
  anecdote, say) — most real voices modulate, they aren't a single flat
  register.
- **Contraction usage** — near-universal in casual writing, near-absent in
  some formal registers; note the actual rate, not an assumption.
- **Hedging frequency** — how often claims get qualified ("I think," "maybe,"
  "in my experience") versus stated flatly. Both are legitimate voices; the
  point is to capture which one this person actually does.
- **Signature phrases and vocabulary** — words or short constructions that
  recur enough to be a tell (not generic words everyone uses — the specific,
  slightly unusual ones this person reaches for repeatedly).
- **What they explicitly never do** — no exclamation points, never opens
  with a question, never uses em-dashes, whatever the samples consistently
  avoid. Absence patterns are as much a signature as presence patterns.
- **Emotional range and vulnerability level** — how much personal
  admission, humor, or emotional register shows up, and whether it's
  proportional (real vulnerability) or performed (announced candor —
  `rl-writing-craft`'s Grounding Rules already flag manufactured
  vulnerability; this step is about the person's actual baseline, not
  policing it).
- **Opening and closing patterns** — how pieces tend to start (cold open?
  a question? context-setting?) and end (summary? forward-pointer? a
  specific callback?).

**Measure what can be counted.** Sentence length and spread, contraction rate, hedging,
punctuation habits, and function-word use are counts, not judgments — and a model reading for
them estimates, while a script counts. Run `voice_metrics.py` (next to this file) on the samples:

```bash
python3 voice_metrics.py --block samples/*.md
```

Its output goes into the profile's Measured Baseline section verbatim. Use the numbers to ground
the prose sections too — "short declaratives" is a vibe; "15% of sentences at 8 words or fewer,
spread of 13.5" is checkable. The review panel's Keeper compares revised drafts against this
baseline to catch a revision that sands the voice down. With no samples (interview-only), there's
nothing to count: leave the section out and say so in **Source**. If Python isn't available, say
so rather than filling the section with estimates.

## Step 3: Draft the profile

Write `VOICE-PROFILE.md` with these sections — the template below is the
shape:

From reventurelabs/rl-content-os, MIT.

More from reventurelabs/rl-content-os

Signals

Stars
3
Forks
0
Open issues
0
Last commit (this folder)
Sep 28, 2026 (1 month ago)

From GitHub (fetched Oct 24, 2026).

Details

License
MIT
First seen
Oct 24, 2026
Last checked
Oct 24, 2026

More from reventurelabs

Done for you

Rather not set it up yourself?

Chalk Labs scopes, builds and runs agents for your team: the task audit, the eval harness, the integrations and the weekly ops report. Fixed scope, priced before we start.

See how we build AI agents →Read the case studies

Chalk Labs is a two-founder AI and growth studio. We build AI agents, CRMs and MVPs for Web3 and AI companies, and have shipped 50+ product and token launches.

launches shipped
50+
launches shipped
media placements
500+
media placements
founders on every account
2
founders on every account

Press we've placed: Forbes · CoinDesk · Decrypt · Cointelegraph · The Block

Rahil Jain, Co-founder, Chalk Labs. Ex-Goldman Sachs engineer. You talk to the person who builds it.

Get rl-voice-discovery running in your business

Tell us what you want to automate. A founder replies within one working day with a plan, not a pitch deck.

Goes to the Chalk Labs founders, not the newsletter. Privacy

Need help deploying rl-voice-discovery?

CallGet help
Cite this page

rl-voice-discovery skill. Agent Mart. https://agentmart.dev/skills/reventurelabs-rl-voice-discovery (last updated 2026-10-24)