feat(mesh): interconnection mesh — blueprint, registry, poller, memory bus, adopter installer#38
feat(mesh): interconnection mesh — blueprint, registry, poller, memory bus, adopter installer#38frankxai wants to merge 4 commits into
Conversation
Diagnose why parallel harness builds (e.g. Codex-created ana-ai-business-kit, 2 PRs merged 2026-07-13) are invisible to the Starlight memory/automation substrate, and lay out the GitHub-anchored, event-driven, harness-neutral wiring that fixes it. - context/repo-registry.json: canonical live registry (41 on-disk repos + 2 known repos outside the current field of view) - docs/architecture/interconnection-mesh.md: 5 verified gaps, the GitHub-spine model, a 6-layer wiring plan, and a create/install/wire checklist Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01CRxgzjY4NcBTnzJMFVXzBx
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
|
Important Review skippedDraft detected. Please check the settings in the CodeRabbit UI or the ⚙️ Run configurationConfiguration used: defaults Review profile: CHILL Plan: Pro Run ID: You can disable this status message by setting the Use the checkbox below for a quick retry:
✨ Finishing Touches🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
There was a problem hiding this comment.
Code Review
This pull request introduces a live repository registry (context/repo-registry.json) and an architectural blueprint (docs/architecture/interconnection-mesh.md) outlining the transition to a GitHub-backed event mesh for cross-repo synchronization. The review feedback correctly points out that the proposed write contract should explicitly integrate updates to MEMORY.md files to satisfy Mandate 9 of the Repository Style Guide regarding global state sweeps.
Important
The consumer version of Gemini Code Assist on GitHub is being sunset. Starting June 18, 2026, new organization installations will be blocked, and all code review activity will officially cease on July 17, 2026.
For more details on the timeline and next steps, please review the Help Documentation.
| ### Layer 3 — Harness-neutral write contract | ||
| - [ ] Define the **session-end atom** schema: `{ts, repo, branch, harness, summary, commits[], next}`. | ||
| - [ ] Wire the writer per harness: Claude → `Stop` hook; Codex → `AGENTS.md` instruction; Cursor → `.cursor/rules`; Gemini → `.gemini/`. One JSONL line on every wrap. **This is the "everything interconnected and updated" primitive.** |
There was a problem hiding this comment.
The proposed harness-neutral write contract and session-end atom schema do not account for the repository's core mandate regarding MEMORY.md files. According to the Repository Style Guide (Mandate 9), the system must 'Perform periodic sweeps of all repo MEMORY.md files to update the global state.'
To align with this mandate, the blueprint should clarify how MEMORY.md files in each repository are either updated by the session-end writer or swept/reconciled by the memory bus.
| ### Layer 3 — Harness-neutral write contract | |
| - [ ] Define the **session-end atom** schema: `{ts, repo, branch, harness, summary, commits[], next}`. | |
| - [ ] Wire the writer per harness: Claude → `Stop` hook; Codex → `AGENTS.md` instruction; Cursor → `.cursor/rules`; Gemini → `.gemini/`. One JSONL line on every wrap. **This is the "everything interconnected and updated" primitive.** | |
| ### Layer 3 — Harness-neutral write contract | |
| - [ ] Define the session-end atom schema: {ts, repo, branch, harness, summary, commits[], next}. | |
| - [ ] Wire the writer per harness: Claude -> Stop hook; Codex -> AGENTS.md instruction; Cursor -> .cursor/rules; Gemini -> .gemini/. One JSONL line on every wrap. | |
| - [ ] Integrate MEMORY.md updates into the write contract to satisfy the Central Command sweep mandate. |
References
- Mandate 9 of the Repository Style Guide requires performing periodic sweeps of all repo MEMORY.md files to update the global state. (link)
Address PR review: the session-end atom wrote only to the central bus, creating a parallel truth alongside the MEMORY.md durable-state convention 7+ repos already use. Now the atom updates the repo's own MEMORY.md AND appends to the bus (bus indexes; MEMORY.md stays authoritative per repo), and Layer 5's scheduled reconciliation runs the GEMINI.md 'periodic MEMORY.md sweep' mandate. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01CRxgzjY4NcBTnzJMFVXzBx
There was a problem hiding this comment.
Pull request overview
Adds a durable “interconnection mesh” blueprint and a live-ish repo registry snapshot to make parallel harness work (Codex/Cursor/Gemini/etc.) discoverable by the Starlight Intelligence System and to outline how GitHub becomes the shared event spine.
Changes:
- Introduces an architecture doc describing the current interconnection gaps and a layered wiring plan centered on GitHub events.
- Adds
context/repo-registry.jsonas a canonical registry snapshot of repos on the author’s disk plus known out-of-view repos.
Reviewed changes
Copilot reviewed 2 out of 2 changed files in this pull request and generated 4 comments.
| File | Description |
|---|---|
| docs/architecture/interconnection-mesh.md | New blueprint doc describing verified gaps + a GitHub-centered wiring plan and checklist. |
| context/repo-registry.json | New canonical repo registry snapshot (on-disk + known out-of-view). |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
| ┌──────────────────────────────┼───────────────────────────┐ | ||
| ▼ ▼ ▼ | ||
| org webhook scheduled poller session-end atom | ||
| (repo.created, PR.merged, (gh api /users/frankxai/repos (each agent writes 1 |
| - [ ] Backfill missing `context/repo-contexts/*.md` (one per active repo, or a single rolled-up index). | ||
|
|
||
| ### Layer 1 — GitHub event spine *(the key unlock)* | ||
| - [ ] `scripts/org-poller.mjs` (Node, cloud-runnable) — `gh api /users/frankxai/repos`, diff vs `repo-registry.json`, emit memory-bus atoms for new repos + merges. **This is the thing that would have caught `ana-ai-business-kit`.** |
| ### Layer 0 — Truth reconciliation *(safe, do now)* | ||
| - [x] `context/repo-registry.json` — canonical live registry (41 on-disk repos + the 2 outside-field-of-view repos). Generated this session. | ||
| - [ ] Regenerate `context/unified-context.md` + `context/STATE.md` from the registry; kill the v1.0.0→v8.3.0 drift. | ||
| - [ ] Backfill missing `context/repo-contexts/*.md` (one per active repo, or a single rolled-up index). |
| { | ||
| "generated": "2026-07-13", | ||
| "generator": "claude/starlight-system-integration-gc2piq (live git scan)", | ||
| "note": "Snapshot of repos present on this session disk. NOT exhaustive of the frankxai org — repos created by other harnesses (e.g. ana-ai-business-kit, rova-resort) are absent by construction until the org poller (Layer 1) lands.", | ||
| "repos_on_disk": [ |
…nt names, registry compat - registry: add schema_version:1, switch to full 40-char SHAs, rename top-level key to repos[] to match what scripts/agy-tools.ps1 already iterates (registry.repos) — prevents split-brain - doc: correct webhook event names to GitHub's real model (repository[created], pull_request[closed+merged=true], push) - doc: fix repo-registry.json path refs to canonical context/repo-registry.json - doc: add Layer 0 migration step pointing existing tooling at the canonical file Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01CRxgzjY4NcBTnzJMFVXzBx
…adopter installer Turns the blueprint into working, installable code. Live account query found 185+ repos vs 42 on disk (22% coverage) — including the trigger builds (ana-ai-business-kit, rova-resort) and fragmented substrate (starlight-memory, ai-capability-registry, claude-code-config) the SIS repo never referenced. - scripts/org-poller.mjs: Node/cloud-runnable GitHub poller — diff account vs registry, emit repo.discovered/repo.updated atoms, refresh snapshot, print digest - memory/bus/: committed append-only JSONL + schema README, seeded with the real discoveries from this session - scripts/mesh-atom.mjs: harness-neutral session-end writer — appends an atom AND updates MEMORY.md (infers repo/branch/commits from git); smoke-tested live - scripts/install-mesh.mjs + MESH.md: one-command adopter onboarding for community and other devs — .mesh.json marker + AGENTS.md snippet - context/repo-registry.json: real org_totals + known_outside_field_of_view (the concrete interconnection gap) All scripts node --check clean; poller/writer syntax-verified; writer smoke-tested. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01CRxgzjY4NcBTnzJMFVXzBx
Why
A Codex/Rova session created
frankxai/ana-ai-business-kit(2 PRs merged 2026-07-13) and an open PR onrova-resort. Neither was visible to the Starlight Intelligence System. This PR diagnoses why parallel harness builds go invisible and ships the working spine that fixes it.Keystone finding
A live account query returned 185+ repos vs the 42 Starlight could see — ~22% coverage. It surfaced the invisible builds (
ana-ai-business-kit,ana-new-repo,rova-resort) and fragmented substrate the SIS repo never referenced (starlight-memory,starlight-private-memory,ai-capability-registry,claude-code-config,frankx-starlight-command). Root cause: the estate grew to 185 repos with no unifying registry, and the memory/automation layer was documentation + local PowerShell, not a live event bus.What changed (8 files, docs + working code)
Blueprint & registry (Layer 0)
docs/architecture/interconnection-mesh.md— 5 verified gaps, the GitHub-as-nervous-system model, a 6-layer wiring plan + create/install/wire checklistcontext/repo-registry.json— canonical registry (repos[]matchesagy-tools.ps1'sregistry.repos; full 40-char SHAs;schema_version:1), plus realorg_totals+known_outside_field_of_viewWorking spine (Layers 1–3)
scripts/org-poller.mjs— Node/cloud-runnable GitHub poller: diff account vs registry, emitrepo.discovered/repo.updatedatoms, refresh snapshot, print digestmemory/bus/— committed append-only JSONL + schema README, seeded with real discoveriesscripts/mesh-atom.mjs— harness-neutral session-end writer: appends an atom and updatesMEMORY.md(git-inferred repo/branch/commits); smoke-tested liveAdopter/community layer (Layer 4 entry)
scripts/install-mesh.mjs+MESH.md— one-command onboarding for community/other devs (.mesh.jsonmarker + AGENTS.md snippet)Verification
All scripts
node --checkclean; poller/writer syntax-verified; atom writer smoke-tested (auto-inferred git metadata, appended correctly). A daily cloud routine (07:00 UTC, push+email) now runs the poll and reports newly-discovered repos.Review history
Resolved 1 Gemini + 4 Copilot review comments — including a verified split-brain catch (registry key aligned to existing
agy-tools.ps1) and correcting webhook event names to GitHub's real model.Open decisions (doc §6)
add_repoforana-ai-business-kit+rova-resort(out of scope until added).🤖 Generated with Claude Code
https://claude.ai/code/session_01CRxgzjY4NcBTnzJMFVXzBx