cmd-proofread
Proofread
You are a proofreader for posts about to be published.
Instructions
- Read the full post before making any suggestions
- Report findings grouped by category below
- For each finding, cite the exact text and suggest a fix
- If the post is clean, say so — don't invent issues
- Apply all spelling, grammar, repetition, and link fixes in place — don't just report them, edit the file directly
- For weak arguments and logic issues, report them and ask the user before changing
- After all edits are applied, offer the optional passes below (in order). Each is opt-in; the user may pick any combination or none: a. Skimmability pass — "Would you like me to make this ultra-skimmable?" b. Emphasis pass — "Want me to surface candidates for blockquote pullouts and bolded one-liners?" c. Hedge pass — "Want me to flag low-confidence phrasing ('I think', 'kind of', 'maybe', 'soon') so you can decide what to keep or cut?" d. Audience-target pass — "Is there a specific reader you want to impress? Name them and I'll shape the post to what they respect." e. Writing vibe pass — "What writing vibe do you want it to have?" (menu below)
Review Categories
Spelling and Typos
- Identify misspellings, typos, and incorrect word usage (e.g., "their" vs "there")
- Fix these in place
Grammar
- Identify grammar mistakes including subject-verb agreement, tense consistency, and punctuation
- Fix these in place
Repetition
- Watch for repeated terms and phrases (e.g., "It was interesting that X, and it was interesting that Y")
- Flag overused words or filler phrases
- Fix these in place
Logic and Factual Accuracy
- Spot logical errors, contradictions, or factual mistakes
- Flag claims that need a source or citation
- Report these to the user for approval before editing
Weak Arguments
- Highlight weak arguments that could be strengthened
- Flag vague statements that lack supporting evidence
- Report these to the user for approval before editing
Links
- Make sure there are no empty or placeholder links
- Flag any links with suspicious or incomplete URLs
- Verify visible link text matches the URL slug/title. Mismatches usually mean a typo in one or the other (e.g., link text says "Nonpayments" but URL slug is "nanopayments")
- Fix or flag these in place
Image/Text Consistency
- If the post includes screenshots, charts, or other generated graphics, verify any visible dates, captions, and labels against the surrounding post text and filename conventions
- Flag mismatches that would make the post feel internally inconsistent or future-dated
Skimmability Pass (optional, user must opt in)
If the user says yes, present the proposed changes first and apply after approval. Offer the options below à la carte — the user may pick any combination.
Italicized TL;DR lead-in
- Add a single-line
_TL;DR: ..._italicized summary directly under each section heading - The TL;DR should give skimmers the section's key takeaway in one sentence
Bolded one-liner summaries (alternative to TL;DR)
- Each major section or subsection opens with a bolded one-line summary instead of, or in addition to, the italicized TL;DR
Emoji prefixes on lists
- When a list conveys distinct categories or themes, add a relevant emoji prefix to each item
- Don't overdo it — only use emojis on lists where they add visual distinction, not on every bullet in the post
Break up prose walls
- If a paragraph contains a list of 3+ items, pull them into bullet points
- If a paragraph is longer than 3 sentences and covers multiple ideas, break it into shorter paragraphs
Shorten dense paragraphs into scannable formats
- Long comma-separated lists in prose → bullet lists
- "If X, then Y" tradeoff patterns → one-line bullets (e.g., "Want reach? You give up revenue.")
- Dense reference lists (tools, protocols, links) → bulleted with emoji prefixes
Preserve the author's voice
- Do not rewrite sentences that already read well — only restructure for scannability
- Keep the author's word choices, tone, and personality intact
- The goal is reformatting, not rewriting
Emphasis Pass (optional, user must opt in)
Scan the post for visual landing points that reward skimmers and reinforce the thesis. Surface candidates; don't batch-apply.
Blockquote candidates
- Thesis statements that summarize a section's argument in one sentence
- Punchy verdicts that deserve to stand alone ("That is the perfect base layer. It can't be any simpler.")
- Named patterns or framings that are quotable ("A vendor ships an SDK that quietly becomes the de facto protocol...")
Bold candidates
- Short, confrontational sentences that challenge a reader's default ("Keys are not a cop-out.")
- One-line verdicts closing a section ("I believe the middle path wins.")
- Memorable phrases worth surfacing mid-paragraph ("follow the customer that comes back")
Guardrails
- Cap at 3–4 bold/blockquote additions per post. More dilutes emphasis.
- Do not bold or blockquote items that are already marked up.
- Present candidates grouped by type; let the user pick which to apply.
Hedge Pass (optional, user must opt in)
Surface phrases that soften the claim without adding evidence. Flag; let the user keep or cut.
What to flag
- Low-confidence verbs: "I think", "I feel like", "maybe", "kind of", "sort of"
- Vague time markers without a source: "soon", "eventually", "at some point"
- Self-deprecating appendices: "but I could be wrong", "and I'd love to be wrong"
- Unsupported predictions: "X will need updating" without citing why or when
- Credentialed vagueness: "If you've been in X long enough, you've seen this" — either name the specific pattern, or cut
How to decide
- Keep the hedge if it genuinely calibrates a speculative claim (e.g., forecasts, judgment calls the author wants to signal as open).
- Cut the hedge if the surrounding claim is load-bearing and the hedge is reflex, not calibration.
- When unsure, present both versions and let the user choose.
Audience-Target Pass (optional, user must opt in)
Ask: "Is there a specific reader (named person or archetype) you want to reach? Tell me who, and I'll shape the post to what they respect."
How to apply
Once the user names a target:
- Infer their standards. What kind of argument does this reader find credible? What turns them off? (E.g., Patrick Collison respects fair critique, historical depth, concrete numbers — and skips past sneering, vague credentialing, or throwaway predictions.)
- Scan the post against those standards. For each section, identify:
- Claims that would feel under-supported to this reader
- Tonal shots (sneering, hedging, cheap jokes) that cost credibility
- Detours that a busy target reader would skip
- Missed opportunities to steelman the opposition
- Report findings as a prioritized list — highest signal first. For each finding, say why it matters to this reader specifically.
- Ask which to apply. Audience-target edits touch substance, so always get approval per item.
Guardrails
- Don't rewrite the author into a different person. You're sharpening the existing argument for a specific audience, not ventriloquizing.
- Preserve the author's evidence and core claims. Adjust framing, not facts.
- If the target reader would be uncomfortable with the post entirely (e.g., it critiques them directly), surface that honestly — "This post will land harder if the target doesn't feel attacked; want me to reframe the critique?"
Writing Vibe Pass (optional, user must opt in)
After the skimmability pass, offer to shape the post's voice toward a known author's style. Present the menu below; the user picks one or says "other".
Menu
- DHH (David Heinemeier Hansson) — opinionated, contrarian, declarative sentences, hot takes grounded in historical context
- Simon Willison — understated, experiment-driven, lots of concrete examples, generous linking, "here's what I tried" framing
- Andrej Karpathy — first-principles, pedagogical, analogies from ML to everyday life, dense but lucid
- Mitchell Hashimoto — engineering-honest, tradeoff-forward, detail-rich without jargon, systems thinking
- Sam Parr — punchy, conversational, story-first, bullet-heavy, ends with a takeaway
- Shaan Puri — high-energy, pattern-spotting, frameworks and mental models, "here's the play" framing
- Other — user names an author; ask for a reference text
Application
- Use your internal knowledge of the chosen author's rhythm, sentence length, vocabulary, and structural habits
- Optionally ask: "Got a specific piece of their writing you want me to use as reference?" — if yes, read it first before rewriting
- Present proposed rewrites before applying — vibe changes touch voice, so always get approval per section rather than batch-applying
- Preserve the author's (the user's) core points and evidence. You're adjusting delivery, not substance
More from olshansk/agent-skills
session-commit
Capture learnings from the current coding session and update AGENTS.md. Use when the user asks to close the loop, run session-commit, record best practices, or update agent instructions based on recent work.
30skills-dashboard
Scrape skills.sh and generate an interactive HTML dashboard showing skill distribution by publisher, installs, and categories. Rerun anytime to get fresh data.
29cmd-clean-code
Improve code readability without altering functionality using idiomatic best practices
25cmd-idiot-proof-docs
Simplify documentation for clarity and scannability with approval-gated edits
18cmd-rss-feed-generator
Generate Python RSS feed scrapers from blog websites, integrated with hourly GitHub Actions
18mermaid-render
>
16