Assay

Verification Inventory

What Assay checks.

63+ verification dimensions across 5 layers. Deterministic checks that can't hallucinate, plus LLM-based analysis for everything else.

10
Formal checks
39
Integration checks
5
Claim categories
5
Gap types
8
Check strategies

Formal Verification

10 checks

Deterministic. Zero LLM. Can't hallucinate.

function_existsHallucinated function/class declarations
parameter_checkWrong parameter count
error_handlingMissing try/catch, .catch(), if err != nil
null_checkMissing null/undefined/nil handling
type_annotationMissing type safety annotations
sql_parameterizedSQL injection vulnerabilities
input_validationMissing input validation (zod, joi, yup)
arithmetic_correctnessMath errors via safe expression parser
api_misuseNon-existent APIs (.flatten, .has_key)
undefined_referenceReferences to undefined variables/imports

Also includes: safe arithmetic evaluator (recursive descent parser), 16+ known-bad API patterns, 340+ built-in identifier allowlists per language

Integration Checks

43 checks

Framework-specific. Pattern-based. 8 strategies.

Electron IPC & Security11
IPC handler coverageStub functions in preloadnodeIntegration enabled (XSS to RCE)contextIsolation disabledMain/renderer boundary violations
React6
Missing Router/Suspense/ErrorBoundaryUnreachable page componentsLinks to undefined routesContext used without Provider
Next.js6
'use client' missing for hooksServer/client boundary violationsMissing default exports in pagesgenerateMetadata in client components
API Integration3
Fetch calls to undefined endpointsSupabase function without edge functionMissing error handling on fetch
Database3
Supabase tables without RLSCode references non-existent columnsQuery return type mismatches
Auth & Secrets4
Unprotected routes with sensitive dataMissing environment variablesHardcoded secrets in sourceMissing CORS configuration
Express.js4
Auth middleware after route handlersMissing error middlewareAsync routes without error handling
Web / Generic6
Form actions without handlersDead event listenersMissing CSS classesImages without alt text

Claim Extraction

5 checks

Every implicit promise code makes, surfaced and categorized.

Data Privacy

Collection, storage, sharing, retention, deletion, consent

Security

Encryption, authentication, access control, vulnerabilities

Functionality

Features, capabilities, performance, limits, SLAs

Operational

Support, availability, maintenance, backup, disaster recovery

Legal

Liability, indemnification, dispute resolution, IP, terms changes

Each claim receives a severity: critical, high, medium, or low. Claims are verified individually against the actual codebase with confidence scores.

Intent Analysis

5 checks

What the application should do vs. what it actually does.

Extracts from codebase

User Flows
Data Model
Auth Model
Feature Map

Gap types detected

missing-flowEmpty route handlers or stubs
dead-codeUnreachable or unused code
unguarded-routeEndpoints without auth checks
orphaned-tableDatabase tables never read or written
incomplete-flowUser journey that starts but never completes

Check Strategies

8 checks

How integration checks execute. All deterministic, zero LLM calls.

pattern_presence

Scan for required patterns

pattern_absence

Assert patterns do NOT appear

cross_reference

Match source to target definitions

import_reachability

Detect unreachable/dead code

response_shape

Handler/preload format match

conditional_presence

If A exists, B must exist

file_reference

Referenced paths exist on disk

ordering

Declarations in correct order

Try it on your codenpx tryassay assess /path/to/project