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
94%
Does it follow best practices?
Run evals on this skill
Adds up to 20 points to the overall score
View guide
Passed
No findings from the security scan
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.
| Region | Test range |
|---|---|
| US | (555) 0100 - (555) 0199 (per Numbering Plan documentation, reserved for fictional use). |
| UK | 0790 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.
| ID | Synthetic strategy |
|---|---|
| US SSN | Use the IRS test range 900-XX-XXXX to 999-XX-XXXX (not validly issued). Faker's ssn() defaults to invalid-format strings. |
| US ITIN | Format: 9XX-7X-XXXX or 9XX-8X-XXXX (range reserved for ITIN issuance; never generate real values). |
| UK NI Number | AB123456C patterns; use JR987654A style which HMRC reserves. |
| Generic | If 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.
Major card networks publish test BIN ranges that pass Luhn checksum but never authorize. Use these in test fixtures:
| Card type | Test BIN (use with random suffix; Luhn-valid) |
|---|---|
| Visa | 4111 1111 1111 1111 |
| Mastercard | 5555 5555 5555 4444 |
| American Express | 3782 822463 10005 |
| Discover | 6011 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.