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.

Fig. 1 — The verdict drum, simulatedDrag the drum to turn it. Press A, F or R to judge the next item.
  1. 01ProposeThe agent sets the pen at the confidence it holds in the next item.
  2. 02JudgeOne key from a person: agree, fix or reject. The verdict is inked where it was made.
  3. 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
Fig. 2 — A session, replayed
$ 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 are
demo project

The loop runs daily now.

Fig. 3 — Two cadences, one year, against the barJanone year, schematicDecearned at this lineDaily365 releasesQuarterly4 releasesAgreement with expert verdicts

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

Fig. 4 — A judge, graded
ConfidenceCasesAgreeEarned
0.90 – 1.003897%c ≥ 0.90
0.80 – 0.904188%no
0.70 – 0.802770%no
< 0.701443%no
chance floor12062%—
demo project

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.

Fig. 5 — One of our own apps, under Tenali0%25%50%75%100%earned at 90%Clip finder · podcast audiopass · labelsSpeaker identity is correct34.9% · 63Segment stands alone75.0% · 60Voice is the same person63.2% · 19our labels, as of 2026-10-07

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.