Files
felhom.eu/.claude/rules/docs.md
T
admin 06e7cf8c3f
gates / gates (push) Successful in 6m59s
The N100 becomes the lived-in box (09 §3 decision 254): media apps installed and wired through the dashboard; films proven never off-site; the USB split NOT done (it is the whole-guest backup target)
- 09 §3 decision 254 (operator decisions 240/243 written down); target-selection: a "lived-in" tier, Tier 0 = demo-hp
  alone; nodes.md role + drive; 11-os-updates ring 0 wording; CLAUDE.md + docs.md: the diary.
- documentation/lived-in/n100.md (new diary); audits/n100-lived-in-2026-10-15/ (state, drive read, Part C capture sets,
  installs, wiring, stranger probes, demo-hp clean-up, the operator's SHEET.md).
- Register: R-1062 (the split, operator decides), R-1063 (decommission half-state on an agent refusal), R-1064 (path
  removal silent about cross-drive copies), R-1065 (a claimed Plex gets no libraries until a wiring run).
- demo-hp: /mnt/sizing-bench removed through the dashboard; the hub shows demo-hp OK (14:56 UTC).

Claude-Session: https://claude.ai/code/session_0159rPz1ZhFKsS53msqPYxtS
2026-10-15 16:59:15 +02:00

51 lines
2.6 KiB
Markdown

---
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..11-*.md` |
| who owns which AI artifact; where an instruction lives | `architecture/12-agent-tooling.md` |
| capability status + its evidence | `architecture/00-capability-map.md` (one row each; the long text per row in `architecture/capability-map-detail/<section>.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` |
| what happened on the lived-in N100 (dated, each line with its register row) | `lived-in/n100.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` |
| every finished finding, compressed | `backlog/CLOSED-ITEMS.md` |
| finished notes and history moved out of a register | `archive/` |
| 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<X>") 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<Y>" can.