the timeline
The one verifiable record
Three eras, one continuous version line. 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.
0.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.io0.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.io0.80.0-alpha.1First Diamond tagThe version line continues from 0.79 — the language is the continuity, the engine is the rewrite.✓ release0.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- the release-candidate gate is green
- design partners run real workflows and their feedback rounds land
- every mechanical check at 10 (token permissions · signed releases · pinned deps · vulnerabilities · SAST)
- a second reviewer so code-review and branch-protection clear
- …
- rc gate green + feedback rounds absorbed
- real traction, honestly measured
- …
- 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 grammar refonte lands and its cascade is green
- the reserve/specify/refuse checklist is fully resolved
- …
- opens after 1.0 · un-numbered until declared
Exploration
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.
- 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
- 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)
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.
- 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
- 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
- 2026-03-04
0.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 - 2026-03-05
0.21.00.21.0✓ crates.io - 2026-03-12
0.27.00.27.0✓ crates.io - 2026-03-21
0.35.40.35.4✓ crates.io - 2026-03-22
0.38.00.38.0✓ crates.io - 2026-03-26
0.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 - 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
- 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)
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.
- 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
- 2026-04-13
0.80.0-alpha.1First Diamond tagThe version line continues from 0.79 — the language is the continuity, the engine is the rewrite.✓ release - 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
- 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
- 2026-06-21
0.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 - 2026-07-12
0.100.00.100.0✓ release - 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
- 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
- 2026-07-20
0.105.00.105.0✓ release - 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
- 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
What comes next — 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.
- gate1.0.0-rc.N · design partners
- the release-candidate gate is green
- design partners run real workflows and their feedback rounds land
- 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
- 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)
- 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
- 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
- gateThe Connectome era
- opens after 1.0 · un-numbered until declared