Claim 9: Unchanged is free
Re-planning an estate that did not change should not cost a full
re-read of it, and here it does not. On the -refresh=false path, an
instance the run can vouch for is served from the state cache and its
wire reads are never made - the bill is measured live, in the run’s own
debug stream. The whole pass answers to one estate-level argument:
reads = "full" in the live block turns it off (CHOUDOUFU_READS
overrides per run), and turning it off may change the price but never
the plan. For record-backed resources the attestation is the record
itself, on every default plan, with nothing opted into.
Clone https://github.com/INTENTIUS/choudoufu. Confirm Docker is running
(docker info) and the AWS CLI is installed. If Go is not installed,
export CHOUDOUFU_VERSION=<latest tag from
https://github.com/INTENTIUS/choudoufu/releases>. From the repo root run:
just smoke unchanged-is-free
Explain each step's verdict line to me as it prints. Then run
BREAK=1 just smoke unchanged-is-free and report the "caught" line: it
overwrites a record with garbage, and the run must refuse by name
rather than plan against made-up values.
The steps as they print:
stand the estate up- an estate and a fresh cache, nothing changed since.the free re-plan, and the argument that refuses it- the same-refresh=falseplan runs under the default policy and again underCHOUDOUFU_READS=full. Selective serves the vouched instances and the request count drops; full serves nothing and pays every read; the two outputs must not differ by a byte. The toggle prices the plan, never changes it.teardown the cloud estate.the record-backed half - the record is the attestation- aterraform_data’s record is edited behind the tool’s back, and the next default plan surfaces the named reconvergence (~ input). The record is not a cache of the values; it is the values.
The BREAK=1 run overwrites the record with garbage. The run must fail
with the record refusal, naming the exact address - a store that cannot
answer never improvises. Default plans are untouched by all of this:
they read fully under either policy, because the read is drift
detection (claim 3 pins that forever).