Scribe
Scribe Skill
Drafts board updates, emails, LinkedIn posts, and talks in the operator’s own voice, then audience-tests every draft against reader personas with dimension-scored feedback.
Application: Personal Assistant · Database:
alh_personal· Namespace:scribe-
Purpose
Scribe closes the widest gap between basic and advanced AI use: writing in your voice for your audience. It works from three assets. A voice profile is a living style guide built from the operator’s best writing (own samples) plus aspirational samples from writers they admire — grounded in concrete rules with examples, never adjectives. Audience personas are detailed reader models (what they care about, what they’re skeptical of, what drives them to act, how they read) that review every draft. And dimension-scored feedback replaces “I don’t like it” with distance-to-target signal on clarity, concision, voice, persuasion, and overall.
The bar is “sounds exactly like you”; the failure mode is generic-pleasant-forgettable — prose that sounds like everyone and no one, which readers can spot and which costs credibility. Every draft is role-played by each target persona, who answers the same four questions: is the message clear, would I act, what’s missing, where would I stop reading. Iteration is unlimited and feedback stays pointed, because personas don’t fatigue or soften on round six.
The governing principle: the script stores and queries; Claude does the sensemaking — the linguistic analysis of samples, the drafting in voice, the persona role-play, and the scoring all happen in the agent, not the CLI. The Python script only persists and retrieves the artifacts.
Workflow
1. Voice profiling — build the living style guide.
- Collect the operator’s best writing across doc types and store each with
add-sample --kind own --doc-type ... --why-it-works .... - Read the
ownsamples and write an agent-as-linguist analysis (rhythm, sentence structure, rhetorical tells) — store it withadd-analysis. - Add
--kind aspirationalsamples from admired writers and analyze the gap toward how the operator wants to sound. - Synthesize into a style guide and save it with
create-profile --guide-file; on operator approval setupdate-profile --status active. Fold hand-edits from shipped pieces back in over time.
2. Writing a piece — draft, review, score, iterate.
- Define reader personas with
add-persona(--cares-about,--skeptical-of,--action-drivers,--reading-context). - Open the piece with
create-piece, always capturing the operator’s messy--primerand linking--targetspersonas. - Draft as the operator (loading
show-profilefirst) and store it withadd-draft(version auto-increments). - Have every target persona review the draft:
add-review --would-act yes|nowith the four answers in--content. - Score the draft against targets with
add-scores(0–10 per dimension, concrete qualitative diagnosis). - Revise → new draft → repeat until scores hit target (default 8+ everywhere, all personas
would-act yes) or plateau, then hand to the operator for final approval.
Data Model
Selected entity, note, and relation types from schema.tql (namespace scribe-):
| Type | Purpose |
|---|---|
scribe-voice-profile |
The living style-guide anchor; carries status (draft / active / evolving) and optional per-genre scope |
scribe-style-guide |
The style-guide document (artifact) linked to its profile via alh-representation |
scribe-writing-sample |
Operator’s best writing (own) or admired writing (aspirational), with doc-type and why-it-works |
scribe-persona |
A detailed reader persona: cares-about, skeptical-of, action-drivers, reading-context |
scribe-piece |
A communication in flight, with type, goal, audience summary, deadline, and status |
scribe-draft |
A versioned draft of a piece (scribe-version auto-increments) |
scribe-primer-note |
The operator’s messy brain dump captured at piece creation |
scribe-analysis-note |
Agent-as-linguist analysis of samples or a profile |
scribe-review-note |
A persona’s review of a draft; owns the scribe-would-act boolean verdict |
scribe-score-note |
Dimension scores 0–10 (clarity / concision / voice / persuasion / overall) plus concrete feedback |
scribe-sample-informs |
Relation: writing sample ↔ voice profile |
scribe-draft-of |
Relation: draft ↔ piece |
scribe-piece-targets |
Relation: piece ↔ target persona |
scribe-review-by |
Relation: review note ↔ reviewing persona |
Key Commands
All commands: uv run python skills/scribe/scribe.py <command> --flags. Every command emits a single JSON object (report-piece emits Markdown).
| Command | What it does |
|---|---|
add-sample |
Store a writing sample (--kind own\|aspirational, --doc-type, --why-it-works) |
list-samples |
List writing samples, filtered by kind or doc-type |
create-profile |
Create a voice profile, optionally with an initial style guide |
update-profile |
Update profile status/genre or overwrite the style guide |
show-profile |
Show a profile with guide, samples, and analyses |
add-analysis |
Store an agent-as-linguist analysis note about a profile or sample |
add-persona |
Create a detailed reader persona |
list-personas |
List personas (and how many pieces target each) |
create-piece |
Open a piece (status planning), storing --primer and linking --targets |
add-note |
Attach a primer / interview / plan / general note to any entity |
add-draft |
Store a draft for a piece; version auto-increments |
add-review |
Record a persona’s review of a draft (--would-act yes\|no) |
add-scores |
Store 0–10 dimension scores plus qualitative feedback for a draft |
update-piece |
Update piece status/goal/deadline or add target personas |
list-pieces |
List pieces by status or type |
show-piece |
Piece detail with drafts, reviews, and score trajectory (JSON) |
report-piece |
Piece report for human display (Markdown) |
audit |
Run the quality-checks.yaml audit rules |
How it fits the suite
Scribe lives in the Personal Assistant family, so its data sits in the shared alh_personal TypeDB database and its dashboard appears at /scribe. Pieces sitting in persona-review or operator-review surface in chief-of-staff’s daily agenda as work awaiting a decision, and the drafts board updates as those decisions land: a board update deliberated with advisor becomes a scribe piece, and outreach to a career contact is drafted here in the operator’s voice.
See the Personal Assistant overview and sibling skills: career, analyst, advisor, ops, chief-of-staff, and coach.