Keep the business meaning. Replace the personal data the rules find.
The example below was produced by the local 0.1.0 version. It found one name, one email address, and one formatted phone number while preserving the interview finding.

Sensitive details are easy to miss when they are scattered through the text
Interview notes need to preserve the insight, support tickets need the problem context, and logs need the troubleshooting evidence. Names and contact details can still appear in headings, signatures, body text, or follow-up notes.

Preserve insights and business facts while reviewing participant names, email addresses, and phone numbers.
Check contact details, card patterns, and signatures before a ticket becomes a public example.
Review log excerpts for fields such as IPv4 addresses before sharing them with collaborators.
Redaction should also tell you what changed
PII Redactor combines detection, replacement, location records, and a rule re-scan in one invocation. You receive the redacted copy, a masked findings list, and a summary, then decide whether the material is ready to share.
Provide text. Receive a copy, checklist, and re-scan result.
Pass one or more inline text documents, select detector types if needed, and supply known names for extra matching.

Pass interview notes, tickets, or log content inline.
Run the enabled rules and resolve overlapping matches.
Insert type tokens, then scan the copy with the same enabled rules.
Check the source, checklist, and business context for misses or over-redaction.
Three cases show both the capability and its boundary
Case 1 · English interview note
The run found one name, one email, and one formatted phone number. It preserved the customer finding and passed the rule re-scan.
Case 2 · Public support example
The bundled sample plus the supplied extra name Zephyr Quill produced 10 findings.
Case 3 · A clean re-scan can still miss sensitive text
“The participant discussed demand stability. Mobile: 13800000000.” produced zero findings and was returned unchanged, while redaction_verified remained true.
A clean re-scan does not mean every personal detail is gone
true only means the enabled detectors found no residual matches. Unseparated phone numbers, detailed addresses, trade secrets, and identities inferable from context still require human review.
Useful as a pre-share check, with a human making the final decision
The program uses the Python standard library, makes no network calls, and requires no API key. Pasting text into a cloud Agent may still send it to that platform.
The output combines replacement tokens with type, line, character offsets, and masked previews for targeted review.
All six detectors are enabled by default. A workflow can select a subset and supply extra names.
The re-scan confirms that the same enabled rules did not find another match. A person still decides whether the material can be shared.
Make redaction a standard step before material moves
Keep the source, a redacted copy, and a review record for the same material. Teams can review consistent tokens and known boundaries instead of relying on memory that the text was probably cleaned.
