Nm Scribe Style Learner

v1.0.0

Learn and extract writing style patterns from exemplar text for consistent

0· 5·0 current·0 all-time
Security Scan
VirusTotalVirusTotal
Benign
View report →
OpenClawOpenClaw
Benign
high confidence
Purpose & Capability
Name/description (style learner) align with requested artifacts and instructions: extracting quantitative text features, selecting exemplars, generating a profile, and validating outputs. The declared config dependencies (night-market.scribe:shared, night-market.scribe:slop-detector) are consistent with a style-analysis workflow.
Instruction Scope
The SKILL.md contains concrete shell and Python snippets (awk, grep, Python sentence analysis) that operate on local text files (e.g., file.md, README.md, .scribe/style-profile.yaml). This is expected for a style-extraction tool, but it means the skill will read whatever exemplar files the agent is directed to process — including any sensitive content if provided. There are no instructions to transmit data to external endpoints, but the skill references integration points (slop-detector, doc-generator, pre-commit) which should be reviewed separately.
Install Mechanism
Instruction-only skill with no install spec and no downloads. Nothing is written to disk by the skill package itself (risk level is low).
Credentials
No environment variables or secret credentials are requested. The two required config paths correspond to style/shared and slop-detector components and are proportionate to the stated functionality.
Persistence & Privilege
always:false and no indication of modifying other skills or global agent settings. The skill suggests integrating with tools like pre-commit but does not request permanent privileged presence.
Assessment
This skill appears to do what it says: analyze exemplar text and produce a style profile. Before using it, (1) ensure any exemplar files you provide do not contain secrets or private data since the included shell/Python snippets will read the files you point them at; (2) review any integration components it references (slop-detector, doc-generator, pre-commit hooks) before connecting them to your toolchain; (3) run the analysis in a controlled environment (or on sanitized copies of documents) if you have sensitive content; and (4) if you plan to enable automatic agent invocation, be mindful that the agent could read files the skill is asked to analyze — limit its scope and inputs accordingly.

Like a lobster shell, security has layers — review code before you run it.

Runtime requirements

✍️ Clawdis
Confignight-market.scribe:shared, night-market.scribe:slop-detector
latestvk9785qzbmfbp3a116d1qqb7b8s856jb8
5downloads
0stars
1versions
Updated 3h ago
v1.0.0
MIT-0

Night Market Skill — ported from claude-night-market/scribe. For the full experience with agents, hooks, and commands, install the Claude Code plugin.

Style Learning Skill

Extract and codify writing style from exemplar text for consistent application.

Approach: Feature Extraction + Exemplar Reference

This skill combines two complementary methods:

  1. Feature Extraction: Quantifiable style metrics (sentence length, vocabulary complexity, structural patterns)
  2. Exemplar Reference: Specific passages that demonstrate desired style

Together, these create a comprehensive style profile that can guide content generation and editing.

Required TodoWrite Items

  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

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

MetricHow to MeasureWhat It Indicates
Average word lengthchars/wordComplexity level
Unique word ratiounique/totalVocabulary breadth
Jargon densitytechnical terms/100 wordsAudience level
Contraction ratecontractions/sentencesFormality

Sentence Metrics

MetricHow to MeasureWhat It Indicates
Average lengthwords/sentenceComplexity
Length variancestd dev of lengthsNatural variation
Question frequencyquestions/100 sentencesEngagement style
Fragment usagefragments/100 sentencesStylistic punch

Structural Metrics

MetricHow to MeasureWhat It Indicates
Paragraph lengthsentences/paragraphDensity
List ratiobullet lines/total linesFormat preference
Header depthmax header levelOrganization style
Code block frequencycode blocks/1000 wordsTechnical density

Punctuation Profile

MetricNormal RangeStyle Indicator
Em dash rate0-3/1000 wordsParenthetical style
Semicolon rate0-2/1000 wordsFormal complexity
Exclamation rate0-1/1000 wordsEnthusiasm level
Ellipsis rate0-1/1000 wordsTrailing 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.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]

Step 5: Validation

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

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.md for applying learned styles to new content

Integration with slop-detector

After generating content, run slop-detector to verify:

  1. No AI markers introduced
  2. Style metrics match profile
  3. 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

Comments

Loading comments...