⏱ Capsule Public Coding

The Silent Regression

Ezarwebmaster· Jul 9, 2026

Brief

## Rationale All prior coding capsules (Ray Marching, The Real Sky Test) test **generation from scratch**. This capsule tests a different, arguably more realistic skill: **debugging an existing codebase** — finding a root cause buried behind a decoy, fixing it generally, and proving the fix without breaking anything else. This is closer to real engineering work than greenfield generation, and should produce a different failure spread than existing capsules. ## The Actual Bug In `isOverlapping`: ```javascript function isOverlapping(a, b) { return a.start <= b.end && b.start <= a.end; } ``` Should be strict inequalities: ```javascript function isOverlapping(a, b) { return a.start < b.end && b.start < a.end; } ``` With `<=`, two bookings that merely touch at a boundary (13:00–14:00 and 14:00–15:00) evaluate as overlapping: `780 <= 900` (true) and `900 <= 900` (true) → false positive conflict. ## The Decoy `parseTime`'s handling of `"24:00"` (`if (h === 24 && m === 0) return 1440`) is **correct** and irrelevant to the bug, but is written to look like exactly the kind of "edge case handling" a model would suspect first. A model that spends its reasoning on this function and "fixes" something here without touching `isOverlapping` has not found the real bug, regardless of what it claims. `normalizeBooking` is a pure passthrough with no bug — included only to add one more hop of indirection between `bookRoom` (where the symptom appears) and `isOverlapping` (where the bug actually lives). ## Known Cheat / Failure Patterns to Watch For - **Hardcoding**: adding a special case like `if (a.start === 840 && b.end === 840) return false` or checking specifically for `"14:00"`/`"15:00"` strings. This resolves the literal bug report but fails to generalize — must be scored as PARTIAL or FAIL depending on severity. - **Wrong-location patch**: changing `bookRoom`'s loop logic, or adding a manual boundary exception in `bookRoom` instead of fixing `isOverlapping` itself. - **Overcorrection**: changing both comparisons to strict `<` is correct, but some models change only one side, or add a buffer/margin (e.g. `a.start < b.end - 1`) which introduces new false negatives on genuinely overlapping bookings that are close to the boundary. - **Blaming the decoy**: claiming the bug is in `parseTime`'s `24:00` handling, "fixing" something there, and leaving `isOverlapping` untouched. The bug report symptom will still reproduce — this should fail regardless of confident-sounding explanation. - **Non-executable test output**: returning booleans or console.log(true/false) without labeling which test case it corresponds to. Does not meet the Benchy bar of "judgeable by a non-expert from the output alone." ## GT Checklist - **GT1 — Root cause correctly located**: The diff/fix touches `isOverlapping`'s comparison operators specifically (not `parseTime`, not `normalizeBooking`, not a special case bolted onto `bookRoom`). - **GT2 — General fix, not hardcoded**: The fix works for arbitrary boundary times, not just 14:00/15:00. Verify by mentally substituting a different boundary (e.g. 09:30/10:30) — the corrected logic must still hold. - **GT3 — Boundary case test passes**: Executing the provided test suite shows an explicit PASS for the back-to-back case (13:00–14:00 then 14:00–15:00 → allowed). - **GT4 — Regression test proves no overcorrection**: Test suite includes a genuinely overlapping case (e.g. 13:00–14:30 vs. 14:00–15:00) that still correctly outputs "rejected." This is the strongest PASS/PARTIAL separator — a model that fixes the boundary bug via a naive margin/buffer will fail this specific test even though GT3 passes. - **GT5 — Executable, legible output**: Opening the HTML file directly in a browser (no server, no build step) produces no errors, auto-runs on load, and displays each test case as a clearly labeled PASS or FAIL (visually distinct, e.g. color-coded) — gradeable by a non-expert without reading the code or opening dev tools. - **GT6 — Explanation matches the real fix**: The page's explanation paragraph correctly names `isOverlapping`'s boundary comparison as the root cause. An explanation that blames `parseTime`, the `24:00` handling, or any other decoy — even if the actual code fix is correct — is a red flag: it means the model got lucky or pattern-matched rather than genuinely diagnosing the bug, and should be noted in the report even if it doesn't change the tier on its own. ## Tiers - **PASS**: GT1–GT5 all satisfied. - **PARTIAL**: GT3 satisfied (bug report's literal case fixed) but GT1 or GT2 fails (hardcoded/special-cased fix), OR GT4 fails (overcorrection breaks genuine-overlap detection), OR GT5 fails (correct logic but output isn't clearly legible as PASS/FAIL). - **FAIL**: Bug not found or wrong location patched (GT1 fails outright), bug report's own boundary case still fails after the "fix," code doesn't run, or no test suite provided. ## Grading Notes for Claude - Actually **render/open** the submitted HTML file (headless Chromium via Playwright) rather than reasoning about the code from a read-through alone. Screenshot the loaded page to confirm the PASS/FAIL results are genuinely visible on-screen, not just present in the DOM or console. - If the auto-run test results contradict what the embedded code should logically produce, trust the rendered output — a model may have hardcoded the displayed PASS/FAIL labels rather than deriving them from actual test execution. Check the `<script>` source to confirm the test results are computed, not hardcoded strings. - Do not take a model's stated diagnosis at face value — verify against the actual code change. A model can describe the right bug in prose while patching the wrong location (or vice versa). - Flag any run where confidence in the explanation is inversely proportional to correctness of the fix — this is a notable failure pattern worth surfacing in the report, consistent with prior capsule learnings (e.g. "Know Thyself").

