Software for work that has to be right.
Signal Foundry builds Tenali. It’s an open-source review queue: your agent hands you the cases it can’t call, you judge them, and after enough of those you know how far the thing can actually be trusted.
- 01ProposeThe agent sets the pen at the confidence it holds in the next item.
- 02JudgeOne key from a person: agree, fix or reject. The verdict is inked where it was made.
- 03The stripEach verdict moves the boundary. Overnight, a change ships only if it beats the last version. Where the trace levels off is the finding.
Most AI apps are right most of the time. Tenali counts the mostly.
Clear cards from the keyboard, a few seconds each. Tenali does the arithmetic: a pass rate with an honest interval, and the threshold your AI has earned, if it has.
- Localone SQLite file in your project · nothing leaves
- Judgenever calls a model · grades any model’s answers
- HarnessClaude Code · Codex · anything that speaks MCP
- ServicePython API, in process
- StatusApache-2.0, source opens with the release
$ tenali setupTenali is set up in receipts .mcp.json · skill · 2 agents · tenali.db$ tenali uihttp://127.0.0.1:7847/queue · 12 cards 07/12 total matches the receipt?p 08/12 total matches the receipt?f matched the subtotal 09/12 total matches the receipt?p batch clear · 10 pass · 2 fail · 0 defer> get_statsreceipt-total · rubric v2 · 48 labels pass rate 85.4% wilson 95% [72.8, 92.8] calibration 0.9+ bucket · 38 cases · 97% agree threshold 0.90 earned · below it, a person decides> suggest_next_batch12 cases from the 0.8 – 0.9 bucket · 41 seen · 27 more to certify queued · tenali ui when you aredemo project
The loop runs daily now.
Every system I’ve built promised to learn from its users. The loop was real; it just ran quarterly, because engineering time was the bottleneck. A coding agent can now turn a day’s corrections into a new version by morning, so the loop runs daily. See the whole loop
Models that return a decision need a referee.
A new kind of model returns a decision and a confidence instead of a paragraph. TypeSafe AI calls them System One models; structured outputs from any LLM promise roughly the same. A confidence is a claim, and somebody has to check it.
Tenali is the check. Post the answers the model gave and it grades them against your labels: agreement, a calibration table with its chance floor, and the lowest confidence that has honestly earned automation. It never calls the model itself. Read the API
| Confidence | Cases | Agree | Earned |
|---|---|---|---|
| 0.90 – 1.00 | 38 | 97% | c ≥ 0.90 |
| 0.80 – 0.90 | 41 | 88% | no |
| 0.70 – 0.80 | 27 | 70% | no |
| < 0.70 | 14 | 43% | no |
| chance floor | 120 | 62% | — |
We run it on our own apps first.
Signal Foundry is a research lab in Toronto: one person and a crew of agents. We build apps for work that has to be right and run Tenali on them first. Nothing below has earned automation yet, and I’d rather show you that than a demo that works 80% of the time.
The method is on How it works. What we learn goes in Writing.
Tokens are cheap.
Verified judgment is scarce.
The argument the company comes out of, written down once, properly, with the arithmetic. Read the essay
The research list
Essays on measuring what AI can actually take over. One a month at most, no promotion.