We see drift, not docs.

Specific commitments, anchored to the code. Not legalese.

What we never store

  • Your CLAUDE.md text. The file you paste is analyzed in memory, the score is returned, and the request scope is discarded. We never write the body to disk and we never log it.
    Verify: app/api/check-freshness/route.ts
  • Your identity. No accounts for free checks. No email. No IP collected. The browser generates a random UUID; we salt-and-hash it before storage so the on-disk value is non-reversible.
    Verify: lib/freshness/quota.ts
  • Sentences from your file. Flagged claims appear on your result page from in-memory analysis. The flagged sentences are returned to your browser and not persisted on our side.

What we do store

We persist anonymized signal so the scorer learns which kinds of claims drift fastest. None of it is your raw text.

  • Quota ledger. A salted hash of your fingerprint plus a timestamp. Used only to enforce the two-free-checks-per-rolling-week limit.
  • Claim signals. For each check, one record per detected claim: { type, context, value, staleScore }. Example: "a count of 50 tests, drift score 60." Short keywords, counts, and version numbers — not full sentences.
    Verify: lib/freshness/store.ts
  • Stripe payment records. If you pay, Stripe processes the card. We receive a session ID and a single-use redemption token. We never see your card.

What changes if you subscribe

Subscribing requires a magic-link email so we can send your monthly drift report. That email is associated with your subscription and with drift trends across the files you've checked. You can delete the association at any time — see Removing your data below.

Where to verify this

Every claim above is grounded in a real file:

  • app/api/check-freshness/route.tsthe request handler. The text body is passed to analyze() in memory and is never written or logged.
  • lib/freshness/quota.tsfingerprint salt-and-hash; append-only ledger of usage.
  • lib/freshness/store.tsthe pattern store. The persisted shape is PatternRecord only.
  • lib/freshness/analyzer.tspure function. No side effects. No network.

Removing your data

For free use, there's nothing tied to you — we don't know who you are. To clear your local fingerprint, delete freshness_fp from your browser's local storage for this site. Subscribers can email privacy@13inks.dev for full deletion.

Anchored to the code as of the latest deploy. If you find a discrepancy between this page and what the code does, the code wins and we'll update this page.