AGPL-3.0-or-later · forever.

the sources

Nothing here is hand-typed

Every count, every code block and every claim on these pages is a projection of pinned sources, re-derived at build time and gated in CI. This page teaches the machinery, and names what it does not cover yet.

The three clocks

A page can only lie about time three ways. Each clock is pinned, so it cannot.

the spec clock
what the language ratifies: pinned at /.well-known/nika-spec-pin.json, a full commit and its tree hash; the resync cron moves it, never a hand
the engine clock
what the binary ships: v0.105.0; its catalogs are committed sources, never probed at build
the site bake
when these pages were derived: every generated module is byte-diffed in CI against a fresh recompile, so a stale page cannot ship silently

Ratified is not shipped

The spec and the engine move on different clocks, and this site refuses to blur them: a member can be ratified (in the spec at the pin) before the engine ships it, or shipped before ratification lands. The diff below is computed at build time from both catalogs; when it is empty, the clocks agree.

builtins · the two clocks agree at this bake

providers · the two clocks agree at this bake

grammar · ratified, not yet shipped: W1 envelope (workflow object · tasks map) · shipped, not yet ratified: W2 envelope (workflow scalar · tasks sequence · declared depends_on)

The truth words

The vocabulary of how this site tells the truth. Each word has exactly one meaning: confusing two of them is a prose bug, and the prose gates treat it as one.

spec
the nika-spec repo · the truth of the language
canon
canon.yaml · the counted sets, spec-first
schema
workflow.schema.json · the shapes
pack
the spec corpus vendored inside the engine
pin
SPEC_PIN · the exact spec sha the engine targets
catalog
a machine projection the site serves · byte-diffed in CI
mirror
a byte-pinned copy, sha256-verified
registry
nika-registry THE PRODUCT · shared workflows, re-proven nightly
manifest
the snippet lineage table · every rendered block resolves here
atlas
language_graph 1 · the graph of the language, site-side

The coverage score

The compiler scores its own coverage on every build: every member of every register accounts for a surface and evidence, or the build names the gap. The classes below are the honest remainder: what this site does not judge yet, by name.

atlas coverage · 100/100 · no waivers

  • capture-stamps → arms at wo-4 (TermCapture)
  • count-links (CanonCount deployment) → arms at wo-3
  • keyboard+touch verdicts → arm at wo-12
  • hreflang coverage → ARMED in src/test/i18n.test.ts (wo-9a · registry⇔PATHS⇔cluster judged test-side; PATHS is not compiler-readable)

Verify it yourself

The whole trust chain is reproducible from public material, without asking anyone: the same discipline the 4-verb language applies to runs, applied to the site that documents it.

  1. curl -s https://nika.sh/.well-known/nika-spec-pin.json

    the exact nika-spec identity this site resyncs against: a full commit sha and its tree hash

  2. curl -s https://nika.sh/ontology/language.json | head -40

    the whole language graph as served data: every node and edge these pages render

  3. curl -sO https://nika.sh/library/daily-brief.nika.yaml && nika check daily-brief.nika.yaml

    a served workflow re-audited on your machine: the conformance oracle, not our word