Skip to main content
skill CX Codex

writing-runbooks — Claude Code skill: operational docs that get run

A skill for writing runbooks, setup and release procedures, migration guides and troubleshooting entries people execute under time pressure.

Install into Claude Code · Skills CLI (Vercel) All methods and platforms ↓
npx skills add riekelt/technical-writer --skill writing-runbooks -a claude-code
Open on GitHub

What writing-runbooks does

The skill fixes the skeleton: a risk legend up front, a TL;DR happy path, then the same steps as numbered sections for whoever needs just one. Commands stay copy-pasteable as-is, and ordered steps name the cost of getting the order wrong — deploy the jar before DB cleanup, or lose data silently.

Troubleshooting entries go symptom-first: the verbatim error string, then cause, then exact fix commands, cheapest diagnostic first. Migration guides get their own five rules — a mapping table of old to new per config key or command, rollback named for every step, and dates for what stops working and when stragglers are cut off.

The skill builds on technical-writing and insists on real runs. A procedure nobody has executed is a draft, not a runbook; untested branches get labeled as drafts and their first runner is asked to report back. Unknown values stay visibly bracketed rather than invented, because truth outranks paste-readiness.

What it helps with

  • write a release procedure someone can follow mid-incident
  • turn a failure into a symptom-first troubleshooting entry
  • build a migration guide with an old-to-new mapping table
  • name the rollback for every state-changing step
  • mark risky commands before anyone copies them

Example prompts for the agent

  • write a release runbook: steps, risk legend, verification section
  • turn this incident into a troubleshooting entry with the exact fix commands
  • draft a migration guide with a mapping table and deprecation dates

How to install writing-runbooks

1Skills CLI (Vercel)

npx skills add riekelt/technical-writer --skill writing-runbooks -a claude-code

2Manually: put the files in place

~/.claude/skills/writing-runbooks/SKILL.md

Copy the whole skill folder; for one project use .claude/skills/writing-runbooks/

Step by step, with commands for each platform: How to install skills in Claude Code: five ways

Questions about writing-runbooks

How do I install writing-runbooks in Claude?

Run npx skills add riekelt/technical-writer --skill writing-runbooks -a claude-code. The skill lands at ~/.claude/skills/writing-runbooks/SKILL.md.

What does writing-runbooks do?

It encodes the runbook skeleton: a risk legend, numbered one-action steps, rollback, and a verify-it-worked section. It covers runbooks, setup and release procedures, migration guides and troubleshooting entries.

Does it require the technical-writing skill?

Yes. technical-writing is listed as required background — hard rules, truth rules and style come from there, and writing-runbooks builds on that base.

Source text

SKILL.md · MIT
---
name: writing-runbooks
description: Use when writing operational documentation - runbooks, setup guides, release procedures, migration guides, deprecation guides, troubleshooting entries, or any ordered procedure someone will execute under time pressure. Encodes the runbook skeleton, the risk legend, the symptom-first troubleshooting format, and the migration-guide rules (mapping table, mandatory rollback, deprecation dates, built-in expiry). Use whenever someone will execute the text, even if it is called a "guide" or "setup notes".
---

# Writing runbooks

**REQUIRED BACKGROUND:** the `technical-writing` skill (hard rules, truth rules, style).

## Overview

The reader is in a hurry, often mid-incident. Every runbook is ordered, one action per step, copy-pasteable, with danger marked where the eye already is.

Write from a real run: every step one actually taken, every failure named one that actually happened. A procedure imagined at the desk is a draft, not a runbook. A partially exercised procedure may be published with per-branch honesty: name the variant that has not run yet, mark that branch draft, and ask its first real runner to report back. A procedure with no real run behind any branch is a draft outright. When a value the commands need is genuinely unknown, keep the placeholder visibly bracketed, never invented, and fill it from a real run before publishing; truth outranks paste-readiness.

## When to invoke, and not

Invoke for anything a person will execute: runbooks, setup and release procedures, troubleshooting entries, operational checklists, and the operator-facing strings inside a system. Do NOT invoke for design rationale (`writing-design-docs`) or for reference material nobody executes. If the procedure has not been run at least once, either run it first or label the document a draft; publishing an untested procedure as a runbook is the defect, not the labeling.

## Structure

