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.

  1. Collect the operator’s best writing across doc types and store each with add-sample --kind own --doc-type ... --why-it-works ....
  2. Read the own samples and write an agent-as-linguist analysis (rhythm, sentence structure, rhetorical tells) — store it with add-analysis.
  3. Add --kind aspirational samples from admired writers and analyze the gap toward how the operator wants to sound.
  4. Synthesize into a style guide and save it with create-profile --guide-file; on operator approval set update-profile --status active. Fold hand-edits from shipped pieces back in over time.

2. Writing a piece — draft, review, score, iterate.

  1. Define reader personas with add-persona (--cares-about, --skeptical-of, --action-drivers, --reading-context).
  2. Open the piece with create-piece, always capturing the operator’s messy --primer and linking --targets personas.
  3. Draft as the operator (loading show-profile first) and store it with add-draft (version auto-increments).
  4. Have every target persona review the draft: add-review --would-act yes|no with the four answers in --content.
  5. Score the draft against targets with add-scores (0–10 per dimension, concrete qualitative diagnosis).
  6. 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.