Every claim your code makes.
An LLM reads the code and surfaces its implicit claims — “this function handles null input,” “this API returns sorted results.” That takes semantic understanding no regex or AST parser has. This is the neural layer.
Verification that knows a real bug from a stale spec.
Assay extracts the claims your app makes, verifies each one against the code, then triages every failure. A real defect gets a fix your coding agent can apply. Spec drift means the code is right and the spec is stale — leave the code alone. And when it can’t tell, it says so instead of guessing.
A blind auto-fixer ships a security regression here. Assay tells your agent to stand down.
An LLM reads the code and surfaces its implicit claims — “this function handles null input,” “this API returns sorted results.” That takes semantic understanding no regex or AST parser has. This is the neural layer.
A deterministic oracle tests each claim — for code, real test execution in an isolated subprocess. The oracle doesn’t hallucinate; it runs the code and reports what happened. This is the symbolic layer.
Every failed claim is classified: real defect, spec drift, or uncertain. Real defects get a fix prompt your agent can apply. Spec drift gets flagged so nobody “fixes” correct code.
Claim extraction + dual-direction checking · U.S. Patent App. #63/980,048 · benchmarks and findings
npx tryassay assess .npx tryassay fix .uses: gtsbahamas/assay-action@v1lucid-mcp runs Assay inside Claude Code, Cursor, or Windsurf. Setup guide
Runs with your Anthropic API key, roughly $1–10 in tokens by repo size. fix applies the real defects, never the spec-drift ones. --no-publish keeps everything local.
One subscription buys both halves: the watching and the verifying. Your monitors’ critical findings already pass through Assay’s deep verifier before they reach your inbox, and your plan’s verification quota is spent in the Assay console — your Seatrial account signs in there.