This roadmap is the current release schedule for Edict. GitHub milestones and issues are the operational trackers; this file is the human-readable release plan that keeps those artifacts visible from the repository.
Dates are target dates, not promises. A release can move, but the GitHub milestone and this roadmap must move together.
Every release cut must satisfy these gates on the release commit:
cargo xtask verifypasses locally.- The available GitHub Actions checks for
mainare green. - Publication is triggered by pushing a
v*tag whose target commit is reachable fromorigin/main; release tags must not target unmerged branch commits. CHANGELOG.mdhas a dated section for the release.- The GitHub milestone has no open issue that blocks the release scope.
- Release notes state exactly what the release claims and what it does not claim.
- No target, Core, admission, or bundle-integrity claim is made before the release that owns the corresponding contract.
- No canonical digest is frozen from a paper encoding plan. Meaning freezes before bytes; bytes freeze before hashes; hashes freeze before admission.
The crate remains publish = false until package policy and API stability are
deliberately changed.
Milestone: Provider Artifact Pipeline Alpha
Goalpost: #138
Completed frontier issues: #139, #140, #145, #146, #148
Current frontier issue: #147 under #141
Release labels: release:lawpacks, release:target-profiles,
release:target-ir, release:bundles
Scope:
- Provider manifest and provenance vocabulary for generated lawpack, target-profile, authority-facts, provider-manifest, review, and generated artifact-profile entries.
- Provider-owned lowerer and verifier component role declarations.
- Digest-locked generated semantic-source and generator provenance.
- Generic envelope validation before any WIT provider host or runtime-specific provider implementation.
- Explicit in-process Echo and git-warp lowerer compatibility adapters with direct-path Target IR byte/digest and bundle-identity parity evidence.
- A parser-checked
edict:target-provider@1.0.0WIT envelope with explicit protocol versions, digest-bound inputs, authority-separated lowerer/verifier output roles, optional logical paths, typed refusal, deterministic response limits, and host-computed output identity. - Pure validation of host-authored lowerer/verifier input contracts and WIT-shaped requests/results, including an explicitly injected deterministic owning-schema capability, canonical domain-bound digests, exact role/path/diagnostic contracts, response limits, limit independence, and sealed all-or-nothing host output manifests.
- Capability-denied component invocation with deterministic replay, stable mismatch identity, failure recovery, concurrency isolation, named ambient capability denial, and reviewed Target IR parity across processes.
Exit gates:
- #139, #140, #141, and #142 land or have reviewed scope splits.
- Existing in-tree target lowering can be represented through provider-shaped wrappers without changing Target IR canonical bytes or semantic bundle identity.
- WIT provider hosting passes only explicit, digest-locked inputs to provider components and validates returned envelopes before bundle assembly.
- Echo-owned provider implementation issues exist once the Edict provider ABI is concrete enough to scope them accurately.
Non-goals:
- No Echo-specific lawpack semantics in Edict.
- No Wesley execution or lawpack generation inside Edict.
- No runtime execution.
- No admission or registration.
- No provider filesystem or network discovery.
Target date: 2026-06-24
Milestone: v0.1.0-alpha.1
Primary issue: #16
Release labels: release:front-end
Scope:
- Phase 1
edict-syntaxlexer/parser for the landed source-AST subset. - Phase 2 source-AST semantic validation through
SEMVAL-REQ-007. - Syntax and semantic-validation topic shelves.
- Local contract-graph verification through
cargo xtask verify.
Exit gates:
- #16 release checklist is complete.
- Version policy for
v0.1.0-alpha.1is explicit. CHANGELOG.mdhas a datedv0.1.0-alpha.1section.- The release notes say this is a front-end milestone only.
Non-goals:
- No crates.io publish.
- No Core IR lowering.
- No canonical Core hash goldens.
- No target lowerers or admission tooling.
Target date: 2026-07-01
Milestone: v0.2.0-alpha.1
Primary issues: #3, #19
Release labels: release:core-ir
Scope:
- Core semantic algebra and invariants: expressions, predicates, types, blocks/nodes, input constraints, and local-reference normalization.
- Normative
edict.core/v1CDDL/schema validation for that algebra. - Topic shelf and test-plan evidence for what is normative versus scaffolding.
Exit gates:
- #3 and #19 land or have reviewed release-scope splits.
- Core meaning and schema boundaries are documented.
- Release notes explicitly state that no canonical bytes or digests are frozen.
Non-goals:
- No source-to-Core compiler spine.
- No canonical encoder.
- No golden bytes.
- No exact Core digests.
Target date: 2026-07-15
Milestone: v0.3.0-alpha.1
Primary issues: #10, #20, #21, #22
Release prep issue: #35
Release labels: release:semantic-validation, release:compiler-spine,
release:core-ir
Scope:
-
Keep source/surface validation, resolution, typing, Core lowering, and canonicalization as explicit compiler stages:
parse -> validate_surface -> resolve -> type_check -> lower_core -> canonicalize -
First executable resolver and typed representation boundary.
-
Source-to-Core lowering for the initial executable subset.
-
Reference canonical encoder.
-
First reviewed Core golden bytes and exact digest fixtures.
-
Release notes, changelog, and reusable release runbook for the compiler-spine alpha.
Exit gates:
- #10, #20, #21, #22, and #35 land or have reviewed release-scope splits.
- Tests prove the stage boundaries do not collapse into one semantic pass.
- Golden Core bytes are produced by an executable encoder, not a prose plan.
- Golden tests cover alpha-renaming invariance where applicable, map-order independence, encode/decode stability, mutation sensitivity, and platform independence.
Non-goals:
- No target lowering.
- No bundle/admission claim.
Target date: 2026-07-29
Milestone: v0.4.0-alpha.1
Primary issues: #1, #5
Release prep issue: #39
Release labels: release:admission, release:lowerability
Scope:
- Runtime-neutral target-profile and assurance flow.
- Direct-only v1 target adaptation facts.
- Typed
LoweringRequirementscontract and fixture-driven explanation model. - Typed participant-neutral contract bundle and assurance evidence manifest validation.
edict explain lowerabilityand profile check-requirements surface, if the CLI boundary is ready.
Exit gates:
- #1, #5, and #39 land or have reviewed release-scope splits.
- The release reconciles lowerability with the v1 direct-adapter rule.
- Any bundled assurance evidence is hash-bound to the selected bundle subject, target profile, and target IR.
- Any
compositeor chained-adapter behavior is explicitly deferred tov2-design. - Lowerability output is documented as a contract or explicitly marked experimental.
Target date: 2026-08-12
Milestone: v0.5.0-alpha.1
Primary issues: #6, #11
Release issue: #42
Release labels: release:admission
Scope:
- Edict-owned Continuum participation boundary.
- Gate C artifact admission contract and evidence expectations.
- Typed Gate C admission-boundary checks for bundle subject, operation requirements, receipts, and invocation capability evidence.
- Bundle/admission fixtures that consume compiler-spine artifacts rather than paper-only sketches.
Exit gates:
- #6, #11, and #42 land or have reviewed release-scope splits.
- Admission claims are backed by fixtures, schema, or topic-shelf evidence.
- Release notes distinguish Edict-owned artifacts from Continuum-owned participant policy.
Target date: 2026-08-26
Milestone: v0.6.0-alpha.1
Primary issue: #7
Release issue: #50
Release labels: release:developer-tools
Scope:
- Editor-facing lexical highlighting roles that editor adapters can consume before full grammar packages land.
- Tree-sitter grammar source, generated parser source, highlight query, and current-subset corpus for the accepted fixture families.
- TextMate grammar artifact for
.edictlexical scopes in TextMate-compatible editors. - Thin VS Code/Cursor extension package wrapping the TextMate grammar.
- Differential grammar fixture path after the compiler/Core spine stabilizes beyond the current Tree-sitter corpus.
- Tooling documentation for VS Code, Vim, Zed, jedit, or the first supported subset.
Exit gates:
- #7 and #50 land or have reviewed release-scope splits.
- Highlighting roles are backed by deterministic fixtures before editor adapters consume them.
- Tree-sitter grammar fixtures are deterministic, versioned with the source grammar, and aligned with the reference parser.
- TextMate grammar scopes are backed by executable checks against public highlighter roles.
- The VS Code/Cursor package registers
.edictfiles and uses the canonical TextMate grammar artifact. - The release notes identify exactly which editor integrations are supported.
Target date: 2026-09-09
Status: published
Milestone: v0.7.0-alpha.1 (#8)
Primary issues: #59 (closed)
Release: https://github.com/flyingrobots/edict/releases/tag/v0.7.0-alpha.1
Tag: v0.7.0-alpha.1 peels to
6f9c731b4f36d3283dcb448b14761832ab916b07.
Release labels: release:authority-facts, release:compiler-spine,
release:lawpacks, release:target-profiles
Scope:
- File-backed authority-facts loading for the first compiler facts the
in-memory
CompilerContextalready models. - Deterministic loading of operation profiles, profile write-class allowances,
effect write classes, and budgets from digest-bound
lawpackandtargetProfilesource identities. - Executable harness that proves the compiler path consumes loaded facts rather than caller-constructed memory fixtures.
- Stable load failure kinds for missing, malformed, non-digest-locked, invalid, or conflicting authority facts.
- A non-topic Authority Fact Governance design note that identifies fact classes, provenance questions, review boundaries, and the later trusted-authorship alpha scope.
Exit gates:
- Compiler-spine profile/effect compatibility tests cover file-backed fact input, not only caller-supplied context. Met by PR #57.
- Authority-facts fixtures cover accepted and rejected lawpack and target-profile source identities for the first compiler fact set. Met by PR #57.
- The loaded-fact harness is deterministic and does not fetch registries or mutate dependency state. Met by PR #57.
docs/design/authority-fact-governance.mdcaptures the trusted-authorship questions opened by this release without claiming implemented workflow. Met by PR #56.
Non-goals:
- No trusted lawpack or target-profile authorship workflow.
- No full lawpack or target-profile manifest loading.
- No obstruction, obligation, adapter, footprint, cost, or target-capability corpus loading.
- No global registry, trust root, identity system, or revocation model.
- No target IR generation.
- No full effectful source lowering.
- No admission execution workflow.
- No crates.io publication.
Target date: 2026-09-23
Status: published
Milestone: v0.8.0-alpha.1 (#9)
Primary issue: #62 (closed)
Release: https://github.com/flyingrobots/edict/releases/tag/v0.8.0-alpha.1
Tag: v0.8.0-alpha.1 peels to
c6a166ccea0fcb61fff9b8d76bfb5d51d613e2eb.
Release labels: release:compiler-spine, release:semantic-validation,
release:core-ir
Scope:
- One annotated effectful
let ... elsesource shape lowered through the compiler spine into typed Core. - Stable Core representation for semantic effect nodes and obstruction arms.
- Deterministic obstruction mapping and source-order-stable obstruction binders for the supported subset.
- Profile, budget, profile write-class, and effect write-class checks wired to file-backed authority facts where v0.7 made those facts available.
- Boundary rejections for effectful branch-yield, chained effect calls, typed effect calls, and duplicate obstruction failure keys before Core lowering.
Exit gates:
- At least one effectful intent compiles from source through typed Core with deterministic fixtures. Met by PR #63.
- Unsupported effectful forms fail with stable diagnostics before lowering. Met by PR #63.
- Existing pure Core golden behavior remains unchanged except for intentional,
reviewed schema or canonicalization changes. Met by PR #63 and checked during
release prep with
cargo xtask core-goldens --check. - Release notes and structured release policy record the explicit non-goals.
Non-goals:
- No target IR generation.
- No target-runtime execution.
- No adapter composition.
- No public CLI.
- No admission execution workflow.
- No lawpack governance implementation.
- No crates.io publication.
Target date: 2026-10-07
Status: published
Milestone: v0.9.0-alpha.1 (#10)
Primary issues: #66, #68, #70 (closed)
Release: https://github.com/flyingrobots/edict/releases/tag/v0.9.0-alpha.1
Tag: v0.9.0-alpha.1 peels to
81bacc5a240bd3ea50af934a3611ce6b3f505043.
Release labels: release:target-ir, release:lowerability,
release:target-profiles
Scope:
- First target-specific IRs for two deliberately narrow runtime profiles:
echo.dpo@1lowering toecho.span-ir/v1, andgitwarp.ref_crdt@1lowering togitwarp.commit-reducer-ir/v1. - Lowerability evidence that connects accepted Core obligations to the selected target IR artifact.
- Structured target-lowering diagnostics for unsupported Core obligations.
- Explicit preservation of Core input constraints, evaluation budgets, effect inputs, effect result bindings, obstruction arms, and result expressions in the selected Target IR review artifact.
Exit gates:
- One source intent can compile to Core and lower to a concrete target IR artifact for the selected Echo or git-warp profile.
- Lowerability evidence and target IR generation agree on the same fact set.
- Unsupported target features fail loudly rather than falling back silently.
Non-goals:
- No general target-lowering framework.
- No runtime execution guarantee.
- No git-warp commit object creation or CRDT reducer verification.
- No canonical Target IR bytes or digests.
- No bundle or admission generation.
- No public CLI.
- No v2 chained or composite adapter resolution.
Target date: 2026-10-21
Status: published
Milestone: v0.10.0-alpha.1 (#11)
Primary issues: #75, #76 (closed)
Release: https://github.com/flyingrobots/edict/releases/tag/v0.10.0-alpha.1
Tag: v0.10.0-alpha.1 peels to
622834138af249e70d717d6b7a940e4b01e23f4d.
Release labels: release:cli, release:developer-tools,
release:compiler-spine
Scope:
- Public
edictCLI boundary for the firstcheckworkflow. - JSONL request records on stdin for compiler settings, inline source, file paths, directories, ordered path lists, and glob patterns.
- JSONL-only stdout and stderr records for success results, structured diagnostics, and terminal status events.
- Checked compiler-settings JSON Schema for
edict.compiler.settings/v1. - Golden CLI fixtures for success, compiler rejection, CLI-input rejection, and deterministic input expansion paths.
Exit gates:
- CLI tests assert output semantics through stable structured artifacts, not incidental wording.
- CLI commands do not depend on ambient repo layout beyond explicit input paths.
- README and topic shelves describe only supported commands.
Non-goals:
- No compile, lower, explain, bundle, or admission command workflows.
- No human-pretty output mode.
- No full language server.
- No marketplace packaging.
- No participant policy execution.
Target date: 2026-11-04
Status: published
Milestone: v0.11.0-alpha.1 (#12)
Primary issues: #105, #106, #109
Release: https://github.com/flyingrobots/edict/releases/tag/v0.11.0-alpha.1
Tag: v0.11.0-alpha.1 peels to
3eb71f6127e31b68ea4e0bb766623930ce24ae46.
Release labels: release:bundles, release:target-ir
Scope:
- Bundle assembly from a real Core module and digest-locked artifact graph, computing semantic and release bundle digests from the reviewed v0.11 preimage shapes.
- Reviewed semantic/release bundle digest goldens regenerated by
xtask. - Canonical Target IR artifact value model, canonical CBOR bytes, and
edict.target-ir.artifact/v1digest frame for the current Echo and git-warp review artifacts. - Reviewed Echo and git-warp Target IR byte/digest goldens regenerated by
xtask. - Bundle assembly from a real
TargetIrArtifact, with computedtargetIrDigestas the single source of truth for the manifest and semantic preimage.
Exit gates:
- The bundle assembler computes Core digest from the real
CoreModule. - The Target IR canonicalizer emits deterministic bytes and digest review strings for Echo and git-warp artifacts.
- Bundle validation consumes the assembled artifact, not only hand-written bundle fixtures.
- Mutation tests prove the semantic/release bundle digest split and Target IR digest sensitivity.
cargo xtask verifychecks Core, Target IR, and bundle goldens.
Non-goals:
- Target runtime execution.
- Participant-specific admission execution, participant policy evaluation, identity, delegation, or revocation logic.
- Echo verifier completeness.
- git-warp commit object creation.
- git-warp CRDT reducer verification.
- General target plugin dispatch.
- Additional target profiles beyond the current Echo and git-warp review artifacts.
- Extra source-to-target fixtures beyond the currently supported compiler spine.
- Canonical
ContractBundleManifestbytes.
Target date: TBD
Planned milestone: v0.12.0-alpha.1
Primary issues: TBD
Release labels: release:admission, release:bundles
Scope:
- End-to-end Edict-owned admission workflow harness over the assembled bundle slice.
- Admission request, receipt, operation requirement, and invocation evidence generated or validated from the same bundle graph.
- Structured failure cases for missing capability evidence, hidden inputs, mismatched participants, stale receipts, and unsupported operation requests.
Exit gates:
- One bundle can travel through the Edict-owned admission-boundary harness.
- The harness remains participant-neutral and does not implement Continuum trust policy.
- Admission evidence is digest-bound to the same bundle subject that the compiler and assembler produced.
Non-goals:
- No Continuum participant policy, identity, delegation, or revocation.
- No runtime execution.
- No global admission service.
Target date: TBD
Planned milestone: v0.13.0-alpha.1
Primary issues: TBD
Release labels: release:authority-governance, release:authority-facts,
release:lawpacks, release:target-profiles
Scope:
- Lawpack authoring manifest shape.
- Target-profile authoring manifest shape.
- Author, reviewer, and provenance fields for authority facts.
- Review digest binding.
- Changelog or revision-history field for fact changes.
- Stable validation errors for missing author provenance, missing reviewer provenance, unsigned or digest-unbound review evidence, fact changes without revision notes, write-class changes without explicit review markers, conflicting effect ownership, and stale lawpack/target-profile compatibility.
- Fixture corpus for accepted reviewed lawpacks, rejected unreviewed lawpacks, rejected conflicting lawpacks, accepted reviewed revisions, and rejected silent write-class changes.
- CLI support for
edict lawpack check,edict lawpack diff,edict target-profile check, andedict authority explain. - Optional authority nutrition label for lawpacks and target profiles if the structured fields are stable enough.
Exit gates:
- Trusted-authorship validation is executable and fixture-backed.
- Provenance validation is digest-bound and does not depend on prose review claims.
- Conflicting or silently revised authority facts fail loudly with stable structured diagnostics.
- The Edict/Continuum boundary is explicit: Edict validates provenance shape and evidence binding; Continuum and participants decide acceptance policy.
Non-goals:
- No global registry.
- No public trust root.
- No legal identity model.
- No distributed revocation.
- No Continuum participant policy.
- No HOLMES, Watson, or Moriarty implementation.
Target date: TBD
Planned milestone: v0.14.0-alpha.1
Primary issues: TBD
Release labels: release:publication, release:developer-tools
Scope:
- Deliberate crates.io publication policy for workspace crates.
- Package metadata, license, README, and API-stability review for any crate proposed for publication.
- Semver and alpha-versioning rules that distinguish specification maturity from public API stability.
- Reproducible package dry-run or pack verification for publishable crates.
Exit gates:
- Any crate flipped from
publish = falsehas an explicit policy rationale. - Publication docs distinguish crate availability from v1 language stability.
- Release automation and manual runbooks agree on publish and no-publish paths.
Non-goals:
- No promise of stable v1 API.
- No publishing without an explicit release decision.
Target date: TBD
Planned milestone: v0.15.0-alpha.1
Primary issues: TBD
Release labels: release:lsp, release:developer-tools,
release:semantic-validation
Scope:
- First language-server semantic diagnostics over parser and compiler-spine structured errors.
- Editor-facing diagnostics that reuse CLI/compiler diagnostic kinds rather than inventing editor-only semantics.
- Fixture-backed diagnostic ranges and severity mapping for the supported source subset.
Exit gates:
- LSP diagnostics are deterministic and asserted through structured artifacts.
- Editor diagnostics reflect compiler truth and do not overclaim unsupported lowering, target IR, bundle, or admission behavior.
- Existing syntax-highlighting surfaces keep their current fixture contract.
Non-goals:
- No full formatter.
- No code actions unless backed by structured diagnostics and deterministic edits.
- No marketplace publication unless v0.14 policy already permits it.
Edict's file-backed fact model creates a new trust surface. Once lawpacks and target profiles can supply operation profiles, budgets, write classes, effect facts, obligations, adapter facts, and target capabilities, the project must define how those facts are authored, reviewed, revised, audited, and trusted.
This track does not block v0.7.0-alpha.1 fact loading, but it must begin with
that release. The initial design output is a non-topic design note, not a
current-truth topic README:
docs/design/authority-fact-governance.md.
Open questions:
- Who authors a lawpack?
- Who reviews effect write-class claims?
- What evidence supports an effect classification?
- How are target-profile capability claims reviewed?
- How are lawpack and target-profile revisions recorded?
- How are write-class changes detected and explained?
- How are conflicting fact owners rejected or selected?
- Which provenance checks belong to Edict, and which acceptance decisions belong to Continuum or participants?
Edict owns deterministic validation of fact provenance, digest binding, review references, and artifact shape. Continuum and participants own trust policy, identity, delegation, revocation, and acceptance decisions.
Milestone: Typed External Requests (#17)
Primary issue: #172
Roadmap label: roadmap-a1
This cross-repository track follows Echo's durable external-action protocol and precedes Hello Echo's first bounded workspace observation:
Echo #694 durable request and settlement protocol
-> Edict #172 typed request values
-> Hello Echo #10 observed workspace settlement proof
Edict owns deterministic request construction, exact operation/schema/law identity, capability closure, and non-callable Core/Target IR representation. Echo owns request admission, durability, adapter coordination, settlement, recovery, and replay. Adapters alone own external authority.
The milestone closes when request source, Core, Target IR, canonical identity, negative authority cases, and provider-seam non-authority are implemented and validated. It does not add direct I/O, general algebraic effects, native stack suspension, writable model authority, or the autonomous delivery loop.
Milestone: v2-design
Primary issue: #4
Release labels: release:v2-design
Scope:
- Adapter composition and obligation-closure resolution design, tracked as a
future design note in
docs/design/v2-obligation-closure.mdwith current HEAD boundaries indocs/topics/v2-design/. - Future work that must not block the v0.x alpha release train.
This track has no release date until the v1 foundation is stable enough for the design to stop moving underneath it.
Milestones:
v0.1.0-alpha.1: #16v0.2.0-alpha.1: #3, #19, #28v0.3.0-alpha.1: #10, #20, #21, #22v0.4.0-alpha.1: #1, #5, #39v0.5.0-alpha.1: #6, #11, #42v0.6.0-alpha.1: #7, #50v0.7.0-alpha.1: #59v0.8.0-alpha.1: #62v0.9.0-alpha.1: #10, #66, #68, #70v0.10.0-alpha.1: #11, #75, #76v0.11.0-alpha.1: #12, #105, #106, #109v0.12.0-alpha.1: planned, issues TBDv0.13.0-alpha.1: planned, issues TBDv0.14.0-alpha.1: planned, issues TBDv0.15.0-alpha.1: planned, issues TBDTyped External Requests: #172v2-design: #4
Alpha-train release labels:
release:front-endrelease:core-irrelease:semantic-validationrelease:compiler-spinerelease:lowerabilityrelease:admissionrelease:developer-toolsrelease:authority-factsrelease:target-irrelease:clirelease:bundlesrelease:authority-governancerelease:lawpacksrelease:target-profilesrelease:publicationrelease:lsprelease:v2-design
Related cross-repo label retained on #11:
release:continuum-stack
- Topic shelves remain current-truth documents for landed subsystems.
- Release issues carry operational checklists for cutting tags and notes.
- Historical RFCs, decisions, and retrospectives do not become current release truth unless their still-relevant content is folded into a topic shelf or this roadmap.
- If a target date changes, update the GitHub milestone and this file in the same change.
- If a release-scope issue splits, move the new issues into the same milestone or explicitly document the deferral here.