better-writing
Better writing
Build prose that is clear, specific, well-shaped, and alive on the page.
What this extends
This skill starts from the enduring core of William Strunk Jr.'s The Elements of Style: active voice, positive form, specific language, disciplined paragraphs, and omitted excess.
It does not stop there.
better-writing adds:
- staged revision passes instead of one undifferentiated "polish" step
- cadence repair so clarity does not collapse into clipped prose
- diction and structure checks for canned, ceremonial, or generic writing
- style bundles for technical guides, operator analysis, reported writing, essays, memos, and copy
- genre routing so the opening, middle, and ending match the deliverable
Decision tree
What kind of help does the draft need?
-
You want first principles or a modernized Strunk baseline Read
references/foundations.md. -
The draft is messy, bloated, or unclear and you need the right pass order Read
references/revision-pass-stack.md. -
The draft is clear enough but sounds stiff, bloodless, too formal, or rhythmically flat Read
references/voice-and-rhythm.mdandreferences/genericity-and-stiffness.md. -
You know the deliverable but not the right shape Read
references/genre-modes.md. -
The prose needs a deliberate voice family or publication-adjacent calibration Read
references/style-bundles.md. -
The edit keeps getting worse with each pass Read
references/gotchas.md.
Quick reference
| Situation | Open / run | Why |
|---|---|---|
| Need the shortest operating contract | references/revision-pass-stack.md |
pass order, stop conditions, and read-aloud tests |
| Need the classic rules plus modern corrections | references/foundations.md |
Strunk core, updated for modern prose |
| Draft feels generic, ceremonial, or over-signposted | references/genericity-and-stiffness.md |
cut canned scaffolds and false gravity |
| Draft feels clenched after editing | references/voice-and-rhythm.md |
restore motion, emphasis, and voice |
| Need the right structure for a guide, memo, essay, or landing page | references/genre-modes.md |
choose the page shape before line editing |
| Need a stronger mode for technical, editorial, operator, essay, or copy work | references/style-bundles.md |
borrow discipline, not imitation |
| Need a quick routing hint from the terminal | python3 scripts/probe_better_writing.py --prompt "..." |
surfaces the smallest relevant reference set |
Default operating mode
Use this order unless there is a strong reason not to.
- Diagnose the actual failure mode.
- Fix paragraph architecture before sentence polish.
- Tighten sentences without draining cadence.
- Remove canned phrasing, false suspense, and generic abstractions.
- Calibrate the piece to its genre and style family.
- Read aloud and stop once the prose is clear, specific, and owned.
Constitutional rules
1. Clarity before flair
Do not reach for personality, prestige, or brand tone until the reader can follow the sentence on first read.
2. Structure before synonyms
Weak prose usually fails because the paragraph job, sentence motion, or emphasis pattern is wrong. Swapping words around will not save it.
3. Cadence matters
A clear sentence can still sound dead. Good revision keeps connective tissue, contrast, and some asymmetry in sentence length.
4. Specificity beats force
If a sentence sounds important only because it announces its own importance, rewrite it with a sharper noun, verb, number, or consequence.
5. Voice is earned, not sprayed on
Do not fake humanity with random slang, empty contractions, forced jokes, or borrowed publication tics.
6. Genre decides the page
A memo, essay, guide, landing page, report, README, and newsletter do not open or close the same way. Pick the shape on purpose.
Style families at a glance
| Family | Use when | Read |
|---|---|---|
| Technical teacher | explain systems, tools, docs, runbooks, and field guides | references/style-bundles.md |
| Operator analyst | write memos, professional deep dives, work analysis, or executive explainers | references/style-bundles.md |
| Reported editorial | write journalism-adjacent analysis, impact pieces, or market reporting | references/style-bundles.md |
| Essay and reflection | write personal, braided, reported-personal, or reflective pieces | references/style-bundles.md |
| Conversion copy | write landing pages, pricing pages, product pages, and CTA-heavy prose | references/style-bundles.md |
Templates
-
templates/rewrite-worksheet.mdUse when you want a deliberate multi-pass edit log instead of vague "cleanup." -
templates/personal-style-sheet.mdUse when the writing needs to sound more like one identifiable person and less like a competent average.
Gotchas
- If you compress every sentence, the prose will read like a cleaned transcript instead of finished writing.
- If you fix stiffness by adding drama, you will trade one weakness for another.
- If you borrow one writer's surface tics without their discipline, the draft will sound imitative rather than strong.
- If you choose style before structure, the piece will feel dressed up rather than well built.
- If the opening still does not earn the next paragraph, keep editing the opening. Do not escape into later sections.
Reading guide
| Need | Read |
|---|---|
| The enduring rules and where they still hold | references/foundations.md |
| Triage, pass order, and stop conditions | references/revision-pass-stack.md |
| Cadence, emphasis, hedging, and read-aloud repair | references/voice-and-rhythm.md |
| Cutting genericity, false drama, and corporate sludge | references/genericity-and-stiffness.md |
| Choosing and blending style families | references/style-bundles.md |
| Choosing the right shape for the deliverable | references/genre-modes.md |
| Failure modes and recovery | references/gotchas.md |
More from jpcaparas/skills
markdown-new
Use markdown.new when the user explicitly wants markdown.new, Cloudflare Markdown for Agents, URL-to-Markdown conversion, file-to-Markdown conversion, crawl-to-Markdown, or the hosted markdown.new editor. Trigger on: 'markdown.new', 'convert this URL to markdown', 'crawl this docs site into markdown', 'file to markdown', 'upload this PDF to markdown', 'markdown.new API', or 'markdown editor'. Do NOT trigger for generic web search/scraping when another tool is enough, or for editing local Markdown without using the markdown.new service.
32skill-creator-advanced
Advanced skill creator for mission-critical, installable skills — API wrappers, progressively-disclosed technical documentation, CLI tool integrations, and complex multi-reference skills. Use when creating or improving skills that demand rigorous progressive disclosure, verified examples, tested operations, cross-harness compatibility, smart placement into the right repo-local or global skills directory, and self-improvement feedback loops. Triggers on: 'advanced skill', 'create API skill', 'create wrapper skill', 'production skill', 'installable skill', 'improve this skill for progressive disclosure', 'rigorous skill', 'mission-critical skill', or when skill-creator's output needs to be more thorough. Also use when upgrading an existing skill to production quality.
32azure-devops-wiki-markdown
Use when writing, fixing, or reviewing Azure DevOps wiki Markdown, Mermaid diagrams, `_TOC_` and `_TOSP_`, collapsible `<details>` blocks, query-table embeds, `@` mentions, work-item links, KaTeX math, HTML video embeds, code fences, or Azure DevOps surface-specific support differences across Wiki, PR, README, Widget, and Done fields. Triggers on Azure DevOps wiki, markdown guidance, Mermaid sequence/graph/timeline/ER diagrams, proposal decision trees, table-of-subpages, query-table, code fence aliases, line-break bugs, and wiki page formatting. Do NOT use for GitHub-only Markdown, generic Mermaid authoring outside Azure DevOps, or non-Azure documentation platforms.
29ripgrep
Prefer ripgrep (`rg`) for text search, recursive codebase search, ignore-aware grep replacement, filename discovery via `rg --files`, and machine-readable search output. Use when the user asks to search for text, find occurrences, inspect a large tree, locate files by name or pattern, or when `grep`, `grep -R`, `find | grep`, or manual file reads would be slower. Triggers on: 'search for', 'find occurrences', 'grep', 'grep -R', 'ripgrep', 'rg', 'find files', 'look for pattern'. Do NOT trigger for reading entire files, structured JSON queries better handled by `jq`, or filesystem metadata tasks that need `find` or `fd`.
29synthetic-search
Use this skill when the user explicitly wants Synthetic Search, the Synthetic API, `api.synthetic.new`, `SYNTHETIC_API_KEY`, or zero-data-retention web search with raw `curl`/`jq` examples. It covers live-verified search requests, quota checks, and a zero-dependency Node helper for readable output. Triggers on: 'Synthetic Search', 'Synthetic API', 'api.synthetic.new', 'SYNTHETIC_API_KEY', 'Synthetic quotas'. Do NOT trigger for general browser automation, full-site crawling, or unrelated search providers.
29tweet-replicate
Rebuild a public X/Twitter status into a deterministic local replica with a frozen snapshot, local HTML/CSS, Playwright capture, X-like media-frame fill behavior, a high-quality MP4 master, and a companion GIF capped under 24 MB. Use when asked to replicate a tweet/X post, freeze a status into video, make a tweet look like X offline, or create rerenderable tweet assets with a saved build folder. Trigger on: 'replicate this tweet', 'turn this X post into MP4', 'make this tweet into a GIF too', 'freeze this status locally'. Do NOT use for plain tweet text extraction, raw media download only, live X browser capture, authenticated pages, DMs, or promises of a pixel-perfect private X renderer.
29