#000071: open ticket for Joseph 3-bridge inter-chain framework

Sibling to #000070 on the second axis of Joseph (@TrudoJo)'s spec.
Joseph posted the bridge-framework extension 6h after the 6-dim
spatial-ontology: chain A has its own world rules, chain B has its
own world rules, a bridge exists only where a deterministic
agreement layer can be proven. Three kinds: Agreement, Translation,
Embassy.

Phase 1 is doc-only -- the primary contribution is a retroactive-
validation appendix naming three already-shipped arborist primitives
as Joseph-bridge-shape patterns one-for-one:

  #000066 graft-receipt mode    = Agreement bridge
  #000056 Operation Sandwich    = Translation bridge (opus-mt hash
                                  IS the translator_id)
  #000059 graveyard (proposed)  = Embassy bridge (POINTER-LINKED,
                                  banner-labelled, never promotes)

The framework is not a new requirement on arborist. It is a unifying
spec that names what we already do in 3+ places, plus surfaces a
fourth pattern (bridge atlas for multi-instance federation with
potentially-different governance_policy_hash peers) as genuinely new
work for arborist/mesh/.

Bundle:
- docs/tickets/ticket-000071-world-bridge-grammar.md (~440 lines)
- docs/TICKETS.md index row + Next ID 000071 -> 000072
- docs/tickets/ticket-000070-spatial-anchor-pi-w-object.md §6 gains
  one-line cross-reference to #000071 as adjacent axis
- Joseph memory extended to cover both frameworks

Phase 2/3/4 deferred to separate tickets. Hard constraints: A1-A3,
no audit_mode token, no SQL change at Phase 1, sovereignty rule.

Status: open, awaiting dav1d Phase 1 review + fox go/no-go.
This commit is contained in:
russell@unturf.com 2026-05-31 10:43:34 -04:00
parent d9fb6a9b69
commit bc3f94efeb
No known key found for this signature in database
3 changed files with 612 additions and 2 deletions

View file

