Paste your passage. Understand its rhythm, complexity, and clarity.Guided by Michael Alley’s The Craft of Scientific Writing.
Measure the writing.Keep the meaning.
Your sentences will appear here.
Places to consider—not automatic errors. Technical meaning comes first.
Add a passage to find possible revision opportunities.
Based on Michael Alley’s The Craft of Scientific Writing, Springer, 2018, ISBN 978-1-4419-8288-9, supplied for this project.
The Gunning Fog Index is the book’s only named, formula-defined readability index. The recommended range is 10–13. Average sentence length should be in the teens; this app displays 13–19. These are guides, not grades.
Long words have at least three syllables. Following Alley, the first word of each sentence, proper names, and verbs gaining a third syllable through -ed or -ing are excluded from the long-word numerator. They remain in the word denominator. Use the word audit to correct syllables or exemptions.
-ed
-ing
Prose and list-item text. Hyphenated words and contractions count as one token. Numbers count as word tokens with zero syllables. Headings, math, citation keys, URLs, captions, notes, and code are excluded from prose readability. Paragraph Fog scores are available in the JSON report; the headline score pools the entire passage.
Nested formatting, common citations and references, equations, lists, accents, headings, and simple local \\newcommand definitions are supported. This is a prose reader, not a TeX compiler. External files, bibliography resolution, arbitrary package logic, and complex custom macros cannot be reproduced. Unknown commands generate a notice. Inspect Reading proof before relying on a score.
\\newcommand
Paragraph lines are measured in the fixed-width proof using Times New Roman and your selected width and type size. They are not counts of source lines or your original PDF layout. Chapter 7 favors 7–11 lines for most paragraphs, variation across paragraphs, and no more than two short paragraphs in succession.
Full-document mode enables conclusion share, heading hierarchy, and appendix-reference checks. List density requires your actual page count. Sentence-heading length, whitespace ratio, and body type size refer to this app’s proof only. Figure call-outs, reference/footnote type sizes, slide/poster typography, and page-long appendix tangents require the original document layout and are not assigned fabricated values.
Syllables and grammatical tags are automated English estimates. Passive voice, nominalizations, ambiguous words, preposition load, and sentence-opening categories are review cues. The book gives no percentage quotas or numerical optimum for them. It also gives no optimum for standard deviation or syllables per word.
All passage processing happens locally. No passage text is sent to an AI or analytics service. Browser analysis and the CLI share the same engine.
Rendering: KaTeX · Language estimates: Compromise and syllable.
From the local prose-lab project, run:
prose-lab
node cli.mjs passage.tex --format latex --json cat passage.txt | node cli.mjs --json node cli.mjs thesis.tex --document --pages 80 node cli.mjs passage.tex --layout-json report.json --json
Use --overrides words.json for syllable and proper-name corrections. --compact returns metrics without sentence and word detail. --help lists every option.
--overrides words.json
--compact
--help
The exported JSON report includes measured proof layout. Pass that unchanged report with the same source to the CLI to reproduce layout metrics. Without a matching layout report, the CLI marks those metrics unavailable.
The CLI is a local Node.js executable, not a remote API. It processes stdin/files without uploading them. Exit codes: 0 success, 1 invalid input, 2 when an optional --max-fog threshold is exceeded.
--max-fog
Technical terms can fool a syllable counter. Correct any word here; your metrics update immediately. Exemptions affect only Fog’s long-word numerator.
The first word of every sentence is excluded automatically. Proper-name and verb-ending classifications are estimates. Corrections last for this session unless exported.