Skip to content

Commit 6120f46

Browse files
jefferyUstcclaude
andcommitted
Cut the benchmark block, the loop block and the principles headline
Three removals, and everything that only existed to serve them. The benchmark subsection goes with its tabs, bars, table and cost note. That takes the site's only empirical claim off the page β€” the numbers are in the manuscript and the bench repo, which the footer still links. It also retires ~110 lines of JS (the BENCH data, the renderer, the tab wiring and the replay observer) and the whole .bench/.bar rule set. The "same loop" block goes too; its one piece of information not stated elsewhere β€” that the pipeline is not public yet β€” is now carried by the two "Coming soon" cards. Principles keeps its four cards and loses only the headline, so the section reads off its eyebrow. Quieter, and less of a manifesto this late in the page. Also removes the footer link to the section that no longer exists, prunes .subsection/.loop/.lock/.lede--tight and the responsive rules that went with them, and drops two README lines that described the benchmark wiring. index.html -3.6 KB, styles.css -4.7 KB, main.js -4.5 KB. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
1 parent 89e39be commit 6120f46

4 files changed

Lines changed: 7 additions & 260 deletions

File tree

β€ŽREADME.mdβ€Ž

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ is a deploy.
55

66
`index.html` is the whole page β€” static markup, nothing rendered at runtime. `assets/js/main.js`
77
only adds behaviour: sticky nav, scroll reveals, the stat counters, the stack tier picker, the
8-
library filter, the benchmark tabs. Changing copy means editing `index.html`.
8+
library filter. Changing copy means editing `index.html`.
99

