You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
This issue is the roadmap. It carries the order and the reasoning; the milestones
carry the contents. Nothing is listed twice, so nothing can disagree with itself.
LOOPS.md — what the benchmark found and whether fixing it
worked
Where we are, 29 August
The page is live./evals and /evals.md publish from a release rather than from
whatever ran last, so an automated run can no longer move the public numbers.
Three releases cut. v0.1.0 the baseline, v0.2.0 a correction: eight of the twenty
failures published in v0.1.0 turned out to be our own scoring, in two scenarios, both
cases of a scorer asserting how an outcome was reached rather than whether it was.
Corrected, frontier agents came out level at 3 failures of 30 each — which closed the
"nearly every failure is Codex" finding as not confirmed.
The leak is contained and the page is live. Publishing is not finished: the release
helper is unbuilt. The two gaps that shipped knowingly — the page never saying what the
paired columns mean, and the weaker model published without a caption — were closed as
not planned on 29 August. The page carries the scoreboard; anyone wanting method comes
here. #29 and #30 carry the reasoning.
Publishing is held right now, and the next thing anyone does should account for it. #62 put "Do not ask clarifying questions" into the base prompt on 27 August — the one
string every cell shares — so every row measured before then was measured under a
different treatment. EVALS_PUBLISH=false until a snapshot exists that was measured end
to end under the current prompt. #66 carries the reason and the condition for clearing
it; do not clear it from memory of this paragraph.
Three days of instrument work sit behind that. The order they happened in matters,
because each one found the next:
Six issues fixed on 25 August had stayed open — both PRs referenced them in headings
rather than closing keywords, so milestone 4 read as eleven items when it was five.
The weak-model skills delta was −2, not −3. Both −3 readings are from 13 August,
the credit-outage day, and no run since reproduced them.
The through-line is that every one of those was an instrument defect wearing the costume
of a result, and each was found by looking at a row rather than at a rate. That is the
same lesson as Loops 1 and 2 and it has now happened often enough to expect.
The order, and why it is this order
Reordered on 20 August. The page is live and the numbers behind it are trustworthy enough
to publish, so the work that matters now is what the benchmark is for: covering the
product properly, and settling whether the skills earn their place. Trust and publishing
work continues behind those.
1. Cover the product
Outpost went from one scenario to five, published as v0.3.0, and the runs against them
showed the coverage was the easy half. Four of the five are passed by every agent, and an
audit found scorer patterns that could pass an agent which did nothing — a leftover tenant
satisfying every check, a delivery "attempt" counted as a delivery, and a scenario that
threw away the checks describing its own worst failures.
Console still has none, and no stage but build has more than three.
First because the page is live and the Product pivot names a per-product score. The number
most likely to be wrong in a way that matters is no longer "a product scored from one
test" — it is a product scored from tests that pass regardless.
2. Prove the skills earn their place
Skills must improve the product or there is no point having them.
Currently measured at +1 for Claude, 0 for GPT-5.6 and −2 for the deliberately weak
model — so they help where the agent is strong and hurt where it is not, and nobody knows
why. This paragraph said −3 until 26 August. Both −3 readings are from 13 August, the
credit-outage day, and the eight runs since read −2 (one read 0), so the sign is
replicated and the magnitude was not. #2 carries the recomputation.
The composition matters more than the number and has changed completely. transform-001-reshape-payload is worse with skills in all ten published runs, which no
other scenario manages. The other three that made up the original −3 dissolved into no
difference, and verification-002 — the scenario the shared-cause theory was built on —
inverted to a skills win that has held for eight consecutive runs, with no skill change
to explain it (the submodule pin has not moved since 12 August).
The one controlled measurement since went the other way from what its first run claimed. A
24-cell Outpost run put the delta at 2 cells in 24, not the 9–0 an earlier run
suggested — because that earlier run was measuring a harness omission of ours, and a +skills arm that had never been given the Outpost skill. Expect that shape again: most
of an apparent skills win is our own instrument until proven otherwise.
Settling it means both arms at three attempts on the current scorers — about $64, and the
run this milestone exists for. Worth saying in advance: if the answer is that skills are
neutral for frontier agents and negative for weaker ones, that is a finding and it gets
published. The alternative is shipping something because we built it.
Three things stood between that run and an interpretable answer, all found after this
milestone was written. One is now decided; two remain. Running before they are settled
spends the better part of $100 on a number that cannot be read:
The -no-skills arm reaches documentation differently, so part of the skills delta is not skills #61 — the arms do not read documentation the same way. The baseline makes 3.6× the
documentation calls, 77% of them web_search, and 58% return nothing. -no-skills is
supposed to differ from its twin by skills and nothing else; it also differs by whether
the agent fetches a docs URL or queries a search index. Part of the delta is that.
A published snapshot mixes execution dates, so counting snapshots overcounts measurements #60 — a snapshot is not a run. Rows are carried forward, so the frontier models' -no-skills arm in the current snapshot is from 13 August — before the CLI bump, the
polling fixes and several scorer corrections. A three-attempt run compared against
carried-forward baselines answers nothing.
The run itself is now costed at $90–$110 rather than $64: nineteen scenarios rather
than fifteen, and --runs 3 at about 1.11× because attempts stop at the first pass.
Preferring more attempts to more instruction is now a convention in AGENTS.md — it is the
cheaper correction and it does not touch the one string every cell shares.
#61 and #60 both came out of chasing a single scenario in #2 that looked like a clean
skills win and was one execution republished seven times. That is the third time an
apparent skills result has dissolved under a control, which is the reason this milestone
is worth doing properly rather than quickly.
3. Finish publishing
The page is live and publishes from a release rather than from whatever ran last. The
release helper is half built (#13), and publishing is held until a snapshot exists that was
measured end to end under the current base prompt (#66).
The two explanatory gaps are closed as not planned. #29 was described here as a
prerequisite for reading the milestone-2 result, and it is not. The redesign labels the
arms Baseline and With skills, clearer than -no-skills/+skills was; a reader
wanting to know how the arms differ comes to this repository. #30 went the same way for a
sharper reason: the case for captioning the weaker model rested on it outranking a frontier
agent, which turned out to be arithmetic on the website rather than anything a caption
would have fixed.
What replaced them is a question about the numbers rather than the copy. The redesign
briefly scored the page on checks passed instead of scenarios completed. Our scorers stop
as soon as there is nothing left to check, so a total failure returns 0/1 where a
near-miss returns 4/5 — failing worse is cheaper than failing partially. On the 25 August
snapshot that ranked the deliberately weaker model above a frontier agent, 97% to 95%,
where by scenarios they tie at 89%. The definition now lives in AGENTS.md rather than only
in the consumer that renders it.
4. Trust the numbers
Substantially done, and more so than the milestone showed until 26 August: six
issues fixed by #55 and #56 on 25 August stayed open because both PRs referenced
them in headings rather than closing keywords, so the phase read as eleven items
when it was five.
Substantially done. Three independent causes of moving results were found and handled:
fixed sleeps against asynchronous ingestion, a rubric that contradicted its own scenario,
and configuration readable before it is enforced.
Substantially done for the three causes found before 20 August. Three more surfaced in
the Outpost runs and none of them is theoretical: a killed container is still scored as an
agent's answer, an agent can wipe shared deployment config for every later run, and
nothing detects a run that reads this repository. A project reset that adopts leftovers as
pristine and a silently drifting submodule pin remain.
5. Sustain
Cadence and budget, durable transcripts, cost reporting, and the product findings this
repository cannot close itself (#25).
What this order is not
It is not a schedule and has no dates. The later phases can move in parallel where
they do not collide.
It is also not a commitment to do everything. An issue that stops being worth doing should
be closed with the reason — #3 was closed as a duplicate of #19, and #4 as not confirmed.
Keeping this current
Update this issue when the reasoning changes: a phase reordered, dropped, or finished.
Do not list individual issues here; that is what milestones are for, and a list kept in
two places goes stale in one of them. This repository has learned that three times.
This issue is the roadmap. It carries the order and the reasoning; the milestones
carry the contents. Nothing is listed twice, so nothing can disagree with itself.
.plans/delivery-plan.md— why the project isshaped this way
LOOPS.md— what the benchmark found and whether fixing itworked
Where we are, 29 August
The page is live.
/evalsand/evals.mdpublish from a release rather than fromwhatever ran last, so an automated run can no longer move the public numbers.
Three releases cut. v0.1.0 the baseline, v0.2.0 a correction: eight of the twenty
failures published in v0.1.0 turned out to be our own scoring, in two scenarios, both
cases of a scorer asserting how an outcome was reached rather than whether it was.
Corrected, frontier agents came out level at 3 failures of 30 each — which closed the
"nearly every failure is Codex" finding as not confirmed.
The leak is contained and the page is live. Publishing is not finished: the release
helper is unbuilt. The two gaps that shipped knowingly — the page never saying what the
paired columns mean, and the weaker model published without a caption — were closed as
not planned on 29 August. The page carries the scoreboard; anyone wanting method comes
here. #29 and #30 carry the reasoning.
Publishing is held right now, and the next thing anyone does should account for it.
#62 put
"Do not ask clarifying questions"into the base prompt on 27 August — the onestring every cell shares — so every row measured before then was measured under a
different treatment.
EVALS_PUBLISH=falseuntil a snapshot exists that was measured endto end under the current prompt. #66 carries the reason and the condition for clearing
it; do not clear it from memory of this paragraph.
Three days of instrument work sit behind that. The order they happened in matters,
because each one found the next:
rather than closing keywords, so milestone 4 read as eleven items when it was five.
the credit-outage day, and no run since reproduced them.
verification-002found it was one executionrepublished into seven snapshots. That produced A published snapshot mixes execution dates, so counting snapshots overcounts measurements #60.
and then a correction to The -no-skills arm reaches documentation differently, so part of the skills delta is not skills #61: split per experiment, both Claude arms sit at 0% empty
searches and every Codex arm between 26% and 83%. The dominant variable is the agent,
not the arm, and a pooled aggregate hid it.
measured: the detector went 4 → 0 for about $3.
The through-line is that every one of those was an instrument defect wearing the costume
of a result, and each was found by looking at a row rather than at a rate. That is the
same lesson as Loops 1 and 2 and it has now happened often enough to expect.
The order, and why it is this order
Reordered on 20 August. The page is live and the numbers behind it are trustworthy enough
to publish, so the work that matters now is what the benchmark is for: covering the
product properly, and settling whether the skills earn their place. Trust and publishing
work continues behind those.
1. Cover the product
Outpost went from one scenario to five, published as v0.3.0, and the runs against them
showed the coverage was the easy half. Four of the five are passed by every agent, and an
audit found scorer patterns that could pass an agent which did nothing — a leftover tenant
satisfying every check, a delivery "attempt" counted as a delivery, and a scenario that
threw away the checks describing its own worst failures.
Console still has none, and no stage but build has more than three.
First because the page is live and the Product pivot names a per-product score. The number
most likely to be wrong in a way that matters is no longer "a product scored from one
test" — it is a product scored from tests that pass regardless.
2. Prove the skills earn their place
Skills must improve the product or there is no point having them.
Currently measured at +1 for Claude, 0 for GPT-5.6 and −2 for the deliberately weak
model — so they help where the agent is strong and hurt where it is not, and nobody knows
why. This paragraph said −3 until 26 August. Both −3 readings are from 13 August, the
credit-outage day, and the eight runs since read −2 (one read 0), so the sign is
replicated and the magnitude was not. #2 carries the recomputation.
The composition matters more than the number and has changed completely.
transform-001-reshape-payloadis worse with skills in all ten published runs, which noother scenario manages. The other three that made up the original −3 dissolved into no
difference, and
verification-002— the scenario the shared-cause theory was built on —inverted to a skills win that has held for eight consecutive runs, with no skill change
to explain it (the submodule pin has not moved since 12 August).
The one controlled measurement since went the other way from what its first run claimed. A
24-cell Outpost run put the delta at 2 cells in 24, not the 9–0 an earlier run
suggested — because that earlier run was measuring a harness omission of ours, and a
+skillsarm that had never been given the Outpost skill. Expect that shape again: mostof an apparent skills win is our own instrument until proven otherwise.
Settling it means both arms at three attempts on the current scorers — about $64, and the
run this milestone exists for. Worth saying in advance: if the answer is that skills are
neutral for frontier agents and negative for weaker ones, that is a finding and it gets
published. The alternative is shipping something because we built it.
Three things stood between that run and an interpretable answer, all found after this
milestone was written. One is now decided; two remain. Running before they are settled
spends the better part of $100 on a number that cannot be read:
documentation calls, 77% of them
web_search, and 58% return nothing.-no-skillsissupposed to differ from its twin by skills and nothing else; it also differs by whether
the agent fetches a docs URL or queries a search index. Part of the delta is that.
An agent that stops to ask a question scores zero, and we do not track how often #57 — an agent that stops to ask scores zero.Decided 27 August, in Tell agents not to ask clarifying questions #62. Thebase prompt now carries Clerk's line — "Do not ask clarifying questions. Complete the
task with the information provided." — and the
ASKED_AND_STOPPEDdetector stays, sothe instruction removes the confound and the detector reports whether it worked. Clerk
instructs without measuring and upstream does neither; doing both is available to us
because triage: flag an agent that stopped to ask a question #58 shipped the detector first. The decision was taken after surveying six
benchmarks giving five different answers, recorded on An agent that stops to ask a question scores zero, and we do not track how often #57. It is not yet known whether
the instruction changes behaviour — the four known cells get re-run before the matrix
does.
-no-skillsarm in the current snapshot is from 13 August — before the CLI bump, thepolling fixes and several scorer corrections. A three-attempt run compared against
carried-forward baselines answers nothing.
The run itself is now costed at $90–$110 rather than $64: nineteen scenarios rather
than fifteen, and
--runs 3at about 1.11× because attempts stop at the first pass.Preferring more attempts to more instruction is now a convention in AGENTS.md — it is the
cheaper correction and it does not touch the one string every cell shares.
#61 and #60 both came out of chasing a single scenario in #2 that looked like a clean
skills win and was one execution republished seven times. That is the third time an
apparent skills result has dissolved under a control, which is the reason this milestone
is worth doing properly rather than quickly.
3. Finish publishing
The page is live and publishes from a release rather than from whatever ran last. The
release helper is half built (#13), and publishing is held until a snapshot exists that was
measured end to end under the current base prompt (#66).
The two explanatory gaps are closed as not planned. #29 was described here as a
prerequisite for reading the milestone-2 result, and it is not. The redesign labels the
arms Baseline and With skills, clearer than
-no-skills/+skillswas; a readerwanting to know how the arms differ comes to this repository. #30 went the same way for a
sharper reason: the case for captioning the weaker model rested on it outranking a frontier
agent, which turned out to be arithmetic on the website rather than anything a caption
would have fixed.
What replaced them is a question about the numbers rather than the copy. The redesign
briefly scored the page on checks passed instead of scenarios completed. Our scorers stop
as soon as there is nothing left to check, so a total failure returns
0/1where anear-miss returns
4/5— failing worse is cheaper than failing partially. On the 25 Augustsnapshot that ranked the deliberately weaker model above a frontier agent, 97% to 95%,
where by scenarios they tie at 89%. The definition now lives in AGENTS.md rather than only
in the consumer that renders it.
4. Trust the numbers
Substantially done, and more so than the milestone showed until 26 August: six
issues fixed by #55 and #56 on 25 August stayed open because both PRs referenced
them in headings rather than closing keywords, so the phase read as eleven items
when it was five.
Substantially done. Three independent causes of moving results were found and handled:
fixed sleeps against asynchronous ingestion, a rubric that contradicted its own scenario,
and configuration readable before it is enforced.
Substantially done for the three causes found before 20 August. Three more surfaced in
the Outpost runs and none of them is theoretical: a killed container is still scored as an
agent's answer, an agent can wipe shared deployment config for every later run, and
nothing detects a run that reads this repository. A project reset that adopts leftovers as
pristine and a silently drifting submodule pin remain.
5. Sustain
Cadence and budget, durable transcripts, cost reporting, and the product findings this
repository cannot close itself (#25).
What this order is not
It is not a schedule and has no dates. The later phases can move in parallel where
they do not collide.
It is also not a commitment to do everything. An issue that stops being worth doing should
be closed with the reason — #3 was closed as a duplicate of #19, and #4 as not confirmed.
Keeping this current
Update this issue when the reasoning changes: a phase reordered, dropped, or finished.
Do not list individual issues here; that is what milestones are for, and a list kept in
two places goes stale in one of them. This repository has learned that three times.