23 KiB
IOP 초경량 Agent 모델 비교
목적
검증을 마친 9개 caller/model/route 조합에 같은 HTML 구현 요청을 정확히 한 번씩 실행한다. 운영 결과와 산출물 품질을 분리하고, 품질은 실행 전에 잠근 공통 100점 기준표로 산출물별 정확히 한 번 깊게 분석한다. 별도 benchmark script, runner, judge, manifest, retry, resume 또는 자동 gate는 사용하지 않는다.
고정 요청
아래 문장을 모든 조합에 그대로 사용한다.
Create a polished single-file responsive landing page in
index.htmlfor “Orbit Ops”, a fictional AI operations dashboard. Use no external assets, frameworks, or JavaScript. Include a semantic header, main, and footer; a hero with a title and two calls to action; three feature cards; and a system-status panel with three services and visible status labels. Put all CSS in a<style>element and make the layout adapt at 720px or below. Include exactly once<meta name="iop-bench" content="BENCH_LITE_01">. Write the file, read it back, and then finish withBENCH_LITE_01_DONEon its own line followed by the exact fullindex.htmlin onehtmlfenced code block.
입력을 교체할 때는 이 블록과 아래 A. 요청 충족 체크리스트만 실행 전에 함께 바꾸고 고정한다. 나머지 평가 축과 실행 방식은 유지한다.
실행 규칙
- 재측정은 다른 benchmark·agent producer가 없고 provider queue/in-flight가 비어 있음을 직전에 확인한 뒤 완전 순차로 수행한다. 이 무경합 상태를 증명하지 못한 행은 실행 결과는 보존하되 속도 비교에서 제외한다.
- 각 조합은 빈 임시 workspace에서 정확히 한 번만 실행한다.
- 실패도 결과이며 같은 측정에서 retry, resume, recovery 또는 대체 실행을 하지 않는다.
- 모든 행은 caller 명령 바깥에서 같은 clock으로
request_sent_at,terminal_received_at과 monotonic elapsed를 기록한다. caller 내부 duration, API duration과 TTFT는 별도 보조 지표이며 외부 완료 시간 대신 사용하지 않는다. - direct 경로는 caller workspace의
index.html과 terminal marker를 확인한다. - execution preset은 request ID와 Plan/Work/Review/Repair stage별 시작·종료, 실제 선택 model, terminal/error, 최종 workspace 및 caller-visible 응답 상태를 기록한다. Edge private workspace cleanup 계약을 유지하므로 caller-visible terminal marker와 최종 응답의 exact HTML code block도 확인한다.
- usage는 caller가 직접 제공한 값만 기록하고 없으면
미제공으로 둔다. - 기존 원격 SOPS token과 command-scoped managed CA만 사용하며 별도 benchmark token이나 전역 CA override를 만들지 않는다.
- 이 세션의 execution preset Work는 live
ornith-fast바인딩을 사용한다. tracked runtime 설정은 변경하지 않는다. - 각 exact HTML source와 SHA-256,
1440×900desktop 및390×844mobile render만 ignored run evidence에 보존한다. render는 품질 분석 입력이지 제품 경로의 pass/fail gate가 아니다. - full source를 얻지 못한 실행은
실행 실패와 별개로채점 불가로 기록하며 0점으로 바꾸지 않는다. - scorable source에는 실행 후 opaque 평가 ID를 부여한다. 단일 평가 pass에는 ID, source와 두 render만 제공하고 route·model·시간·usage 매핑은 점수와 evidence가 고정된 뒤 결합한다.
이전 실행 결과 — 시간 비교 무효
아래 결과는 무경합 상태를 증명하지 않았고 외부 요청·완료 시각을 일관되게 기록하지 못했다. 산출물과 caller raw evidence는 참고용으로 보존하지만 경과 시간, 속도 순위와 모델 간 시간 차이는 비교 근거로 사용하지 않는다. 특히 OpenCode → Gemini execution preset의 0초는 요청 전체 시간이 아니라 마지막 내부 이벤트 간격을 잘못 사용한 값이다.
| 경로 | 평가 ID | 상태 | 경과 시간 | caller usage | source SHA-256 / terminal evidence | 짧은 관찰 |
|---|---|---|---|---|---|---|
| Claude Code → Claude direct | E08 | 성공 | 83.745초 | input 5, cache create 15,062, cache read 10,396, output 11,622 | e15fc6f3295438a0a384d41b15e38fe793d842760d505003345cfede56612bf1 / marker 확인 |
exact workspace source 및 사용자 승인 동일 viewport render 확보 |
| Claude Code → Gemini direct | E05 | 성공 | 80.363초 | input 41,736, output 10,858 | 7dc4d4d520c28504135ad81c7594599a0aef15f3be4f1e486db0bafd2908fbcd / marker 확인 |
exact workspace source 및 사용자 승인 동일 viewport render 확보 |
| OpenCode → Gemini direct | E01 | 성공 | 77초 | input 12,285, cache read 24,478, output 4,482, total 41,245 | c83a046c9ebe6aa2bdeb4954ecad37312abd362caa30c20041862ca65edd6aeb / marker 확인 |
exact workspace source 및 사용자 승인 동일 viewport render 확보 |
| Claude Code → GPT direct | E09 | 성공 | 63.757초 | input 31,056, output 12,377 | b256b53042b4e4d1bfe49c1a36175c0e1055fe30f6d813995f59dfd98457e6a8 / marker 확인 |
exact workspace source 및 사용자 승인 동일 viewport render 확보 |
| Codex → GPT direct | E03 | 성공 | 미제공 | input 58,576, cached input 38,245, cache write input 20,106, output 9,007, reasoning output 369 | 2cf8cd8782e5b10b70c09674b7c2b768ccc96c41e57107df63abfec66b434b01 / terminal marker 확인 |
exact workspace source 및 사용자 승인 동일 viewport render 확보 |
| Claude Code → Gemini execution preset | E04 | 실행 실패 | 37.532초 | input 0, output 0 | source 없음 / API Error: single-request execution failed |
sole invocation exit 1; 재시도하지 않음 |
| OpenCode → Gemini execution preset | E07 | 성공 | 0초 | input 0, output 0 | a9966cac565854c69c56d5c288ae92519e45f9c1686f80df0008559f46cab958 / terminal marker 확인 |
terminal exact fence 추출 및 사용자 승인 동일 viewport render 확보 |
| Claude Code → GPT execution preset | E06 | 응답 불완전 | 89.870초 | input 0, output 0 | source 없음 / terminal marker·exact fence 없음 | 완료 문구만 반환해 채점 불가; 재시도하지 않음 |
| Codex → GPT execution preset | E02 | 성공 | 미제공 | input 123,280, cached input 39,124, cache write input 83,814, output 7,557, reasoning output 372 | c7760fcffe964ffe7189a600d47534bab9731fe158f49b169c6461d83324838c / terminal marker 확인 |
terminal exact fence 추출 및 사용자 승인 동일 viewport render 확보 |
무경합 재측정 결과
| 경로 | 상태 | 무경합 snapshot | request sent UTC | terminal received UTC | 외부 elapsed | caller duration / API / TTFT | usage | source / terminal evidence |
|---|---|---|---|---|---|---|---|---|
| Claude Code → Claude direct | 성공 | 전·후 전체 provider 0/0 | 01:52:43.409486Z | 01:53:59.498224Z | 75.90초 | 74.903 / 74.749 / 3.095초 | input 1,611, cache create 57,891, cache read 143,478, output 10,194 | 9799165… / workspace·marker·exact fence 확인 |
| Claude Code → Gemini direct | 성공 | 전·후 전체 provider 0/0 | 01:53:59.616028Z | 01:55:08.426345Z | 68.70초 | 68.376 / 68.238 / 2.762초 | input 173,200, cache read 105,925, output 9,794 | af47386e… / workspace·marker·exact fence 확인 |
| OpenCode → Gemini direct | 성공 | 전·후 전체 provider 0/0 | 01:55:40.157414Z | 01:56:37.319047Z | 57.12초 | 미제공 | input 27,715, cache read 40,730, output 8,572 | d01d95a9… / workspace·marker·exact fence 확인 |
| Claude Code → GPT direct | 응답 성공·workspace 계약 실패 | 전·후 전체 provider 0/0 | 01:46:31.303629Z | 01:47:48.560195Z | 77.21초 | 76.369 / 76.066 / 8.436초 | input 228,616, output 10,447 | 48ebe9d6… / terminal marker·exact fence 확인, caller workspace 파일 없음 |
| Codex → GPT direct | 성공 | 전·후 전체 provider 0/0 | 01:49:58.485953Z | 01:50:50.862758Z | 52.33초 | 미제공 | input 59,604, cached 41,277, cache write 18,312, output 9,306, reasoning 335 | d1b84b60… / workspace·marker·exact fence 확인 |
| Claude Code → Gemini execution preset | 실행 성공·응답 계약 실패·채점 불가 | 전·후 전체 provider 0/0 | 01:19:09.286756Z | 01:20:06.283012Z† | 56.92초 | 55.606 / 55.551 / 0.056초 | input 0, output 0 | source·marker·exact fence 없음; 완료 요약만 반환 |
| OpenCode → Gemini execution preset | 성공 | 전·후 전체 provider 0/0 | 01:21:25.551427Z | 01:22:33.691427Z† | 68.14초 | 미제공 | input 0, output 0 | 08171098… / marker·exact fence 확인 |
| Claude Code → GPT execution preset | 실행 성공·응답 계약 실패·채점 불가 | 전·후 전체 provider 0/0 | 01:25:53.618193Z | 01:26:48.838192Z† | 55.22초 | 54.066 / 102.730 / 0.097초 | input 0, output 0 | source·marker·exact fence 없음; 승인 요약만 반환 |
| Codex → GPT execution preset | 성공 | 전·후 전체 provider 0/0 | 01:30:03.418438Z | 01:30:57.998437Z† | 54.58초 | 미제공 | input 123,197, cached 39,023, cache write 83,832, output 7,772, reasoning 311 | bcf6aa0b… / workspace·marker·exact fence 확인 |
† preset 네 행은 controller 후처리 단절 때문에 request_sent_at + /usr/bin/time real로 종료 시각을 산출했다. OpenCode 행의 terminal event 01:22:33.614Z가 이 산출값과 0.077초 이내로 일치한다. direct 다섯 행은 caller 종료 직후 같은 외부 clock으로 직접 관찰했다. 모든 유효 행은 직전 pre-status와 직후 post-status에서 전체 provider의 in_flight=0, queued=0을 확인했으며 서로 시간 구간이 겹치지 않는다.
Preset 단계 진단
| 경로 | request ID | Plan | Work | Review | Repair | 실패 소유 stage / 직접 오류 | 최종 workspace | caller-visible terminal |
|---|---|---|---|---|---|---|---|---|
| Claude Code → Gemini execution preset | caller 미노출 | Planning 확인, ID/model/time 미노출 |
Executing 확인, ID/model/time 미노출 |
Reviewing 확인, ID/model/time 미노출 |
실행 증거 없음 | stage 오류 없음. 최종 caller projection이 완료 요약만 남겨 exact source 계약 실패 | private workspace 미노출·cleanup 계약 | marker·fence 없음 |
| OpenCode → Gemini execution preset | caller 미노출 | stage event 미노출 | stage event 미노출 | stage event 미노출 | stage event 미노출 | terminal exact source 반환 성공; 내부 stage별 관찰성은 없음 | private workspace 미노출·cleanup 계약 | marker·fence 확인 |
| Claude Code → GPT execution preset | caller 미노출 | Planning 확인, ID/model/time 미노출 |
Executing 확인, ID/model/time 미노출 |
Reviewing 확인, ID/model/time 미노출 |
실행 증거 없음 | stage 오류 없음. 최종 caller projection이 승인 요약만 남겨 exact source 계약 실패 | private workspace 미노출·cleanup 계약 | marker·fence 없음 |
| Codex → GPT execution preset | caller 미노출 | stage event 미노출 | stage event 미노출 | stage event 미노출 | stage event 미노출 | terminal exact source 반환 성공; 내부 stage별 관찰성은 없음 | caller workspace source 확인 | marker·fence 확인 |
동일 preset이 OpenCode·Codex에서는 exact source를 반환하고 Claude Code에서만 요약으로 축약됐다. 따라서 두 preset 실패의 현재 소유 후보는 Plan/Work/Review provider가 아니라 Claude-compatible caller 응답 정규화 또는 최종 terminal projection 계층이다. 다만 request ID와 stage별 실제 model/time이 caller evidence에 노출되지 않아 정확한 내부 함수 단위까지는 단정하지 않는다. 이는 별도의 관찰성 공백이다.
공통 평가 기준표 — 100점
평가자는 route, model, 경과 시간과 usage를 보지 않고 opaque 평가 ID, exact source와 두 고정 viewport render만 사용한다. A는 명시된 세부 점수를 합산한다. B~D의 각 5점 항목은 5=명확히 충족, 3=대체로 충족하나 눈에 띄는 결함 1개, 1=일부 흔적만 있거나 결함이 여러 개, 0=없거나 깨짐의 네 anchor만 사용한다. 중간 점수는 쓰지 않는다.
| 축 | 세부 기준 | 배점 | 허용 점수 |
|---|---|---|---|
| A. 요청 충족 | 완전한 HTML 문서 4, 내부 <style> 4, 외부 asset/framework 없음 4, JavaScript 없음 4, exact meta 1회 4 |
20 | 세부 항목별 0 또는 4 |
| A. 요청 충족 | header/main/footer 3, hero title+CTA 2개 4, feature card 3개 4, service 3개+visible label 4, 720px 이하 실제 breakpoint 5 |
20 | 명시 세부 점수만 합산 |
| B. 반응형·레이아웃 | desktop hierarchy, mobile reflow, overflow/clipping 방지, component/readability consistency | 20 | 각 0/1/3/5 |
| C. 사용성·접근성 | heading/landmark 구조, CTA 의미·focus, status의 non-color cue, viewport·대비·가독성 | 20 | 각 0/1/3/5 |
| D. 시각 완성도 | 정보 위계, palette/type/spacing, component/status cohesion, polish/distinctiveness | 20 | 각 0/1/3/5 |
총점은 A+B+C+D의 단순 합이며 별도 가중·정규화·상대 순위 보정은 없다. 요구 위반은 해당 A 점수에서만 반영하고 같은 결함을 다른 축에서 중복 감점하지 않는다. 단, 그 위반이 실제 레이아웃·사용성·시각 결함을 별도로 만든 경우에는 해당 render 증거를 적고 감점할 수 있다.
이전 단일 평가 기록 — 모바일 렌더 무효
아래 점수는 이전 Chrome 실행이 390px 이미지에 더 넓은 내부 CSS viewport를 잘라 넣은 사실을 뒤늦게 확인했으므로 품질 비교에도 사용하지 않는다. 당시 공통으로 관찰한 horizontal clipping은 산출물 결함이 아니라 render 측정 결함이었다. 표와 evidence는 왜 이전 점수를 폐기했는지 추적하기 위한 참고 기록이다.
각 scorable 산출물마다 아래 한 행과 짧은 evidence block 하나만 작성한다. 모든 산출물 평가가 끝날 때까지 rubric을 바꾸지 않는다.
| 평가 ID | A /40 | B /20 | C /20 | D /20 | 총점 /100 | 채점 상태 |
|---|---|---|---|---|---|---|
| E01 | 40 | 11 | 14 | 18 | 83 | 완료 |
| E02 | 40 | 11 | 14 | 20 | 85 | 완료 |
| E03 | 40 | 11 | 14 | 20 | 85 | 완료 |
| E04 | — | — | — | — | — | 채점 불가 — source 없음 |
| E05 | 40 | 11 | 14 | 18 | 83 | 완료 |
| E06 | — | — | — | — | — | 채점 불가 — source 없음 |
| E07 | 40 | 11 | 14 | 18 | 83 | 완료 |
| E08 | 40 | 11 | 14 | 18 | 83 | 완료 |
| E09 | 40 | 11 | 14 | 20 | 85 | 완료 |
E01 — A: 문서·style·무외부자산·무JS·exact meta와 필수 구조를 모두 충족해 40; B: desktop 위계는 명확하지만 mobile에서 제목·본문·카드가 오른쪽으로 잘려 11; C: landmark·CTA·문자 상태표시는 명확하나 mobile 가독성이 깨져 14; D: 일관된 dark palette와 카드 체계는 좋지만 mobile polish 결함으로 18; 감점: 390×844 overflow/clipping.
E02 — A: 모든 요청 selector와 정확한 meta를 충족해 40; B: desktop 구성은 강하지만 mobile의 hero·상태 라벨이 오른쪽에서 잘려 11; C: heading/landmark, 의미 있는 CTA, Operational 문구는 좋으나 mobile 가독성 결함으로 14; D: 강한 타이포·status component·색상 체계와 독자성이 명확해 20; 감점: 390×844 horizontal overflow.
E03 — A: 필수 문서·구조·콘텐츠·breakpoint를 모두 충족해 40; B: desktop hierarchy는 뛰어나지만 mobile hero와 CTA가 viewport 밖으로 잘려 11; C: semantic heading/landmark, CTA, 문자 상태표시는 충족하나 mobile 사용성이 저하돼 14; D: 타이포·lime accent·mission-control card의 결속과 독자성이 명확해 20; 감점: 390×844 clipping.
E05 — A: 모든 명시 요구를 충족해 40; B: desktop은 안정적이나 mobile 제목·본문·section heading이 잘려 11; C: landmark·CTA·상태 label은 갖췄지만 mobile reading flow 결함으로 14; D: palette/type/card 일관성은 좋으나 비교적 일반적이고 mobile polish가 부족해 18; 감점: 390×844 overflow.
E07 — A: 문서·내부 style·무외부자산·무JS·meta와 요청 section을 모두 충족해 40; B: desktop은 균형 잡혔지만 mobile copy와 feature heading/card가 잘려 11; C: 의미 있는 CTA와 non-color status label은 명확하나 mobile 가독성으로 14; D: gradient accent와 component cohesion은 좋지만 mobile 마감 결함으로 18; 감점: 390×844 clipping.
E08 — A: 모든 필수 selector와 exact meta를 충족해 40; B: desktop hierarchy는 안정적이나 mobile navigation wrap과 hero/section text clipping으로 11; C: landmark·CTA·상태 문구는 명확하나 좁은 viewport 가독성으로 14; D: 정돈된 palette·spacing·card 체계는 좋지만 mobile header와 overflow 마감이 부족해 18; 감점: 390×844 header wrap 및 clipping.
E09 — A: 필수 문서·구조·콘텐츠·breakpoint를 모두 충족해 40; B: desktop은 강한 2-column hierarchy지만 mobile hero·CTA·dashboard가 오른쪽으로 잘려 11; C: semantic 구조·CTA·문자 상태표시는 좋으나 mobile 조작·읽기 영역이 손실돼 14; D: typography, blue palette, dashboard/status cohesion과 독자성이 명확해 20; 감점: 390×844 horizontal overflow.
Evidence block 형식: 평가 ID — A: 충족/누락 selector와 점수; B~D: source selector 또는 viewport에서 직접 관찰한 근거; 감점: 기준·anchor·사유. 한 결함당 한 문장으로 제한한다. 평가는 산출물별 한 번만 수행하고, 이후 수정은 합계 산술 오류나 evidence 전사 오류만 허용하며 수정 사유를 같은 block에 남긴다.
이 총점은 고정 rubric과 직접 evidence에 기반한 재검산 가능한 단일 평가 점수다. 반복 표본이나 다중 평가자 합의가 아니므로 통계적 모델 우위나 절대적 품질 척도로 해석하지 않는다.
재수집 render provenance: 최초 로컬 Chromium 실패 뒤 사용자 승인으로 프로세스를 강제 종료·재시작했고, 동일 source·opaque ID·viewport를 유지해 dev runner의 독립 Chrome으로 다시 캡처했다. desktop/mobile SHA-256은 각각 E01 769177e7…/64898950…, E02 63e9bcdb…/1b2e9cd0…, E03 46f255b9…/fff81780…, E05 cf430192…/fef49876…, E07 6d799a75…/ae7be5a4…, E08 fce30317…/b99eaa2b…, E09 d0c7990c…/ccef5b70…이다.
재측정 단일 평가 기록
새 source 일곱 건을 route와 분리해 B01~B07로 한 번만 평가했다. 모바일 render는 Chrome DevTools Emulation.setDeviceMetricsOverride(width=390,height=844,deviceScaleFactor=1) 뒤 캡처해 CSS viewport와 이미지 폭을 일치시켰다.
| 평가 ID | A /40 | B /20 | C /20 | D /20 | 총점 /100 | 채점 상태 |
|---|---|---|---|---|---|---|
| B01 | 40 | 20 | 18 | 20 | 98 | 완료 |
| B02 | 40 | 20 | 18 | 18 | 96 | 완료 |
| B03 | 40 | 20 | 18 | 18 | 96 | 완료 |
| B04 | 40 | 20 | 18 | 18 | 96 | 완료 |
| B05 | 40 | 20 | 20 | 20 | 100 | 완료 |
| B06 | 40 | 20 | 18 | 18 | 96 | 완료 |
| B07 | 40 | 20 | 20 | 20 | 100 | 완료 |
B01 — A: 문서·내부 style·무외부자산·무JS·exact meta와 필수 구조를 모두 충족해 40; B: desktop 2-column 위계와 실제 390px single-column reflow, overflow 방지, status readability가 모두 명확해 20; C: landmark·CTA·문자 상태 label·대비는 충족하지만 별도 focus-visible 설계가 없어 18; D: 대형 typography, cyan gradient, status panel의 결속과 독자성이 명확해 20.
B02 — A: 모든 명시 selector와 exact meta를 충족해 40; B: desktop card grid와 390px CTA·card stack이 clipping 없이 재배치돼 20; C: landmark·CTA·문자 상태 label·가독성은 충족하지만 별도 focus-visible 설계가 없어 18; D: palette와 component는 일관되나 비교적 보편적인 dashboard 표현이라 18.
B03 — A: 필수 문서·구조·콘텐츠·breakpoint를 모두 충족해 40; B: desktop hierarchy와 mobile reflow·읽기 폭·component consistency가 모두 안정적이라 20; C: 명시적 landmark/ARIA와 non-color status는 좋지만 별도 focus-visible 설계가 없어 18; D: 정돈된 dark/cyan 체계는 완성도가 높으나 시각 언어가 비교적 일반적이라 18.
B04 — A: 모든 요청 요소와 exact meta를 충족해 40; B: 390px에서 navigation·hero·CTA가 overflow 없이 재배치되고 desktop 위계도 안정적이라 20; C: semantic landmark와 상태 문구는 명확하지만 별도 focus-visible 설계가 없어 18; D: blue/teal palette와 card 체계는 일관되나 독자성은 중간 수준이라 18.
B05 — A: 명시 요구를 모두 충족해 40; B: desktop dashboard composition과 mobile reflow·overflow·가독성이 모두 명확해 20; C: landmark·ARIA·문자 상태·명시적 focus-visible·대비를 모두 충족해 20; D: violet/cyan typography, tilted dashboard, status component가 강하게 결속돼 20.
B06 — A: 필수 문서·구조·콘텐츠·breakpoint를 모두 충족해 40; B: desktop 3-card grid와 mobile stack이 clipping 없이 안정적으로 재배치돼 20; C: landmark·CTA·문자 상태·가독성은 충족하지만 nav label과 별도 focus-visible 설계가 없어 18; D: typography와 purple component 체계는 완성됐지만 전형적인 dashboard 구성이라 18.
B07 — A: 모든 필수 selector와 exact meta를 충족해 40; B: 대형 hero가 desktop과 실제 390px에서 모두 읽히고 CTA·section이 안정적으로 reflow돼 20; C: landmark·ARIA·문자 상태·focus-visible·대비가 명확해 20; D: formation motif, gradient typography, status component의 결속과 독자성이 명확해 20.
점수 고정 뒤 결합한 매핑은 B01=Codex→GPT preset, B02=Claude Code→Gemini direct, B03=OpenCode→Gemini preset, B04=Claude Code→Claude direct, B05=Codex→GPT direct, B06=OpenCode→Gemini direct, B07=Claude Code→GPT direct다. source/desktop/mobile SHA-256은 각각 B01 bcf6aa0b…/4d341fd1…/00e317cc…, B02 af47386e…/79b0daed…/e455c0af…, B03 08171098…/737d09b6…/95f75dbc…, B04 9799165f…/3df7f832…/b5d9b57c…, B05 d1b84b60…/23754e93…/05d14842…, B06 d01d95a9…/998aacf0…/8082de73…, B07 48ebe9d6…/61aacb88…/6004c958…다.
결론
재측정에서 9개 IOP 호출은 모두 process exit 0으로 끝났고 전·후 provider 0/0과 비중첩 실행 구간을 확인했다. 다만 제품·caller-visible 계약까지 완전히 충족한 경로는 6/9다. Claude Code→GPT direct는 terminal exact source는 반환했지만 caller workspace 파일이 없었고, Claude Code의 두 execution preset은 Plan/Work/Review 완료 뒤 요약만 반환해 source 채점이 불가능했다.
따라서 현재 증거는 IOP provider 실행 자체의 실패보다 caller/edge 응답 정규화 경계의 문제가 우세함을 가리킨다. 특히 preset은 OpenCode·Codex 2/2가 exact source를 반환하고 Claude Code 0/2만 최종 source projection에 실패했다. 속도는 단일 표본의 외부 elapsed로만 보고 모델 우위로 일반화하지 않는다. 품질 점수도 고정 rubric의 해당 산출물 점수일 뿐 모델의 통계적 서열이 아니다.
재측정 과정에서 별도로 확인한 benchmark 측 결함은 OpenCode direct의 잘못된 Gemini-native SDK, controller stdin 소비와 잔존 producer, 공용 workspace 재사용, Codex CA 환경 누락, Mac Chrome의 가짜 390px crop이다. 이 실행들은 전부 유효 표본에서 제외하고 ignored agent-test/runs/bench-lite-05/{preflight-failures,invalidated}에 원인별로 보존했다. 별도 하네스는 만들지 않았다.