Skip to content

feat: Oracle baselines + blindness refined to judgments-not-ground-truth#9

Open
jirispilka wants to merge 1 commit into
mainfrom
claude/apify-mcp-quick-wins-fysrwa
Open

feat: Oracle baselines + blindness refined to judgments-not-ground-truth#9
jirispilka wants to merge 1 commit into
mainfrom
claude/apify-mcp-quick-wins-fysrwa

Conversation

@jirispilka

@jirispilka jirispilka commented Jul 10, 2026

Copy link
Copy Markdown
Owner

Learnings from an 8-run batch on apify/apify-mcp-server#1066 (PRs #1070–#1078 there, one devforge run each).

What we're solving

Two flow-level gaps the batch exposed:

  1. A green oracle can hide a wrong change. One implementer produced a vitest config that silently double-ran the unit suite — 140 test files instead of 70, all passing. Nothing in the loop compares a green run to anything; it was caught only by an ad-hoc pre-change count.
  2. Reviewers couldn't verify the claims that matter. The pasted-diff-only rule meant a reviewer had no way to check "byte-identical to HEAD" or "this import is now unused" — the exact claims a refactor review exists to verify.

Flow changes (not obvious from the diff)

  • The oracle now runs once before the first source edit (iteration 1) to record baseline metrics. Cost: one extra full oracle run per task. Convergence changes from "green" to "green and baseline-consistent" — an unexplained test-count/skip/warning delta now fails a fully passing run.
  • Blindness is re-scoped from "no file access" to "no access to other agents' judgments." Reviewers now read the repo and git history freely; claim.md/peer reviews stay off-limits, and .devforge/ is still pasted-only. Practical effect: inner review becomes verification (running git show HEAD comparisons), not plausibility-reading.
  • This dissolves the old inner/final reviewer distinction ("plus working tree" is no longer unique), so the final reviewer gets a new mandate: post-fix integrated state — interactions with unchanged code, consumer/contract impact — not a second pass over the patch.
  • The criteria author is no longer codebase-blind-by-proxy: it now receives the verify stage's fact-check (facts only, no solution), because without it, it invented grep commands over guessed file paths.

Follow-up (not in this PR)

Trivial-tier fast path (collapse the pipeline, not just the panel, for trivial tasks) — drafted, will land separately.

🤖 Generated with Claude Code

https://claude.ai/code/session_016pXZvhEoE6Lz3DpBSL3n1Y

Learnings from an 8-task batch run (apify-mcp-server #1066 quick-wins):

1. Oracle baselines. A green suite is not proof of correctness: one run
   produced a vitest config that silently double-ran the unit suite while
   staying fully green — caught only by comparing test counts against a
   pre-change baseline. The inner loop now records baseline metrics
   (iter-1/baseline.txt) before the first source edit, and convergence
   requires green AND baseline-consistent; unexplained metric deltas fail
   the oracle.

2. Blindness taxonomy. The old rule ("reviewers get pasted content only —
   never file access") conflated two blindnesses. Blind-to-judgments
   (claim.md, peer reviews) is essential and stays. Blind-to-repository is
   harmful: a diff-only reviewer cannot verify byte-identical-to-HEAD
   claims or check that a removed import is truly unused. Reviewers now
   get repo/git read access; .devforge/ judgment files stay pasted-only.
   The criteria author additionally gets _request_fact_check.md (verified
   facts, no solution content) — previously it invented grep commands over
   guessed file paths. The final reviewer's lens is now defined as
   post-fix integrated state, not "same as reviewer plus working tree".

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_016pXZvhEoE6Lz3DpBSL3n1Y
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants