Files
felhom.eu/.claude/rules/docs.md
T
admin 3a9dd81e18
gates / gates (push) Successful in 8s
docs+gate: felhom.eu/CLAUDE.md becomes core + path-scoped rules; instructions gate registered (R-229)
227 -> 115 effective lines, split into .claude/rules/{hub,website,manifests,docs}.md, and
repo_gates.py gains gate 6. Trim first, register second: a registered-but-failing gate refuses
every push through the pre-push hook, which is why this repo -- the one that OWNS the gate --
was the only one not running it.

Register discipline and the R-110 installer fence deliberately stayed in the core; both have
triggers no fixed glob covers, and scoping them would have rebuilt the failure class they exist
to prevent.

Scoping proven from the InstructionsLoaded hook log in two fresh sessions, not from frontmatter.
2026-08-06 10:41:42 +02:00

2.1 KiB

paths
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.