Skip to content

eval: service capacity scoring and sealed agent slice manifest - #131

Merged
ShivanshuPurohit merged 1 commit into
eval-revamp-agentic-codingfrom
claude/service-capacity-scoring
Sep 27, 2026
Merged

ShivanshuPurohit merged 1 commit into
eval-revamp-agentic-codingfrom
claude/service-capacity-scoring

Conversation

@ShivanshuPurohit

Copy link
Copy Markdown
Collaborator

Scoring path for the agent-goodput arena: service capacity at the contract boundary, the sealed slice manifest, and the retained per-turn row shape. Increment into eval-revamp-agentic-coding; Codex's execution path (bridge, worker loop, runner, commission, dashboard) is the consumer.

Consumer. qualification_runner calls capacity() per arm per window and service_verdict() once GP1's replay lands (Codex). Until then both modules are listed in scripts/island_baseline.txt; those two lines come out in the PR that wires the runner. The merge of the feature branch to main is gated on that consumer.

Casualty. resident_measurement, resident_schedule and the version 8–15 ladder in speed_verdict for the agent profile, plus the batch-cell surface they serve (screen family on the eval and chain sides, batch core, cell authority). Not deleted here: they still carry the Qwen arena, which runs from main until it retires (owner decision 2026-09-27: the GLM arena moves to this feature branch; Qwen deletion can go). Retirement trigger: the cutover tranche on this branch after GP1/GP2 land, sized in the private census at roughly −10,000 production and −7,000 test lines. No deletion was available in this change.

What it does.

  • cacheon/eval/service_capacity.py: TurnRecord rows, fixed-work rate that refuses any work other than the sealed slice, attainment under a ServiceContract (decode floor, queue-inclusive TTFT bound, attainment fraction), capacity by log-linear interpolation of the attainment crossing between the two bracket loads, and the paired verdict through the existing invariant_decision. load_reads_jsonl reads the retained row shape.
  • cacheon/eval/agent_slice.py: reopens a slice manifest over its directory of one-trace files, proving names, order, bytes and per-file session identity against the sealed digest; expected_work(load) is the per-root (main, inner) accounting the scorer checks.
  • Tests replay the retained 2026-09-26 final budget-4 pairs (AIPerf profile exports converted to rows, 3,150 turns): the step rule scores the winner at +2.8%, interpolation at the locked contract (60 tok/s, 5 s, 0.8) gives a 1.116 capacity ratio, and a tighter contract makes the incumbent infeasible rather than a zero denominator.

Ratchets. cacheon ceiling +465, tests +323, scripts +2 (island entries), all in this diff. surface-change: modules — two new modules with their __all__.

Docs. No page changes here: the evidence shape and manifest are settled in the private GP0 contract and land in docs/ with the feature PR that adds the arena; the module docstrings carry the invariants until then.

Net lines. Production +465 / −0. Tests +323 / −0 plus a 142 KB gzipped fixture. Baselines +8 / −6.

🤖 Generated with Claude Code

Scoring path for the agent-goodput arena, consumed by the runner once the
replay transport lands: TurnRecord rows, a fixed-work rate that refuses any
work other than the sealed slice, attainment under a service contract,
capacity by log-linear interpolation of the attainment crossing between the
two bracket loads, and the paired verdict through the existing
invariant_decision. The slice manifest reopens only over the directory it
was sealed on. Tests replay the retained 2026-09-26 final pairs.

Both modules are listed as islands until the runner imports them (GP1); the
batch measurement core they supersede stays for the Qwen arena until its
migration. Production +465/-0, tests +323/-0, baselines +8/-6.
@ShivanshuPurohit
ShivanshuPurohit merged commit 2c1c2b5 into eval-revamp-agentic-coding Sep 27, 2026
5 checks passed
@ShivanshuPurohit
ShivanshuPurohit deleted the claude/service-capacity-scoring branch September 27, 2026 01:23
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.

1 participant