
Voice Learn
Learn a writer’s voice by diffing post-review versus post-edit snapshots and categorizing recurring edit patterns for future agent drafts.
Install
npx skills add https://github.com/athola/claude-night-market --skill voice-learnWhat is this skill?
- Compares VERSION A (post-review) vs VERSION B (post-edit) to extract writer-driven changes
- 8 diff categories: tone_adjustment, voice_insertion, structure_change, precision_edit, deletion, addition, humor_or_irre
- Flags recurring patterns (2+ same edit type) as voice signals versus one-off fixes
- Labels each change with principle, category, and general vs voice-specific specificity
- Night-market module: pattern-analysis with Read and Agent dependencies (~500 estimated tokens)
Adoption & trust: 1 installs on skills.sh; 304 GitHub stars; 3/3 security scanners passed (skills.sh audits); trending (+100% hot-view momentum).
Recommended Skills
Grill Memattpocock/skills
Grill With Docsmattpocock/skills
Brainstormingobra/superpowers
Lark Tasklarksuite/cli
Lark Workflow Standup Reportlarksuite/cli
Cavemanjuliusbrussee/blueprint
Journey fit
Primary fit
Voice learning compounds during Grow when you refine content quality and consistency across posts and lifecycle copy. Content subphase is where tone, structure, and precision edits are systematically captured from real revisions.
Common Questions / FAQ
Is Voice Learn safe to install?
skills.sh reports 3 of 3 security scanners passed. Review the Security Audits panel on this page before installing in production.
SKILL.md
READMESKILL.md - Voice Learn
# Pattern Analysis Module Analyze diffs between post-review and post-edit snapshots to extract recurring edit patterns. ## Diff Categories | Category | Signal | Example | |----------|--------|---------| | tone_adjustment | Softened/strengthened claims | "This proves" -> "This suggests" | | voice_insertion | Added writer-specific moves | Added parenthetical aside | | structure_change | Reordered, split, merged | Broke long paragraph into two | | precision_edit | Vague -> specific | "many people" -> "the 12 engineers" | | deletion | Removed fluff | Cut "It's worth noting that" | | addition | Added context | Added a concrete example | | humor_or_irreverence | Added informal voice | Added "(fuck GPTZero)" | | hedge_or_commit | Changed certainty level | "will" -> "should" or vice versa | ## Analysis Prompt ``` Compare these two versions of the same text: VERSION A (post-review, before manual edits): {post_review_text} VERSION B (post-edit, after manual edits): {post_edit_text} For each change the writer made: 1. Identify the specific edit (what changed) 2. Categorize it (from the categories above) 3. Describe the pattern (what principle drove this edit?) 4. Assess specificity: is this a general writing preference or specific to this voice? Focus on RECURRING patterns, not one-off fixes. If the same type of edit appears 2+ times, that's a voice signal. Output as a list of patterns with evidence. ``` ## Pattern Matching Against Accumulator For each identified pattern, check the accumulator: ```python def match_pattern(new_pattern, accumulator): """Match using category + semantic similarity.""" for existing in accumulator["patterns"]: if existing["category"] == new_pattern["category"]: # Semantic similarity check (same intent?) if similar_description(existing, new_pattern): return existing # Merge with this entry return None # New pattern ``` ## Evidence Requirements | Action | Threshold | |--------|-----------| | Apply to register | 3+ instances across 2+ pieces | | Apply with accumulator match | 1-2 new and 2 prior instances | | Hold in accumulator | 1-2 instances, no prior match | | Discard | Contradicts 3+ counter-examples | ## Output Format ```json { "patterns_found": [ { "category": "tone_adjustment", "description": "Softens confident claims about capabilities", "instances": [ {"line": 12, "before": "...", "after": "..."}, {"line": 34, "before": "...", "after": "..."} ], "recommendation": "apply|hold|discard", "target": "register|craft-rules|prose-reviewer", "proposed_edit": "..." } ] } ``` --- module: snapshot-management category: voice-learning dependencies: [Bash, Write, Read] estimated_tokens: 400 --- # Snapshot Management Module Capture and organize text snapshots for the learning loop. ## Snapshot Stages | Stage | When Captured | Purpose | |-------|--------------|---------| | pre-review | After generation, before review agents | Baseline output | | post-review | After user accepts/rejects advisories | Review impact | | post-edit | When user runs /voice-learn | Manual edit patterns | ## File Naming ``` {piece-name}-{YYYYMMDD-HHMMSS}-{stage}.md ``` Example: ``` blog-api-design-20260410-143022-pre-review.md blog-api-design-20260410-143022-post-review.md blog-api-design-20260410-145511-post-edit.md ``` ## Capture Commands ### Pre-review (automatic) Called by voice-generate after producing text: ```bash SNAP_DIR="$HOME/.claude/voice-profiles/$PROFILE/learning/snapshots" PIECE_NAME="$1" TIMESTAMP=$(date +%Y%m%d-%H%M%S) cp "$OUTPUT_FILE" "$SNAP_DIR/${PIECE_NAME}-${TIMESTAMP}-pre-review.md" ``` ### Post-review (automatic) Called by voice-review after user completes advisory decisions: ```bash cp "$REVIEWED_FILE" "$SNAP_DIR/${PIECE_NAME}-${TIMESTAMP}-post-review