- Title carries the scope: "MVP runbook (Reddit)", "Release runbook".
- Open with what this document is relative to its siblings ("this doc is the sequence; deep detail per step lives in X") and state what it does NOT cover.
- **Legend up front** when steps differ in risk, applied to every command: safe to run anytime / operator-only (writes to production) / manual step outside the terminal. Tags combine where a step is more than one thing.
- **TL;DR happy path first**, then the same steps as numbered sections for the reader who needs only one.
- Version-pinned prerequisites before any command, each with a check command.
- Numbered ordinal steps (not bullets), one action each, present tense or imperative, with a visible actor.
- Every command copy-pasteable as-is, with concrete example values ("common paths: `/public_html/`, `/www/`"). Label variants inside the code block:

```bash
# safe mode
app sync run --channel=reddit --limit=100

# live mode (writes to the provider)
app sync run --live --approval-token=...
```

- Ordered steps state the consequence of wrong ordering inline: "deploy jar, then DB cleanup; wrong order = silent data loss."
- Every state-changing procedure names its rollback, or states plainly that none exists and what that means.
- End with a "verify it worked" section: the observable end state and the command that proves it.
- Mark the preferred path "(recommended)" when several paths exist; document UI and CLI for the same task side by side rather than twice.
- If the runbook will shrink when tooling lands, say so: "when X lands, steps 2 to 4 become one command and this document keeps only the judgment."

## Troubleshooting entries

Symptom-first:

```markdown
## <symptom as the user sees it>
**Symptom**: verbatim error strings (searchable)
**Cause**: ...
**Fix**: exact commands
```

Order diagnostic steps cheapest first. Group entries by failure class. Cross-link the deeper doc instead of inlining it.

## Migration and deprecation guides

A migration guide is a runbook whose subject is the change itself: everything above applies, plus five rules of its own. The argument for the migration is a design doc (`writing-design-docs`), the decision to deprecate is an ADR (`recording-decisions`), the announcement is a changelog entry (`writing-changelogs`); this section covers only the guide the reader executes.

1. **History is the content here, stated positively.** The before/after comparison is the job, not a violation: this is the document class the no-history hard rule explicitly carves out. Write "the tag now replaces the manual version bump" freely; that sentence is banned everywhere else and load-bearing here.
2. **The mapping table is the core artifact.** Old to new per behavior, config key, command, or API, one row each. Prose explains the rows that need it; the table carries the migration.
3. **Rollback is mandatory, per step.** Every step names its undo, or states plainly that it is irreversible and what that means for the ordering around it.
4. **The deprecation contract carries dates.** What stops working, on which date, what happens to stragglers, and where the escape hatch is until then. "Will be removed in a future release" names no date and is banned here.
5. **Born with an expiry.** When the migration completes, the owner reclassifies the guide as historical and adds the superseded banner pointing at the current-state documentation, never deleting it silently. State the completion condition in the guide itself.

## Operator-facing strings

Error messages and log lines are runbook prose with the shortest reading window: keep remediation specific and actionable, and make error states visible rather than letting workflows appear healthy.

© riekelt · MIT · riekelt/technical-writer

Similar skills

Everything for Writing and docs →

From the same set10

reviewing-technical-prose A skill for reviewing someone else's technical writing: it flags banned constructions, unsupported claims and structural defects, then runs a delivery checklist before a document ships. CX Codex +1 18,200installs writing-design-docs Proposal templates and rules for RFCs, design docs, and migration plans. Enforces the Why & What decision box, cost accounting, and completeness checks. CX Codex +1 18,200installs writing-changelogs Writes changelog entries, release notes, and shipped-work summaries. Use it after meaningful features, fixes, or removals. CX Codex +1 18,100installs documenting-legacy-codebases Rebuilds documentation from the code itself when the existing docs are missing, stale or untrusted. Survey first, prose second. CX Codex +1 17,900installs writing-issues Formats epics, stories, tasks, bugs, and spikes for issue trackers. It turns raw discussions and notes into tickets with verifiable acceptance checks. CX Codex +1 18,000installs recording-decisions A skill that writes decisions down as a full ADR or a short log entry, so the reasoning does not stay buried in chat. CX Codex +1 18,000installs writing-postmortems A skill for writing postmortems and root-cause analyses: evidence-only timelines, blameless framing, action items with owners. CX Codex +1 18,000installs diagramming-processes A coding-agent skill that makes the agent draw processes, states and message exchanges as diagrams whose source lives in git, not as pictures. CX Codex +1 17,800installs

Project sponsors

Companies that keep this analytics open
Gold sponsor

Impressions, clicks and code copies — open statistics. We keep the numbers public for the same reason NeBlask itself is public. Become a sponsor