@ -111,6 +111,7 @@ Newest first. Update on every open/close.
| ID | Title | Status | Opened | Directive |
|----------|------------------------------------------------|-----------------------|------------|-----------|
| #000071 | World-bridge grammar (Joseph 3-bridge inter-chain framework) | **open · awaiting dav1d review + fox go/no-go · doc-only Phase 1** (2026-05-31; sibling to #000070, opened same day after Joseph @TrudoJo posted his bridge-framework extension to the 6-dim spatial-ontology — "chain A has its own world rules, chain B has its own world rules, a bridge exists only where a deterministic agreement layer can be proven"). Three bridge kinds: **Agreement** (rules match, direct passage), **Translation** (rules differ but a hash-pinned adapter exists), **Embassy** (foreign-object representation with limited rights). Bridge identity: `bridge_seed = hash(src_chain_id ‖ src_node ‖ src_rule_v ‖ tgt_chain_id ‖ tgt_rule_v ‖ translator_id ‖ invariant_set)`. Joseph's sovereignty rule (hard): chain law remains local, bridge law governs translation only, **no bridge may overwrite native chain law** — guard against forced-unity failure mode. **Primary contribution: retroactive-validation appendix** naming three already-shipped arborist primitives as Joseph-bridge-shape patterns one-for-one — **#000066 graft-receipt mode = Agreement bridge**, **#000056 Operation Sandwich = Translation bridge** (opus-mt hash IS the translator_id), **#000059 bounded-ingestion graveyard = Embassy bridge** (POINTER-LINKED only, never promotes, banner-labelled). The framework is not a new requirement; it's a unifying spec that names what arborist already does in 3+ places, plus surfaces a fourth pattern (bridge atlas for multi-instance federation with potentially-different `governance_policy_hash` peers) as genuinely new work for `arborist/mesh/`. **Phase 1 is doc-only** — paper extension §7 in `docs/_source/merkle-agi-v7w-spatial-temporal.rst` + `arborist/world/bridge/__init__.py` namespace stub mirroring `arborist/world/__init__.py` discipline + Joseph-memory extension. No kernel code, no SQL change, no `cache_key` extension, no new `audit_mode` token, no bench (doc-only review surface). Phase 2 = `pi_star/bridge-seed@v1` canonicalization deliberately deferred to avoid premature locking before three implementation tickets opine. Phase 3 = per-bridge-type kernels + bridge atlas + `event_type='bridge'` writer + mesh integration. Phase 4 = cross-domain bridges (language ↔ spatial via #000015 composition theorem). **Ten open questions for dav1d** in §8: doc-only vs registry-slot-at-Phase-1 (Q1), chain_id = governance_policy_hash vs manifest hash (Q2), three-bridge taxonomy completeness (Q3), translator integrity hashing depth (Q4), bridge witness via `event_type='bridge'` (Q5), `audit_mode` discipline for translated objects (Q6), bridge privacy class default (Q7), endianness reconfirmation (Q8), Phase 2 KAT count + adversarial vectors (Q9), paper-amendment wording (Q10). Hard constraints: A1–A3, no continuous tensors, no `audit_mode` token, no SQL change at Phase 1, topic-named under `arborist/world/bridge/`. Full spec in `docs/tickets/ticket-000071-world-bridge-grammar.md`. | 2026-05-31 | — |
| #000070 | Spatial-anchor π*_w_object (Joseph 6-dim determination kernel) | **open · awaiting dav1d review + fox go/no-go · pre-review bench shipped `55b651f`** — pure-stdlib empirical-validation script (`bench/spatial_anchor_validation.py`, `make bench-spatial-anchor`, ~2 s, RNG-seed-pinned) measures: §1 avalanche mean 767.85 bits vs PRF null 768 (z = -0.49) · §2 octree chi² uniformity \|z\| < 1 at L=2,3,4 · §3 collision birthday-bound ratio 0.989 / 1.038 at L=4,6 · §4 cross-region Pearson r in [-0.018, +0.012] across all 15 pairs of H₁..H₆ (none flag at 4σ) · §5 domain separation Arm A 767.91 bits independent / Arm B **0.00 bits exact collision** confirming the dedicated-`spatial_anchor_seed` discipline. Five of ten open questions (Q1 seed source · Q2 segmentation · Q3 octree mapper · Q8 endianness · Q9 KAT adversarial vectors) now resolve by measurement; Q4/Q5/Q6/Q7/Q10 remain non-empirical design decisions for dav1d. Full empirical detail in ticket §7a. Originally surfaced 2026-05-31 when fox brought in Joseph @TrudoJo's procedural-spatial framework — "hashes do not encode the world, hashes determine the world" — and asked whether it fits arborist's substrate model. It does, cleanly. Implements the first verifier kernel under the #000013 v7-W reserved namespace (`arborist/world/__init__.py` `STATUS = "namespace_reserved"` → `kernel_in_progress` on land): a single committed 32-byte SHA-256 hash deterministically expands into six named 32-byte regions `H₁..H₆` via the HMAC-SHA-512 KDF already shipped in `arborist/substrate/anchor_prg.py` (#000035), and each region drives one quantized object dimension under a fixed canonical mapper — `H₁→octree position`, `H₂→scale level`, `H₃→quantized SO(3) rotation`, `H₄→material palette`, `H₅→raw links (reserved for π*_w_relation sibling ticket)`, `H₆→behavior code`. Domain separation from #000035 by dedicated `spatial_anchor_seed` (manifest-published) — keeps #000035's KAT freeze + dav1d 2026-05-11 final review intact. Hard constraints: stays inside A1–A3, no continuous tensors in proof path, no new `audit_mode` token (substrate commitments are not warrants — the four-rung ladder is unchanged), no SQL schema change at Phase 1, `canonicalization_version` absorbs the new `spatial-anchor-object@v1` registry slot. Phase 1 deliverable ~150 LoC + 10 KATs + tests in one PR: `arborist/substrate/spatial_anchor.py` (segmentation), `arborist/world/pi_star/object.py` (six mappers), registry entry, KAT vectors at `bench/fixtures/spatial-anchor/known-answer-tests.jsonl` matching #000035 KAT discipline, `tests/test_spatial_anchor.py` + `tests/test_world_pi_star_object.py`, substrate-paper amendment citing Joseph (@TrudoJo) in `docs/_source/merkle-agi-v7w-spatial-temporal.rst`. Position mapper at Phase 1 = octree (substrate paper §2.1 + §A worked example); H3/S2/Hilbert/Morton siblings deferred — Morton's value is purely as the relation-kernel `pair(A,B)` cheap bit-interleave and surfaces in the sibling ticket. **Ten open questions for dav1d** in §8: seed-source choice, segmentation method, position mapper, scope split (object alone vs object+relation per CLAUDE.md memory `feedback_ticket_proliferation`), privacy-class fail-closed default, `audit_mode` discipline confirmation, manifest-validator timing, endianness reconfirmation, KAT count + adversarial vectors, paper-amendment wording. Five-step §7 deletions captured: dropped the prior `/tmp/arborist-spatial-ontology-plan.md`'s geographic-search backend (encoding-route confusion), `Document.extra` lat/lon hooks (different ticket if at all), `audit_mode=HYBRID` for spatial hits (convention-illegal), geohash (subsumed by Morton), quadtree as separate (octree at z-level-0), Hilbert at Phase 1 (deferred), tier-1/2/3 hash-suite framing (conflated hard vs soft hashes), and `arborist/spatial/` namespace (violates topic-naming rule). Full spec in `docs/tickets/ticket-000070-spatial-anchor-pi-w-object.md`. | 2026-05-31 | — |
| #000069 | Arborist VIZ / Merkle Command Center (Pyramid + six.js + SSE browser dashboard) | **open · awaiting go/no-go · doc-only scaffold** (2026-05-27; filed from `/home/fox/Downloads/TICKET_0000VIZ_*`, stack corrected same day per fox). Configurable browser dashboard for inspecting arborist's content-addressed state: Merkle root explorer, proof verifier, claim warrant + graveyard, audit timeline, run-DAG replay, cache-key explainer, root diff, 3D Merkle lattice, optional circuit/activation traces. Read-only consumer; arborist proper stays source-of-truth, dashboard projects state. **Stack pinned to unturf-native** (fox 2026-05-27, supersedes proposal §3): **Pyramid + Jinja2 + SQLAlchemy** (matches `remarkbox` / `make_post_sell` / `unhomeschool.com` idiom), **SSE** (`text/event-stream` via Pyramid streaming response) for live audit/claim/falsifier patches, **vanilla JS + six.js** (fox's patched three.js fork at `git.unturf.com/gumyum/six.js` — three.js r175 + CWE-407 patches incl. ObjectBVH O(N)→O(log N); bundles vendored from `~/git/cupPCB/cdn/six/`; third-instance MOAD-0001 dogfood alongside `java-topology` + gumyum-engine) for 3D widgets and large-graph rendering, SQLite for dashboard metadata (no PostgreSQL/ClickHouse/Redis/NATS by default — promote on measured need), no React / no Next.js / no Node build step. Server-rendered SVG (or Graphviz `.dot` per existing `docs/diagrams/*.dot` pattern) replaces React Flow for run-DAG widgets. Browser-side proof verification dropped from v1 (server-side Pyramid view returns PASS/FAIL + receipt; reinstate phase-N only if third-party-verification use case surfaces). **Three filing-note gates before phase 0** (in ticket body): **F-1** sibling-repo home — implementation lives in a new `~/git/arborist-viz` (Pyramid Python, matches existing unturf apps), not in-tree; arborist's contribution is the read-API spec + view package + arborist library import via `arborist.embed`. **F-2** scope split — proposal carries 8 phases (§17 phases 0–8); recommended cut keeps phases 0–3 (schema + shell + proof/root widgets + claim/audit/run widgets) inside #000069, and spawns sibling tickets for SSE streaming (4), 3D six.js (5), massive-graph (6, only if measured need surfaces), circuit-tracing (7, gated on #000062), embeddable widgets (8) — Dav1d-audience rule. **F-3** upstream prereqs — phase 7 (circuit/activation) consumes **#000062 Mechanistic Witness**'s `MechanisticWitnessRoot`; phase 3's claim-graveyard widget projects **#000059**'s bounded-ingestion graveyard. Hard constraints: arborist soft-vs-hard discipline applies verbatim (attribution weights renderable but never `audit_mode`, never causal without intervention/ablation evidence); private-leaf default-deny (commitments + hashes + redacted maps only without explicit auth); every widget exposes its data query + source roots. Reserved scope: NOT a replacement for `arborist controller-events` / `arborist analyze` / `arborist inspect` CLI — those stay canonical inspector surfaces; VIZ is the projection layer. | 2026-05-27 | — |
| #000068 | Verifier-blind missed-answer falsification guard | **in progress · Phase 1+2+3 landed 2026-05-27 · Phase 4 default flip NO-GO** (Phase 2 bench 2026-05-27 76q × n=3 claim_lattice Hermes-3-8B: 2/228 sidecar fires, both STRONG confidence, both the Ballestrini regression fixture, 100% precision, 0/226 false positives across non-Ballestrini runs. Phase 3 demote flag opt-in via `--demote-on-missed-answer` on `query`/`ask` — wires `EVIDENCE-WARRANTED → EVIDENCE-MISSED-PARTIAL` for strong/medium confidence on lattice modes; lower rungs + non-lattice modes get `· missed-answer` tail tag. `answerability_demote_enabled` added to `_VERIFIER_POLICY_FIELDS` so flipping the flag partitions cache via verifier_policy_hash. Default OFF per Dav1d Phase 4 NO-GO — 100% precision at n=2 fires is too few samples to claim precision floor empirically; default flip blocks on wider bench + human spot-check. 47 tests (36 Phase 1 + 11 Phase 3) all passing. End-to-end verified live: 4/4 Hermes runs on Ballestrini with --demote-on-missed-answer rendered EVIDENCE-MISSED-PARTIAL.) Original opening 2026-05-27 (Dav1d de-novo review GO for Phase 1 with seven hardenings folded into spec — subject-token cue-stripping, answer-type alignment, confidence_class, candidate cap=10, precise offset_start/end/basis, cache-hit recompute-on-read, Phase 1 out of verifier_policy_hash). Original opening 2026-05-27; sibling to the user-payload-layout work shipped 2026-05-26, split out per the Dav1d-audience rule — `feedback_ticket_proliferation`). Surfaced by the Ballestrini case: evidence E2 literally contained the song names, Hermes-3-8B under `user_payload_layout=tail` said *"specific songs by her are not mentioned in the provided evidence blocks"*, verifier marked the run `EVIDENCE-WARRANTED` 2/2 because nothing positive was unsupported. **Verifier-blind false-negative class** — existing layered verifier (quote/span/entity/paraphrase + Rule 8 + Rule 9 + claim ceiling) guards unsupported *presence*, has no hook for unsupported *absence*. Layout fixes attention placement on the specific instance (n=3 bench 2026-05-27 confirms bookend/per_chunk recover Ballestrini); layout alone can't close the class — adversarial phrasing or bigger prompt resurfaces it under any layout. Proposed deterministic sidecar in `arborist/qa/inspect.py:diagnose_missed_answer`: three-clause conjunction — **(A)** answer matches denial pattern ("not mentioned", "not provided", "the evidence does not say", …, closed list versioned via `denial_patterns_version`); **(B)** question is extraction shape (reuse `arborist.qa.quantifier` classifier — `ALL`/`COMPREHENSIVE`/`OPEN_REQUEST` intensities, OR surface cues "songs by"/"works by"/"who wrote"/"list"/"name all"); **(C)** evidence contains candidate spans near subject tokens (reuse `entity_proximity_n`/`entity_proximity_window` from verify.py — quoted strings, title-case spans, comma-separated title lists within W chars of stemmed subject content tokens). All three must fire. Output: `result["answerability"]` with `missed_answer_candidate_spans` list (evidence_id + offset + text). **Hash discipline:** sidecar fields (`denial_patterns_version`, `extraction_cues_version`, `answerability_threshold`) fold into `governance_policy_hash` only; an optional `answerability_demote_enabled` flag (default OFF) wires `EVIDENCE-WARRANTED → EVIDENCE-MISSED-PARTIAL` in `_render_audit_label`, and IF on folds into BOTH `governance_policy_hash` AND `verifier_policy_hash` (changes rendered audit_mode, so verifier hash must move — the deliberate opt-in moves the verifier hash, sidecar-only stays out). No LLM-as-judge. Never writes `providence_cache`/`audit_events`. Never promotes claims. Pattern verbatim from `arborist.qa.inspect.diagnose_*` (deflection, coherence, title-relevance). Phases: 1 sidecar read-only, 2 bench + threshold tuning, 3 demote opt-in, 4 default decision (bench-gated). 5F-Falsification fixture: Ballestrini case already in `bench/qa_questions.txt` under "entity list". Full spec in `docs/tickets/ticket-000068-verifier-blind-missed-answer-guard.md`. | 2026-05-27 | D2 |
@ -184,4 +185,4 @@ Newest first. Update on every open/close.
## Next ID
`000071`
`000072`

