Skip to content
Content
Skill

/voice-update

Update `context/voice-and-style.md` or `context/about-me.md` from one of three sources. Manual (user dictates a single new rule, sample, or career fact). Memory (batch pull from Claude Code's auto-memory in `~/.claude/projects/<slug>/memory/`). Sent-mail (analyze the last 20-50

From plugin
winning-writing
1531 skills
Install
$ npx -y skills add kalyvask/winning-writing --skill voice-update --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/voice-update

Context preview

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

Update `context/voice-and-style.md` or `context/about-me.md` from one of three sources. Manual (user dictates a single new rule, sample, or career fact). Memory (batch pull from Claude Code's auto-memory in `~/.claude/projects/<slug>/memory/`). Sent-mail (analyze the last 20-50

SKILL.md

voice-update.SKILL.md
name: voice-update
description: Update `context/voice-and-style.md` or `context/about-me.md` from one of three sources. Manual (user dictates a single new rule, sample, or career fact). Memory (batch pull from Claude Code's auto-memory in `~/.claude/projects/<slug>/memory/`). Sent-mail (analyze the last 20-50 sent Gmail messages and propose updates from observed patterns). Always proposes diffs and requires per-file approval; never auto-writes. Use when the user says "save this to my voice file," "remember this style," "consolidate my voice," "update from memory," "read my sent mail," "voice from sent mail," "what does my voice actually look like," "voice-update," or "/voice-update." Pass --source manual|memory|sent-mail.

Voice update

Source of truth: `context/voice-and-style.md` and `context/about-me.md`. This skill is the only writer to those files; every update flows through it.

What this skill does

Three sources behind one skill. Each source pulls voice / identity information from a different upstream, but all flow into the same downstream (proposed diffs to the two context files):

| Source | Reads | Use when | |---|---|---| | **manual** | One dictated rule, paragraph, or fact from the user | User just noticed something about their voice and wants to capture it now | | **memory** | Claude Code auto-memory dir (`~/.claude/projects/<slug>/memory/`) | Periodic batch pull — what has Claude learned about my style across recent sessions? | | **sent-mail** | Last 20-50 sent Gmail messages via the connected Gmail MCP | Audit voice files against ground truth — how do you *actually* write vs how you claim to |

`--source` is required. There is no default — the three sources have different scopes and contracts, and picking automatically would hide the trade-off.

How to invoke

/voice-update --source manual "save this rule: I never use 'leverage' as a verb"
/voice-update --source memory
/voice-update --source sent-mail
/voice-update --source sent-mail last 2 weeks

Universal rules (apply to all three sources)

These rules govern every voice-update operation, regardless of source.

Routing

| If the input is about... | Update this file | Section | |---|---|---| | A word the user uses | `voice-and-style.md` | Words I like | | A word the user doesn't use | `voice-and-style.md` | Banned words | | A sentence rhythm or structure | `voice-and-style.md` | Sentence structure | | An AI tell to flag | `voice-and-style.md` | AI tells | | A sample paragraph the user likes | `voice-and-style.md` | Sample paragraphs | | A target length or format | `voice-and-style.md` | Length targets / Format preferences | | A posture / register preference | `voice-and-style.md` | Posture | | New job, project, paper, credential | `about-me.md` | Trajectory / Public output | | Where they live, lived, hobbies, languages | `about-me.md` | Identity / How I think | | A specific belief, thesis, or focus | `about-me.md` | Primary focus / Public output | | What Claude should know about them | `about-me.md` | What you (Claude) should know |

Merge philosophy

1. **Preserve old content** — never delete a rule, sample, or fact without explicit user approval. 2. **Add new info in the right section** — don't dump at the end of the file. 3. **Flag contradictions** — surface them; let the user pick which version is canonical. 4. **Don't paraphrase** — use the user's exact words for samples, quotes, and banned words. 5. **One concept per commit** — don't batch unrelated additions. The user reviews each.

What NOT to do

  • Do NOT auto-write. Every change goes through diff + approval.
  • Do NOT auto-learn from drafts. Auto-learning from a Coach output would reinforce AI-tells the model rationalized away. Manual + sent-mail are the only legitimate signal paths.
  • Do NOT delete existing content without explicit approval.
  • Do NOT route style notes to about-me.md or career notes to voice-and-style.md.

---

Source 1 — manual

The user dictates one thing. The skill writes it.

Inputs

One of:

1. **A paragraph the user wrote** that they liked — a positive sample for `voice-and-style.md` 2. **A rewrite of a Coach output** — captures both the bad pattern (for AI tells / banned words) and the good rewrite (for sample paragraphs) 3. **A general style note** — "I never use 'leverage,'" "I prefer first person," "I don't use semicolons" 4. **A career fact** — new job, new project, new credential, new public output (routes to `about-me.md`) 5. **An identity fact** — where they grew up, formative experience, hobby, distinctive trait (also `about-me.md`)

If the input is ambiguous, ask one clarifying question before proceeding.

Process

1. **Identify the target file** via the routing table above 2. **Read the current file** in full 3. **Identify the right section** (don't append blindly) 4. **Compose the diff** with 3-5 lines of surrounding context plus the addition 5. **Show the diff** — clearly label what's being added or flagged for contradiction 6. **Ask for approval** 7. **On approval, write** via Edit tool (preserves existing content) 8. **Echo back the change** in 1-2 sentences. If the change has implications for other files (e.g., a new banned word should also live in `points/banned-jargon.md`), suggest the follow-up but don't do it without approval.

Example

**User:** "save this to my voice file: I never use 'leverage' as a verb. I'd rather say 'use' or just rewrite the sentence."

**Skill:**

1. Reads `context/voice-and-style.md` 2. Identifies "Banned words" section 3. Proposes diff:

     ## Banned words
     - synergy, drive, deliverables, utilize
   + - leverage (as a verb) — use "use" or rewrite the sentence
     - "at the intersection of"

4. Asks "OK to write?" 5. On yes, writes; suggests adding to `points/banned-jargon.md` too.

---

Source 2 — memory

Bridge Claude Code's auto-memory to the context files.

Claude Code's auto-memory captures cross-conversation f

Read more
Ships withwinning-writing

31 Claude skills for cold outreach, op-eds, pitches, press inquiries, bios, exec memos, performance reviews, spoken-delivery talks, fact-checking, and reply-rate tracking.

Get the whole plugin
Stats
15
Stars
5
Forks
Active
Maintenance
JavaScript
Language
MIT
License
10d ago
Last commit
4mo ago
Created

Repo: kalyvask/winning-writing

Other skills on winning-writing.