Skip to content

Verification Engine

Catch what your agents break, while they work.

Panolayer checks every change against everything that depends on it, on every save and every time an agent finishes. When it flags a bug, you get the line, the rule it broke and the steps to reproduce it.

Free to start · No credit card required

Verification Engine · find the bug, fix it, review the result

A real verification run finds a file-handle bug in writeArchive. Fix hands it to Panolayer Agent, the change is checked again, and the result is presented for review before merging.

Full capture · scroll to inspect the details

An agent changes getUser() to return null instead of raising.

It compiles. The getUser tests pass. Six callers read user.name without a null check, and they fail in staging, three days later. Nothing in the diff told you they existed.

How it works

From your source to a bug you can reproduce

Five steps run on every save and every time an agent says it’s done.

01

Parse your code

Panolayer parses your repository like a compiler: files, modules, functions, classes, imports and the full call graph. Symbols are resolved from the source, not guessed by a model.

How Architecture works
Architecture · parsed from source

Architecture · parsed from source

Panolayer Studio architecture map connects the sample repository to its routes, components and shared libraries.

Full capture · scroll to inspect the details

02

Work out what the code expects

Panolayer derives rules for how each function should behave, like “returns a user or raises, never null.” Add your own rules, or correct one it got wrong.

The rule the function must follow

The rule the function must follow

The file rule requires writeArchive to close the descriptor opened by fs.openSync on every return path, including when a write throws. An Add a file rule field appears below it.

Full capture · scroll to inspect the details

03

See exactly what broke

A failure shows the function, the rule it broke, what actually happened, where, and which callers it affects. For confirmed bugs, you also get the input that makes it fail, so you can run it and watch it break.

The failure, anchored to the source

The failure, anchored to the source

The review explains that writeArchive opens a file descriptor at line 12 without closing it on the return at line 25 or when fs.writeSync throws, then describes the repair.

Full capture · scroll to inspect the details

04

Only what this change broke

Results are compared with your code before the change. Failures that were already there are labeled pre-existing, so you see what’s new, not a backlog.

New failures vs. the project baseline

New failures vs. the project baseline

Worktree verification reports no new failures or rule regressions and separately labels two pre-existing failures that do not block the merge.

Full capture · scroll to inspect the details

05

Fix it, or fix the rule

Fix the code yourself, or send the failure to Panolayer Agent or your own agent with the affected callers as context. If the rule was wrong, correct it. Either way, verification runs again.

Hand the failed rule to Panolayer Agent

Hand the failed rule to Panolayer Agent

The Fix menu beside the writeArchive file rule offers Panolayer Agent to work on the failure.

Full capture · scroll to inspect the details

Persistent memory

It learns how your code should behave

Every correction is kept with the project. Your agents start each session already knowing it, and the checks get sharper the more you use Panolayer.

Project context · editable function descriptions

The writeArchive function description explains that it writes posts to a JSON Lines file and returns its path. A pencil control edits the description, with Verified · No issues found displayed below.

Full capture · scroll to inspect the details

Where it runs

Two ways to catch what your agents break

The same Verification Engine runs in the Mac app and in your editor.

Agents

Works with the agents you already use

The Panolayer Verification Engine checks the code regardless of who wrote it: you, the Panolayer Agent, or any of the 20+ supported agents in the Agent Marketplace.

  • Panolayer AgentPanolayer Agent
  • AiderAider
  • Claude CodeClaude Code
  • Cline CLICline CLI
  • Codex CLICodex CLI
  • CrushCrush
  • Deep Agents CodeDeep Agents Code
  • Gemini CLIGemini CLI
  • GitHub Copilot CLIGitHub Copilot CLI
  • GooseGoose
  • Kilo Code CLIKilo Code CLI
  • Kimi CodeKimi Code
  • Letta CodeLetta Code
  • mini-SWE-agentmini-SWE-agent
  • Mistral VibeMistral Vibe
  • Open InterpreterOpen Interpreter
  • OpenClawOpenClaw
  • OpenCodeOpenCode
  • Pi Coding AgentPi Coding Agent
  • PlandexPlandex
  • Qwen CodeQwen Code
Browse the Agent Marketplace

FAQ

Questions

Something else? Contact us and we’ll answer.

What is a rule?

An expectation about how code behaves, like “returns a user or raises, never null.” Panolayer derives most rules from your code, and they run on every change.

Can I write my own rules?

Yes. Your rules run alongside the ones Panolayer derives.

What happens when a rule is wrong?

Correct it. The correction is kept with the project and shapes every check after that.

When does verification run?

When you save a file on your branch, and when an agent marks a task done.

How fast is it?

Results come back in seconds, fast enough to run the agent, verify, fix and verify again without leaving the task.

Is my code sent to a model?

Your repository and its index stay on your Mac unless you sync or share them. Features that use a model send the relevant excerpts to the provider you set up, under that provider’s terms. More on the Security page.

Does it block my merge?

It holds agents, not you. Agent work is verified before you decide what merges, and you can always commit and merge yourself. Failures stay listed.

Does it replace my tests?

No. It runs alongside them, and where you configure it, it runs your tests, builds and type checks too.

Trust what your agents ship.

Free to start · No credit card required

Next: Panolayer Studio