04 · CROSS-CUTTING RULES
Frontmatter.
YAML block — every page in wiki/
The eight fields every page carries, plus a few type-specific extras.
Frontmatter is the machine-readable contract that lets lint.py and check-drift.py notice when pages drift from their sources.
Eight required fields. Type-specific extras follow the dashed line.
The eight required fields
- type One of
incident,service,root-cause,concept,owner. Determines the page's shape and which extras apply. - name Human-readable name. Free text — used in the index listings.
- status
stub·draft·reviewed. The lifecycle marker. - owner Team slug. Write
unknownif missing — never invent. - sources List of paths under
raw/this page draws from. - source_hashesMap of path → SHA-256. Never hand-edit — managed by
tools/check-drift.py --update. - tags Kebab-case, no spaces. Reuse existing tags before inventing new ones — check
index.mdfor the current vocabulary. - last_updatedDate of the most recent material change. Don't bump for whitespace edits.
Type-specific extras
- incident
date,severity,duration_minutes,services,root_causes - service
upstream,downstream,incidents - root-cause
incidents,services - concept (none beyond the required eight)
- owner
services,incidents
What it looks like in a real file
--- type: incident name: 2026-03-14 checkout latency spike date: 2026-03-14 severity: SEV2 duration_minutes: 47 status: reviewed owner: payments-team services: [checkout-api, payments-db] root_causes: [connection-pool-exhaustion] sources: - raw/postmortems/2026-03-14-checkout.md source_hashes: # NEVER hand-edit raw/postmortems/2026-03-14-checkout.md: <sha256> # run tools/check-drift.py --update tags: [latency, database, capacity] last_updated: 2026-04-26 ---
Rules
- All eight required fields appear on every page, in any order. Missing fields fail lint.
source_hashesis managed by tooling — after every ingest, runtools/check-drift.py --update.- Reuse existing
tagsbefore inventing new ones. The index is the canonical tag vocabulary. - Unknown owner is
unknown, not blank. The wiki tracks unknowns explicitly so they don't get forgotten. - Frontmatter lists (e.g.
services: [checkout-api]) resolve as wiki-links — the basename must match a real page or a stub.