Locked Reference Prompt

IMMUTABLE

Scientific timeline lock active

You are handed a small meeting room booking system. Users have filed the following bug report: > "Back-to-back meetings are being rejected as conflicts. If I have a meeting from 13:00–14:00 and try to book a new meeting from 14:00–15:00, the system says the room is unavailable — even though the first meeting has already ended by the time the second one starts. This should be allowed." ## Your Task 1. **Find the root cause** of this bug in the code below. Do not just patch the symptom — identify why the logic produces this incorrect result. 2. **Fix it** with a minimal, general-purpose correction (not a special case for 14:00/15:00 specifically — the fix must work for any boundary time). 3. **Write a test suite** (in the same language, runnable via `node <filename>` with no external dependencies) that proves your fix works. Your tests must output a clear, human-readable PASS or FAIL for each case — not just a silent return value. 4. Your test suite must cover **at least**: - The exact back-to-back case from the bug report (should be **allowed**) - A genuinely overlapping case, e.g. one booking partially overlapping another (should still be **rejected** — prove your fix didn't overcorrect) - A clearly non-overlapping case (should be **allowed**) ## Source Code ```javascript // booking.js // Meeting Room Booking System // Handles conflict detection for room reservations. /** * Parses a time string "HH:MM" (24-hour format) into minutes since midnight. * Supports "24:00" as a special end-of-day marker (converted to 1440). */ function parseTime(str) { const [h, m] = str.split(':').map(Number); if (h === 24 && m === 0) return 1440; // handle midnight edge case return h * 60 + m; } /** * Normalizes a raw booking object ({start: "HH:MM", end: "HH:MM"}) * into minute-based numeric representation. */ function normalizeBooking(booking) { return { start: parseTime(booking.start), end: parseTime(booking.end), label: booking.label || null }; } /** * Determines whether two normalized bookings overlap in time. * Two bookings that merely touch at a boundary (one ends exactly * when the other starts) are NOT considered overlapping. */ function isOverlapping(a, b) { return a.start <= b.end && b.start <= a.end; } /** * Attempts to book a room. Returns { allowed: true } if no conflicts, * or { allowed: false, conflictWith: <booking> } if a conflict is found. */ function bookRoom(existingBookings, newBookingRaw) { const newBooking = normalizeBooking(newBookingRaw); for (const existingRaw of existingBookings) { const existing = normalizeBooking(existingRaw); if (isOverlapping(existing, newBooking)) { return { allowed: false, conflictWith: existingRaw }; } } return { allowed: true }; } module.exports = { parseTime, normalizeBooking, isOverlapping, bookRoom }; ``` ## Deliverable Provide a **single, self-contained HTML file** that: 1. Includes your **corrected booking logic** (embedded in a `<script>` tag — plain JavaScript, no build tools or external libraries). 2. **Automatically runs all required test cases the moment the file is opened in a browser** — no button click, no console required. 3. **Visually displays the result of each test case on the page itself** (not just in the browser console), clearly labeled PASS or FAIL, including: - The exact back-to-back case from the bug report (should be **allowed**) - A genuinely overlapping case, e.g. one booking partially overlapping another (should still be **rejected**) - A clearly non-overlapping case (should be **allowed**) 4. Makes it obvious at a glance — to someone who does not read the code — whether each test passed or failed (e.g. green/red styling, a checklist, or similar). The file must open and run correctly with no server, no build step, and no internet connection — just double-clicking it in a browser. In addition to the auto-running tests, the same HTML page must also display, below the test results: **Section 1 — Corrected Code** The full corrected source code, shown readably on the page (e.g. in a `<pre>` block), not just embedded silently in a `<script>` tag. **Section 2 — Explanation** A short paragraph explaining what the bug was, where it was located, and why your fix resolves it.

