Files
Atomizer/docs/hq/11-HQ-IMPROVEMENTS-PLAN.md

13 KiB

11 — HQ Improvements Plan: Lessons from Bhanu's Multi-Agent System

Status: PLAN — Ready for execution Author: Mario Lavoie Date: 2026-02-16 Source: Bhanu's Multi-Clawdbot Video + Antoine's feedback Scope: Improvements to Atomizer HQ orchestration — not feature dev or project optimization dashboards


Context

Bhanu (founder of SiteGPT) runs 14 OpenClaw agents doing marketing. Key things that work well in his setup and how they map to ours:

Bhanu's Pattern Our Equivalent Status
Single entry point (Jarvis) Manager orchestrates Have it
Custom-built task dashboard Need this
15-min polling (agents check for new work) Heartbeat system 🔶 Need adaptation
Enforced deliverables per task Handoff JSON schema 🔶 Need enforcement
Squad chat (agents talk freely) Discord channels Have it better
Broadcast to all agents delegate.sh / hooks Have it
Escalation to Telegram on @mentions Slack notifications Have it
Vacation mode (Jarvis auto-approves) 🔶 Nice to have

Key insight from Antoine: We keep Discord as the backbone. Topic-based channels managed by Manager give us more visibility than Bhanu's single-dashboard approach. The dashboard supplements Discord — it doesn't replace it.


Improvement 1: HQ Orchestration Dashboard

What It Is

A lightweight web UI that shows the state of all active work across the Atomizer HQ cluster. Think: a Kanban board + agent status panel. Antoine opens it from any device and sees the full picture.

This is NOT:

  • The existing Atomizer study/optimization dashboard (that stays separate)
  • A feature development tracker (that lives in Discord + roadmap docs)

This IS:

  • A collaboration/orchestration view for the agent cluster
  • Real-time visibility into who's doing what

Views

1. Task Board (Kanban)

┌─────────────┬──────────────┬──────────────┬─────────────┐
│   BACKLOG   │ IN PROGRESS  │   REVIEW     │    DONE     │
├─────────────┼──────────────┼──────────────┼─────────────┤
│ Research    │ 🔧 Tech Lead │ 📋 Secretary │ ✅ Homepage  │
│ CTE data   │ Material     │ Report v2    │   redesign  │
│ [webster]   │ trade study  │ needs CEO    │   [friday]  │
│             │              │ approval     │             │
│ Write test  │ ⚡ Optimizer  │              │ ✅ CTE study │
│ protocol    │ Pareto front │              │   [webster] │
│ [auditor]   │ exploration  │              │             │
└─────────────┴──────────────┴──────────────┴─────────────┘

Each card shows:

  • Task title + short description
  • Assigned agent (emoji + name)
  • Time elapsed since assignment
  • Status (from handoff JSON: complete/partial/blocked/failed)
  • Deliverables attached (if any)
  • Blockers (highlighted in red)

2. Agent Status Panel

┌──────────────────────────────────────────────┐
│ AGENTS                                        │
│ 🎯 Manager      ● online   3 tasks active    │
│ 📋 Secretary     ● online   1 task active     │
│ 🔧 Tech Lead    ● online   2 tasks active    │
│ 🔍 Auditor      ● online   idle              │
│ ⚡ Optimizer     ● online   1 task active     │
│ 🏗️ Study Builder ○ offline  —                 │
│ 🖥️ NX Expert     ○ offline  —                 │
│ 🌐 Webster      ● online   1 task active     │
└──────────────────────────────────────────────┘

Health from /hooks/health endpoint per instance. Shows active task count, last activity timestamp.

3. Recent Activity Feed

Chronological log of handoffs, completions, escalations. Like a simplified Discord activity stream but structured:

