Launching today

SharpLogic
Count the exact assignments where your agent stalls
1 follower
Count the exact assignments where your agent stalls
1 follower
SharpLogic is a static verifier for AI agent workflows. Give it a workflow graph (nodes, edges, guard conditions — LangGraph-style JSON) and it counts, exactly, how many guard assignments make it deadlock, dead-end, or livelock — before runtime. No sampling: a zero-dependency Rust #k-SAT counter plus a structural pass returns the trap count and concrete witnesses — which node gets stuck, under which conditions. Browser trial needs no signup; the CLI runs fully offline.



Free
Launch Team

CloudflareStill paying to deploy your apps? Try Cloudflare Workers for free
Promoted
Hi Product Hunt — I'm David, an indie builder. I built SharpLogic after OpenAI's ETH post this week.
The problem: sampled evals can't prove an agent workflow won't stall. 20 routing variables = 1,048,576 guard combinations, and 10,000 evals cover 0.95% of them. The traps live in the unsampled 99% — like an exit edge copy-pasted with the same guard as the retry loop, so a single state closes every door at once and the agent sits there burning tokens.
SharpLogic compiles the graph into a trap-encoding CNF and counts the stall assignments exactly, with a zero-dependency Rust #k-SAT counter verified against brute-force enumeration. You get a number and witnesses, not a vibe.
Try it in your browser, no signup: paste a graph JSON at sharplogic.vercel.app/#try — the demo graph answers in ~150µs. Full CLI and source: github.com/reacherwu/SharpLogic
Honest limits: the local counter caps at 64 variables; exact counting is worst-case exponential (sparse real-world workflow graphs still solve in microseconds); and no, this doesn't prove OpenAI's ETH claim — that paper is still under expert review. This is engineering inspired by it.
One question: which format do you define your agent workflows in — LangGraph JSON exports, code, a visual builder? Your answer picks the next importer I build.