HarnessWars · AI harness karşılaştırması
PORT CRANE CHESS BENCHMARK v1.0
Aynı model ile dört AI harness: süre, maliyet ve teslim performansı
Sonnet 5.5 · OpenRouter · Medium
1 başlangıç prompt'u · +0 ek kullanıcı mesajı
Teslim performansı puanı bu görevdeki süreyi, maliyeti ve iki çıktı kontrol listesini ölçer. Tek koşuya aittir; genel harness kalitesini veya istatistiksel üstünlüğü ifade etmez. Videodaki 100 üzerinden puanlar, uygulamaların kendi benchmark sonuçlarıdır.
Harness sonuçları
Videodaki sıraylaVideoda: Sol üst
Sıra #2Claude Code
8,16/10
- Görev süresi
- 13 dk
- Maliyet
- 4,390 USD
Hız lideri.
Videoda: Sağ üst
Sıra #3OpenCode
7,68/10
- Görev süresi
- 25 dk
- Maliyet
- 2,370 USD
Maliyet lideri.
Videoda: Sol alt
Sıra #4Cursor
7,24/10
- Görev süresi
- 19 dk
- Maliyet
- 3,780 USD
Test ve durum inceleme erişimi güçlü.
Videoda: Sağ alt
Sıra #1Pi
8,46/10
- Görev süresi
- 17 dk
- Maliyet
- 2,634 USD
En dengeli teslim performansı.
Değerlendirme
ReWo-Bench değerlendirmesinde Pi en dengeli teslim performansını gösteriyor. Claude Code hızda, OpenCode maliyette lider. Cursor açık test erişimi sunuyor; bu koşunun süre ve maliyet karşılaştırmasında Pi’nin gerisinde kalıyor.
Ağırlıklı puanlama
| Ölçüt | Ağırlık | Claude Code | OpenCode | Cursor | Pi |
|---|---|---|---|---|---|
| Hız | 40% | 10,00 | 5,20 | 6,84 | 7,65 |
| Maliyet | 40% | 5,40 | 10,00 | 6,27 | 9,00 |
| Test erişimi | 10% | 10,00 | 8,00 | 10,00 | 8,00 |
| Raporlama | 10% | 10,00 | 8,00 | 10,00 | 10,00 |
| Toplam | 100% | 8,16 /10 | 7,68 /10 | 7,24 /10 | 8,46 /10 |
Hesaplama ve checklist ayrıntıları
Hız = 10 × en kısa süre / görev süresi. Maliyet = 10 × en düşük maliyet / görev maliyeti. Checklist puanı, karşılanan maddelerin puan toplamıdır. Toplam = 0,4 × hız + 0,4 × maliyet + 0,1 × test erişimi + 0,1 × raporlama. Hesaplama tam hassasiyetle yapılır; yalnız gösterim yuvarlanır.
Referanslar: en kısa süre ve en düşük maliyet: 13 dk · 2,370 USD
Claude Code
Hız: 10 × 13 / 13 = 10
Maliyet: 10 × 2.37 / 4.39 = 5.39863325740319
Toplam: 0.4 × 10 + 0.4 × 5.39863325740319 + 0.1 × 10 + 0.1 × 10 = 8.159453302961277
Test erişimi · 10/10
- Evet · Yürütme çekirdeği ve görselleştirme ayrı fonksiyonlarda (4 puan)
- Evet · Tek adım yürütme ve mevcut durumu inceleme erişimi (4 puan)
- Evet · İsimlendirilmiş test ve inceleme API’si (2 puan)
Raporlama · 10/10
- Evet · BENCHMARK_RESULT üzerinden sonuç erişimi (2 puan)
- Evet · Konsola JSON sonuç yazımı (2 puan)
- Evet · Alt test sonuçları ve ölçümler (2 puan)
- Evet · Seed ve final-state hash (2 puan)
- Evet · Yeniden başlatmada eski sonucun temizlenmesi (2 puan)
Güçlü yanlar
- 13 dakika ile en kısa tamamlanma süresi.
- window.__bench üzerinden isimlendirilmiş kontrol ve durum erişimi.
- Sonuç raporlama ve yeniden başlatma kontrol listesinin tamamını karşılıyor.
Bulgular
- 4,390 USD koşu maliyeti toplam puanını düşürüyor.
OpenCode
Hız: 10 × 13 / 25 = 5.2
Maliyet: 10 × 2.37 / 2.37 = 10
Toplam: 0.4 × 5.2 + 0.4 × 10 + 0.1 × 8 + 0.1 × 8 = 7.68
Test erişimi · 8/10
- Evet · Yürütme çekirdeği ve görselleştirme ayrı fonksiyonlarda (4 puan)
- Evet · Tek adım yürütme ve mevcut durumu inceleme erişimi (4 puan)
- Hayır · İsimlendirilmiş test ve inceleme API’si (2 puan)
Raporlama · 8/10
- Evet · BENCHMARK_RESULT üzerinden sonuç erişimi (2 puan)
- Evet · Konsola JSON sonuç yazımı (2 puan)
- Evet · Alt test sonuçları ve ölçümler (2 puan)
- Evet · Seed ve final-state hash (2 puan)
- Hayır · Yeniden başlatmada eski sonucun temizlenmesi (2 puan)
Güçlü yanlar
- 2,370 USD ile en düşük koşu maliyeti.
- Yürütme çekirdeği ve simülasyon durumu incelenebiliyor.
Bulgular
- 25 dakika ile bu dört koşu arasındaki en uzun tamamlanma süresi.
- Yeniden başlatma iç durumu sıfırlıyor; önceki BENCHMARK_RESULT nesnesini temizlemiyor.
- Ayrı, isimlendirilmiş bir test API nesnesi bulunmuyor.
Cursor
Hız: 10 × 13 / 19 = 6.842105263157895
Maliyet: 10 × 2.37 / 3.78 = 6.269841269841271
Toplam: 0.4 × 6.842105263157895 + 0.4 × 6.269841269841271 + 0.1 × 10 + 0.1 × 10 = 7.244778613199666
Test erişimi · 10/10
- Evet · Yürütme çekirdeği ve görselleştirme ayrı fonksiyonlarda (4 puan)
- Evet · Tek adım yürütme ve mevcut durumu inceleme erişimi (4 puan)
- Evet · İsimlendirilmiş test ve inceleme API’si (2 puan)
Raporlama · 10/10
- Evet · BENCHMARK_RESULT üzerinden sonuç erişimi (2 puan)
- Evet · Konsola JSON sonuç yazımı (2 puan)
- Evet · Alt test sonuçları ve ölçümler (2 puan)
- Evet · Seed ve final-state hash (2 puan)
- Evet · Yeniden başlatmada eski sonucun temizlenmesi (2 puan)
Güçlü yanlar
- window.PORT üzerinden isimlendirilmiş kontrol ve durum erişimi.
- Sonuç raporlama ve yeniden başlatma kontrol listesinin tamamını karşılıyor.
Bulgular
- Bu koşuda 19 dakika ve 3,780 USD ile süre ve maliyet bakımından Pi’nin gerisinde.
Pi
Hız: 10 × 13 / 17 = 7.647058823529412
Maliyet: 10 × 2.37 / 2.634 = 8.997722095671984
Toplam: 0.4 × 7.647058823529412 + 0.4 × 8.997722095671984 + 0.1 × 8 + 0.1 × 10 = 8.457912367680558
Test erişimi · 8/10
- Evet · Yürütme çekirdeği ve görselleştirme ayrı fonksiyonlarda (4 puan)
- Evet · Tek adım yürütme ve mevcut durumu inceleme erişimi (4 puan)
- Hayır · İsimlendirilmiş test ve inceleme API’si (2 puan)
Raporlama · 10/10
- Evet · BENCHMARK_RESULT üzerinden sonuç erişimi (2 puan)
- Evet · Konsola JSON sonuç yazımı (2 puan)
- Evet · Alt test sonuçları ve ölçümler (2 puan)
- Evet · Seed ve final-state hash (2 puan)
- Evet · Yeniden başlatmada eski sonucun temizlenmesi (2 puan)
Güçlü yanlar
- Süre ve maliyet birlikte değerlendirildiğinde bu puantajın lideri.
- Yeniden başlatmada önceki sonuç temizleniyor.
Bulgular
- İncelenebilir çekirdek ve durum erişimini birleştiren isimlendirilmiş bir test API’si bulunmuyor.
Harness’lere verilen prompt
# PORT CRANE CHESS BENCHMARK v1.0 — SINGLE-FILE, SELF-GRADING
Build **ONE standalone HTML file** showing an autonomous container-port simulation. It must run a complete **75-second sequence** without user input, then display an honest **100-point scorecard**. **Deliver only the HTML file.**
## 1. Hard constraints
- Vanilla JavaScript + **Canvas 2D** only. All CSS/JS inline; no libraries, assets, CDNs or network. Open offline with no console errors.
- Fixed logical world **1400 × 850**; responsive display must not change physics. Fixed physics step **1/60 s**; rendering separate. Phases advance by simulation time, not frame count.
- Seeded PRNG (`SEED = 1337`) for all generated jobs and disturbances. **No `Math.random()`**. Restart must reproduce the same results.
- Automatically run five **15-second phases** (75 seconds total). At the end, freeze the simulation and show the scorecard. No manual interaction required.
- **No keyframed cargo moves, teleports, pre-scripted successes or fake metrics.** Every delivery must follow valid crane motion and pickup/drop rules.
## 2. Port and crane mechanics
- Render a readable **2.5D-style container terminal**: ship and 12 numbered bays (`y ≈ 630`), quay rail, yard slots (`y ≈ 240`), colored shipping containers, shadows and 3 gantry cranes.
- Cranes **C1, C2, C3** share one rail (`x = 120..1280`), initially at `x = 300, 700, 1100`. **They cannot overtake** and must maintain **≥ 145 world units** of separation at every physics step.
- Each crane has continuous **gantry X**, **trolley Y**, **hoist height** and **hook/payload** state. Use actual movement (suggested maximum speeds: gantry 180, trolley 250, hoist 180 world units/s).
- Explicit task states: `QUEUED → TO_SOURCE → LOWER → ATTACH → LIFT → TRANSFER → LOWER → RELEASE → DONE`. A container follows the hook only while attached. Pickup/drop require position tolerance and a valid free destination; cargo must clear obstacles while traveling.
- Create deterministic jobs with unique container IDs and valid ship-to-yard destinations. Keep destinations near their pickup bay (within one bay) so jobs remain physically reachable despite non-crossing cranes.
- Implement a **real dispatcher** (estimated travel time + workload + reachable position) and conflict avoidance (slow/stop before violating rail separation). Queued jobs may be reassigned when a crane is unavailable.
- Model suspended-load sway with a **damped pendulum approximation** driven by trolley acceleration and wind. Wind changes actual sway, and the controller must slow trolley motion when needed. A simple stable approximation is fine; a decorative sway animation is not.
## 3. Fully automated choreography — 5 × 15 s
| Time | Phase | Required event |
|---|---|---|
| **0–15 s** | **P1 — BASELINE** | Release 6 normal jobs; demonstrate picking, lifting, transfer and stacking. |
| **15–30 s** | **P2 — QUAY BOTTLENECK** | Release 6 jobs concentrated near adjacent crane work zones; dispatch without rail crossing or deadlock. |
| **30–45 s** | **P3 — CROSSWIND** | Release 6 jobs; introduce alternating lateral wind gusts. Show and regulate real payload sway. |
| **45–60 s** | **P4 — CRANE FAILURE** | Release 6 jobs. Disable **C2 at t=47 s**, restore at **t=55 s**. It must stop safely; reassign waiting jobs accessible to C1/C3 (include priority jobs near `x≈500` and `x≈900`). |
| **60–75 s** | **P5 — ORDER SURGE** | Release 8 more jobs. All cranes resume operation; clear as much backlog as possible. |
**Total: 32 jobs released; 75 seconds of simulated time.** Events must be triggered by simulation time, not wall-clock time. A brief READY title is optional, but the complete recorded sequence must stay within **90 seconds**.
## 4. Live rendering and HUD
- Strong visual clarity: independently moving cranes, visibly suspended containers, colored yard stacks, crane safety zones, moving wind arrows and a visible SWAY indicator.
- Always show: **phase name (P1–P5), 75-second timeline, completed/32, active jobs, per-crane state, minimum rail clearance, wind strength, max sway and FPS**.
- Clearly highlight job reassignments and C2's failure/recovery. Final screen: an easily readable 5-row scorecard.
## 5. Objective self-grading (100 points)
Award the listed sub-points **only when the measured condition is true**. Deliveries count **only after a valid pickup, physical transfer and correct drop**.
| Phase | Points | Measured tests |
|---|---:|---|
| **P1** | **20** | ≥3 valid deliveries by t=15 (**10**); zero invalid pickup/drop operations (**10**). |
| **P2** | **20** | ≥3 deliveries during P2 (**10**); crane order preserved and minimum rail separation ≥145 throughout P2 (**10**). |
| **P3** | **20** | ≥2 deliveries during P3 (**10**); max absolute payload sway ≤0.35 rad, with no dropped cargo (**10**). |
| **P4** | **20** | ≥1 genuinely reassigned priority job delivered during P4 (**10**); failed C2 does not move while disabled, no dropped payload (**10**). |
| **P5** | **20** | ≥16 total deliveries by t=75 (**10**); ≥4 deliveries during P5 (**5**); zero duplicates/lost containers, invalid drops or non-finite states (**5**). |
- Report **actual** completion counts, throughput, per-crane utilization, max sway, minimum rail gap, reassignment count, invalid operations, lost/duplicated containers, average FPS and a deterministic final-state hash.
- Log one compact final JSON object with `console.log(JSON.stringify(scorecard))`, containing `{benchmark, seed, phases:[{name, earned, max, metrics}], totals, score, finalStateHash}`. Expose the same object as `window.BENCHMARK_RESULT` for external verification.
- Do **not** silently clamp or delete invalid jobs, falsify metrics, or award points for merely animating a phase. A failure must be visible as **FAIL** with its measured value.
## 6. Controls and code quality
Auto-start. `Space` = pause/resume; `R` = restart with seed 1337. Organize code into small sections for **PRNG, state, scheduling, crane motion, sway, collision checks, phase director, rendering and grading**. Favor a complete, robust implementation over unnecessary visual complexity.
**Output only the complete HTML source. No explanation, no placeholders, no omitted phases.**