Runbook library

Reading time 1 min

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.