State Envelopes: Complete, Partial, and Empty
The three states of the Graceful Truth Layer are not error codes. They are honest declarations of what the system computed, what it partially computed, and what it could not compute at all.
The Graceful Truth Layer defines exactly three valid states for any data response. Not two (success/failure), not five (loading, success, partial, error, empty), but three, each with a precise meaning that any consumer can act on without ambiguity.
"complete" — The System Computed Everything It Was Asked To
A complete state means every sub-computation succeeded, every data dependency was available, and the output is fully authoritative for the declared timestamp. A consumer receiving state: "complete" can trust the data without qualification. Complete does not mean "no issues were found" — it means the analysis itself ran fully.
"partial" — Some Computation Succeeded, Some Did Not
A partial state means the system attempted the full computation but one or more sub-tasks failed, were skipped due to missing dependencies, or produced inconclusive results. The data field still contains real output — the output that did succeed. The reason field lists what was excluded and why. Consumers should weight partial results lower and never treat them as complete.
▲Partial is not an error state — it is an honesty state. A partial Machine Trust Score of 74 is more useful than a fabricated complete score of 74, because it tells the consumer which sub-scores are missing.
"empty" — Nothing to Return, and Here Is Why
An empty state means the system has no data to return for this request. This is structurally different from null. Null gives no information. Empty comes with a reason: "baseline_established" (first audit, velocity requires two snapshots), "no_pages_crawled" (crawl failed), "plan_limit" (Layer 4 not available on this plan). Each reason is actionable — the consumer knows what to do next.
State Transitions Over Time
States transition as more data becomes available. A first-audit temporal analysis starts at empty. The second audit transitions to partial (velocity computed, drift not yet, pending insufficient embedding history). The third audit reaches complete. The GTL timestamp on each response anchors the state to a point in time, so historical states remain accurate even as the current state evolves.
GTL Systems — Part 2 of 10