A clean Word redline is the easy case. Real review arrives as a Word draft against an executed PDF, a scan with uncertain characters, a renumbered schedule, or a table whose rows moved while its economics changed.
CompareX normalizes those formats into pages and structural blocks, then detects atomic text, move, numbering, formatting and table changes without discarding the route back to either original.
The source is evidence
Every source begins with an immutable SHA-256 hash. A comparison pins one exact successful rendition for each side, plus its profile and engine versions. Each change then carries base and revised page, block, offset, quoted-text hash and bounding box anchors according to its shape.
A semantic claim is useful only when the reviewer can step straight back into the exact source span.
Exact
Additions, deletions, moves and modifications enforce the anchors their shape requires.
Honest
Low OCR confidence stays visible and cannot masquerade as certain text.
Layered
Detection, semantic interpretation and human disposition remain separate records.
Meaning, with citations
Raw differences become useful queues through topic, materiality and structured interpretations of definitions, obligations, dates, amounts, percentages and references. Every label cites atomic changes from the same run. The semantic layer can explain and prioritize; it cannot rewrite the diff.
Hash originals and create native or OCR renditions with visible confidence.
Match sections, blocks, tables, numbering, terms and moved content.
Work material-first in a synchronized three-pane evidence view.
Snapshot sources, run versions, visible changes and current decisions.
Decisions annotate; they do not mutate
Reviewer decisions are append-only. Accept, reject, discuss, escalate, mark non-material or identify a false positive, always with the history intact. Group progress is derived from member decisions, so an unresolved material change keeps its group open. Suppression is limited to reasoned non-material patterns; material and OCR-uncertain changes cannot be hidden.
A report stays true later
A rerun creates a child comparison and preserves the old run. A report freezes source hashes, profile and engine versions, filters, included change IDs, current decisions, summary and generator version. Later review may change the live queue, but it cannot change the exported output hash.
How it is built
CompareX uses the System32 house stack: a Go API with SQLite and a Next.js 16 / React 19 interface. Its demo corpus contains 160 sources, 190 renditions, 1,250 pages, 14,000 blocks, 72 runs, 4,800 changes, 7,717 anchors, 3,400 grounded labels, 1,900 decisions and 84 frozen reports. Tests cover source immutability, identical-input rejection, rendition readiness, anchor shape, OCR posture, citations, review history, group rollup, suppression guards, reruns and report immutability.
CompareX is available now in the System32 catalog. Open a comparison, switch into three-pane review and follow any semantic claim back to both exact source anchors.