AGPL-3.0-or-later · forever.

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.

Source of truth · timeline/timeline.yaml · verified by verify.py

exploration · private
brouillon · 0.1 → 0.79
diamond · rewritten from scratch
today
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
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-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
2026-03-050.21.00.21.0crates.io
2026-03-120.27.00.27.0crates.io
2026-03-210.35.40.35.4crates.io
2026-03-220.38.00.38.0crates.io
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
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
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-130.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-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
2026-07-120.100.00.100.0release
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-200.105.00.105.0release
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
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
gate1.0.0 · the first official launch
  • rc gate green + feedback rounds absorbed
  • real traction, honestly measured
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
gateThe Connectome era
  • 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.

  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)

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)

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-120.100.00.100.0release
  7. 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
  8. 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
  9. 2026-07-200.105.00.105.0release
  10. 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
  11. 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.

  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. 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)
  4. 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.
  5. 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
  6. gateThe Connectome era
    • opens after 1.0 · un-numbered until declared