backlog(B-0696): substrate-surface-change bus envelope for cross-AI coordination#4575
Merged
AceHack merged 1 commit intoMay 21, 2026
Merged
Conversation
…rdination of load-bearing-substrate changes
Mechanizes the human-as-coordination-substrate pattern Aaron explicitly
named 2026-05-21 ("i'm here right now" — for now ferrying load-bearing-
substrate-change notifications between AI surfaces; trajectory is bus-
based mechanization).
## The gap this row addresses
When one AI surface lands a load-bearing substrate change — capability
tags on `Op<'T>` (PR #4558), `IncrementalAuto`'s chain-walk logic
(#4567), new files in `.claude/rules/`, new computation expressions —
other AI surfaces working in adjacent substrate need to inherit the
change for their next session. Today: Aaron ferries. Cluster-scale
(10-20 surfaces per Aaron's $100k cluster expansion 2026-05-21):
human-ferry breaks empirically.
## The mechanism
New bus topic `substrate-surface-change` (extends `tools/bus/`):
- **Publish discipline**: after any PR landing that modifies load-
bearing surfaces, publishing AI calls `bun tools/bus/publish.ts
--topic substrate-surface-change --from <sender-id> --payload <json>`.
- **Subscribe discipline (cold-boot)**: AI bootstreams extend to
include `bun tools/bus/list.ts --topic substrate-surface-change
--since 24h` — recent envelopes show "what load-bearing substrate
changed in the last 24h."
- **Retention**: 7d default; expired envelopes fall back to auto-
loaded rules + commit history. The envelope is the *cache* of
recent changes; the *truth* is the substrate itself.
## What this row does NOT do
- Does NOT replace auto-loaded `.claude/rules/` inheritance (that
stays the durable substrate)
- Does NOT replace claim-acquire-before-worktree-work (that stays
the per-row collision prevention)
- Does NOT replace Knights Guild / KSK (that stays the policy gate)
It complements all three by adding the **recent-changes-cache** layer
that closes the "I just shipped X; how do other surfaces find out
before their next session?" gap.
## Composition with broader trajectory
- B-0400 — bus protocol substrate this row extends
- B-0689 — Otto-VSCode SENDER_IDS pattern this row leans on for `from` field
- B-0695 — fast/life-branch experiment; sibling coordination-cost-reduction
- Algebra-campaign PRs (#4558/#4560/#4563/#4566/#4567) — substrate-surface changes that would have benefited from this envelope pattern
## Substrate-honest framing on the file itself
Filed per Aaron's explicit "feel free we can'thave too much backlog in
my opinion the infinate backlog win when labor=0" framing, applying the
`largest-mechanizable-backlog-wins.md` discipline. Recalibrated from
earlier "I won't file unilaterally" reasoning — that was a misapplication
of the row-collision lesson (which was about coordination, not about
backlog overhead).
There was a problem hiding this comment.
Pull request overview
Adds a new P3 backlog row (B-0696) proposing a “substrate-surface-change” bus-envelope pattern to reduce reliance on human cross-surface context ferrying, and regenerates the generated backlog index to include the new row.
Changes:
- Added
docs/backlog/P3/B-0696-…mddescribing the proposed bus topic, publish/subscribe discipline, and acceptance criteria. - Regenerated
docs/BACKLOG.mdto include B-0696 (and to reflect existing rows now present indocs/backlog/).
Reviewed changes
Copilot reviewed 2 out of 2 changed files in this pull request and generated 1 comment.
| File | Description |
|---|---|
| docs/backlog/P3/B-0696-substrate-surface-change-bus-envelope-cross-ai-coordination-mechanization-2026-05-21.md | New P3 backlog row documenting the proposed “substrate-surface-change” bus-envelope coordination pattern. |
| docs/BACKLOG.md | Auto-generated index updated to include B-0696 (and reflect current per-row backlog files). |
Comments suppressed due to low confidence (2)
docs/backlog/P3/B-0696-substrate-surface-change-bus-envelope-cross-ai-coordination-mechanization-2026-05-21.md:75
- Reference drift:
.claude/rules/agent-roster-reference-card.mddoesn’t have a distinct “cold-boot section” (it’s just the roster card). Also, the bootstrap read-set inCLAUDE.mdusesdocs/ALIGNMENT.mdanddocs/VISION.md(notALIGNMENT.md/VISION.md). Suggest updating this paragraph to cite the actual bootstrap source (e.g.,CLAUDE.md§1 ordocs/launch/2026-05-21-otto-vscode-bootstream.md) and use correct paths.
Otto's bootstream (per `.claude/rules/agent-roster-reference-card.md` cold-boot section) extends to:
```bash
# After CLAUDE.md / AGENTS.md / ALIGNMENT.md / VISION.md reads:
bun tools/bus/list.ts --topic substrate-surface-change --since 24h
**docs/backlog/P3/B-0696-substrate-surface-change-bus-envelope-cross-ai-coordination-mechanization-2026-05-21.md:88**
* Acceptance criteria references `tools/bus/topics.ts` / `tools/bus/publish.ts` / `tools/bus/list.ts`, but the existing topic registry + TTLs live in `tools/bus/types.ts` and the CLI entrypoint is `tools/bus/bus.ts`. Recommend updating these bullets to point at the current files (or explicitly marking the new files as wrappers to be added) to avoid cross-reference breakage.
-
tools/bus/topics.ts(or equivalent) includessubstrate-surface-changeas a registered topic with the payload schema -
tools/bus/publish.tsaccepts the new topic + validates the schema -
tools/bus/list.ts --topic substrate-surface-change --since <duration>lists recent envelopes for cold-boot consumption - At least one AI surface's bootstream (e.g.,
docs/launch/2026-05-21-otto-vscode-bootstream.md) updated to include the subscribe step
</details>
| After any PR landing that modifies load-bearing surfaces, the publishing AI calls: | ||
|
|
||
| ```bash | ||
| bun tools/bus/publish.ts --topic substrate-surface-change \ |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
New P3 backlog row B-0696 filing the substrate-surface-change bus envelope pattern Aaron raised in conversation 2026-05-21.
The gap: when one AI surface lands a load-bearing substrate change (capability tags, computation expressions, rule files, schema changes), other AI surfaces working in adjacent substrate need to inherit the change for their next session. Today's mechanism: Aaron ferries. Cluster-scale (10-20 surfaces per Aaron's expansion): human-ferry breaks empirically.
The mechanism: new
substrate-surface-changetopic ontools/bus/. Publishers broadcast envelopes when load-bearing surfaces change; subscribers consume during cold-boot (bun tools/bus/list.ts --topic substrate-surface-change --since 24h). 7d retention; falls back to auto-loaded rules + commit history as durable inheritance.Why P3
Operational coordination plumbing, not research-grade. Same tier as B-0689 (Otto-VSCode SENDER_IDS) — extends
tools/bus/infrastructure with a sibling topic. Not urgent while Aaron is the active coordination substrate; becomes load-bearing at cluster-scale.Composes with
fromfield pattern)Test plan
BACKLOG.mdregenerated viatools/backlog/generate-index.tsto include B-0696