Architecture
SkeinRank is designed around a split between a fast runtime path and a slower control-plane path. The product goal is to make company-specific language governable, versioned, and safe to serve into search, RAG, and AI-agent workflows.

Runtime path
Binding-aware canonicalization, disambiguation, route planning, pinned snapshots, runtime context APIs, SDK/CLI usage, and optional FastAPI extraction endpoints.
Control-plane path
Governance API, PostgreSQL terminology state, roles, suggestions, stop lists, API tokens, snapshots, Elasticsearch evidence checks, enrichment jobs, and review UI.
Runtime request flow
Section titled “Runtime request flow”
Domain model
Section titled “Domain model”
Terminology-as-Code and agents
Section titled “Terminology-as-Code and agents”

Current packages
Section titled “Current packages”| Package | Role |
| --- | --- |
| skeinrank-core | Core SDK, CLI, extraction, canonicalization, document helpers. |
| skeinrank-server | FastAPI service wrapper for extraction and rerank contracts. |
| skeinrank-provider-elasticsearch | Optional Elasticsearch provider and enrichment CLI. |
| skeinrank-governance | SQLAlchemy/Alembic foundation for terminology governance. |
| skeinrank-governance-api | FastAPI control-plane API for profiles, terms, aliases, users, roles, tokens, suggestions, and snapshots. |
| skeinrank-ui | React/TypeScript governance console. |
Snapshot-first direction
Section titled “Snapshot-first direction”The governance layer should publish snapshots. Runtime extraction should consume snapshots. That keeps the online matching path simple and avoids turning every extraction request into a database-backed workflow.