Files
Atomizer/docs/ATOMIZER_HQ_DASHBOARD_PLAN.md
Antoine 04f06766a0 docs: Atomizer HQ Dashboard — full plan (CEO-requested)
Five-pane architecture:
- Project Blueprint (CONTEXT.md → live view)
- Study Tracker (enhanced real-time monitoring)
- Command Center (remote NX execution from browser)
- Agent Console (interact with HQ agents)
- Reports & Export (PDF/HTML generation)

Phased implementation: D1-D5 (7-12 weeks total, MVP at D3)
Extends existing atomizer-dashboard (no rewrite)
Progressive: file-based bridge → WebSocket → NX MCP
2026-02-11 18:32:54 +00:00

42 KiB

Atomizer HQ Dashboard — Full Plan

Status: DRAFT — Awaiting CEO review Author: Manager 🎯 Date: 2026-02-11 Requested by: Antoine Letarte (CEO)


Executive Summary

Transform the existing Atomizer Dashboard (study monitoring tool) into Atomizer HQ — a centralized command center that serves as the primary interface between Antoine and the entire Atomizer Engineering operation. From any device, Antoine can view project blueprints, monitor running studies, execute commands on Windows, interact with agents, and generate reports — all through a single, polished web UI.

The core insight: The dashboard isn't just a viewer. It's a remote control for the entire operation — agents, NX solver, studies, reports — with Windows compute power dispatched from the browser.


Vision

┌─────────────────────────────────────────────────────────────┐
│                    ATOMIZER HQ                               │
│                                                              │
│  ┌──────────┐  ┌──────────┐  ┌──────────┐  ┌──────────┐    │
│  │ Project  │  │ Study    │  │ Command  │  │ Agent    │    │
│  │ Blueprint│  │ Tracker  │  │ Center   │  │ Console  │    │
│  └──────────┘  └──────────┘  └──────────┘  └──────────┘    │
│                                                              │
│  Browser (any device) ←──── HTTPS ────→ FastAPI (T420)       │
│                                           │                  │
│                                      Job Queue / MCP         │
│                                           │                  │
│                                      dalidou (Windows)       │
│                                      NX Nastran + conda      │
└─────────────────────────────────────────────────────────────┘

Antoine opens a browser on his Windows machine, his phone, or any device on the network. He sees his projects, his studies, his results — and he can take action. No PowerShell. No SSH. No switching between tools.


Architecture

Current State

atomizer-dashboard/
├── backend/           FastAPI + WebSocket (Python)
│   ├── api/routes/    optimization, insights, terminal, nx, spec, intake
│   ├── api/services/  claude agent, session mgr, spec mgr, nx introspection
│   └── api/websocket/ optimization stream
├── frontend/          React + Vite + TypeScript + TailwindCSS
│   ├── pages/         Home, Dashboard, Analysis, Insights, Studio, Setup, Canvas
│   ├── components/    Canvas nodes, chart components, terminal
│   └── hooks/         WebSocket, Optuna stream, spec store
└── README.md

What works today:

  • Study discovery and monitoring (WebSocket streaming)
  • Interactive charts (Plotly + Recharts)
  • Process control (start/stop optimization)
  • Claude Code terminal embed (xterm.js + PTY)
  • Study insights (Zernike WFE, stress, modal)
  • AtomizerSpec canvas (node-based study configurator)
  • NX introspection endpoints

What's missing for HQ:

  • Project-level view (above study level)
  • Atomizer HQ agent integration (Slack agents → dashboard)
  • Remote command dispatch with live feedback
  • Project reporting & export
  • Multi-device responsive design
  • Authentication (currently open)

