AGPL-3.0-or-later · forever.

the verifiable record

Timeline.

Three eras, one continuous version line, rendered from the spec's own timeline/timeline.yaml. Every provable claim on this page is re-proven in CI against its public source: crates.io keeps yanked versions listed forever, GitHub keeps commits and releases. What cannot be proven is labeled, never dressed as proof; the future carries conditions, never dates.

source of truth · timeline/timeline.yaml · verified by verify.py · last verified

  • 3erasexploration · brouillon · diamond
  • 26dated entriesevery one carries evidence
  • 19re-proven in CIagainst public sources
  • 8gates aheadconditions, never dates

Exploration

2 entries

summer 2025 → end 2025

The idea takes shape through private prototypes and throwaway vibe-code experiments — on the maintainer's machine and private repos, before the language has a public repo, a name in git, or a single committed line. The question being circled: repeatable AI work should live in files, reviewed and re-run, not evaporate into chats.

  1. 2025-08Private prototypes beginVibe-code experiments and private-repo brainstorms on the maintainer's machine circle the idea: repeatable AI work belongs in files, not chats. No public repo, no git history yet.testimony
  2. 2025-11The shape settlesThrough late 2025 the private experiments converge on a declarative file, verbs, and a check-before-run discipline — the pillars the public engine will carry.testimony

The brouillon era (0.1 → 0.79)

10 entries

2026-01-01 → 2026-04-13

The language goes to git — on a branch literally named `brouillon` (draft). 79 minor versions in 103 days: templating, DAG validation, providers, tools, check-before-run. A 138K-line monolith and 192 tags. Seven of those versions ship publicly to crates.io through March. By the end the team knows exactly what the language wants to be — and exactly why the engine must be rebuilt to carry it.

  1. 2026-01-01First commit · « initial nika v0.1 with strict templating system »The language enters git on New Year's Day 2026, 21:29 CET, on the branch named brouillon.private archive
  2. 2026-01-01DAG validation lands, nineteen minutes laterThe second commit of day one already carries the spine: workflows are DAGs, validated before they run.private archive
  3. 2026-03-040.20.0First public release on crates.ioThe brouillon era goes public. The crate is registered and the first version ships — the start of a March trail later yanked in favor of the rewrite, but permanently timestamped.crates.io
  4. 2026-03-050.21.00.21.0crates.io
  5. 2026-03-120.27.00.27.0crates.io
  6. 2026-03-210.35.40.35.4crates.io
  7. 2026-03-220.38.00.38.0crates.io
  8. 2026-03-260.47.1Last crates.io release of the brouillon eraSeven versions ship to crates.io in twenty-two days (0.20.0 → 0.47.1) — the era's public cadence, every date permanent even after the yank.crates.io
  9. 2026-04-05v0.71 · the monolith peaksThe brouillon engine reaches ~138K lines across a single crate. The lesson is complete: the language deserves a cleaner carrier.private archive
  10. 2026-04-13v0.79.3 · the brouillon era closesThe final draft-era version. The branch stays as read-only reference — read via `git show`, never modified — while the rewrite begins the same day.private archive

The Diamond era (the clean language)

14 entries

2026-04-13 → today

