Skip to main content

Manifest reference

The exd manifest is the on-disk TOML file tree that describes one flag namespace — its flags, its segments, and the per-environment configuration that drives evaluation. This reference is the documentation for everything inside that file tree, and it is normative: every lint diagnostic and every evaluation behavior in the SDK is anchored to a section in this tree. The test plan at testplan/ inverts it case-for-case.


Mental model

A flag namespace is a directory. The directory contains:

  • An optional namespace.toml (the namespace descriptor).
  • A flags/ directory with one TOML file per flag: flags/<flag-key>.toml.
  • An optional segments/ directory with one TOML file per segment: segments/<segment-key>.toml.

The smallest valid flag namespace is a directory containing one flags/<key>.toml. Everything else — namespace.toml, segments/, the environment list, per-env flag blocks — is scaffolding that earns its place as the flag namespace grows.

Variant selection is per-environment-complete: every flag declares a mandatory catch-all environment block [flag.environments._] plus zero or more named environment blocks. The evaluation engine walks a four-step algorithm to pick the variant for a given (flag, env, context) triple. See resolution.


"I want to…"

GoalStart here
Author my first flagexamples § Ship a boolean kill-switch
Roll out a feature to 10% of usersexamples § Roll out a feature to 10% + buckets
Understand which variant a flag will returnresolution
Look up every field in a flag file05-flag.md
Look up every field in a segment file06-segment.md
Look up every field in namespace.toml04-namespace.md
Find the right predicate operatorpredicates § Quick reference
Understand a lint error codediagnostics
Stage a rule before exposing itexamples § Stage a rule with the testing gate
Suppress an attribute from telemetrynamespace § private_attributes + examples
Push my flag namespace to a serverpackaging + exd manifest push

Pages

Foundations

File references

Each TOML file you author has a dedicated reference page that documents every field.

  • 04-namespace.mdnamespace.toml: slug, environments, telemetry knobs, private attributes.
  • 05-flag.mdflags/<flag-key>.toml: metadata, variants, environment blocks, rules.
  • 06-segment.mdsegments/<segment-key>.toml: predicate, bucket, predicate+bucket hybrid.

Concepts

  • predicates — Operator vocabulary, evaluation semantics, segment references.
  • buckets — Hash algorithm, salts, ranges, entity_id_attribute.
  • resolution — The four-step algorithm with worked examples and the testing rollout gate.
  • evaluation-context — Attribute names, types, dotted paths.

Operations

  • diagnostics — Every E-code and W-code, grouped by what file you were editing.
  • packagingtar.gz format, ignored files, archive limits, optimistic concurrency.
  • examples — Task-oriented cookbook of common patterns.

  • CLI referenceexd lint, exd eval, exd explain, exd fixtures, exd schema, exd manifest push|pull|versions.
  • Evaluation parity — The cross-runtime evaluation parity fixture format (implementer-facing).
  • Server API — HTTP endpoints for uploading and downloading flag namespaces.
  • Telemetry record schema — What the SDK writes for each evaluation.

Status

This reference covers manifest schema version 0.1 (pre-stable). The 0.x line is iterating; the first stable wire-format major will be 1.0. See schema-versioning for the compatibility model.