[14:32] 🎯 Manager → 🌐 Webster: "Research CTE of Clearceram-Z HS"
[14:33] 🌐 Webster: accepted task
[14:45] 🌐 Webster: STATUS: complete, CONFIDENCE: high
[14:45] 🎯 Manager → 🔍 Auditor: "Validate Webster's CTE findings"
[14:46] 📋 Secretary → Antoine: "Review needed: Homepage redesign deliverable"

4. Escalations & Blockers (Top Bar)

Items waiting for Antoine's input — surfaced prominently so he doesn't need to dig.

Tech Stack

  • Frontend: React + Vite + TailwindCSS (same as existing Atomizer dashboard)
  • Backend: FastAPI endpoint that reads handoff files from /home/papa/atomizer/handoffs/
  • Data source: The handoff JSON from orchestration engine (doc 10) — already structured
  • Refresh: WebSocket or 10-second polling
  • Auth: Basic auth or none (local network only)

Implementation

Step Work Effort
1 Define task state machine (backlog→active→review→done) 1h
2 Add task creation/tracking to orchestrate.sh 2h
3 FastAPI endpoints: GET /tasks, GET /agents/status, GET /activity 3h
4 React Kanban board component 4h
5 Agent status panel + activity feed 3h
6 WebSocket live updates 2h
Total ~15h

Improvement 2: Agent Polling for Collaborative Work

What Bhanu Does

Every 15 minutes, each agent checks the dashboard for new items and adds input if relevant. This creates organic cross-pollination — the SEO agent sees a UX task and adds keyword data without being asked.

Our Adaptation

Normal workflow: Agents poll every 15 minutes (existing heartbeat cadence). During a poll, agents check:

  1. Dashboard task board for tasks in their domain
  2. Discord channels they're subscribed to for new context
  3. Any handoffs waiting for their input

Sprint mode: During active sprints, polling increases to 5 minutes. Manager activates sprint mode for specific agents working on a deliverable. Sprint mode auto-expires after a configurable duration (default: 2 hours).

Usage Impact

Mode Agents Polled Frequency Calls/Hour Model Est. Cost/Hour
Normal 8 15 min 32 Gemini Flash ~$0.10
Sprint (3 agents) 3 5 min 36 Gemini Flash ~$0.12
Sprint (all 8) 8 5 min 96 Gemini Flash ~$0.30

Mitigation strategies:

  • Use Gemini Flash for all polling (cheapest model)
  • Keep polling context minimal (just task board state, not full history)
  • Only sprint-poll involved agents, not the whole cluster
  • Auto-expire sprint mode to prevent runaway costs

Implementation

Step Work Effort
1 Add sprint-mode.json config (active agents, frequency, expiry) 1h
2 Update agent HEARTBEAT.md templates to check task board 1h
3 Manager command: "start sprint [agents] [duration]" 2h
4 Dashboard toggle for sprint mode 1h
Total ~5h

Improvement 3: Enforced Deliverables

What Bhanu Does

Every task requires a deliverable to be marked done. No deliverable = task stays open. This prevents agents from saying "I worked on it" without producing anything.

Our Adaptation

This is gold and we partially have it (handoff JSON has artifacts field). We need to make it mandatory and visible.

Rules:

  1. Every task MUST have a deliverable_type defined at creation:
    • document — markdown/PDF report
    • code — script, config, or code change
    • analysis — structured findings with data
    • recommendation — decision brief with options
    • review — audit/validation report
  2. Task cannot move to "done" without an artifact path in the handoff JSON
  3. Dashboard shows deliverable status: 📎 attached / ⚠️ missing
  4. Manager enforces this — rejects handoffs without deliverables

Changes to Handoff Schema

{
  "schemaVersion": "1.1",
  "runId": "...",
  "agent": "webster",
  "status": "complete",
  "result": "...",
  "deliverable": {
    "type": "analysis",
    "title": "Clearceram-Z HS CTE Comparison",
    "path": "/home/papa/atomizer/deliverables/2026-02-16-cte-comparison.md",
    "summary": "CCZ HS matches Zerodur Class 0 CTE spec at 0 ± 0.02 ppm/K (20-300K)"
  },
  "confidence": "high",
  "timestamp": "2026-02-16T03:00:00Z"
}

