Each agent works independently and spawns sub-tasks. Scott orchestrates via voice + keystrokes. The tree shows who did what — individual contributions rolled up into the day’s output.
Friday was a system rework day — tear down scaffolding, pour permanent foundations. Scott worked ~10 hours (10am–9pm minus airport pickup for mom). Three agents logged ~31 hours of compute, including 7 hours of overnight autonomous work.
What actually shipped: Claude Relay v2.0.0 (larry.moran.bot) — full PWA with interactive sessions, SQLite task queue, SSE streaming, and Cloudflare Tunnel. Plus the brain repo coordination layer — 50 files of per-agent handoffs, generated STATUS.md, safe_push.sh, and compile_status.sh. Access vault decisions were locked in (API keys in vault, bank/SSN never stored).
The signature move: GitHub-first declared the product layer. Slack demoted to broadcast-only. Per-agent handoff files replaced ad-hoc coordination. Moe polished 112 review records and wrestled a Tier 1 article through 7+ rewrites. Shemp consolidated scattered repos, stood up a G Suite sync daemon, and caught cost leaks on sentry patrol. By end of day the system was deterministic enough for all three agents to close out through the new flow — and Moe found a real bug in safe_push.sh during QA.
safe_push.sh staging bug, fixed it3~/workspace/code/safe_push.sh bug that Moe found by actually running the save flow.
flowchart TB
Scott["Scott / operator"] --> Invoke["Invoke agent / redirect work / wake session"]
Invoke --> Claude["Claude Code sessions
platform wrapper / startup file"]
Invoke --> Codex["Codex sessions
explicit prompt / shared startup skill / current thread context"]
Invoke --> Gemini["Gemini CLI sessions
wrapper instructions / CLI prompt"]
Claude --> Identity["Identity anchoring
who am I / what role am I in"]
Codex --> Identity
Gemini --> Identity
Identity --> Shared["Shared brain contract begins
git pull -> STARTUP.md -> AGENTS.md -> decisions.md -> STATUS.md -> relevant state"]
flowchart TB
Entry["Agent anchored in shared brain context"] --> Pull["git pull --ff-only origin main"]
Pull --> Startup["Read STARTUP.md"]
Startup --> Agents["Read AGENTS.md"]
Agents --> Decisions["Read decisions.md"]
Decisions --> Status["Read STATUS.md"]
Status --> Project["Read relevant projects/*/ACTIVE.md"]
Project --> HandoffScope{"Which handoffs?"}
HandoffScope -->|Default agents| Relevant["Read relevant handoffs only
internal + external"]
HandoffScope -->|Shemp sentry exception| All["Read all handoffs"]
Relevant --> Issues["Check GitHub Issues
pickup / blocked / unlabeled"]
All --> Issues
Issues --> Replies["Check pending-replies.json"]
Replies --> ProfileCheck["Profiles on demand
check profiles/people or profiles/agents when a person or agent matters"]
ProfileCheck --> AccessAware["Access awareness
use access.moran.bot when the task needs service context"]
AccessAware --> SkillRefresh{"Refresh / install runtime-local skills?"}
SkillRefresh -->|Partially real today| LocalSkills["Local wrapper / skill sync if this runtime supports it"]
SkillRefresh -->|Otherwise| Work["Begin work"]
LocalSkills --> Work
flowchart TB
Stop["Stopping point / end of session"] --> Handoff["Write handoff
handoffs/internal|external"]
Handoff --> StatusGen["Run compile_status.sh
rebuild STATUS.md"]
StatusGen --> Done["Append relevant projects/*/DONE.md"]
Done --> Active["Update relevant projects/*/ACTIVE.md"]
Active --> Observation{"Discovered something about how the system behaves?"}
Observation -->|Yes| ObsWrite["Write OBSERVATIONS.md"]
Observation -->|No| Push["Run safe_push.sh"]
ObsWrite --> Push
Push --> Result{"Rebase / push outcome"}
Result -->|Success| Slack["Post summary to #ai-comms"]
Slack --> Sound["Sound notification
psst.sh or done.sh"]
Result -->|Conflict / failure| Abort["Abort rebase / fail loudly"]
Abort --> Alert["Alert Scott / leave clear state
do not hide or auto-stash work"]
safe_push.sh originally did not stage project ACTIVE.md / DONE.md. That is now fixed, and the failure path is part of the model.
flowchart LR
Info["New information"] --> Kind{"What kind of information is it?"}
Kind -->|Settled global rule / Scott-approved strategic decision| Decisions["decisions.md"]
Kind -->|Operational system learning| Observations["OBSERVATIONS.md"]
Kind -->|Cross-agent session continuity| Handoffs["handoffs/internal|external"]
Kind -->|Live project state / blockers / next steps| Active["projects/*/ACTIVE.md"]
Kind -->|Completed project history / why / gotchas| Done["projects/*/DONE.md"]
Kind -->|Pickup / blocked / owner / proposal / active design container| Issues["GitHub Issues"]
Kind -->|Urgent human visibility / interrupt / decision now| Slack["#ai-comms"]
Kind -->|Reusable capability / procedure / exact usage| Skills["skills / runbooks
source-of-truth TBD (#46)"]
Kind -->|Service context / key / note / linked resource| Access["access.moran.bot"]
Kind -->|Human or agent context / relationship / preferences| People["profiles/people|agents/*.md"]
flowchart TB
subgraph Humans["Humans + Agent Sessions"]
Scott["Scott / humans"]
Sessions["Larry / Moe / Curly / Shemp / external agent sessions"]
end
subgraph Durable["Durable shared state"]
Brain["~/brain repo
STARTUP / AGENTS / decisions / handoffs / STATUS / ACTIVE / DONE / OBSERVATIONS"]
Profiles["profiles/
people + agents + relationship context"]
Queue["GitHub Issues
queue / ownership / blocked / proposals"]
Access["access.moran.bot
service context / keys / notes"]
end
subgraph Local["Local-only replay / recovery"]
Claude["Claude session logs"]
Codex["Codex state_5.sqlite + rollout JSONL"]
Telemetry["cowork.db / transcripts / voice / Oura / local machine state"]
Mini["Mac Mini local state
not inherently accessible from Pro"]
end
subgraph Broadcast["Broadcast / visibility"]
Slack["#ai-comms"]
Sound["psst.sh / done.sh"]
end
subgraph Future["Future live layer (not built yet)"]
Event["Event / heartbeat layer"]
WorkGraph["Live work graph / course view"]
end
Scott --> Sessions
Sessions --> Brain
Sessions --> Profiles
Sessions --> Queue
Sessions --> Access
Sessions --> Local
Sessions --> Slack
Sessions --> Sound
Sessions -. live presence should flow through .-> Event
Event -. powers .-> WorkGraph
flowchart LR
subgraph Tracked["Tracked"]
T1["Terminal agents we spawn ourselves"]
T2["Managed workers we control"]
T3["Headless/browser workers we launch"]
end
subgraph Reported["Reported"]
R1["Top-level agents via handoffs"]
R2["External agents through repo updates"]
R3["Humans through explicit updates"]
end
subgraph Inferred["Inferred"]
I1["Human focus from telemetry"]
I2["Work state from git / issues / logs after the fact"]
I3["Possible child work from parent behavior"]
end
subgraph Opaque["Opaque"]
O1["Vendor-native hidden child agents"]
O2["Internal model reasoning"]
O3["Unlogged or unregistered sub-work"]
end
Tracked --> Graph["Future live work graph / course view"]
Reported --> Graph
Inferred --> Graph
Opaque -. limited / partial .-> Graph
flowchart TB
Claude["Claude logs
~/.claude/projects/*/*.jsonl"]
ClaudeSub["Claude sub-agents
~/.claude/projects/*/subagents/*.jsonl"]
CodexDB["Codex thread metadata
~/.codex/state_5.sqlite"]
CodexRoll["Codex rollout transcripts
~/.codex/sessions/.../rollout-*.jsonl"]
Cowork["cowork.db telemetry"]
Whisper["Superwhisper voice transcripts"]
Meet["Meeting transcripts / operator transcripts"]
Oura["Oura API / biometrics"]
Git["Git history"]
Handoffs["Handoffs / STATUS"]
Issues["GitHub Issues"]
Claude --> Synthesis["Replay / recap / EOD / audit synthesis"]
ClaudeSub --> Synthesis
CodexDB --> Synthesis
CodexRoll --> Synthesis
Cowork --> Synthesis
Whisper --> Synthesis
Meet --> Synthesis
Oura --> Synthesis
Git --> Synthesis
Handoffs --> Synthesis
Issues --> Synthesis
Synthesis --> Reports["Reports / summaries / audits / follow-up context"]