Loading...
Loading...
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.
npx skill4agent add ananddtyagi/cc-marketplace data-safety-auditorQUOTA_EXCEEDEDSAFARI_ITP_EXPIRATIONUNHANDLED_QUOTA_ERRORNO_CONFLICT_RESOLUTIONNON_ATOMIC_UPDATESHYDRATION_RACE_CONDITIONNO_SYNC_ERROR_HANDLINGINCOMPLETE_SYNC_UNDETECTEDRACE_CONDITION_SAME_KEYUNHANDLED_STORAGE_ERRORNO_CHECKSUM_VERIFICATIONNO_PRIVATE_MODE_HANDLINGNO_PERSISTENT_STORAGE_REQUESTSTORAGE_PARTITIONING_UNACCOUNTEDDRIVER_VALIDATION_MISSINGNO_PERSISTENCE_TESTSNO_OFFLINE_TESTSMISSING_SAFARI_TESTSconst 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);const report = await auditor.auditVueApp('./src');
if (report.hasBlockers()) {
console.error('DEPLOYMENT BLOCKED: Critical data safety issues found');
process.exit(1);
}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' };
}
});AskUserQuestion"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."