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 page lands, resolve named…
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,
$ npx -y skills add garrytan/gbrain --skill draft-in-voice --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
/draft-in-voiceContext 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,
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
> **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/`.
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.
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.
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.
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.
Score each draft against the loaded profile; fix fails, don't ship them:
if it does).
One thought.
of their real posts? If unsure, pull 3 real adjacent samples from the corpus referenced in the profile's provenance block and compare cadence.
or first-hand fact — never invent metrics, customers, or specifics. Private details stay private unless the person has said them
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.
Repo: garrytan/gbrain
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 page lands, resolve named…
When you report a brain page to the user — created, edited, committed, or relayed from a subagent — a working link is part of the deliverable, in the SAME…
Brain knowledge base operations. The core read/write cycle: brain-first lookup, read-enrich-write loop, source attribution, ambient enrichment, back-linking.…
Deduplicate and synthesize raw concept stubs into a tiered intellectual map (T1 Canon to T4 Riff), tracing idea evolution across sources over time. Transforms…
Token-hygiene audit of the always-loaded context stack — CLAUDE.md, AGENTS.md, auto-memory MEMORY.md, and the bootstrap-rendered identity files (SOUL.md,…
When the user corrects a factual error, root-cause it immediately. Don't just note the correction — trace the error to its source, fix the source, and prevent…