From 48ab9945de06fff3d23c118b4798cec391ef5dc2 Mon Sep 17 00:00:00 2001 From: Robert Allan James Date: Tue, 18 Aug 2026 07:45:44 -0400 Subject: [PATCH] FABRIC-2.md: rule item 4.6 (Artemis) admission-on-allocate before implementation Records the pre-work ruling: Stadium residency for Artemis block heat is admission-on-allocate (mirroring item 4.2's MBR-ALLOC precedent), not a 1:1 slot table across all 22,998 possible LBNs. FM-* freemap stays untouched; BLK-ALLOC/BLK-FREE become the stadium_admit/evict boundary. Co-Authored-By: Claude Sonnet 5 --- FABRIC-2.md | 36 ++++++++++++++++++++++++++++++++++-- 1 file changed, 34 insertions(+), 2 deletions(-) diff --git a/FABRIC-2.md b/FABRIC-2.md index 8fe9fac..ca71a46 100644 --- a/FABRIC-2.md +++ b/FABRIC-2.md @@ -33,8 +33,40 @@ and recorded. - [ ] **4.4s — `(user)` prompt segment.** Scoped, blocked, not started. Extends 4.4's prompt format. *Refs (FABRIC.md):* §27.8, 4.4. -- [ ] **4.6 — Artemis last.** It works today; it is the thing that cannot be broken. Not - started. +- [ ] **4.6 — Artemis last.** It works today; it is the thing that cannot be broken. + *Refs (FABRIC.md):* §10. **Started 2026-08-18** — scope confirmed as a 4.2-style + migration: retire `capsules/artemis/init.4th`'s free-standing `BLK-HEAT` array/`Q-DECAY` + mechanism in favor of Stadium-resident block heat, contributing to fleet K≡1.0 (per + `.claude/ARTEMIS.md`'s own long-standing, never-implemented requirement). + + > **Ruling taken before work starts, 2026-08-18 — admission-on-allocate, not a 1:1 slot + > table.** `BLK-HEAT` is a flat array sized `ART-DATA-BLKS` (22,998) — one slot per + > *possible* data block, not per live one. A literal 1:1 Stadium-cell reservation for + > every LBN would consume roughly 15–27% of the entire system-wide Stadium cell pool + > (measured 83,886–167,772 cells total across the whole fleet, item G) for slot + > bookkeeping alone, independent of how many blocks are actually in use — not viable. + > Resolved the same way item 4.2 ruled `MBR-ALLOC` out of Stadium scope (pure structural + > bookkeeping with no heat field stays off the Stadium): + > - `FM-*` (the free-map bitmap — is this LBN allocated) is untouched. It already has no + > heat field to migrate, same as MBR. + > - A Stadium resident cell exists only for a block that is actually allocated. + > `BLK-ALLOC`/`BLK-FREE` become the `stadium_admit()`/`stadium_evict()` boundary, not + > the full 22,998-slot array. The LBN is stored as the cell's payload (mirroring how + > Hermes stores its message struct in-cell). Artemis keeps its own LBN→cell lookup, + > sized to concurrently-resident blocks, not to disk size. + > - `BLK-FETCH`'s heat-refresh and `ART-COOL`'s decay route through the existing + > `STADIUM-HEAT@`/`STADIUM-HEAT!` primitives 4.2 already built. Whether the full + > eight-primitive 4.2 surface is sufficient or a new primitive is needed is + > implementation work, not decided here — per §25.0 rule 4, not invented in advance. + > + > *Done when* (mirrors 4.2's structure): the Stadium-admission boundary replaces + > `BLK-HEAT`/`Q-DECAY` with no parallel heat mechanism left running; `FM-*` is confirmed + > untouched; disk persistence correctness is re-verified (existing `ART-SELF-TEST`/ + > `ART-WRITE-TEST`/`ART-READ-TEST`/`ART-STRESS-CAMPAIGN` all still pass, unmodified in + > behavior); the POST suite passes; the effort number is recorded per §10; all three + > architectures boot to `ok>`/`zuse)ok>` with logs under `logs/`, and Artemis's own + > conservation check (an `ARTEMIS-K`-style total, mirroring `HERMES-K`) closes exactly + > against fleet K≡1.0. - [ ] **5.1 — Re-run the DoE on the new substrate.** A green POST suite is not evidence that determinism holds under the Stadium migration — needs its own campaign. Not started.