CtrlK
BlogDocsLog inGet started
Tessl Logo
PluginPublic

ikuzuki/technical-prose-editor

Draft and edit long-form technical writing - blog posts, engineering write-ups, externally published design docs and ADRs, substantial PR descriptions, long LinkedIn or Substack pieces - so it reads like a senior engineer wrote it rather than a model. Removes AI cadence (em-dashes, "X isn't Y. It's Z." pivots, numbered framing, rule-of-three symmetry, closing synthesis, weakening hedges) and replaces it with patterns drawn from working technical writers (Dan Luu, Marc Brooker, Julia Evans, Simon Willison, Patrick McKenzie, Will Larson, Rachel Kroll, Aphyr). Use when the user asks to "draft a blog post", "write up X", "edit this post", "review my draft", "make this less AI", "fix the AI cadence", "this sounds like ChatGPT", "de-slop this", or shares a long-form technical draft and asks for feedback. Not for short chat messages, code comments or marketing copy.

88

1.24x
Quality

94%

Does it follow best practices?

Impact

97%

1.24x

2 of 3 eval scenarios. Add 1 more for a full score.

SecuritybySnyk

Passed

No findings from the security scan

Overview
Quality
Evals
Security
Files

SKILL.md

name:
technical-prose-editor
description:
Draft and edit long-form technical writing - blog posts, engineering write-ups, externally published design docs and ADRs, substantial PR descriptions, long LinkedIn or Substack pieces - so it reads like a senior engineer wrote it rather than a model. Removes AI cadence (em-dashes, "X isn't Y. It's Z." pivots, numbered framing, rule-of-three symmetry, closing synthesis, weakening hedges) and replaces it with patterns drawn from working technical writers (Dan Luu, Marc Brooker, Julia Evans, Simon Willison, Patrick McKenzie, Will Larson, Rachel Kroll, Aphyr). Use when the user asks to "draft a blog post", "write up X", "edit this post", "review my draft", "make this less AI", "fix the AI cadence", "this sounds like ChatGPT", "de-slop this", or shares a long-form technical draft and asks for feedback. Not for short chat messages, code comments or marketing copy.

Technical prose editor

Long-form technical writing for an external audience: senior engineers, researchers, practitioners. They read a lot, distrust marketing prose, and recognise AI-generated cadence within two paragraphs.

The goal is a piece that reads as something the author actually thought about, in language the author actually uses, with the rhythm of someone who has written more than a few of these.

Read first

  1. references/exemplar-annotated.md: one before-and-after passage, annotated for how each pattern lands. The highest-signal calibration in the skill.
  2. The author's own writing, if they have any: two or three earlier posts or drafts, read for register rather than as templates. If none are available and you are drafting from scratch, ask for one sample before starting; editing an existing draft needs no extra sample.
  3. references/shapes.md when picking the structural shape for a post.
  4. references/writers.md when you need to argue from a specific writer's move.

Voice in one paragraph

Plain, specific, opinionated. Concrete numbers and named tools over generic adjectives. Hedge by framing ("in my view", "I've found"), not by weakening the claim itself ("might perhaps potentially"). Vary sentence length deliberately. A short sentence after three long ones lands. Open conversationally, never with a hook. Close by stopping, never with "the takeaway is". Comfortable with parenthetical asides (in real parentheses) for context, self-correction or dry humour. No em-dashes: the typographic em-dash is one of the strongest AI tells.

Patterns to reach for

Open conversationally, not with a hook. Senior writers open with an observation, a small piece of context, or a quiet declaration. "In March I wrote an ADR rejecting our agent framework..." lands. "Choosing a framework is one of the highest-leverage decisions an engineer makes" does not.

Hedge by framing, not by weakening. The single biggest tell. State the claim flatly and put the epistemic status on the frame. "In my view, Lambda memory is the wrong place to look for cost savings" beats "Lambda memory might potentially not be the right place to look". Reach for "in my view", "I've found", "I think", "as far as I can tell". Avoid "might", "could potentially", "may be worth considering".

Vary sentence length deliberately. Models write uniform sentences. If every sentence in a paragraph is 15 to 25 words, rewrite one to be five and one to be thirty.

Parenthetical asides as thinking aloud. For context, qualifier, self-correction or humour. Real parentheses, not dashes.

