Now liveThe Skillselion MCP - thousands of ranked skills, loaded into your agent mid-task. No install.Get it →
athola avatar

Voice Learn

  • 74 installs
  • 325 repo stars
  • Updated August 2, 2026
  • athola/claude-night-market

Learn a writer’s voice by diffing post-review versus post-edit snapshots and categorizing recurring edit patterns for future agent drafts.

About

Voice Learn is a pattern-analysis agent skill module that helps solo builders and content-heavy founders train agents on how they actually edit—not just brand adjectives. It ingests paired snapshots of text after automated review and after the writer’s manual pass, then classifies deltas across eight categories from tone softening to irreverent asides. The analysis prompt steers agents toward recurring preferences: if the same adjustment appears twice or more, it counts as a durable voice signal. Dependencies are Read and Agent tooling within the Claude Night Market stack, with a compact token budget suited for iterative content workflows. Use it when generic AI copy keeps missing your hedging, humor, or precision habits and you want procedural memory extracted from real diffs rather than one-shot style instructions.

  • 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)

Voice Learn by the numbers

  • 74 all-time installs (skills.sh)
  • Ranked #1,481 of 3,282 Productivity & Planning skills by installs in the Skillselion catalog
  • Security screen: LOW risk (skills.sh audit)
  • Data as of Aug 5, 2026 (Skillselion catalog sync)
npx skills add https://github.com/athola/claude-night-market --skill voice-learn

Add your badge

Show developers this skill is listed on Skillselion. Paste this into your README.

Listed on Skillselion
Installs74
repo stars325
Security audit3 / 3 scanners passed
Last updatedAugust 2, 2026
Repositoryathola/claude-night-market

What it does

Learn a writer’s voice by diffing post-review versus post-edit snapshots and categorizing recurring edit patterns for future agent drafts.

Files

SKILL.mdMarkdownGitHub ↗

Voice Learning Skill

Learn from user edits to improve the voice profile over time.

Method: Three-Stage Comparison

Every piece flows through three stages: 1. Pre-review: Raw generation output (before review agents) 2. Post-review: After user accepts/rejects advisory fixes 3. Post-edit: User's manually edited final version

The learning agent compares stages 2 and 3 (post-review vs post-edit) to identify patterns in what the user changed. These patterns inform register and rule updates.

Core Rules

1. Sharpen, don't add: Modify existing rules to cover new patterns. Rule bloat degrades output. 2. Tag specificity: Register-specific patterns go to registers. Universal patterns go to craft rules or agents. 3. Flag contradictions: Opposite patterns across pieces require user resolution. 4. Evidence threshold: Patterns need 3+ instances (or 1-2 matching existing accumulator entries) before becoming rules. 5. Detection surface: Structural changes increase AI detectability. Craft-level changes are neutral. Prefer craft-level updates. 6. Rule count check: Suggest consolidation if any section has 8+ rules.

Required TodoWrite Items

1. voice-learn:snapshots-loaded - All three stages read 2. voice-learn:diff-analyzed - Changes categorized 3. voice-learn:accumulator-checked - Prior patterns reviewed 4. voice-learn:proposals-generated - Updates proposed 5. voice-learn:user-approved - Changes accepted by user

Step 1: Load Snapshots

Load: @modules/snapshot-management

PROFILE_DIR="$HOME/.claude/voice-profiles/{name}"
SNAP_DIR="$PROFILE_DIR/learning/snapshots"

# Find the most recent snapshot set
# Format: {piece-name}-{timestamp}-{stage}.md

Read all three stages for the target piece.

Step 2: Diff Analysis

Load: @modules/pattern-analysis

Compare post-review vs post-edit. Categorize every change:

CategoryExample
Tone adjustmentSoftened a claim, added hedge
Voice insertionAdded parenthetical, aside, humor
Structure changeBroke paragraph, reordered
Precision editReplaced vague with specific
DeletionRemoved fluff or decoration
AdditionAdded context, example, anchor

Step 3: Check Accumulator

Read learning/accumulator.json:

{
  "patterns": [
    {
      "id": "pat-001",
      "category": "tone_adjustment",
      "description": "Softens confident claims about tool capabilities",
      "instances": [
        {"piece": "blog-post-1", "date": "2026-04-08", "diff": "..."}
      ],
      "target": "register",
      "status": "accumulating",
      "first_seen": "2026-04-08",
      "last_seen": "2026-04-08"
    }
  ],
  "staleness_threshold_days": 30
}

Match new changes against existing patterns:

  • Semantic similarity (same category + similar description)
  • If match found: merge instance, check if threshold reached
  • If no match: create new accumulator entry

Step 4: Generate Proposals

For patterns that reach threshold (3+ instances or 1-2 matching prior accumulator entries with 2+ instances):

Apply (strong evidence)

## Proposed Update

**Pattern**: {description}
**Target**: {register file or craft-rules.md}
**Evidence**: {N instances across M pieces}

| Piece | Date | Change Made |
|-------|------|-------------|
| ... | ... | ... |

**Proposed edit**:
- File: {path}
- Section: {section name}
- Current: "{current text or 'new addition'}"
- Proposed: "{new text}"

Hold (insufficient evidence)

Add to accumulator with current instances. Report:

Holding: "{pattern description}" (N instances, need 3+)

Contradictions

If a new pattern contradicts an existing accumulator entry:

Contradiction detected:
- Existing: "{accumulator pattern}"
- New: "{contradicting pattern}"
- Resolution required: user must choose

Step 5: User Approval

Present proposals to user:

Learning found N patterns ready to apply:

[1] {pattern}: {proposed change}
    Evidence: {N instances}
    [a]pply / [s]kip / [v]iew evidence?

[2] ...

Apply approved changes to the target files.

Staleness

Patterns in the accumulator expire after staleness_threshold_days (default 30). If a pattern hasn't recurred within that window, it was likely a one-off preference rather than a voice trait.

On each learning pass, prune stale entries:

# Remove patterns older than threshold with < 3 instances

Snapshot Capture

The learning system captures snapshots automatically when voice-review completes. Snapshot naming:

{piece-filename}-{YYYYMMDD-HHMMSS}-pre-review.md
{piece-filename}-{YYYYMMDD-HHMMSS}-post-review.md
{piece-filename}-{YYYYMMDD-HHMMSS}-post-edit.md

The post-edit snapshot is captured when the user runs /voice-learn after finishing their manual edits.

Exit Criteria

  • Snapshots loaded and compared
  • Changes categorized
  • Accumulator checked and updated
  • Proposals generated for threshold patterns
  • User approved/rejected proposals
  • Approved changes applied to profile files
  • Stale accumulator entries pruned

Related skills

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.

Productivity & Planningcontentlifecycle

This week in AI coding

Five minutes, every Monday - the tools, releases and tactics for developers.

unsubscribe anytime.