| name | voice-learn |
| description | Improves a voice profile by learning from manual edits. Use after editing generated text to refine registers and close voice drift over time. |
| globs | **/*.{md,txt} |
| alwaysApply | false |
| category | writing-quality |
| tags | ["voice","learning","improvement","feedback","iteration"] |
| tools | [] |
| complexity | high |
| model_hint | opus |
| estimated_tokens | 2000 |
| progressive_loading | true |
| modules | ["modules/snapshot-management.md","modules/pattern-analysis.md"] |
| dependencies | ["scribe:voice-extract","scribe:voice-generate","scribe:voice-review"] |
Voice Learning Skill
Learn from user edits to improve the voice profile over time.
When NOT To Use
- Building the first profile (use
scribe:voice-extract)
- Reviewing text without changing the profile (use
scribe:voice-review)
Method: Three-Stage Comparison
Every piece flows through three stages:
- Pre-review: Raw generation output (before review agents)
- Post-review: After user accepts/rejects advisory fixes
- 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
- Sharpen, don't add: Modify existing rules to cover new
patterns. Rule bloat degrades output.
- Tag specificity: Register-specific patterns go to
registers. Universal patterns go to craft rules or agents.
- Flag contradictions: Opposite patterns across pieces
require user resolution.
- Evidence threshold: Patterns need 3+ instances (or 1-2
matching existing accumulator entries) before becoming rules.
- Detection surface: Structural changes increase AI
detectability. Craft-level changes are neutral. Prefer
craft-level updates.
- Rule count check: Suggest consolidation if any section
has 8+ rules.
Required TodoWrite Items
voice-learn:snapshots-loaded - All three stages read
voice-learn:diff-analyzed - Changes categorized
voice-learn:accumulator-checked - Prior patterns reviewed
voice-learn:proposals-generated - Updates proposed
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"