Specific numbers over generic adjectives. "The pipeline is cheap" is model prose. "The pipeline costs £1.50 to £3.00 a week, 95% of it the LLM API" is senior prose. When you reach for "significant", "substantial" or "very", find the number. If the author has not given one, ask or leave a visible [number?] placeholder; never invent one.

Footnotes for tangents. At the third tangent in a paragraph, not the first.

Links woven inline. "I wrote about this in the earlier post", not a citation appended at the end.

Anticipate the obvious objection. One short paragraph, then move on.

Close by stopping. Cut "the takeaway is", "in summary", "to recap". Let the second-to-last paragraph carry the post.

Show the seams. "I don't know why this works, but it does." "I changed my mind on this after three months." Admitted uncertainty is credibility; models smooth every seam.

Pick a shape, don't default

The commonest structural tell is uniformity: hook, three-to-five H2 sections, synthesis paragraph. Pick a shape per post deliberately: war story, argument essay, practical guide, confession or investigation. See references/shapes.md. Default towards war story or confession; the argument essay is the model default and should be rationed.

Anti-patterns: the AI tells

Fix each on sight.

  • Em-dashes. Zero — (U+2014) and zero – (U+2013). Replace with commas, semicolons, parentheses or sentence breaks. A spaced hyphen - is allowed sparingly, at most once per 500 words. Ranges as "£1.50 to £3.00", not "£1.50–£3.00".
  • "X isn't Y. It's Z." dramatic pivot. Also "Less X. More Y." and "Not X. Y." Rewrite as one flat sentence stating Z, or one sentence with the contrast inline ("Z, rather than X").
  • Numbered framing. "Three things upfront." "Two things, in order." "First, ... Second, ... Third, ..." as paragraph openers.
  • Pivot phrases. "The interesting bit is...", "The lesson is...", "The takeaway is...".
  • Meta-framing. "Stepping back", "Zooming out", "At a high level".
  • Symmetric structure and equal paragraph lengths. Some paragraphs should be one sentence, some twelve lines.
  • Rule of three everywhere. Use two, four or seven when those are honest.
  • Closing synthesis paragraph. Cut it.
  • Throat-clearing. "It's worth noting that...", "It bears mentioning that...".
  • Universal applicability claims. "More generally...", "This pattern applies broadly...". Stay in the specific story.
  • Corporate-speak. "Leverage", "circle back", "synergy", "best-in-class".

Respect the author

  • Keep the author's spelling variant (British or American); sweep for slips, never convert.
  • Keep their facts, numbers, opinions and technical claims. Edit cadence and structure, not substance. If a claim looks wrong, flag it in a note rather than silently changing it.
  • Keep the length roughly the same unless asked to cut. The lift is in rhythm and structure.
  • Assume the audience knows common acronyms in the post's field; expand only the ones an outside reader would not know.

Workflow when editing a draft

  1. Structural read first: paragraph lengths, opener cadence, dash count, framing labels, pivot count. Most of the problem lives between the sentences.
  2. Name the shape the post should be, in one line, and say if the current structure fights it.
  3. Rewrite the opening first. If it still smells of a model, the rest will fight you.
  4. Edit the body, then run the self-check below.
  5. Return the edited draft, then a short list of what changed and why (one line each, the biggest changes only), then any flagged facts or [number?] placeholders.

Self-check before returning

Structure

  • Shape picked and named.
  • Paragraph lengths vary: at least one one-sentence paragraph, at least one over six lines in a post of 800+ words.
  • No closing synthesis paragraph. No numbered or symmetric H2s.

Voice

  • Opening is conversational, not a hook.
  • Zero "might potentially" / "could perhaps" weakening hedges.
  • At least one sentence under 8 words per ~300 words.
  • Zero — and zero –. Spaced hyphen at most once per 500 words.
  • Zero "X isn't Y. It's Z." two-sentence pivots.
  • Zero "stepping back", "zooming out", "the interesting bit is", "the takeaway is", "it's worth noting".
  • Zero corporate-speak.
  • Links inline. Author's spelling variant intact.

Substance

  • No fact, number or claim added that was not in the source or given by the author.
  • Closes by stopping, not summarising.

If three or more checks fail, rewrite before returning.

SKILL.md

tile.json