Style Forensics
Produce an evidence-backed style fingerprint. Measure first, then interpret the numbers with examples from the supplied prose.
Boundary
Use this skill for deep analysis.
- To define a desired organizational voice, use
brand-voice. - To package an existing voice as concise reusable guidance, use
voice-dna-kit. - To draft against an existing profile, use
style-writer.
Do not infer personality, demographics, identity, or intent from prose style.
Inputs
Collect:
- One or more samples believed to come from the same author or organizational voice.
- The analysis goal and intended use.
- Relevant context such as channel, audience, date, and editing history.
- The requested output location, if the report should be saved.
State corpus limitations. A short, mixed-author, translated, or heavily AI-assisted sample cannot support a confident fingerprint.
Workflow
1. Prepare clean prose
Work from a temporary copy. Remove:
- frontmatter and metadata
- navigation and repeated boilerplate
- code blocks and inline code
- URLs while preserving meaningful link text
- headings and formatting markers
- quotations not written by the target author
Preserve paragraph boundaries. Record the final prose word count and excluded material.
2. Generate baseline measurements
Resolve analyze-style.sh relative to this file and run it against the cleaned source files.
Treat the script as a baseline, not ground truth. Validate sentence boundaries around abbreviations, decimals, initials, headings, and quotations. The bundled token categories are most useful for English prose. Adapt the tokenizer for other languages and disclose the change.
3. Measure sentence rhythm
Report:
| Metric | Required result |
|---|---|
| Sentences | Count |
| Sentence length | Mean, median, minimum, and maximum words |
| Distribution | 1 to 7, 8 to 15, 16 to 25, and 26 or more words |
| Short-sentence ratio | Percentage below 8 words |
| Rhythm | Where short and long sentences occur |
Explain clusters, alternation, punch lines, and unusually long constructions with examples.
4. Measure punctuation and paragraphs
Report counts and per-100-word rates for:
- commas
- colons
- semicolons
- em and en dashes
- exclamation marks
- question marks
- parenthetical asides
Separately identify rhetorical questions through inspection. A question mark is not proof of a rhetorical question.
Report paragraph count, average and median paragraph length, and one-sentence paragraph ratio. Exclude pure lists when they would distort prose structure.
5. Profile vocabulary and tone signals
Report:
- total and unique words
- lexical diversity, with corpus-size caveat
- long-word ratio
- optional common-function-word ratio when it helps compare similar corpora
- optional high-frequency long words when they reveal recurring technical or abstract vocabulary
- frequently repeated content words
- recurring jargon, colloquialisms, metaphors, and anchoring terms
- first-person singular, first-person plural, and second-person rates
- contractions and hedges with examples
- observable warmth, certainty, formality, and emotional intensity
Describe textual behavior, not hidden personal traits.
6. Identify signature devices
Search for:
- frequent sentence openers
- conjunction openers
- fragments and fragment stacks
- recurring launchers and landing lines
- contrast structures
- repetition and anaphora
- question clusters
- setup-and-payoff patterns
- temporal or narrative sequencing
Report absence when it is meaningful. Require at least two examples before calling a device recurring, unless the corpus is too short, in which case mark the observation provisional.
7. Describe macro-structure
Explain how samples tend to:
- open
- organize sections or paragraphs
- introduce evidence and examples
- transition
- close
For multiple samples, compare like with like before averaging metrics. Use a table such as:
| Feature | Sample or register A | Sample or register B | Stable trait, contextual dial, or outlier | Confidence and evidence |
|---|---|---|---|---|
Classify a feature as stable only when it recurs across representative samples. Treat a channel-bound pattern as a contextual dial, an isolated value as an outlier, and weak evidence as provisional.
8. Compile the report
Return:
- Sources and corpus limitations
- Cleaning and measurement notes
- Core metrics table
- Sentence distribution
- Punctuation and paragraph profile
- Vocabulary and tone signals
- Signature devices with examples
- Structural blueprint
- Cross-sample comparison with stable traits, contextual dials, and outliers when multiple samples exist
- Quick-reference metrics
- Confidence and unresolved questions
If the user requested a file, save it as <source-name>-style-dna.md or to the supplied path. Otherwise present the report without writing files.
Quality Gate
The report is ready when:
- every reported number is reproducible
- parsing errors were reviewed rather than trusted blindly
- every qualitative claim cites examples
- frequency claims distinguish counts from impressions
- sample limitations and uncertainty are explicit
- cross-sample claims distinguish stable traits, contextual dials, outliers, and provisional findings
- the report describes prose without making identity claims