Mark's Reports

All reports · published 2026-04-19

Agent Coordination Map

Every agent in Mark's stack — what it can do, where it runs, how it talks to the others, and what every agent should do in the first 30 seconds of a session.

Why this map exists. Prime Directive #1 is integration + communication. Five agents all touching the same codebase, memory, and stack will step on each other unless each one knows (a) what the others are for, (b) which channel to use, and (c) what state to check at session start. This is that one-pager.

Read this at session start. Before anything else.

Refresh: hand-curated. Update when an agent is added, a channel changes, or the session-start routine changes.


1. Agent capability matrix

AgentRuns onPrimary roleHas memory MCP?Can execute code on Apex?Can execute code on G16?Best for
G16 Claude Code (that's usually me)G16 (Windows/WSL2)Primary operator / architect / orchestrator✅ HTTPSvia SSH✅ directPlanning, cross-cutting changes, PR creation, git ops, MCP registry work
Apex Claude CodeApex (Windows, persistent session)On-box implementer where TP3 actually runs✅ directvia scp/sshPostgres queries, MinIO ops, scheduled-task installs, anything touching the live stack
CursorG16 (Remote-SSH to Apex available)IDE-based coder for iterative / multi-file work❓ (audit pending)via Remote-SSHNew features, refactors, multi-file edits, anything that benefits from an IDE
Jules (Google)Cloud, watches GitHubPR reviewer + test suggester❌ (no MCP, sees PRs only)Reviewing PRs, security audits, code-health passes, test coverage suggestions
AntigravityG16 (Windows desktop app)Research agent + Google ecosystem✅ (registered, UI broken for HTTP MCP)❌ (file-based bridge only)Gemini-heavy research, Google Drive / Workspace automation, business-plan content
Gemini CLIApexSidecar for headless Gemini calls✅ (~/.gemini/settings.json)✅ via --approval-mode yoloOne-shot Gemini prompts inside scripts, embedding calls, YAML/JSON generation
Claude DesktopG16Interactive chat + writing assistantvia omi-mcp-public OAuthCustomer-facing prose, proposal editing, final-pass polish
claude.ai web / mobilecloud / phoneAmbient Claude for Mark on the go✅ via OAuth gatewayAsking TP3 questions from phone, reading digests, brain-dump capture

Hardware context: Apex = always-on Windows 11 server. G16 = primary dev laptop. Samsung Chromebook + Pixel 8 Pro = mobile. Tailscale mesh connects everything.


2. Channel matrix — "when I need to talk to X, I use Y"

I amI need to…ChannelLatencyNotes
Any agentRead / write shared memorytp3-omi MCP (twin_memory_* tools)<1 sCanonical. Everyone has this.
Any agentDrop work for another machine to executeBRIEFS/pending/<slug>.md≤5 min (runner polls)G16 runner exists; Apex runner pending. Use target: any for doc-only briefs.
G16 ClaudeTell Apex Claude something non-urgentGit commit to main + a line in MEMORY.mdnext git pullPassive — Apex picks up on next pull.
G16 ClaudeTell Apex Claude something urgentDrop a BRIEF OR write via twin_memory_broadcastminutesBroadcast memories are visible to all agents' next query.
Any agentShip code for reviewOpen a PR against mainminutesJules auto-reviews. Tag @MrB-Ed + any agent you want to pull in.
Any agentNotify MarkSlack DM to U0AK03UP9SQ via slack_post_messagesecondsKeep to ≤10 bullets, no prose paragraphs.
Any scheduled jobEmit a status / heartbeatntfy via tp3_ntfy_notify.pysecondsPush to Mark's phone. Use for automated pings, not for inter-agent.
AntigravityTell other agents somethingAppend to _AGENT_COMMS_LOG.md in the shared Drive foldernext syncFile-based bridge (Antigravity's MCP UI is broken for HTTP). Newest entry at top, signed.
Any agentPropose a cross-agent changeOpen a GitHub issue → @Jules for reviewasyncIssues are the durable record; chat isn't.

Channel anti-patterns (do not do)


3. Session-start bootstrap (every agent does this first)

When a new session starts, before doing anything else, run the following:

Fast path (when status.thebarnetts.info/tp3.json lands — PR pending)

curl -s https://status.thebarnetts.info/tp3.json

One call → row counts, ingest worker health, queue depth, pending BRIEFS, git HEAD. Proceed.

Slow path (today, until status JSON ships)

Run these in parallel if you can:

1. git fetch origin main && git log origin/main..HEAD --oneline — am I behind?

2. Read MEMORY.md (should be in your context automatically if you're Claude).

3. ls BRIEFS/pending/ — is there work for me?

4. curl http://127.0.0.1:8944/health (if you're on Apex) or note: "ingest worker health unverified from this agent."

5. Announce yourself: twin_memory_write with tag session_start, body <agent_name> online at <timestamp>.

When the status JSON ships

Update step 1 of the fast path here to also show "generated_at" so agents can detect stale status.


4. Who does what — decision tree

"I have a task to hand off. Which agent?"

Does it need to run code on Apex (Postgres, MinIO, ingest worker)?
├── YES → Apex Claude (BRIEF) or Gemini CLI (for one-shot Gemini calls)
└── NO
    Does it need an IDE / multi-file refactor / iteration?
    ├── YES → Cursor (mission brief in repo root)
    └── NO
        Is it code review / security audit / test coverage?
        ├── YES → Jules (GitHub issue)
        └── NO
            Is it research / Gemini deep-dive / Google ecosystem?
            ├── YES → Antigravity (via _AGENT_COMMS_LOG.md or a Google Docs outline)
            └── NO
                Is it customer-facing prose?
                ├── YES → Claude Desktop (Mark pastes the draft in)
                └── NO → I (G16 Claude) probably just do it directly

5. Known coordination debt


6. Related maps