> ## Documentation Index
> Fetch the complete documentation index at: https://docs.nika.sh/llms.txt
> Use this file to discover all available pages before exploring further.

# Crate constellation

> Visual map of every Nika Diamond crate across six layers. Live admission status. The 42-crate architecture (locked target), reached additively across 1.x minors.

export const STATUS = {
  head: "95962d5cd",
  branch: "main",
  version: "0.91.0",
  cratesWorkspace: 39,
  cratesAdmitted: 39,
  cratesTarget: "42",
  wipCrates: [],
  libTests: 2989,
  clippyWarnings: 0,
  adrs: 62,
  adrsAccepted: 42,
  adrsProposed: 18,
  providers: 32,
  capabilityRules: 49,
  hygieneVectors: 38,
  hygieneGreen: 28,
  hygieneYellow: 3,
  hygieneRed: 0,
  lastUpdated: "2026-06-25"
};

Nika Diamond targets the **{STATUS.cratesTarget}-crate** architecture,
reached additively across 1.x minors, organized across six layers.
Today **{STATUS.cratesAdmitted} are admitted** and {STATUS.wipCrates.length}
are WIP ({STATUS.wipCrates.length ? STATUS.wipCrates.join(", ") : "none"}).
The remaining crates are future 1.x expansion, not required for the first-run
CLI/LSP/MCP path.

<Tip>
  Live state: [`/reference/status`](/reference/status). Layer model:
  [`/architecture/layers`](/architecture/layers). Admission process:
  [`/architecture/admission`](/architecture/admission).
</Tip>

## Full dependency graph

```mermaid theme={"system"}
%%{init: {'theme':'dark','themeVariables':{'background':'transparent','mainBkg':'transparent'}}}%%
flowchart TB
  classDef admitted fill:#22c55e,color:#000,stroke:#16a34a,font-weight:bold
  classDef wip fill:#f59e0b,color:#000,stroke:#d97706,font-weight:bold
  classDef planned fill:#1e293b,color:#94a3b8,stroke:#475569,stroke-dasharray:4
  classDef binary fill:#a78bfa,color:#000,stroke:#7c3aed,font-weight:bold

  subgraph L5["L5 · binary"]
    NIKA["nika ✅"]:::admitted
  end

  subgraph L4["L4 · interfaces"]
    CLI["nika-cli ✅"]:::admitted
    SERVE["nika-serve 🧭"]:::planned
    MCP["nika-mcp ✅"]:::admitted
    LSP["nika-lsp ✅"]:::admitted
    SDK["nika-sdk 🧭"]:::planned
    CV["nika-catalog-verify ✅"]:::admitted
  end

  subgraph L3["L3 · runtime"]
    RT["nika-runtime ✅"]:::admitted
    SH["nika-shield 🧭"]:::planned
  end

  subgraph L2["L2 · verbs + services"]
    VE["nika-verb-exec ✅"]:::admitted
    VF["nika:fetch builtin ✅"]:::admitted
    VI["nika-verb-invoke ✅"]:::admitted
    VIF["nika-verb-infer ✅"]:::admitted
    VA["nika-verb-agent ✅"]:::admitted
    PCK["nika-pck 🧭"]:::planned
    MEM["nika-connectome 🧭 v0.85+"]:::planned
    OBS["nika-observability 🧭"]:::planned
    BGH["nika-builtin-github 🧭"]:::planned
    BCL["nika-builtin-cloud 🧭"]:::planned
    BWS["nika-builtin-workspace 🧭"]:::planned
  end

  subgraph L1["L1 · effects"]
    FS["nika-fs ✅"]:::admitted
    HTTP["nika-http ✅"]:::admitted
    PROC["nika-exec-runner ✅"]:::admitted
    GIT["nika-git 🧭"]:::planned
    KEYS["nika-keys-* 🧭"]:::planned
    PROV["nika-providers ✅"]:::admitted
    PREG["nika-pck-registry 🧭"]:::planned
    PSTR["nika-pck-store 🧭"]:::planned
  end

  subgraph L05["L0.5 · kernel"]
    K["nika-kernel ✅"]:::admitted
    KM["nika-kernel-mock ✅"]:::admitted
  end

  subgraph L0["L0 · foundation"]
    T["nika-types ✅"]:::admitted
    E["nika-error ✅"]:::admitted
    C["nika-catalog ✅"]:::admitted
    CG["nika-catalog-codegen ✅"]:::admitted
    S["nika-schema ✅"]:::admitted
    EV["nika-event ✅"]:::admitted
    BN["nika-binding 🧭"]:::planned
    TR["nika-transform 🧭"]:::planned
    PM["nika-pck-manifest 🧭"]:::planned
  end

  T --> E
  T --> C
  T --> K
  E --> K
  C --> K
  C --> CV
  S --> CV
  K --> KM
  K --> FS
  K --> HTTP
  K --> PROC
  K --> GIT
  K --> KEYS
  K --> PROV
  FS --> VE
  HTTP --> VF
  PROV --> VIF
  VE --> RT
  VF --> RT
  VI --> RT
  VIF --> RT
  VA --> RT
  RT --> CLI
  RT --> SERVE
  CLI --> NIKA
```

<sub>✅ 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.</sub>

## Layer breakdown

| Layer    | Admitted                                                                                                          | WIP | Planned                                                              | Notes                                                                           |
| -------- | ----------------------------------------------------------------------------------------------------------------- | --- | -------------------------------------------------------------------- | ------------------------------------------------------------------------------- |
| **L0**   | nika-types, nika-error, nika-catalog, nika-catalog-codegen, nika-schema, nika-event                               | —   | binding, transform, pck-manifest                                     | Pure sync, zero I/O.                                                            |
| **L0.5** | nika-kernel (facade), nika-kernel-core, nika-kernel-ai, nika-kernel-runtime, nika-kernel-plugin, nika-kernel-mock | —   | —                                                                    | Trait definitions (4-way split + facade hub) + mock companion. Async OK         |
| **L1**   | nika-fs, nika-http, nika-exec-runner, nika-clock, nika-providers                                                  | —   | git, keys-\*, pck-registry, pck-store, memory-satellites (v0.95)     | Effect impls. Each declares capability axes                                     |
| **L2**   | nika-verb-infer, nika-verb-exec, nika-verb-invoke, nika-verb-agent, nika-builtin                                  | —   | pck, memory (v0.95), observability, builtin-{github,cloud,workspace} | Verbs + domain services (`fetch` is the `nika:fetch` builtin, not a verb crate) |
| **L3**   | nika-runtime                                                                                                      | —   | shield, wasm-host (v0.100), sandbox (v0.100)                         | Runtime + policy                                                                |
| **L4**   | nika-catalog-verify, nika-cli, nika-mcp, nika-lsp                                                                 | —   | serve, sdk                                                           | Interfaces, libraries                                                           |
| **L5**   | nika                                                                                                              | —   | —                                                                    | The public binary surface                                                       |

## Memory subsystem (the 2.0 Connectome era) — separate count

The 8-crate memory subsystem (plus 1 orchestrator at L2) is **not counted**
in the {STATUS.cratesTarget} target. It lands in the 2.0 Connectome era,
after the 42-crate foundation, via the `MemoryStore` + `EmbeddingProvider`
trait reservations already in `nika-kernel`.

<AccordionGroup>
  <Accordion title="L2 orchestrator" icon="brain">
    `nika-connectome` — ties the 10 satellites together behind the `MemoryStore`
    trait. Exposes unified put / query / forget / recall API.
  </Accordion>

  <Accordion title="L1 satellites (8)" icon="satellite-dish">
    * `nika-hnsw` — approximate nearest neighbor (HNSW index)
    * `nika-bm25` — sparse full-text ranking
    * `nika-rrf` — reciprocal-rank fusion (hybrid search)
    * `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` — auto-description generation (embed-and-label)
  </Accordion>
</AccordionGroup>

## Admission queue

Current admission order (per Q5 decision, rev.2):

<Steps>
  <Step title="Round 3 — nika-catalog-codegen">
    Extract TOML → Rust codegen to its own L0 crate. Independent of other
    crates; unblocks faster iteration on catalog data.
  </Step>

  <Step title="Round 4 — nika-schema">
    Complete parser + DAG + ariadne diagnostics. Unblocks verb crates
    (they need to parse `.nika.yaml` step shapes).
  </Step>

  <Step title="Round 5 — nika-event + nika-transform">
    Event envelope + 65 transforms. Can run in parallel.
  </Step>

  <Step title="Round 6 — nika-binding + nika-pck-manifest">
    Template engine + package manifest. Binding depends on transform.
  </Step>

  <Step title="Rounds 7-10 — verbs">
    One verb per round: infer → exec → invoke → agent (fetch is the
    `nika:fetch` builtin under `invoke`, not a verb crate).
  </Step>

  <Step title="Rounds 11-15 — effects + runtime">
    L1 effect crates (fs, http, process, keys, provider-\*) and L3 runtime.
  </Step>

  <Step title="Rounds 16+ — interfaces + binary">
    L4 cli / serve / mcp / lsp / sdk and the L5 `nika` binary.
  </Step>
</Steps>

<Note>
  No hard timeline per admission round. Real semver toward 1.0: quality
  over speed. Each admission = 1 atomic commit = 1 per-admission pre-release
  tag (`v0.90.0-rc.N` on the way to `1.0.0`).
</Note>

## See also

<CardGroup cols={2}>
  <Card title="Live state" icon="gauge" href="/reference/status">
    HEAD, tests, hygiene — drift-proof snapshot.
  </Card>

  <Card title="Layer registry" icon="layer-group" href="/architecture/layers">
    Six layers, mechanical sort test, security axes.
  </Card>

  <Card title="12-gate admission" icon="check-double" href="/architecture/admission">
    How a crate earns a seat at the workspace.
  </Card>

  <Card title="L0 foundation decisions" icon="list-check" href="/architecture/l0-decisions">
    Q1-Q13 decisions that shaped today's L0 layout.
  </Card>
</CardGroup>
