--- paths: ["documentation/**"] --- # Documentation — routing and register discipline `documentation/` is the **authoritative design home for the whole Felhom system**, not just this repo. Sibling repos point here; this is where the pointed-at thing must actually be. ## Where a fact goes — one home each | Fact | Home | |---|---| | the locked design | `architecture/01..05-*.md` | | capability status + its evidence | `architecture/00-capability-map.md` | | host addresses, routes, node names, break-glass, what is provisioned | `operations/nodes.md` | | Tailscale topology, accept-dns/accept-routes | `operations/tailscale.md` | | which box may be broken, and what may be done to it | `runbooks/target-selection.md` | | an operational procedure | `runbooks/RUNBOOK-*.md` | | logging levels and phrasing | `runbooks/logging-conventions.md` | | a spike or campaign result | `audits/` | | every open finding | `backlog/OPEN-ITEMS.md` | | the operator's one-screen view | root `STATUS.md` | **Do not restate a fact that has a home** — point at it. Re-check an address rather than trusting one written down. ## Register discipline The end-of-session register rules (`OPEN-ITEMS.md` first, `STATUS.md` is a view, nothing exists only in a report) are in the repo core `CLAUDE.md` **deliberately** — they apply to every session that ships or decides something, not only to sessions that touch `documentation/`, so they must load unconditionally. This file adds only the routing above. ## The coupling rule **A recipe or contract section is a TWO-REPO change.** If a document here defines something a sibling consumes — a DR recipe's producers, an allow-list, an event type — the consumer's code and this document move in the same session, or the hub silently drops what it does not recognise. ## Version literals **No component version literal in any instruction file, and none in a doc that reads as current fleet state.** Versions change several times a day and the fleet is not uniform. A *historical* citation ("fixed in hub v") is fine in an audit or an HTML comment beside the rule it justifies — it cannot go stale the way "this box currently runs agent v" can.