Keyboard shortcuts

Press ← or → to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Boruna Versioned Specifications

This directory holds formal, versioned specifications for the surfaces Boruna commits to keeping stable.

Each spec carries a language_version / format_version / schema_version field in its front matter or top-level shape. Implementations against a 1.x spec MUST keep working against any later 1.y (y >= x).

Current specs

SurfaceLatestStatusSprintReader constant
.ax language1.0stableW1-Bboruna_compiler::LANGUAGE_VERSION
Bytecode format1.0stableW9-Aboruna_bytecode::BYTECODE_VERSION
Evidence bundle format1.0stableW1-Cboruna_orchestrator::BUNDLE_FORMAT_VERSION
Workflow DAG schema1.0stableW4boruna_orchestrator::WORKFLOW_DAG_SCHEMA_VERSION

The narrative companion to the bytecode spec lives at docs/bytecode-spec.md; the formal spec at bytecode-1.0.md wins on any disagreement.

Authoring rules

  1. Specs are prescriptive, not descriptive. They are the authority. Reference docs (under docs/reference/) and concept docs (under docs/concepts/) are interpretive.
  2. Each spec MUST declare its version, status, and last-revised date in YAML front matter.
  3. Each spec MUST include a backwards-compatibility commitment for its current major line.
  4. Once a spec at version M.N is shipped in a release tag, it is frozen. Corrections that change behavior require bumping to M.(N+1) (additive) or (M+1).0 (breaking).
  5. Frozen specs MAY be edited only for clarifications that do not change observable conformance — typo fixes, wording, examples.

Versioning policy

MAJOR.MINOR decimal:

  • Major bump (1.0 → 2.0) — breaking change. A 1.x program may stop working.
  • Minor bump (1.0 → 1.1) — additive only. Every 1.0 program still works.

There is no patch version on specs; clarifying edits keep the same minor.

Reader contract

  • Hard reject across a major. A reader built for N.x MUST refuse N+1.0 documents with a typed Unsupported*Version error rather than guess.
  • Forward-compat within a major. A reader built for N.x MUST accept N.y documents (y >= x) and silently ignore unknown additive fields.
  • Replay invariant. Versions feed into the canonical-JSON serialization that produces workflow_hash/bundle hashes, binding evidence to a specific schema generation.