{"id":"tombstone-lifecycle-fragmented-across-modules","text":"Tombstone management is handled differently at every layer: the LSM uses an ambiguous empty-bytes sentinel indistinguishable from empty values, compaction preserves tombstones by default with caller-controlled removal, and distributed deletion requires cross-replica convergence before safe removal — with no coordination between these concerns.","truth_value":"IN","source":"","source_url":"","source_hash":"","justifications":[{"type":"SL","antecedents":["lsm-tombstone-is-empty-bytes","merge-preserves-tombstones-by-default","distributed-tombstone-removal-needs-replication-convergence"],"outlist":[],"label":"Three layers of the tombstone lifecycle (creation, local cleanup, distributed cleanup) are independently implemented with no shared abstraction or safety contract"}],"dependents":["anti-entropy-detects-but-cannot-fully-resolve-divergence","delete-semantics-fragmented-from-storage-to-derived-systems"],"metadata":{},"created_at":"","updated_at":"","reviewed_at":"","verified_at":"","retracted_at":"","explanation":{"steps":[{"node":"tombstone-lifecycle-fragmented-across-modules","truth_value":"IN","reason":"SL justification valid","antecedents":["lsm-tombstone-is-empty-bytes","merge-preserves-tombstones-by-default","distributed-tombstone-removal-needs-replication-convergence"],"label":"Three layers of the tombstone lifecycle (creation, local cleanup, distributed cleanup) are independently implemented with no shared abstraction or safety contract"},{"node":"lsm-tombstone-is-empty-bytes","truth_value":"IN","reason":"premise"},{"node":"merge-preserves-tombstones-by-default","truth_value":"IN","reason":"premise"},{"node":"distributed-tombstone-removal-needs-replication-convergence","truth_value":"IN","reason":"premise"}]}}