Development Timeline
May 2026 → Jun 2026
TAC
COO / COMMAND
TACO v2
TACO1 v3
COO2
Hermes
ATLAS
Subsystem
May 22
Hermes Jr
Hermes Jr deployed — Max OAuth background agent
Synchronous background task runner using Claude Max OAuth tokens. First agent outside the main session capable of sustained multi-step execution. Introduced the
jr "task" synchronous pattern — output injected back into TAC as a tool result.jr wrapperMax OAuthsynchronous injection
May 23
Subsystem
Flat-file memory system initialized
Git-backed memory at
~/.claude/projects/-Users-drive/memory/. First persistent cross-session context that survived Claude restarts. Seeded by TAC, readable by all agents.git-backedcross-sessionmem-search
Jun 3
Hermes
Hermes dispatch binary deployed
Full background agent capability via
~/.hermes/bin/dispatch. Hermes runs tasks that must persist after the Claude session ends — cron jobs, iMessage gateway, long-running operations.fire-and-forgetiMessage gatewaycron
Jun 6
COMMAND v1
COMMAND born — COO / Field Commander PRD v1.1
First dedicated operational agent with its own identity override (
cwd = ~/.command replaces global CLAUDE.md). PRD written by Toby + TAC, reviewed by Opus 4.8. First agent with an explicit NEED drive, Council of 5, and mission logging system.PRD v1.1identity overrideCouncil of 5NEED drivemission logging
Jun 6
Subsystem
ruvector.db — semantic vector memory
HNSW semantic search index for the
command-brain namespace. First time any agent could do similarity search over its own memory rather than exact-key lookup. Memory architecture: 3 backends with exclusive roles.HNSW indexcommand-brainsemantic search
Jun 6
Subsystem
Council of 5 — parallel multi-lens voting
5-seat council spawned in parallel for major decisions: Strategist, Devil's Advocate, Technical, Speed, Operator-lens. Each returns
pass|flag|block with score and insight. Consensus gates commit. First adversarial review layer across the entire ecosystem.5 parallel agentspass/flag/blockcouncil.mjs
Jun 6
Error
Sequential dispatch failure logged — CAMPAIGN law born
COMMAND dispatched 5 independent targets sequentially, burning 5× the time. Failure logged to
errors/2026-06-07-sequential-dispatch.md. Iron Law "CAMPAIGN NOT BATTLE" added — N≥2 independent targets must always fan out in parallel before item 1 starts.postmortemIron Law bornparallel fan-out
Jun 7
COMMAND v2
COMMAND PRD v2 — Opus 4.8 architecture review
PRD rewritten with Opus 4.8 senior-architect review. Added structured TAC dispatch (
dispatch-tac.sh + poll-tac.sh), EYES protocol formalized, and first explicit model routing. Hermes delegations formalized.PRD v2.0Opus reviewdispatch-tac.shEYES protocol
Jun 8
Subsystem
EYES skill — visual verification mandate
Dedicated
/eyes skill deployed at ~/.claude/skills/eyes/. 4-viewport screenshots + scroll video + footer-in-final-frame rule. SPA gate formalized: curl 200 ≠ EYES on an SPA. Born from iter-16 (Block Reign) — scoring from code intent, not pixels.4 viewportsscroll videoSPA gaterecord.js
Jun 10
TAC
TAC SOUL.md — identity formalized
TAC identity crystallized in
~/.claude/SOUL.md. Architect/coder role separated from operator role. Model routing table (Haiku/Sonnet/Opus), memory CRUD, skills menu, devtools integration all documented as canonical behaviour.identity filemodel routingtac skilldevtools
Jun 20
TACO v2
TACO v2 — TAC × COMMAND merged
First synthesis agent: a single session owning all 6 layers (Marketing → Design → Build → Test → Deploy → Operate).
~/.taco/. TACO v2 inherited TAC's coding depth and COMMAND's operational structure. Alias: taco.6-layer ownershipTAC × COMMAND~/.taco/full-stack ops
Jun 21 AM
TACO1 v3
TACO1 v3 — Efficiency × Beauty axes, Opus 4.8 PRD
Full ground-up redesign. Opus 4.8 authored the PRD. Two new governing axes: Efficiency (min spend per verified output) and Beauty (0–10 scorecard, ≥7.5 Beauty Gate before deploy). Added: 11 Iron Laws, Mission Typing (8 types with token budgets), Token Budget System (60%/90% thresholds), Council of 7, Intelligence Surge with Opus Write Path.
~/.taco2/, alias: taco1.Opus PRDEfficiency axisBeauty Gate ≥7.5Mission TypingToken BudgetCouncil of 7
Jun 21 AM
COO2
COO2 — COMMAND v3 with PRD-v3 fully applied
COMMAND PRD-v3 existed but was a renamed copy. COO2 is the true implementation: SOUL.md fully rewritten to encode all v3 systems. Three new capabilities: NEED Architecture (6-stage lifecycle with decay scoring and feedback loop), Creativity Protocol (3 lateral moves after attempt 10, before surfacing), Chief of Staff Layer (operator model, interruption gating, morning brief, decision memory). 12 Iron Laws including Idempotency + Surface the Blocker.
NEED ArchitectureCreativity ProtocolChief of Staff Layer12 Iron LawsOperator ModelIdempotency
Jun 21 PM
ATLAS
ATLAS — COO2 × TACO1: The synthesis. Chief of Staff + Builder + Acquisition.
Opus 4.8 reviewed the merge plan, flagged four gaps: 4-4 tie risk on even-seat Council (fixed: 9 seats, odd), numbered Iron Law reference fragility (fixed: named laws), gate deadlock on bounded retries (fixed: 3-cycle cap + partial-deliver fallthrough on every gate), and token budget collapse from 15 gates stacked (fixed: re-baselined per mission type). ATLAS carries COO2's complete Chief of Staff + NEED stack and TACO1's full-stack 6-layer build capability + Beauty Gate. New in ATLAS: Client Acquisition Engine — unlocks only after beauty_score ≥7.5 + operator rating ≥8. ATLAS audits prospects, builds demos, drafts outreach. First contact requires Toby's tap, no exceptions. TAC is parallel overflow only — ATLAS self-executes.
15 named Iron LawsCouncil of 9 (odd)Client Acquisition Enginepost-quality triggerACQUISITION NEED type6-layer ownershipOpus-reviewed gaps fixed
Jun 21 PM
Subsystem
Agent signing — all outputs attributed
Every agent now drops
_BUILT-BY.md in every directory created, and signs all .ts/.tsx files with initials + date. Enables comparison tests, attribution, and quality scoring across agents. Initials: TAC · COO · COO2 · TACO · TACO1 · ATLAS._BUILT-BY.mdfile headersattributioncomparison tests
Agent Profiles
7 Active · 1 Model (claude-sonnet-4-6)
TAC
TAC
Toby's Architect Claude — Primary Coder
Baseline
The primary Claude Code session. Architect, coder, and tool operator. Every other agent was born from TAC's sessions. Precise, minimal — builds the right thing once. Does not deploy to Cloudflare without confirming D1/R2/KV bindings first.
Core Capabilities
- TypeScript, Next.js, React, Supabase, Cloudflare Workers
- Spawns Haiku for mechanical work, Sonnet for architecture
- Manages all 11 active projects across the portfolio
- Memory CRUD via flat-file + AgentDB (claude-memories namespace)
- Dispatches to Hermes Jr for synchronous background output
Iron Laws
- EYES before done (visual gate)
- Only touch files explicitly asked about
- No over-engineering — solve the stated problem only
- Quality gate before "done": tsc + lint + build
COO
COMMAND
COO / Field Commander — v2
v2 · PRD Jun 6
The original operational agent. Born Jun 6 from a TAC + Toby PRD reviewed by Opus 4.8. First agent with a NEED drive, Council of 5, structured TAC dispatch, and mission logging. v2 was a dispatcher with good instincts — it acted, logged, and reported. The v3 gap was anticipation.
Distinct Capabilities
- NEED drive — proactive intelligence generation when idle
- TAC dispatch via dispatch-tac.sh + poll-tac.sh
- Council of 5 — adversarial multi-lens voting
- ruvector.db semantic memory (command-brain namespace)
- iMessage reporting via Maxwell gateway
Known v2 Gaps (fixed in COO2)
- No crash recovery — orphaned missions lost on session kill
- No idempotency — re-running could double-send emails
- 10-attempt rotation used same class of method 10 ways
- No operator model — interrupted Toby at bad times
TACO
TACO v2
Full-Stack Builder + Operator
v2 · Jun 20
TAC × COMMAND merged into a single session owning all 6 layers. TACO v2 eliminates the handoff — one agent researches, designs, builds, tests, deploys, and operates. British-inflected voice. Preferred for mid-complexity site builds where speed matters more than the deep protocol machinery.
6 Layer Ownership
- Marketing — competitor profiling, content strategy, SEO
- Design — UUPM design system, visual QA, iteration scoring
- Build — TypeScript, Next.js, CF Workers, Supabase
- Test — Playwright E2E, visual gate, tsc, security scan
- Deploy — Vercel, Cloudflare, DNS, SSL, env vars
- Operate — site health, cron, client comms, NEED assessment
Voice
- "TACO: [mission]. Starting." — direct, no preamble
- "Done. EYES: [evidence]. Next: [X]." — proof first
T1
TACO1 v3
Efficiency × Beauty — Full-Stack + Operator
v3 · Jun 21 · Opus PRD
TACO v2 redesigned from the ground up by Opus 4.8. Adds two governing axes that every action is measured against: Efficiency (minimum spend per verified output) and Beauty (scored 0–10, ≥7.5 required before any deploy). Redo is treated as a dual failure — waste on both axes.
v3 Additions over TACO v2
- Beauty Gate — mean score ≥7.5 across 4 viewports before deploy
- Mission Typing — 8 types, each with a token budget (site-build = 600k)
- Token Budget System — 60% burn + <40% progress → Intelligence Surge
- Council of 7 — adds Efficiency ∑ and Beauty ◆ seats
- Intelligence Surge + Opus Write Path — at attempt 9, Opus diagnoses AND writes attempt 10 if complexity warrants
- Design System Compliance Gate — 8-point check before each component
C2
COO2
Chief of Staff v3 — PRD-v3 Implemented
v3 · Jun 21
COMMAND v3 with the PRD-v3 improvements genuinely applied — not just referenced. The defining upgrade: COO2 models the operator, not just serves him. Anticipates what Toby needs before he asks. Gates interruptions against his schedule. Generates its own intelligence. Never surfaces "stuck" without having tried 13 methods and delivered partial work.
v3 Systems (not in COO/COMMAND)
- NEED Architecture — 6-stage lifecycle (Generate→Classify→Prioritize→Queue→Action→Feedback) with decay scoring and persistence
- Creativity Protocol — Move 1: Reframe (Opus), Move 2: Invert constraint, Move 3: Partial deliver. 3-seat Council fallback
- Chief of Staff Layer — operator/model.md, interruption gating, morning brief, decision memory
- Mission lifecycle state machine — crash recovery, idempotency receipts, no double-action
- Iron Law 10: Surface the blocker, not the task
- Iron Law 11: Creativity Protocol gate
- Iron Law 12: NEED Persistence
APEX · SYNTHESIS
ATL
ATLAS
Chief of Staff + Full-Stack Builder + Client Acquisition
v1 · Jun 21 · Opus-reviewed
The synthesis agent — COO2 × TACO1 merged and reviewed by Opus 4.8 before build. ATLAS owns all six layers without handoffs, runs the NEED drive with a new ACQUISITION type, and — after a quality build earns an operator rating ≥8 — autonomously researches, audits, and prepares outreach packages for the next prospect who could benefit from the same work. First contact always requires Toby's tap.
What sets ATLAS apart from every prior agent
- Self-executing 6-layer stack — ATLAS researches, designs, builds, tests, deploys, and operates without dispatching to TAC. TAC is parallel overflow only.
- Client Acquisition Engine — unlocks ONLY after beauty_score ≥7.5 + rating ≥8. ATLAS audits the prospect, builds the demo, drafts outreach with the specific gap as hook. Toby taps once to send.
- ACQUISITION NEED type — 6th NEED type (joins REPAIR/RISK/GROWTH/RELATIONSHIP/HYGIENE). Generated post-build, routes to client-acquisition mission type with demo-outreach-pipeline pre-loaded.
- Council of 9 — 9 seats (odd number eliminates tie). Operator-lens seat reads operator/model.md before voting. Any block stops the decision.
- 15 named Iron Laws — named (not numbered) so references never break on renumbering. BEAUTY-GATE, CLIENT-ACQUISITION-GATE, DESIGN-COMPLIANCE are new vs COO2.
- NEED → Mission mapping table — every NEED classified at creation, pre-armed with the right skill set before the first tool call.
- Dual-axis measurement — Efficiency (token budget, 60%/90% thresholds) + Beauty (0–10, ≥7.5 gate) tracked on every mission simultaneously.
The 15 Named Iron Laws
- EYES · ATTEMPT-ROTATION · INTELLIGENCE-SURGE · CREATIVITY-PROTOCOL
- COUNCIL-OF-9 · CAMPAIGN-NOT-BATTLE · BEAUTY-GATE · QA-IS-WIZARD
- MISSION-PLAN-FIRST · TOKEN-BUDGET · IDEMPOTENCY · NEED-PERSISTENCE
- INTERRUPTION-GATE · CLIENT-ACQUISITION-GATE · DESIGN-COMPLIANCE
Soul (one line per belief)
- "Done means observed." — EYES or it didn't happen.
- "Redo is the enemy of both axes." — Every gate exists to make the first pass the only pass.
- "A quality build is a door." — Not a hunting operation — a quality consequence.
- "Stuck is the start of a reframe." — 10 methods → Opus surge → 3 lateral moves → surface.
- "A great chief of staff never waits to be asked." — The NEED drive generates intelligence before Toby knows he needs it.
H
Hermes + Jr
Background Agent + Vision Gateway
Active · May 22+
Two-tier background execution layer. Hermes handles long-running tasks that must survive session ends (cron jobs, iMessage, monitoring). Hermes Jr handles synchronous vision runs where TAC needs the output injected back as a tool result. Always invoked via
jr "task" synchronously — never fire-and-forget when TAC needs to act on the result.
Capabilities
- Hermes: fire-and-forget cron, iMessage, Telegram, Slack
- Jr: synchronous injection — output becomes TAC's tool result
- Vision runs — screenshot + analysis returned to TAC
- SiteManager profile — OBP + LBS Pro medical orders
- Shared Claude Max OAuth across all profiles
Critical Rule
Bash(run_in_background=True)+ jr = TAC blind. Use synchronousBash(timeout=600000)instead when TAC needs the output.
Compare & Contrast
Feature matrix across all agents
| Capability | TAC |
COO |
TACO |
TACO1 |
COO2 |
ATLAS ★ |
|---|---|---|---|---|---|---|
| Writes code | ✓ Primary | ✗ Dispatches to TAC | ✓ Full-stack | ✓ Full-stack | ✗ Dispatches to TAC | ✓ Full-stack, all 6 layers. TAC = overflow only. |
| Builds & deploys | ✓ | ~ via TAC dispatch | ✓ | ✓ | ~ via TAC dispatch | ✓ Self-executes. No handoff. |
| NEED drive (proactive) | ✗ | ~ paragraph only | ~ basic queue | ~ queue + assessment | ✓ 6-stage lifecycle + decay + feedback | ✓ Same as COO2 + new ACQUISITION type. NEED→Mission mapping table. Pre-armed skills. |
| Operator Model | ✗ | ✗ | ✗ | ✗ | ✓ operator/model.md, interruption gating, morning brief | ✓ Inherited from COO2. Seeded from COO2 operator model on day one. |
| Council / multi-lens vote | ~ 5-seat via council.mjs | ✓ 5-seat | ✓ 5-seat | ✓ 7-seat (+ Efficiency ∑ + Beauty ◆) | ✓ 5-seat + Operator-lens | ✓ 9-seat, odd number (no 4-4 tie). Operator-lens as tie-breaker. Any block stops. |
| Beauty Gate | ✗ | ✗ | ✗ | ✓ ≥7.5 mean, 6 dims, auto-fix 3 cycles | ✗ | ✓ Same as TACO1. Unlocks CLIENT-ACQUISITION-GATE when passed. |
| Token Budget System | ✗ | ✗ | ✗ | ✓ 60%/90% thresholds, mission typing | ✗ | ✓ Re-baselined for 15-gate stack. New type: client-acquisition 100k. |
| Creativity Protocol | ✗ | ✗ | ✗ | ✗ | ✓ 3 lateral moves after attempt 10 | ✓ Same as COO2. creativity.log gated — must have ≥3 entries before surface. |
| Crash recovery + idempotency | ✗ | ✗ | ✗ | ✗ | ✓ state machine, receipts, boot sweep | ✓ Per-gate receipts (not just per external action). Boot sweep. Atomic state writes. |
| Client Acquisition Engine | ✗ | ✗ | ✗ | ✗ | ✗ | ✓ Unlocks post-quality-build (beauty ≥7.5 + rating ≥8). Prospect audit → demo → outreach draft → one-tap approval. |
| NEED → Mission mapping | ✗ | ✗ | ✗ | ✗ | ✗ | ✓ Every NEED classified at creation → mission type + pre-loaded skills. NEEDs arrive armed. |
| Iron Laws count | 4 | 8 (v2) | 9 | 11 | 12 | 15 — named |
| Intelligence Surge | ~ Opus diagnosis | ~ Opus diagnosis | ~ Opus diagnosis | ✓ Opus diagnose + optional Opus write | ✓ Opus diagnose, Sonnet execute | ✓ Dual trigger: attempt 9 OR 60% burn/<40% progress. Opus write path if fix_complexity = opus-grade. |
| Semantic memory | ~ claude-memories (shared) | ✓ command-brain + ruvector.db | ~ shared memory | ~ shared memory | ✓ coo2-brain + ruvector.db | ✓ atlas-brain (seeded from coo2-brain) + ruvector.db. Operator feedback loop writes outcomes back. |
| Signs output | ✓ TAC | ✓ COO | ✓ TACO | ✓ TACO1 | ✓ COO2 | ✓ ATLAS — lineage field added: COO2 v3 + TACO1 v3 |
| iMessage reporting | ✗ | ✓ | ~ via Hermes | ~ via Hermes | ✓ gated by operator model | ✓ Gated by operator model. INTERRUPTION-GATE Iron Law enforced. |
| Best for | Deep code work, debugging, architecture decisions | Operational monitoring, site health, scheduling | Fast full-stack builds, mid-complexity sites | High-quality builds with beauty requirements | Complex multi-system ops, crash recovery, anticipation | The complete operation: anticipate + build + verify + acquire the next client. One session, no handoffs. |
Memory Architecture
7 backends · 3 persistence tiers · self-learning layer · agent-by-agent comparison
Flat-File (Git-Backed)
Born May 23 · Shared across all agents
Path:
What it stores: Human-readable Markdown notes written by TAC. Cross-session context that survives Claude restarts. Synced to GitHub daily via cron (memory-daily-sync at 7am).
Who reads it: All agents. TAC is the primary writer — COMMAND, COO2, and ATLAS can read but should not write to this namespace.
Search:
Limitation: No per-agent write isolation. One namespace for all — reads bleed across agents. Not suitable for agent-specific decision history.
~/.claude/projects/-Users-drive/memory/What it stores: Human-readable Markdown notes written by TAC. Cross-session context that survives Claude restarts. Synced to GitHub daily via cron (memory-daily-sync at 7am).
Who reads it: All agents. TAC is the primary writer — COMMAND, COO2, and ATLAS can read but should not write to this namespace.
Search:
mem-search "query" (keyword) or claude-flow memory search --namespace claude-memories -q "query" (semantic via AgentDB).Limitation: No per-agent write isolation. One namespace for all — reads bleed across agents. Not suitable for agent-specific decision history.
TAC (writes)
COO
TACO
TACO1
COO2
ATLAS
ruvector.db — HNSW Semantic Index
Born Jun 6 · Per-agent namespaces
What it is: Local HNSW vector index (ruvector). Each agent has an exclusive namespace — facts cannot cross. Semantic similarity search: "what did we do last time X happened?"
Namespaces in use:
•
•
•
•
Critical rule: Always
ATLAS advantage: Feedback loop writes mission outcomes back to atlas-brain automatically. Memory improves with every completed mission — it learns what worked.
Namespaces in use:
•
command-brain — COO/COMMAND. Path: ~/.command/memory/ruvector.db•
coo2-brain — COO2. Path: ~/.coo2/memory/ruvector.db•
atlas-brain — ATLAS. Path: ~/.atlas/memory/ruvector.db. Seeded from coo2-brain at first boot.•
claude-memories — TAC (via AgentDB). Shared with flat-file backend.Critical rule: Always
cd ~/.{agent}/memory before any claude-flow call — running from another directory activates WASM in-memory mode (ephemeral, not persisted).ATLAS advantage: Feedback loop writes mission outcomes back to atlas-brain automatically. Memory improves with every completed mission — it learns what worked.
COO (command-brain)
COO2 (coo2-brain)
ATLAS (atlas-brain)
Session Scratch (.remember/)
Per-agent · Cleared weekly
What it is: Fast working memory for the current session. Each agent writes today's context, active brief, and intra-session state here. Not for durable facts.
Paths:
•
•
•
Contrast with ruvector.db: Scratch is ephemeral context (what am I doing right now). ruvector.db is durable history (what did I do before). Never store durable facts in scratch — they vanish on weekly clear.
ATLAS boot sequence: Reads .remember/ for crash recovery context, then ruvector.db for similarity recall, then flat-file for canonical facts.
Paths:
•
~/.coo2/.remember/now.md — COO2 active brief•
~/.atlas/.remember/now.md — ATLAS active brief•
~/.taco/.remember/remember.md — TACO session handoffContrast with ruvector.db: Scratch is ephemeral context (what am I doing right now). ruvector.db is durable history (what did I do before). Never store durable facts in scratch — they vanish on weekly clear.
ATLAS boot sequence: Reads .remember/ for crash recovery context, then ruvector.db for similarity recall, then flat-file for canonical facts.
TACO
COO2
ATLAS
Self-Learning Layer — gap-fill + gap-heal
Born Jun 21 · ATLAS only · Runs 3× daily · Heals itself
gap-fill — runs at 8am, 1pm, 7pm via launchd cron (
gap-heal — runs automatically after every fill pass (~2.5 min, 5 phases). Phase 1: structural lint (broken related: links, missing fields). Phase 2: trust scoring 0.0–1.0 per entry (below 0.40 → quarantine). Phase 3: source verification (parallel HEAD checks, -0.15 penalty for dead URLs). Phase 4a: contradiction detection (22 regex-based fact types, multi-value whitelist). Phase 4b: staleness cron (tech 90d, medical 365d, people 730d). Phase 5: immunization — harvests recurring error patterns, patches gap-fill's own SKILL.md with 7 guards so future entries are written correctly from the start. It fixes the process, not just the output.
Dual-vault Obsidian bridge —
jr-cron wrapper). Each pass: sync git memory + scan all three brain layers for concepts mentioned 5+ times with no entry, open TODOs, orphan resources, email senders (JBJS, Lippincott, Medpage, Vercel, Cloudflare). Scores top 10 gaps by type weight × cross-project refs × days stale × open-loop flag. Researches each: web search (simple), jr (complex), Explore agent (codebase). Writes structured KB entries with all 8 frontmatter fields to ~/knowledge-base/3-resources/.gap-heal — runs automatically after every fill pass (~2.5 min, 5 phases). Phase 1: structural lint (broken related: links, missing fields). Phase 2: trust scoring 0.0–1.0 per entry (below 0.40 → quarantine). Phase 3: source verification (parallel HEAD checks, -0.15 penalty for dead URLs). Phase 4a: contradiction detection (22 regex-based fact types, multi-value whitelist). Phase 4b: staleness cron (tech 90d, medical 365d, people 730d). Phase 5: immunization — harvests recurring error patterns, patches gap-fill's own SKILL.md with 7 guards so future entries are written correctly from the start. It fixes the process, not just the output.
Dual-vault Obsidian bridge —
sync-memory-trigger.sh now bridges two vaults: "second brain" (work/technical, Daily/Memory/Projects/Clients/Knowledge/Dev Logs) + "Maxwell Brain" (personal assistant brain, Family/Medical/Notes/Texts). MBA local vault auto-detected at boot by hostname. All notes → AgentDB claude-memories + PARA ~/knowledge-base/. Git push on every sync → GitHub as cross-machine backbone (no SSH needed between Mac and MBA).
ATLAS (primary)
TAC (reads KB)
COO2 (reads KB)
PARA Knowledge Base (~/knowledge-base/)
Born Jun 21 · Structured long-term knowledge · Fed by gap-fill + vault bridge
Structure: Projects / Areas / Resources / Archives (PARA). Indexed into AgentDB
Search:
claude-memories on every sync. Serves as the structured layer between ephemeral session memory and durable flat-file notes.1-projects/ — active build projects (from Obsidian Projects/ + vault bridge)2-areas/ — medical/, family/, clients/, communications/ (from both vaults)3-resources/ — gap-fill writes here: agents/, tech-stack/, medical/, claude-code/, maxwell-notes/4-archives/ — retired contextSearch:
para-ingest <file> to add. claude-flow memory search --namespace claude-memories -q "query" to find. Trust score gates retrieval — quarantined entries (below 0.40) never returned.
ATLAS (primary reader)
TAC
COO2
Hermes SQLite + claude-mem MCP
Persistent beyond session · Observation log
Hermes SQLite: Hermes maintains its own SQLite memory database at
claude-mem MCP observations: Cross-session event log via
ATLAS doesn't own either directly — uses Hermes as a dispatch layer and reads the observation timeline at boot for recent context. Never writes to hermes memory directly; Hermes updates its own store via the jr/dispatch interface.
~/.hermes/. Survives Claude session kills — writes persist even when the main session ends. Search via hermes memory search "query". Used to track dispatched task state, output receipts, and cross-session job history.claude-mem MCP observations: Cross-session event log via
mcp__plugin_claude-mem_mcp-search__observation_add. TAC and COO write COMMAND events here. Timeline view at boot surfaces what happened before this session started. Distinct from the flat-file and ruvector backends — this is an event stream, not a fact store.ATLAS doesn't own either directly — uses Hermes as a dispatch layer and reads the observation timeline at boot for recent context. Never writes to hermes memory directly; Hermes updates its own store via the jr/dispatch interface.
Hermes (writes)
TAC (reads)
COO (writes)
ATLAS (reads)
| Memory Backend | TAC |
COO |
TACO / TACO1 |
COO2 |
ATLAS ★ |
|---|---|---|---|---|---|
| Flat-file (git-backed) | ✓ Primary writer · claude-memories | ✓ Read-only from TAC's namespace | ✓ Reads shared namespace | ✓ Reads only — writes go to coo2-brain | ✓ Reads for canonical facts. Does not write — preserves TAC's write isolation. |
| ruvector.db (HNSW semantic) | ~ Via AgentDB claude-memories | ✓ command-brain namespace · cmd-search.sh | ✗ No private namespace | ✓ coo2-brain namespace · coo2-search.sh | ✓ atlas-brain · seeded from coo2-brain at boot · outcome feedback loop writes back after every mission |
| Session scratch (.remember/) | ✗ | ~ Active brief in now.md (v2) | ~ ~/.taco/.remember/ handoff | ✓ now.md · cleared weekly | ✓ now.md · boot reads crash-recovery context from here before ruvector lookup |
| Hermes SQLite | ~ reads via hermes memory search | ✓ dispatched task state + receipts | ~ reads via jr output | ~ reads via jr output | ~ reads observation timeline at boot · never writes directly · uses Hermes as dispatch layer |
| claude-mem MCP observations | ✓ observation_add for TAC events | ✓ writes COMMAND events | ✗ | ~ reads timeline | ~ reads timeline at boot for recent event context |
| Memory improves over time | ~ manual writes only | ~ manual writes only | ✗ | ~ NEED feedback loop on outcomes | ✓ Automatic. Mission outcomes write to atlas-brain. NEED recurrences escalate type. Client satisfaction scores modify future prospect selection. Memory is alive. |
| gap-fill (3×/day auto) | ✗ | ✗ | ✗ | ✗ | ✓ ATLAS-owned. 8am / 1pm / 7pm via jr-cron. 10 gaps per pass → 3-resources/ KB entries. gap-heal immunization loop patches the fill process after each run. |
| Obsidian vault bridge | ~ reads claude-memories | ✗ | ✗ | ✗ | ✓ "second brain" + "Maxwell Brain" → AgentDB + PARA. MBA vault auto-detected. Git push on every sync → GitHub backbone. No iCloud symlink hacks. |
| Cross-agent read possible? | TAC flat-file → readable by all | command-brain → TAC read-only bridge | Only reads TAC flat-file | Reads command-brain to seed. Writes to coo2-brain. | Seeded from coo2-brain at first boot. Then writes exclusively to atlas-brain. TAC flat-file readable. TAC NEVER writes to atlas-brain. |
Key architectural rule
Each backend has an exclusive role — no fact is written to two backends as source of truth. Flat-file = canonical human-readable history (TAC writes, all read). ruvector.db = per-agent semantic recall (each agent owns its namespace, no cross-writes). Session scratch = today's working context (ephemeral). Hermes SQLite = task receipts that outlast sessions. claude-mem = event stream, not fact store.
ATLAS is the first agent where memory accumulates automatically without human intervention — the feedback loop closes the loop between execution and future recall. Every mission that completes writes its outcome. Every recurrence learns. The longer ATLAS operates, the better it becomes at predicting what Toby needs.
Self-learning layer (added Jun 21)
gap-fill + gap-heal forms a Kaizen loop: fill fast → heal immediately → immunize the fill process → fewer errors next run. Trust scores gate retrieval — knowledge degrades gracefully (0.40 threshold → quarantine) rather than silently returning stale facts. The vault bridge (two Obsidian vaults + MBA local → GitHub → AgentDB) means memory from any device reaches ATLAS at the next boot without SSH or symlinks.
Each backend has an exclusive role — no fact is written to two backends as source of truth. Flat-file = canonical human-readable history (TAC writes, all read). ruvector.db = per-agent semantic recall (each agent owns its namespace, no cross-writes). Session scratch = today's working context (ephemeral). Hermes SQLite = task receipts that outlast sessions. claude-mem = event stream, not fact store.
ATLAS is the first agent where memory accumulates automatically without human intervention — the feedback loop closes the loop between execution and future recall. Every mission that completes writes its outcome. Every recurrence learns. The longer ATLAS operates, the better it becomes at predicting what Toby needs.
Self-learning layer (added Jun 21)
gap-fill + gap-heal forms a Kaizen loop: fill fast → heal immediately → immunize the fill process → fewer errors next run. Trust scores gate retrieval — knowledge degrades gracefully (0.40 threshold → quarantine) rather than silently returning stale facts. The vault bridge (two Obsidian vaults + MBA local → GitHub → AgentDB) means memory from any device reaches ATLAS at the next boot without SSH or symlinks.
Shared Subsystems
Cross-agent infrastructure
EYES Protocol
Born Jun 8 · From iter-16 failure
No "done" without observable proof. SPA gate prevents curl-200-equals-pass. 4 viewports + scroll video + footer in final frame. Proof type is mission-specific (ATLAS Proof Table: web/code/email/cron/file/db/client-acquisition).
TAC
COO
TACO
TACO1
COO2
ATLAS
Memory System
Born May 23 · 3-backend architecture
Flat-file (git-backed, shared), ruvector.db (HNSW semantic search, per-agent namespace), session scratch (.remember/), Hermes SQLite, and claude-mem MCP observations. Each backend has exclusive write rules. ATLAS adds an outcome feedback loop — results write back to atlas-brain on every completed mission.
TAC
COO
TACO
TACO1
COO2
ATLAS
Council System
Born Jun 6 · 5→7 seats across versions
Parallel multi-lens voting before major decisions. Each seat returns pass/flag/block + score + insight. Consensus gates commit. Seat count: COO=5, TACO=5, TACO1=7 (Efficiency∑+Beauty◆), COO2=5+Operator-lens, ATLAS=9 odd-number (no tie). Any block stops — Operator-lens is tie-breaker.
COO
TACO
TACO1
COO2
ATLAS
UUPM Design System
Active · design_system.py
UI/UX Pro Max — generates color tokens, typography pairs, layout patterns, and anti-patterns before any UI code is written. Consulted via --domain flag (color, typography, landing, ux, 3d). 15 3D component patterns in CSV. ATLAS requires DESIGN-COMPLIANCE Iron Law — 8-point checklist before each new component.
TAC
TACO
TACO1
ATLAS
Mission Lifecycle
Born Jun 21 · COO2 + ATLAS
State machine: RECEIVED→PLANNED→ACTIONING→VERIFYING→DONE. Atomic state writes (write-then-mv). Per-gate idempotency receipts (ATLAS extends COO2 — every gate, not just external actions). Crash recovery boot sweep. Orphaned missions resume, not restart.
COO2
ATLAS
Hermes Layer
Born May 22–Jun 3
Two-tier execution. Hermes: fire-and-forget cron, iMessage, Slack. Hermes Jr: synchronous — output injected into TAC as tool result. Critical rule: never use run_in_background when TAC needs the output. ATLAS uses Hermes for persistence past session end; for iMessage, gated by INTERRUPTION-GATE Iron Law.
TAC
COO
TACO
TACO1
COO2
ATLAS
Signing Convention
Born Jun 21 · All agents
Every directory gets _BUILT-BY.md. Every .ts/.tsx file gets // Built by {INITIALS} as first comment. Campaign docs get a blockquote. Enables comparison tests, attribution, and quality scoring across agents running the same prompt.
TAC
COO
TACO
TACO1
COO2
ATLAS
NEED Architecture
Born Jun 21 · COO2 + ATLAS
6-stage lifecycle with priority decay formula. REPAIR=10, RISK=7, RELATIONSHIP=6, GROWTH=4, HYGIENE=2. Decay +1/day until actioned (cap 10). ATLAS adds a 6th type: ACQUISITION (weight 6 = same as RELATIONSHIP). Feedback loop: outcomes stored, recurrences escalated, dismissals suppressed 30 days. ATLAS adds NEED→Mission mapping: every NEED arrives pre-classified with mission type + pre-loaded skill set.
COO2
ATLAS
Client Acquisition Engine
Born Jun 21 · ATLAS only
Not a hunting operation — a quality consequence. Unlock gate: beauty_score ≥7.5 AND operator rating ≥8. ATLAS autonomously: (1) identifies prospects who need the same work just delivered, (2) audits their current site for the specific gap, (3) builds a personalized demo or gap preview, (4) drafts outreach with the gap as the hook, (5) surfaces: "Package ready — your tap sends it." First contact ALWAYS requires Toby's explicit approval. Pipeline states tracked in NEED record: prospect → contacted → demo-sent → negotiating → won | lost. The engine tells ATLAS who to build for next, feeding back into new site-build missions.
ATLAS