FABRIC-3.md §H: close gap #3 -- word card IS the existing ACL system

Checked capsules/ACL.4th directly: both existing modes (STRICT, TTL)
already default to allow=1, matching the word card's default-permissive
baseline. Since each VM has its own dictionary, existing per-word ACL
state is already scoped per-session for free. Confirmed: the word card is
the existing acl_ttl/acl_allow/acl_mode/acl_pinned system reused as-is,
not a new parallel structure. Surfaces one new follow-on gap: creator-
ceiling enforcement at VM birth time isn't designed anywhere yet.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
Robert Allan James
2026-09-02 18:52:32 -04:00
co-authored by Claude Opus 5
parent fdecb91908
commit 33286cb3a2
+20 -8
View File
@@ -3629,10 +3629,21 @@ the message card at once — one card per relevant axis. **Confirmed: an action
the cards for the dimensions it actually touches** — a pure VM-level operation only checks the the cards for the dimensions it actually touches** — a pure VM-level operation only checks the
VM card, not the full stack every time. VM card, not the full stack every time.
Whether/how the existing word-level ACL (`acl_ttl`/`acl_allow`/`acl_mode`/`acl_pinned` on **Word-ACL reconciliation resolved 2026-09-02.** Checked `capsules/ACL.4th` directly: both
`DictEntry`, see `.claude/CLAUDE.md`'s "Word-Level ACL System") folds into or reconciles with existing modes (`STRICT` — "always allow, TTL stays 0 (recheck always)"; `TTL` — "compute TTL
this new stack-of-cards model is unresolved — the word card (H.5) explicitly reuses one piece from heat; set allow=1") already default to `allow=1` — no path in the current system denies
of it (`ACL-TTL`), but the rest is open. by default, already matching the word card's "default-permissive baseline" almost exactly.
Since each VM has its own dictionary (H.10), the existing per-word ACL state is already
naturally scoped per-session, for free. **Confirmed: the word card is not a new parallel
structure — it's the existing `acl_ttl`/`acl_allow`/`acl_mode`/`acl_pinned` system, wholesale,
reused as-is.** The stack-of-cards framing is new vocabulary for what already exists, not a
new mechanism.
**The one genuinely new piece, not present in today's system at all**: creator-ceiling
enforcement. Nothing today caps a newly-birthed VM's word-ACL state against its parent's —
this needs to happen somewhere in capsule birth (copying/capping the child dictionary's
`acl_allow`/`acl_mode`/`acl_pinned` against the parent's own values at birth time). Where
exactly this lands in the birth flow is not yet designed.
### H.4 — VM card ### H.4 — VM card
@@ -3747,10 +3758,11 @@ Explicitly open items surfaced during this capture pass, none decided yet:
2. **CLOSED 2026-09-02 — `parent` and `name` session fields (H.2).** Confirmed as-is, no 2. **CLOSED 2026-09-02 — `parent` and `name` session fields (H.2).** Confirmed as-is, no
adjustment. All five session fields now confirmed (still subject to the general adjustment. All five session fields now confirmed (still subject to the general
"revisiting... around and around" caveat, but no longer an open gap specifically). "revisiting... around and around" caveat, but no longer an open gap specifically).
3. **Word-level ACL reconciliation (H.3).** How (or whether) the existing 3. **CLOSED 2026-09-02 — word-level ACL reconciliation (H.3).** The word card *is* the
`acl_ttl`/`acl_allow`/`acl_mode`/`acl_pinned` `DictEntry` fields fold into the stack-of- existing `acl_ttl`/`acl_allow`/`acl_mode`/`acl_pinned` system, wholesale, no new parallel
cards model, beyond the one confirmed reuse (`ACL-TTL` as the word card's escape hatch, structure. New follow-on gap surfaced by this closure: creator-ceiling enforcement at VM
H.5). birth time isn't designed anywhere yet (nothing today caps a child's word-ACL state against
its parent's).
4. **CLOSED 2026-09-02 — temporary-elevation invocation path (H.5).** Trigger decided: a live 4. **CLOSED 2026-09-02 — temporary-elevation invocation path (H.5).** Trigger decided: a live
message-based request (`ELEVATE-REQUEST` on `common` or a private topic, Zuse's session message-based request (`ELEVATE-REQUEST` on `common` or a private topic, Zuse's session
grants/`NACK`s, write happens on receipt via `ACL-ALLOW!`/`ACL-TTL!`), gated by a grants/`NACK`s, write happens on receipt via `ACL-ALLOW!`/`ACL-TTL!`), gated by a