Trace where personal data enters, spreads, and lingers — then run the delete-request test: could you honor one today?
Free & open · no signup · read-only — it ends by asking · nothing leaves your machine
You are working inside this repo. Mission: trace where personal data enters this system, everywhere it spreads, how long it lingers — then run the delete-request test: could this product fully honor a deletion request today?
This maps the engineering reality of where PII lives. For operational readiness to honor legal rights requests — export, correction, proof — run 126.
Read-only pass. Your only write is the report file.
Phase 2 sweeps the codebase through every one of these, citing file and line for each finding.
every place each datum lands: primary tables, caches, search indexes, files, third-party services
personal data flowing into logs, analytics, error trackers, and backups (the copies everyone forgets)
which code paths and roles can read each datum; anything readable far beyond its need
does anything ever get deleted, or does everything live forever by default?
trace an account deletion end to end; list every copy that would survive it
data collected but never used; fields that could be dropped, masked, or truncated at entry
One structured report at the repo root — or in reports/, if you keep one — the same shape every time, ready for a teammate — or the optional Studio — to act on.
Every Goal Prompt follows the same four steps, so results are consistent and repeatable — no matter which one you run.
List the personal data this product touches.
Storage spread — every place each datum lands.
Rank by exposure.
Create PRIVACY.md at repo root.
Copy it and paste it into your agent inside the repo you want checked.
Install the goal plugin once — two commands — then just type /goal:pii-retention-map.
/plugin marketplace add GhostlyGawd/goal-prompts/plugin install goal@goal-promptsOr install only this Goal Prompt as /goal-pii-retention-map:
curl -fsSL https://goal-prompts.vercel.app/install | BRIEF=21 shLet an agent fetch it mid-conversation, or pull the raw Goal Prompt by URL.
https://goal-prompts.vercel.app/raw/21.mdNothing hidden — this is the whole Goal Prompt, verbatim. Read it in a minute, edit it, or copy it as-is.
# Goal: PII & Retention Map You are working inside this repo. Mission: trace where personal data enters this system, everywhere it spreads, how long it lingers — then run the delete-request test: could this product fully honor a deletion request today? This maps the engineering reality of where PII lives. For operational readiness to honor legal rights requests — export, correction, proof — run 126. Read-only pass. Your only write is the report file. ## Phase 1 — Define what's personal here - List the personal data this product touches: emails, names, IPs, user content, payment references, identifiers. - Find every entry point: signup, forms, uploads, third-party auth, imports, support channels. ## Phase 2 — Trace through 6 lenses 1. **Storage spread** — every place each datum lands: primary tables, caches, search indexes, files, third-party services 2. **Leakage paths** — personal data flowing into logs, analytics, error trackers, and backups (the copies everyone forgets) 3. **Access surface** — which code paths and roles can read each datum; anything readable far beyond its need 4. **Retention reality** — does anything ever get deleted, or does everything live forever by default? 5. **The delete-request test** — trace an account deletion end to end; list every copy that would survive it 6. **Minimization** — data collected but never used; fields that could be dropped, masked, or truncated at entry ## Phase 3 — Curate - Rank by exposure: sensitivity × spread × access breadth - Every finding cites the code path or config where the datum flows ## Phase 4 — Report Create `PRIVACY.md` at repo root: 1. **Data inventory** — table: datum · entry points · everywhere it lives · who/what reads it · retention today 2. **Delete-request verdict** — pass/fail, with the list of surviving copies 3. **Leakage findings** — logs, analytics, backups: what to scrub, where 4. **Minimization steps** — stop-collecting and mask-at-entry changes 5. **Fix sequence** — quick scrubs first, deletion plumbing second Start the report with today's date. If `PRIVACY.md` already exists from a previous run, read it first and lead with what changed since. ## Rules - Backups, logs, and third parties count — a copy is a copy - Collecting less beats protecting more - No PII in this repo? Say so in a one-paragraph null report and stop — a null result is a valid finding. - If a `reports/` directory exists at the repo root, write the report there instead of the root. - Before asking, present the top findings as a ranked list in plain words - Report only — end by asking which fixes to make
reports/ directory exists at the repo root, write the report there instead of the root.Curated neighbors — briefs that answer the adjacent question, worth running in the same session.
Missing indexes, absent constraints, JSON blobs hiding structure — with a migration plan sequenced safest-first.
Which user behaviors are invisible today — and the tracking plan that makes the five questions that matter answerable.
Mine the git history for churn, bug magnets, coupled files, and bus-factor silos — predict where the next bug lands.
Schema and data migrations under real traffic — table locks, reversibility, timed-out backfills, and the deploy ordering that turns a change into an outage.