FABRIC-2.md: add pre-Artemis closeout triage (Section F)

Buckets every open item across the document into: closed this pass,
genuinely blocked on non-Artemis work, and items needing Captain Bob's
ruling before they can move. Closes the loop on the "close everything
until Artemis is the blocker" instruction with a concrete state instead
of an open-ended list.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
Robert Allan James
2026-08-15 06:03:53 -04:00
co-authored by Claude Sonnet 5
parent ee3a2e57aa
commit 818b9569d3
+79 -3
View File
@@ -462,13 +462,15 @@ and recorded.
2026-08-13): flag and leave as-is** — this metadata subsystem is scaffolding expected to 2026-08-13): flag and leave as-is** — this metadata subsystem is scaffolding expected to
get consumed once Artemis's design (content-typed/owned/ACL'd blocks) is completed, not a get consumed once Artemis's design (content-typed/owned/ACL'd blocks) is completed, not a
bug to fix now. bug to fix now.
- [ ] `tools/README.md` documents a `fbtest.c` example that does not actually exist in - [x] `tools/README.md` documents a `fbtest.c` example that does not actually exist in
`tools/` — stale-doc discrepancy. Confirmed 2026-08-13, and the discrepancy is two-sided: `tools/` — stale-doc discrepancy. Confirmed 2026-08-13, and the discrepancy is two-sided:
`git log --all` shows `fbtest.c` was never added to the repo at any point — the table `git log --all` shows `fbtest.c` was never added to the repo at any point — the table
entry describes a tool that was documented but never built. Meanwhile `tools/ttftest.c` entry describes a tool that was documented but never built. Meanwhile `tools/ttftest.c`
(added `5f6cc05`, item 4.3.7, TrueType parser core test) is a real tool that exists on (added `5f6cc05`, item 4.3.7, TrueType parser core test) is a real tool that exists on
disk but has no README table entry at all. Left unfixed pending explicit instruction disk but has no README table entry at all.
(README edit would be a fix, not just an investigation).
> **DONE 2026-08-15.** Replaced the `fbtest.c` row with `ttftest.c`, matching the tool
> that actually exists. Doc-only, no build impact. Committed `b9e8fdc`.
- [x] **`hotwords_cache_promote()` has a NULL-write bug on a full cache.** Confirmed - [x] **`hotwords_cache_promote()` has a NULL-write bug on a full cache.** Confirmed
2026-08-13: the full-cache branch (`src/physics_hotwords_cache.c:362-371`) writes `word` 2026-08-13: the full-cache branch (`src/physics_hotwords_cache.c:362-371`) writes `word`
into `cache->cache[cache->lru_index]` unconditionally once `cache->cache_count >= into `cache->cache[cache->lru_index]` unconditionally once `cache->cache_count >=
@@ -671,3 +673,77 @@ and recorded.
enabled real compiler optimization. Nobody has re-measured, or even confirmed the old and enabled real compiler optimization. Nobody has re-measured, or even confirmed the old and
new numbers are comparable at all. Flagged in passing during item 4.5f, never formally new numbers are comparable at all. Flagged in passing during item 4.5f, never formally
scoped. scoped.
---
## F. Pre-Artemis closeout triage — 2026-08-15
Captain Bob's instruction: close everything closeable in the codebase — analysis gaps,
documentation, dead code, proofs — until Artemis (item 4.6) is the *only* remaining blocker
to further development. This section is the resulting triage of every open item above (plus
a fresh pass), bucketed so the closeable work gets done now and the rest gets a clean,
one-shot decision request instead of guesswork.
**Bucket A — closed this pass:**
- [x] `tools/README.md`'s stale `fbtest.c` row → `ttftest.c`. Commit `b9e8fdc`.
- [x] `bump-z`/`bump-y` — broken targets removed outright (ruling: redundant with the
documented `VERSION`/`LITHOS_VERSION` hand-edit convention). `.claude/CLAUDE.md` updated to
match. Commit `b9e8fdc`.
- [x] Proofs — `:`'s `compiling_word_id` tracking closed, matching CREATE/VARIABLE/CONSTANT's
depth. All 52 theories verify. Commit `ee3a2e5`. This is the natural stopping point for the
proof sweep: every remaining gap (DEFER's runtime dispatch, the FIND-family lookup itself,
vocabulary-chain mechanics, the block-window cache, the hot-words cache) needs either a new
subsystem model or is Artemis-adjacent (the block-window cache is storage-layer, downstream
of Artemis's own design) — not a same-session close.
**Bucket B — genuinely blocked, not on Artemis directly but on other unstarted work:**
- **4.4s** (`(user)` prompt segment) → blocked on ACL Phase 8 (PKI/user-minting identity
storage), itself a separate open item on CLAUDE.md's own record, not this session's scope.
- **1.11** / **4.3** (dirty-event granularity / Console umbrella) → both close only when 4.4s
closes; no independent path.
- **§17.4** (framebuffer heat/decay physics) → blocked on 1.11, same chain.
- **5.1** (DoE re-run on the Stadium substrate) and **ACL-RWT re-measurement** → both
campaign-scale QEMU-timing measurement work. Recommend running both *after* Artemis lands,
since Artemis's own storage/timing work is likely to perturb whatever gets measured now —
Captain Bob's call, not made here.
**Bucket C — needs Captain Bob's ruling, each already investigated as far as it can go
without one:**
- **`src/*.c.bak` deletion.** Confirmed stale (added at the initial commit, never touched
since, not referenced by any build wildcard, fully recoverable via `git show a5ed8c3`).
`git rm` was attempted and blocked by this session's permission classifier as a destructive
tracked-file removal. Needs Bob to run the `git rm` directly, or to confirm in a context
where the classifier allows it.
- **`CONSOLE.md`'s fate** (item 5.3). Structurally superseded by `FABRIC.md` §17.5's later,
decided ruling (utility, not a 4th Tripod VM) and by the keyboard-driver work that shipped
since. Needs either a full rewrite against §17.5/§27 as the design-of-record, or an explicit
"superseded, kept for history" header.
- **`HERMES.md`'s stale block map and cell-count table** (item 5.3). Confirmed wrong (9 cells
shipped, not 8; block map missing 4142/41444159/4175/4176). Reconciling the full map is
real work, not a one-line fix — needs a scoping decision, not a guess at what to include.
Recommend after Artemis, since Hermes's own message layout may shift again once Artemis is
a live message endpoint.
- **§12 Q5's `STADIUM_CAPACITY_TICK` wiring.** A real, verified ordering violation (the
fleet-capacity loop can fire faster than a VM's own heat loop, backwards from §22.4's
required 1000:1 separation) exists today, but is structurally invisible until a second VM's
heat loop is live long enough to race it in practice — recorded as a known defect, not an
active one. Whether to wire the existing-but-unread `STADIUM_CAPACITY_TICK` Kconfig symbol
in for real, or resolve it some other way, is Bob's call.
- **5.3's larger ask** (actually shrinking `ARTEMIS.md`/`HERMES.md`/`CONSOLE.md`/`TRIPOD.md`'s
line counts, not just fixing stale claims). Blocked on the `CONSOLE.md`/`HERMES.md` rulings
above — can't shrink a document whose fate/content isn't settled yet.
**Closed-by-ruling, not reopened this pass** (each already has a recorded "flag and leave"
decision from Captain Bob — reversing that without being asked would be exactly the
uninstructed initiative CLAUDE.md warns against): `arch_mmu_init()` stubs,
`block_subsystem.h`'s `encoding`/`blk_meta_t` dead fields, `hotwords_cache_promote()`'s
unreachable NULL-write, `m5_time_trust`/`m5_variance` dead fields.
**Net result:** after this pass, bucket A is done, bucket B is genuinely gated (mostly on
4.4s → ACL Phase 8, and on Artemis-timing-sensitivity for the two measurement items), and
bucket C is six itemized questions ready for one round of Captain Bob's rulings rather than
open-ended investigation. Nothing in B or C is closeable without either Artemis or an explicit
decision — which is the state this pass was asked to produce.