Appearance
What this is
The HTTP surface. Every spoke follows the same conventions; the live list is generated from src/lib/contracts/registry.ts so it cannot drift from what's deployed.
Conventions
- Spoke routes:
/api/spokes/<slug>/<verb>(e.g./api/spokes/job-family-agent/classify). - Reads (
GET): open on Production. - Writes (
POST): require a service key —x-toolbox-service-key: <key>orAuthorization: Bearer <key>(requireServiceKey). - Errors:
401(missing/invalid service key), plus spoke-specific contract validation (Zod).
Platform endpoints
| Route | Purpose |
|---|---|
GET /api/registry | Every spoke, status, and contract version (source of truth) |
GET /api/health | Aggregate health roll-up |
GET /api/spokes/<slug>/health | Per-spoke health: { spoke, status, contractVersion, schemaReachable, latencyMs, checkedAt } |
Live spokes (generated — clusters)
Generated from the registry. The authoritative, always-current set is
status: "live"insrc/lib/contracts/registry.ts. Per-spoke route/parameter detail is generated from each spoke's contract (src/spokes/<slug>/contracts/types.ts).
- 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 - Registry:
metrics-catalog
Example
bash
# read (open)
curl "https://<base>/api/spokes/job-family-agent/classify?title=Staff%20Data%20Scientist"
# write (service key)
curl -X POST "https://<base>/api/spokes/anycomp/scenarios" \
-H "x-toolbox-service-key: $TOOLBOX_SERVICE_KEY" \
-H "Content-Type: application/json" \
-d '{ "tenantId": "acme", "priorities": { ... } }'Full generated reference
The complete surface table is generated from docs/capability-manifest.json → reference-apis.generated.md (27 REST surfaces). Regenerate with:
bash
node ~/devplane/scripts/gen-product-reference.mjs .Honest scope
This page lists conventions + clusters; the per-endpoint detail lives in the generated reference (the standard's "declare once → document once" rule), not hand-maintained here.