Code Safety
NoFlake never modifies your application source code. Here's exactly what it reads, what it writes, and what it never touches.
The golden rule
Read-only on your code. Write-only to tests. Every file NoFlake writes goes into tests/e2e/ (generated Playwright test files) or .noflake/ (internal state). Your src/, app/, pages/, components/, lib/, and all other application directories are never modified.
What NoFlake reads (your code)
The scanner analyzes your project to understand what to test. It reads:
- Framework detection —
package.jsondependencies to identify Next.js, React, Vue, Svelte, Angular, and 9 other frameworks - Routes — Page components, API routes, dynamic segments (framework-specific file conventions)
- Database schemas — Prisma, Drizzle, TypeORM, Mongoose, Supabase, Knex, and raw SQL migrations
- Auth configuration — NextAuth, Clerk, Supabase Auth, Lucia, Firebase
- Forms & validation — Form components and validation patterns
All scanning is read-only. No source files are modified during scanning.
What NoFlake writes (test files only)
| Location | Contents | Created by |
|---|---|---|
tests/e2e/*.spec.ts | Generated Playwright test files | write, update, run --fix |
.noflake/manifest.json | Test metadata and hashes | write, update |
.noflake/test-plan.md | AI-generated test plan | write |
.noflake/coverage-map.md | Route coverage tracking | write |
.noflake/run-history.md | Pass/fail history per run | run |
.noflake/report.md | Latest run report | run |
.noflake/visual/baselines/ | Visual regression screenshots | write --visual, update --visual |
Per-command safety breakdown
| Command | Modifies app code? | Writes test files? |
|---|---|---|
noflake init | ❌ No | Creates config & directories only |
noflake write | ❌ No | ✅ Yes — generates new test files |
noflake update | ❌ No | ✅ Yes — patches existing test files |
noflake run | ❌ No | Reports only |
noflake run --fix | ❌ No | ✅ Yes — fixes failing test files |
No lock-in
Generated tests are standard Playwright .spec.ts files. You can read, edit, and run them without NoFlake installed. The .noflake/ directory is purely informational — delete it anytime and your tests still work independently.