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.
then request documents
get_evidenceownership- Dana Ruiz 35% · Wei Lee 25% · Halcyon Holdings 40%, owners unknown
check_with_resolve- Request documents SOP 3.3 · still needed: who owns Halcyon Holdings
get_evidenceHalcyon Holdings' owners- Priya Shah 100% · politically exposed person
check_with_resolve- Escalate SOP 4.3 · nothing still needed
submit_decisionescalate, SOP 4.3
How it works
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.
| Agent | Right outcome | Dangerous approvals | Cost per case | Time per case |
|---|---|---|---|---|
| Haiku 5.5, low effort, with Resolve | 180/180 | 0 | $0.0011 | 6.3 s |
| Opus 5.5, high effort, alone | 153/180 | 3 | $0.030 | 10.5 s |
| Haiku 5.5, low effort, alone | 143/180 | 6 | $0.0010 | 6.8 s |
| Opus 5.5, high effort, with Resolve | 180/180 | 0 | $0.037 | 11.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.
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
/resolveThe 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.
What's real and what's mocked
| Part | Here |
|---|---|
| Deciding a case from the rules | Real. The Dafny evaluator, with proofs that it never approves on an unknown and that filling in an unknown never undoes an answer. |
| Checking the rules | Real. Z3 on the spec, in your browser. |
| What each answer would change | Real. Worked out by Z3 and the evaluator when you ask. |
| The owner's questions and options | Recorded. Claude wrote them on 29 Oct 2026. Live calls happen in the mod. |
| The cases and their evidence | Mocked. Finding and reading evidence is a separate system; the six cases and their documents are made-up examples. |