alphatwo-ten · the design

How the system works

alphatwo-ten is a software factory. Two agents inside the factory (an Executor and a Reviewer) build tools. Those tools get consumed by a workforce of named role-agents that operates a real business on behalf of a customer. Each customer gets a dashboard, a database, and a "brain" — a private folder of living documents that every agent reads from and writes to.

This page is the comprehensive design reference. The homepage shows the interactive build pipeline, and the stack map covers what runs where.

1 · North star

Most "AI agent" products are a single chatbot pretending to be many things. This is the opposite: a small factory that ships specialized agent-tools, and a clearly ranked workforce that uses them. Specialization on the inside, one human touchpoint on the outside.

2 · The two layers

The whole system splits cleanly in two. The factory is shared infrastructure (one of these exists for all customers). The workforce is per-customer (one of these exists per customer we sign up).

Factory
(shared)
Executor builds tools
Reviewer critiques + approves
Tool Catalog versioned registry
Workforce
(per‑customer)
Maestro v0.1 — only agent
Consigliere future
12 specialists hiring roadmap
Customer
(per‑customer)
Dashboard human UI
Brain repo GitHub · private
Postgres ops state · RLS

3 · v0.1 — what we build first

The big realization of this grill: Maestro is the first agent we build, not one of the 12 listed specialists. Every future agent depends on Maestro's output to be useful. Building a specialist first would just be a chatbot in costume.

v0.1 milestone — Maestro alone

Factory + Maestro + Dashboard + Brain repo + Postgres. No other agents exist yet. The 12 specialists become a hiring roadmap, not a v1 deliverable. This mirrors how real CEOs work — they do everything themselves until they hire.

Layer 1 — Factory Hand-coded for v0.1 (it can't bootstrap itself yet). Becomes the machine that hires the specialists later.
Layer 2 — Workforce Maestro only. Acts as the customer's Personal CEO + CFO + Chief of Staff.
Layer 3 — Customer surfaces A dashboard, a private GitHub brain repo, a Postgres row for operational state.

4 · Maestro's job

Maestro interviews the customer and writes their findings into a structured "brain." The customer can show up with as little as an idea, a description, or a URL — Maestro takes it from there.

The first decision Maestro makes

Before anything else, Maestro figures out whether this is an idea or an established business. The two flows produce different brain content (aspirational vs. inventory-heavy), so the differentiation has to happen early.

MechanismHow it works
Ask + verify Maestro asks the customer directly during the interview, AND verifies via URL if one was given (working site with products = established). Customer can override.

What Maestro can see (established businesses)

Sourcev0.1 access
Customer's answersYes — primary input.
Public website (URL)Yes — Maestro scrapes homepage, about, products, pricing to pre-fill drafts.
Integrations (Stripe, Shopify, GA, etc.)Not in v0.1. Comes later.

5 · The customer's brain — 8 living documents

Maestro's output is a folder of HTML documents (not bare markdown), styled like this page. They live in the customer's private GitHub repo and update as Maestro and future specialists learn more.

Every future agent we hire (Max, Tom, John…) reads from this brain before doing any work. That's why Maestro had to be first — without these documents, no specialist has context.

Format note  Documents are rendered as HTML in the style of this page (Thariq's "concept explainer" pattern — serif headings, monospace eyebrows, ivory background, clay accents). HTML is what the customer sees; the source-of-truth file committed to git is the same HTML.

6 · How the customer experiences it

The dashboard is a live split-screen: Maestro's chat on the left, the brain documents on the right. As the conversation produces facts, the right side updates in real-time — the customer watches their own "brain" form.

Conversation · Maestro
Maestro — Tell me about the business in one sentence. If you have a website, share the URL too.
You — A subscription box for indoor plants. plantroom.co
Maestro — Got it. Reading plantroom.co now. Quick check — would you call this an idea or an established business at this point?
You — Established. ~600 subscribers, 18 months in.
Maestro — Perfect. I'll work through 8 documents with you. Starting with business.html — who's your ideal subscriber?
Brain · plantroom-co
maestro/business.htmlwriting…
maestro/customer.htmlqueued
maestro/product.htmldraft from scrape
maestro/audience.htmlqueued
maestro/voice.htmlqueued
maestro/assets.htmldraft from scrape
maestro/goals.htmlqueued
maestro/status.htmlestablished · confirmed

Conversation style  Guided + open-ended follow-ups. Maestro works through the 8 documents as an agenda (predictable enough to ship), but each section is conversation, not a form. He validates, summarizes, asks follow-ups, and lets the customer steer.

The dashboard is generative

One dashboard application serves every customer (multi-tenant), but the layout itself isn't fixed. After the interview, Maestro emits a JSON spec describing which widgets, metrics, and panels this customer needs. json-render.dev renders that JSON into React UI from a constrained component catalog.

Result: a content business and a product business get different dashboards out of the same app. Maestro keeps updating the spec as the brain evolves and as specialists get hired — adding Max means SEO widgets appear, adding Tom means a media library appears.

Output of MaestroLives inPurpose
brain/*.html Customer's GitHub repo What we know about the customer (truth)
dashboard.json Postgres (versioned) How the customer sees + interacts with the work (UI spec)

7 · Where the data lives

Two stores, each with a clear job. Nothing lives in both.

StoreWhat's in it
tenwhy-brains/<customer>
GitHub repo · private
The brain. Folder per agent: /maestro/ at v0.1; later /max/, /john/, etc. as specialists get hired. Each agent only writes to its own folder — clean commit attribution, no merge conflicts.
Shared Postgres
RLS on customer_id
Operational state: customer accounts, chat history, agent task queues, scheduling, audit logs. Same Row-Level Security pattern already in the PRD.

Why a git repo for the brain (not the database)

Three reasons: it's portable (the customer can clone or export their brain at any time — they own it), it's versioned for free (every change is a commit, with attribution to whichever agent made it), and it forces clear ownership boundaries (one folder per agent, no fighting over rows).

8 · What a tool actually is

A "tool" is the unit of work the factory produces and a specialist consumes. It's not just an API or a widget — it's a self-contained pair.

Anatomy of a tool

PartWhat it is
CLI binary A command-line program that does the work (run an SEO scan, sync a catalog, draft a brief). Standalone, scriptable, testable on its own.
Skill A markdown file that teaches an agent how to use the CLI — what it's for, when to invoke it, expected inputs/outputs, examples. Same shape as a Claude Code skill.
(optional) widget spec If the tool needs a dashboard surface, it ships a json-render widget definition that Maestro can include in dashboard.json.
(optional) schema migration If the tool needs new tables/columns in the shared Postgres (under the customer's RLS scope), it ships SQL.

One tool = one GitHub repo (tenwhy-tools/<name>). Built by the factory (Executor + Reviewer in a Sapiom µVM), versioned independently, consumed by exactly one specialist role.

How an agent uses a tool

When a specialist is hired, the platform loads the tool's Skill into that agent's context. The agent reads the skill, decides when to invoke the CLI (based on its shift schedule, a Maestro task, or an event), and runs it. Output gets committed to the agent's folder in the customer's brain repo.

The factory–workforce wall

The Factory and the Workforce are two separate systems. They share a platform and infrastructure, but they never call each other directly. The factory's only output to the workforce is a published tool repo. The workforce never reaches back into the factory.

Each side is aware of the other's existence (the factory has to produce tools in a shape the workforce can consume; the workforce has to be able to load any catalog tool). But the wall makes scaling, deploying, and reasoning about each side independent.

9 · The hiring roadmap

Once Maestro is live, the factory's job is to build the next specialist's tool and ship it into the catalog. When the customer (or Maestro) decides they need that role, Maestro "hires" them — the specialist's folder appears in the brain repo and they start doing their job.

The 12 candidates from the original brief, ordered roughly by likely-first-to-hire. Names marked ? are still unnamed.

AgentJobToolShift
MaxSEOseo-tooldaily
VicMedia creationmedia-tooldaily
SacSEMsem-tooldaily
JonCatalogcatalog-tooldaily
TomMarket researchresearch-tooldaily
RoyMarket watchmarket-watch-toolnight
MozDesigndesign-tooldaily
SidQuality assuranceqa-toolnight
SalCustomer supportsupport-tool24/7
RayLegallegal-tool1 day/week
LouAccountingaccounting-tooldaily
NicWebsiteweb-builder-tooldaily

All 12 are unhired in v0.1 — only Maestro ships. The factory will build each tool when Maestro suggests the hire and the customer approves (decision #21). Top 4 rows represent the earliest-likely hires.

Also future: Consigliere (strategic advisor sitting alongside Maestro, advises only — decision #19).

Renames from the original brief

WasNowReason
JohnJon4-letter outlier in the original roster; shortened for consistency with the 3-letter pattern.
Tom (Media)VicTom moved to Market Research; Vic takes Media Creation.
Lawyer "Regis"Ray3-letter agent name; "Regis" is no longer used (was the placeholder).

10 · Decisions locked in this grill

Each one is now a constraint on everything downstream.

#Decision
1locked v2 layers on top of v1 — v1's form-to-app demo stays as the marketing surface.
2locked Maestro is the first agent we build, not a 13th invented one.
3locked The 12 listed specialists are a hiring roadmap, not a v1 deliverable.
4locked Maestro v0.1 = customer interviewer + producer of a living brain.
5locked Maestro accepts as little as an idea / description / URL.
6locked 8-document brain pack: business · customer · product · audience · voice · assets · goals · status.
7locked Idea vs. established: ask the customer + verify via URL.
8locked Established business access in v0.1 = answers + public URL scrape. No integrations.
9locked Conversation style = guided agenda + open-ended follow-ups.
10locked File visibility = live split-screen (chat left, brain right).
11locked Brain documents are rendered/stored as HTML, styled like this page.
12locked Brain storage = per-customer GitHub repo. Operational state = shared Postgres + RLS.
13locked GitHub home = dedicated platform org (e.g. tenwhy-brains).
14locked Brain repos are private by default.
15locked Repo layout = folder per agent (/maestro/, later /max/…).
16locked Maestro runtime = stateless HTTP API (load from DB+repo, call LLM, write back). Fallbacks noted: long-lived worker, µVM-per-session, direct-from-frontend if this doesn't hold up.
17locked Dashboard = single multi-tenant app, with a generative UI driven by Maestro's dashboard.json spec, rendered via json-render.dev.
18locked Customer auth = email + magic link. No passwords.
19locked Consigliere advises only — Maestro has final say in the workforce. (Consigliere may not even ship in v1.)
20locked Specialist-vs-Maestro disagreements — Maestro decides. Specialists can flag concerns; Maestro hears them; Maestro calls it.
21locked Hiring flow — Maestro suggests, customer approves. Surfaces as an Approve card in the dashboard.
22locked Specialist activation = all three: cron (for shifts), on-demand (from Maestro), and events (reactions to brain changes / dashboard actions).
23locked One GitHub repo per tool (tenwhy-tools/<name>). Each tool = CLI + Skill (markdown teaching an agent to use the CLI). Same shape as Claude Code skills.
24locked Factory runtime = Sapiom µVM per build job. Factory and Workforce share a platform but have no direct interaction — only handoff is a published tool repo.
25locked Billing = hybrid. Flat base subscription (Maestro + some specialists), metered add-ons for high-cost agents (e.g. media gen, paid ads).
26locked Specialist roster locked — all 3-letter names: Max, Vic, Sac, Jon, Tom, Roy, Moz, Sid, Sal, Ray, Lou, Nic. (Orchestrator names — Maestro, Consigliere — keep their full form.)
27locked Renames from original brief: John → Jon, Tom (Media) → Vic (Tom moves to Research), Lawyer "Regis" → Ray.

11 · Still on the grill

all clear  Every question from this session is resolved — 27 decisions locked, 0 open. Next time we sit down, we either revisit one of the locked decisions (each is changeable) or move on to building.

What naturally comes next

Not "open questions" — just the obvious work that follows from what we decided:

NextWhat it means
Skeleton reposCreate the tenwhy-brains and tenwhy-tools GitHub orgs; reserve repo naming conventions.
Maestro v0.1 specWrite the interview script, prompt, and the 8 HTML brain-doc templates. Decide which model powers Maestro.
Dashboard scaffoldStand up the multi-tenant Next.js app with split-screen chat + json-render canvas. Wire magic-link auth.
Factory v0Bootstrap the Executor + Reviewer pipeline (Sapiom µVM). Doesn't need to build anything in v0.1 since Maestro is hand-coded — but the pipeline exists, ready for Maestro to commission Max as the first hire in v0.2.