Target Architecture

                        ┌─────────────────────────┐
                        │     Browser (any device)  │
                        │     React + TailwindCSS   │
                        └────────────┬──────────────┘
                                     │ HTTPS + WSS
                        ┌────────────▼──────────────┐
                        │   FastAPI Backend (T420)   │
                        │                            │
                        │  ┌──────────────────────┐  │
                        │  │   Project Service     │──── CONTEXT.md, DECISIONS.md
                        │  ├──────────────────────┤  │   knowledge_base/
                        │  │   Study Service       │──── Optuna DB, history.db
                        │  ├──────────────────────┤  │   iteration folders
                        │  │   Command Service     │──── Job Queue (SYS_19)
                        │  ├──────────────────────┤  │   → Syncthing → dalidou
                        │  │   Agent Service       │──── Clawdbot API / Slack
                        │  ├──────────────────────┤  │
                        │  │   Report Service      │──── Markdown → PDF/HTML
                        │  └──────────────────────┘  │
                        │                            │
                        │  WebSocket Hub             │
                        │  ├─ Study stream           │
                        │  ├─ Command output stream  │
                        │  └─ Agent activity stream  │
                        └────────────────────────────┘
                                     │
                    ┌────────────────┼────────────────┐
                    │                │                 │
            ┌───────▼──────┐ ┌──────▼──────┐ ┌───────▼──────┐
            │   Atomizer   │ │  Job Queue  │ │  Clawdbot    │
            │   Repo       │ │  (Syncthing)│ │  Gateway     │
            │   (Git)      │ │  → Windows  │ │  (Agents)    │
            └──────────────┘ └──────┬──────┘ └──────────────┘
                                    │
                             ┌──────▼──────┐
                             │   dalidou   │
                             │   Windows   │
                             │   NX + conda│
                             └─────────────┘

Network / Access

Component Location Port Access
Dashboard frontend T420 (Linux) 5173 (dev) / 443 (prod) LAN / Tailscale
FastAPI backend T420 (Linux) 8000 Internal only
Clawdbot gateway T420 (Linux) 18790 Internal only
NX Solver dalidou (Windows) Via Syncthing job queue
NX MCP (future) dalidou (Windows) TBD Direct API (Phase 3)

Multi-device access: Via Tailscale VPN or LAN. Dashboard is a web app — works on Windows, Mac, phone, tablet. No install needed.


The Five Panes

Pane 1: 📋 Project Blueprint

Purpose: The project's living blueprint — everything about the project in one view.

Data sources: CONTEXT.md, DECISIONS.md, knowledge_base/, atomizer_spec.json

Layout

┌─────────────────────────────────────────────────────────────┐
│  📋 HYDROTECH BEAM                              🟢 Active   │
├─────────────────────────────────────────────────────────────┤
│                                                              │
│  ┌─ Objective ─────────────────────────────────────────┐    │
│  │ Minimize mass (kg) of sandwich I-beam               │    │
│  │ Subject to: displacement ≤ 10mm, stress ≤ 130 MPa  │    │
│  └─────────────────────────────────────────────────────┘    │
│                                                              │
│  ┌─ Design Variables ──────────────────────────────────┐    │
│  │ DV  │ Expression            │ Range    │ Baseline   │    │
│  │ 1   │ beam_half_core_thick  │ 10-40mm  │ 25.162mm  │    │
│  │ 2   │ beam_face_thickness   │ 10-40mm  │ 21.504mm  │    │
│  │ 3   │ holes_diameter        │ 150-450  │ 300mm     │    │
│  │ 4   │ hole_count            │ 5-15     │ 10        │    │
│  └─────────────────────────────────────────────────────┘    │
│                                                              │
│  ┌─ Baseline Performance ──────────────────────────────┐    │
│  │ Mass: 1,133 kg │ Disp: 19.56mm ⚠️ │ Stress: 117 MPa │  │
│  └─────────────────────────────────────────────────────┘    │
│                                                              │
│  ┌─ Decision Timeline ─────────────────────────────────┐    │
│  │ ● DEC-HB-001  Two-phase strategy (DOE→TPE)         │    │
│  │ ● DEC-HB-002  4 design variables confirmed         │    │
│  │ ● DEC-HB-008  In-place solving (backup/restore)    │    │
│  │ ● ...                                                │    │
│  └─────────────────────────────────────────────────────┘    │
│                                                              │
│  ┌─ Knowledge Base Status ─────────────────────────────┐    │
│  │ Generation: 003 │ Gaps: 2 open / 14 closed          │    │
│  │ Open: G9 (yield stress), G15 (p6 as DV?)           │    │
│  └─────────────────────────────────────────────────────┘    │
│                                                              │
│  ┌─ Study Phases ──────────────────────────────────────┐    │
│  │ ✅ Phase 1: DOE Landscape (51 trials)    [View →]   │    │
│  │ ⬜ Phase 2: TPE Optimization             [Plan →]   │    │
│  │ ⬜ Phase 3: Validation                              │    │
│  └─────────────────────────────────────────────────────┘    │
│                                                              │
└─────────────────────────────────────────────────────────────┘

