claude-code-plugin-ref…
Explain plugin, skill, command, agent, and hook mechanics used here. Use when authoring or…
Extracts writing style patterns from exemplar text into a reusable profile. Use when creating a style guide or learning a specific author's voice.
$ npx -y skills add athola/claude-night-market --skill style-learner --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
/style-learnerContext preview
The summary Claude sees to decide when to auto-load this skill.
Extracts writing style patterns from exemplar text into a reusable profile. Use when creating a style guide or learning a specific author's voice.
name: style-learner description: Extracts writing style patterns from exemplar text into a reusable profile. Use when creating a style guide or learning a specific author's voice. globs: "**/*.md" alwaysApply: false category: writing-quality tags: - style - voice - tone - exemplar - learning - consistency tools: [] complexity: medium model_hint: standard estimated_tokens: 1800 progressive_loading: true modules: - modules/feature-extraction.md - modules/exemplar-reference.md - modules/style-application.md dependencies: - scribe:slop-detector
**A style profile is metrics plus exemplars. Either alone is too weak to reproduce a voice.**
Extract style from exemplar text and codify it as a profile that downstream skills (`scribe:doc-generator`, `scribe:voice-generate`) can apply consistently.
`scribe:voice-extract`)
The skill combines two methods because each fails alone:
1. **Feature Extraction**: quantifiable metrics (sentence length distribution, vocabulary complexity, structural patterns). Reproducible but soulless. 2. **Exemplar Reference**: specific passages that demonstrate the target style. Vivid but hard to apply at scale.
Together they form a profile precise enough to score new text and rich enough to guide rewrites. Metrics catch what exemplars miss. Exemplars carry what metrics flatten.
1. `style-learner:exemplar-collected` - Source texts gathered 2. `style-learner:features-extracted` - Quantitative metrics computed 3. `style-learner:exemplars-selected` - Representative passages identified 4. `style-learner:profile-generated` - Style guide created 5. `style-learner:validation-complete` - Profile tested against new content
Gather representative samples of the target style.
**Minimum requirements**:
## Exemplar Sources | Source | Word Count | Type | |--------|------------|------| | README.md | 850 | Technical | | blog-post-1.md | 1200 | Narrative | | api-guide.md | 2100 | Reference |
Load: `@modules/feature-extraction.md`
| Metric | How to Measure | What It Indicates | |--------|----------------|-------------------| | Average word length | chars/word | Complexity level | | Unique word ratio | unique/total | Vocabulary breadth | | Jargon density | technical terms/100 words | Audience level | | Contraction rate | contractions/sentences | Formality |
| Metric | How to Measure | What It Indicates | |--------|----------------|-------------------| | Average length | words/sentence | Complexity | | Length variance | std dev of lengths | Natural variation | | Question frequency | questions/100 sentences | Engagement style | | Fragment usage | fragments/100 sentences | Stylistic punch |
| Metric | How to Measure | What It Indicates | |--------|----------------|-------------------| | Paragraph length | sentences/paragraph | Density | | List ratio | bullet lines/total lines | Format preference | | Header depth | max header level | Organization style | | Code block frequency | code blocks/1000 words | Technical density |
| Metric | Normal Range | Style Indicator | |--------|--------------|-----------------| | Em dash rate | 0-3/1000 words | Parenthetical style | | Semicolon rate | 0-2/1000 words | Formal complexity | | Exclamation rate | 0-1/1000 words | Enthusiasm level | | Ellipsis rate | 0-1/1000 words | Trailing thought style |
Load: `@modules/exemplar-reference.md`
Select 3-5 passages (50-150 words each) that best represent the target style.
**Selection criteria**:
### Exemplar 1: [Label] **Source**: [filename, lines X-Y] **Demonstrates**: [what aspect of style] > [Quoted passage] **Key characteristics**: - [Observation 1] - [Observation 2]
Combine extracted features and exemplars into a usable style guide.
# Style Profile: [Name]
# Generated: [Date]
# Exemplar sources: [List]
voice:
tone: [professional/casual/academic/conversational]
perspective: [first-person/third-person/second-person]
formality: [formal/neutral/informal]
vocabulary:
average_word_length: X.X
jargon_level: [none/light/moderate/heavy]
contractions: [avoid/occasional/frequent]
preferred_terms:
- "use" over "utilize"
- "help" over "facilitate"
avoided_terms:
- delve
- leverage
- comprehensive
sentences:
average_length: XX words
length_variance: [low/medium/high]
fragments_allowed: [yes/no/sparingly]
questions_used: [yes/no/sparingly]
structure:
paragraphs: [short/medium/long] (X-Y sentences)
lists: [prefer prose/balanced/prefer lists]
headers: [descriptive/terse/question-style]
punctuation:
em_dashes: [avoid/sparingly/freely]
semicolons: [avoid/sparingly/freely]
oxford_comma: [yes/no]
exemplars:
- label: "[Exemplar 1 label]"
text: |
[Quoted passage]
- label: "[Exemplar 2 label]"
text: |
[Quoted passage]
anti_patterns:
- [Pattern to avoid 1]
- [Pattern to avoid 2]Test the profile against new content:
1. Generate sample content using the profile 2. Compare metrics to extracted features 3. Have user evaluate voice/tone match 4. Refine profile based on feedback
A plugin marketplace for Claude Code. Install only the plugins you need to run git workflows, code review, spec-driven development, and autonomous agents from inside your Claude Code session.
Explain plugin, skill, command, agent, and hook mechanics used here. Use when authoring or…
States load-bearing decisions, invariants, and weak points. Use when judging a design change.…
Rebuild the dev environment: uv, Python tiers, pins, traps. Use when onboarding or toolchain…
Classify, gate, and review changes. Use when landing a PR, releasing, or amending rules. Do…
Search and record project memory (Discussions, journal, ADRs). Use before re-investigating…
Bind loop 'done' to unfakeable gates. Use to harden egregore/herald loops or promote…