You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
The vision's non-goals already say it plainly: pseudonymization "does not guarantee anonymization ... or immunity from contextual re-identification". Today that honesty lives in a docs page. The EDPB's 2026 anonymisation draft makes residual-risk assessment the legally relevant question, and the classic result (87% of the US population is unique on zip + birth date + gender) shows where pseudonymization actually fails: not on the identifiers it catches, but on the quasi-identifier combinations it leaves behind.
Every vendor claims "we redact". Nobody in the library space tells the caller what remains. Inverting the product question ("what did we remove?" → "what is still identifying?") is the same differentiation move as honest benchmarking (#62), applied to each individual output instead of the detector.
Proposal
A risk_report() on processing results, built under the existing safe-report constraint (no matched values, ever):
Quasi-identifier co-occurrence signals: counts and types only, e.g. "output still contains: 1 date, 1 location-like token, 1 age-like number; this combination is a known re-identification vector". Detection reuses existing detectors plus a small set of quasi-identifier classes (dates, ages, professions are out of scope for transformation but in scope for counting).
Below-threshold residue: detections that were found but filtered by policy (confidence, entity type) are already known to the engine; report their counts as residual risk instead of silently dropping the information.
Honest labeling as a hard requirement: the report is a heuristic signal, never a score pretending to be k-anonymity for free text. The docs page states what it can and cannot claim, in the same voice as docs/limitations.md.
Order-of-effects reasoning
First order: compliance teams must assess residual risk; today they guess.
Second order: as "we redact" becomes table stakes, procurement shifts to "show me what remains"; evidence beats claims.
Third order: AI-incident liability and insurance markets need an underwritable artifact; a value-free risk report is that artifact.
Context
The vision's non-goals already say it plainly: pseudonymization "does not guarantee anonymization ... or immunity from contextual re-identification". Today that honesty lives in a docs page. The EDPB's 2026 anonymisation draft makes residual-risk assessment the legally relevant question, and the classic result (87% of the US population is unique on zip + birth date + gender) shows where pseudonymization actually fails: not on the identifiers it catches, but on the quasi-identifier combinations it leaves behind.
Every vendor claims "we redact". Nobody in the library space tells the caller what remains. Inverting the product question ("what did we remove?" → "what is still identifying?") is the same differentiation move as honest benchmarking (#62), applied to each individual output instead of the detector.
Proposal
A
risk_report()on processing results, built under the existing safe-report constraint (no matched values, ever):Order-of-effects reasoning
🤖 Generated with Claude Code
https://claude.ai/code/session_012JiX3zWeEC28kmy5KmAXvf