Resolve

Turn natural language business rules into formal logic

Then let agents act on that logic.

Resolve turns a written procedure (an SOP) into rules and checks them with a solver for contradictions and gaps. The procedure's owner settles each one with a plain answer. Then the approved rules decide every case, and say exactly which facts are still missing. A fact nobody has established is unknown, never a no.

This prototype runs on a Know Your Business (KYB) procedure: the checks a bank runs to confirm who owns and controls a company before opening its account.

Written SOP
3.3Identify every individual who owns 25% or more of the entity, directly or indirectly. If ownership is not complete, request documents.
Rule · checked by Z3when unidentified ownership ≥ 25%
then request documents
Agent working Northwind Coffee Co. LLC EX-1
  1. get_evidence ownership
  2. Dana Ruiz 35% · Wei Lee 25% · Halcyon Holdings 40%, owners unknown
  3. check_with_resolve
  4. Request documents SOP 3.3 · still needed: who owns Halcyon Holdings
  5. get_evidence Halcyon Holdings' owners
  6. Priya Shah 100% · politically exposed person
  7. check_with_resolve
  8. Escalate SOP 4.3 · nothing still needed
  9. submit_decision escalate, SOP 4.3

How it works

When the SOP changes
SOPThe policy as written
SpecRules Claude drafts, each quoting its sentence
Z3 checks itDead rules, contradictions, gaps
Owner picks a fixEach option shown with the past cases it changes
Updated specApproved before it is used
The new version is checked again
The approved spec is what Resolve applies to every case.
For every case
Agent gathers evidenceFrom the evidence system
Case fileFacts, each with a source
Resolve applies the specNever approves on an unknown fact
Outcome, or what's missingWith the rules behind it
Missing facts go back to the agent as its next requests

Every part, its status and how it took shape: the system map.

A small model with Resolve beats a large one alone

The same case runner agent, tools and mocked evidence on 60 synthetic KYB cases, three runs each. Alone, the model reads the SOP and decides. With Resolve, the approved rules decide from what it gathered and name the facts it still has to get. A dangerous approval is approving a case the rules don't approve.

AgentRight outcomeDangerous approvalsCost per caseTime per case
Haiku 5.5, low effort, with Resolve 180/180 0$0.00116.3 s
Opus 5.5, high effort, alone 153/180 3$0.03010.5 s
Haiku 5.5, low effort, alone 143/180 6$0.00106.8 s
Opus 5.5, high effort, with Resolve 180/180 0$0.03711.3 s

Recorded 2026-10-30 · not live Runs from commit 9185858, recorded in bench/runs/. The evidence is mocked, and the answer key is the approved spec, so "right" means agrees with the policy owner's reading of the SOP.

Try it

The real core, running in your browser, with no install and no key. Change a case's facts and watch its outcome change. Check the rules with Z3, answer the owner's questions, see what each answer would change, and write the next version.

Open the demo

Take the tour

A replay of one recorded run on 29 Oct 2026: Z3 finds three problems in version 1, Claude writes a question and options for each, Resolve works out what every option would change, the owner answers two, version 2 flips Cedar Ridge Payments from escalate to approve and opens one new question, and version 3 is approved with no findings. Every word on it is from the files that run wrote.

Open the tour Recorded 29 Oct 2026 · not live

Install the mod

Resolve is meant to be used as a pane beside the chat in Claude Code: the spec's open questions for the owner, every case's outcome and case file, and approving a version. In Claude Code:

/plugin install resolve --marketplace jinalex/resolve-process-factory
/resolve

The repository is private for now, so installing needs read access to it. Ask the maintainer. From a checkout you can also load it directly with claude --plugin-dir mod/resolve. Then run pnpm resolve at the repo root to write the files the pane reads.

Run it from a checkout

Needs Node 22.23.4 or later and pnpm. Commands that call Claude need RESOLVE_ANTHROPIC_API_KEY; the rest run offline.

git clone https://github.com/jinalex/resolve-process-factory
cd resolve-process-factory && pnpm install
pnpm test            # outcomes, Z3's checks, Z3 agreeing with the evaluator
pnpm examples        # each example case's outcome and why
pnpm check-sop       # Z3's findings on the KYB SOP
pnpm resolve         # write .resolve/ for the pane
pnpm write-options   # Claude writes the owner's questions (needs the key)
pnpm next-spec       # the owner's answers become the next spec version
pnpm build-site      # this page, into site/dist/

How it's built

The system map shows each part of Resolve, whether it is built, in review, planned or mocked, where its code lives and the decisions behind it, with a timeline of how it took shape pull request by pull request.

Open the system map

What's real and what's mocked

PartHere
Deciding a case from the rulesReal. The Dafny evaluator, with proofs that it never approves on an unknown and that filling in an unknown never undoes an answer.
Checking the rulesReal. Z3 on the spec, in your browser.
What each answer would changeReal. Worked out by Z3 and the evaluator when you ask.
The owner's questions and optionsRecorded. Claude wrote them on 29 Oct 2026. Live calls happen in the mod.
The cases and their evidenceMocked. Finding and reading evidence is a separate system; the six cases and their documents are made-up examples.