complete draft. all claims are scoped to the repository at commit 359e492
(v0.5.1). no version 1.0 exists and none is claimed; no v0.6 roadmap is invented. this post
defines the criteria the series has been building toward, against the evidence the earlier
posts recorded.
a version number is a promise about what other people can build on top of.
the v0.1 changelog is blunt about what its version number means: the Rust experiment API is
explicitly unstable, and the v0.2 activation-artifact schema carries no compatibility guarantee
(CHANGELOG.md). that was the right posture for a research engine discovering its
own shape. it is the wrong posture for the thing this series has been describing, a workflow
that a researcher who never reads Rust can run and verify, with artifact schemas that must
survive transport and time.
the series has argued, post by post, that Ember's real output is contracts: hook sites with defined semantics, artifacts with defined layouts, specifications that resolve deterministically. this post asks what those contracts have to become before the version number can honestly say 1.0.
the criteria, stated as commitments rather than features:
ember.experiment.v1 stops meaning
"v1 within 0.5.x".ember.bundle.v1 artifacts remain
verifiable by future binaries.ember.hook.v1).examples/experiments/ already does this).docs/validation.md is
current, and "supported" never silently means "golden-validated".
four versioned contracts are in place (docs/v05-research-contract.md): the
experiment specification (ember.experiment.v1), the bundle
(ember.bundle.v1), the semantic hook descriptor table (ember.hook.v1),
and the execution plan (v04-plan/1). the compatibility policy is written down:
unknown schema majors fail closed; a newer minor with only optional recognized-compatible
fields is tolerated; and the policy is explicit that "v1 means stable within Ember 0.5.x, not
that every future field is frozen forever" (contract section 17).
that last clause is the honest statement of where the project is: the schemas are versioned and fail-closed, but the versions are still the project's own. a 1.0 release is when the contract stops being a statement about the project and becomes a statement about everyone who built on it.
| criterion | status at v0.5.1 | evidence |
|---|---|---|
| stable experiment schema | partial, v1 is stable within 0.5.x only; unknown majors fail | docs/v05-research-contract.md §17 |
| stable bundle schema | partial, same scope | docs/v05-research-contract.md §17 |
| stable hook meanings | mostly, frozen descriptor table; still 0.x-scoped | docs/v05-research-contract.md §1 |
| compatibility/migration policy | exists for schemas; no migration tooling yet | docs/v05-research-contract.md §17 |
| clean installation | partial, build + scripts/download_models.sh documented; no packaged install | README.md; scripts/download_models.sh |
| reproducible examples | yes, pinned model/tokenizer SHA-256s, verified workflow | examples/experiments/README.md |
| clear validation status | yes as a document; several rows still pending (Qwen3 golden, Gemma 4 numerical, activation-reference checks) | docs/validation.md status table |
| one successful external user | criterion, not a claim | , |
| no major redesign | promising but unproven, v0.2 CLI flags still work on the v0.5 binary; the Rust experiment API stabilized only in v0.5 | CHANGELOG.md v0.5 compatibility section |
read honestly: six of the nine are only partially met, two are met, and the one that matters most for external trust, a researcher outside the project who has run and verified an experiment, is the one not yet earned. that is the point of the list: 1.0 is defined by what other people can rely on, and the series ends where that definition stops being a wish.
building an inference engine that gets faster without becoming harder to trust. every post in this series was one answer to one half of that sentence: v0.1 made the engine legible, v0.2 made it intervenable, v0.3 kept quantized weights honest, v0.4 planned execution without hiding tensors, v0.5 made the experiment verifiable, and the null result made the instruments earn their keep. 1.0 is the point where the trust stops being the author's claim and becomes a contract other people build on. nothing in this post makes that happen; it only says what must, and in what order.