Per-product render cache persisted as .render-cache.json at the
root of build/<product>/. The cache keeps the cache-hit path
byte-identical to the cache-miss path: when the recorded hash for a
skill matches and the output file is still on disk, render leaves
the file alone; otherwise the skill is re-rendered and overwritten.
--update-golden mode. After a normal render, copy every produced
file from <source-root>/build/<product>/<skill-render-dir>/ into
<source-root>/tests/golden/<product>/<skill-render-dir>/expected/.
Typed deserialization for the five Phase 1 manifests living under
<source-root>/manifests/. Every map visible to the Tera context layer
uses IndexMap or [BTreeMap] so render output stays deterministic
across processes (Resolved Decision #9 in
inventory-target-architecture.md).
Per-product render writer. Walks the skills declared for the active
product, renders each via Tera + helpers when its input hash differs
from the recorded cache entry, and writes the output under
<source-root>/build/<product>/. Skills with a cache hit are left
on disk verbatim — the determinism contract guarantees the cache-hit
path is byte-identical to a fresh render of the same source.