Features

  • Auto-parsed from CONTEXT.md — no manual data entry
  • Live status indicators — green/yellow/red based on constraint satisfaction
  • Decision log as interactive timeline — click to expand rationale
  • KB gap tracker — see what's still unknown
  • Study phase navigation — click to jump into Study Tracker pane
  • Export: One-click PDF/HTML project summary (OP_08 report format)

Pane 2: 📊 Study Tracker

Purpose: Real-time monitoring of running studies + historical results analysis.

Data sources: history.db, optuna_study.db, iteration folders, doe_run.log

Builds on: Existing Dashboard + Analysis + Insights pages (already functional)

Layout

┌─────────────────────────────────────────────────────────────┐
│  📊 Study: 01_doe_landscape           ▶️ Running (Trial 23/51) │
├─────────────────────────────────────────────────────────────┤
│                                                              │
│  ┌─ Live Progress Bar ─────────────────────────────────┐    │
│  │ ████████████████████░░░░░░░░░░░ 23/51 (45%) ~5min   │    │
│  └─────────────────────────────────────────────────────┘    │
│                                                              │
│  ┌─ Best So Far ───────────────────────────────────────┐    │
│  │ Trial #17: Mass=847kg ✅ Disp=8.2mm ✅ Stress=98MPa ✅ │  │
│  │ DVs: core=18.5 face=28.3 dia=220 count=12          │    │
│  │ Improvement: -25.2% mass vs baseline                │    │
│  └─────────────────────────────────────────────────────┘    │
│                                                              │
│  ┌─ Charts (tabbed) ──────────────────────────────────┐     │
│  │ [Convergence] [Scatter] [Parallel] [Sensitivity]   │     │
│  │                                                     │     │
│  │  Mass vs Trial — convergence curve with             │     │
│  │  feasible/infeasible color coding                   │     │
│  │  ▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓                     │     │
│  │                                                     │     │
│  └─────────────────────────────────────────────────────┘     │
│                                                              │
│  ┌─ Trial Table ───────────────────────────────────────┐    │
│  │ # │ Core │ Face │ Dia  │Count│Mass │Disp│Stress│Feas│    │
│  │ 0 │25.16│21.50 │300.0 │ 10  │1133 │19.5│ 117  │ ✅ │    │
│  │ 1 │18.50│28.30 │220.0 │ 12  │ 847 │ 8.2│  98  │ ✅ │    │
│  │ ...                                                  │    │
│  └─────────────────────────────────────────────────────┘    │
│                                                              │
│  ┌─ Iteration Inspector ───────────────────────────────┐    │
│  │ Click any trial → see params.json, solver log,      │    │
│  │ OP2 summary, NX screenshots (if available)          │    │
│  └─────────────────────────────────────────────────────┘    │
│                                                              │
└─────────────────────────────────────────────────────────────┘

