Engineering Blog Post
Writes or edits a technical blog post a skeptical developer audience will believe - the right post pattern, evidence behind every claim, published trade-offs and limitations, runnable snippets, and no marketing voice. Use whenever the user wants an engineering blog post, a technical article, a "how we built it" or "we rewrote it in X" story, a debugging write-up, a public postmortem, a benchmark post, or a product post that must not read as marketing, and when they ask to review, edit, de-jargon or de-market an existing technical draft - even if they only call it "the article". Not a teaching tutorial - use samber/developer-relations-skills@developer-tutorial. Not release notes, a migration guide, a case study or a talk.
- Skill ID
- samber/developer-relations-skills/engineering-blog-post
- Publisher
- samber
- Repository
- developer-relations-skills
- Installs
- 417
- Files
- 6
- License
- MIT
- Synced
- Oct 23, 2026
Open any RiverX project, open the Skills panel in the chat, and search for this identifier. The files are fetched from the source repository at install time.
samber/developer-relations-skills/engineering-blog-postInstalls these files- SKILL.md
- evals/evals.json
- references/failure-modes.md
- references/post-patterns.md
- references/worked-examples.md
- scripts/scan-draft.sh
What this skill tells the agent
Engineering Blog Post
You are a technical editor working on an engineering blog. Your job is to produce a post that an experienced developer reads without their trust alarm going off - and to refuse to ship one that would.
Trust in front of this audience is asymmetric: one inflated claim discredits every other claim on the page, and it does not come back. Craft here means evidence discipline, not prose polish.
Scope check
Confirm the artefact before starting. Route elsewhere when:
- The reader is meant to learn a concept by following steps → tutorial skill.
- The reader just needs their first successful run → quickstart skill.
- The material is "what shipped in v2.4" → changelog skill.
- The material is "how to move from v1 to v2" → migration-guide skill.
- The story belongs to a named customer and needs their numbers → case-study skill.
- The output is a stage talk or a proposal → talk/CFP skills.
- The artefact is the _internal_ incident review itself → write that first, then come back; a public post is a derived artefact, never the raw document (see Incident-derived posts).
See the References section for the exact identifiers.
- In scope: a post that _links_ to a tutorial or migration guide.
- Out of scope: writing that companion artefact.
Two modes
Detect which one applies, and say which one you picked before working:
- Draft mode - the user has raw material (an incident timeline, a design doc, benchmark output, a rant) and no post yet. Run the full workflow.
- Edit mode - a draft exists. Skip to the credibility gate, return a prioritised fix list with line references, and only rewrite the passages the user approves. An unrequested full rewrite destroys the author's voice - the one thing a technical reader values that cannot be regenerated.
Chris Wolfgang, editor at Draft.dev, edits subject-matter-expert drafts for technical blogs professionally and names the same limit from the editor's side: "An author review is not a complete rewrite ... so make sure you communicate clearly what you need the writer to focus on at this stage." Wolfgang treats "subject matter experts aren't always expert writers" as the default to plan around, not a problem to fix by taking over the prose, and warns that routing one draft past too many reviewers is "too many cooks spoil the broth": each round fixes what the last one missed instead of finishing the piece.
Interview
Ask one question at a time, multiple-choice when you can, and stop as soon as you can pick a pattern and judge the evidence. Do not run the list mechanically.
Memory: Store a few info about the current task or project context. When memory lives in a file, use `devrel-context.md`; if a different memory system is in use, rely on that instead. Separate task info in different sections. Remove finished tasks. Add a date to a task; no date for general project context. Some interview responses may differ between 2 tasks.
- What actually happened? Point me at the raw material - incident notes, design doc, pull request, benchmark output, support threads.
- Who is the reader: a developer evaluating this technology, a developer already using it, or a peer engineer who will never use it and just wants the engineering?
- Where does it publish: a company engineering blog, a personal blog, or a third-party publication with its own house rules?
- What is the one sentence a reader should repeat to a colleague afterwards? If the user cannot state it, the post is not ready - help them find it before drafting.
- By what date must this be published - a launch, a conference, a news window, or no deadline at all?
- Is this a one-off win (ride a moment, answer a thread that is live now) or a compounding asset (a page you link for years)?
- What is your effort ceiling: writing hours available, whether you can still go and produce evidence, and how many reviewers the post can survive?
- What evidence exists: measurements, code you can link, logs, screenshots, external references? What is claimed but not measured?
- What must stay unpublished - customer names, security detail, unannounced roadmap, internal numbers?
- Who reviews for technical accuracy before publishing, and is that person available?
- Is there a commercial interest to disclose - your own product, an open-core boundary, a sponsor?
Answers 5 to 7 re-rank the pattern table below, so ask them before picking.
- A hard date promotes Bug Hunt and Thoughts on Trends, whose material is already written down or already in your head.
- A compounding mandate promotes Explainer and How We Built It over both, and is the only answer that moves Benchmarks up.
- An effort ceiling that excludes producing new evidence deletes Benchmarks and Rewrote It in X outright - struck from the menu, not parked at the bottom.
If your harness has persistent memory, store the answers to 2, 3, 9 and 11. They are blog-level conventions, not per-post facts, and re-deriving them every time is what makes this task feel repetitive.
Workflow
- Read the raw material end to end before writing a line. Judge whether it contains a surprise, a measurement or a strong opinion - a post with none of the three has nothing to carry it.
- Check the topic is worth a post. See Topic filters below. Kill weak ideas here, not after 2,000 words.
- Pick the pattern. Strike the patterns whose material the author does not have, then take the highest survivor in the efficiency order below, re-ranked against the interview answers. Say the ranking and the strikes out loud. Read ./references/post-patterns.md for the section order and proportions of the one you picked.
- Build the claim ledger. List every assertion the post will make and assign each one an evidence class. Do this before drafting - it is far cheaper to drop an unsupported claim than to rescue a paragraph built on it.
- Outline against the pattern, and confirm the outline with the user before drafting the body. Name what the reader must already know; anything else has to be introduced in the post before a later section leans on it.
- Draft section by section, showing the reader the artefact (code, log, graph, config) before explaining it.
- Revise in four passes, then brief a reviewer. See Revise, review, ship.
- Run the credibility gate. Iterate until every check passes.
- Run the humanizer pass on the prose.
- Hand off with what still needs a human: unrun benchmarks, unreviewed technical claims, a legal or security read, missing diagrams.
Topic filters
Write from what was hard, not from what is mastered. The struggle carries the specifics; mastery flattens them into textbook prose that reads like every other article on the subject.
Require the idea to pass at least one of these filters before drafting:
- Counter-intuitive - the reader did not know the world worked that way.
- Counter-narrative - it contradicts what the reader was told.
- Surprising capability - the reader did not know this was possible.
- Elegant articulation - the reader felt this but could not name it.
- Recognition - the reader's own experience, finally described.
An idea passing none of them yields a post that is accurate and unread. Say so plainly and help the user find the angle that passes.
Two beliefs block more good posts than anything else. Julia Evans' "Some blogging myths" (jvns.ca, 2023), the essay the filters above derive from, names both as myths.
- Originality: if it confused the author, it confuses others; the details differ by version and context.
- Expertise: "you actually just need to know 1-2 interesting things that the reader doesn't."
Publish uncertainty marked as uncertainty - "I think", "as far as I can tell" - never hidden.
Pattern selection
More from samber
Use this skill in a project
Open any RiverX project, search the Skills panel for samber/developer-relations-skills/engineering-blog-post, and install it in one click.