View file

@ -632,7 +632,8 @@ exact byte-level behavior under review.)
| #000049 | Attribution-aware grounding check | Architectural sibling — split from #000048 because NLI raised a fresh `audit_mode` question that needed its own dav1d-review surface. Same shape as the §2.4 split-or-extend decision here. |
| v7-W paper | `docs/_source/merkle-agi-v7w-spatial-temporal.rst` (658 lines) | Specification this kernel implements. §A worked example informs default manifest shape. |
| v7 paper | `docs/_source/merkle-agi-dag-v7.rst` §9.10 / §9.10.1 | φ_PRG amendment context. Domain-separation argument inherits from §9.10. |
| Joseph framework | Memory: `joseph_trudojo_6dim_spatial_ontology.md` | Author attribution. The six-dimension `H₁..H₆` split is Joseph (@TrudoJo)'s. Substrate paper amendment under this ticket cites him. |
| Joseph framework (6-dim) | Memory: `joseph_trudojo_6dim_spatial_ontology.md` | Author attribution. The six-dimension `H₁..H₆` split is Joseph (@TrudoJo)'s. Substrate paper amendment under this ticket cites him. |
| #000071 | World-bridge grammar (Joseph 3-bridge inter-chain framework) | **Adjacent axis**, opened 2026-05-31 alongside this ticket. Joseph's bridge framework (Agreement / Translation / Embassy bridges + bridge-seed formula) lives on a different axis: #000070 governs *intra-chain identity* (one hash → one object inside one world); #000071 governs *inter-chain treaties* (a bridge between two worlds with potentially different rule grammars). Adjacent, not overlapping — dav1d's #000070 review proceeds independently. |
| Prior plan | `/tmp/arborist-spatial-ontology-plan.md` (2026-05-31, not in repo) | The plan this ticket replaces. Five-step §2 deletions captured in §7 below. |
## 7. Five-step alignment

View file