New Features (beyond existing dashboard)

  • Progress bar with ETA — based on solve_time_s average
  • Best-so-far card — highlighted, always visible
  • Feasibility color coding — green (all constraints met), yellow (partial), red (infeasible)
  • Parameter sensitivity — from DOE data, which DVs matter most
  • Iteration inspector — click a trial, see everything about it
  • Study comparison — side-by-side Phase 1 vs Phase 2 results
  • DOE heatmaps — 2D parameter space with mass/constraint coloring

Pane 3: 🎮 Command Center

Purpose: Replace PowerShell. Run commands on Windows from the browser with button-driven UI.

This is the killer feature. Instead of:

# On dalidou, open PowerShell, navigate, activate env, run...
cd C:\Users\antoi\Atomizer\projects\hydrotech-beam\studies\01_doe_landscape
conda activate atomizer
python run_doe.py --n-samples 51 --backend nxopen

You click a button:

[▶️ Run DOE]  Samples: [51]  Backend: [nxopen ▾]  [Start]

Layout

┌─────────────────────────────────────────────────────────────┐
│  🎮 Command Center                          dalidou: 🟢 Online │
├─────────────────────────────────────────────────────────────┤
│                                                              │
│  ┌─ Quick Actions ─────────────────────────────────────┐    │
│  │                                                      │    │
│  │  [▶️ Run DOE]     [▶️ Resume Study]  [⏹️ Stop]       │    │
│  │  [🔄 Single Trial] [📊 Generate Report]              │    │
│  │  [🧹 Clean & Restart] [📥 Pull Results]              │    │
│  │                                                      │    │
│  └──────────────────────────────────────────────────────┘    │
│                                                              │
│  ┌─ Run Configuration ─────────────────────────────────┐    │
│  │                                                      │    │
│  │  Study: [01_doe_landscape ▾]                         │    │
│  │  Samples: [51 ▾]  Backend: [nxopen ▾]               │    │
│  │  Resume: [☐]  Clean: [☐]  Verbose: [☑]             │    │
│  │                                                      │    │
│  │  [▶️ Execute on dalidou]                              │    │
│  │                                                      │    │
│  └──────────────────────────────────────────────────────┘    │
│                                                              │
│  ┌─ Live Console ──────────────────────────────────────┐    │
│  │  $ python run_doe.py --n-samples 51 --backend nxopen │   │
│  │  [INFO] Starting trial evaluations...                 │   │
│  │  [INFO] Trial 0: DV1=25.16, DV2=21.50...            │   │
│  │  [INFO] Trial 0: Mass=1133kg, Disp=19.56mm ✅        │   │
│  │  [INFO] Trial 1: DV1=18.50, DV2=28.30...            │   │
│  │  █                                                    │   │
│  └──────────────────────────────────────────────────────┘    │
│                                                              │
│  ┌─ Expression Editor ─────────────────────────────────┐    │
│  │  beam_half_core_thickness: [25.162] mm               │    │
│  │  beam_face_thickness:      [21.504] mm               │    │
│  │  holes_diameter:           [300.0 ] mm               │    │
│  │  hole_count:               [10    ]                   │    │
│  │  [Update NX Model]  [Reset to Baseline]              │    │
│  └──────────────────────────────────────────────────────┘    │
│                                                              │
│  ┌─ System Status ─────────────────────────────────────┐    │
│  │  NX: 🟢 DesigncenterNX 2512  │  conda: 🟢 atomizer  │   │
│  │  Syncthing: 🟡 Paused (git-only mode)               │    │
│  │  Last solve: 12.3s │ Queue: 0 pending                │    │
│  └──────────────────────────────────────────────────────┘    │
│                                                              │
└─────────────────────────────────────────────────────────────┘

How Command Dispatch Works

