privacy-auditor
Skill36 starsChanged 15 days agoMITView on GitHub
Audit Fullstory session capture for PII leaks, verify privacy rules, and check recording block rules. Use when the user is concerned about privacy compliance, wants to verify masking rules, or needs to find sessions that may contain sensitive data.
In this repository45 other files it gives its agents.
- a11y-analyzerSkill
- annotation-opsSkill
- anomaly-detectorSkill
- api-monitorSkill
- benchmark-analyzerSkill
- campaign-trackerSkill
- changelog-detectiveSkill
- cohort-compassSkill
- comparisonsSkill
- customer-360Skill
- dashboard-builderSkill
- deploy-radarSkill
- error-forensicsSkill
- experiment-analyzerSkill
- feature-adoptionSkill
- form-analyzerSkill
- frustration-hunterSkill
- funnel-doctorSkill
- general-analysisSkill
- heatmap-generatorSkill
- incident-responderSkill
- jira-bug-reporterSkill
- journey-builderSkill
- lifecycle-analyzerSkill
- metric-auditorSkill
- mobile-analyzerSkill
- nps-proxySkill
- onboarding-tutorSkill
- page-performanceSkill
- persona-builderSkill
- predictive-alertsSkill
- query-translatorSkill
- quick-statsSkill
- report-deckSkill
- retention-analyzerSkill
- revenue-impactSkill
- scroll-depth-analyzerSkill
- segment-wizardSkill
- session-playlistSkill
- session-reviewSkill
- session-searchSkill
- slack-reporterSkill
- user-journeySkill
- webhook-healthSkill
- weekly-digestSkill
The file
We split this skill into the rules it gives an agent
6 rules. About 0 are common, 4 are distinctive, and 2 are very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈4
Distinctive · estimate
This author's own choices. Worth a look.
2
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Very specific: line 36
Call fullstory:get_recording_block_rules to see what's currently configured:
- Distinctive: line 53
Check that password fields, credit card inputs, and other sensitive fields are masked
- Distinctive: line 54
Verify that excluded pages (e.g., /admin) don't appear in session data at all
- Distinctive: line 58
Look for common PII exposure patterns:
- Distinctive: line 128
If you find unmasked PII, flag it immediately with the specific session URL and the element that's exposed.
- Very specific: line 130
Don't read session transcripts with potentially exposed PII into the main context.
≈ “Common” is an estimate: at least 1 in 5 of the 350,495 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
Privacy Auditor
Audit your Fullstory session capture for PII exposure, verify privacy rules are working, and find sessions that may contain sensitive user data.
When to Use
- "Are we accidentally capturing PII in sessions?"
- "Check if our privacy masking rules are working"
- "Did the recent deploy break any privacy exclusions?"
- "Find sessions where user emails might be visible"
- "Verify that the /admin pages are excluded from recording"
- "Audit our recording block rules — are the right elements masked?"
Mental Model
Fullstory records everything users see and do. Privacy controls prevent sensitive data from being captured:
- Exclusion rules: Pages or elements excluded entirely from recording
- Masking rules: Elements that are recorded but with text/images replaced
- Block rules: Elements blocked from capture (not recorded at all)
- Network exclusions: API calls excluded from network capture
This skill verifies that these controls are working correctly.
For visual checks, follow session-review: open with fullstory:review-open, pass its client_id to fullstory:review-snapshot at the target timestamp, and always call fullstory:review-close, including on errors. Delegate repeated captures to session-replay.
Workflow
Step 1: Check current privacy configuration
Call fullstory:get_recording_block_rules to see what's currently configured:
- Element selectors being masked or blocked
- URL patterns being excluded from recording
- Network URL patterns excluded from capture
Present the current rules to the user: "Here's what's currently configured. 12 element selectors masked, 3 URL patterns excluded, 1 network exclusion."
Step 2: Verify rules on actual sessions
Pull recent sessions and check if the rules are working:
fullstory:get_sessions(time_range="last_24_hours", limit=5)For each session, use review-snapshot to check pages that should have masked elements:
- Navigate to a page with known sensitive elements (e.g., /checkout, /settings)
- Check that password fields, credit card inputs, and other sensitive fields are masked
- Verify that excluded pages (e.g., /admin) don't appear in session data at all
Step 3: Hunt for PII leaks
Look for common PII exposure patterns:
Fields that should be masked but might not be:
- Email addresses in form fields, headers, or user profile displays
- Phone numbers in contact forms or account pages
- Physical addresses in shipping or billing forms
- Credit card numbers (should never appear — always masked by default)
- SSN, driver's license, passport numbers in verification forms
To check: Build a metric for sessions that visited pages with sensitive fields, then spot-check a few sessions with review-snapshot:
fullstory:build_segment("users who visited /checkout or /account/settings in last 7 days")
fullstory:get_sessions(segment_id, limit=5)
→ review-snapshot on the sensitive page, check for unmasked PIIStep 4: Check for unintended recording
Pages that should NOT be recorded:
- Admin panels
- Internal tools
- Employee dashboards
- Authentication pages (login forms — should show as masked)
Build a segment for these pages and verify they're either excluded or properly masked:
fullstory:build_segment("users who visited /admin or /internal")
→ if sessions exist for these pages, check if they're properly excludedStep 5: Report
## Privacy Audit
### Current Rules
- 12 element selectors masked: ✅ Active
- 3 URL exclusions: ✅ Active (blocks /admin/*, /internal/*, /api/keys/*)
- 1 network exclusion: ✅ Active (blocks /api/payment-methods)
### Rule Verification
- Checked 5 sessions — all masked fields working correctly ✅
- Password fields masked in all sessions ✅
- Credit card fields masked in checkout ✅
- /admin pages: 0 sessions recorded (exclusion working) ✅
### PII Scan
- No unmasked emails, phone numbers, or addresses found in spot-checked sessions ✅
- One concern: /settings/profile shows user's full name in the header — this is unmasked. Is that intentional? 🟡
### Recommendations
1. Verify if full name display in /settings/profile should be masked
2. Consider adding /employee/* to URL exclusions if not already covered
3. Review privacy rules quarterly — last audit was 3 months agoPrivacy Best Practices
| Rule | Recommendation |
| Password fields | Always masked by default — input[type="password"] |
| Credit card fields | Always block — #card-number, [data-sensitive="payment"] |
| Email displays | Mask in headers and account pages — .user-email, .profile-email |
| Admin pages | Exclude entirely from recording — /admin/*, /internal/* |
| API keys/secrets | Never record — exclude network calls to /api/keys/* |
| Customer support chat | Consider masking — agents may paste user PII |
Guidelines
- This skill doesn't guarantee compliance with GDPR, CCPA, or other regulations. It's a technical audit, not a legal one. Always say so.
- If you find unmasked PII, flag it immediately with the specific session URL and the element that's exposed. This is a P0 privacy issue.
- Privacy rules can break after deploys — if the markup changes (e.g., CSS class renamed), the mask rule stops matching. After a major deploy, re-audit.
- Don't read session transcripts with potentially exposed PII into the main context. Use
session-contextagent with a task like "check if any text visible on /checkout looks like an email address or credit card number." - Fullstory masks credit card numbers by default (PCI compliance). If you see one in a session, it's a bug in Fullstory's masking, not your rules — report it to Fullstory support.
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

