ETOT
ETOT
TOOL · RESEARCH SYNTHESIS
Motif
type
agentic loop
version
0.2 · MCP
surface
MCP server · CLI · live on the Figma Community
author
Eric Frye
date
09.2026
license
MIT · data CC-BY-NC
Launch listing ↗

Research synthesis that shows what survived.

Turns a folder of interview transcripts into findings, then tries to knock them down — and shows you what survived. Fifteen transcripts, 101,000 words: thirty minutes, $4.53, twenty insights. Every insight carries its receipts, its confidence, its counter-evidence and the critic's outstanding objections. Read the case study for how it was built and measured.

The Motif plugin's synthesis result screen open in FigJam, over a board of stickies: five tiles reading 21 insights, 2 contested, 3 rounds, $1.22 API cost, 13.2 minutes, with insight cards listed below.
Motif running inside FigJam — live on the Figma Community.
1.7 → 0.7unsupported claims out of every four checked — a single prompt, then the loop
1.3 → 0.7confidence errors per report
75% → 69%theme coverage — lower than a single prompt, reported as such
30 min · $4.53fifteen transcripts, one command · manual baseline ≈ 9 h
surface
MCP server · CLI · FigJam via Figma MCP
license
MIT · data CC-BY-NC
what it does

Turns a folder of interview transcripts into findings, then tries to knock them down — and shows you what survived.

who it is for

Teams and freelancers who synthesize in FigJam or Miro with transcripts in a folder — no research platform, just stickies — and who have been burned by a confident AI summary.

01

What it does

in detail

Motif reads your transcripts and produces eight to fourteen insights. A critic — the part that checks the work — tests each one against the exact words it quotes, and reports what is unsupported, missing or overconfident. A reviser then repairs what it can. The loop stops on a pass, on no progress, or after three rounds, and the report says which. Every insight carries its receipts — the exact turns it came from, one turn for each time a person speaks. It also carries its counter-evidence, a confidence level worked out from the evidence, and any objection the critic still had when the loop stopped.

02

The loop

produce, check, revise

Anything that can be checked mechanically is checked before the model is asked. The model is asked only what only a reader can answer. A missing verdict is a failure, never a pass.

architecturecore/ + synth/ + config/synth.yaml
transcriptsdocx · txt ingest[name:0042] intakeHaiku · ×N synthesisSonnet deterministicchecks turn exists · not the interviewerreceipt matches the transcriptconfidence ≤ sources · no deletion criticSonnet · full corpus unsupported · missing countermerged · vague · missing theme revise ×≤3 config/synth.yamlmodels · thresholdsrules, plain language runs/<id>/every prompt, every verdict report.mdcontested flags on stop: critic_pass · no_progress · max_iterations
Anything that can be checked mechanically is checked before the model is asked. The model is asked only what only a reader can answer.
03

Install and run

five minutes

A Python environment, an Anthropic API key, one command. Rules and thresholds live in a config file in plain language.

install · README
$ pip install etot-motif $ echo "ANTHROPIC_API_KEY=…" > .env $ motif ./transcripts --out report.md $ motif-mcp # MCP server, stdio from source: git clone github.com/sleepycobalt/motif && pip install -e . · config/synth.yaml holds models, thresholds and the critic rules in plain language
The install was tried by the builder as a stranger before it was written down.
04

The eval

headline

Three conditions on the same five transcripts, three runs each. The scorer didn't know which result came from which condition. They were scored against a ground truth built by hand in advance — sixteen themes and twelve traps. The loop more than halved unsupported claims and cut confidence errors. It also lost eighteen points of coverage in the first eval, most of which a recall rule then recovered. Coverage is still below a single prompt. That result is published, not hidden.

docs/eval1-results.md · docs/eval2-results.md in the repo

full write-up

The case study — ground truth, what broke, both evals, the trace, the honest ledger.

05

Pricing

today

Free. MIT-licensed, so you run it on your own API key. A hosted tier is not yet decided.

06

Still open

OPENThe loop never passes. Every run stops at three rounds with two or three objections still outstanding.
OPENOne dissenter still gets missed. The loop also produces at most one finding per turn.
OPENUsers: one recorded FigJam run (part 2). No second team yet.
ETOT · Vienna & Minneapolishello@etot.designPrivacy© ETOT 2026