Install
openclaw skills install @joshuagoode/plain-writingClear prose without AI-shaped writing
openclaw skills install @joshuagoode/plain-writingWrite for the reader. Prefer clear structure and direct language. Protect supported meaning, not the source's clutter.
Identify the operation, audience, purpose, genre, language mode, and required terms. For an edit, separate the source into two groups.
Protect:
Question, narrow, or cut:
“The fix will help” lacks support without evidence. Remove it or match the source's certainty. A proposal to add something does not prove its absence.
Keep protected clauses as anchors until a paraphrase preserves their actor, scope, negation, certainty, attribution, and force. Keep repeated content once.
Do not invent substance, relationships, sequence, or consensus. Do not merge separate evidence into a new conclusion or add a channel, timing, or mechanism. Ask for an essential missing fact when possible. Otherwise, stay within the source.
When inputs conflict, use this order:
Return finished prose for a draft or edit, not a critique, template, or report. For an audit, name observable problems and the smallest useful fixes. Do not guess who wrote the text.
Choose one language mode. Default to technical:
strict: Procedures, safety text, runbooks, UI text, errors, and exact
instructions. Use sentences of 20 words or fewer. Do not use contractions
or semicolons. Use commands only for confirmed steps and instructions.
Keep proposals, options, and unapproved ideas non-imperative. Meet the
sentence limit with prose, not extra bullets.technical: Technical, product, business, and workplace prose. Treat 25
words as a review signal. Permit contractions and sentence variety when
they preserve a natural voice.natural: Essays, thought pieces, creative copy, and loose long-form prose.
Use only on explicit request. Review sentences over 40 words. Permit
purposeful fragments, passive voice, semicolons, phrasal verbs, metaphor,
digressions, and uneven cadence.All modes must remove AI-shaped wording, rhythm, formatting, and whole-piece structure. Mode changes syntax constraints only. It does not authorize compression or reinterpretation of protected content.
Before drafting, editing, or auditing prose, read:
references/ai-patterns.mdreferences/eval.mdPreserve exact templates and regulated structure when the task requires them. Do not change modes to make lint easier.
Preserve code, commands, identifiers, product names, required terms, legal text, and quotations.
Before rewriting, note preferred words, cadence, formality, useful roughness, and lines worth keeping. For reports, also note first-person use, audience knowledge, and how much explanation the source needs.
Replace an AI-shaped outline. Merge generic headings, delete recaps, turn unnecessary bullets into prose, and break forced symmetry. Keep headings for navigation and lists for parallel or scanned items. Compression, deduplication, and fewer headings are not fidelity failures. Do not replace source labels one-for-one with polished Markdown headings. A short piece rarely needs multiple headings.
Delete narration that announces or abstracts evidence. Do not recap concrete detail with abstract impact or evidence summaries. Keep necessary attribution, uncertainty, and inference. State repeated evidence once, at the most useful level of detail.
For an edit, add structural units only when navigation, a parallel scan task,
safety, or a real procedure requires them. Sentence limits do not justify more
structural units. Confirm this with score_delta.py.
Do not sand every sentence into the same polished rhythm. Keep useful specificity and variation. Zero lint warnings are not the goal.
references/eval.md before linting.<skill-dir> as this file's directory. Run:python3 <skill-dir>/scripts/lint_prose.py --mode technical /path/to/draft.md
Use strict or natural when that mode applies. Use --format json for
machine-readable results.
For a source-aware diagnostic, run:
python3 <skill-dir>/scripts/score_delta.py before.md after.md
Pass every required exact name, value, identifier, and term from the ledger as
--protected-token TOKEN. Add --protected-count only when repetition count
is itself meaningful. Use --fail-on-structural-expansion only when the task
forbids more structural units.
Structural and lint deltas are review evidence. They do not judge truth,
completeness, authorship, or quality.
If tools are unavailable, perform both reviews by hand. Never claim that a script ran when it did not run.
Finish only when the result:
Formal controlled-language or regulated work needs its governing standard, approved terminology, domain rules, and qualified human review. This skill and linter do not certify conformance with an external standard.