Skip to main content
This page is the engine crate map, not the product getting-started path. The released binary already includes nika serve, nika mcp, nika lsp and the CLI. The published TypeScript SDK is @supernovae-st/nika — a separate repository from any planned Rust nika-sdk crate on the graph below. Nika’s engine grows additively across 1.x minors, organized across six layers. Today crates are admitted and are WIP (), against a projected horizon of crates (hard cap , per ADR-037). The horizon is a projection, never a gate: crates are admitted when they pass the 12 gates, not to reach a number. The remaining crates are future 1.x expansion, not required for the first-run CLI/LSP/MCP path. Nodes marked 🧭 on the graph are crate-layout reservations; do not read them as “this command has not shipped.”
Live state: /reference/status. Layer model: /architecture/layers. Admission process: /architecture/admission.

Full dependency graph

✅ admitted (12 gates green) · 🟡 WIP · 🧭 planned. Colors by state: green admitted, amber WIP, slate planned, purple binary root. Arrows read “depends on”: all point downward.

Layer breakdown

Memory subsystem (the Connectome): separate count

The memory subsystem is 11 crates — 1 L2 orchestrator + 10 L1 satellites — and is not counted in the crate horizon. It lands whole before 1.0 (the documented roadmap · a declared pre-condition of the launch), via the MemoryStore + EmbeddingProvider trait reservations already in nika-kernel.
nika-connectome ties the 10 satellites together behind the MemoryStore trait. Exposes unified put / query / forget / recall API.
  • nika-hnsw, approximate nearest neighbor (HNSW index)
  • nika-bm25, sparse full-text ranking
  • nika-rrf, reciprocal-rank fusion (hybrid search)
  • nika-rerank, local reranking for precision
  • nika-fsrs, Free Spaced Repetition Scheduler (memory decay)
  • nika-rdfs-reasoner, RDFS inference for knowledge triples
  • nika-temporal, time-aware recency + decay
  • nika-graph-algos, graph traversal (shortest-path, community)
  • nika-autodesc-minimal, provenance-attached auto-description
  • nika-autodesc-full, schema-evolving auto-description

Admission queue (historical 0.8x)

This order records how the Diamond rewrite admitted crates. It is not a current product roadmap — nika-schema, the four verbs, nika-cli, nika-mcp, nika-lsp and the nika binary already ship. Keep it as the original sequence (Q5, rev.2):
1

Round 3: nika-catalog-codegen

Extract TOML → Rust codegen to its own L0 crate. Independent of other crates; unblocks faster iteration on catalog data.
2

Round 4: nika-schema

Complete parser + DAG + ariadne diagnostics. Unblocks verb crates (they need to parse .nika step shapes).
3

Round 5: nika-event + nika-transform

Event envelope + 65 transforms. Can run in parallel.
4

Round 6: nika-binding + nika-pck-manifest

Template engine + package manifest. Binding depends on transform.
5

Rounds 7-10: verbs

One verb per round: infer → exec → invoke → agent (fetch is the nika:fetch builtin under invoke, not a verb crate).
6

Rounds 11-15: effects + runtime

L1 effect crates (fs, http, process, keys, provider-*) and L3 runtime.
7

Rounds 16+: interfaces + binary

L4 cli / serve / mcp / lsp / sdk and the L5 nika binary.
No hard timeline per admission round. Real semver toward 1.0: quality over speed. Each admission = 1 atomic commit, on the tagged 0.9x train (1.0.0-rc.N when the release-candidate window opens).

See also

Live state

HEAD, tests, hygiene: the drift-proof snapshot.

Layer registry

Six layers, mechanical sort test, security axes.

12-gate admission

How a crate earns a seat at the workspace.

L0 foundation decisions

Q1-Q13 decisions that shaped today’s L0 layout.