Skip to main content

Plan

plan is not a dry-run of a deployment. It is an honesty report: it prints the mechanisms that claim a property the platform does not yet have, so that you find out before you depend on one.

The four honesty facts, and what to do about each

These are printed all four or none. A report that prints three is a report a reader will trust for the fourth.

The digests are all null

manifest_digest, applied_digest, snapshot_digest and fence have no storage in this build. They are reported as null rather than as a plausible-looking hash, because a synthesised digest is indistinguishable downstream from a real one — which is exactly what the fence exists to prevent. spend, unpriced_actions, attestation_parity, approvers and declarative_only are empty for the same reason and each carries its own entry in unavailable_because. An empty array here does not mean “none”.

Diagnostics

Findings the platform can compute from real rows — and, explicitly, the ones it cannot. unverified is surfaced as info rather than warn deliberately: it is a correct outcome that an operator must still be able to see.
kinds_not_computable is always present. Four finding kinds exist in the contract and cannot be evaluated here; an empty findings array with no such block would read as “this tenant is healthy” when the truth is “two of six checks ran”. Each finding lists at most 100 refs.