Skip to content

evals: remaining oracle heuristic gaps after #151 and #156 #175

Closed

Description

@mdsmithaustin

Follow-ups left after #151 (#115) and #156 (#133) merged. Each item is listed in its PR body with measurements. None is a negated reply that newly passes against main.

evals/promises oracles (#156)

  • Review-verdict guard: 122 of 308 correct corpus replies go to the judge (INCONCLUSIVE with needs_judge). Nothing in report.py or live.py consumes needs_judge yet, so a person reads those runs.
  • Label reading (reply_label): these label shapes read differently from main:
    • underscore-wrapped and backtick-wrapped labels
    • labels ended by a newline
    • Role: with its value on the next line
    • a bold prefix before the role
    • topic-first headings (## Parser — Explorer 2)
    • separator-free ## Explorer 2 Findings
    • findings-first headings
  • Arena F14: Based on the judge's scores I kept candidate 2 … and markup-wrapped bases (_candidate 2_, [candidate 2](…)) fail where main passed through its base substring accident.
  • Sources: commit-only shapes main also passes (comma lists of hashes, consecutive commit-only lines, Sources searched: labels).
  • Timing: a SOURCES_SECTION whitespace run is quadratic on pathological tails (same on main). Absolute-path classify is slow on 100k-component paths (same on main). edits() on 200 KB python-bound commands is slower than main.
  • The .audit saved runs were last regraded at round 8. A sandboxed APFS-clone regrade at the final head would measure the real verdict moves.

evals/canon steering-review-asks oracle (#151)

  • .mock.calls on a non-clipboard mock counts as a clipboard read.
  • A readText(el) rendered helper is excluded as clipboard.
  • A fake clipboard bound to an unrecognized constructor counts as rendered, as on trunk.
  • Disjoint fragments of one tail fail the present ask.
  • The clipboard_reads fixed point is quadratic on thousands of chained links.

Work each item red-first against main or trunk with a differential corpus, as #151 and #156 did. Several rounds of those PRs regressed because a regex fix was not checked against main in both directions.

Activity

  1. mdsmithaustin commented on Oct 8, 2026

    @mdsmithaustin
    OwnerAuthor

    New oracle and case edges from the post-sync live reruns (PR #179, skills pinned at cf39921). Each was read against its trace. The run evidence is kept locally under .audit/guide-promises/live/sync-df58112/.

    Oracle

    • poteto-help-finds-need-and-routes fails a reply whose example prompt is a 4-space indented code block. It only accepts a triple-backtick fence (hermes poteto-help-run).
    • The same oracle checks only the URL prefix of the public links. Hermes produced .../blob/main/poteto-mode/SKILL.md, which drops skills/ and would 404, and the oracle passed the link.
    • ASK_TOOLS omits Codex's request_user_input_async.
    • architect-run counts runners by matching needles in spawn prompts. Codex spawns have encrypted prompts and task names such as design_function, so it counted 0 of 7 and failed. The correct verdict there is probably INCONCLUSIVE. Its sketch cell has the same issue.
    • blast-radius-run counts the agent's own proof.py as a file beyond the diff. Its "one fact" regex misses "safety fact". The pasted-command check sends runs to a judge even when they executed real code (claude-code, hermes).

    Harvest

    • Hermes architect-run candidates write to the Hermes profile cache scratch, outside the fixture. All three promises come back path-refused, which will likely recur on every Hermes architect run.

    Case

    • poteto-help-unclear-run's prompt, "i just installed this and i'm not sure where to start", names the setup situation. skills/poteto-help/SKILL.md:17 sends a named situation straight to its section, so all three harnesses routed instead of asking. The prompt needs a need that is actually ambiguous.

    Runner

    • Claude Code architect-run ended its headless turn while a background runner was still running ("The fourth candidate is running..." after 1215 s). Its PASSes cover only the sketch stage.
  2. mdsmithaustin commented on Oct 8, 2026

    @mdsmithaustin
    OwnerAuthor

    Two more edges from the Grok cells of the df58112 reruns (evidence under .audit/guide-promises/live/sync-df58112/grok/):

    • ASK_TOOLS also lacks Grok's ask_user_question, the same gap as Codex's request_user_input_async. It changed no verdict this round.
    • Grok architect-run writes to the fixed host path /tmp/arena-import/. candidate-2/ there still held Oct 4 files from an earlier run, which could leak into the judge step on a run that finishes. Unverified whether any candidate read them. The run also hit the 2400 s cap with no design delivered, so its PASSes cover only the sketch stage, as on Claude Code.
  3. mdsmithaustin commented on Oct 8, 2026

    @mdsmithaustin
    OwnerAuthor

    Correction to my 20:11Z comment: the stale-file read is verified, not unverified. The Grok architect-run trace (grok/relay-waxsek25/trace.json, x_subagents) shows the "record noun" candidate read the Oct 4 /tmp/arena-import/candidate-2/ files, and all three candidates read /tmp/arena-import/RUBRIC.md, which the arena says candidates never see. So the shared fixed path already leaked stale and judge-only files into candidates in this run.

  4. mdsmithaustin commented on Oct 12, 2026

    @mdsmithaustin
    OwnerAuthor

    Closing as split. Verdict-moving oracle edges landed in #202 (321ef77), with the residual heuristic gaps recorded in evals/promises/README.md "Known oracle gaps". Still tracked elsewhere: runner and harvest gaps (headless turn end, Hermes path-refused, APFS regrade, Grok items) in #204; oracle follow-ups in #207 and #208; the arena scratch leak and the poteto-help link wording in PR #201 (stopped at its third FAIL, open items in #214).

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions