skills/content/voice-validator/SKILL.md
Critique-and-rewrite loop for voice fidelity validation.
npx skillsauth add notque/claude-code-toolkit voice-validatorInstall 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.
This skill operates a rigorous critique-and-rewrite enforcement loop for voice fidelity. It scans content against voice-specific negative prompt checklists, documents violations with evidence, fixes them while preserving intent, and rescans to confirm the revision passes — up to 3 iterations maximum.
The workflow implements the Iterative Refinement pattern: scan → document violations → revise → rescan. This ensures voice violations are caught systematically and fixed methodically without over-engineering or changing meaning.
CRITICAL CONSTRAINT: Never revise content without first scanning against the full checklist. Every violation must cite a specific quote. After 3 failed iterations, output with flagged concerns rather than continuing indefinitely.
Goal: Determine the voice, mode, and content to validate.
Step 1: Identify voice target
Step 2: Load content
Gate: Voice target and mode identified. Content loaded. Proceed only when gate passes.
Goal: Run full checklist against content and identify all violations with evidence.
Step 0: Run deterministic stylometry checks
When the target voice has a profile.json, run the stylometry script first. It emits structured findings (rule_id, span, severity) that anchor the scan in measured data:
python3 scripts/voice-stylometry.py check \
--profile skills/voice-{name}/profile.json \
--draft <content-file>
Deterministic checks it runs:
burstiness.band, warning): draft sentence-length variance must fall inside the author's measured band; uniform sentence length is an AI tell.punctuation.em_dash|semicolon|parenthetical, warning): em-dash, semicolon, and parenthetical rates classified never/rare/habitual; flags drafts whose class deviates from the author's.ai_tell.corrective_antithesis, error): "not X, it's Y" constructions, inline and across sentence pairs.ai_tell.temporal_opener, error): throat-clearing paragraph openers ("In today's...", "In an era...", "Now more than ever...").ai_tell.uniform_paragraphs, error): four or more consecutive paragraphs with identical sentence counts.profile.stale, advisory): profile older than its refresh_after_days window. Advisory only — it asks for a profile refresh and never blocks the draft. Exit code stays 0 when only advisory findings exist.Exit code 1 means error/warning findings exist; carry each finding into the violation list below. Profiles without stylometry or decay fields skip those checks and remain valid.
Step 1: Run negative prompt checklist
Check all categories against the target voice's checklist. Standard categories include:
references/narrative-patterns.md):
Step 2: Check pass conditions
Verify the content matches the target voice's positive identity markers. Common pass conditions include:
Step 3: Document violations
For each violation, record:
Key constraint: Only scan at this stage; save revisions for the next phase. Subjective assessment without a checklist misses specific violations.
Gate: Full checklist scanned. All violations documented with evidence. Proceed only when gate passes.
Goal: Fix all violations while preserving content intent and substance.
Step 1: Apply fixes
Step 2: Verify no overcorrection
Key constraint: Make the smallest change that resolves each violation. Preserve all meaning. Changing substance is scope creep.
Gate: All documented violations addressed. Intent preserved. Proceed only when gate passes.
Goal: Confirm revised content passes all checks.
Step 1: Rescan revised content
Run the full checklist from Phase 2 against the revised version.
Step 2: Evaluate result
Key constraint: Always rescan. "Should be fine" is a rationalization. Fixes can introduce new violations.
Step 3: Output validation report
VOICE VALIDATION: [Voice Name] Mode [mode]
SCAN RESULT: [PASS/FAIL]
VIOLATIONS DETECTED: [N]
ITERATION: [1-3]
[If violations:]
1. [Category]: "[quoted violation]"
Fix: [specific correction]
2. [Category]: "[quoted violation]"
Fix: [specific correction]
REVISED OUTPUT:
[Corrected content]
RESCAN RESULT: [PASS/FAIL]
Gate: Content passes all checks, or maximum iterations reached with flagged concerns. Validation complete.
User says: "Validate this draft is in the right voice"
Actions:
Result: Clean content with validation report
User says: "Does this sound like the right voice?"
Actions:
Result: Content matches voice profile
Cause: Content doesn't specify which voice to validate against, or context is ambiguous
Solution:
Cause: Fundamental mismatch between content substance and voice requirements, or conflicting checklist items
Solution:
Cause: Fixing one category created violations in another (e.g., removing dramatic sentences introduced polished phrasing)
Solution:
voice-{name} - Generates content in a specific voice (validate output with this skill)anti-ai-editor - Complementary anti-AI pattern detectionvoice-writer - Unified voice content generation pipeline that invokes this skilldata-ai
Extract video transcripts: yt-dlp subtitles to clean paragraphs.
tools
Collect, filter, and freshness-qualify news items.
development
Convert PDF, Office, HTML, data, media, ZIP to Markdown.
testing
Verify factual claims against sources before publish.