Runbook library
A runbook helps a responder choose a checked action. This fictional example diagnoses local reader preview only, not a production service.
Procedure structure
| Part | Reader needs |
|---|---|
| Scope | Exact service, environment and symptom |
| Preconditions | Tools, access, authority and impact |
| Checks | Evidence before changing state |
| Branches | Meaning of observed result |
| Action | Approved target and limits |
| Verification | Status and intended content |
| Recovery | Tested return path/escalation |
Name symptoms in prose/headings because search strips code/diagram text. Put critical warnings beside the action. Keep credentials/private records out of pages.
Worked source
Create content/operations/reader-check.md under a real Operations landing:
---
title: Reader preview not responding
description: Inspect local preview before changing any process.
---
# Reader preview not responding
Use this for your disposable local preview at http://localhost:3000.
It does not diagnose or restart production.
## Before you begin
Have curl available. Confirm this disposable project and preview address.
If another application owns the port, identify it before acting.
## Inspect the response
```bash
curl -i http://localhost:3000/
```
This reads a response; it does not build or start the server.
Inspect HTTP status and HTML for your actual site's title.
## Choose the next check
- Connection refused: verify the intended preview process is running.
- Wrong title/login page: verify address/process, not only status.
- Home works but article fails: inspect build route and served path.
- Resources fail: inspect exact asset URL and configured prefix.
Do not repeatedly rebuild to fix a wrong listener or cached host.
## Recover the preview
If the intended preview is stopped, return to the installed disposable
project and run `npm run serve` in a terminal you can supervise.
Do not kill a process merely because it occupies the port.
If output is stale, follow the reviewed local build workflow first.
## Verify
Repeat root check. Open a known deep article, search its real heading and
check required media. Success is the intended reader, not any HTTP 200.
## Escalate
Keep nonsensitive status, route, console and process evidence.
Ask the environment owner when identity or permission is unclear.
Default preview is loopback port 3000 unless MARKSTACK_PREVIEW_PORT selects another. Adapt address deliberately. Unix curl example is not Windows PowerShell certification. Build workflow explains actual server behavior.
Drill and distribute
Exercise stopped, correct, wrong-content and missing-route branches in a disposable environment. Record actual outputs/environment and which branches you checked. Dates are author metadata, not automatic proof.
A local-preview drill does not test systemd, TLS/DNS, proxy forwarding, production cutover or account recovery. Label each separately. Use an independently protected static copy if incidents must not depend on editor uptime; test required network isolation and keep critical media local.
Reader downloads/search need the same audience protection as HTML. Hidden navigation is not privacy. Maintain owner, escalation and review process outside V2. Disabled task boxes do not record each responder’s work or approval.