Skip to content
Data
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
30k77 skills
Install
$ npx -y skills add garrytan/gbrain --skill draft-in-voice --agent claude-code

How it fires

How this skill gets triggered: by you, by Claude, or both.

  • Fires itselfAuto-invocation. Claude auto-loads it when your prompt matches the work.Auto-invocation is when the right skill fires by itself at the right moment, driven by a FLOW.md router and a hook, instead of you invoking it by name. It is the difference between a skill being installed and a skill actually getting used.Read the full definition →
  • You can call itInvoke it directly when you want it.
  • Slash command/draft-in-voice

Context preview

The summary Claude sees to decide when to auto-load this skill.

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,

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`, 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, customers, or specifics. Private details stay private unless the person has said them

Read more
Ships withgbrain

Give the agent you already use a memory you control. GBrain stores explicit facts with their sources, supports corrections and withdrawal, and makes the same memory available across your agents.

Get the whole plugin
Stats
29,802
Stars
4,444
Forks
Active
Maintenance
TypeScript
Language
MIT
License
3d ago
Last commit
5mo ago
Created

Repo: garrytan/gbrain

Other skills on gbrain.

brain-ops
Skill

brain-ops

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

@garrytan@garrytanView Skill