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…"
| Goal | Start here |
|---|---|
| Author my first flag | examples § Ship a boolean kill-switch |
| Roll out a feature to 10% of users | examples § Roll out a feature to 10% + buckets |
| Understand which variant a flag will return | resolution |
| Look up every field in a flag file | 05-flag.md |
| Look up every field in a segment file | 06-segment.md |
Look up every field in namespace.toml | 04-namespace.md |
| Find the right predicate operator | predicates § Quick reference |
| Understand a lint error code | diagnostics |
| Stage a rule before exposing it | examples § Stage a rule with the testing gate |
| Suppress an attribute from telemetry | namespace § private_attributes + examples |
| Push my flag namespace to a server | packaging + exd manifest push |
Pages
Foundations
- directory-layout — File tree, slug rules, key conventions, traversal order.
- schema-versioning — The
schema_versionfield, compatibility rules. - glossary — Vocabulary used across this reference.
File references
Each TOML file you author has a dedicated reference page that documents every field.
- 04-namespace.md —
namespace.toml: slug, environments, telemetry knobs, private attributes. - 05-flag.md —
flags/<flag-key>.toml: metadata, variants, environment blocks, rules. - 06-segment.md —
segments/<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
testingrollout gate. - evaluation-context — Attribute names, types, dotted paths.
Operations
- diagnostics — Every
E-code andW-code, grouped by what file you were editing. - packaging —
tar.gzformat, ignored files, archive limits, optimistic concurrency. - examples — Task-oriented cookbook of common patterns.
Related references
- CLI reference —
exd 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.