1010
```bash
1111
python3 -m http.server 8000
@@ -53,7 +53,6 @@ reword the copy, check the pattern still matches.
5353
| `12` read-only MCP tools | asserted by `tests/test_mcp_server.py::tool_count` in `bio-babel-MCP` |
5454
| per-card versions | PyPI |
5555
| the argument in the hero and the Why section | `manuscript/Draft_main_text_human.txt` β€” the copy is drawn from it, so keep the two consistent |
56-
| the benchmark table | the recorded `runs/exec` and `runs/noexec` matrices, 114 cells per arm β€” the `BENCH` object in `assets/js/main.js` |
5756

5857
## Logo
5958

β€Žassets/css/styles.cssβ€Ž

Lines changed: 1 addition & 72 deletions
Original file line numberDiff line numberDiff line change
@@ -470,72 +470,6 @@ a.sys__cta:hover{background:var(--gold-soft);border-color:rgba(242,200,121,.62)}
470470
}
471471
.split__cta{display:flex;flex-wrap:wrap;align-items:center;gap:.7rem;margin-top:2.2rem}
472472

473-
/* ─────────────────────────────────────────── subsection inside a section ─ */
474-
.subsection{margin-top:5rem;padding-top:3.2rem;border-top:1px solid var(--line)}
475-
.subsection__title{margin:0 0 .75rem;font-size:clamp(1.35rem,2.4vw,1.72rem);font-weight:660;
476-
letter-spacing:-.028em;color:#FFFCF2}
477-
.lede--tight{margin-top:0;font-size:.97rem}
478-
479-
/* ───────────────────────────────────────────────────────────── benchmark ─ */
480-
.bench{margin-top:3.2rem;border:1px solid var(--line);border-radius:18px;overflow:hidden;
481-
background:var(--ink-850)}
482-
.bench__switch{display:flex;border-bottom:1px solid var(--line)}
483-
.bench__tab{
484-
flex:1;padding:1.05rem 1.4rem;background:transparent;border:none;cursor:pointer;
485-
text-align:left;color:var(--text-3);font-family:var(--mono);font-size:.8rem;
486-
letter-spacing:.1em;text-transform:uppercase;position:relative;transition:all .25s var(--ease);
487-
}
488-
.bench__tab+.bench__tab{border-left:1px solid var(--line)}
489-
.bench__tab span{display:block;margin-top:.2rem;font-size:.68rem;letter-spacing:.05em;
490-
text-transform:none;opacity:.62;font-family:var(--sans)}
491-
.bench__tab:hover{color:var(--text-2);background:rgba(255,255,255,.02)}
492-
.bench__tab.is-active{color:#FFFCF2;background:rgba(139,92,246,.07)}
493-
.bench__tab.is-active::after{content:"";position:absolute;left:0;right:0;bottom:-1px;height:2px;
494-
background:linear-gradient(90deg,var(--violet),var(--gold))}
495-
.bench__note{margin:0;padding:1.05rem 1.6rem;font-size:.9rem;color:var(--text-2);
496-
border-bottom:1px solid var(--line);background:rgba(0,0,0,.16)}
497-
.bench__note.is-hidden{display:none}
498-
.bench__body{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.1fr);gap:0}
499-
.bench__bars{padding:2rem 1.9rem;border-right:1px solid var(--line);display:grid;gap:1.5rem;align-content:start}
500-
.bar__head{display:flex;justify-content:space-between;align-items:baseline;gap:1rem;margin-bottom:.4rem}
501-
.bar__val{font-family:var(--mono);font-size:.95rem;font-weight:600;color:#FFFCF2;line-height:1}
502-
.bar__track{height:9px;border-radius:6px;background:rgba(255,255,255,.055);overflow:hidden}
503-
.bar__fill{height:100%;border-radius:6px;width:0;transition:width 1.1s var(--ease)}
504-
.bar--base .bar__fill{background:linear-gradient(90deg,#41495B,#5C6880)}
505-
.bar--bb .bar__fill{background:linear-gradient(90deg,var(--violet-3),var(--violet-2) 60%,var(--gold))}
506-
.bar__arm{font-family:var(--mono);font-size:.68rem;letter-spacing:.11em;text-transform:uppercase;
507-
color:var(--text-3)}
508-
.bar__group{padding-bottom:.2rem}
509-
.bar__group+.bar__group{border-top:1px solid var(--line);padding-top:1.4rem}
510-
511-
.bench__table-wrap{padding:2rem 1.9rem}
512-
.bench__table{width:100%;border-collapse:collapse;font-size:.875rem}
513-
.bench__table th{text-align:right;padding:.55rem .5rem;font-family:var(--mono);font-size:.68rem;
514-
letter-spacing:.12em;text-transform:uppercase;color:var(--text-3);
515-
border-bottom:1px solid var(--line-2);font-weight:500}
516-
.bench__table th:first-child{text-align:left}
517-
.bench__table td{text-align:right;padding:.62rem .5rem;border-bottom:1px solid var(--line);
518-
color:var(--text-2);font-family:var(--mono);font-size:.83rem}
519-
.bench__table td:first-child{text-align:left;font-family:var(--sans);color:var(--text-2)}
520-
.bench__table tr:last-child td{border-bottom:none}
521-
.bench__table .win{color:#FFFCF2;font-weight:650}
522-
.bench__table .delta{color:#4FDE97}
523-
.bench__table .delta--cost{color:var(--gold-2)}
524-
.bench__foot{margin:1.2rem 0 0;font-size:.78rem;line-height:1.7;color:var(--text-3)}
525-
.bench__honest{margin:1.8rem 0 0;padding:1.1rem 1.3rem;border-radius:12px;font-size:.92rem;
526-
line-height:1.72;color:var(--text-2);border:1px solid var(--line);background:rgba(255,255,255,.02)}
527-
.bench__honest b{color:var(--gold);font-family:var(--mono);font-size:.9em}
528-
529-
/* ────────────────────────────────────────────────────────────────── loop ─ */
530-
.loop{margin-top:4.4rem;padding-top:3rem;border-top:1px solid var(--line)}
531-
.loop__row{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-top:1.6rem}
532-
.loop__item{padding:1.15rem 1.2rem;border:1px solid var(--line);border-radius:12px;
533-
font-size:.885rem;line-height:1.66;color:var(--text-2);background:rgba(255,255,255,.018)}
534-
.loop__item b{display:block;margin-bottom:.25rem;color:#F3F6FC}
535-
.loop__note{margin:1.6rem 0 0;padding:1rem 1.2rem;border-radius:12px;font-size:.9rem;
536-
color:var(--text-2);border:1px solid rgba(242,200,121,.2);background:rgba(242,200,121,.05)}
537-
.lock{margin-right:.35rem}
538-
539473
/* ────────────────────────────────────────────────────────────────── join ─ */
540474
.join{list-style:none;margin:3rem 0 0;padding:0;border:1px solid var(--line);
541475
border-radius:16px;overflow:hidden}
@@ -593,9 +527,6 @@ a.sys__cta:hover{background:var(--gold-soft);border-color:rgba(242,200,121,.62)}
593527
.cards--4{grid-template-columns:repeat(2,1fr)}
594528
.sys{grid-template-columns:1fr}
595529
.libs{grid-template-columns:repeat(2,1fr)}
596-
.bench__body{grid-template-columns:1fr}
597-
.bench__bars{border-right:none;border-bottom:1px solid var(--line)}
598-
.loop__row{grid-template-columns:repeat(2,1fr)}
599530
}
600531
@media (max-width:900px){
601532
.nav__links{
@@ -619,16 +550,14 @@ a.sys__cta:hover{background:var(--gold-soft);border-color:rgba(242,200,121,.62)}
619550
.section{padding:80px 0}
620551
.hero{padding:130px 0 72px}
621552
.h2{max-width:none}
622-
.cards--4,.libs,.loop__row{grid-template-columns:1fr}
553+
.cards--4,.libs{grid-template-columns:1fr}
623554
.flow__steps{grid-template-columns:1fr}
624555
.flow__step{border-right:none!important;padding-left:1.3rem}
625556
.join__row{grid-template-columns:auto minmax(0,1fr);gap:.5rem 1.1rem;padding:1.3rem}
626557
.join__go{grid-column:2;justify-self:start;margin-top:.7rem}
627558
.copychip{font-size:.7rem;max-width:100%;overflow:hidden}
628559
.copychip code{overflow:hidden;text-overflow:ellipsis}
629560
.zig__tier{height:54px;padding:0 .9rem}
630-
.bench__tab{padding:.85rem 1rem;font-size:.72rem}
631-
.bench__bars,.bench__table-wrap{padding:1.4rem 1.2rem}
632561
.foot__cols{grid-template-columns:1fr;gap:24px}
633562
}
634563

β€Žassets/js/main.jsβ€Ž

Lines changed: 3 additions & 112 deletions
Original file line numberDiff line numberDiff line change
@@ -51,9 +51,9 @@
5151

5252
/* ──────────────────────────────────────────────── reveal on first view ─ */
5353
var revealTargets = $$([
54-
'.section .eyebrow', '.section .h2', '.section .lede', '.subsection__title',
55-
'.card', '.lib', '.zig', '.flow', '.split', '.bench',
56-
'.bench__honest', '.loop', '.join', '.filters', '.libs__note', '.closer__inner'
54+
'.section .eyebrow', '.section .h2', '.section .lede',
55+
'.card', '.lib', '.sys', '.zig', '.flow', '.split',
56+
'.join', '.filters', '.libs__note', '.closer__inner'
5757
].join(','));
5858

5959
if (!reduced && 'IntersectionObserver' in window) {
@@ -149,113 +149,4 @@
149149
});
150150
});
151151

152-
/* ───────────────────────────────────────────────────────── benchmark ─ */
153-
/* Recorded runs: 38 tasks x 3 repeats = 114 cells per arm.
154-
`max` is the scale each bar is drawn against; `better` says which
155-
direction is good, so the delta can be coloured honestly. */
156-
var BENCH = {
157-
noexec: {
158-
bars: [
159-
{ name: 'pass rate', base: 2, bb: 51, max: 100, fmt: function (v) { return v + '%'; } },
160-
{ name: 'rubric score', base: 0.028, bb: 0.662, max: 1, fmt: function (v) { return v.toFixed(3); } }
161-
],
162-
rows: [
163-
['Pass rate', '2%', '51%', '+49 pp', 'good'],
164-
['Rubric score', '0.028', '0.662', '+0.634', 'good'],
165-
['Rounds', '2.8', '5.6', '+2.8', 'cost'],
166-
['biobabel tool calls', '0', '9.2', 'β€”', 'flat'],
167-
['Input tokens', '3,404', '222,471', '+219k', 'cost'],
168-
['Output tokens', '1,089', '1,773', '+684', 'cost']
169-
]
170-
},
171-
exec: {
172-
bars: [
173-
{ name: 'pass rate', base: 64, bb: 84, max: 100, fmt: function (v) { return v + '%'; } },
174-
{ name: 'rubric score', base: 0.840, bb: 0.918, max: 1, fmt: function (v) { return v.toFixed(3); } }
175-
],
176-
rows: [
177-
['Pass rate', '64%', '84%', '+20 pp', 'good'],
178-
['Rubric score', '0.840', '0.918', '+0.078', 'good'],
179-
['Rounds to solve', '16.3', '6.7', 'βˆ’9.6', 'good'],
180-
['Blind run_python calls', '14.1', '2.4', 'βˆ’11.7', 'good'],
181-
['biobabel tool calls', '0', '8.2', 'β€”', 'flat'],
182-
['Input tokens', '81,885', '304,319', '+272%', 'cost'],
183-
['Output tokens', '3,225', '1,602', 'βˆ’50%', 'good']
184-
]
185-
}
186-
};
187-
188-
var barsBox = $('#benchBars');
189-
var tableBody = $('#benchTable tbody');
190-
191-
var renderBench = function (mode) {
192-
var data = BENCH[mode];
193-
if (!data || !barsBox) return;
194-
195-
barsBox.innerHTML = data.bars.map(function (b) {
196-
return '' +
197-
'<div class="bar__group">' +
198-
'<div class="bar bar--base">' +
199-
'<div class="bar__head">' +
200-
'<span class="bar__arm">baseline Β· ' + b.name + '</span>' +
201-
'<span class="bar__val">' + b.fmt(b.base) + '</span></div>' +
202-
'<div class="bar__track"><div class="bar__fill" data-w="' +
203-
(b.base / b.max * 100) + '"></div></div>' +
204-
'</div>' +
205-
'<div class="bar bar--bb" style="margin-top:1rem">' +
206-
'<div class="bar__head">' +
207-
'<span class="bar__arm">bio-babel Β· ' + b.name + '</span>' +
208-
'<span class="bar__val">' + b.fmt(b.bb) + '</span></div>' +
209-
'<div class="bar__track"><div class="bar__fill" data-w="' +
210-
(b.bb / b.max * 100) + '"></div></div>' +
211-
'</div>' +
212-
'</div>';
213-
}).join('');
214-
215-
requestAnimationFrame(function () {
216-
$$('.bar__fill', barsBox).forEach(function (f) { f.style.width = f.dataset.w + '%'; });
217-
});
218-
219-
tableBody.innerHTML = data.rows.map(function (r) {
220-
var cls = r[4] === 'good' ? 'delta' : r[4] === 'cost' ? 'delta delta--cost' : '';
221-
return '<tr><td>' + r[0] + '</td><td>' + r[1] + '</td>' +
222-
'<td class="win">' + r[2] + '</td>' +
223-
'<td class="' + cls + '">' + r[3] + '</td></tr>';
224-
}).join('');
225-
};
226-
227-
$$('.bench__tab').forEach(function (tab) {
228-
tab.addEventListener('click', function () {
229-
var mode = tab.dataset.mode;
230-
$$('.bench__tab').forEach(function (t) {
231-
var on = t === tab;
232-
t.classList.toggle('is-active', on);
233-
t.setAttribute('aria-selected', String(on));
234-
});
235-
$$('.bench__note').forEach(function (n) {
236-
n.classList.toggle('is-hidden', n.dataset.note !== mode);
237-
});
238-
renderBench(mode);
239-
});
240-
});
241-
242-
if (barsBox) {
243-
renderBench('noexec');
244-
// replay the bar animation the first time the section scrolls into view
245-
if (!reduced && 'IntersectionObserver' in window) {
246-
var benchObs = new IntersectionObserver(function (entries, obs) {
247-
entries.forEach(function (en) {
248-
if (!en.isIntersecting) return;
249-
obs.unobserve(en.target);
250-
$$('.bar__fill', barsBox).forEach(function (f) {
251-
f.style.width = '0';
252-
requestAnimationFrame(function () {
253-
requestAnimationFrame(function () { f.style.width = f.dataset.w + '%'; });
254-
});
255-
});
256-
});
257-
}, { threshold: 0.25 });
258-
benchObs.observe(barsBox);
259-
}
260-
}
261152
})();

β€Žindex.htmlβ€Ž

Lines changed: 2 additions & 74 deletions
Original file line numberDiff line numberDiff line change
@@ -923,68 +923,13 @@ <h3 class="h3">Hard invariants</h3>
923923
</button>
924924
</div>
925925
</div>
926-
</div>
927-
928-
<div class="subsection" id="benchmark">
929-
<h3 class="h3 subsection__title">Does any of this actually work?</h3>
930-
<p class="lede lede--tight">
931-
An ablation, not a demo. Same model, same 38 tasks, same workspace tools, same judge. The
932-
single independent variable is whether the agent can reach the contract server. Both arms
933-
get an identical tool set β€” that identity <em>is</em> the fairness guarantee.
934-
</p>
935-
936-
<div class="bench">
937-
<div class="bench__switch" role="tablist" aria-label="Benchmark mode">
938-
<button class="bench__tab is-active" data-mode="noexec" role="tab" aria-selected="true">
939-
Accuracy <span>one-shot, no execution</span>
940-
</button>
941-
<button class="bench__tab" data-mode="exec" role="tab" aria-selected="false">
942-
Efficiency <span>free iteration</span>
943-
</button>
944-
</div>
945-
946-
<p class="bench__note" data-note="noexec">
947-
The agent writes <code>solution.py</code> blind; the harness runs it exactly once and the
948-
judge grades the real artifact. Nothing can be ground out by retrying β€” this measures what
949-
the model actually <em>knows</em>.
950-
</p>
951-
<p class="bench__note is-hidden" data-note="exec">
952-
Both arms iterate freely, so accuracy saturates and the signal moves to cost: how many rounds,
953-
how many blind executions, how many output tokens it takes to get there.
954-
</p>
955-
956-
<div class="bench__body">
957-
<div class="bench__bars" id="benchBars"></div>
958-
<div class="bench__table-wrap">
959-
<table class="bench__table" id="benchTable">
960-
<thead><tr><th>Metric</th><th>Baseline</th><th>Bio-Babel</th><th>Ξ”</th></tr></thead>
961-
<tbody></tbody>
962-
</table>
963-
<p class="bench__foot">
964-
114 cells per arm Β· pass threshold 0.85 rubric score Β· tasks span
965-
<code>grid_py</code> 9, <code>ggplot2_py</code> 9, <code>scales</code> 7,
966-
<code>gtable_py</code> 5, cross-library 4, analysis 4.
967-
<a href="https://github.com/Bio-Babel/bio-babel-MCPBench" target="_blank" rel="noopener">bio-babel-MCPBench β†—</a>
968-
</p>
969-
</div>
970-
</div>
971-
</div>
972-
973-
<p class="bench__honest">
974-
<strong>The honest line:</strong> contract lookups are not free. In execution mode the
975-
Bio-Babel arm spends <b>+272%</b> input tokens to buy <b>βˆ’9.7</b> rounds and <b>βˆ’50%</b>
976-
output tokens. We report the cost because a benchmark that only reports the win is an
977-
advertisement.
978-
</p>
979-
</div>
980-
</div>
926+
</div> </div>
981927
</section>
982928

983929
<!-- ═══════════════════════════════════════════════════════ PRINCIPLES ═══ -->
984930
<section class="section" id="principles">
985931
<div class="wrap">
986932
<p class="eyebrow">Principles</p>
987-
<h2 class="h2">The rules we try not to break.</h2>
988933

989934
<div class="cards cards--4">
990935
<article class="card card--num"><span class="card__num">01</span>
@@ -1007,23 +952,7 @@ <h3>Docs and stewardship, first-class</h3>
1007952
<p>A port is alive when someone is learning it and someone is maintaining it. Every package
1008953
has a caretaker, not just an author.</p>
1009954
</article>
1010-
</div>
1011-
1012-
<div class="loop">
1013-
<h3 class="h3">Every port goes through the same loop</h3>
1014-
<div class="loop__row">
1015-
<div class="loop__item"><b>AI drafts.</b> A private pipeline produces an initial port from the canonical source.</div>
1016-
<div class="loop__item"><b>Humans review.</b> A maintainer shapes the API, rejects mimicry, insists on idioms.</div>
1017-
<div class="loop__item"><b>The reference judges.</b> Outputs are validated against the origin. Divergence is a bug.</div>
1018-
<div class="loop__item"><b>The community maintains.</b> When upstream moves, its sibling here moves too.</div>
1019-
</div>
1020-
<p class="loop__note">
1021-
<span class="lock">πŸ”’</span> The AI pipeline behind these ports is still in internal
1022-
development and is <strong>not yet public</strong>. It will be. In the meantime, the
1023-
libraries it produces are what we are asking you to judge us on.
1024-
</p>
1025-
</div>
1026-
</div>
955+
</div> </div>
1027956
</section>
1028957

1029958
<!-- ═════════════════════════════════════════════════════════════ JOIN ═══ -->
@@ -1103,7 +1032,6 @@ <h4>Project</h4>
11031032
<a href="#stack">The Stack</a>
11041033
<a href="#libraries">Libraries</a>
11051034
<a href="#tooling">Contracts &amp; tooling</a>
1106-
<a href="#benchmark">Benchmark</a>
11071035
</div>
11081036
<div>
11091037
<h4>Open source</h4>

0 commit comments

Comments
Β (0)