From thinking-frameworks-skills
Scans a Substack draft line-by-line against a voice-profile don't-list, flagging banned phrases like 'delve', 'unpack', and 'paradigm shift' with location, violation type, and rewrite suggestions.
How this skill is triggered — by the user, by Claude, or both
Slash command
/thinking-frameworks-skills:voice-checkThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
- [Workflow](#workflow)
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 |
unpack | `\bunpack(s | ed |
dive into | \bdive\s+into\b | replace with specific verb |
let's explore | `\blet'?s\s+(explore | dive)` |
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 |
| custom CTA | `subscribe\b.*(resonated | more |
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).npx claudepluginhub lyndonkl/claude --plugin thinking-frameworks-skillsAudits and rewrites content to remove AI writing patterns ("AI-isms"). Supports detect-only mode, file edit-in-place, voice profiles, and iterative refinement.
Rewrites AI-flavoured copy into publishable register by stripping LLM tells (buzzwords, throat-clearing, false-inclusive openers, rhetorical tics). Useful for editors reviewing synthetic-sounding drafts or onboarding contributors who default to AI register.
Scan Every drafts for editorial-review failures: clarity gaps, argument problems, mechanics red flags, and AI tells. Reports line-level diagnoses and suggested fixes.