Skip to content

What this is

Principia's two interfaces: a measurement-engine API and a typed registry data contract. Both are first-class — pick by integration style.

Measurement-engine API (/api/v1/*)

Auth-gated per the portfolio service standard (REST + MCP). Exact base URL + key: SPEC.md.

SurfaceMethodReturns
…/methods (advisor)GETrecommended methods for a construct/measurement goal
…/priors, …/posteriorGET/POSTcredible-synthesis prior / updated posterior
…/local-validityPOSTlocal closed-loop validity
…/assemble-batteryPOSTassembled item battery
…/open-text-codingsPOSTopen-text coded to constructs
…/methods/scoring/confidencePOSTθ̂ (grid-MLE) + Fisher SE/CI + info_gain_next + threshold_met
…/methods/response-diagnosticsPOSTper-item INFIT/OUTFIT misfit + log-RT anomaly flags

MCP: exposed as principia tools.

Registry data contract (@measurement/core)

The other interface is typed reads, not endpoints. Consume Construct, Instrument, Item, Measure, Model, EffectSize, Publication, StudyQualityGrade via @measurement/core — apps do not re-implement the schema. Source-side cards (ConstructCard, InstrumentCard, Citation) come from CanonicAI; the resolved spine (CanonicalVariable, CanonicalSurveyItem) is Principia's.

Contributor rule

Discover an unsurveyed instrument? File a Principia-side assignment to register it — never silently expand the shared schema.

Full generated reference

Generated from docs/capability-manifest.jsonreference-apis.generated.md / reference-mcp.generated.md. Regenerate with node ~/devplane/scripts/gen-product-reference.mjs ..

See also

Getting Started · Concepts · Architecture