@ -0,0 +1,608 @@
# Ticket #000071 — World-bridge grammar (Joseph 3-bridge inter-chain framework)
**Status:** open · awaiting dav1d review + fox go/no-go ·
**doc-only Phase 1** (paper + retro-validation of shipped primitives;
no kernel code lands on go)
**Opened:** 2026-05-31
**Scope:** Spec the bridge-grammar layer for v7-W. **Joseph (@TrudoJo)**'s
second framework (2026-05-31): every chain has its own world-rules
(`chain = cryptographic history + rule grammar + world mapper`); bridges
between chains exist only where a deterministic agreement layer can be
proven. Three bridge kinds — **Agreement** (direct passage when rules
match), **Translation** (mediated passage through a hash-pinned
adapter), **Embassy** (foreign-object representation with limited
rights). Bridge identity is a deterministic seed:
`bridge_seed = hash(src_chain_id ‖ src_node ‖ src_rule_v ‖ tgt_chain_id ‖ tgt_rule_v ‖ translator_id ‖ invariant_set)`.
Phase 1 is **doc-only** — a substrate-paper extension at
`docs/_source/merkle-agi-v7w-spatial-temporal.rst` plus a retroactive-
validation appendix naming three already-shipped arborist primitives
(#000066, #000056, #000059) as Joseph-bridge-shape patterns. Sibling
implementation tickets per bridge type land later.
**Audience:** dav1d (primary review), v7-W substrate-paper maintainers,
mesh-protocol maintainers (`arborist/mesh/`), Joseph (@TrudoJo, original
framework author), #000013 follow-up, #000070 adjacent axis,
#000056 / #000066 / #000059 retro-validation, #000015 generalization
target.
**Hard constraint:**
- Stays inside A1–A3 (canonical encoding, public quantization,
collision-resistant hash). No new axiom.
- **Joseph's bridge sovereignty rule (hard).** Chain law remains local;
bridge law governs translation only; **no bridge may overwrite native
chain law**. The bridge is a treaty, not an empire. This is the
guard against the "forced unity" failure mode Joseph flags in §5 of
the framework.
- **Translator identities hash-pinned.** Translation bridges depend on
a fixed translator; the translator's identity hash binds into the
`bridge_seed`. Matches #000056 opus-mt hash-pinning discipline; no
exception for "model-of-the-week" adapters.
- **No new `audit_mode` token.** Bridges produce commitments
(`bridge_seed`, bridge geometry), not warrants. CLAUDE.md verifier-
stays-binary discipline applies unchanged; foreign-object embassy
representations stay POINTER-LINKED at best, never promote to
EVIDENCE-WARRANTED. Joseph's "embassy bridge" semantics MATCH
arborist's graveyard-and-witness pattern (#000059) one-for-one.
- **No new SQL table at Phase 1.** Phase 1 is paper + retro-validation
+ namespace stub only. Bridge persistence schema (Phase 3+) is a
separate ticket; folding it into v9.8 `cache_key` via a new
`bridge_canonicalization_version` dimension is deferred for explicit
fox + dav1d sign-off.
- **Topic-named, not version-prefixed.** Lands under
`arborist/world/bridge/` (sibling to `arborist/world/pi_star/` from
#000070), not `arborist/v7w_bridge/` or `arborist/bridge/`.
---
## 1. Problem statement
### 1.1 What #000013 left undefined (axis 2)
The v7-W substrate paper at
`docs/_source/merkle-agi-v7w-spatial-temporal.rst` §1.1 lists five
world-state object kinds: objects, relations, events, places,
agents. It does **not** name a `bridge` or `chain` kind. The paper
implicitly assumes a *single* world — one manifest, one grid, one
frame anchor — and defers federation to "out of scope" §6
discussion of surveillance/privacy.
This is fine for the v7-W *single-world commitment* layer. It
leaves *inter-world translation* unspecced. With multiple arborist
peers running with potentially different `governance_policy_hash` /
`canonicalization_version` values (the multi-instance federation
case the mesh layer in `arborist/mesh/` is positioned for), the
question "what bytes can peer A and peer B agree on, and under
what translator?" has no formal answer today.
### 1.2 Joseph's framework (verbatim core)
2026-05-31 fox brought in Joseph (@TrudoJo)'s second framework.
Verbatim cores:
> **Chain A has its own nodes. Chain A has its own world rules.**
> Chain B has its own nodes. Chain B has its own world rules.
> A bridge exists only where a deterministic agreement layer can be
> proven.
> A chain is not just a list of hashes. It becomes:
> `Chain = cryptographic history + rule grammar + world mapper`
> **Three bridge kinds:**
> - **Agreement** — rules match directly: `A.object.position == B.object.position`. Strongest bridge.
> - **Translation** — rules do not match, but a deterministic adapter exists. The adapter itself must be hashed and versioned, otherwise the translation drifts.
> - **Embassy** — rules cannot fully translate, but one chain can host a representation of the other. The object appears as a foreign object with limited rights.
> **Bridge seed:**
> `bridge_seed = hash(src_chain_id ‖ src_node ‖ src_rule_version ‖ tgt_chain_id ‖ tgt_rule_version ‖ translator_id ‖ invariant_set)`
> **The real rule:** chain law remains local; bridge law governs
> translation; no bridge may overwrite native chain law. The bridge
> is a treaty, not an empire.
> **Where rules agree, merge. Where rules translate, bridge. Where
> rules conflict, quarantine. Contradiction → no bridge.**
### 1.3 Why this fits arborist — retroactive validation
The most important finding of this ticket: **Joseph's bridge
framework names what arborist already does in three places.**
Cross-checked against ground truth on 2026-05-31:
| Joseph concept | Already-shipped arborist primitive | Shape match |
|---|---|---|
| **Chain = cryptographic history + rule grammar + world mapper** | v9.8 8-dim `cache_key` — `source_root + question_hash + model_profile_hash + conversation_hash + governance_policy_hash + schema_version + canonicalization_version + chunking_version`. Each instance with distinct hashes IS a distinct "chain" by Joseph's definition. | exact |
| **Shared invariants** (Merkle root, state commitment, rule-version hash) | `document_root`, `source_root`, chunk `leaf_hash`, `cache_key`, `audit_event_hash`, `governance_policy_hash`, `canonicalization_version` | exact (these are the "common handles" Joseph names) |
| **Agreement bridge** — rules match, direct passage | **#000066 cold-pack overlay / graft mode** (Wikipedia 2010 / current / arxiv-cs corpora packs). `INSERT OR IGNORE` on content-addressed PKs collapses dupes; **graft receipt** = the bridge witness (`event_type='graft'` event carrying `pack_hash`, `snapshot_root`, `corpus_name`, `event_count`, `first_event_hash`, `last_event_hash`, `manifest_root`). Pack chain stays a "witnessed subgraph"; host chain takes the receipt. Joseph's framework gives a name to what we already shipped. | exact |
| **Translation bridge** — deterministic hash-pinned adapter | **#000056 Operation Sandwich** — cross-language MT on the edges. Adapter (opus-mt es/fr/ru↔en) is hash-pinned in `RetrievalPlan.mt_*`; MT never re-enters the verifier; English answer verified English-vs-English; Spanish display banner-labeled with zero grounding. The bridge IS the sandwich. | exact |
| **Embassy bridge** — foreign-object with limited rights | **#000059 bounded-ingestion graveyard** (proposed) + **falsified-but-witnessed claims**. A peer's claim is pinned as evidence (commitment), never promoted to warrant (no `EVIDENCE-WARRANTED`, no `STRICT`). Witness marker remains. Joseph's "appears as a foreign object with limited rights" maps one-for-one to graveyard semantics. | exact |
| **Bridge seed formula** `hash(src_chain_id ‖ src_node ‖ src_rule_v ‖ tgt_chain_id ‖ tgt_rule_v ‖ translator_id ‖ invariant_set)` | Structurally identical to the v9.8 8-dim `cache_key` composition. Same Merkle-style content addressing; bridge-specific roles instead of QA-specific ones. | structural |
| **Chain sovereignty** ("no bridge may overwrite native chain law") | Verifier-stays-binary + "MT on the edges only" + soft-vs-hard-hash discipline. Same rule, restated as a federation principle. | exact |
**Implication.** Joseph's bridge framework is not a *new requirement*
on arborist. It is a *unifying spec* that retroactively names three
already-shipped patterns (graft / sandwich / graveyard) as one
architectural family, and surfaces a fourth pattern (bridge atlas
for multi-instance federation) as genuinely new work for the mesh
layer.
This is unusual ticket shape: most of Phase 1's value is **paper
work** (giving names to existing primitives + folding them into one
framework), not new code.
## 2. Design choices
### 2.1 Phase 1 deliverable shape — paper vs paper + code
**A. Doc-only Phase 1 (recommended).**
Phase 1 ships:
- An extension to `docs/_source/merkle-agi-v7w-spatial-temporal.rst`
introducing the bridge layer (§2 axis 2, sibling to the 6-dim
object axis from #000070).
- A retroactive-validation appendix (referenced as §10 in this
ticket's bench section) cross-referencing #000066, #000056,
#000059 as Agreement / Translation / Embassy bridges respectively.
- A namespace stub at `arborist/world/bridge/__init__.py` mirroring
`arborist/world/__init__.py`'s `STATUS = "namespace_reserved"`
discipline.
No kernel code. No new SQL. No registry slots. No bench. Per-bridge-
type implementation kernels (`arborist/world/bridge/agreement.py`,
`bridge/translation.py`, `bridge/embassy.py`) are sibling tickets
when fox prioritizes them.
- **Strength:** paper-first matches #000013's discipline; cheap to
land; retroactive-validation discipline gives dav1d a focused
doc-review surface.
- **Cost:** no executable validation at Phase 1. The retroactive-
validation claim is checked by code-reading, not bench.
**B. Paper + π*_w_bridge registry slot at Phase 1.**
Add to Phase 1: a registered `pi_star/bridge-seed@v1` projection that
computes `bridge_seed` deterministically from
`(src_chain_id, src_node, src_rule_v, tgt_chain_id, tgt_rule_v,
translator_id, invariant_set)`. Per-bridge-type mappers stay deferred.
- **Strength:** locks the bridge-seed canonicalization at Phase 1, so
downstream implementations cannot drift.
- **Cost:** Phase 1 grows from paper-only to paper + 100 LoC + KATs
+ tests. Picks a canonicalization (ordering, separator bytes,
invariant-set serialization) before three implementation tickets
have any opinion on the right shape. Premature locking.
**Recommendation: A.** Doc-only Phase 1. The bridge seed is too
sensitive a canonicalization to lock before per-bridge-type kernels
have informed the shape.
### 2.2 Bridge-seed canonicalization (DEFERRED to Phase 2)
When Phase 2 lands `pi_star/bridge-seed@v1`, the canonical bytes for
`bridge_seed` must pin:
- **Chain identifiers** — what counts as a `chain_id`? Joseph's
framework leaves this open. Two candidates:
- **(a) `governance_policy_hash`** — every cache-key partition is a
chain. Matches Joseph's definition (`chain = cryptographic
history + rule grammar + world mapper`) one-for-one.
- **(b) v7-W manifest hash** — every committed substrate manifest is
a chain. Closer to Joseph's "rule grammar" framing; ignores
QA-policy churn.
- Recommendation (Phase 2): `(a)` — `governance_policy_hash`
already changes whenever any policy field changes, including the
verifier-rule subset, MT engine identity, π* registry version.
It's the union surface. (b) would miss QA-side rule drift.
- **Node identifiers** — what counts as `src_node` / `tgt_node`?
Recommendation (Phase 2): a content-addressed handle valid in BOTH
chains' invariant sets. Default: a `document_root` if both chains
agree on that schema; otherwise the bridge's invariant set must
declare a translator that maps node identities (`src_node →
tgt_node`).
- **Rule version** — `governance_policy_hash` at bridge-establishment
time. Locking this means re-establishment is required if either
chain bumps policy. That's the right semantics (a treaty signed
under one law is not auto-binding under a new law).
- **Translator id** — for Agreement bridges: the empty 32-byte hash
(no translator). For Translation bridges: SHA-256 of the
translator's canonical bytes (e.g. opus-mt model hash). For Embassy
bridges: SHA-256 of the embassy contract bytes (Phase 3 spec).
- **Invariant set** — a canonical sorted list of `(invariant_kind,
invariant_hash)` tuples committed at bridge-establishment time.
Recommendation (Phase 2): one of `merkle_root`, `state_commitment`,
`rule_version_hash`, `address`, `signature_proof`,
`timestamp_window`. Closed list versioned by
`invariant_kind_set_version`.
- **Encoding** — little-endian, matching v7 §A1 / #000035 / #000070.
Phase 2 will face the same KAT-discipline question #000070 faced;
Phase 2 will also need a domain-separation seed of its own
(`bridge_anchor_seed`), distinct from `spatial_anchor_seed` (#000070)
and `anchor_prg_seed` (#000035).
### 2.3 Bridge kind taxonomy — formalization
Phase 1 paper extension formalizes the three bridge kinds as follows.
Each kind names a **decision rule** the bridge runtime evaluates at
the moment two chains attempt to exchange.
**Agreement bridge (`bridge_kind = 'agreement'`).**
- Decision rule: `src_rule_v == tgt_rule_v` AND `invariant_set`
contents are byte-identical when serialized canonically.
- Result: direct passage. Source object enters target chain native.
- **`bridge_seed`'s `translator_id` field** = the empty 32-byte hash
(no translator needed).
- **Arborist retro-validation:** #000066 graft-receipt mode. Same
`governance_policy_hash` peers exchange packs; `INSERT OR IGNORE`
on content-addressed PKs is the agreement; the graft receipt is the
bridge witness.
**Translation bridge (`bridge_kind = 'translation'`).**
- Decision rule: `src_rule_v ≠ tgt_rule_v` BUT a registered
`translator_id` exists in the bridge atlas mapping
`(src_rule_v, tgt_rule_v) → translator`.
- Result: mediated passage. Source object passes through translator;
output enters target chain as a *translated native object*.
- **Translator integrity:** the translator's identity hash binds into
`bridge_seed`; a translator change at runtime invalidates the
bridge (same shape as #000035 KAT discipline + #000056 opus-mt
hash-pinning).
- **Arborist retro-validation:** #000056 Operation Sandwich. Spanish
query → opus-mt → English query → English-vs-English verifier →
English answer → opus-mt → Spanish display. The opus-mt model hash
IS the `translator_id`.
**Embassy bridge (`bridge_kind = 'embassy'`).**
- Decision rule: `src_rule_v ≠ tgt_rule_v` AND no translator exists
(or the translator is explicitly declared as `embassy`).
- Result: foreign-object passage with limited rights. Source object
appears in target chain as a witnessed proxy: commitment only, no
warrant promotion, no native-rule extension.
- **Limited rights** (Phase 1 paper formalizes; Phase 3 ticket
implements):
- May be cited as evidence (POINTER-LINKED at best).
- May NOT promote to `EVIDENCE-WARRANTED` / `STRICT`.
- May NOT extend the target chain's rule grammar.
- MUST display the embassy banner (matches #000056 display-only
Spanish banner discipline).
- **Arborist retro-validation:** #000059 bounded-ingestion graveyard
(proposed). A peer's claim enters as a fingerprint witness, never
promotes.
**Quarantine vs no bridge.** Joseph's §6 also names two non-bridge
outcomes: **quarantine** (rules conflict; bridge inhibited but
boundary objects allowed) and **no bridge** (rules contradict;
exchange impossible). Phase 1 paper formalizes these as the
`bridge_kind` enum values `'quarantine'` and `'no_bridge'`:
- `quarantine`: a bridge object exists but its allowed-object set
is empty; the object IS the boundary marker.
- `no_bridge`: no bridge object; attempted exchange raises at the
atlas layer.
### 2.4 Bridge atlas — multi-instance protocol (DEFERRED to Phase 3)
The bridge atlas is the runtime registry that holds bridge objects
between known chains. It is genuinely new work — arborist's
`arborist/mesh/` layer today does group keys + epochs + roster but
assumes peers share `governance_policy_hash`. The atlas lets peers
with different `governance_policy_hash` values selectively exchange
under explicit bridges.
Phase 3 ticket will specify:
- Atlas schema (`bridge_atlas` table or sibling-DB pattern).
- Bridge discovery (who advertises bridges, how peers learn).
- Bridge establishment protocol (consent, signature, witness).
- Bridge revocation + decay (Joseph names "decay" as a bridge
geometry property).
- Cross-chain quorum semantics (does an Agreement bridge between
3-of-5 peers count? — likely #000037 controller territory).
NOT in Phase 1 scope. Listed here so dav1d sees the full picture.
### 2.5 Audit-chain composition — graft receipt as bridge witness
#000066 already specifies the **graft receipt** as the witness
pattern: one `event_type='graft'` event in the host chain carries
the absorbed pack chain's bookend hashes, and the pack file itself
becomes the durable witness for the absorbed events.
Phase 1 paper extension formalizes this as the **canonical bridge
witness pattern**: every bridge object (Agreement, Translation, or
Embassy) writes one audit event of `event_type='bridge'` carrying
`(bridge_kind, bridge_seed, src_chain_id, tgt_chain_id, translator_id,
invariant_root)`. The body matches Joseph's bridge-seed inputs
one-for-one. Source-chain commitments stay in their own audit
chains; the bridge event is a witness pointer.
**`append_audit` extension (Phase 3 ticket).** The
`arborist.store.append_audit` helper would gain a `bridge` event
type; Phase 1 spec only.
### 2.6 audit_mode discipline — bridges produce commitments, not warrants
CLAUDE.md: "`audit_mode` is decided by the verifier, never
asserted." A bridge produces a `bridge_seed`, a witness event, and
(for Translation/Embassy) a translated/proxied representation. None
of these are warrants for any claim. The verifier discipline (quote
/ span / entity / paraphrase) is unchanged by Phase 1.
Translated objects ride the bridge into the target chain's
warrant-eligibility pool only if both:
- (a) The target chain's verifier accepts the source-language
evidence in its own language under the existing rules
(English-vs-English for #000056).
- (b) The translator hash is the one bound into the bridge_seed.
Embassy objects never enter the warrant-eligibility pool. They are
pure witnesses (CLAUDE.md: "soft never enters proof path"
generalization).
This is the most important conceptual discipline of this ticket.
The bridge layer must not become a sneak path for promoting
foreign-rule warrants past the local verifier.
### 2.7 Privacy / surveillance
v7-W paper §6 surveillance discussion applies doubly to bridges:
a bridge object exposes the existence of a relationship between two
chains. Phase 1 paper extension flags this; Phase 3+ implementation
tickets will need to declare bridge-privacy class (public vs
ZK-with-selective-disclosure) parallel to v7-W manifest privacy
class.
### 2.8 Endianness
Little-endian throughout, matching v7 §A1 / #000035 / #000070 /
phase-2 bridge-seed canonicalization. No exceptions.
## 3. Recommendation
**Phase 1 deliverable** — paper-only, no code:
1. **`docs/_source/merkle-agi-v7w-spatial-temporal.rst`** — new section
"§7 — World-bridge grammar (axis 2)" with:
- Joseph's framework verbatim core (§1.2 of this ticket).
- Three-bridge-kind taxonomy formalization (§2.3).
- `bridge_seed` formula and the canonicalization deferred to Phase 2
(§2.2).
- Sovereignty rule (chain law local, bridge law translation-only).
- **Retroactive-validation appendix** explicitly naming #000066 /
#000056 / #000059 as Agreement / Translation / Embassy bridges
respectively. This is the most load-bearing paragraph of Phase 1
— the framework's primary contribution is naming, not
prescribing new behavior.
- Bridge witness pattern (§2.5) and the deferred `bridge` audit
event type.
2. **`arborist/world/bridge/__init__.py`** — namespace stub mirroring
`arborist/world/__init__.py` discipline. `BRIDGE_VERSION =
"v0-draft"`, `STATUS = "namespace_reserved"`. No exports.
3. **Joseph memory** (`joseph_trudojo_6dim_spatial_ontology.md`)
extension — fold the bridge framework into the existing reference
memory so future attribution stays unified.
4. **No bench, no KATs, no SQL changes, no `cache_key` extension, no
new `audit_mode` token, no `governance_policy_hash` field, no
verifier change.**
**Phase 2** (separate ticket, post-Phase-1 paper review):
`pi_star/bridge-seed@v1` registered with the full
canonicalization per §2.2 decisions. KATs at
`bench/fixtures/bridge-seed/known-answer-tests.jsonl` matching
#000070's discipline.
**Phase 3** (separate ticket):
- `arborist/world/bridge/{agreement,translation,embassy}.py` kernels.
- `bridge_atlas` schema.
- `arborist.store.append_audit` extended for `event_type='bridge'`.
- Multi-instance bridge discovery + establishment protocol
(`arborist/mesh/` integration).
- Bridge revocation + decay semantics.
**Phase 4** (separate ticket, depends on #000015):
- Cross-domain bridges — bridging arborist v9.8 language claims into
v7-W spatial commitments via the #000015 π* composition theorem.
This is where the agi-axis composition lives.
## 4. Implementation sketch (Phase 1 only)
```python
# arborist/world/bridge/__init__.py
"""``arborist.world.bridge`` — v7-W bridge-grammar substrate (#000071).
Reserved namespace. The bridge-grammar paper extension at
``docs/_source/merkle-agi-v7w-spatial-temporal.rst`` §7 specifies the
contract; this package will host the implementation when fox
prioritizes per-bridge-type kernel work.
Status: namespace stub only. No kernels, no schema, no API surface
yet. Importing this package succeeds (the module loads and reports
its draft version) but nothing else is exported.
Future shape (per Phase 3 ticket roadmap):
::
arborist/world/bridge/
├── __init__.py # this stub
├── agreement.py # `bridge_kind='agreement'` kernel
├── translation.py # `bridge_kind='translation'` kernel
├── embassy.py # `bridge_kind='embassy'` kernel
├── seed.py # bridge_seed canonicalization (Phase 2)
├── atlas.py # bridge atlas (multi-instance)
├── audit.py # `event_type='bridge'` writer
└── adapters/ # translator adapters live here
The substrate paper's hard constraint applies: chain law remains
local; bridge law governs translation; no bridge may overwrite
native chain law.
Retroactive-validation appendix (paper §7.4): the following arborist
primitives are *already* bridge-shape patterns and remain so when
this namespace ships:
- #000066 cold-pack graft mode → Agreement bridge
- #000056 Operation Sandwich → Translation bridge
- #000059 bounded-ingestion graveyard (proposed) → Embassy bridge
"""
from __future__ import annotations
__all__ = ["BRIDGE_VERSION", "STATUS"]
BRIDGE_VERSION = "v0-draft"
"""Draft bridge-grammar version. Bumps on every spec change before v1
freeze. Once a kernel ships, BRIDGE_VERSION pins the manifest version
the kernel emits."""
STATUS = "namespace_reserved"
"""Reservation status. Becomes ``kernel_in_progress`` when the first
bridge kernel lands; ``v1`` once all three bridge kinds have passing
tests + bench fixtures + multi-instance atlas."""
```
Paper section template — to be drafted in
`docs/_source/merkle-agi-v7w-spatial-temporal.rst` §7:
- §7.1 Problem statement (§1.1 of this ticket)
- §7.2 Joseph framework (§1.2 verbatim)
- §7.3 Three-kind taxonomy (§2.3 formalization)
- §7.4 **Retroactive-validation appendix** (§1.3 table, expanded)
- §7.5 Bridge-seed canonicalization (§2.2 deferred to Phase 2)
- §7.6 Sovereignty rule
- §7.7 Bridge witness pattern + `event_type='bridge'`
- §7.8 Privacy carries through from §6
- §7.9 Out-of-scope: SLAM, ZK, per-bridge-type kernels, atlas
## 5. Scope boundaries (what this ticket does NOT do)
- **No per-bridge-type kernel code.** `agreement.py`,
`translation.py`, `embassy.py` are Phase 3 tickets.
- **No `bridge_seed` canonicalization.** Phase 2 ticket; this ticket
deliberately defers to avoid premature locking.
- **No `pi_star/bridge-seed@v1` registry slot.** Phase 2.
- **No bridge atlas schema.** Phase 3.
- **No `event_type='bridge'` writer.** Phase 3.
- **No `bridge_canonicalization_version` cache-key dimension.** Phase
3 (and only with explicit fox + dav1d sign-off — adding a 10th
cache-key dimension is consequential).
- **No mesh-layer changes.** `arborist/mesh/` group-key state machine
stays unchanged; Phase 3 will extend.
- **No KATs, no bench.** Doc-only Phase 1.
- **No `Document.extra` extensions.** Bridges do not live on
documents.
- **No new `audit_mode` token.** Bridges produce commitments, not
warrants.
- **No retroactive code change to #000066 / #000056 / #000059.** The
retroactive-validation appendix is *naming*, not *refactoring*.
Each existing primitive stays where it is, doing what it does.
Only the paper picks up the bridge-shape vocabulary.
- **No #000015 generalization at Phase 1.** Cross-domain bridges
(language ↔ spatial) are Phase 4.
## 6. Cross-references
| Ref | Title | Relationship |
|---|---|---|
| #000070 | Spatial-anchor π*_w_object (Joseph 6-dim) | **Adjacent axis**, opened same day. #000070 is intra-chain object identity (one hash → one object inside one world); #000071 is inter-chain treaties (a bridge between two worlds). Different axes; #000070 dav1d review proceeds independently. |
| #000013 | Spatial-temporal substrate (v7-W) | Parent. The bridge layer extends the v7-W paper with axis 2. Reopens #000013 status from `namespace_reserved` to `kernel_in_progress` once this Phase 1 paper extension lands. |
| #000066 | Cold-pack overlay / graft mode | **Retroactive validation — Agreement bridge.** Already shipped (scaffold). Phase 1 names graft-receipt as the canonical Agreement bridge witness pattern; no code change to #000066 itself. |
| #000056 | Operation Sandwich (cross-language MT) | **Retroactive validation — Translation bridge.** Already shipped. opus-mt model hash IS the `translator_id`; Phase 1 names sandwich as the canonical Translation bridge. |
| #000059 | Bounded-ingestion graveyard (proposed) | **Retroactive validation — Embassy bridge.** Joseph's "foreign object with limited rights" maps one-for-one to graveyard semantics. Phase 1 names this. |
| #000001 §7 | Cross-language transforms | Companion to #000056; same retro-validation as Translation bridge. The "fail-closed reject DAG" for `CROSS_LANGUAGE_UNSUPPORTED` is the `no_bridge` outcome from Joseph's §6. |
| #000015 | π* cross-domain composition | Future. Cross-domain bridges (language ↔ spatial) are Phase 4; #000015 supplies the composition theorem. |
| #000018 | Soft-hash covert channel | Hard-hash discipline inherits. Bridge seeds are hard-channel commitments. |
| #000035 | PRG choice (φ_PRG HMAC-SHA-512) | Phase 2 `pi_star/bridge-seed@v1` will need its own seed (`bridge_anchor_seed`) distinct from `spatial_anchor_seed` (#000070) and `anchor_prg_seed` (#000035). Same domain-separation discipline. |
| #000037 | Controller / consensus | Phase 3 bridge atlas may need multi-peer consensus on bridge establishment; #000037 territory. |
| #000049 | Attribution-aware grounding check | Sibling-split pattern reference. The bridge framework is exactly the kind of architectural-inflection split where a separate dav1d-review surface is correct (CLAUDE.md memory `feedback_ticket_proliferation`). |
| v7-W paper | `docs/_source/merkle-agi-v7w-spatial-temporal.rst` | Specification this ticket extends with §7. |
| Joseph framework (6-dim) | Memory: `joseph_trudojo_6dim_spatial_ontology.md` | Same memory file extended to cover both frameworks. Sibling axes; one author. |
## 7. Five-step alignment
1. **Requirements less dumb.** Joseph (@TrudoJo) authored both
frameworks (6-dim 2026-05-31 + bridges 6 hours later same day);
fox brought both in. Names, not departments.
2. **Delete the part or the process.** Phase 1 is paper-only — no
code lands. The strongest deletion is the *non-decision* to
defer bridge-seed canonicalization to Phase 2 instead of locking
it now. Premature canonicalization would foreclose
per-bridge-type kernel decisions. ~50% of "we could write Phase
1 with seed canonicalization included" deleted.
3. **Simplify.** One paper section extension; one namespace stub;
one memory update. No new code surface. Phase 1's primary
contribution is *naming what we already do*.
4. **Cycle time.** Doc-only Phase 1 lands in one PR (~400 lines of
prose); no test harness needed.
5. **Automate.** No automation surface — there is no per-bridge-type
automation to add until Phase 3 kernels exist.
## 8. Open questions for dav1d
1. **§2.1 — doc-only Phase 1 vs paper + π*_w_bridge registry slot.**
Recommendation A (doc-only) defers bridge-seed canonicalization to
Phase 2 to avoid premature locking. Acceptable, or should Phase 1
ship the `pi_star/bridge-seed@v1` slot to lock canonical bytes now
while three implementation tickets are still ahead?
2. **§2.2 — `chain_id = governance_policy_hash` vs v7-W manifest
hash.** Recommendation `(a)` covers QA-policy churn. Acceptable,
or does the chain identifier need narrower semantics (one chain
per substrate-manifest version, ignoring QA changes)?
3. **§2.3 — three-bridge taxonomy completeness.** Joseph's
framework names Agreement / Translation / Embassy plus the
Quarantine and No-bridge non-bridge outcomes. Does the taxonomy
cover all cases dav1d has seen, or is there a fifth case (e.g.
*partial-translation bridge*, where the translator handles some
fields but not others)?
4. **§2.3 — Translation bridge's translator integrity.** Phase 1
spec says translator identity hash binds into `bridge_seed`.
Should the spec also require the translator's *implementation*
(not just identity) to be content-addressed (cf. #000049
model-in-proof-path cage), or is identity-hashing sufficient?
5. **§2.5 — bridge witness via `event_type='bridge'`.** Phase 3
would extend `arborist.store.append_audit` with this. Confirm
the audit-chain composition rule from #000066 (graft receipt
as bookend witness) generalizes cleanly to all three bridge
kinds, or are Translation / Embassy witnesses structurally
different?
6. **§2.6 — `audit_mode` discipline for translated objects.**
Confirm that a translated object riding a Translation bridge
can be promoted to the target chain's warrant-eligibility pool
only if (a) target-chain verifier accepts source-language
evidence in its own language *under the existing rules*, and
(b) the translator hash matches the bridge_seed-bound one. No
new audit_mode token; the existing four-rung ladder governs.
7. **§2.7 — bridge privacy class.** Should the bridge-establishment
event itself be public-by-default, or should ZK-with-selective-
disclosure be the default for bridges between non-public chains?
#000016 follow-up.
8. **§2.8 — endianness.** Inherited from #000035 / #000070;
confirm reuse.
9. **Phase 2 KAT count.** Phase 2 `pi_star/bridge-seed@v1` will need
KATs. Recommendation: 10 matching #000035 / #000070 discipline.
Larger? Adversarial vectors should include identical
`(src_chain_id, tgt_chain_id)` with different `src_rule_v`
(i.e. same chain, different rule version — same-chain rule-bump
case) so the canonicalization can't quietly collapse them.
10. **Paper amendment wording — bridge framework.** Default draft:
"The bridge-grammar layer formalized in this section follows
the inter-chain treaty framework presented by Joseph (@TrudoJo)
on 2026-05-31, sibling to the procedural-spatial framework
that drives axis 1 (#000070)."
---
**Land sequence on go:**
1. Land this ticket file + `Next ID` bump + index row + #000070 §6
cross-reference + Joseph memory extension (one commit).
2. dav1d Phase 1 review (paper extension + retro-validation appendix).
3. fox go.
4. Implementation PR: substrate paper §7 extension +
`arborist/world/bridge/__init__.py` namespace stub. ~400 lines of
prose + ~30 lines of stub.
5. Memory update: flip `joseph_trudojo_6dim_spatial_ontology.md`'s
bridge-framework section from "cite when used" to "used in
#000071, landed `<sha>`".
6. Open Phase 2 ticket for `pi_star/bridge-seed@v1` canonicalization
when fox prioritizes.