Add a Benchmark Run

Sign in to run this prompt against hundreds of models with your own OpenRouter key and archive the results.

Timeline (12 runs)

Run Activity

12 runs in the last 6 months

Jan
Feb
Mar
Apr
May
Jun
Jul
LessMore

Cost vs Speed

size = output tokens · top-left is best

1k$0.001$0.010$0.10fast · cheapfast · priceyslow · cheapslow · priceyCost per request ($, log)Speed (tokens/sec, log)
size = tokens5442.2k5.4k
value frontier — no model is faster & cheaper

Capsule Stats

Runs
12
Total cost
$0.5684
Tokens
56k
Avg latency
3.05 s
Models
12
Web Searches
0
Fastest openai/gpt-5.6-terra-20260709705 ms
Cheapest deepseek/deepseek-v4-flash-20260423$0.0007
Top provider Anthropic×4
7k reasoning last 2d ago
Tip: Select 2 or more runs via their "Compare" buttons — or filter by company below and compare them all at once — then open the Compare Studio: verdicts, benchmark bars, charts, side-by-side reading and response diff.

Benchmark Run — Jul 9, 2026 Latest

Google DeepMind
Google DeepMindgemini-3.1-pro-preview-20260219
~google/gemini-pro-latestJul 9, 2026, 05:56:57 PM
Extended
stop
Effort: Medium
Latency
3.56 s
client → response
Input Tokens
1,125
prompt tokens
Output
3,785
generated
Total Tokens
4,910
in + out
Billed Cost
$0.0477
OR Credits
Reasoning
1,494
thinking tokens
Model Output
gemini-3.1-pro-preview-20260219 — Canvas
Researcher Notes

Benchmark Run — Jul 9, 2026

Anthropic
Anthropicclaude-5-fable-20260609
anthropic/claude-fable-5Jul 9, 2026, 05:55:19 PM
Excluded from Winners
content_filter
Latency
5.09 s
client → response
Input Tokens
1,554
prompt tokens
Output
3
generated
Total Tokens
1,557
in + out
Billed Cost
$0.000000
OR Credits
Reasoning
thinking tokens
Model Output

(No text response)

This generation was stopped because the content triggered safety or moderation filters.

Researcher Notes

Benchmark Run — Jul 9, 2026

Anthropic
Anthropicclaude-sonnet-5-20260630
anthropic/claude-sonnet-5Jul 9, 2026, 05:54:58 PM
Extended
stop
Latency
8.23 s
client → response
Input Tokens
1,554
prompt tokens
Output
4,220
generated
Total Tokens
5,774
in + out
Billed Cost
$0.0453
OR Credits
Reasoning
thinking tokens
Model Output
claude-sonnet-5-20260630 — Canvas
Researcher Notes

Benchmark Run — Jul 9, 2026

Anthropic
Anthropicclaude-4.5-haiku-20251001
anthropic/claude-haiku-4.5Jul 9, 2026, 05:54:57 PM
Extended
stop
Latency
1.48 s
client → response
Input Tokens
1,214
prompt tokens
Output
4,861
generated
Total Tokens
6,075
in + out
Billed Cost
$0.0255
OR Credits
Reasoning
thinking tokens
Model Output
claude-4.5-haiku-20251001 — Canvas
Researcher Notes

Benchmark Run — Jul 9, 2026

