The per-customer manifest layer we sketched is now live behind feature branches: 31 agents shipped inside LeedAB-OS, manifest-aware /api/pack, per-customer prompt overrides, agent-licensing API guards, prospect demo URL flow (Solutions agent without Telegram), and a working COO orchestrator MVP with single + fanout delegation.
What I need from you: (a) sign off on or push back on three load-bearing architecture calls below, (b) decide if we want a separate muiez/LeedAB-prospects repo for prospect manifests or keep them in LeedAB-OS/clients/ for now, (c) pick the merge order for the three branches.
Quick numbers. All verified by smoke tests today against running dev server.
The five customer-lifecycle agents you knew were missing — champion, delivery, implementation, onboarding, solutions — are now registered in the published console (commit e97df2e). They were shipped in leedab-workspace on 2026-04-30 but never made it into apps/console/lib/agents.ts. Closed.
Smoke results across customer modes (verified live, dev server on port 3200):
| Customer | Industry | Tier | Agents | Source |
|---|---|---|---|---|
| Tarheel Logistics | logistics | logistics-pro | 11 | manifest |
| Acme Logistics (prospect) | logistics | logistics-pro | 7 | manifest |
| Sunset Cafe (prospect) | hospitality | — | 9 | manifest |
| Hawkesbury Roofing (prospect) | trades | — | 6 | parser-built |
| Local development | — | founder | 31 | default |
Three branches stacked. Each is independently mergeable; sequence matters but they don't conflict.
Two days of work, but if you only read 4 files, read these:
From ~/code/LeedAB-OS:
git fetch origin
git checkout phase-3-solutions-coo-mvp
cd apps/console && npm install && npm run dev
# in another terminal:
node scripts/test-solutions-build.mjs "/build big-w-distribution, NSW logistics, 400 dispatches/day"
# then with OpenClaw running:
node scripts/test-coo.mjs tarheel "Coles deducted \$2,400 against PO 8821 — what do we do?"
I committed to these on the branch but they're reversible. Each is the conservative choice given what shipped already. If you want to take a different direction, branch is feature-branch and can be rebased.
Your shipped per-tier pack model (PR #4-7) becomes the baseline; per-customer manifest at clients/<id>/manifest.json overrides agent roster + adds per-agent prompt overrides + per-customer playbook.
Lean: Option C is right because Solutions agent + COO testing both need per-customer differentiation now (different industries, different rosters, different overrides per prospect). Mina overruled my YAGNI Option A on this one.
31 agents + context/ + context/skills/ committed at LeedAB-OS root. leedab-workspace stays as canonical authoring location; sync to LeedAB-OS happens via manual copy for now (script later).
Lean: A1 (copy) over submodule. Submodules are a maintenance pain at our team size; we can promote to a script-or-submodule sync if drift becomes painful.
The original apr-29 plan envisioned agents/<id>/AGENT.md + per-agent SKILL.md structure. Phase 2 keeps the existing inline structure (apps/console/lib/agents.ts dictionary). Per-agent dirs become a separate later refactor.
Lean: defer. Bundling adds risk to Phase 2 without unlocking anything immediate. If you disagree, this is the easiest one to add (mostly mechanical).
The Solutions agent canonical doc says it commits prospect manifests to muiez/LeedAB-prospects (a separate private repo). Today the build flow writes to LeedAB-OS/clients/ by default and only commits to a different repo if LEEDAB_PROSPECT_REPO_PATH env is set. Question: does muiez/LeedAB-prospects exist? Should we create it? Or are you fine with prospect manifests sitting in LeedAB-OS/clients/ for the time being?
13 PRs at muiez/LeedAB-OS merged. License-pack model shipped (PR #4 + #6 + #7). Wizard hard-gated, server-side license guards on cost-bearing routes.
Per-customer manifests, system-prompt layering, agent-license guards, dashboard rail filter, URL-param resolution for prospect demos. Branch phase-2-manifest-reorg.
Solutions /build flow (parser → manifest → demo URL), COO orchestrator with single + fanout delegation + synthesis, two CLI harnesses for test-without-Telegram. Telegram bot trigger remains; Mina + Claude wire it next session.
(a) Wire Solutions /build to your existing bot. (b) Implement Champion agent's 12 stub tools (3 are unblocked today). (c) Backend tweak: customer_id field in license payload — small change, makes resolveClientId cleaner for paying customers.
Extract _schema/ per-customer template from LeedAB Brain after 2-4 weeks of dogfooding. Lets us provision a fresh customer brain in <30 min instead of bespoke each time.
Mac Mini + UGREEN AI NAS substrate. Per ADR-007. The 12-24 month destination.
Five small things, each requires a yes/no from you:
Whenever you've got 30 minutes — happy to walk through any of this on a call, or you can reply async on each of the five.