Skip to main content
Nika Diamond 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.
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 timeline’s connectome gate Β· 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

Current admission order (per Q5 decision, 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.yaml 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.