Loading page...Загружаем страницу...正在加载页面...
AtlasRepo

Runbook Rot: Three Fingerprints of Stale CI Docs and the Check That Catches Each

Description and use

Automated CI checks for runbook freshness detect timestamp gaps, orphaned identifiers, and procedural verbs, preventing costly night‑time errors.

Problem

Stale CI runbooks cause costly errors when the documented pipeline no longer matches the live environment.

Outcome

Runbooks are now automatically validated for freshness, reducing 3 a.m. manual interventions and preventing costly errors.

Workflow

  • Extract last content edit of the doc and compare it to the last edit of its subject to detect timestamp gaps.
  • Extract backticked identifiers from the runbook and verify each against the repository to find orphaned referents.
  • Search for procedural verbs (e.g., "ask", "ping", "check") and flag them as work tickets.
  • Add a front‑matter header with as_of, scope, cadence, and owner to each runbook.
  • Run a CI job that calculates lag = now() - as_of and fails the build if lag exceeds cadence.
  • When a failure occurs, bump as_of only after a human verifies the steps against the live system.
  • Repeat the checks on a scheduled cadence to maintain freshness.

Evidence

The document's last meaningful edit predates the last change to the thing it describes.

Source

The check: extract identifiers from the doc and verify each against ground truth

Source

The check is a grep, and every hit is a work ticket

Source

Then a one-page CI job computes lag = now() - as_of against cadence and fails the build at 2× expected interval

Source

  • Record date: 2026-10-18T01:41:16.230Z