{"id":"defense-in-depth-correctness","text":"The architecture pursues defense-in-depth correctness through two complementary layers: perimeter normalization establishes clean inputs at system boundaries (serving both security and feature correctness), while structural construction (immutability, synchronized structures, state ratchets) enforces correct state transitions internally — though this structural discipline is not universally applied, with critical invariants like quorum overlap and payment atomicity remaining assumed but unenforced. Where both layers are present, they reduce an important class of corruption bugs, but gaps in structural enforcement mean full lifecycle coverage is not yet achieved.","truth_value":"IN","source":"","source_url":"","source_hash":"","justifications":[{"type":"SL","antecedents":["boundary-normalization-serves-defense-and-correctness","structural-correctness-is-universally-applied"],"outlist":[],"label":"Perimeter normalization and structural construction are complementary correctness layers"}],"dependents":["correctness-is-layered-and-self-reinforcing"],"metadata":{"last_reviewed":"2026-06-06T06:26:57","review_result":"invalid"},"created_at":"","updated_at":"","reviewed_at":"","verified_at":"","retracted_at":"","explanation":{"steps":[{"node":"defense-in-depth-correctness","truth_value":"IN","reason":"SL justification valid","antecedents":["boundary-normalization-serves-defense-and-correctness","structural-correctness-is-universally-applied"],"label":"Perimeter normalization and structural construction are complementary correctness layers"},{"node":"boundary-normalization-serves-defense-and-correctness","truth_value":"IN","reason":"SL justification valid","antecedents":["autocomplete-search-is-robust","perimeter-defense-ensures-data-quality"],"label":"boundary normalization is the shared root of both perimeter defense (security) and query robustness (correctness)"},{"node":"autocomplete-search-is-robust","truth_value":"IN","reason":"SL justification valid","antecedents":["normalize-once-at-system-boundary","autocomplete-cache-consistency"],"label":"Normalization and cache consistency ensure exact-prefix queries are always correct, but the fuzzy fallback's last-char-only limitation undermines recall for realistic typo patterns","outlist":["autocomplete-fuzzy-is-last-char-only"]},{"node":"normalize-once-at-system-boundary","truth_value":"IN","reason":"SL justification valid","antecedents":["autocomplete-normalize-at-boundary","crawler-normalize-once-convention"],"label":"autocomplete lowercases and truncates all queries before trie operations; crawler normalizes URLs at insertion into bloom filter, frontier, and simhash — both establish a canonical-form invariant at the boundary that internal code relies on"},{"node":"autocomplete-normalize-at-boundary","truth_value":"IN","reason":"premise"},{"node":"crawler-normalize-once-convention","truth_value":"IN","reason":"premise"},{"node":"autocomplete-cache-consistency","truth_value":"IN","reason":"premise"},{"node":"structural-correctness-is-universally-applied","truth_value":"IN","reason":"SL justification valid","antecedents":["correctness-by-construction-not-validation"],"label":"Structural correctness works where applied but does not cover all critical invariants — temporal/assumed properties remain gaps","outlist":["assumed-invariants-are-unenforced"]},{"node":"correctness-by-construction-not-validation","truth_value":"IN","reason":"SL justification valid","antecedents":["structural-discipline-prevents-consistency-bugs","state-ratchets-prevent-regression-across-domains"],"label":"Both depth-2 conclusions prevent bugs structurally (immutability/sync vs. monotonic ratchets) rather than via checks, forming a unified construction-over-validation principle"},{"node":"structural-discipline-prevents-consistency-bugs","truth_value":"IN","reason":"SL justification valid","antecedents":["immutable-values-prevent-aliasing-bugs","multi-structure-sync-invariant"],"label":"immutability (KV vector clocks, leaderboard reinsert) prevents mutation aliasing; multi-structure sync (consistent hashing, leaderboard) prevents index divergence — leaderboard uses BOTH, showing these disciplines are complementary"},{"node":"immutable-values-prevent-aliasing-bugs","truth_value":"IN","reason":"SL justification valid","antecedents":["kv-vector-clock-immutable","leaderboard-update-by-remove-reinsert"],"label":"Immutable-value semantics eliminate shared-reference aliasing at the cost of allocation overhead"},{"node":"kv-vector-clock-immutable","truth_value":"IN","reason":"premise"},{"node":"leaderboard-update-by-remove-reinsert","truth_value":"IN","reason":"premise"},{"node":"multi-structure-sync-invariant","truth_value":"IN","reason":"SL justification valid","antecedents":["ch-triple-bookkeeping","leaderboard-dual-index-consistency"],"label":"Multi-structure sync is a recurring correctness burden where the failure mode is silent divergence"},{"node":"ch-triple-bookkeeping","truth_value":"IN","reason":"premise"},{"node":"leaderboard-dual-index-consistency","truth_value":"IN","reason":"premise"},{"node":"state-ratchets-prevent-regression-across-domains","truth_value":"IN","reason":"SL justification valid","antecedents":["chat-monotonic-read-progress","watermark-finalization-is-irreversible"],"label":"chat read cursors are monotonic (never re-mark as unread), aggregation windows follow OPEN→CLOSED→FINALIZED with no reversal — both are state ratchets that make backwards movement structurally impossible"},{"node":"chat-monotonic-read-progress","truth_value":"IN","reason":"SL justification valid","antecedents":["chat-dual-ordering-sequence-and-lamport","chat-read-cursors-monotonic"],"label":"Sequence-number ordering + monotonic cursors create an irreversible read-progress guarantee"},{"node":"chat-dual-ordering-sequence-and-lamport","truth_value":"IN","reason":"premise"},{"node":"chat-read-cursors-monotonic","truth_value":"IN","reason":"premise"},{"node":"watermark-finalization-is-irreversible","truth_value":"IN","reason":"SL justification valid","antecedents":["watermark-drives-finalization","window-lifecycle-one-directional","no-window-merging-or-retraction"],"label":"Three properties compose into hard irreversibility: watermark-only trigger + one-way lifecycle + no retraction"},{"node":"watermark-drives-finalization","truth_value":"IN","reason":"premise"},{"node":"window-lifecycle-one-directional","truth_value":"IN","reason":"premise"},{"node":"no-window-merging-or-retraction","truth_value":"IN","reason":"premise"}]}}