skills/voice-check/SKILL.md
--- name: voice-check description: Scans a substacker draft line-by-line against the canonical voice-profile.md don't-list and signature moves. Emits phrase-level flags with location, quoted phrase, violation type, voice-profile citation, and up-to-2 suggested rewrites per flag. Use as pass-2 skill (voice) after structural-review completes, when a draft reads competent but not in the writer's voice, or when the writer asks "does this sound like me?" Trigger keywords: voice check, delve, unpack,
npx skillsauth add lyndonkl/claude skills/voice-checkInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Related skills: Called by the Editor after structural-review. Runs alongside hedge-detector, slop-detector, citation-form-check. Each skill owns a specific band of voice issues; this one handles explicit don't-list phrase matches.
Voice check draft D:
- [ ] Step 1: Load voice-profile.md (global) + voices/{section}.md (if applicable)
- [ ] Step 2: Extract the don't-list as a regex bank
- [ ] Step 3: Scan draft; match each regex with word boundaries
- [ ] Step 4: For each match: record {line, quoted phrase, violation, voice-profile citation, 2 rewrite options}
- [ ] Step 5: Emit phrase-flags table
From voice-profile.md §10 (Voice don'ts). Word-boundary enforced.
| Violation | Regex | Rewrite hint |
|---|---|---|
| delve | \bdelve(s|d|ing)?\b | replace with specific verb |
| unpack | \bunpack(s|ed|ing)?\b | replace with specific verb |
| dive into | \bdive\s+into\b | replace with specific verb |
| let's explore | \blet'?s\s+(explore|dive) | delete; open with confession |
| at the end of the day | \bat\s+the\s+end\s+of\s+the\s+day\b | delete clause |
| game-changer | \bgame[-\s]?changer\b | name the specific change |
| paradigm shift | \bparadigm\s+shift\b | name the shift explicitly |
| under the hood | \bunder\s+the\s+hood\b | replace with "mechanically" or delete |
| in today's fast-paced world | in\s+today'?s\s+(fast[-\s]?paced\s+)?world | delete; open with a dated concrete fact |
| AI is transforming | (?i)AI\s+is\s+transforming | delete generic framing; open with confession |
| emoji | [\u{1F300}-\u{1FAFF}\u{2600}-\u{27BF}] | delete |
| exclamation | ! (in body, not quotes) | convert to period |
| I think (as hedge) | \bI\s+think\b (when followed by a claim, not a question) | commit OR specific hedge |
| clearly / obviously / simply (as persuasion) | \b(clearly|obviously|simply)\b | delete or name the step |
| custom CTA | subscribe\b.*(resonated|more|stay\s+tuned) | delete; Substack boilerplate is fine |
Section overlays can add or override entries. If voices/kalshi-log.md bans "generalizing to other sports", add that rule.
Draft excerpt:
In today's rapidly evolving AI landscape, let's unpack why RAG beats fine-tuning. At the end of the day, RAG is a game-changer. Let's dive into the details!
Flags (all tier-1):
| loc | quote | violation | citation | rewrites | |---|---|---|---|---| | P1 S1 | "In today's rapidly evolving AI landscape" | generic opener | voice-profile §10 don't #2 | (a) delete; (b) replace with a dated concrete fact | | P1 S1 | "let's unpack" | don't-list | §10 don't #1 | (a) "Here is the mechanism" (b) delete | | P1 S2 | "At the end of the day" | don't-list | §10 don't #1 | (a) delete clause | | P1 S2 | "game-changer" | don't-list | §10 don't #1 | (a) "it cuts token budget by 40% on our traces" (b) "it avoids a retrain" | | P1 S3 | "Let's dive into" | don't-list | §10 don't #1 | (a) "Here is what actually happens" (b) delete | | P1 S3 | "!" (exclamation) | don't-list | §10 don't #8 | (a) period |
Six tier-1 flags in three sentences → triggers Editor must-not #13 (≥3 tier-1 voice violations = no-go).
delve).hedge-detector (hedging) and slop-detector (structural voice).testing
--- name: advisory-edit description: A strict advisory-only editing discipline for a writer who dictates ("speaks out") essays and wants help WITHOUT having their voice changed. The editor directs structure, flags grammar, and suggests strategic language — but never modifies the writer's text unless the writer explicitly says "apply" / "make that change" / "rewrite this." Produces a line-referenced, suggestion-only critique where every item is marked the writer's call. Four passes: structural, l
testing
Provides the house style for analyst-grade strategist writing — third-person register with sparing first-person, no em dashes, no "not X, not Y, not Z" negation cascades, numbered footnote citations rather than inline source parentheticals, specific opinion-signaling phrases, and topic-forward paragraph structure modeled on voice patterns observed in Damodaran's Musings on Markets and Thompson's Stratechery. Use when consolidating working notes into a finished long-form strategist or analyst report that must read as written by a senior human analyst rather than an AI assistant.
testing
Renders a markdown report to a PDF using pandoc with xelatex (11pt serif body, 1-inch margins, numbered footnotes, formal heading hierarchy). Requires a one-time install of pandoc and a LaTeX engine on the user's machine — basictex on macOS or texlive-xetex on Linux. Does not attempt automatic install. Fails loudly with the exact install commands if pandoc or xelatex is missing on the user's PATH. Use when producing a finished strategist or analyst report PDF from a polished markdown source.
testing
Produces step-by-step computational walkthroughs of vector and matrix operations as a sequence of numbered "frames", showing the explicit state at each step. The text-equivalent of a 3Blue1Brown animation — each frame shows what changed and why, so the learner can re-trace the operation by hand. Use when the learner needs to *see* a computation unfold (eigenvalue computation, attention with 3 tokens, gradient descent step, SVD on a 2×2, layer norm on a 3-vector, softmax of a small input), when an explanation has been given but the learner needs to ground it in a worked example, or when introducing an operation that's intimidating in symbol form but trivial in pencil-and-paper form.