Skip to content
Agent Memory
Skill

/draft-in-voice

Ghostwrite content in a specific person's voice from a VALIDATED voice profile — tweets, replies, short posts, launch copy, recruiting blurbs, emails. Loads the subject's voice profile (people/<slug>-voice) plus first-party context from the brain, drafts 2-3 options in-register,

From plugin
gbrain
33k80 skills

Claude Code

$ npx -y skills add garrytan/gbrain --skill draft-in-voice --agent claude-code

SKILL.md

draft-in-voice.SKILL.md
name: draft-in-voice
version: 1.0.0
description: >
  Ghostwrite content in a specific person's voice from a VALIDATED voice
  profile — tweets, replies, short posts, launch copy, recruiting blurbs,
  emails. Loads the subject's voice profile (people/<slug>-voice) plus
  first-party context from the brain, drafts 2-3 options in-register, then
  runs a hard voice-fidelity self-check before showing anything. Includes
  the profile BUILDER: if no validated profile exists, drafting hard-stops
  and this skill walks the corpus-to-fingerprint build instead. Never
  auto-posts.
triggers:
  - "draft in voice"
  - "write this as"
  - "make this sound like"
  - "ghostwrite"
  - "draft a tweet as"
  - "write a post as"
  - "in their voice"
  - "in my voice"
  - "build a voice profile"
mutating: true
writes_pages: true
writes_to:
  - people/
upstream: draft-in-voice@fc834ee

draft-in-voice — Memory-Grounded Ghostwriting

> **Convention:** see [conventions/brain-first.md](../conventions/brain-first.md) — > the voice profile and all substance come from the brain, never from memory > or improvisation. > > **Convention:** see [conventions/quality.md](../conventions/quality.md) for > citation and back-link rules, and > [_brain-filing-rules.md](../_brain-filing-rules.md) — voice profiles are > person-subject pages and file under `people/`.

What this is

Ghostwrite in a specific person's voice with high fidelity. The voice work is done UPSTREAM: a validated voice profile already exists in the brain at `people/<slug>-voice` (e.g. `people/alice-example-voice`), and this skill is the disciplined *application* of it. Never freehand "founder voice" or "their voice" from memory — always load the profile and obey its hard rules.

If no validated profile exists, drafting **stops** — see [Building a voice profile](#building-a-voice-profile) below. A made-up voice is worse than asking.

> **The user's own voice is a special case.** If the subject is the user and > the harness ships a dedicated personal voice skill (with its own register > tuning and anti-AI patterns), prefer that. Use `draft-in-voice` for anyone > else with a validated profile — colleagues, founders, partners, the people > the user ghostwrites for — or for the user when no dedicated skill exists.

Source of truth (read these FIRST, every time)

1. **The validated voice profile** — `gbrain get people/<slug>-voice`. The fingerprint, quantitative stats (median length, diction, rhythm), and the "how to write as this person" directive block. **This is binding.** If the page is missing, or its `status` is anything other than `validated` (a `status: stub` page, such as the empty me/voice form setup writes, is missing), STOP drafting and go to the builder appendix. 2. **First-party context** — the subject's main page (`gbrain get people/<slug>`) plus timeline and backlinks (`gbrain timeline <slug>`, `gbrain backlinks people/<slug>`): how they actually frame their work, their origin arc, their texture. Use for *substance* so the content is true to how they think, not just how they sound. 3. **(optional) Topic-specific pages** — if the draft is about a specific idea or company, pull the relevant page (`gbrain search "<topic>"`, then `gbrain get <slug>`) so every claim is accurate, not invented.

The hard rules (read them OFF the profile)

A good voice profile encodes the person's non-negotiables. Honor whatever the profile states. The six recurring categories to extract and obey:

1. **Tells to avoid.** Most profiles name a #1 giveaway (often em-dashes, a stock opener, a punctuation habit). A draft that trips the named tell is automatically wrong. 2. **Length discipline.** Match the profile's median length. One thought per short post. Cut. 3. **Register, picked not blended.** Most people have a casual register and a statement/technical register with different rules (caps, emoji, slang, jargon). Pick ONE per draft; never blend — emoji plus corporate jargon in the same line reads fake. 4. **Signature moves.** The profile names the person's characteristic constructions — use them. 5. **Banned boilerplate.** Whatever the profile bans (hashtags, "excited to announce", "1/n" threads, specific buzzwords) stays out. 6. **Worldview to channel.** Substance should reflect how they actually see the thing.

Procedure

1. **Resolve the subject + load** `people/<slug>-voice` and first-party context from the brain. No validated profile → stop drafting and offer to build one (appendix below); do not fake it. 2. **Clarify register + intent** in one line if ambiguous: casual (chat energy) or statement (launch/technical)? Default casual for replies, statement for announcements. 3. **Draft 2-3 options**, not one. Keep each tight. Vary the angle, not the voice. 4. **Run the voice self-check** (below). Fix anything that flunks before showing the draft. 5. **Show the options + the self-check verdict.** Drafting only — posting or sending is the human's call and goes through the normal approval-gated path. This is a contract the agent upholds, not a mechanical guarantee: never wire a draft directly into a send.

Voice self-check (run before showing any draft)

Score each draft against the loaded profile; fix fails, don't ship them:

  • [ ] **Named-tell check:** the profile's #1 tell does not appear (auto-fail

if it does).

  • [ ] **Length:** within the profile's stated band, ideally at its median.

