the size rule: a small finding is fixed in the session, not filed; reports state four register numbers (burn-down Part D)
gates / gates (push) Successful in 33s
gates / gates (push) Successful in 33s
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_0159rPz1ZhFKsS53msqPYxtS
This commit is contained in:
@@ -13,7 +13,8 @@ unconditional: true
|
||||
- A register row **you or another CC session filed**, with owner CC, at P3 or a bounded P2, that
|
||||
needs **no operator decision**, touches **no customer data by design**, and introduces **no
|
||||
mechanism nobody has measured**. Smallest first.
|
||||
- A defect you find while exercising the product, filed as a row **before** you fix it.
|
||||
- A defect you find while exercising the product, filed as a row **before** you fix it — **unless it is small**:
|
||||
a small finding is fixed in the session and never filed (the size rule, `OPEN-ITEMS.md` „How a row is filed").
|
||||
- Hygiene: register compression, stale citations, rows with no owner, documents that contradict
|
||||
live source.
|
||||
|
||||
@@ -43,7 +44,8 @@ it **first** in the morning note. A decision you cannot write in that shape is o
|
||||
6. **One release per repo per session**, with a CHANGELOG entry (controller: with its `MinAgent`
|
||||
line), REPORT overwritten, floor raised to deliver it. **No golden unless a drill or fresh install
|
||||
needs one** (the waiver, R-468). **No `--no-verify`.**
|
||||
7. **An enumerated gap becomes a row in the same session.** Prose is not a record.
|
||||
7. **An enumerated gap becomes a row in the same session — or, if it is small, is fixed in it** (the size rule).
|
||||
Prose is not a record.
|
||||
8. **Hungarian text is searched with ASCII fragments**, with a positive and a negative control.
|
||||
9. **Never leave a half-state.** If time runs out, revert to clean and say what was reverted.
|
||||
10. **Teardown, three layers, stated** — machine, host, hub — or "provisioned nothing".
|
||||
|
||||
@@ -88,8 +88,8 @@ newer release and was pinned to 4.7.0.
|
||||
the `data` field only → restore `rc=0`, integrity `ok`, 4 hosts; without a key → `missing key`.
|
||||
- **Alarm** (`alarm-drill.txt`): success file hidden 13:51:46Z → pending 13:52:06Z → **firing 14:22Z** → Alertmanager:
|
||||
1 active alert, receiver `email-notifications`, `notifications_total{email}` 5 and `failed_total` 0 → a real push
|
||||
14:23 (2 s) → inactive 14:23:42Z, email counter 6. **The mail itself was not read**: the Gmail connector reads the
|
||||
felhom.eu catch-all, and Alertmanager mails the operator's personal address — the operator is asked to confirm.
|
||||
14:23 (2 s) → inactive 14:23:42Z, email counter 6. **Both mails arrived** (operator's inbox screenshot, 2026-10-05):
|
||||
„[FIRING] HubDBBackupStale" 16:22 and „[RESOLVED] HubDBBackupStale" 16:27 CEST.
|
||||
- **R-519 on 9202** (`r519/`): 9202 raised to controller 0.296.0 by hand (`00-upgrade-9202.txt`); bookstack installed;
|
||||
run 1 complete (33 s); run 2 cut by `docker restart felhom-controller` at 14:05:59.67Z, 0.8 s after `Volume dump:
|
||||
bookstack/bookstack_bookstack_config` and before its database volume. After: the run record turned `interrupted`;
|
||||
@@ -126,5 +126,4 @@ newer release and was pinned to 4.7.0.
|
||||
## Unproven / say-so
|
||||
|
||||
- `unproven.py --summary`: walked 20, partial 17, built 14, missing 4 — NOT WALKED 35 of 55; no number moved (the hub-DB capability is a new row in `00` §G, not one of the 55 walked claims).
|
||||
- The `HubDBBackupStale` mail in the operator's inbox — seen only as Alertmanager's send counter.
|
||||
- Runbook §3 steps 4–5.
|
||||
|
||||
@@ -34,8 +34,8 @@ by-design abilities stay. Today you also chose: grow the hub's disk to 2 GiB, an
|
||||
DooPlex use "always the newest" (new row).
|
||||
|
||||
- **The alarm mail:** I hid the "copy sent" signal on purpose; after 30 minutes the alarm fired (14:22) and the mail
|
||||
system sent it without error; a real send cleared it a minute later. **Please check your inbox** for
|
||||
"HubDBBackupStale" around 16:22 — I cannot read your personal mailbox.
|
||||
system sent it without error; a real send cleared it a minute later. **You confirmed both mails arrived:**
|
||||
"[FIRING] HubDBBackupStale" 16:22 and "[RESOLVED] HubDBBackupStale" 16:27.
|
||||
- **The mail system (Alertmanager) cannot save its own notes since the Longhorn restart.** Mail still goes out; but a
|
||||
silence you set would be lost at its next restart (new row).
|
||||
|
||||
|
||||
@@ -257,7 +257,9 @@ Then: [exact refusal — HTTP status, error, and the proven non-effect, e.g. "m
|
||||
typecheck; do not accumulate compile errors.
|
||||
2. **Minimal changes:** build only what's listed. No "while I'm here" refactors. Note anything worth
|
||||
fixing under "Observations" (§15) — don't act on it, but **do file it**: §15.9's marker rule means
|
||||
"not acted on" never means "not recorded".
|
||||
"not acted on" never means "not recorded". **Exception — the size rule (2026-10-05):** a finding that is cosmetic
|
||||
or small (about 30 minutes, in a repo this session may change) is FIXED in the session with a test and listed under
|
||||
„fixed without a row" — not filed (`OPEN-ITEMS.md` „How a row is filed").
|
||||
3. **No silent failures:** never swallow a parse/exec error — log it. Check a subprocess's **own** exit
|
||||
code; never pipe in a way that hides a 127. (The silent `.felhom.yml` quoting bug + the spike's
|
||||
exit-swallow lesson.)
|
||||
@@ -423,8 +425,9 @@ inside an entry about something else, and a finding rediscovered because nobody
|
||||
shape `[DESIGN]` in the architecture document and point it at the log entry** (§4's map).
|
||||
**Losing a reason is how a deliberate design becomes a bug in someone's eyes** — that cost four
|
||||
mis-filed defect reports in August 2026 (R-370, R-376).
|
||||
3. **State the register's size in the report, before and after.** A number every session is what makes
|
||||
growth visible; prose about tidiness is not a mechanism.
|
||||
3. **State the register's size in the report as FOUR numbers: rows before, rows after, rows opened, rows closed**
|
||||
(2026-10-05). A number every session is what makes growth visible; prose about tidiness is not a mechanism.
|
||||
Before/after alone hid that sessions closed some and opened as many.
|
||||
|
||||
---
|
||||
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
## operator confirmation (inbox screenshot): [FIRING] HubDBBackupStale 16:22 CEST; [RESOLVED] HubDBBackupStale 16:27 CEST
|
||||
## alarm drill start 2026-10-05T13:51:46Z: success file moved aside (absent case)
|
||||
backup_freshness.prom
|
||||
fan_metrics.prom
|
||||
|
||||
@@ -13,6 +13,17 @@ a non-overwritten `REPORT-<topic>.md` sibling instead (`CLAUDE.md:82-87`), of wh
|
||||
belongs inside backticks), whose **Category** is not one of the eleven below, or whose **Sev** is not
|
||||
`P1`–`P4`. **A new row goes into its category's section**, in severity order.
|
||||
|
||||
**Fix small, do not file (the size rule — operator brief 2026-10-05, the burn-down).** The register grew because every
|
||||
session closed a few rows and filed a few small new ones. So: **a finding that is cosmetic or small — fixable in the
|
||||
session in about 30 minutes, in a repo the session may change — is FIXED in that session, with a test where it changes
|
||||
behaviour, and NOT filed.** It is recorded in that repo's `CHANGELOG.md` and in the session report under „fixed without
|
||||
a row". **Only a finding that needs a decision, a design, a larger build, or a change the session may not make** (a
|
||||
protected machine, a repo out of scope, a release budget already spent) **becomes a row.** This narrows — it does not
|
||||
repeal — „an enumerated gap becomes a row": a small gap leaves the session fixed, which is a record too.
|
||||
|
||||
**Every session report states four numbers:** rows before, rows after, rows opened, rows closed — counted the way
|
||||
`register_shape_gate.py` counts (`| **R-n** |` lines in this file).
|
||||
|
||||
**Sev — one scale for this file and `ROADMAP.md`:**
|
||||
- **P1 — now.** A household can lose or leak data, a box can stop or be taken over, or a promise we make is
|
||||
false — today. A P1 row says in one sentence what the harm is.
|
||||
|
||||
Reference in New Issue
Block a user