A rewrite from scratch on an orphan branch — zero shared history with the brouillon code. Craft, not extraction: every crate re-enters through a 12-gate admission. The version line continues (0.80 picks up where 0.79 stopped) because the LANGUAGE is the continuity; the engine is the rewrite. This is where the specification, the conformance suite, and the standard surfaces are built.

  1. 2026-04-13The rewrite begins · Diamond genesisAn orphan branch is initialized and 0.80.0-alpha tags the same day. Rewrite from scratch — craft, not extraction — 12-gate crate admission from the first line.commit
  2. 2026-04-130.80.0-alpha.1First Diamond tagThe version line continues from 0.79 — the language is the continuity, the engine is the rewrite.release
  3. 2026-05-22The specification becomes its own public reponika-spec is born under Apache-2.0 with a patent grant: five pillars locked (envelope · four verbs · DAG · variables · errors). The spec is the standard surface; the engine is one implementation of it.commit
  4. 2026-05-23The conformance suite is seededDeclarative fixtures (input.yaml + expected.json) and the runner protocol: the machine-checkable definition of the language, runnable by any engine.commit
  5. 2026-06-210.90.00.90 · the usable enginebrew install works; the four verbs, seventeen providers, static check and traces are live. The public can run the language.release
  6. 2026-07-06The registry openssupernovae-st/nika-registry goes public at its root commit: shared workflows, none taken on trust. Every entry is machine re-proven in CI: pinned sha256 · conformance oracle · engine cert.commit
  7. 2026-07-120.100.00.100.0release
  8. 2026-07-17The spec reaches 147 numbered laws · pre-1.0 gate C0 closesEvery normative sentence is a numbered, greppable law; canon.yaml is generated and byte-gated against drift.commit
  9. 2026-07-18Governance gains its one public door (the NEP process)Nobody amends the standard directly, maintainers included. Authority transfer to a technical committee is written down from day one.PR
  10. 2026-07-200.105.00.105.0release
  11. 2026-07-20The standard hardening dayOne day, several merged PRs across engine and spec: least-privilege workflow tokens · SLSA provenance as a release asset · security-insights · the agent-facing surfaces finally tell the standard (llms.txt) · the three mute security classes gain proven fixture pairs (secrets-to-outputs · lethal trifecta · self-launch) · the conformance runner drives ANY engine by command (--engine · 99/99 self-test).PR
  12. 2026-07-20OpenSSF Scorecard reads 7.3Up from 6.5 the same morning (least-privilege tokens + patched dependencies landed). The declared bar: the official 1.0 does not ship below 10/10.· scorecard
  13. 2026-07-20The record itself shipstimeline/timeline.yaml and verify.py land in the spec: the project's history becomes one machine-verified SSOT. Every provable claim is re-proven in CI: push · PR · weekly cron.PR
  14. 2026-07-20Releases earn their front pageRelease notes render from the changelog section: What · Install · Verify · Provenance. Verify carries SHA256SUMS · gh attestation · the SLSA intoto asset.PR

What comes next

8 gates · never dates

Forward motion is expressed as conditions that must hold. A gate flips when its conditions are true, and the timeline gains a dated, proven entry at that moment. No promised dates exist to slip.

  1. gate1.0.0-rc.N · design partners
    • the release-candidate gate is green
    • design partners run real workflows and their feedback rounds land
  2. gateOpenSSF Scorecard 10/10
    • every mechanical check at 10 (token permissions · signed releases · pinned deps · vulnerabilities · SAST)
    • a second reviewer so code-review and branch-protection clear
    • the best-practices badge earned
    The declared pre-condition of the official 1.0.
  3. gateThe contract system · everything carries a contract
    • everything that crosses a boundary carries a contract: types · declared errors · effects · bounds · determinism · protocol
    • every composition is proven, and unknown information stays visible: Unknown is never dressed as success
    • every dynamic verification is attributable, and no capability exercises more authority than its type announces
    The five-law constitution, ratified 2026-07-20 · lands before 1.0.
  4. gateThe Connectome · memory enters the contract
    • the sovereign memory ships whole: the connectome orchestrator and its satellites, admitted through the same 12 gates
    • recall and ingest ship as builtin tools under invoke: never a new verb (the 4 verbs are absolute)
    • the zero-LLM write path holds: memory is written by deterministic code, never by a model's output
    • the store is exportable on open standards, and its digest is pinned in receipts, so recall is replayable
    Lands whole before 1.0 · a declared pre-condition of the official launch.
  5. gateBuilt for a hundred years · the standard's machinery
    • the NEP door is exercised end to end: proposals ratified through it, laws and fixtures landing together
    • the conformance suite speaks in tiers (T0/T1/T2) and any engine proves itself with the public runner
    • every release is archived beyond us: Software Heritage + a citable DOI, the SWHID cited in the spec
    • the compatibility promise is published: what a workflow written today is guaranteed tomorrow
    • the checker is deterministic by construction: same input, same diagnostics, same order, proven in CI
    • succession is written down: named successors, key escrow, the project survives its maintainer
    Lands before 1.0 · a standard is judged by what outlives its author.
  6. gate1.0.0 · the first official launch
    • rc gate green + feedback rounds absorbed
    • real traction, honestly measured
    • a launch crafted to the same bar as the language
    • the Scorecard bar met (10/10)
    • the contract system, the Connectome and the hundred-year machinery land first: 1.0 is the culmination, not the start
  7. gateThe second independent implementation
    • an engine we did not write passes the public suite (Core level) at a pinned spec commit
    • its row lands in CONFORMANT_IMPLEMENTATIONS.md with a reproducible command
    The north metric of the standard track: 0 → 1 → 3.
  8. gate/spec/v1.0.0 · the freeze
    • the grammar refonte lands and its cascade is green
    • the reserve/specify/refuse checklist is fully resolved
    • exit criteria published · six months of zero normative change outside the NEP door proves the freeze

The record grows only at its source: a claim lands in the spec's YAML, CI re-proves it, this page re-renders. The changelog is the exhaustive ship log this record distills, and install puts the engine it describes on your machine. Read the spec →