/legal-check: find the legal traps in your vibe-coded app

A free Claude Code skill (MIT) by Shogo. It audits a vibe-coded web or mobile app for the things most likely to get it sued, fined, breached, or rejected from the App Store. Then it fixes what code can fix, in your app's own stack. Not legal advice.

From the reels

Reel 08 · 1 tool · September 28, 2026

  • 01/legal-check23 checks, reported by risk (High → Medium → Low): security that creates liability (secret keys in client code, an open database, admin routes with no auth, raw card data, login limits), privacy & tracking (session replay, ad pixels before consent, Google Fonts, privacy policy and terms, account deletion, "Do Not Sell or Share"), kids (COPPA, app-store age ratings), marketing (CAN-SPAM, TCPA, FTC testimonials), payments (auto-renewal, refunds), content & IP (DMCA, report and block, trademarks, AI disclosure) and accessibility (ADA/WCAG basics).github.com/Shogo-nfrealmusic/ship-legalOpen on GitHub

    Install · paste into Claude Code

TIPThen runin your project. It also answers to /legal-check:legal-check.

How it works

  1. 1Scan (read-only). A bundled shell script detects the stack, then collects evidence as file:line for every check. It skips node_modules, build output, lockfiles, and files over 1 MB, and it redacts secret values.
  2. 2Judge. Claude reads only the files the scan points at, then applies fixed rules. Each check comes back as RISK (the code shows the problem; it gets a priority), CHECK (only a human can settle it, e.g. whether a testimonial is real, or a dashboard setting), PASS or N/A.
  3. 3Report, then ask once. You get the summary table first, then one short block per RISK (Found / Risk / Fix), then one question: apply the fixes?
  4. 4Fix. This only happens after you say yes. It edits your code with your stack's own idioms. It never runs installs, migrations, deploys, or git commits. Then it runs your project's own checks: npm run build/typecheck/test, pytest, node --check, …
  5. 5Human TODO. A list of what code can't do. For example: rotate leaked keys, apply the new database rules, add your postal address, register a DMCA agent, answer the app-store rating questionnaires, get a lawyer's review.

Or copy the skill folder (in a terminal)

Example

/legal-check

legal-check · lovable · vite-react + supabase (lovable)
14 RISK (4 High) · 0 CHECK · 0 PASS · 10 N/A

 ID  Risk    Check                               Where
 S1  High    Secret keys exposed                 .env:3
 S2  High    Database open to anyone             supabase/migrations/…_init.sql:1
 S3  High    Admin area without auth             src/pages/Admin.tsx:8
 P2  High    Ad pixels without consent           index.html:10
 P5  Medium  Privacy policy & terms              (no /privacy, /terms)
 P6  Medium  Account deletion & data export      (none)
 ...
 A1  Medium  Accessibility basics                src/index.css:4
 P4  Low     Google Fonts from Google            index.html:8
N/A    S4 Card data · S5 Hosted auth · P1 Replay · ...

Real output on examples/lovable-vite-supabase, a Lovable-style React + Vite + Supabase app built with seeded traps. After yes, it edited 27 files and npm run typecheck and npm run build still passed. Full runs in the repo's examples/runs/.

Good to know

  • This is not legal advice. It's an automated check of common traps, not a full legal review, and it can miss things. Have a lawyer review your policies and flows before you rely on them.
  • Works across stacks: Next.js, React + Vite (Lovable / Bolt), plain HTML, Vue/Nuxt, SvelteKit, Astro, Remix, Expo (React Native), Flask, FastAPI, Django, Rails, Supabase, Firebase and v0 exports. Fixes were tested end to end on five: Next.js, Vite + Supabase, plain HTML, Expo + Firebase and FastAPI.
  • The audit took 30–62 s in our runs. Applying the fixes took 2.5–6 min.
  • Tip: before you say yes, press Shift+Tab until the footer says "accept edits", so it doesn't ask before every file edit.
  • Fixes are drafts to review: policy, terms, refund and DMCA pages are full of TODO(legal-check) placeholders, and new database rules are written but not applied.
  • It answers in the language you ask in, for example /legal-check このアプリ大丈夫? gets a Japanese report.

Free for people building with Claude Code

Two of us run a six‑figure business on this Claude Code setup.

Most setups forget who you are every session. This one knows your goal, pushes back when you drift, and checks its own work. Take the starter version. It takes 15 minutes to set up.

claude · your-notes/

✻

CLAUDE.md

  • START-HERE.md
  • CLAUDE.md
  • prompts/interview.md
  • agents/verifier.md
  • diagnostic.md

Confirm your email and the download starts. One email a week after that, unsubscribe any time.

MORE LIKE THIS

I break down one AI tool you can actually use in every reel.