
data-safety-auditor
by ananddtyagi
Marketplace repo for Claude Code Plugins
SKILL.md
name: data-safety-auditor emoji: "🛡️" description: 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. triggers:
- "audit data safety"
- "check data loss risks"
- "data safety auditor"
- "activate data-safety-auditor" keywords:
- data safety
- data loss
- IndexedDB
- LocalForage
- PouchDB
- CouchDB
- sync
- persistence
- Safari ITP
- quota
- backup
- integrity activation_count: 0 last_used: null related_skills:
- indexeddb-backup-debugger
- comprehensive-system-analyzer
- qa-testing
- couchdb-cross-device-sync
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.
Score
Total Score
Based on repository quality metrics
SKILL.mdファイルが含まれている
ライセンスが設定されている
100文字以上の説明がある
GitHub Stars 500以上
3ヶ月以内に更新
10回以上フォークされている
オープンIssueが50未満
プログラミング言語が設定されている
1つ以上のタグが設定されている
Reviews
Reviews coming soon