skills/platform-voice-check/SKILL.md
--- name: platform-voice-check description: Runs a voice-fidelity audit on each of the four substacker platform outputs (Substack Note, X thread, LinkedIn post, cross-post blurb) before reporting Distribution Translator completion. Checks for voice-don'ts (banned vocabulary, emoji, generic openers, marketing math without source), voice-do compliance (paper attribution preserved, hedges preserved, em-dash reframes present), platform-specific tonal shifts. Emits voice-check.md with pass/fail per a
npx skillsauth add lyndonkl/claude skills/platform-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.
Voice-audit the 4 platform outputs:
- [ ] Step 1: Read all 4 output files + voice-profile.md + voices/{section}.md (if applicable)
- [ ] Step 2: For each file:
- Scan voice-don'ts (delve, unpack, paradigm shift, emoji, exclamations, I think, AI-is-transforming, custom CTA)
- Scan voice-dos (opener classification, em-dash reframes, hedge preservation, paper attribution)
- Platform-specific tonal shift check
- [ ] Step 3: Emit voice-check.md with pass/fail per file
- [ ] Step 4: If FAIL on any file, return the flag list to Distribution Translator for loop-back
| Platform | Expected tone shift | Flag if | |---|---|---| | Substack Note | Closest to essay voice | Any over-polishing that reads AI-rewritten | | X | More declarative, more quotable | Over-hedging ("Substack leak on X") | | LinkedIn | Practitioner, slightly less confessional | Raw confession ("Substack leak on LinkedIn") | | Cross-post | Third person | Any first-person use ("I argue…") |
ops/distribution/{date}-{slug}/voice-check.md:
---
agent: distribution-translator
date: YYYY-MM-DD
post_slug: {slug}
results:
substack-note.md: PASS | FAIL
x-thread.md: PASS | FAIL
linkedin-post.md: PASS | FAIL
cross-post-blurb.md: PASS | FAIL
---
## substack-note.md: PASS | FAIL
- (line / location) — issue — voice-profile citation
## x-thread.md: PASS | FAIL
- variant: short — line X — issue
- variant: medium — line Y — issue
## linkedin-post.md: PASS | FAIL
- ...
## cross-post-blurb.md: PASS | FAIL
- ...
If voice-check reports FAIL on any file, Distribution Translator MUST loop back to the matching rewrite skill with the flags as input. Max 2 loops per artifact. After 2 loops:
DESIGN-NOTE: This essay's voice may not translate cleanly to {platform}. User review recommended.
Ship best-so-far; flag for writer.
development
--- name: zettel-note description: The note-writing discipline for this vault's evergreen knowledge graph, modeled on a Zettelkasten reading companion and governed by the vault conventions. Enforces declarative-claim titles, one claim per note (atomicity), own-words prose with no block quotes, the piped [[slug|Title]] link form, the labeled link-relationship vocabulary (Confirms/Contradicts/Extends/Context/Prerequisite/Builds-on/Applies/Example-of/Contrasts-with), 3-6 links per note, and search-
development
Plans between-round FIFA World Cup Fantasy transfers — budgets the round's free transfer(s), forces out players whose nation has been eliminated, chases fixture-swing drops, upgrades on value, and decides when a rebuild is large enough to fire the Wildcard instead of spending free transfers one at a time. Ranks candidate in/out pairs by EV gain over each player's remaining survival horizon (delta xEV weighted by progression_carry) MINUS transfer cost (a free transfer is cheap, a points hit is real, churning the squad for marginal swings is a critic flag), and tags forced/fixture/upgrade priority. Emits a `transfer-plan` signal. Use when called by wc-squad-architect (whose transfer work this skill is the engine for) and by the strategists in the populate stage when their candidate is transfer-adjacent rather than a full rebuild.
testing
Reads and updates the FIFA World Cup Fantasy tournament state machine (footballfantasy/context/tournament-state.md) — the temporal backbone tracking phase (pre-tournament → group MD1-3 → R32 → R16 → QF → SF → final), budget ($100m group / $105m knockouts), nation cap (3 group, loosening in knockouts), chips remaining, surviving nations, each owned player's elimination-risk horizon, and deadlines. Validates state on load (count/feasibility checks), applies phase transitions, and appends to the append-only state log (never silent overwrite). Use to load state at the start of a run and to commit state changes after the manager makes a move.
development
Validates and persists FIFA World Cup Fantasy signal files to signals/YYYY-MM-DD-<type>.md. Checks the required frontmatter (type, round, date, emitted_by, confidence, source_urls), range-checks declared numeric signals, confirms every factual claim carries a source URL or "manager-provided", rejects unknown signal types, and refuses to persist a signal that fails validation (logging the failure instead). Keeps the inter-agent signal layer auditable so downstream agents can trust what they read and never re-derive it. Use whenever an agent or skill writes a signal.