Skip to content
Agentmart
Submit a tool

voice-extraction-workflow

Produce a voice contract from operator-curated exemplars (Phase 10).

Skill by petr-royce

IndexedMIT★ 106
Write a review

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/elophanto-voice-extraction-workflow

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

Produce a voice contract from operator-curated exemplars (Phase 10). Triggered by exemplar paths, voice intent, or draft lint failure.

Use cases: documents, 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. Checked Oct 25, 2026.

Tools
No tools found
Secrets
None asked for
Install scripts
None found

Network hosts it talks to 1

  • codeload.github.com · found in install command

Files it touches

  • ~/.claude/skills/voice-extraction-workflow

What's inside

Skill name
voice-extraction-workflow
Description
Produce a voice contract from operator-curated exemplars (Phase 10). Triggered by exemplar paths, voice intent, or draft lint failure.
License
MIT
Metadata
phase: 10 · author: petr-royce · version: 1.1.0
Instructions
46 lines in SKILL.md · view on GitHub

Files (1)

  • SKILL.md

SKILL.md (first lines)

# Voice extraction workflow

## Triggers

- voice extract / voice contract / voice yaml
- learn my voice / mimic this voice / write like
- exemplars / reference posts
- voice_proposed / voice approve
- voice lint failed

## Procedure: extract a voice contract

1. **Check exemplars.** `file_list data/companies/<slug>/exemplars/` recursive. Expect `twitter/`, `email/`, etc. with 2+ `.md` files per channel. If empty: tell operator the path, don't scrape.
2. **`voice_extract(company_id=<slug>, channel=<optional>)`**. Requires ≥2 exemplars per channel scanned. Writes `voice_proposed.yaml`.
3. **Show to operator**: `elophanto voice proposed <slug>` (or file_read). Surface persona / tone / banned phrases / hooks / length bounds.
4. **Operator promotes**:
   - Approve → `elophanto voice approve <slug>` (backs up existing voice.yaml, promotes proposal).
   - Reject → `elophanto voice reject <slug> "<reason>"` archives with reason; next extract reads it.
5. Future drafts auto-lint against the contract.

## When a draft lint fails

ToolResult error names violations (e.g. `voice lint failed: banned phrase 'leverage'; too long: 312 chars (max 240)`).

- **Default**: revise the body honoring the constraints. LLM does this naturally on next planning cycle.
- **Rare**: contract is outdated. Tell operator + ask for new exemplars.
- Never bypass via live tool to skip the draft gate.

## When no voice.yaml exists

Lint is fail-soft (passes everything). Day-0 state. Tell operator the contract is empty + point at `exemplars/` path. While missing, default to [[b2c-marketing-voice]] principles (no "leverage", concrete object up front, etc.).

## Hard rules

- ❌ Never promote `voice_proposed.yaml` → `voice.yaml` yourself. Operator only.
- ❌ Never scrape URLs for exemplars — operator pastes deliberately.
- ❌ Never write `voice.yaml` directly via file_write.
- ❌ Never lint a draft against the wrong company's voice — set the contextvar first.

## Verify

- [ ] ≥2 exemplars per channel before `voice_extract`
- [ ] `voice_proposed.yaml` written (not `voice.yaml`)
- [ ] On lint failure: body revised, not live tool called

From elophanto/EloPhanto, MIT.

More from elophanto/EloPhanto

Signals

Stars
106
Forks
9
Open issues
2
Last commit (this folder)
May 26, 2026 (5 months ago)
Last release
Oct 1, 2026 (28 days ago)

From GitHub (fetched Oct 24, 2026).

Details

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

More from petr-royce

Cite this page

voice-extraction-workflow skill. Agent Mart. https://agentmart.dev/skills/elophanto-voice-extraction-workflow (last updated 2026-10-24)