One thought.

  • [ ] **Register purity:** one register, not a blend.
  • [ ] **No banned boilerplate:** nothing the profile explicitly bans.
  • [ ] **Sounds like them, not generic:** would it sit naturally between two

of their real posts? If unsure, pull 3 real adjacent samples from the corpus referenced in the profile's provenance block and compare cadence.

  • [ ] **Substance is true:** every factual claim traces to a real brain page

or first-hand fact — never invent metrics, cus

Read more
@garrytan
Ships withgbrain

Garry's Opinionated OpenClaw/Hermes Agent Brain

Stars on GitHub

Momentum

stars in total
33.0k
Star history of garrytan/gbrain on GitHub, a chart by star-history.com

Other skills on gbrain.

brain-ingest-gate

brain-ingest-gate

Pre-write quality gate for content entering the brain. No raw copies: a bare cp/mv into the brain repo is a bug. Before any new…

@garrytan@garrytanInstall Skill
brain-link-discipline

brain-link-discipline

When you report a brain page to the user — created, edited, committed, or relayed from a subagent — a working link is part of the…

@garrytan@garrytanInstall Skill
brain-ops

brain-ops

Brain knowledge base operations. The core read/write cycle: brain-first lookup, read-enrich-write loop, source attribution,…

@garrytan@garrytanInstall Skill
concept-synthesis

concept-synthesis

Deduplicate and synthesize raw concept stubs into a tiered intellectual map (T1 Canon to T4 Riff), tracing idea evolution across…

@garrytan@garrytanInstall Skill
context-audit

context-audit

Token-hygiene audit of the always-loaded context stack — CLAUDE.md, AGENTS.md, auto-memory MEMORY.md, and the bootstrap-rendered…

@garrytan@garrytanInstall Skill
correction-pipeline

correction-pipeline

When the user corrects a factual error, root-cause it immediately. Don't just note the correction — trace the error to its…

@garrytan@garrytanInstall Skill

More skills from other plugins.

agent-cost-report

agent-cost-report

Believable agent cost report for any period, default the last 7 full days PT, not counting today. Measured tokens from Claude…

@thedotmack@thedotmackInstall Skill
bot-handoff

bot-handoff

Keep a durable record of work passed between Bots in the shared Hindsight memory bank. Use when handing work to another Bot, when…

@vectorize-io@vectorize-ioInstall Skill
mempalace

mempalace

Install, configure, and operate MemPalace, including a private local palace, a shared-brain hub, or a client joining an existing…

@mempalace@mempalaceInstall Skill
mempalace

mempalace

Install, configure, and operate MemPalace, including a private local palace, a shared-brain hub, or a client joining an existing…

@milla-jovovich@milla-jovovichInstall Skill

Questions about draft-in-voice.

Which coding agents can use draft-in-voice?
draft-in-voice 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.