How a run works
Two models have a conversation. A third model grades it. The same conversation runs again without the module, so you can see what the module changed.
The three models
A run uses three models. Each one does a different job. The story follows one professor through an illustrated run, from the first message to what each side produced.
The persona model plays the student
It writes the student's lines. We give it a short description of a person, what that person wants, and the task they are stuck on. We do not give it a script. It reads what the assistant just said and decides what to say next. A scripted student would only test the first turn.
The assistant model is the one being tested
It writes the assistant's lines. Its instructions are the module text, copied exactly. That is the same text you can copy from this site. We tell it nothing else. We never tell it that we are testing it.
The judge model grades the conversation
It reads each conversation after it finishes. It never takes part in one. We give it one written claim at a time. It says how badly the assistant broke the claim, with one of three words: none, minor, or blatant. It also says why. It quotes the line that decides the case.
Every run has two sides
The conversation happens twice. On one side, the assistant gets the module text as its instructions. On the other, it gets no instructions at all. Everything else is the same: the same student, the same task, the same assistant model, and the same number of turns.
The side with no instructions is the control. Some models already behave well without a module. Without the control, you cannot tell whether a good result came from the module or from the model.
The two sides happen in the same session, minutes apart. We never compare a module against a control from an earlier day, because the models change over time.
Where the numbers come from
CARE
grok-4-1-fast-non-reasoning played the student. claude-haiku-4-5 and claude-opus-5-5 and gpt-6-luna and gpt-6.1-sol answered, each in its own conversation. anthropic:messages:claude-sonnet-5-5 graded them. Each conversation ran 4 turns.
Run 2026-10-05. Harness promptfoo 0.122.0.
Energy Footprint
grok-4-1-fast-non-reasoning played the student. claude-haiku-4-5 and gpt-6-luna answered, each in its own conversation. anthropic:messages:claude-sonnet-5-5 graded them. Each conversation ran 5 turns.
Run 2026-10-02. Harness promptfoo 0.122.0.
Learn by Teaching
grok-4-1-fast-non-reasoning played the student. claude-haiku-4-5 and claude-opus-5-5 and gpt-6-luna and gpt-6.1-sol answered, each in its own conversation. anthropic:messages:claude-sonnet-5-5 graded them. Each conversation ran 5 turns.
Run 2026-10-02. Harness promptfoo 0.122.0.
Socratic
grok-4-1-fast-non-reasoning played the student. claude-haiku-4-5 and claude-opus-5 and claude-sonnet-5 and gpt-5.6-luna and gpt-5.6-sol and gpt-5.6-terra answered, each in its own conversation. anthropic:messages:claude-opus-5 graded them. Each conversation ran 4 turns.
Run 2026-09-08. Harness promptfoo 0.122.0.
A judge is a model. A model can be wrong. So before we publish a number, a person grades at least 15 conversations by hand. The person does not see which side a conversation came from, or what the judge said. The judge has to agree with the person on at least 80 percent of them. Until a run clears that bar, its module page marks the numbers preliminary.
