The loop
What a run needs
A task is one markdown file carrying three things: the world to boot, the instruction to hand the agent, and what counts as success. The agent under test receives the instruction and never the criteria, because it is sitting the exam rather than marking it. Write a task documents every section that file can carry.Why the twin resets
A digital twin is a stateful service that reproduces the response shapes and error semantics of a real API without ever calling it. The property that makes it useful for testing is not the emulation, it is the reset. Every run starts from the task’s seed state, and the twin returns to that state between runs. Two runs that score differently differ because the agent behaved differently, not because the world moved underneath them. That is what makes a number from yesterday comparable to a number from today. Which endpoints a twin implements, and how deeply, differs per API. How we pick what a twin covers is the method, and status.pome.sh publishes how each surface measured against the real API today.Why the score is code, not a judge
Every criterion a task declares is one of two kinds, and the difference decides what the score means.[code] criteria are checked by the grader: queries over the twin’s final
state and over the tape, the record of every call the twin served and every
mutation that landed. These are what the score is out of. Each verdict comes back
with the evidence pointer it was read from, so a failure hands you the row it read
rather than a claim about it.
[model] criteria are the judgment calls no query answers, like whether the
agent explained itself or noticed that a label was contextually wrong. The
narrator reads those and answers them in prose. Its reading never enters the
denominator, so a task with three [code] criteria and two [model] ones scores
out of three.
Keeping the LLM outside the denominator is deliberate. A score you can reproduce
is a score you can regress against, and one that moves between two identical runs
cannot gate a merge.
What the run leaves behind
The tape outlives the run. It is what the grader read, what the narrator read, and what you can export into an eval stack you already have. The twin’s state before and after the agent sits beside it, so a criterion can assert on the world the agent left behind rather than on the account it gave of itself. Hosted runs also land on the dashboard, with the full trace, the score broken down per criterion, and the narrator’s handoff when something failed. pome run documents the artifact directory and every file in it; Use your existing eval stack grades a Pome run in Braintrust or LangSmith instead.Next
The graded capstone
The exam you just read about, end to end: a scored run, a failure, a
one-sentence fix.
Your own agent
Point Pome at your own repo and get a scored run.
Dashboard
Where runs, sandboxes, and the narrator’s handoff live.