Appearance
What this is
How the toolbox is built and how a call flows — including the substrate a reviewer asks about.
Shape
One Next.js (App Router) application, deployed as one Vercel project against one Supabase Postgres, exposing 19 live spokes. Each spoke is a self-contained microservice inside the monolith deploy: its own schema, contract, routes, and audit trail. This gives microservice isolation with monolith operational simplicity.
Components
- Spokes —
src/spokes/<slug>/(logic + contracts) andsrc/app/api/spokes/<slug>/<verb>/route.ts(HTTP routes). 19 live; coming-soon ones gated in the registry. - Registry —
src/lib/contracts/registry.ts(source of truth: live status + contract versions); exposed atGET /api/registry. - Transports — HTTP (
/api/spokes/<slug>/*) and MCP (<slug>.<method>), declared once, sharing the same spoke logic. - Tenant Platform ("the board") — shared identity + entitlement + governance fabric; spokes consume tenant context and ask the board for policy decisions.
- Health — per-spoke
GET /api/spokes/<slug>/health+ aggregateGET /api/health(checkSpokeHealth()/src/lib/health/). - Audit — per-spoke persisted results keyed by tenant (× employee × cycle where relevant).
Data flow (a write)
consumer / agent
→ HTTP POST /api/spokes/<slug>/<verb> (service key: requireServiceKey, first line)
or MCP <slug>.<method> (per-consumer scoped key → src/lib/mcp/auth.ts)
→ tenant context + entitlement check (the board)
→ spoke logic over its own Postgres schema (Drizzle)
→ result + audit record (keyed by tenant)Substrate
- Framework: Next.js (App Router); routes are the API.
- Hosting: Vercel (Production reads public; Preview auth-protected).
- Storage: Supabase Postgres, one schema per spoke. Drizzle
schemaFilter/TOOLBOX_SCHEMASscopes migrations to toolbox schemas only — devplane, performix, and other tenants in the same database are never touched. - Contracts: Zod-typed; vendored by consumers.
- MCP:
@modelcontextprotocol/sdk; per-consumer scoped keys. - Billing: Stripe.
Spoke clusters (the 19)
Psychometrics (reincarnation, preference-modeler) · stats + causal (calculus, forecasting, program-evaluation, causal-discovery) · latent-factor + performance (factor-models, performance-validity, performance-calibration, manager-effectiveness) · HRIS spine (segmentation-studio, data-anonymizer, job-family-agent, org-graph, worker-resolution, workforce-planning) · compensation (anycomp, wage-compliance, wage-benchmark) · plus the metrics-catalog registry. (Authoritative live list: the registry.)
Consumers
Performix, vela, and peopleanalyst-site vendor the typed contracts and call over HTTP/MCP. The algorithms are not duplicated downstream — they live here.
Honest scope
Some capabilities are coming-soon in the registry; trust the registry's status, not this page, for what's callable today.