Compression: what survives compress → decompress

Round-trip benchmark for technical-document compression and decompression by LLMs. Measures how much information survives a compress(original) → decompress(compressed) → restored cycle, and how dense / readable the intermediate compressed form is.

Size after compression is the compressed text's length as a share of the original. Facts kept is the share of the scenario's fact checklist the judge found in the restored text; invented counts claims the restored text added. Numbers are means over the runs of each cell.

adr-record-decision

stylemodelrunssize after compressionfacts keptcritical facts keptinventedcost
compressed-styleclaude-haiku-4-510.92100%100%6$0.050
compressed-styleclaude-opus-4-760.71100%100%0.8$0.062
compressed-styleclaude-sonnet-4-610.75100%100%8$0.048
conciseclaude-opus-4-760.92100%100%5$0.050
conciseclaude-sonnet-4-610.89100%100%3$0.042
conciseclaude-haiku-4-510.98100%100%10$0.048
glossary-firstclaude-sonnet-4-610.86100%100%0$0.051
glossary-firstclaude-opus-4-760.9100%100%2$0.049
glossary-firstclaude-haiku-4-510.74100%100%0$0.040
naiveclaude-opus-4-740.63100%100%7$0.046
neutralclaude-opus-4-720.63100%100%2$0.045
naiveclaude-sonnet-4-610.6592.9%90%11$0.044
naiveclaude-haiku-4-510.7271.4%60%6$0.058
compressed-style · claude-haiku-4-5100%
compressed-style · claude-opus-4-7100%
compressed-style · claude-sonnet-4-6100%
concise · claude-opus-4-7100%
concise · claude-sonnet-4-6100%
concise · claude-haiku-4-5100%
glossary-first · claude-sonnet-4-6100%
glossary-first · claude-opus-4-7100%
glossary-first · claude-haiku-4-5100%
naive · claude-opus-4-7100%
neutral · claude-opus-4-7100%
naive · claude-sonnet-4-692.9%
naive · claude-haiku-4-571.4%
naive · claude-sonnet-4-6: lost facts
  • run-1, required-cli-spawn: The text mentions spawning external CLI processes with isolated HOME but does not name claude, codex, or gemini.
naive · claude-haiku-4-5: lost facts
  • run-1, import-prefix: Restored text mentions the @bench/ prefix convention but does not state it is defined in deno.json.
  • run-1, rejected-node: Text cites npm install and ts-node configuration but does not mention any lockfile policy.
  • run-1, rejected-go: Restored text mentions weaker Go fluency and friction with LLM-assisted prompt development, but does not specifically reference 'judge prompts'.
  • run-1, required-cli-spawn: Restored text mentions spawning isolated CLI processes but does not name claude/codex/gemini nor mention a per-run isolated HOME directory.

postmortem-incident-2026-03-12

stylemodelrunssize after compressionfacts keptcritical facts keptinventedcost
compressed-styleclaude-opus-4-710.71100%100%0$0.157
conciseclaude-opus-4-710.81100%100%6$0.163
neutralclaude-opus-4-710.5885.2%86.4%4$0.129
glossary-firstclaude-opus-4-7100%0%0$0.000
compressed-style · claude-opus-4-7100%
concise · claude-opus-4-7100%
neutral · claude-opus-4-785.2%
glossary-first · claude-opus-4-70%
neutral · claude-opus-4-7: lost facts
  • run-1, detection-monitor: The 2-minute window is not stated in the restored text; only the >5% threshold is.
  • run-1, pagerduty-policy: The escalation policy name 'payments-eu-sev2' is not stated in the restored text.
  • run-1, cohorts-unaffected: Text says us-east-1 was not reached, but does not name Cohorts C and D.
  • run-1, argo-rollouts: Text states the rollback was via Argo Rollouts and ran cleanly, but does not explicitly state it was 'without manual kubectl intervention'.