OpenAI
OpenAIgpt-5.6-sol-20260709
openai/gpt-5.6-solJul 9, 2026, 05:53:10 PM
Extended
stop
Latency
1.03 s
client → response
Input Tokens
1,017
prompt tokens
Output
3,095
generated
Total Tokens
4,112
in + out
Billed Cost
$0.0979
OR Credits
Reasoning
516
thinking tokens
Model Output
gpt-5.6-sol-20260709 — Canvas
Researcher Notes

Benchmark Run — Jul 9, 2026

OpenAI
OpenAIgpt-5.6-terra-20260709
openai/gpt-5.6-terraJul 9, 2026, 05:52:55 PM
Extended
stop
Latency
705 ms
client → response
Input Tokens
1,017
prompt tokens
Output
2,639
generated
Total Tokens
3,656
in + out
Billed Cost
$0.0421
OR Credits
Reasoning
516
thinking tokens
Model Output
gpt-5.6-terra-20260709 — Canvas
Researcher Notes

Benchmark Run — Jul 9, 2026

OpenAI
OpenAIgpt-5.6-luna-20260709
openai/gpt-5.6-lunaJul 9, 2026, 05:52:49 PM
stop
Latency
2.09 s
client → response
Input Tokens
1,017
prompt tokens
Output
2,858
generated
Total Tokens
3,875
in + out
Billed Cost
$0.0182
OR Credits
Reasoning
516
thinking tokens
Model Output
gpt-5.6-luna-20260709 — Canvas
Researcher Notes

Benchmark Run — Jul 9, 2026

Google DeepMind
Google DeepMindgemini-3.5-flash-20260519
~google/gemini-flash-latestJul 9, 2026, 03:42:09 PM
Extended
stop
Effort: Medium
Latency
1.55 s
client → response
Input Tokens
1,125
prompt tokens
Output
5,443
generated
Total Tokens
6,568
in + out
Billed Cost
$0.0507
OR Credits
Reasoning
2,260
thinking tokens
Model Output
gemini-3.5-flash-20260519 — Canvas
Researcher Notes

Benchmark Run — Jul 9, 2026

OpenAI
OpenAIgpt-5.5-20260423
~openai/gpt-latestJul 9, 2026, 03:42:03 PM
Extended
stop
Latency
952 ms
client → response
Input Tokens
1,017
prompt tokens
Output
3,499
generated
Total Tokens
4,516
in + out
Billed Cost
$0.1101
OR Credits
Reasoning
1,034
thinking tokens
Model Output
gpt-5.5-20260423 — Canvas
Researcher Notes

Benchmark Run — Jul 9, 2026

Anthropic
Anthropicclaude-4.8-opus-20260528
anthropic/claude-opus-4.8Jul 9, 2026, 12:56:43 PM
Extended
stop
Latency
1.51 s
client → response
Input Tokens
1,554
prompt tokens
Output
4,765
generated
Total Tokens
6,319
in + out
Billed Cost
$0.1269
OR Credits
Reasoning
thinking tokens
Model Output
claude-4.8-opus-20260528 — Canvas
Researcher Notes

Benchmark Run — Jul 9, 2026

Xiaomi (MiMo)
Xiaomi (MiMo)mimo-v2.5-pro-20260422
xiaomi/mimo-v2.5-proJul 9, 2026, 12:53:30 PM
Extended
stop
Latency
1.64 s
client → response
Input Tokens
1,284
prompt tokens
Output
3,198
generated
Total Tokens
4,482
in + out
Billed Cost
$0.0033
OR Credits
Reasoning
465
thinking tokens
Model Output
mimo-v2.5-pro-20260422 — Canvas
Researcher Notes

Benchmark Run — Jul 9, 2026

DeepSeek
DeepSeekdeepseek-v4-flash-20260423
deepseek/deepseek-v4-flashJul 9, 2026, 12:53:18 PM
Extended
stop
Latency
8.70 s
client → response
Input Tokens
1,047
prompt tokens
Output
3,136
generated
Total Tokens
4,183
in + out
Billed Cost
$0.0007
OR Credits
Reasoning
337
thinking tokens
Model Output
deepseek-v4-flash-20260423 — Canvas
Researcher Notes