Implementation

Step Work Effort
1 Update handoff schema (v1.1) with mandatory deliverable block 1h
2 Update agent SOUL.md instructions re: deliverables 1h
3 Add validation in orchestrate.sh (reject if no deliverable) 1h
4 Dashboard: show deliverable status on task cards 1h
Total ~4h

Improvement 4: Discord as the Backbone (Not the Dashboard)

Why We're Different from Bhanu

Bhanu channels everything through one agent (Jarvis) and uses a custom dashboard as the shared workspace. We have something better: Discord with topic-based channels.

Advantages of our approach:

  • Visibility — Antoine sees all agent work in real-time across channels
  • Context — each channel is a focused workspace, not a noisy firehose
  • Showcase — looks like a real engineering team (video-worthy, client-facing potential)
  • Direct access — Antoine can jump into any channel and talk to any agent
  • History — Discord retains full conversation history per topic
  • Manager still orchestrates — creates channels, assigns work, enforces deliverables

What the Dashboard Adds on Top

The dashboard doesn't replace Discord — it's the bird's eye view:

  • Discord = the workspace (where work happens)
  • Dashboard = the control panel (where you see the big picture)

Agents work in Discord channels. The dashboard aggregates their status.

Manager's Channel Management Role

Manager should actively manage Discord channels:

  • Create project channels when new work starts (#proj-starspec-wfe)
  • Archive channels when work completes
  • Pin key deliverables in channels
  • Post daily summaries in #all-atomizer-hq
  • Route new tasks to appropriate channels

Implementation

Step Work Effort
1 Update Manager SOUL.md with channel management duties 1h
2 Channel naming convention doc 0.5h
3 Manager creates channels via Discord API on task creation 2h
Total ~3.5h

Improvement 5: Vacation / Autonomous Mode

What Bhanu Does

Tells Jarvis "don't wait on me, you be the final call" — Jarvis auto-approves everything for days. Comes back to find 97 items completed.

Our Adaptation

A "trust level" setting for Manager:

Level Behavior
Normal Escalate decisions, wait for Antoine on approvals
Autonomous Manager auto-approves routine work, only escalates high-risk items
Full auto Manager approves everything, Antoine reviews async when back

Activated via: message Manager in Discord or Slack: "Going offline for 3 days, autonomous mode"

Implementation

Step Work Effort
1 Add trust-level config to Manager's workspace 1h
2 Update Manager SOUL.md with approval logic per level 1h
3 Dashboard indicator showing current mode 0.5h
Total ~2.5h

Execution Priority

# Improvement Effort Impact Priority
3 Enforced Deliverables 4h 🔴 High — changes agent behavior now Do first
1 HQ Orchestration Dashboard 15h 🔴 High — visibility into everything Do second
2 Agent Polling / Sprint Mode 5h 🟡 Medium — enables collaboration Do third
4 Discord Channel Management 3.5h 🟡 Medium — better organization Do fourth
5 Vacation / Autonomous Mode 2.5h 🟢 Nice to have Do last

Total estimated effort: ~30 hours


What We're NOT Doing (Intentionally)

  • Single-agent entry point — We keep Discord multi-channel. More visibility > more control.
  • Custom project management app — Dashboard is lightweight. Discord is the workspace.
  • Feature development dashboard — Tracked in Discord + roadmap docs.
  • Project optimization dashboard — The existing Atomizer dashboard handles study monitoring.
  • Squad chat — We already have this via Discord channels, and it's better.

Dependencies

  • Orchestration engine (doc 10) — Handoff JSON schema is the data backbone for the dashboard
  • orchestrate.sh — Must be working for task tracking
  • Agent cluster — All 8 instances need to be stable

Prepared by Mario — 2026-02-16