--- tags: - Project/Atomizer - Agentic - Architecture up: "[[P-Atomizer-Overhaul-Framework-Agentic/MAP - Atomizer Overhaul Framework Agentic]]" date: 2026-02-07 status: draft --- # πŸ—οΈ Architecture β€” Atomizer Engineering Co. > Technical architecture: Clawdbot configuration, Slack setup, memory systems, and infrastructure. --- ## 1. Clawdbot Multi-Agent Configuration ### Config Structure (clawdbot.json) This is the core configuration that makes it all work. Each agent is defined with its own workspace, model, identity, and tools. ```json5 { agents: { list: [ // === CORE AGENTS === { id: "manager", name: "The Manager", default: false, workspace: "~/clawd-atomizer-manager", model: "anthropic/claude-opus-4-6", identity: { name: "The Manager", emoji: "🎯", }, // Manager sees all project channels }, { id: "secretary", name: "The Secretary", workspace: "~/clawd-atomizer-secretary", model: "anthropic/claude-opus-4-6", identity: { name: "The Secretary", emoji: "πŸ“‹", }, }, { id: "technical", name: "The Technical Lead", workspace: "~/clawd-atomizer-technical", model: "anthropic/claude-opus-4-6", identity: { name: "The Technical Lead", emoji: "πŸ”§", }, }, { id: "optimizer", name: "The Optimizer", workspace: "~/clawd-atomizer-optimizer", model: "anthropic/claude-opus-4-6", identity: { name: "The Optimizer", emoji: "⚑", }, }, // === SPECIALISTS (Phase 2) === { id: "nx-expert", name: "The NX Expert", workspace: "~/clawd-atomizer-nx-expert", model: "anthropic/claude-sonnet-5", identity: { name: "The NX Expert", emoji: "πŸ–₯️", }, }, { id: "postprocessor", name: "The Post-Processor", workspace: "~/clawd-atomizer-postprocessor", model: "anthropic/claude-sonnet-5", identity: { name: "The Post-Processor", emoji: "πŸ“Š", }, }, { id: "reporter", name: "The Reporter", workspace: "~/clawd-atomizer-reporter", model: "anthropic/claude-sonnet-5", identity: { name: "The Reporter", emoji: "πŸ“", }, }, { id: "auditor", name: "The Auditor", workspace: "~/clawd-atomizer-auditor", model: "anthropic/claude-opus-4-6", identity: { name: "The Auditor", emoji: "πŸ”", }, }, { id: "study-builder", name: "The Study Builder", workspace: "~/clawd-atomizer-study-builder", model: "openai/gpt-5.3-codex", // or anthropic/claude-opus-4-6 identity: { name: "The Study Builder", emoji: "πŸ—οΈ", }, }, // === SUPPORT (Phase 3) === { id: "researcher", name: "The Researcher", workspace: "~/clawd-atomizer-researcher", model: "google/gemini-3.0", identity: { name: "The Researcher", emoji: "πŸ”¬", }, }, { id: "developer", name: "The Developer", workspace: "~/clawd-atomizer-developer", model: "anthropic/claude-sonnet-5", identity: { name: "The Developer", emoji: "πŸ’»", }, }, { id: "knowledge-base", name: "The Knowledge Base", workspace: "~/clawd-atomizer-kb", model: "anthropic/claude-sonnet-5", identity: { name: "The Knowledge Base", emoji: "πŸ—„οΈ", }, }, { id: "it-support", name: "IT Support", workspace: "~/clawd-atomizer-it", model: "anthropic/claude-sonnet-5", identity: { name: "IT Support", emoji: "πŸ› οΈ", }, }, ], }, // Route Slack channels to agents bindings: [ // Manager gets HQ and all project channels { agentId: "manager", match: { channel: "slack", peer: { kind: "group", id: "CHID_atomizer_hq" } } }, // Secretary gets its own channel { agentId: "secretary", match: { channel: "slack", peer: { kind: "group", id: "CHID_atomizer_secretary" } } }, // Project channels β†’ Manager (who then @mentions specialists) // Or use thread-based routing once available // Specialized channels { agentId: "researcher", match: { channel: "slack", peer: { kind: "group", id: "CHID_atomizer_research" } } }, { agentId: "developer", match: { channel: "slack", peer: { kind: "group", id: "CHID_atomizer_dev" } } }, { agentId: "knowledge-base", match: { channel: "slack", peer: { kind: "group", id: "CHID_atomizer_kb" } } }, ], } ``` > ⚠️ **Note:** The channel IDs (`CHID_*`) are placeholders. Replace with actual Slack channel IDs after creating them. ### Key Architecture Decision: Single Gateway vs Multiple **Recommendation: Single Gateway, Multiple Agents** One Clawdbot gateway process hosting all agents. Benefits: - Shared infrastructure (one process to manage) - `sessions_send` for inter-agent communication - `sessions_spawn` for sub-agent heavy lifting - Single config file to manage If resource constraints become an issue later, we can split into multiple gateways on different machines. --- ## 2. Workspace Layout Each agent gets a workspace following Clawdbot conventions: ``` ~/clawd-atomizer-manager/ β”œβ”€β”€ AGENTS.md ← Operating instructions, protocol rules β”œβ”€β”€ SOUL.md ← Personality, tone, boundaries β”œβ”€β”€ TOOLS.md ← Local tool notes β”œβ”€β”€ MEMORY.md ← Long-term role-specific memory β”œβ”€β”€ IDENTITY.md ← Name, emoji, avatar β”œβ”€β”€ memory/ ← Per-project memory files β”‚ β”œβ”€β”€ starspec-wfe-opt.md β”‚ └── client-b-thermal.md └── skills/ ← Agent-specific skills └── (agent-specific) ``` ### Shared Skills (all agents) ``` ~/.clawdbot/skills/ β”œβ”€β”€ atomizer-protocols/ ← Company protocols β”‚ β”œβ”€β”€ SKILL.md β”‚ β”œβ”€β”€ QUICK_REF.md ← One-page cheatsheet β”‚ └── protocols/ β”‚ β”œβ”€β”€ OP_01_study_lifecycle.md β”‚ β”œβ”€β”€ OP_02_... β”‚ └── SYS_18_... └── atomizer-company/ ← Company identity + shared knowledge β”œβ”€β”€ SKILL.md └── COMPANY.md ← Who we are, how we work, agent directory ``` ### Workspace Bootstrap Script ```bash #!/bin/bash # create-agent-workspace.sh AGENT_ID=$1 AGENT_NAME=$2 EMOJI=$3 DIR=~/clawd-atomizer-$AGENT_ID mkdir -p $DIR/memory $DIR/skills cat > $DIR/IDENTITY.md << EOF # IDENTITY.md - **Name:** $AGENT_NAME - **Emoji:** $EMOJI - **Role:** Atomizer Engineering Co. β€” $AGENT_NAME - **Company:** Atomizer Engineering Co. EOF cat > $DIR/SOUL.md << EOF # SOUL.md β€” $AGENT_NAME You are $AGENT_NAME at Atomizer Engineering Co., a multi-agent FEA optimization firm. ## Core Rules - Follow all Atomizer protocols (see atomizer-protocols skill) - Respond when @-mentioned in Slack channels - Stay in your lane β€” delegate outside your expertise - Update your memory after significant work - Be concise in Slack β€” expand in documents ## Communication - In Slack: concise, structured, use threads - For reports/documents: thorough, professional - When uncertain: ask, don't guess EOF cat > $DIR/AGENTS.md << EOF # AGENTS.md β€” $AGENT_NAME ## Session Init 1. Read SOUL.md 2. Read MEMORY.md 3. Check memory/ for active project context 4. Check which channel/thread you're in for context ## Memory - memory/*.md = per-project notes - MEMORY.md = role-specific long-term knowledge - Write down lessons learned after every project ## Protocols Load the atomizer-protocols skill for protocol reference. EOF cat > $DIR/MEMORY.md << EOF # MEMORY.md β€” $AGENT_NAME ## Role Knowledge *(To be populated as the agent works)* ## Lessons Learned *(Accumulated over time)* EOF echo "Created workspace: $DIR" ``` --- ## 3. Slack Workspace Architecture ### Dedicated Slack Workspace: "Atomizer Engineering" **This gets its own Slack workspace** β€” separate from Antoine's personal workspace. Professional, clean, product-ready for video content and demos. **Workspace name:** `Atomizer Engineering` (or `atomizer-eng.slack.com`) ### Permanent Channels | Channel | Purpose | Bound Agent | Who's There | |---------|---------|-------------|-------------| | `#hq` | Company coordination, general discussion | Manager | All agents can be summoned | | `#secretary` | Antoine's dashboard, directives | Secretary | Secretary + Antoine | | `#research` | Research requests and findings | Researcher | Researcher, anyone can ask | | `#dev` | Development and coding work | Developer | Developer, Manager | | `#knowledge-base` | Knowledge base maintenance | Knowledge Base | KB Agent, anyone can ask | | `#audit-log` | Auditor findings and reviews | Auditor | Auditor, Manager | ### Project Channels (Created Per Client Job) **Naming convention:** `#-` Examples: - `#starspec-m1-wfe` - `#clientb-thermal-opt` ### R&D / Development Channels For developing new Atomizer capabilities β€” vibration tools, fatigue analysis, non-linear methods, new extractors, etc. Antoine works directly with agents here to explore, prototype, and build. **Naming convention:** `#rd-` | Channel | Purpose | Key Agents | |---------|---------|------------| | `#rd-vibration` | Develop vibration/modal analysis tools | Technical Lead, Developer, Researcher | | `#rd-fatigue` | Fatigue analysis capabilities | Technical Lead, Developer, NX Expert | | `#rd-nonlinear` | Non-linear solver integration | Technical Lead, NX Expert, Researcher | | `#rd-surrogates` | GNN/surrogate model improvements | Optimizer, Developer, Researcher | | `#rd-extractors` | New data extractors | Developer, Post-Processor, Study Builder | **How R&D channels work:** 1. Antoine creates `#rd-` and posts the idea or problem 2. Manager routes to Technical Lead as the R&D point person 3. Technical Lead breaks down the R&D challenge, consults with Researcher for state-of-the-art 4. Developer prototypes, Auditor validates, Antoine reviews and steers 5. Once mature β†’ becomes a standard capability (new protocol, new extractor, new skill) 6. Manager (as Framework Steward) ensures it's properly integrated into the Atomizer framework **Antoine's role in R&D channels:** - Ask questions, poke around, explore ideas - The agents are his collaborators, not just executors - Technical Lead acts as the R&D conversation partner β€” understands the engineering, translates to actionable dev work - Antoine can say "what if we tried X?" and the team runs with it **Lifecycle:** 1. Antoine or Manager creates channel 2. Manager is invited (auto-bound) 3. Manager invites relevant agents as needed 4. After project completion: archive channel ### Thread Discipline Within project channels, use threads for: - Each distinct task or subtask - Agent-to-agent technical discussion - Review cycles (auditor feedback β†’ fixes β†’ re-review) Main channel timeline should read like a project log: ``` [Manager] 🎯 Project kickoff: StarSpec M1 WFE optimization [Technical] πŸ”§ Technical breakdown complete β†’ [thread] [Optimizer] ⚑ Algorithm recommendation β†’ [thread] [Manager] 🎯 Study approved. Launching optimization. [Post-Processor] πŸ“Š Results ready, 23% WFE improvement β†’ [thread] [Auditor] πŸ” Audit PASSED with 2 notes β†’ [thread] [Reporter] πŸ“ Report draft ready for review β†’ [thread] [Secretary] πŸ“‹ @antoine β€” Report ready, please review ``` --- ## 4. Inter-Agent Communication ### Primary: Slack @Mentions Agents communicate by @-mentioning each other in project channels: ``` Manager: "@technical, new job. Break down the attached requirements." Technical: "@manager, breakdown complete. Recommending @optimizer review the parameter space." Manager: "@optimizer, review Technical's breakdown in this thread." ``` ### Secondary: sessions_send (Direct) For urgent or private communication that shouldn't be in Slack: ``` sessions_send(agentId: "auditor", message: "Emergency: results look non-physical...") ``` ### Tertiary: sessions_spawn (Heavy Tasks) For compute-heavy work that shouldn't block the agent: ``` sessions_spawn(agentId: "postprocessor", task: "Generate full Zernike decomposition for trial 47-95...") ``` ### Communication Rules 1. **All project communication in project channels** (traceability) 2. **Technical discussions in threads** (keep channels clean) 3. **Only Manager initiates cross-agent work** (except Secretary β†’ Antoine) 4. **Auditor can interrupt any thread** (review authority) 5. **sessions_send for emergencies only** (not routine) --- ## 5. Memory System Implementation ### Company Memory (Shared Skill) ``` ~/.clawdbot/skills/atomizer-protocols/ β”œβ”€β”€ SKILL.md β”‚ description: "Atomizer Engineering Co. protocols and procedures" β”‚ read_when: "Working on any Atomizer project" β”œβ”€β”€ QUICK_REF.md ← Most agents load this β”œβ”€β”€ COMPANY.md ← Company identity, values, how we work β”œβ”€β”€ protocols/ β”‚ β”œβ”€β”€ OP_01_study_lifecycle.md β”‚ β”œβ”€β”€ OP_02_study_creation.md β”‚ β”œβ”€β”€ OP_03_optimization.md β”‚ β”œβ”€β”€ OP_04_results.md β”‚ β”œβ”€β”€ OP_05_reporting.md β”‚ β”œβ”€β”€ OP_06_troubleshooting.md β”‚ β”œβ”€β”€ OP_07_knowledge.md β”‚ β”œβ”€β”€ OP_08_delivery.md β”‚ β”œβ”€β”€ SYS_10_file_management.md β”‚ β”œβ”€β”€ SYS_11_nx_sessions.md β”‚ β”œβ”€β”€ SYS_12_solver_config.md β”‚ β”œβ”€β”€ SYS_13_extractors.md β”‚ β”œβ”€β”€ SYS_14_hooks.md β”‚ β”œβ”€β”€ SYS_15_surrogates.md β”‚ β”œβ”€β”€ SYS_16_dashboard.md β”‚ β”œβ”€β”€ SYS_17_insights.md β”‚ └── SYS_18_validation.md └── lac/ β”œβ”€β”€ critical_lessons.md ← Hard-won insights from LAC └── algorithm_guide.md ← When to use which algorithm ``` ### Agent Memory Lifecycle ``` New Project Starts β”‚ β”œβ”€ Agent reads: MEMORY.md (long-term knowledge) β”œβ”€ Agent checks: memory/.md (if returning to existing project) β”‚ β”œβ”€ During project: updates memory/.md with decisions, findings β”‚ └─ Project Ends β”œβ”€ Agent distills lessons β†’ updates MEMORY.md └─ memory/.md archived (kept for reference) ``` ### Cross-Agent Knowledge Sharing Agents share knowledge through: 1. **Slack channels** β€” conversations are visible to all invited agents 2. **Shared skill files** β€” updated protocols/lessons accessible to all 3. **Git repo** β€” Atomizer repo synced via Syncthing 4. **KB Agent** β€” can be asked "what do we know about X?" --- ## 6. Infrastructure Diagram ``` β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”‚ CLAWDBOT SERVER (Linux) β”‚ β”‚ β”‚ β”‚ β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”‚ β”‚ β”‚ Clawdbot Gateway β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”‚ β”‚ β”‚ β”‚ β”‚Manager β”‚ β”‚Secretaryβ”‚ β”‚Technicalβ”‚ β”‚Optimizerβ”‚ β”‚ β”‚ β”‚ β”‚ β”‚Agent β”‚ β”‚Agent β”‚ β”‚Agent β”‚ β”‚Agent β”‚ β”‚ β”‚ β”‚ β”‚ β””β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”˜ β””β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”˜ β””β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”˜ β””β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”˜ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”Œβ”€β”€β”€β”€β”΄β”€β”€β”€β”€β” β”Œβ”€β”€β”€β”€β”΄β”€β”€β”€β”€β” β”Œβ”€β”€β”€β”€β”΄β”€β”€β”€β”€β” β”Œβ”€β”€β”€β”€β”΄β”€β”€β”€β”€β” β”‚ β”‚ β”‚ β”‚ β”‚NX Expertβ”‚ β”‚PostProc β”‚ β”‚Reporter β”‚ β”‚Auditor β”‚ β”‚ β”‚ β”‚ β”‚ β”‚Agent β”‚ β”‚Agent β”‚ β”‚Agent β”‚ β”‚Agent β”‚ β”‚ β”‚ β”‚ β”‚ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β”‚ β”‚ β”‚ β”‚ + Researcher, Developer, KB, IT β”‚ β”‚ β”‚ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β”‚ β”‚ β”‚ β”‚ β”‚ β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β–Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”‚ β”‚ β”‚ Shared Resources β”‚ β”‚ β”‚ β”‚ /home/papa/repos/Atomizer/ (Git, via Syncthing) β”‚ β”‚ β”‚ β”‚ /home/papa/obsidian-vault/ (PKM, via Syncthing) β”‚ β”‚ β”‚ β”‚ /home/papa/ATODrive/ (Work docs) β”‚ β”‚ β”‚ β”‚ ~/.clawdbot/skills/atomizer-*/ (Shared skills) β”‚ β”‚ β”‚ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β”‚ β”‚ β”‚ β”‚ β”‚ Syncthing β”‚ β”‚ β”‚ β”‚ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β”‚ β–Ό β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”‚ WINDOWS (Antoine's PC) β”‚ β”‚ β”‚ β”‚ β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”‚ β”‚ β”‚ NX/Simcenter β”‚ β”‚ Claude Code β”‚ β”‚ Atomizer β”‚ β”‚ β”‚ β”‚ (FEA Solver) β”‚ β”‚ (Local) β”‚ β”‚ Dashboard β”‚ β”‚ β”‚ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β”‚ β”‚ β”‚ β”‚ Study files synced to Linux via Syncthing β”‚ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β”‚ β–Ό β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”‚ SLACK WORKSPACE β”‚ β”‚ β”‚ β”‚ #hq #secretary #- #rd- β”‚ β”‚ #research #dev #knowledge-base #audit-log β”‚ β”‚ β”‚ β”‚ All agents have Slack accounts via Clawdbot β”‚ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ ``` --- ## 7. Security & Isolation ### Agent Access Boundaries | Agent | File Access | External Access | Special Permissions | |-------|------------|-----------------|---------------------| | Manager | Read Atomizer repo, PKM projects | Slack only | Can spawn sub-agents | | Secretary | Read PKM, ATODrive | Slack + Email (draft only) | Can message Antoine directly | | Technical | Read Atomizer repo, PKM projects | Slack only | β€” | | Optimizer | Read/write study configs | Slack only | β€” | | NX Expert | Read Atomizer repo, NX docs | Slack only | β€” | | Post-Processor | Read study results, write plots | Slack only | β€” | | Reporter | Read results, write reports | Slack + Email (with approval) | Atomaste report skill | | Auditor | Read everything (audit scope) | Slack only | Veto power on deliverables | | Researcher | Read Atomizer repo | Slack + Web search | Internet access | | Developer | Read/write Atomizer repo | Slack only | Git operations | | KB | Read/write PKM knowledge folders | Slack only | CAD Documenter skill | | IT | Read system status | Slack only | System diagnostics | ### Principle of Least Privilege - No agent has SSH access to external systems - Email sending requires Antoine's approval (enforced in Secretary + Reporter AGENTS.md) - Only Developer can write to the Atomizer repo - Only Reporter + Secretary can draft client communications - Auditor has read-all access (necessary for audit role) --- ## 8. Cost Estimation ### Per-Project Estimate (Typical Optimization Job) | Phase | Agents Active | Estimated Turns | Estimated Cost | |-------|--------------|-----------------|----------------| | Intake | Manager, Technical, Secretary | ~10 turns | ~$2-4 | | Planning | Technical, Optimizer, NX Expert | ~15 turns | ~$5-8 | | Execution | Optimizer, Post-Processor | ~20 turns | ~$6-10 | | Analysis | Post-Processor, Auditor | ~15 turns | ~$5-8 | | Reporting | Reporter, Auditor, Secretary | ~10 turns | ~$4-6 | | **Total** | | **~70 turns** | **~$22-36** | *Based on current Anthropic API pricing for Opus 4.6 / Sonnet 5 with typical context lengths.* ### Cost Optimization Strategies 1. **Wake-on-demand:** Agents only activate when @-mentioned 2. **Tiered models:** Support agents on cheaper models 3. **Sub-agent timeouts:** `runTimeoutSeconds` prevents runaway sessions 4. **Session archiving:** Auto-archive after 60 minutes of inactivity 5. **Context management:** Keep AGENTS.md lean, load skills on-demand 6. **Batch operations:** Secretary batches questions instead of individual pings --- *Created: 2026-02-07 by Mario*