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 <noreply@anthropic.com>
This commit is contained in:
Robert Allan James
2026-08-18 07:45:44 -04:00
co-authored by Claude Sonnet 5
parent 89d8c08582
commit 48ab9945de
+34 -2
View File
@@ -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 1527% of the entire system-wide Stadium cell pool
> (measured 83,886167,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.