What We Check
132 checks across 25 categories
19 core checks are free and open source. Activate a license to unlock all 132 checks including determinism, async safety, type validation, and more.
Free
Always included (19 checks)
๐ก
Security
7 checksSEC001Hardcoded passwords, API keys, and secrets(Py, JS/TS, C#, Go, Rust, Ruby)SEC002SQL queries built with string concatenationSEC004Non-cryptographic random for security tokens
and 4 more checks
๐ฎ
C# / Unity
3 checksCS001async void methods that crash on unhandled exceptions(C#)CS002Debug.Log / Console.WriteLine left in production code(C#)CS003GameObject.Find / GetComponent inside Unity Update() loops(C#)
๐
Schema Validation
2 checksSCHEMA001Pydantic field nullability mismatches(Python)SCHEMA002Pydantic/SQLAlchemy field type misalignment(Python)
โจ
Quality Essentials
2 checksQUAL001Silently swallowed exceptions hide real bugs(Py, JS/TS, C#, Go, Rust, Ruby)QUAL009Files too long to review effectively
๐
Project Setup
2 checksPROJ001Missing CLAUDE.md for AI assistant contextPROJ005CLAUDE.md tracked in git but should be gitignored
๐
Session Safety
1 checkSESS002Thread-unsafe database session sharing
๐
Structure Essentials
1 checkSTRUCT001Multiple classes in a single file(Python)
โก
Async Essentials
1 checkASYNC001Async function called without await(Py, JS/TS)
Pro
Unlock with a license (113 checks)
๐
Extended Security
9 checksSEC007OAuth callback missing state validation(Py, JS/TS)SEC013Missing security headers on HTTP responses(JS/TS)SEC017Regex-based HTML sanitizer can be bypassed(JS/TS)
and 6 more checks
๐ฏ
Determinism
9 checksDET001Dictionary iteration without sorting causes flaky behaviorDET005Random without seed causes non-reproducible results(Py, JS/TS)DET009Uncached LLM calls break reproducibility and waste tokens
and 6 more checks
๐
Performance
7 checksPERF001Database calls inside loops (N+1 queries)(Py, JS/TS)PERF005Render-blocking font imports slow first paint(JS/TS)PERF007Public pages without a CDN configured(JS/TS)
and 4 more checks
๐
Code Quality
17 checksQUAL004Mutable default arguments shared between calls(Python)QUAL011Functions with excessive cyclomatic complexityQUAL014Case-insensitive email comparison missing
and 14 more checks
๐ท
Type Safety
12 checksTYPE008Explicit 'any' type usage defeats TypeScript's purpose(TS)TYPE009process.env.VAR! non-null assertion can crash at runtime(TS)TYPE013JSON.parse without runtime validation is unsafe(Py, TS)
and 9 more checks
โฑ
Async & Concurrency
5 checksASYNC002Blocking calls inside async functions(Py, JS/TS)ASYNC003Fire-and-forget tasks without error handling(Py, JS/TS)CONC001Check-then-act race conditions
and 2 more checks
๐
API Design
6 checksAPI001API calls without error handling(Py, JS/TS)API005Frontend/backend type definitions drift apartAPI006Shared types defined in multiple places
and 3 more checks
๐
tRPC
4 checksTRPC001tRPC procedures without input validation(TS)TRPC002Inline Zod schemas instead of shared types(TS)
and 2 more checks
๐ฅ
Frontend
9 checksFRONT002window/document access without SSR guard(JS/TS)FRONT005useEffect used for side effects that should be event handlers(TS)FRONT007Unbounded AI output rendered in the DOM(JS/TS)
and 6 more checks
๐งช
Testing
10 checksTEST001Tests marked as skipped accumulate silently(Py, JS/TS)TEST007Critical user flows missing E2E test coverageTEST009Playwright waitForTimeout instead of event-driven waits
and 7 more checks
๐งฉ
Project Structure
8 checksSTRUCT004Direct sys.path manipulation breaks packagingSTRUCT010No clear frontend/backend separation(JS/TS)STRUCT011Duplicate modules across packages cause import ambiguity
and 5 more checks
๐ง
Memory Safety
4 checksMEM001Unbounded database queries load entire tables into memoryMEM003In-process accumulators grow without boundMEM004Global state singletons break in worker / serverless environments
and 1 more check
๐
Datetime
3 checksDATE002Naive datetime without timezone causes silent bugsDATE003Database datetime used without timezone awarenessDATE004getDay() returning UTC day mismatches local expectations
โธ
Infrastructure
5 checksKUBE001Local filesystem used for application data in containersKUBE002Ingress missing SSL redirectRATE001API endpoint without rate limiting(Py, JS/TS)
and 2 more checks
โ
Project Config
3 checksPROJ002Project not using git version controlPROJ003Missing pyright configurationPROJ004Depending on beta / pre-release packages
๐
Session (Advanced)
1 checkSESS001Database session passed to background task
โฟ
Accessibility
1 checkA11Y001Button text may be invisible on background color
Try it now
Free tier runs instantly with no signup. Upgrade anytime to unlock all 132 checks.
pip install stablestack