migration-reversibility — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited migration-reversibility (Agent Skill) and scored it 100/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 0 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 0 flagged
Every scanned point with the score it earned and what moved between them.
First recorded scan — no prior version to compare against.
The primary manifest — the file an agent reads to learn what this artifact does.
Part of shipsafe — offline deploy-safety skills. Every script is stdlib-only Python 3.8+; nothing leaves the machine.
python3 scripts/check_migrations.py <migrations_dir_or_file> [--json]Three finding categories:
DISABLE ROW LEVEL SECURITY is critical anywhere. For Supabase projects (detected via path or auth.uid()/anon-grant signals — non-Supabase databases are deliberately not flagged), tables CREATEd without a matching ENABLE ROW LEVEL SECURITY are flagged high: on Supabase the public anon key can query any table in the public schema, so a table without RLS is publicly readable and writable. This is the #1 documented cause of vibe-coded app data breaches; when it fires, walk the user through deny-by-default policies.The governing rule, which is worth stating to the user verbatim: a migration is deploy-safe only if the previous version of the app still works after it runs. That's what makes rollback possible.
For flagged RENAMEs and DROPs, recommend the expand/contract pattern: add the new thing → dual-write → migrate readers → remove the old thing in a later release. SQL comments are stripped before analysis, and a backup statement in the same file downgrades DROP severity.
Exit codes: 0 clean, 1 findings.
All paths below are relative to this skill's directory (migration-reversibility/).
~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.