Approved truth compiles.
One manifest. One element, structure.brand, a fact in state defined. One target that requires it. The build produces a Compiled Brand Context.
01ApprovedA named role approved the manifest. The approval carries a content hash.
02RequiredThe target declares requiresDefined: structure.brand.
03ReadyThe requirement passes, so the target builds.
04CompiledOne Compiled Brand Context, with a hash that reproduces across runs.
.venv/bin/python -m obds_ref.cli build \
examples/foundation-minimal/manifest.yaml \
examples/foundation-minimal/build-plan.yaml \
--out /tmp/obds-out
Exits 0.
status ready
targetId brand-query-global-en
generationId sha256:6e051b97cd804fee753a1e71ccc695a0a00d936d08b789f8bc193c18e81b1a06
artifactRef generations/6e051b97cd804fee753a1e71ccc695a0a00d936d08b789f8bc193c18e81b1a06/
target-bea1c8bf6e2f0c8c990e7ec685b2f67a98bc8fe1111aaaae278176477cb8f123.context.json
artifactHash sha256:ee526d850ff185f4cadd44dbbd72547de78499284d893e668c7366119a690f0a
requirements structure.brand defined pass
Since 4.0 the file name is a deterministic mapping of the target's canonical identity, not the identity itself, and the artefact lives under its build generation. Do not construct the path from targetId; read artifactRef from the build report.
{
"kind": "obds-compiled-brand-context",
"schemaVersion": "3.0.0",
"targetId": "brand-query-global-en",
"slots": {
"hardBoundaries": "",
"factGrounding": "- `structure.brand` — {\"name\":\"Example Minimal Brand\"}",
"stateMap": "",
"styleTexture": ""
}
}
Excerpt of the produced artefact. Three slots are empty because this manifest declares nothing to put in them. That is the whole Foundation minimum: one element and its value contract.
One element, structure.brand, state defined, with a value contract pinning the shape hash, the schema reference and the schema hash. Foundation, section 26.1.
One target, brand-query-global-en, requiring that element to be defined. Compiled Runtime, section 26.2.
The written walkthrough for both examples, shipped in the release package.