han-release
Cut a Han release: update CHANGELOG.md with the changes since the last release, bump and tag every plugin that changed as…
Create or update a runbook for an operational scenario — an incident an alert fires for, a recurring scheduled task, or a known failure mode on a live service — using a consistent template. Use when writing, drafting, authoring, or updating a runbook for an alert, incident,
Claude Code
$ npx -y skills add testdouble/han --skill runbook --agent claude-code
Codex
$ npx skills add testdouble/han --skill runbook -a codex -y
Cursor
$ npx skills add testdouble/han --skill runbook -a cursor -y
Gemini CLI
$ npx skills add testdouble/han --skill runbook -a gemini-cli -y
GitHub Copilot
$ npx skills add testdouble/han --skill runbook -a github-copilot -y
OpenCode
$ npx skills add testdouble/han --skill runbook -a opencode -y
Windsurf
$ npx skills add testdouble/han --skill runbook -a windsurf -y
name: runbook
description: >
Create or update a runbook for an operational scenario — an incident an alert fires for, a recurring scheduled task,
or a known failure mode on a live service — using a consistent template. Use when writing, drafting, authoring, or
updating a runbook for an alert, incident, on-call procedure, scheduled maintenance, or operational SOP. Applies a
YAGNI preflight requiring the scenario to be real before producing the runbook. Does not produce feature or system
documentation — use project-documentation. Does not record architectural decisions — use
architectural-decision-record. Does not create coding standards — use coding-standard.
argument-hint: "[topic or scenario, or path to existing runbook to update]"
allowed-tools:
Read, Write, Edit, Glob, Bash(git config *), Bash(whoami), Bash(date *), Bash(mkdir *), Bash(find *),
Bash(bash "${CLAUDE_PLUGIN_ROOT}/scripts/han-config-dir.sh")[../../references/yagni-rule.md](../../references/yagni-rule.md). A runbook is worth writing only when the scenario is grounded in something real: an alert that has actually fired, a documented incident, a recurring task that exists, or a known failure mode on a service that receives production traffic. Runbooks for hypothetical alerts, "best practice says we should have one," or "we'll need this someday" are YAGNI candidates and the runbook should be deferred until the scenario actually occurs. The canonical anti-pattern from project history: Sentry runbooks for staging-only Sentry where data isn't reaching production — alerts that will never fire because no signal flows. The user always wins; the rule's job is to make the cost of speculative runbooks visible.
[../../references/evidence-rule.md](../../references/evidence-rule.md) to the citations that ground the scenario: name the trust class of each piece of evidence (alert history, incident report, on-call rotation pattern); cite the actual artifact (dashboard URL, ticket ID, log query) rather than paraphrased recollection; and surface single-source claims as such rather than presenting them as settled.
the skill per scenario.
success looks like. Prose paragraphs in place of commands are an authoring failure the skill prompts against.
entry so decay is visible rather than hidden. The skill does not enforce a review cadence — that is a team-level workflow concern — but the metadata fields make the cadence auditable.
write the runbook. Hold its default audience frame: a capable reader who did not do this work and lacks the author's context — here, the operator following the runbook during an incident.
As your first action, use the Read tool on `.han/config.md` inside the `personal config directory` path above. A read that returns no file is no personal configuration: continue silently. When that file or the `project .han/config.md` probe supplies content, apply it per [config-rule.md](../../references/config-rule.md), which governs precedence between the two files, relative-path resolution, and what to do with a file that reads but cannot be used.
Determine which mode to operate in based on the user's request:
| Mode | When | Then | | ------------------- | ---------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------- | | Creating new | Drafting a runbook for a scenario the project does not yet have one for | → Step 2 | | Updating existing | Modifying an existing runbook (new step, validation date refresh, escalation change) | Read the existing runbook → Step 4 | | Validating existing | User says they ran the procedure end-to-end and wants to refresh `Last validated` and add a change-history entry | Read the existing runbook → Step 4 (update mode, validation entry only) |
Before discovering structure or gathering context, gate the work. Ask the user (or confirm from their request) which of the following describes the scenario:
1. **An alert that has actually fired** — name the alert, link the firing incident or alert manager record. 2. **A documented incident or post-mortem** — link it. 3. **A recurring scheduled task** that the team performs (weekly index rebuild, monthly cert rotation, etc.) — name the cadence and
Cut a Han release: update CHANGELOG.md with the changes since the last release, bump and tag every plugin that changed as…
Update Han plugin documentation so every skill, agent, guidance doc, index, and cross-reference is current and accurate. On a…
Produces a progressive-disclosure overview of unfamiliar code or a pull request's changes with code-overview and publishes the…
Runs an evidence-based investigation of a bug, failure, or unexpected behavior with investigate and publishes the resulting…
Publishes a local Markdown file to a user-specified Confluence location, creating a new page or updating an existing one through…
Builds a feature specification from scratch with plan-a-feature and publishes it to a user-specified Confluence location, posting…
You MUST use this before any creative work - creating features, building components, adding functionality, modifying behavior, or…
Ask which skill or flow fits your situation. A router over the skills in this repo.