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.
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
curl -s https://nika.sh/ontology/language.json | head -40
the whole language graph as served data: every node and edge these pages render
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