Phase 1: Job Queue (Syncthing bridge)

  1. User clicks "Run DOE" → backend creates job.json in outbox
  2. Syncthing syncs to dalidou (5-30s delay)
  3. Watcher script on dalidou picks up job, executes in conda env
  4. stdout/stderr streams back via log file (Syncthing'd back)
  5. Dashboard tails the log file in real-time via WebSocket
Browser → FastAPI → outbox/job.json → Syncthing → dalidou/watcher.py → NX
                                                        │
                                                   stdout.log
                                                        │
                                              Syncthing → FastAPI → WebSocket → Browser

Phase 2: Direct Bridge (WebSocket tunnel)

  • Lightweight agent on dalidou connects to T420 via WebSocket
  • Commands dispatched instantly (no Syncthing delay)
  • Live stdout streaming without file polling
  • Process control (pause, resume, kill) in real-time

Phase 3: NX MCP Server

  • Full NXOpen API exposed as MCP endpoints on dalidou
  • Expression read/write, solve, result extraction — all direct API calls
  • Eliminates journal generation, temp files, pyNastran dependency
  • Dashboard calls MCP server directly for NX operations

Key Commands

Button What it does Backend mechanism
▶️ Run DOE Execute run_doe.py with configured params Job queue → dalidou
▶️ Resume Study run_doe.py --resume Job queue → dalidou
⏹️ Stop Send SIGINT/SIGTERM to running process Bridge signal
🔄 Single Trial Run one trial with specified DVs Job queue → dalidou
📊 Generate Report Trigger OP_08 report generation Agent spawn
📥 Pull Results Trigger git pull or Syncthing sync Backend command
Update NX Model Push expression values to NX Job queue / MCP

Pane 4: 🤖 Agent Console

Purpose: Interact with Atomizer HQ agents directly from the dashboard.

Layout

┌─────────────────────────────────────────────────────────────┐
│  🤖 Agent Console                                            │
├─────────────────────────────────────────────────────────────┤
│                                                              │
│  ┌─ Agent Status ──────────────────────────────────────┐    │
│  │ 🎯 Manager     🟢 Active  │  Last: 2min ago         │    │
│  │ 📋 Secretary   🟢 Active  │  Last: 15min ago        │    │
│  │ 🔧 Tech Lead   🟡 Idle    │  Last: 3h ago           │    │
│  │ ⚡ Optimizer    🟡 Idle    │  Last: 18h ago          │    │
│  │ 🏗️ Study Build  🟡 Idle    │  Last: 18h ago          │    │
│  │ 🔍 Auditor     🟡 Idle    │  Last: 18h ago          │    │
│  └──────────────────────────────────────────────────────┘    │
│                                                              │
│  ┌─ Quick Commands ────────────────────────────────────┐    │
│  │ [🧠 Run Digestion Cycle]  [🔍 Request Audit]        │    │
│  │ [📊 Generate Status Report] [📋 Project Summary]    │    │
│  │ [🔧 Technical Review]  [⚡ Optimize Strategy]       │    │
│  └──────────────────────────────────────────────────────┘    │
│                                                              │
│  ┌─ Activity Feed (from Slack) ────────────────────────┐    │
│  │ 🎯 Manager: DOE Phase 1 pipeline operational        │    │
│  │ 🔧 Tech Lead: NX interface refactored (126f0bb)     │    │
│  │ 🔍 Auditor: APPROVED WITH CONDITIONS                │    │
│  │ 🏗️ Study Builder: run_doe.py complete (017b90f)     │    │
│  │ ...                                                  │    │
│  └──────────────────────────────────────────────────────┘    │
│                                                              │
│  ┌─ Chat ──────────────────────────────────────────────┐    │
│  │ To: [🎯 Manager ▾]                                   │    │
│  │ ┌──────────────────────────────────────────────────┐ │    │
│  │ │ What's the status of the hydrotech beam project? │ │    │
│  │ └──────────────────────────────────────────────────┘ │    │
│  │ [Send]                                               │    │
│  └──────────────────────────────────────────────────────┘    │
│                                                              │
└─────────────────────────────────────────────────────────────┘

Features

  • Agent status board — who's active, when they last worked
  • Quick command buttons — trigger common agent workflows
  • Slack activity feed — real-time project activity from all agents
  • Direct chat — message any agent from the dashboard (routes to Slack/Clawdbot)
  • Digestion trigger — manually run OP_11 from the dashboard

Integration with Clawdbot

  • Agent status: via Clawdbot sessions API
  • Chat: POST to Clawdbot API or Slack webhook
  • Activity feed: Slack event stream or Clawdbot WebSocket

Pane 5: 📝 Reports & Export

Purpose: Professional project reporting and data export.

Features

┌─────────────────────────────────────────────────────────────┐
│  📝 Reports & Export                                         │
├─────────────────────────────────────────────────────────────┤
│                                                              │
│  ┌─ Auto-Generated Reports ────────────────────────────┐    │
│  │                                                      │    │
│  │  📄 Project Summary          [Generate] [PDF] [HTML] │    │
│  │  📄 DOE Analysis Report      [Generate] [PDF] [HTML] │    │
│  │  📄 Optimization Report      [Generate] [PDF] [HTML] │    │
│  │  📄 Decision Log             [Generate] [PDF] [HTML] │    │
│  │  📄 Knowledge Base Export    [Generate] [PDF] [HTML] │    │
│  │                                                      │    │
│  └──────────────────────────────────────────────────────┘    │
│                                                              │
│  ┌─ Data Export ───────────────────────────────────────┐    │
│  │                                                      │    │
│  │  📊 Trial History    [CSV] [JSON] [Excel]            │    │
│  │  📊 Best Designs     [CSV] [JSON]                    │    │
│  │  📊 Parameter Study  [CSV] [Pareto CSV]              │    │
│  │                                                      │    │
│  └──────────────────────────────────────────────────────┘    │
│                                                              │
│  ┌─ Report Viewer ─────────────────────────────────────┐    │
│  │                                                      │    │
│  │  (Rendered markdown / PDF preview)                   │    │
│  │                                                      │    │
│  └──────────────────────────────────────────────────────┘    │
│                                                              │
└─────────────────────────────────────────────────────────────┘

Report Types

Report Content Source
Project Summary Objective, DVs, constraints, timeline, current status CONTEXT.md + DECISIONS.md
DOE Analysis Parameter sensitivity, feasible region, response surfaces history.db + Optuna
Optimization Report Best design, improvement %, convergence, recommendations Study results
Decision Log All decisions with rationale and dates DECISIONS.md
KB Export Everything we know about this model/project knowledge_base/

Navigation & UX

Top-Level Navigation

┌─────────────────────────────────────────────────────────┐
│  ⚡ ATOMIZER HQ        [Hydrotech Beam ▾]    Antoine 👤 │
├────────┬────────┬──────────┬──────────┬─────────────────┤
│  📋    │  📊    │  🎮      │  🤖      │  📝            │
│Project │Studies │Commands  │Agents    │Reports          │
├────────┴────────┴──────────┴──────────┴─────────────────┤
│                                                          │
│  (Active pane content)                                   │
│                                                          │
└──────────────────────────────────────────────────────────┘
  • Project selector in header — switch between active projects
  • Tab navigation — 5 panes, always accessible
  • Responsive — works on desktop (full layout), tablet (stacked), phone (single-pane)
  • Dark/light theme — engineer-friendly dark mode default, light for reports

Notification System

  • Toast notifications for: trial complete, study finished, agent message, job status change
  • Badge counts on pane tabs (e.g., "3 new trials" on Study Tracker)
  • Sound alerts for critical events (study complete, study failed)

Implementation Plan

Phase D1: Foundation (1-2 weeks)

Goal: Project-level data layer + navigation shell

Tasks:

  1. Add project discovery endpoint (scan projects/ directory for CONTEXT.md files)
  2. Parse CONTEXT.md → structured API response (DVs, constraints, objectives, baseline)
  3. Parse DECISIONS.md → timeline API
  4. Create top-level navigation shell (5 panes with tab routing)
  5. Build Project Blueprint pane (read-only view)
  6. Add project selector dropdown

API endpoints:

GET  /api/projects                          → list projects
GET  /api/projects/{id}                     → parsed CONTEXT.md
GET  /api/projects/{id}/decisions           → parsed DECISIONS.md
GET  /api/projects/{id}/kb-status           → gap tracker from _index.md
GET  /api/projects/{id}/studies             → list studies with status

Deliverable: Navigate to Atomizer HQ, select Hydrotech Beam, see the full project blueprint with DVs, constraints, decisions, KB status.


Phase D2: Study Tracker Enhancement (1-2 weeks)

Goal: Adapt existing dashboard for project-scoped study tracking

Tasks:

  1. Integrate existing Dashboard/Analysis pages into Study Tracker pane
  2. Add progress bar with ETA (from history.db solve_time averages)
  3. Add best-so-far card (always visible)
  4. Add feasibility color coding to trial table
  5. Build iteration inspector (click trial → see detail panel)
  6. Add DOE-specific visualizations (heatmaps, response surfaces)

API endpoints (extend existing):

GET  /api/projects/{id}/studies/{sid}/progress  → % complete, ETA
GET  /api/projects/{id}/studies/{sid}/best      → best feasible trial
GET  /api/projects/{id}/studies/{sid}/iteration/{n} → detailed trial data

Deliverable: Watch a running DOE in real-time with progress bar, see the best design update live, click any trial to inspect.


Phase D3: Command Center (2-3 weeks)

Goal: Execute commands on Windows from the dashboard

Tasks:

  1. Build Windows watcher service (atomizer-agent.py on dalidou)
    • Monitors job queue inbox
    • Executes jobs in conda env
    • Streams stdout back via log file + Syncthing
  2. Build command dispatch API
  3. Build Quick Actions UI (button-driven command forms)
  4. Build live console viewer (tail log files via WebSocket)
  5. Build expression editor UI
  6. Add system status panel (NX process, conda env, Syncthing health)

Windows watcher (new component on dalidou):

# atomizer-agent.py — runs on dalidou
# Watches job queue, executes commands, streams results
# Auto-starts via Windows Task Scheduler or startup script

API endpoints:

POST /api/commands/dispatch           → submit job to queue
GET  /api/commands/{id}/status        → job status
WS   /api/commands/{id}/stream        → live stdout
POST /api/commands/{id}/signal        → send signal (stop/pause)
GET  /api/system/status               → NX, conda, Syncthing health
GET  /api/system/expressions          → current NX expression values
POST /api/system/expressions          → update NX expressions

Deliverable: Click "Run DOE" → see it execute on Windows → watch live console output → results appear in Study Tracker.


Phase D4: Agent Console (1-2 weeks)

Goal: Interact with Atomizer HQ agents from the dashboard

Tasks:

  1. Build agent status endpoint (via Clawdbot sessions API)
  2. Build activity feed (aggregate from Slack channel history)
  3. Build chat interface (send messages to agents via Clawdbot/Slack API)
  4. Add quick command buttons (pre-configured agent tasks)
  5. Add digestion cycle trigger (OP_11 from dashboard)

API endpoints:

GET  /api/agents                      → list agents with status
GET  /api/agents/{id}/activity        → recent messages/actions
POST /api/agents/{id}/message         → send message to agent
POST /api/agents/digestion            → trigger OP_11 cycle
GET  /api/activity/feed               → aggregated activity stream

Deliverable: See all agents, their status, recent activity. Send a message to Manager. Trigger a digestion cycle.


Phase D5: Reports & Polish (1-2 weeks)

Goal: Professional reporting + responsive design + auth

Tasks:

  1. Build report generation pipeline (Markdown → styled HTML → PDF)
  2. Build report viewer component
  3. Add data export buttons (CSV, JSON, Excel)
  4. Responsive layout (mobile-friendly)
  5. Basic auth (token-based, single user for now)
  6. Dark/light theme toggle
  7. Notification system (toasts + badges)

Deliverable: Generate a beautiful project summary PDF from the dashboard. View reports inline. Export data in any format.


Phase D6: Future — NX MCP Integration

Goal: Direct NXOpen API access, eliminating the Syncthing bridge

When: After Phase 3 roadmap item (NX MCP Server)

Impact:

  • Command Center becomes instant (no Syncthing delay)
  • Expression editor reads/writes NX directly
  • Solve triggers are immediate
  • Live screenshots from NX model
  • Dashboard becomes the primary NX interaction point

Tech Stack Decisions

Component Choice Rationale
Frontend React + Vite + TypeScript + TailwindCSS Already in use, proven
Charts Plotly (interactive) + Recharts (fast) Already in use
Backend FastAPI + Python Already in use
Real-time WebSocket (native) Already in use
State React Query + Zustand React Query already in use
Reports markdown-it + Puppeteer (PDF) Markdown is our native format
Auth Simple token auth (Phase D5) Single user, no complexity
Windows bridge File-based job queue → WebSocket bridge (D3) Progressive enhancement

No new frameworks. We extend what's already built and working.


What Makes This Powerful

  1. Single pane of glass — Everything about a project, from blueprint to live results, in one place.

  2. Remote execution — Click a button on your phone, NX runs on your desktop. No PowerShell, no SSH, no context switching.

  3. Agent integration — The dashboard isn't just a viewer, it's an agent orchestrator. Trigger digestion cycles, request audits, generate reports — all from buttons.

  4. Living documents — Project Blueprint auto-updates from CONTEXT.md. Reports generate from real data. Nothing gets stale because there's no copy-paste.

  5. Progressive enhancement — Phase D1 is useful on day 1 (project view). Each phase adds power. The MCP integration in D6 makes it the only tool you need.

  6. Multi-device — Works on Windows, phone, tablet. Same URL, same experience.

  7. Built on what exists — Not a rewrite. The existing dashboard has real functionality. We're wrapping it in a project-level shell and adding command dispatch.


Risk & Mitigation

Risk Mitigation
Syncthing delay for command dispatch Phase D3 adds direct WebSocket bridge as upgrade path
Dashboard adds complexity to maintain Modular pane architecture — each pane is independent
NX MCP server is a big build MCP is Phase D6/future — core dashboard works without it
Security (open dashboard on LAN) Token auth in Phase D5; Tailscale for remote access
Agent API integration complexity Start with Slack feed (simple), add direct Clawdbot API later

Success Criteria

Milestone Criteria
D1 Complete Antoine opens HQ, sees Hydrotech Beam blueprint
D2 Complete DOE results viewable with progress, best-so-far, trial inspection
D3 Complete Antoine clicks "Run DOE" on browser → NX runs on dalidou → live console
D4 Complete Antoine messages Manager from dashboard, sees agent activity
D5 Complete PDF project report generated from dashboard, works on phone
MVP D1 + D2 + D3 = usable command center

Estimated Timeline

Phase Duration Dependencies
D1: Foundation 1-2 weeks None — start immediately
D2: Study Tracker 1-2 weeks D1 (navigation shell)
D3: Command Center 2-3 weeks D1 + Windows watcher setup
D4: Agent Console 1-2 weeks D1 + Clawdbot API access
D5: Reports & Polish 1-2 weeks D1-D4 complete
Total to MVP (D1-D3) 4-7 weeks
Total to Full HQ 7-12 weeks

This is how we build the cockpit for Atomizer Engineering. One dashboard to run the whole operation. 🎯