feat: add Atomizer HQ multi-agent cluster infrastructure

- 8-agent OpenClaw cluster (Manager, Tech-Lead, Secretary, Auditor,
  Optimizer, Study-Builder, NX-Expert, Webster)
- Orchestration engine: orchestrate.py (sync delegation + handoffs)
- Workflow engine: YAML-defined multi-step pipelines
- Agent workspaces: SOUL.md, AGENTS.md, MEMORY.md per agent
- Shared skills: delegate, orchestrate, atomizer-protocols
- Capability registry (AGENTS_REGISTRY.json)
- Cluster management: cluster.sh, systemd template
- All secrets replaced with env var references
This commit is contained in:
2026-02-15 21:18:18 +00:00
parent d6a1d6eee1
commit 3289a76e19
170 changed files with 24949 additions and 0 deletions

View File

@@ -0,0 +1,51 @@
# 2026-02-08
## New Project: Hydrotech Beam Structural Optimization
- **Channel:** #project-hydrotech-beam
- **Request:** Optimize I-beam with sandwich cross-section — reduce mass, reduce tip displacement, keep stress safe
- **Status:** Intake received, project folder created at `/home/papa/atomizer/projects/hydrotech-beam/`
- **Next:** Delegate technical breakdown to Technical Lead (OP_09 → OP_10 Step 2)
- 4 design variables, NX Nastran static analysis, steel beam with lightening holes
- Current baseline: ~974 kg, ~22 mm displacement
- Targets: minimize mass, displacement < 10 mm, stress < 130 MPa
## Issues Raised by Antoine
- No Notion project page yet (Phase 2 feature — not available)
- Secretary had no project context — briefed her via sessions_send, she's now tracking it
- Slowness noted — all agents on Opus, expected for now
- Project folder confirmed at `/home/papa/atomizer/projects/hydrotech-beam/`
- Antoine wants cross-agent context sharing to work better — need to think about how Secretary gets project updates automatically
## Config Changes
- Added `#project-hydrotech-beam` (C0AE4CESCC9) to channel config with `requireMention: false`
- Antoine no longer needs to tag to get a response in project channels
## Antoine Request: Project Dashboard & File Access
- Manager now owns ALL admin responsibility — Mario only for infrastructure bridges
- NO Notion — Antoine doesn't use it
- Project data should live in Atomizer repo (Gitea: http://100.80.199.40:3000/Antoine/Atomizer.git)
- Documentation = efficient .md files in the repo
- Current project files at `/home/papa/atomizer/projects/hydrotech-beam/` need to move into `/home/papa/repos/Atomizer/projects/hydrotech-beam/`
- Syncthing syncs: ATODrive, Atomaste, obsidian-vault, Sync — NOT the atomizer workspace
- Atomizer repo is git-managed (correct approach for project data)
## Project Structure Overhaul — COMPLETED
- Designed and implemented KB-integrated project structure for Atomizer
- Hydrotech Beam restructured: README, CONTEXT, BREAKDOWN, DECISIONS, models/, kb/, studies/, deliverables/
- KB initialized: components/sandwich-beam.md, materials/steel-aisi.md, fea/models/sol101-static.md
- Gen 001 created from intake + technical breakdown
- 6 decisions logged in DECISIONS.md (DEC-HB-001 through DEC-HB-006)
- Created `knowledge-base-atomizer-ext.md` — Atomizer extension of Mario's shared KB skill
- Extension pattern: use base skill as-is, extend with Atomizer-specific agent workflows
- All committed to Gitea: commit 9541958
- Channel config fixed: #project-hydrotech-beam no longer requires mention
## Repo Cleanup — IN PROGRESS
- CEO approved major docs cleanup of Atomizer repo
- Spawned sub-agent (label: repo-cleanup) to handle:
- Archive stale docs (RALPH_LOOP, old CANVAS plans, dashboard iterations) to docs/archive/review/
- Create docs/hq/ with agent-facing documentation (PROJECT_STRUCTURE, KB_CONVENTIONS, AGENT_WORKFLOWS, STUDY_CONVENTIONS)
- Update docs/00_INDEX.md
- KB skill discussion resolved: Mario's pipeline = tool, Atomizer owns project KB, no duplication
- Mario's KB output can bootstrap Atomizer project KB if available
- CAD-Documenter tool being renamed (to KBS or similar) — update references when it lands

View File

@@ -0,0 +1,61 @@
# 2026-02-09
## Phase 1 Approved & Kicked Off
- Antoine asked if Phase 0 was complete enough to move forward
- Assessed Phase 0 at ~75% complete (structure proven, execution loop not yet tested)
- Recommended proceeding to Phase 1 with Hydrotech Beam as the validation project
- Antoine approved — Phase 1 is live
## Phase 1 Agents — Status
- Optimizer, Study Builder, Auditor are NOT yet configured as gateway agents
- Only Manager, Secretary, Technical Lead exist as real agents
- Using sessions_spawn sub-agents as a workaround for now
- Need Mario to set up the actual agent workspaces + gateway config for Phase 1 agents
## Hydrotech Beam — Resuming
- Posted project kickoff in #project-hydrotech-beam with full assignment roster
- Workflow: serial chain managed by me (per DEC-A003)
- Step 1: Optimizer designs strategy ← IN PROGRESS (spawned sub-agent)
- Step 2: Auditor reviews plan
- Step 3: Study Builder writes code
- Step 4: Auditor reviews code
- Step 5: CEO approves for execution
- Step 6: Run on Windows (manual)
- Step 7: Results analysis
- 9 technical gaps still open from Tech Lead's breakdown (G1-G9)
- Optimizer working from BREAKDOWN.md to produce OPTIMIZATION_STRATEGY.md
## Antoine Questions
- Asked about workflow management (serial vs parallel) — explained I manage the chain
- Asked about roll call location — posted project kickoff in #project-hydrotech-beam
- Asked "what's next? Where do I review?" — gave full status briefing in #all-atomizer-hq
- Pointed to Gitea as the browsable dashboard
- Recommended resolving 9 gaps as top priority
- Proposed: daily auto-status from Secretary, README as live dashboard
- Antoine wants proactive improvement — gave 6 prioritized recommendations
## File Access Gap Identified
- Atomizer repo NOT synced to Windows (dalidou) via Syncthing
- Only ATODrive, Atomaste, obsidian-vault, Sync are shared
- Model files (Beam.prt, etc.) never added to models/ — placeholder only
- Antoine can't browse KB or project docs from Windows
- **Resolution:** Antoine setting up Syncthing for `projects/hydrotech-beam/` specifically
- Server path: `/home/papa/repos/Atomizer/projects/hydrotech-beam/`
- Rest of repo stays git-only (he has Gitea web access from Windows)
- .gitignore allows .prt/.fem/.sim (only .bak excluded)
- Once sync is live, model files land in models/ and I commit to Gitea
- Antoine wants KBS session but needs model files accessible first
## Single Source of Truth — Consolidation Done
- **Canonical project path:** `/home/papa/repos/Atomizer/projects/hydrotech-beam/` (Gitea + Syncthing)
- Removed stale duplicate at `/home/papa/atomizer/projects/hydrotech-beam/`
- Created symlink so old references still resolve
- Cleaned up Syncthing conflict files
- All agents should reference `/repos/Atomizer/projects/` from now on
- Antoine dropping remaining model files via Syncthing from Windows
## Improvement Initiatives (Self-Directed)
- [ ] Set up Secretary daily status posts
- [ ] Update Hydrotech README to be a live status card
- [ ] Track gap resolution progress
- [x] Consolidate project folder to single source of truth (repo)

View File

@@ -0,0 +1,135 @@
# 2026-02-10
## Hydrotech Beam — KBS Sessions Received
- Antoine recorded 3 KBS capture sessions on his Windows machine (NX/Simcenter)
- Data location: `/home/papa/ATODrive/Projects/hydrotech-beam/Hydrotech-Beam/_capture/`
- Sessions: `20260210-132817` (6s), `20260210-161401` (38s), `20260210-163801` (414s main session)
- Main session is a full walkthrough of the NX model with parameter names, values, BCs, materials
### New Information from KBS Sessions
- Beam length = 5,000 mm (`beam_length` expression)
- Cantilever: left fixed, right loaded with 10,000 kgf downward
- Hole span = 4,000 mm (`p6`), holes start/end 500mm from beam ends
- Mass via expression `p1` (NOT `p173` as we had) — starting 11.33 kg (CONTRADICTS 974 kg baseline!)
- Material: ANSI Steel 1005 — future: aluminum 6061, stainless ANSI 310
- Mesh: CQUAD4 thin shells, mid-surface idealization, element size = 67.4/2
- New expression names: `beam_half_height`, `beam_half_width`
- `p6` (hole span) as potential new design variable
- 4 screenshot triggers in the session metadata
### Actions Taken
- Posted acknowledgment + next steps in #project-hydrotech-beam
- Spawned Tech Lead sub-agent (label: tech-lead-kb-update) to:
- Process all 3 transcripts
- Update KB to Gen 002
- Reconcile mass discrepancy (11.33 kg vs 974 kg)
- Close resolved gaps (G1, G2, G5 partial, G8)
- Update CONTEXT.md
- Commit to Gitea
### Workflow Status
- Step 1 (Optimizer strategy): OPTIMIZATION_STRATEGY.md exists as DRAFT from Feb 9
- Current: Processing new KB data before proceeding
- Next: Optimizer revises strategy with confirmed params → Auditor review → Study Builder code
- Model files confirmed synced: Beam.prt, Beam_fem1.fem, Beam_fem1_i.prt, Beam_sim1.sim
### Completed
- [x] Tech Lead completed KB Gen 002 update — commit `b88657b`
- [x] Mass corrected AGAIN: **1,133.01 kg** (`p173`), NOT 11.33 kg — Antoine corrected us
- [x] Binary introspection of Beam.prt — extracted complete expression table (commit `15a457d`)
- [x] DV baselines are NOT round: face_thickness=21.504, core_thickness=25.162 (not 20/20)
- [x] Gaps G12-G14 closed (beam_half_height=250, beam_half_width=150, holes_diameter expression confirmed)
- [x] Important: `beam_lenght` has TYPO in NX (no 'h') — scripts must use exact spelling
- [x] `hole_count` links to `Pattern_p7` in the NX pattern feature
- [x] CONTEXT.md updated with full expression map, pushed to Gitea
### Pending — Waiting on Antoine
- [ ] Baseline re-run (G10, G11) — need current displacement and stress values
- [x] Decision on `p6` (hole span) — kept fixed at 4,000mm for now (Manager decision)
### Windows Environment (dalidou)
- Path: `C:\Users\antoi\Atomizer\projects\hydrotech-beam\` (Syncthing from server)
- Python: `anaconda3\envs\atomizer` (conda env named "atomizer")
- Antoine ran smoke test on Feb 11 — hit 2 bugs, both fixed (commit `135698d`)
- NXOpen implementation still needed (solve, extract_displacement, extract_stress)
### In Progress
- [x] Optimization strategy updated with corrected baselines (commit `3e51804`)
- [x] Auditor review: APPROVED WITH CONDITIONS — 2 blockers found and fixed:
- Hole spacing formula: `span/(n-1)` not `span/(n+1)` — fixed
- Web height constraint: added `500 - 2*face - dia > 0` pre-check — fixed
- Commit `94bff37`
- [x] Study Builder completed Phase 1 code (commit `017b90f`) — verified end-to-end with stub solver
- 6 files: run_doe.py, sampling.py, geometric_checks.py, nx_interface.py, requirements.txt, README.md
- Pre-flight geometric filter catches ~24% of infeasible combos
- NXOpen template ready — needs 3 methods filled in on Windows (solve, extract_disp, extract_stress)
- [ ] Antoine running baseline SOL 101 for displacement + stress (parallel)
- [ ] `p6` kept fixed at 4,000mm for now (DEC by Manager)
### NXOpenSolver → Existing Engine Integration (Late Evening)
- Antoine confirmed: runs everything from his "Honda atomizer" conda env on Windows
- Uses existing `run_optimization.py` which calls `NXSolver` + `NXParameterUpdater` + pyNastran extractors
- **Key insight:** We do NOT need to write NXOpen code from scratch — the Atomizer engine already has everything:
- `optimization_engine/nx/solver.py` — journal-based solver via `run_journal.exe`
- `optimization_engine/nx/updater.py` — expression updates via `.exp` import
- `optimization_engine/extractors/extract_displacement.py` — pyNastran OP2
- `optimization_engine/extractors/extract_von_mises_stress.py` — pyNastran OP2, kPa→MPa
- `optimization_engine/extractors/extract_mass_from_expression.py` — from temp file
- Delegated to Study Builder (label: `study-builder-nx-impl`) to rewrite `NXOpenSolver` as a wrapper around existing engine
- Asked Antoine to confirm `pyNastran` is installed in the conda env
### Infra Fixes
- Study Builder model was set to non-existent `claude-sonnet-5` → fixed to `claude-sonnet-4-20250514`
- All agents were missing Anthropic API auth → propagated from Manager's auth-profiles.json
- Agents fixed: secretary, study-builder, optimizer, auditor, technical-lead
### Study Builder Delivered — NXOpenSolver (commit `33180d6`)
- Wraps existing Atomizer engine: NXParameterUpdater, NXSolver, pyNastran extractors
- HEEDS-style iteration folders, 600s timeout, CQUAD4 shell stress, kPa→MPa
- Full interface compatibility with run_doe.py preserved
- 252 additions, 126 deletions
### Tech Lead Refined — NXOpenSolver v2 (commit `390ffed`)
- Built on Study Builder's work with improvements:
- Element type auto-detection (tries solids first, falls back to CQUAD4)
- OP2 fallback path (solver result → expected naming convention)
- Mass fallback via `_temp_part_properties.json`
- Follows SAT3_Trajectory_V7 FEARunner pattern exactly
- Both commits stack cleanly on main, latest is the active version
### Late Night — Antoine Follow-Up (~23:00-01:00 UTC)
- Antoine returned: "Yeah! What's next?" — confirmed ready to move forward
- Asked about conda env: confirmed he uses `conda atomizer` (defined in `environment.yml` at repo root)
- Includes optuna, scipy, numpy, pandas, pyNastran — all Phase 1 deps covered
- Asked "What's the NXOpen implementation about?" — explained the 3 bridge methods (solve, extract_disp, extract_stress)
- Antoine asked how this relates to legacy Atomizer studies (SAT3, mirror blank)
- Confirmed: same engine (NXSolver, NXParameterUpdater, pyNastran extractors)
- Differences: geometric pre-filter, LHS sampling, cleaner separation, project-scoped
- **Antoine approved:** "go ahead and do it"
- Delegated NXOpen implementation completion to Technical Lead (label: `hydrotech-nxopen-impl`)
- Task: complete NXOpenSolver.evaluate() using existing Atomizer engine components
- Reference: SAT3_Trajectory_V7, bracket study, existing engine classes
### Feb 11 Morning — Bug Fixes + Final Refactor
- Antoine tested on dalidou, hit 2 bugs:
1. SQLite duplicate study name → fixed with `load_if_exists=True` + `--clean` flag
2. Sampling crash with `n-samples 1` → skip stratified patching when n < 11
- Commit `135698d`
- **Full refactor of nx_interface.py** (commit `126f0bb`):
- `AtomizerNXSolver` wraps existing `optimization_engine` (NXSolver + pyNastran extractors)
- HEEDS-style iteration folders, .exp file generation, OP2 extraction
- StubSolver improved with beam-theory approximations
- Windows path confirmed: `C:\Users\antoi\Atomizer\projects\hydrotech-beam\`
- Conda env: `atomizer` (all deps pre-installed)
### Future Initiative — NX Simcenter 3D MCP (CEO request, Feb 11)
- MCP server on dalidou for direct NXOpen interaction
- Endpoints: expressions.list/get/set, model.update, solve.run, results.*, introspect, screenshots
- Eliminates pyNastran, temp files, journal generation — all via NXOpen API
- Target: Phase 2/3 roadmap
- Logged per Antoine's explicit request — not blocking current work
### Next
- [ ] Antoine tests `--backend nxopen` on dalidou (single trial smoke test)
- [ ] Full 51-trial Phase 1 run
- [ ] Phase 2 TPE optimization

View File

@@ -0,0 +1,29 @@
# 2026-02-11
## Channel Config
- Added #research-and-development (C0AEB39CE5U) to Slack config
- All 6 agents bound to it
- Set `requireMention: false` globally for all Slack channels per Antoine's request
## NXOpen MCP Server — INSTALLED ✅
- **Repo**: `http://100.80.199.40:3000/Antoine/NXOpen-MCP.git`
- **Local path**: `/home/papa/atomizer/tools/nxopen-mcp/`
- **Venv**: `.venv/` with CPU-only torch (no CUDA needed)
- **Data**: 203MB pre-indexed ChromaDB + JSON caches
- 15,219 NXOpen classes, 64,320 methods
- 149 nxopentse functions
- 287 pyNastran classes
- **Run**: `./run-server.sh` or `python -m nxopen_mcp.server --data-dir ./data`
- **Protocol**: stdio-based MCP
- **Tools**: search_nxopen, get_class_info, get_method_info, get_examples, list_namespaces
- Wired into NX Expert agent via exec/Python subprocess
## NX Expert Agent — HIRED ✅
- **Agent ID**: `nx-expert`
- **Model**: Sonnet 4 (cost-effective specialist)
- **Workspace**: `/home/papa/atomizer/workspaces/nx-expert/`
- **Channels**: #hq (C0AEJV13TEU), #research-and-development (C0AEB39CE5U)
- **Mention patterns**: @nx-expert, @NX Expert, @nx, 🖥️
- **Tools**: NXOpen MCP via Python exec, atomizer-protocols skill
- **Role**: NX Open API expert, solver config, element selection, journal scripting
- First Phase 2 agent to come online — ahead of schedule

View File

@@ -0,0 +1,41 @@
# 2026-02-13
## Nightly Digestion Cron — LIVE ✅
- **Job ID:** `e157faf0-084f-4d8d-8693-814cf4340a48`
- **Schedule:** Every night at 4:00 AM ET (`0 4 * * *` America/Toronto)
- **Type:** Isolated agentTurn (manager), announces to #all-atomizer-hq
- **Protocol:** OP_11 full 6-step cycle (STORE → DISCARD → SORT → REPAIR → EVOLVE → SELF-DOCUMENT)
- Set up per Antoine's directive to officialize nightly memory processing
## Hydrotech Beam — Resumed
- Antoine approved continuing to next phase (~01:36 UTC)
- DOE Phase 1 (51 trials) completed previously but **gate check FAILED**:
- 39/51 solved, 12 geo-infeasible (hole overlap)
- **0 fully feasible designs** — displacement ≤10mm never achieved (min ~19.6mm)
- **Mass = NaN** on all trials — extraction bug in journal/script
- Stress constraint (≤130 MPa) met by some trials but displacement kills everything
- **Delegated to Tech Lead:** Diagnose mass NaN, analyze DOE landscape, recommend feasibility fix
- Spawned sub-agent session: `hydrotech-doe-analysis`
- **Pending CEO decision:** Relax 10mm displacement constraint? Options presented: relax to ~20mm, expand DVs, or keep and find boundary
- Optimizer + Study Builder on standby for Phase 2 (TPE) after fixes
## Mass NaN Fix — COMMITTED ✅
- **Commit:** `580ed65` on Atomizer repo main branch
- **Root cause:** `solve_simulation.py` journal's `solve_simple_workflow()` tried to read mass via expression `p173` after part switching (geom→FEM→SIM→solve→back). Expression was stale/inaccessible after switching. `_temp_mass.txt` never written.
- **NOT** the `M1_Blank` hardcoding (that's assembly workflow only). Beam uses `solve_simple_workflow` (no `.afm`).
- **Fix (2 edits):**
1. Extract mass RIGHT AFTER geometry rebuild (`DoUpdate()`) while geom part is work part — uses `MeasureManager.NewMassProperties()` (computes fresh from solid bodies)
2. Post-solve: skip re-extraction if already done; fallback to MeasureManager instead of p173
- **NX Expert** did the fix but did NOT use MCP server — was a code-level debug task, not API discovery
- **NX Expert Slack issue:** sub-agent couldn't post to #all-atomizer-hq (channel ID routing problem for spawned agents)
- **Next:** Pull on dalidou, test single trial, then re-run full DOE with 20mm constraint
## Sub-agent Issues
- Tech Lead sub-agents both hit 200K token context limit and aborted (`abortedLastRun: true`)
- Had to do diagnosis myself then delegate to NX Expert
- NX Expert also couldn't post to Slack (channel_not_found with various target formats)
- **Lesson:** Sub-agents need leaner prompts, and Slack channel routing needs fixing for spawned sessions
## DEC-HB-012 — Displacement Constraint Relaxed
- 10mm → 20mm, CEO approved (dummy case, pipeline proving)
- Updated CONTEXT.md and DECISIONS.md in project folder

View File

@@ -0,0 +1,236 @@
# 📊 Atomizer Dashboard & Reporting System — Master Plan
> **Status:** PROPOSAL | **Date:** 2026-02-14 | **Author:** Manager Agent | **For:** Antoine (CEO)
---
## Executive Summary
A file-based, agent-native dashboard and reporting system that gives Antoine real-time project visibility without leaving the existing Atomizer stack. No new infrastructure—just structured markdown, automated aggregation, and agent-generated reports.
---
## 1. Information Architecture
```
shared/
├── PROJECT_STATUS.md ← Single source of truth (Manager-owned)
├── project_log.md ← Append-only agent activity log
├── dashboards/
│ ├── exec-summary.md ← CEO dashboard (auto-generated)
│ ├── technical.md ← FEA/optimization status
│ └── operations.md ← Agent health, queue, throughput
├── reports/
│ ├── weekly/ ← YYYY-WXX-report.md
│ ├── project/ ← Per-project closeout reports
│ └── templates/ ← Report templates (markdown)
├── data-contracts/
│ └── schemas.md ← Field definitions for all status files
└── kpi/
└── metrics.md ← Rolling KPI tracker
```
**Principle:** Everything is markdown. Agents read/write natively. No database, no web server, no maintenance burden.
---
## 2. Dashboard Modules
### 2A. Executive Summary (`dashboards/exec-summary.md`)
**Audience:** Antoine | **Update frequency:** On every PROJECT_STATUS.md change
| Section | Content |
|---------|---------|
| 🚦 Project RAG | Red/Amber/Green per active project, one line each |
| 📌 Decisions Needed | Items blocked on CEO approval |
| 💰 Resource Burn | Agent token usage / cost estimate (daily/weekly) |
| 🏆 Wins This Week | Completed milestones, delivered studies |
| ⚠️ Top 3 Risks | Highest-impact risks across all projects |
**Format:** ≤30 lines. Scannable in 60 seconds.
### 2B. Technical Dashboard (`dashboards/technical.md`)
**Audience:** Technical Lead, Optimizer | **Update frequency:** Per study cycle
| Section | Content |
|---------|---------|
| Active Studies | Study name, iteration count, best objective, convergence % |
| FEA Queue | Jobs pending / running / completed / failed |
| Model Registry | Active NX models, mesh stats, last validated date |
| Optimization Curves | Tabular: iteration vs objective vs constraint satisfaction |
| Knowledge Base Delta | New entries since last report |
### 2C. Operations Dashboard (`dashboards/operations.md`)
**Audience:** Manager (self-monitoring), Mario (infra) | **Update frequency:** Hourly via cron or on-demand
| Section | Content |
|---------|---------|
| Agent Health | Last active timestamp per agent, error count (24h) |
| Message Throughput | Messages processed per agent per day |
| Queue Depth | Pending delegations, blocked tasks |
| Token Budget | Usage vs budget per agent, projected monthly |
| System Alerts | Disk, memory, process status flags |
---
## 3. Data Contracts
Every agent writing to `project_log.md` MUST use this format:
```markdown
## [YYYY-MM-DD HH:MM] agent-id | project-slug | event-type
**Status:** in-progress | completed | blocked | failed
**Summary:** One-line description
**Detail:** (optional) Multi-line context
**Metrics:** (optional) key=value pairs
**Blockers:** (optional) What's blocking and who can unblock
---
```
### Event Types (enumerated)
| Type | Meaning |
|------|---------|
| `study-start` | New optimization study launched |
| `study-iteration` | Iteration completed with results |
| `study-complete` | Study converged or terminated |
| `review-request` | Deliverable ready for review |
| `decision-needed` | CEO/human input required |
| `task-delegated` | Work handed to another agent |
| `task-completed` | Delegated work finished |
| `error` | Something failed |
| `milestone` | Phase/gate achieved |
### Dashboard Field Schema
Each dashboard section maps to specific log event types. Manager agent aggregates—no other agent touches dashboard files directly.
---
## 4. Report System
### 4A. Weekly Report (auto-generated every Friday or on-demand)
**Template:** `reports/templates/weekly-template.md`
```markdown
# Atomizer Weekly Report — YYYY-WXX
## Highlights
- (auto: completed milestones from log)
## Projects
### [Project Name]
- Status: RAG
- This week: (auto: summary of log entries)
- Next week: (auto: from PROJECT_STATUS.md planned items)
- Blockers: (auto: open blockers)
## KPIs
| Metric | This Week | Last Week | Trend |
|--------|-----------|-----------|-------|
## Agent Performance
| Agent | Messages | Tasks Done | Errors | Avg Response |
|-------|----------|------------|--------|-------------|
## Decisions Log
- (auto: from decision-needed events + resolutions)
```
### 4B. Project Closeout Report
Generated when a project reaches `completed` status. Includes full decision trail, final results, lessons learned, KB entries created.
### 4C. On-Demand Reports
Antoine can request via Discord: "Give me a status report on [project]" → Manager generates from log + status files instantly.
### 4D. PDF Generation
Use existing `atomaste-reports` skill for client-facing PDF output when needed.
---
## 5. Documentation Governance
### Two-Tier System
| Tier | Location | Owner | Mutability |
|------|----------|-------|------------|
| **Foundational** | `context-docs/` | Mario + Antoine | Immutable by agents. Amended only via CEO-approved change request. |
| **Project-Specific** | `shared/`, `memory/projects/` | Manager (gatekeeper), agents (contributors) | Living documents. Agents write, Manager curates. |
### Rules
1. **Foundational docs** (00-05, SOUL.md, protocols) = constitution. Agents reference, never edit.
2. **Project docs** = operational. Agents append to log; Manager synthesizes into status files.
3. **Dashboards** = derived. Auto-generated from project docs. Never manually edited.
4. **Reports** = snapshots. Immutable once generated. Stored chronologically.
5. **Knowledge Base** = accumulative. Grows per project via `cad_kb.py`. Never pruned without review.
### Change Control
- Protocol changes → Antoine approval → Mario implements → agents reload
- Dashboard schema changes → Manager proposes → Antoine approves → Manager implements
- New event types → Manager adds to `schemas.md` → notifies all agents via cluster message
---
## 6. Rollout Phases
| Phase | When | What | Gate |
|-------|------|------|------|
| **R0: Schema** | Week 1 | Create `data-contracts/schemas.md`, `reports/templates/`, directory structure | Manager reviews, Antoine approves structure |
| **R1: Logging** | Week 1-2 | All active agents adopt structured log format in `project_log.md` | 48h of clean structured logs from all agents |
| **R2: Exec Dashboard** | Week 2 | Manager auto-generates `exec-summary.md` from logs | Antoine confirms it's useful and accurate |
| **R3: Tech + Ops Dashboards** | Week 3 | Technical and operations dashboards go live | Tech Lead validates technical dashboard accuracy |
| **R4: Weekly Reports** | Week 3-4 | Automated weekly report generation | First 2 weekly reports reviewed by Antoine |
| **R5: KPI Tracking** | Week 4 | Rolling metrics in `kpi/metrics.md` | KPIs match reality for 2 consecutive weeks |
| **R6: PDF Reports** | Week 5+ | Client-facing report generation via atomaste-reports | First PDF passes Auditor review |
**Each phase has a go/no-go gate. No skipping.**
---
## 7. Risks & Mitigations
| # | Risk | Impact | Likelihood | Mitigation |
|---|------|--------|------------|------------|
| 1 | **Log format drift** — agents write inconsistent entries | Dashboards break | Medium | Auditor spot-checks weekly; Manager rejects malformed entries |
| 2 | **Information overload** — exec dashboard becomes too long | Antoine stops reading it | Medium | Hard cap: 30 lines. Ruthless prioritization. |
| 3 | **Stale data** — dashboards not updated after agent activity | False confidence | High | Manager updates dashboards on every log synthesis cycle |
| 4 | **Token cost explosion** — dashboard generation burns budget | Budget overrun | Low | Dashboard gen is cheap (small files). Monitor via ops dashboard. |
| 5 | **Single point of failure** — Manager agent owns all dashboards | Manager down = no visibility | Medium | Raw `project_log.md` always available; any agent can read it |
| 6 | **Scope creep** — adding features before basics work | Delayed delivery | High | Strict phase gates. No R3 until R2 is validated. |
| 7 | **File conflicts** — multiple agents writing simultaneously | Data corruption | Low | Only Manager writes dashboards; log is append-only with timestamps |
---
## 8. KPIs & Gate Rules
### KPI List
| # | KPI | Target | Measurement |
|---|-----|--------|-------------|
| K1 | Dashboard freshness | ≤1h stale | Time since last exec-summary update |
| K2 | Log compliance rate | ≥95% | % of log entries matching schema |
| K3 | Weekly report delivery | 100% on-time | Generated by Friday 17:00 EST |
| K4 | CEO read-time | ≤60 seconds | Exec summary length ≤30 lines |
| K5 | Decision backlog age | ≤48h | Max age of unresolved `decision-needed` events |
| K6 | Project status accuracy | No surprises | Zero cases where dashboard says green but reality is red |
| K7 | Agent error rate | ≤5% | Failed tasks / total tasks per agent per week |
| K8 | Report generation cost | ≤$2/week | Token cost for all dashboard + report generation |
### Gate Rules
| Gate | Criteria | Evaluator |
|------|----------|-----------|
| **G1: Schema Approved** | Antoine signs off on data contracts + directory structure | Antoine |
| **G2: Logging Stable** | 48h of compliant logs from all active agents, ≥95% schema compliance | Auditor |
| **G3: Exec Dashboard Valid** | Antoine confirms dashboard matches his understanding of project state | Antoine |
| **G4: Full Dashboards Live** | All 3 dashboards updating correctly for 1 week | Manager + Tech Lead |
| **G5: Reports Automated** | 2 consecutive weekly reports generated without manual intervention | Manager |
| **G6: System Mature** | All KPIs met for 2 consecutive weeks | Antoine (final sign-off) |
---
## Decision Required
**Antoine:** Approve this plan to begin R0 (schema creation) immediately, or flag sections needing revision.
**Estimated total effort:** ~15 agent-hours across 5 weeks. Zero new infrastructure. Zero new dependencies.