See what changed. Keep the source.

Compare a rewrite with its original, inspect the passages, record your decisions, and export the review. Comparison runs in this browser. Generated rewrites can also carry an independently verifiable render receipt.

Literal comparison only: unchanged passages are matched exactly; suggested changed passages share words. Read every change for negation, conditions, quantities and attribution. This is not a semantic judge or a meaning-preservation score.

0
Optional: extract claims and generate a rewrite

Extraction sends the source to the configured extraction service. Review extracted claims against the original before rendering. Generating a rewrite sends those claims to the selected provider. The original remains available for review.

1.00

Optional: measure with a local semantic judge

The browser comparison above is literal and advisory. For a separate per-document proxy measurement under a named local judge, run:

pip install "sum-engine[research,judge]"
sum meaning-diff source.txt rewrite.txt --scorer nli

A per-document measurement under a named judge — not a certified bound (a sum.meaning_risk_receipt.v1 over a corpus states a bound under its sampling assumptions). Integrators verify any SUM receipt offline, dependency-light: pip install "sum-engine[verify]"python -m sum_verify. See the meaning-loss frontier.

Open and verify an exported review packet

Paste the packet JSON. Checks run here without an account, API key or network call. Included public keys establish signature consistency, not the issuer's identity. Source and review decisions remain unsigned.

Opening replaces the source and rewrite above with this packet's texts. Its review decisions remain unsigned.



Verify a bundle

Paste a SUM bundle JSON. This in-browser verifier runs two checks: structural — recomputes the state integer from the canonical tome and confirms it matches the claim; Ed25519 — if the bundle carries a public_signature and public_key, the signature is verified natively via SubtleCrypto (Chrome 113+, Firefox 129+, Safari 17+). No server, no network, no keys to supply. HMAC (shared-secret) signatures still require sum verify --signing-key ….

Verify a meaning receipt

Paste a sum.meaning_risk_receipt.v1 (or sum.perspective_risk_receipt.v1) and its issuer JWKS. This runs Stage A in-browser — Ed25519 signature, schema, and the required meaning-loss disclosure — the same checks the Python sum_verify SDK and the Node verifier run, byte-for-byte. Stage B (the conformal-bound replay) stays Python-side (python -m sum_verify --demo). There is no live meaning-issuing key, so load/paste a JWKS rather than fetching one. A clean ✓ is a cryptographic fact, not proof meaning was preserved.