data-safety-auditor
Identifies and fixes data safety risks in Vue 3 applications using IndexedDB and PouchDB.
Install
mkdir -p .claude/skills/data-safety-auditor && curl -L -o skill.zip "https://agentskills.codes/api/skills/download/3569" && unzip -o skill.zip -d .claude/skills/data-safety-auditor && rm skill.zipInstalls to .claude/skills/data-safety-auditor
Activation
This is the description your AI agent reads to decide when to run this skill — the better it matches your request, the more reliably it fires.
Comprehensive data safety auditor for Vue 3 + Pinia + IndexedDB + PouchDB applications. Detects data loss risks, sync issues, race conditions, and browser-specific vulnerabilities with actionable remediation guidance.Key capabilities
- →Detect data loss risks in Vue/Pinia/IndexedDB apps
- →Identify sync and race condition issues
- →Generate persistence test suites
- →Provide actionable remediation guidance
How it works
It scans the codebase for patterns associated with storage failures, sync conflicts, and browser-specific limitations to identify integrity risks.
Inputs & outputs
When to use data-safety-auditor
- →Audit IndexedDB data safety
- →Check for PouchDB sync issues
- →Resolve quota exceeded errors
About this skill
Data Safety Auditor
Purpose: Comprehensive audit tool that identifies data loss risks in Vue 3 + Pinia + IndexedDB + PouchDB applications with actionable remediation guidance.
Philosophy
This skill provides rigorous data safety analysis with:
- Zero tolerance for data loss - Identifies every potential failure point
- Complete coverage - Storage, sync, hydration, integrity, testing
- Evidence-based findings - Code locations, patterns, severity
- Actionable fixes - Specific remediation with code examples
- Test generation - Creates missing safety tests
What It Detects
CRITICAL Risks (Deployment Blockers)
QUOTA_EXCEEDED- Storage full, data can't saveSAFARI_ITP_EXPIRATION- 7-day data loss on SafariUNHANDLED_QUOTA_ERROR- QuotaExceededError not caughtNO_CONFLICT_RESOLUTION- PouchDB conflicts not handledNON_ATOMIC_UPDATES- Multi-item updates can partially fail
HIGH Risks (Must Fix)
HYDRATION_RACE_CONDITION- Pinia data loads after renderNO_SYNC_ERROR_HANDLING- Sync failures silently failINCOMPLETE_SYNC_UNDETECTED- Stranded data not detectedRACE_CONDITION_SAME_KEY- Concurrent LocalForage writesUNHANDLED_STORAGE_ERROR- Storage calls have no try/catch
MEDIUM Risks (Should Fix)
NO_CHECKSUM_VERIFICATION- Data corruption undetectedNO_PRIVATE_MODE_HANDLING- Private mode data loss unhandledNO_PERSISTENT_STORAGE_REQUEST- PWA not requesting persistSTORAGE_PARTITIONING_UNACCOUNTED- iframe storage isolatedDRIVER_VALIDATION_MISSING- LocalForage driver not checked
LOW Risks (Consider Fixing)
NO_PERSISTENCE_TESTS- Missing persistence test coverageNO_OFFLINE_TESTS- Offline sync not testedMISSING_SAFARI_TESTS- Safari-specific tests missing
Detection Categories
A. Browser-Specific Data Loss Vectors
- Storage quota limits and eviction policies per browser
- Safari ITP 7-day storage limitations
- Private/incognito mode behavior
- Storage partitioning impacts
B. Storage-Specific Patterns
- LocalForage race conditions
- Concurrent write conflicts
- Driver fallback behavior
- Configuration issues
C. Sync Patterns
- PouchDB/CouchDB conflict detection
- Network failure handling
- Incomplete sync detection
- Sync integrity verification
D. Vue/Pinia Risks
- Hydration race conditions
- beforeRestore/afterRestore hooks
- Object reference breakage
- Multiple persistence sources
E. Data Integrity Checks
- Schema validation on load
- Checksum verification
- Corruption detection
- Backup/recovery validation
F. Testing & Compliance
- Persistence test coverage
- Quota failure tests
- OWASP compliance
- GDPR data integrity
Usage
const auditor = new DataSafetyAuditor();
// Full project audit
const report = await auditor.auditVueApp('./src');
console.log(report.toConsole());
// Targeted audits
const quotaFindings = await auditor.checkQuotaRisks(codeAST);
const itpFindings = await auditor.checkSafariCompat(codeAST);
const piniaFindings = await auditor.checkPiniaPersistence(piniaStore);
const syncFindings = await auditor.checkSyncIntegrity(pouchdbCode);
// Generate missing tests
const tests = await auditor.generateTestSuite();
// Get detailed remediation
const fixes = await auditor.suggestRemediations(findings);
Report Formats
- Console - Colored, readable CLI output with severity indicators
- JSON - Machine-readable for CI/CD integration
- Markdown - Documentation and reports
- HTML - Interactive dashboard view
Deployment Gate
The auditor enforces deployment gates:
- CRITICAL findings = Deployment blocked
- HIGH findings = Warning, recommend fixing
- MEDIUM/LOW = Information only
When to Use
Use this skill when:
- Before deploying to production
- After adding new persistence features
- When debugging data loss issues
- During code review of storage code
- Setting up CI/CD quality gates
- Auditing third-party storage libraries
Integration
CI/CD Pipeline
const report = await auditor.auditVueApp('./src');
if (report.hasBlockers()) {
console.error('DEPLOYMENT BLOCKED: Critical data safety issues found');
process.exit(1);
}
Custom Rules
auditor.rules.addRule('MUST_USE_ENCRYPTION', (code) => {
if (code.includes('sensitive_data') && !code.includes('crypto.subtle')) {
return { severity: 'CRITICAL', msg: 'Sensitive data must be encrypted' };
}
});
MANDATORY USER VERIFICATION REQUIREMENT
Policy: No Safety Claims Without User Confirmation
CRITICAL: Before claiming ANY data safety issue is "fixed", "resolved", or "safe", the following verification protocol is MANDATORY:
Step 1: Technical Verification
- Run full audit with all detectors
- Verify no CRITICAL or HIGH findings
- Take screenshots/evidence of clean audit
Step 2: User Verification Request
REQUIRED: Use the AskUserQuestion tool to explicitly ask the user to verify:
"I've completed the data safety audit. Before confirming your app is safe, please verify:
1. [Specific storage operations to test]
2. [Sync scenarios to test]
3. [Browser-specific tests to run]
Please confirm the data persists correctly, or let me know what's failing."
Step 3: Wait for User Confirmation
- DO NOT claim app is "data safe" until user confirms
- DO NOT approve deployment without user verification
- DO NOT skip any CRITICAL finding verification
Remember: The user is the final authority on data safety. No exceptions.
When not to use it
- →When the application does not use the specified stack
Limitations
- →Requires manual user verification of findings
- →Cannot guarantee safety without user testing
How it compares
It enforces deployment gates based on audit findings rather than just providing general advice.
Compared to similar skills
data-safety-auditor side by side with the closest alternatives in the catalog.
| Skill | Installs | Updated | Safety | Difficulty |
|---|---|---|---|---|
| data-safety-auditor (this skill) | 3 | 7mo | No flags | Advanced |
| supabase-rls-policy-generator | 11 | 9mo | No flags | Advanced |
| sqlmap-database-penetration-testing | 4 | 6mo | Review | Advanced |
| row-level-security | 1 | 6mo | Review | Advanced |
Try saying
Example prompts that trigger this skill in your AI assistant.
More by ananddtyagi
View all by ananddtyagi →You might also like
supabase-rls-policy-generator
hopeoverture
This skill should be used when the user requests to generate, create, or add Row-Level Security (RLS) policies for Supabase databases in multi-tenant or role-based applications. It generates comprehensive RLS policies using auth.uid(), auth.jwt() claims, and role-based access patterns. Trigger terms include RLS, row level security, supabase security, generate policies, auth policies, multi-tenant security, role-based access, database security policies, supabase permissions, tenant isolation.
sqlmap-database-penetration-testing
davila7
This skill should be used when the user asks to "automate SQL injection testing," "enumerate database structure," "extract database credentials using sqlmap," "dump tables and columns from a vulnerable database," or "perform automated database penetration testing." It provides comprehensive guidance for using SQLMap to detect and exploit SQL injection vulnerabilities.
row-level-security
dadbodgeoff
Implement PostgreSQL Row Level Security (RLS) for multi-tenant SaaS applications. Use when building apps where users should only see their own data, or when implementing organization-based data isolation.
supabase-data-handling
jeremylongshore
Implement Supabase PII handling, data retention, and GDPR/CCPA compliance patterns. Use when handling sensitive data, implementing data redaction, configuring retention policies, or ensuring compliance with privacy regulations for Supabase integrations. Trigger with phrases like "supabase data", "supabase PII", "supabase GDPR", "supabase data retention", "supabase privacy", "supabase CCPA".
audit
senda-labs
Run complete system health audit of DQIII8 — checks DB integrity, agent performance, pipeline connections, error log, and services. Produces a scored Markdown report.
branch-isolation
Peadarpol
Expert review of multi-tenant and branch isolation safety, ensuring no query data leaks or cross-tenant access.