# REPORT — instruction files kept true; vaultwarden on the ladder; the burn-down continued (2026-10-06 afternoon) | Part | Result | |---|---| | **A** — the instruction-file rule (R-891, R-469, sweep) | **done** — rule in all four copies of `unprompted-work.md` §5 and `PROMPT-TEMPLATE.md` §9 rule 9; R-891 fixed and closed; R-469 re-read: NOT removable, narrowed (an operator question); sweep: 26 factual edits in four repos (list below). No permission prompt or refusal came up. | | **B** — vaultwarden on the update ladder (R-890) | **done** — the test-box admin seed built (catalog `6b4877d`, red-proved); 1.36.0-alpine → 1.37.4-alpine proven on bench 9401 and on 9202; written by `--write-ladder` (catalog `ecb8552`); R-890 closed | | **C** — the burn-down | **3 closed** (R-644, R-763, R-764), **2 stopped with the reason written** (R-762 medium, R-717 needs a design) | | Rows before | Rows after | Opened | Closed | |---|---|---|---| | **142** | **137** | **0** | **5** (R-890, R-891, R-644, R-763, R-764) | ## Baselines and rulings Verified at the start: felhom.eu `7d0dffcf34`, controller `36088fd82e` (v0.300.0), agent `cefdc731a4` (v0.149.0), catalog `65130c6c03`; register 142. Read: every repo's `CLAUDE.md` and `.claude/rules/`, `REPORT.md`, R-890, R-891, R-469. The two rulings were recorded first as `09` §3 decisions 149 and 150, with the reviewer's error recorded in 150. Architecture read: `09-update-architecture.md` §3 (decisions 16, 35, 42, 146), §6.4 part 4 (the ladder writer), §6.5 (the drill catalog). ## Part A **The rule** — `.claude/rules/unprompted-work.md` §5 „Instruction files", the operator's text verbatim plus the permission-check sentence; identical in felhom.eu, felhom-controller, app-catalog-felhom.eu and the workspace root's unversioned copy (md5 `c1e6c881…` for all four). `documentation/PROMPT-TEMPLATE.md` §9, rule 9. felhom-agent has no copy of the shared rule file (it never had one); adding one is a rule change, left for the operator. **R-469 — not met.** R-463 closed (8 of 11 PostgreSQL apps converted by the box; zipline, adventurelog, immich stay on 16 by decision 42), but the engine gate now enforces decision 35: a PostgreSQL major passes only with a two-venue ladder entry carrying `engine_conversion`. Removing it would let an unproven major ship, and the image refuses to start on the old datadir. That is a loosened fence. Nothing is left for CC to build; the row asks the operator to close it (CC's pick) or keep it. **Every instruction-file edit** (before → after, why). All factual; none loosens a rule. felhom.eu 1. `CLAUDE.md` „Gates — ONE entry point": a list of ten gates + „`--fast` … today that is all of them" → the `GATES` table is the list (nineteen gates); `--fast` skips the full-run-only gates and names them (today `iso-bootstrap`). Why: `repo_gates.py` imported: 19 gates, `iso-bootstrap` not fast. **R-891.** 2. `CLAUDE.md` design pointer `architecture/01..05-*.md` → `01..11-*.md` (00 = the capability map). Why: 06–11 exist. 3. `.claude/rules/docs.md` „the locked design" `01..05` → `01..11`. Same reason. 4. `.claude/rules/website.md`: the list of what `site_gates.py` asserts gains „no embedded `