CtrlK
BlogDocsLog inGet started
Tessl Logo

testland/synthetic-pii-generator

Generates realistic-but-fake personally identifiable information (PII) - emails, phone numbers, SSNs / national IDs, addresses, names, credit-card numbers (test BIN ranges), date-of-birth - for non-production environments. Wraps Faker / mimesis with PII-aware constraints so generated values match real format expectations (Luhn-valid card numbers, region-valid phone formats, ITIN/SSN format) without ever generating real-person data. Use when seeding test environments, building demo data, or replacing real PII in copied datasets.

75

Quality

94%

Does it follow best practices?

Run evals on this skill

Adds up to 20 points to the overall score

View guide

SecuritybySnyk

Passed

No findings from the security scan

Overview
Quality
Evals
Security
Files

pii-lookup-tables.mdreferences/

PII safe-value lookup tables

Reserved test ranges and issuer-published test values that pass real format validators without matching a real person. Emit these constants instead of trusting a generator's defaults, which may collide with a real number.

Phone numbers - region-specific test ranges

RegionTest range
US(555) 0100 - (555) 0199 (per Numbering Plan documentation, reserved for fictional use).
UK0790 7900 000-999 (Ofcom reserved for drama/fiction).
Germany+49 (123) 4567-... patterns reserved for examples.

Faker's phone_number defaults to format-valid but doesn't guarantee non-real numbers. For absolute safety, post-process generated phone numbers to substitute the regional test range.

Government IDs - never generate real-format

IDSynthetic strategy
US SSNUse the IRS test range 900-XX-XXXX to 999-XX-XXXX (not validly issued). Faker's ssn() defaults to invalid-format strings.
US ITINFormat: 9XX-7X-XXXX or 9XX-8X-XXXX (range reserved for ITIN issuance; never generate real values).
UK NI NumberAB123456C patterns; use JR987654A style which HMRC reserves.
GenericIf your test environment doesn't enforce format validation, use obvious-fake values like 000-00-0000.

Never generate values from a real-issuance range. A correctly- formatted but real-issuance SSN may collide with a real person - the exact privacy violation this skill avoids.

Credit card numbers - test BIN ranges

Major card networks publish test BIN ranges that pass Luhn checksum but never authorize. Use these in test fixtures:

Card typeTest BIN (use with random suffix; Luhn-valid)
Visa4111 1111 1111 1111
Mastercard5555 5555 5555 4444
American Express3782 822463 10005
Discover6011 1111 1111 1117

(Standard Stripe / Adyen test cards; documented in their respective testing guides.) Faker's credit_card_number() produces format-valid values but may collide with a real card if the issuer's BIN happens to match; the Stripe / Adyen test cards are guaranteed safe.

SKILL.md

tile.json