Skill v1.0.1
currentAutomated scan100/100+1 new
version: "1.0.1" 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
Style Learning Skill
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.
When NOT To Use
- Extracting a person's voice from their samples (use
scribe:voice-extract)
- Reviewing text against a profile (use
scribe:voice-review)
Approach: Feature Extraction and Exemplar Reference
The skill combines two methods because each fails alone:
- Feature Extraction: quantifiable metrics (sentence
length distribution, vocabulary complexity, structural patterns). Reproducible but soulless.
- 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.
Required TodoWrite Items
style-learner:exemplar-collected- Source texts gatheredstyle-learner:features-extracted- Quantitative metrics computedstyle-learner:exemplars-selected- Representative passages identifiedstyle-learner:profile-generated- Style guide createdstyle-learner:validation-complete- Profile tested against new content
Step 1: Collect Exemplar Text
Gather representative samples of the target style.
Minimum requirements:
- At least 1000 words of exemplar text
- Multiple samples preferred (shows consistency)
- Same genre/context as target output
## Exemplar Sources| Source | Word Count | Type ||--------|------------|------|| README.md | 850 | Technical || blog-post-1.md | 1200 | Narrative || api-guide.md | 2100 | Reference |
Step 2: Feature Extraction
Load: @modules/feature-extraction.md
Vocabulary Metrics
| 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 |
Sentence Metrics
| 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 |
Structural Metrics
| 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 |
Punctuation Profile
| 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 |
Step 3: Exemplar Selection
Load: @modules/exemplar-reference.md
Select 3-5 passages (50-150 words each) that best represent the target style.
Selection criteria:
- Demonstrates characteristic sentence rhythm
- Shows typical vocabulary choices
- Represents the desired tone
- Avoids atypical or exceptional passages
Exemplar Template
### Exemplar 1: [Label]**Source**: [filename, lines X-Y]**Demonstrates**: [what aspect of style]> [Quoted passage]**Key characteristics**:-[Observation 1]-[Observation 2]
Step 4: Generate Style Profile
Combine extracted features and exemplars into a usable style guide.
Profile Format
# 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.Xjargon_level: [none/light/moderate/heavy]contractions: [avoid/occasional/frequent]preferred_terms:- "use" over "utilize"- "help" over "facilitate"avoided_terms:- delve- leverage- comprehensivesentences:average_length: XX wordslength_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]
Step 5: Validation
Test the profile against new content:
- Generate sample content using the profile
- Compare metrics to extracted features
- Have user evaluate voice/tone match
- Refine profile based on feedback
Validation Checklist
- [ ] Metrics within 20% of exemplar averages
- [ ] No anti-pattern violations
- [ ] Tone matches user expectation
- [ ] Vocabulary aligns with exemplars
- [ ] Structure follows profile guidelines
Usage in Generation
When generating new content, reference the profile:
Generate [content type] following the style profile:-Voice: [from profile]-Sentence length: target ~[X] words, vary between [Y-Z]-Use exemplar passage as tone reference:> [exemplar quote]-Avoid: [anti-patterns from profile]
Module Reference
- See
modules/style-application.mdfor applying learned styles to new content
Integration with slop-detector
After generating content, run slop-detector to verify:
- No AI markers introduced
- Style metrics match profile
- Anti-patterns avoided
Exit Criteria
- Style profile document created
- At least 3 exemplar passages included
- Quantitative metrics extracted
- Anti-patterns from slop-detector integrated
- Validation test passed