Appearance
What this is
The core terms used across the toolbox docs. Most of the architecture follows from "one app, many governed spokes, two transports."
Spoke
An independently-versioned analytical microservice. Each spoke owns one capability, its own Postgres schema, a versioned contract, an audit trail, and routes under /api/spokes/<slug>/*. The toolbox is a collection of 19 live spokes plus coming-soon ones.
Contract
A spoke's typed input/output surface (src/spokes/<slug>/contracts/types.ts), independently versioned (e.g. anycomp 1.8.0). Consumers vendor the contract, not the implementation — the algorithm stays in the toolbox, so it can evolve without breaking callers.
Transport
The two ways to call a spoke: HTTP (/api/spokes/<slug>/<verb>, for engineers and consumer apps) and MCP (<slug>.<method>, for AI agents). Both are declared once and share the same logic.
Registry
src/lib/contracts/registry.ts is the source of truth for which spokes are live vs coming-soon, and their contract versions. GET /api/registry exposes it; the docs reference is generated from it.
Instrument vs Product
- Instrument — a composable measurement/decision primitive callable on its own (tagged
PA Instrument —in the registry): e.g. MaxDiff preference capture, directional alignment, interval calibration scoring. - Product — instruments composed into a named outcome: AnyComp (compensation Decision OS), Leadership Index, Analytics-Plan Generator. "Ingredients → meals."
JobFrame
The flagship canonical work-intelligence layer — a governed Job Family × Focus × Level model that resolves messy titles/JDs/HRIS rows into the canon and maps, prices, and constructs jobs from it. Lives in the job-family-agent spoke; the spine other comp/HRIS spokes map into.
Tenant & Entitlement (the board)
A tenant = identity × entitled-services. The Tenant Platform ("the board") is the shared multi-tenant identity + entitlement + governance fabric; products are "chips" that plug into entitlement slots. A spoke never owns identity or isolation — it consumes tenant context and asks the board for policy decisions ("can this viewer see this value?", "is this segment above min-N?", "is service X entitled for this tenant?").
Audit trail
Every spoke persists what it computed, for whom, and when — keyed by tenant (and often × employee × cycle). Results are reconstructable, not just returned.