@ikon85/agent-workflow-kit 0.43.0 → 0.44.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.agents/skills/grill-me/SKILL.md +3 -1
- package/.agents/skills/grill-with-docs/SKILL.md +3 -1
- package/.agents/skills/kit-update/SKILL.md +9 -11
- package/.agents/skills/orchestrate-wave/SKILL.md +8 -8
- package/.agents/skills/setup-workflow/SKILL.md +20 -18
- package/.agents/skills/setup-workflow/board-sync.md +4 -1
- package/.agents/skills/setup-workflow/workflow-advisories.md +3 -2
- package/.agents/skills/setup-workflow/worktree-lifecycle.md +36 -31
- package/.agents/skills/to-issues/SKILL.md +43 -0
- package/.agents/skills/wrapup/SKILL.md +98 -54
- package/.claude/skills/grill-me/SKILL.md +3 -1
- package/.claude/skills/grill-me-codex/SKILL.md +3 -1
- package/.claude/skills/grill-with-docs/SKILL.md +3 -1
- package/.claude/skills/grill-with-docs-codex/SKILL.md +3 -1
- package/.claude/skills/kit-update/SKILL.md +9 -11
- package/.claude/skills/orchestrate-wave/SKILL.md +8 -8
- package/.claude/skills/setup-workflow/SKILL.md +20 -18
- package/.claude/skills/setup-workflow/board-sync.md +4 -1
- package/.claude/skills/setup-workflow/workflow-advisories.md +3 -2
- package/.claude/skills/setup-workflow/worktree-lifecycle.md +36 -31
- package/.claude/skills/to-issues/SKILL.md +43 -0
- package/.claude/skills/wrapup/SKILL.md +98 -54
- package/README.md +249 -7
- package/agent-workflow-kit.package.json +42 -42
- package/package.json +16 -12
- package/scripts/marker_lib.py +3 -0
- package/scripts/profile_globs.py +26 -45
- package/scripts/release-delta-guard.mjs +26 -9
- package/scripts/worktree-lifecycle/README.md +57 -160
- package/scripts/worktree-lifecycle/capabilities.json +2 -3
- package/scripts/worktree-lifecycle/classify.py +480 -0
- package/scripts/worktree-lifecycle/cleanup.py +9 -29
- package/scripts/worktree-lifecycle/core.py +68 -1429
- package/scripts/worktree-lifecycle/ignore_seed.py +1 -1
- package/scripts/worktree-lifecycle/profile.py +46 -29
- package/scripts/worktree-lifecycle/setup.py +7 -19
- package/scripts/wrapup-land.py +1292 -545
- package/src/consumer-migrations.json +1 -16
- package/src/lib/bundle.mjs +31 -1
- package/docs/adr/0001-consumer-divergence-policy.md +0 -53
- package/docs/adr/0002-capability-gated-orchestration.md +0 -70
- package/docs/adr/0003-kit-core-and-project-extension-lifecycle.md +0 -63
- package/docs/adr/0004-release-intent-is-a-version-tag.md +0 -64
- package/docs/adr/0005-to-issues-is-the-planning-facade.md +0 -42
- package/docs/adr/0006-routing-knowledge-access-and-policy-are-separate.md +0 -95
- package/docs/adr/0007-session-teardown-requires-provenance-bound-ownership.md +0 -88
- package/docs/adr/0008-planning-ignore-rules-are-offered-never-installed.md +0 -84
- package/docs/adr/0009-teardown-authority-is-stateless-repository-classification.md +0 -101
- package/docs/adr/0010-model-roster-replaces-the-optimization-dial.md +0 -87
- package/docs/agents/board-sync.md +0 -74
- package/docs/agents/code-review.md +0 -14
- package/docs/agents/workflow-capabilities.json +0 -28
- package/docs/research/agent-task-taxonomy-benchmark-coverage.md +0 -451
- package/docs/research/benchlm-routing-source.md +0 -198
- package/docs/research/consumer-owned-protocol-files.md +0 -238
- package/docs/research/frontend-agent-benchmarks.md +0 -282
- package/docs/research/model-effort-routing-benchmarks.md +0 -261
- package/docs/research/provider-neutral-agent-routing.md +0 -207
- package/docs/research/wave-152-consumer-acceptance.md +0 -98
- package/docs/research/wave-43-script-hook-census.md +0 -128
- package/scripts/build-kit.mjs +0 -117
- package/scripts/build-kit.test.mjs +0 -207
- package/scripts/census/census.test.mjs +0 -252
- package/scripts/census/state.test.mjs +0 -15
- package/scripts/census/transaction.test.mjs +0 -103
- package/scripts/census-contract.test.mjs +0 -227
- package/scripts/check-kit-staleness.mjs +0 -45
- package/scripts/check-kit-staleness.test.mjs +0 -19
- package/scripts/codex-exec-scenarios/fake-codex.mjs +0 -165
- package/scripts/codex-exec.test.mjs +0 -871
- package/scripts/grill-census-wiring-guard.mjs +0 -87
- package/scripts/grill-census-wiring-guard.test.mjs +0 -107
- package/scripts/kit-release.test.mjs +0 -273
- package/scripts/kit-update-pr.test.mjs +0 -151
- package/scripts/lib/audit-refs.mjs +0 -146
- package/scripts/lib/scrub.mjs +0 -113
- package/scripts/lib/scrub.test.mjs +0 -187
- package/scripts/memory-lifecycle/memory-lifecycle.test.mjs +0 -170
- package/scripts/portability_profile_scan.py +0 -53
- package/scripts/release-delta-guard.test.mjs +0 -174
- package/scripts/release-parity.test.mjs +0 -90
- package/scripts/release-state.test.mjs +0 -360
- package/scripts/test_anchor_table.py +0 -69
- package/scripts/test_board_bootstrap.py +0 -348
- package/scripts/test_board_sync.py +0 -208
- package/scripts/test_board_sync_create_idempotency.py +0 -117
- package/scripts/test_board_sync_wave_title.py +0 -120
- package/scripts/test_census_backstop.py +0 -712
- package/scripts/test_census_forward_contract.py +0 -91
- package/scripts/test_census_update_contract.test.mjs +0 -454
- package/scripts/test_codex_adapter_sync_contract.py +0 -169
- package/scripts/test_dist_kit_smoke.py +0 -220
- package/scripts/test_drift_guard_diagnostics.py +0 -295
- package/scripts/test_issue_claim_contract.py +0 -169
- package/scripts/test_kit_docs_language_census.py +0 -178
- package/scripts/test_marker_lib.py +0 -162
- package/scripts/test_orchestrate_wave_contract.py +0 -381
- package/scripts/test_pr_body_check.py +0 -264
- package/scripts/test_profile_globs.py +0 -280
- package/scripts/test_program_planning_contract.py +0 -133
- package/scripts/test_release_authorization_contract.py +0 -101
- package/scripts/test_render_anchor.py +0 -267
- package/scripts/test_retro_wrapup_contract.py +0 -153
- package/scripts/test_skill_code_review_seed.py +0 -89
- package/scripts/test_skill_codex_exec_lifecycle.py +0 -123
- package/scripts/test_skill_frontmatter_lint.py +0 -234
- package/scripts/test_skill_gh_lint.py +0 -124
- package/scripts/test_skill_language_census.py +0 -254
- package/scripts/test_skill_optional_readiness.py +0 -171
- package/scripts/test_skill_portability_lint.py +0 -866
- package/scripts/test_skill_precommit_template.py +0 -30
- package/scripts/test_skill_publish_audit.py +0 -358
- package/scripts/test_skill_readiness_contract.py +0 -264
- package/scripts/test_skill_readiness_preflight.py +0 -180
- package/scripts/test_skill_required_readiness.py +0 -233
- package/scripts/test_skill_selfcontainment_lint.py +0 -255
- package/scripts/test_skill_setup_workflow_seeds.py +0 -691
- package/scripts/test_skill_stale_name_lint.py +0 -126
- package/scripts/test_skill_surface_refs.py +0 -300
- package/scripts/test_skill_trailing_artifact_lint.py +0 -71
- package/scripts/test_tdd_contract.py +0 -78
- package/scripts/test_worktree_ignore_seed.py +0 -320
- package/scripts/test_worktree_setup_base_guard.py +0 -140
- package/scripts/test_worktree_wrapup_contract.py +0 -1737
- package/scripts/test_wrapup_land.py +0 -428
- package/scripts/worktree-lifecycle/session.py +0 -1857
|
@@ -1,451 +0,0 @@
|
|
|
1
|
-
# Agent task taxonomy and benchmark coverage
|
|
2
|
-
|
|
3
|
-
**Researched:** 2026-07-26
|
|
4
|
-
**Question:** Which agent task classes do recognized benchmark owners actually
|
|
5
|
-
distinguish, which of those classes carry evidence strong enough to pick a
|
|
6
|
-
model **and** an effort level, and how does that generalize the Kit's existing
|
|
7
|
-
frontend taxonomy?
|
|
8
|
-
|
|
9
|
-
## Verdict
|
|
10
|
-
|
|
11
|
-
Benchmark owners distinguish **more task classes than the Kit currently models,
|
|
12
|
-
but far fewer domains**. Of the seven candidate classes in the brief, six are
|
|
13
|
-
directly measured by an owner today; one (architecture/judgment work) exists
|
|
14
|
-
only as a static knowledge quiz, not as an agent measurement.
|
|
15
|
-
|
|
16
|
-
Three findings drive the proposed schema:
|
|
17
|
-
|
|
18
|
-
1. **Effort identity is the scarce resource, not the task class.** Only four
|
|
19
|
-
sources publish a row that names model **and** reasoning effort **and**
|
|
20
|
-
harness: DeepSWE, the Terminal-Bench leaderboard, Artificial Analysis'
|
|
21
|
-
per-evaluation leaderboards, and Scale's SWE Atlas boards. Everything else
|
|
22
|
-
collapses at least one of the three.
|
|
23
|
-
2. **Almost nobody reports per-domain scores.** Code Arena is the only source in
|
|
24
|
-
this survey that publishes a separate score per subject-matter domain. Every
|
|
25
|
-
other owner publishes one aggregate over a task mix whose composition is
|
|
26
|
-
documented but not scored separately. The Kit's `domain` segment is therefore
|
|
27
|
-
`general` for most of the taxonomy — that is a coverage fact, not a schema
|
|
28
|
-
defect.
|
|
29
|
-
3. **No owner publishes cost per *completed* task.** Every cost figure found is
|
|
30
|
-
cost per *attempted* task (or per whole run). Cost per success is derivable
|
|
31
|
-
but is an inference the Kit must label as such.
|
|
32
|
-
|
|
33
|
-
## 0. Method: what counts as decisive
|
|
34
|
-
|
|
35
|
-
The repo already carries a per-source `decisive` boolean
|
|
36
|
-
(`src/lib/frontendWorkloads.mjs`). This note evaluates it against a three-part
|
|
37
|
-
test, because a single boolean turned out to hide the interesting failure mode:
|
|
38
|
-
|
|
39
|
-
| Dimension | Question | Failure mode |
|
|
40
|
-
|---|---|---|
|
|
41
|
-
| **Triple match** | Does the owner measure this exact `workload:domain:axis`, or is it an aggregate the Kit is slicing? | Aggregate laundering |
|
|
42
|
-
| **Configuration identity** | Does the published row name the reasoning effort? | Effort collapse |
|
|
43
|
-
| **Harness identity** | Does the published row name the agent/scaffold and its version? | Harness collapse |
|
|
44
|
-
|
|
45
|
-
**Decisive** = all three hold. **Diagnostic** = the owner measures something
|
|
46
|
-
relevant but at least one dimension is collapsed, estimated, or stale.
|
|
47
|
-
|
|
48
|
-
This is a stricter reading than the current boolean. Under it, two sources the
|
|
49
|
-
repo currently marks `decisive: true` are decisive on the triple and on harness,
|
|
50
|
-
but **not** on effort — see §4.
|
|
51
|
-
|
|
52
|
-
## 1. Proposed taxonomy: `workload:domain:axis`
|
|
53
|
-
|
|
54
|
-
The identity format is unchanged: three colon-free segments, exactly one axis
|
|
55
|
-
per observation (`evidenceWorkloadIdentity` in `src/lib/routingIntent.mjs`).
|
|
56
|
-
|
|
57
|
-
### 1.1 Containment of the existing frontend taxonomy
|
|
58
|
-
|
|
59
|
-
The existing frontend vocabulary is a **strict subset**, unchanged:
|
|
60
|
-
|
|
61
|
-
- workloads `frontend-greenfield`, `frontend-repository-repair` keep their
|
|
62
|
-
identifiers and their meaning (lifecycle × repository context);
|
|
63
|
-
- all eight frontend domains (`general`, `reference-design`, `marketing`,
|
|
64
|
-
`analytics`, `product`, `game`, `simulation`, `editor`) keep their identifiers
|
|
65
|
-
and remain valid **only** for the two frontend workloads;
|
|
66
|
-
- all five existing axes keep their identifiers. Four (`visual-preference`,
|
|
67
|
-
`visual-fidelity`, `accessibility`, `responsive`) stay frontend-scoped; one
|
|
68
|
-
(`functional`) is promoted to the general executable-verifier axis, which is
|
|
69
|
-
exactly how it is already used for `openhands-frontend`.
|
|
70
|
-
|
|
71
|
-
Nothing in `FRONTEND_SOURCE_CLAIMS`, `classifyFrontendWorkload`, or
|
|
72
|
-
`frontendEvidenceWorkload` needs a value change to fit under the general
|
|
73
|
-
taxonomy. The generalization is additive.
|
|
74
|
-
|
|
75
|
-
### 1.2 Workloads
|
|
76
|
-
|
|
77
|
-
A workload is **what the agent is asked to change or produce**, defined by
|
|
78
|
-
lifecycle × repository context — the same rule the frontend pair already
|
|
79
|
-
follows.
|
|
80
|
-
|
|
81
|
-
| Workload | Definition | Owner that measures it |
|
|
82
|
-
|---|---|---|
|
|
83
|
-
| `frontend-greenfield` | New UI from a prompt or prototype, isolated from a repo | [Code Arena WebDev](https://arena.ai/leaderboard/code/webdev) |
|
|
84
|
-
| `frontend-repository-repair` | Fix/extend UI inside an established repo | [SWE-bench Multimodal](https://www.swebench.com/multimodal), [OpenHands Index](https://index.openhands.dev/) |
|
|
85
|
-
| `repository-repair` | Issue → patch in an established non-frontend repo | [DeepSWE](https://deepswe.datacurve.ai/), [SWE-bench Verified](https://www.swebench.com/verified) |
|
|
86
|
-
| `repository-comprehension` | Answer questions about an existing system without changing it | [SWE Atlas Codebase QnA](https://labs.scale.com/leaderboard/sweatlas-qna) |
|
|
87
|
-
| `code-transformation` | Restructure code while preserving behavior (refactor, migration) | [SWE Atlas Refactoring](https://labs.scale.com/leaderboard/sweatlas-refactoring), [RefactorBench](https://arxiv.org/abs/2503.07832) |
|
|
88
|
-
| `test-authoring` | Write tests that catch a stated regression | [SWE Atlas Test Writing](https://labs.scale.com/leaderboard/sweatlas-tw) |
|
|
89
|
-
| `greenfield-application` | Build a new non-frontend app/library from a spec | [OpenHands Index](https://www.openhands.dev/blog/openhands-index) (commit0) |
|
|
90
|
-
| `algorithmic-synthesis` | Self-contained competitive-programming style problems | [LiveCodeBench](https://livecodebench.github.io/) |
|
|
91
|
-
| `terminal-operations` | End-to-end system/CLI work in a real environment | [Terminal-Bench](https://www.tbench.ai/leaderboard/terminal-bench/2.1) |
|
|
92
|
-
| `tool-orchestration` | Multi-turn tool use with a simulated user under a written policy | [τ²-bench / τ³-bench](https://github.com/sierra-research/tau2-bench), [BFCL](https://gorilla.cs.berkeley.edu/leaderboard.html) |
|
|
93
|
-
| `knowledge-deliverable` | Produce a professional artifact (doc, sheet, slides, diagram) | [GDPval](https://arxiv.org/pdf/2510.04374), [GDPval-AA v2](https://artificialanalysis.ai/evaluations/gdpval-aa) |
|
|
94
|
-
| `architecture-reasoning` | Judge architectural trade-offs and system-level constraints | [SAKE](https://arxiv.org/abs/2606.29520) — **knowledge quiz only, not agentic** |
|
|
95
|
-
| `long-horizon-autonomy` | Cross-suite: how long an unattended run stays correct | [METR Time Horizon 1.1](https://metr.org/blog/2026-1-29-time-horizon-1-1/) |
|
|
96
|
-
| `long-context-operation` | Cross-suite: accuracy as a function of input length | [AA-LCR](https://artificialanalysis.ai/evaluations/artificial-analysis-long-context-reasoning), [NoLiMa](https://arxiv.org/abs/2502.05167) |
|
|
97
|
-
|
|
98
|
-
The last two are deliberately **cross-cutting** workloads rather than axes: their
|
|
99
|
-
owners run their own task suites, so an observation about them is not a slice of
|
|
100
|
-
another workload's evidence.
|
|
101
|
-
|
|
102
|
-
Mapping to the brief's candidate list:
|
|
103
|
-
|
|
104
|
-
| Candidate class in the brief | Verified? | Maps to |
|
|
105
|
-
|---|---|---|
|
|
106
|
-
| mechanical / refactoring | **yes** | `code-transformation` (SWE Atlas Refactoring is live: [Scale, 2026-05-07](https://scale.com/blog/swe-atlas-complete)) |
|
|
107
|
-
| algorithmics | **yes** | `algorithmic-synthesis` (LiveCodeBench scenarios) |
|
|
108
|
-
| debugging / repository repair | **yes** | `repository-repair` |
|
|
109
|
-
| frontend design | **yes** | `frontend-greenfield` (Code Arena domains) |
|
|
110
|
-
| architecture / judgment work | **partly** | `architecture-reasoning` exists only as multiple choice (SAKE); `knowledge-deliverable` is the closest *agentic* judgment proxy |
|
|
111
|
-
| long-horizon agentic work | **yes** | `long-horizon-autonomy` + `terminal-operations` |
|
|
112
|
-
| tool-use / orchestration | **yes** | `tool-orchestration` |
|
|
113
|
-
|
|
114
|
-
Two classes the brief did not name, but owners do distinguish and score
|
|
115
|
-
separately, were added: `repository-comprehension` and `test-authoring` — both
|
|
116
|
-
are separate SWE Atlas leaderboards, and `information gathering` / `software
|
|
117
|
-
testing` are separate OpenHands Index categories.
|
|
118
|
-
|
|
119
|
-
### 1.3 Domains
|
|
120
|
-
|
|
121
|
-
A domain is a **subject-matter partition the owner scores separately**. The rule
|
|
122
|
-
is deliberately strict: if the owner publishes only an aggregate, the domain is
|
|
123
|
-
`general`, even when the owner documents a richer task mix.
|
|
124
|
-
|
|
125
|
-
| Workload | Allowed domains | Basis |
|
|
126
|
-
|---|---|---|
|
|
127
|
-
| `frontend-greenfield`, `frontend-repository-repair` | the existing eight | Code Arena publishes per-domain boards derived from >250k clustered prompts ([category methodology](https://arena.ai/blog/new-categories-code-arena/)) |
|
|
128
|
-
| `tool-orchestration` | `general`, `airline`, `retail`, `telecom`, `banking` | Sierra ships the domains separately ([tau2-bench](https://github.com/sierra-research/tau2-bench)); AA publishes [τ²-Bench Telecom](https://artificialanalysis.ai/evaluations/tau2-bench) and [τ³-Banking](https://artificialanalysis.ai/evaluations/tau3-banking) as separate boards |
|
|
129
|
-
| everything else | `general` | owner publishes one aggregate |
|
|
130
|
-
|
|
131
|
-
Documented-but-unscored partitions (record as metadata, **never** as a domain
|
|
132
|
-
segment, or the Kit is laundering an aggregate):
|
|
133
|
-
|
|
134
|
-
- DeepSWE: 113 tasks over 91 repos, TypeScript 35 / Go 34 / Python 34 /
|
|
135
|
-
JavaScript 5 / Rust 5 — one aggregate pass@1
|
|
136
|
-
([DeepSWE methodology](https://deepswe.datacurve.ai/blog/deepswe)).
|
|
137
|
-
- Terminal-Bench 2.x: software engineering, ML, security, data science, system
|
|
138
|
-
administration — one aggregate accuracy
|
|
139
|
-
([tbench.ai](https://www.tbench.ai/), [arXiv 2601.11868](https://arxiv.org/abs/2601.11868)).
|
|
140
|
-
- SWE Atlas Codebase QnA: architecture, root-cause analysis, code onboarding,
|
|
141
|
-
security, API integration — one aggregate resolve rate
|
|
142
|
-
([Scale blog](https://scale.com/blog/swe-atlas-complete)).
|
|
143
|
-
- GDPval: 44 occupations across 9 sectors; the AA leaderboard reports an
|
|
144
|
-
aggregate Elo ([GDPval-AA v2](https://artificialanalysis.ai/evaluations/gdpval-aa)).
|
|
145
|
-
Whether OpenAI's own release publishes per-occupation win rates is
|
|
146
|
-
**unverified** — `openai.com/index/gdpval/` returned HTTP 403 to automated
|
|
147
|
-
fetch on 2026-07-26; the paper is at
|
|
148
|
-
[arXiv 2510.04374](https://arxiv.org/pdf/2510.04374).
|
|
149
|
-
- LiveCodeBench reports Easy/Medium/Hard columns. That is **difficulty, not
|
|
150
|
-
domain** — putting it in the `domain` segment would be schema abuse.
|
|
151
|
-
|
|
152
|
-
### 1.4 Axes
|
|
153
|
-
|
|
154
|
-
An axis is the **quality dimension measured**. Five exist; six are proposed.
|
|
155
|
-
|
|
156
|
-
| Axis | Status | Meaning | Grader |
|
|
157
|
-
|---|---|---|---|
|
|
158
|
-
| `functional` | existing, generalized | executable verifier pass/fail | program |
|
|
159
|
-
| `visual-fidelity` | existing, frontend-scoped | similarity to a reference rendering | metric / VLM |
|
|
160
|
-
| `visual-preference` | existing, frontend-scoped | blinded human pairwise on rendered UI | human |
|
|
161
|
-
| `accessibility` | existing, frontend-scoped | WCAG-style conformance | tool / human |
|
|
162
|
-
| `responsive` | existing, frontend-scoped | correctness across a viewport matrix | program / VLM |
|
|
163
|
-
| `rubric-quality` | **new** | structured rubric score where no single pass/fail exists | rubric + judge |
|
|
164
|
-
| `answer-accuracy` | **new** | correctness of an answer about a system or document | judge / key |
|
|
165
|
-
| `blind-preference` | **new** | blinded pairwise ranking of a non-visual deliverable | human **or** LLM judge — record which |
|
|
166
|
-
| `policy-adherence` | **new** | compliance with a written domain policy during tool use | program |
|
|
167
|
-
| `time-horizon` | **new** | human task length at a fixed success probability | fitted from runs |
|
|
168
|
-
| `context-retention` | **new** | accuracy as a function of input length | program / judge |
|
|
169
|
-
|
|
170
|
-
`visual-preference` is conceptually the frontend special case of
|
|
171
|
-
`blind-preference`; it is kept as a distinct identifier for backward
|
|
172
|
-
compatibility, and because its grader is always human whereas GDPval-AA v2 uses
|
|
173
|
-
an LLM judge ([AA GDPval-AA](https://artificialanalysis.ai/evaluations/gdpval-aa))
|
|
174
|
-
while OpenAI's own GDPval uses human expert graders
|
|
175
|
-
([arXiv 2510.04374](https://arxiv.org/pdf/2510.04374)). An adapter that merges
|
|
176
|
-
those two grader types into one axis is fabricating comparability.
|
|
177
|
-
|
|
178
|
-
### 1.5 Cost is not an axis
|
|
179
|
-
|
|
180
|
-
`validateObservation` in `src/lib/routingCatalog.mjs` already carries
|
|
181
|
-
`cost.{amount,currency,unit}` on every observation. Cost must stay there. Making
|
|
182
|
-
it an axis would produce identities like `repository-repair:general:cost` that
|
|
183
|
-
have no owner behind them, and would let a cheap-but-failing configuration
|
|
184
|
-
outrank a working one. See §6 for what `unit` may legitimately contain.
|
|
185
|
-
|
|
186
|
-
## 2. Source table
|
|
187
|
-
|
|
188
|
-
`Decisive` uses the §0 three-part test. `Freshness` is what was observable on
|
|
189
|
-
2026-07-26; where an owner publishes no cadence statement, that is stated.
|
|
190
|
-
|
|
191
|
-
| Source | Workloads claimed | Axes | Decisive? | Freshness / cadence | Machine-ingestible artifact |
|
|
192
|
-
|---|---|---|---|---|---|
|
|
193
|
-
| **DeepSWE v1.1** (DataCurve) | `repository-repair:general` | `functional` | **Yes** — `reasoning_effort`, `harness: mini-swe-agent`, `config`, `ci_method` all in the JSON | `generated_at` 2026-07-25T03:13Z, latest job finished 2026-07-25; **no published cadence** | [`/artifacts/v1.1/leaderboard-live.json`](https://deepswe.datacurve.ai/artifacts/v1.1/leaderboard-live.json) (HTTP 200, ~62 KB) |
|
|
194
|
-
| **Terminal-Bench 2.1 leaderboard** (Laude Institute) | `terminal-operations:general` | `functional` | **Yes** — columns are Rank, Agent, Model, **Effort**, Accuracy ±CI, Date, Agent Org, Model Org, PR, Hacks, Cost | latest submissions 2026-07-11; **no cadence statement** | **None found.** `www.tbench.ai/api/leaderboard` → 404. Task registry only: [`registry.json`](https://raw.githubusercontent.com/harbor-framework/terminal-bench/main/registry.json). Run-log repos exist but are empty scaffolds ([terminal-bench-2-leaderboard](https://github.com/laude-institute/terminal-bench-2-leaderboard)) |
|
|
195
|
-
| **Artificial Analysis — per-evaluation boards** | `terminal-operations`, `tool-orchestration`, `knowledge-deliverable`, `long-context-operation`, `algorithmic-synthesis` (all `:general`) | `functional`, `policy-adherence`, `blind-preference`, `answer-accuracy` | **Yes** for boards that expose effort-variant rows — verified on [Terminal-Bench v2.1](https://artificialanalysis.ai/evaluations/terminalbench-v2-1) ("GPT-5.6 Sol (xhigh)", "GPT-5.6 Terra (max)", harness named as *Terminus 2 in an e2b sandbox*) | Intelligence Index v4.1 current; Coding Agent Index v1.3 current with a May–Jul 2026 change history; **AA states no fixed refresh schedule** ([methodology](https://artificialanalysis.ai/methodology/intelligence-benchmarking)) | [Data API](https://artificialanalysis.ai/data-api/docs) — snake_case JSON; cost lives under `artificial_analysis_intelligence_index_cost.cost_per_task`. **There is no `costPerTaskUsd` field** (see §6). Attribution required at all tiers |
|
|
196
|
-
| **Artificial Analysis — Coding Agent Index v1.3** | `repository-repair`, `terminal-operations`, `repository-comprehension` (`:general`) | `functional`, `answer-accuracy` | **No — effort collapse by design.** AA states: *"Unless otherwise specified, we use each agent's default reasoning settings so the benchmark reflects the default user experience"* | v1.3 current, history May–Jul 2026 | [coding-agents methodology](https://artificialanalysis.ai/methodology/coding-agents-benchmarking) |
|
|
197
|
-
| **SWE Atlas** (Scale) — QnA / Test Writing / Refactoring | `repository-comprehension`, `test-authoring`, `code-transformation` (`:general`) | `answer-accuracy`, `rubric-quality` | **Yes on QnA and Test Writing** — rows read e.g. *"Opus 4.8 (Claude Code) xhigh"*; native scaffold named, effort in the label, resolve rate ± CI. **Refactoring: effort exposure unverified** — the rendered rows observed showed model + harness + `48.57±6.73` but no effort token | Refactoring board went live with [Scale's 2026-05-07 post](https://scale.com/blog/swe-atlas-complete); dataset repo pushed 2026-07-20; **no cadence statement** | Dataset + run config only, Apache-2.0: [scaleapi/SWE-Atlas](https://github.com/scaleapi/SWE-Atlas). **No results JSON found** |
|
|
198
|
-
| **Code Arena WebDev** (Arena) | `frontend-greenfield:{8 domains}` | `visual-preference` | **Partly.** Triple ✓ (only source with real per-domain boards), harness ✓ (encoded in labels such as `-codex`), **effort ✗** — the board columns are Rank, Model, Organization, License, Score, Votes, Price ($/M), Context Length; effort appears only when a lab bakes it into the model label | live pairwise voting; page timestamp 2026-07-24, 477,155 votes observed on the WebDev board; changes tracked in the [leaderboard changelog](https://arena.ai/blog/leaderboard-changelog/) | **No leaderboard API found.** Ranking code is open ([arena-rank](https://github.com/lmarena/arena-rank)); raw votes are released as a HF dataset (`lmarena-ai/arena-human-preference-140k`) but that is votes, not the published board |
|
|
199
|
-
| **OpenHands Index** | `repository-repair`, `greenfield-application`, `frontend-repository-repair`, `test-authoring`, `repository-comprehension` (`:general`) | `functional` | **No — effort collapse.** Harness ✓ (OpenHands Software Agent SDK), triple ✓, but no reasoning-effort dimension is reported | launched [2026-01-29](https://www.openhands.dev/blog/openhands-index); [3-months-out update 2026-05-11](https://www.openhands.dev/blog/openhands-index-3-months-out) states only *"looking to do some more frequent updates going forward"* | Board at [index.openhands.dev](https://index.openhands.dev/) (no export found); harness open-sourced at [OpenHands/benchmarks](https://github.com/OpenHands/benchmarks), pushed 2026-07-19 |
|
|
200
|
-
| **SWE-bench** (Verified / Multimodal / Lite / Multilingual) | `repository-repair:general`, `frontend-repository-repair:general` | `functional` | **No.** Submissions are self-reported with heterogeneous scaffolds; the *Verified* badge is opt-in (maintainers re-run a random subset). `metadata.yaml` may carry scaffold/effort, but it is not a guaranteed, uniform column | [SWE-bench/experiments](https://github.com/SWE-bench/experiments) last commit **2026-03-29** — ~4 months stale | Per-submission `all_preds.jsonl`/`preds.json`, `metadata.yaml`, `logs/*/report.json`, `trajs/` in [SWE-bench/experiments](https://github.com/SWE-bench/experiments) |
|
|
201
|
-
| **METR Time Horizon 1.1** | `long-horizon-autonomy:general` | `time-horizon` | **No — effort collapse.** Per-model p50/p80 horizons with bootstrapped CIs and a `scaffolds` list, but **no reasoning-effort field** in the entries inspected | TH1.1 published [2026-01-29](https://metr.org/blog/2026-1-29-time-horizon-1-1/); [time-horizons page](https://metr.org/time-horizons/) latest entry 2026-05-08, updated *"periodically whenever we have new measurements"*; [eval-analysis-public](https://github.com/METR/eval-analysis-public) pushed 2026-03-06 | [`benchmark_results_1_1.yaml`](https://metr.org/assets/benchmark_results_1_1.yaml) (HTTP 200, ~16 KB) — contains `p50_horizon_length`/`p80_horizon_length` with `ci_low`/`ci_high`, `average_score`, `release_date`, `scaffolds`, plus `doubling_time_in_days` |
|
|
202
|
-
| **BFCL V4** (Berkeley/Gorilla) | `tool-orchestration:general` | `functional` | **No — effort collapse.** Cost is *"an estimate of the cost for the entire benchmark"*; no per-row effort | last updated **2026-04-12**, evaluated at a pinned commit; *"will be updated periodically"* — no cadence | [ShishirPatil/gorilla](https://github.com/ShishirPatil/gorilla) (repo pushed 2026-04-13); categories in [TEST_CATEGORIES.md](https://github.com/ShishirPatil/gorilla/blob/main/berkeley-function-call-leaderboard/TEST_CATEGORIES.md); [changelog](https://github.com/ShishirPatil/gorilla/blob/main/berkeley-function-call-leaderboard/CHANGELOG.md) |
|
|
203
|
-
| **Aider polyglot** | `code-transformation:general` (instruction-following edit) | `functional` | **No — stale.** Effort *is* in the label (e.g. `gpt-5 (high)`) and cost is reported, but the data is ~10 months old | `polyglot_leaderboard.yml` last commit **2025-10-04** (repo itself pushed 2026-05-22) | [`polyglot_leaderboard.yml`](https://github.com/Aider-AI/aider/blob/main/aider/website/_data/polyglot_leaderboard.yml); also `refactor_leaderboard.yml`, `edit_leaderboard.yml` in the same directory |
|
|
204
|
-
| **LiveCodeBench** | `algorithmic-synthesis:general` | `functional` | **No.** Board columns are Rank, Model, Pass@1, Easy, Medium, Hard — no effort, no harness, no cost | official repo [LiveCodeBench/LiveCodeBench](https://github.com/LiveCodeBench/LiveCodeBench) pushed **2025-07-16**; AA's replication uses a May 2023–May 2024 problem window | [HF org](https://huggingface.co/livecodebench/); no leaderboard JSON found |
|
|
205
|
-
| **SWE-Lancer** (OpenAI) | `repository-repair:general`, `architecture-reasoning:general` (SWE Manager split) | `functional`, `answer-accuracy` | **No — frozen.** 1,400+ Upwork tasks worth $1M in real payouts; IC SWE graded by triple-verified end-to-end tests, manager tasks graded against the original hiring manager's choice | [openai/SWELancer-Benchmark](https://github.com/openai/SWELancer-Benchmark) **archived 2025-07-18**, redirected into `openai/preparedness`. No maintained leaderboard | [arXiv 2502.12115](https://arxiv.org/abs/2502.12115) |
|
|
206
|
-
| **SAKE** | `architecture-reasoning:general` | `answer-accuracy` | **No — not agentic.** 2,154 expert-curated 4-option MCQs over 8 architectural categories and 4 context-length levels, 11 models, zero-/five-shot | static paper artifact, [arXiv 2606.29520](https://arxiv.org/abs/2606.29520) | open-sourced evaluation scripts + results per the paper; no live board |
|
|
207
|
-
| **AA-LCR** | `long-context-operation:general` | `answer-accuracy` | **Partly** — 100 questions over 10k–100k-token documents, pass/fail via LLM judge, per-model cost/time/tokens per task. **Not segmented by context length in the published view** | part of Intelligence Index v4.1 (6% weight); no cadence statement | [AA-LCR board](https://artificialanalysis.ai/evaluations/artificial-analysis-long-context-reasoning) + Data API |
|
|
208
|
-
| **NoLiMa** | `long-context-operation:general` | `context-retention` | **No.** 13 models, latent-association needle retrieval; 11 of 13 fall below 50% of their short-context baseline at 32K | static paper, [arXiv 2502.05167](https://arxiv.org/abs/2502.05167); [adobe-research/NoLiMa](https://github.com/adobe-research/NoLiMa) | repo |
|
|
209
|
-
| **Chroma "Context Rot"** | `long-context-operation:general` | `context-retention` | **No.** 18 models, extended NIAH + LongMemEval (~113k tokens) + repeated-words | published **2025-07-14**, one-off report | [trychroma.com/research/context-rot](https://www.trychroma.com/research/context-rot) |
|
|
210
|
-
| **RefactorBench** (Microsoft) | `code-transformation:general` | `functional` | **No — static.** 100 handcrafted multi-file refactors, 3 instruction specificities; agents solved 22% vs 87% for a time-limited human developer | ICLR 2025 paper, static | [arXiv 2503.07832](https://arxiv.org/abs/2503.07832), [microsoft/RefactorBench](https://github.com/microsoft/RefactorBench) |
|
|
211
|
-
| **GDPval / GDPval-AA v2** | `knowledge-deliverable:general` | `blind-preference` | **AA board: yes on effort/cost; no on grader parity.** 220 tasks, 44 occupations, blind pairwise, Elo anchored to a human baseline of 1000, *"average cost per task (USD), broken down by input, cache hit, cache write, reasoning, and answer tokens"* plus average turns per task. OpenAI's own grading is human-expert; AA's is an LLM judge — the two are not the same axis instance | v2 current; no cadence statement | [GDPval-AA v2 board](https://artificialanalysis.ai/evaluations/gdpval-aa) + Data API; paper [arXiv 2510.04374](https://arxiv.org/pdf/2510.04374) |
|
|
212
|
-
|
|
213
|
-
## 3. What owners actually distinguish (question a)
|
|
214
|
-
|
|
215
|
-
Confirmed as **separately published task classes**, not inferred:
|
|
216
|
-
|
|
217
|
-
- Scale splits the engineering loop into **three separate leaderboards** —
|
|
218
|
-
Codebase QnA (124 tasks), Test Writing (90), Refactoring (70) — and states the
|
|
219
|
-
design intent: *"it targets underrepresented but practically important task
|
|
220
|
-
categories, uses comprehensive category-specific evaluation protocols, and
|
|
221
|
-
adopts under-specified, agentic task formulations"*
|
|
222
|
-
([arXiv 2605.08366](https://arxiv.org/abs/2605.08366)).
|
|
223
|
-
- OpenHands splits into **five categories**: issue resolution, greenfield
|
|
224
|
-
development, frontend development, software testing, information gathering
|
|
225
|
-
([launch post](https://www.openhands.dev/blog/openhands-index)).
|
|
226
|
-
- LiveCodeBench splits into **four scenarios**: code generation, self-repair,
|
|
227
|
-
test output prediction, code execution, and states that *"model performances
|
|
228
|
-
are correlated across different scenarios"* yet relative rankings vary by task
|
|
229
|
-
type ([livecodebench.github.io](https://livecodebench.github.io/)).
|
|
230
|
-
- SWE-bench splits by **repository population**, not by task type: Full, Lite,
|
|
231
|
-
Verified, Multimodal, Multilingual ([swebench.com](https://www.swebench.com/SWE-bench/)).
|
|
232
|
-
Multimodal is 517 visual-domain issues
|
|
233
|
-
([multimodal](https://www.swebench.com/multimodal)).
|
|
234
|
-
- SWE-Lancer splits **IC engineering vs managerial proposal selection**
|
|
235
|
-
([arXiv 2502.12115](https://arxiv.org/abs/2502.12115)).
|
|
236
|
-
- Code Arena splits by **subject-matter domain**, uniquely: Reference-Based
|
|
237
|
-
Design (~29% of prompts), Brand/Marketing, Data & Analytics, Consumer Product,
|
|
238
|
-
Gaming, Simulations (~15.3%), Content Creation & Editing Tools
|
|
239
|
-
([category methodology](https://arena.ai/blog/new-categories-code-arena/)).
|
|
240
|
-
- BFCL splits by **call shape and interaction mode**: `simple_{python,java,
|
|
241
|
-
javascript}`, `parallel`, `multiple`, `parallel_multiple`, `irrelevance`,
|
|
242
|
-
`live_irrelevance`, `live_relevance`, `multi_turn_{base,miss_func,miss_param,
|
|
243
|
-
long_context}`, `memory_{kv,vector,rec_sum}`, `web_search_{base,no_snippet}`,
|
|
244
|
-
`format_sensitivity` ([TEST_CATEGORIES.md](https://github.com/ShishirPatil/gorilla/blob/main/berkeley-function-call-leaderboard/TEST_CATEGORIES.md)).
|
|
245
|
-
|
|
246
|
-
What owners **explicitly say they do not cover** — this is the most useful
|
|
247
|
-
primary-source material in the survey:
|
|
248
|
-
|
|
249
|
-
- DeepSWE: *"bug localization and refactoring are under-represented, even though
|
|
250
|
-
each is challenging in its own right"*, and *"Developers also don't use these
|
|
251
|
-
models through mini-swe-agent in practice; they use them inside more
|
|
252
|
-
sophisticated, model-native harnesses like Codex CLI, Claude Code, Cursor, and
|
|
253
|
-
Gemini CLI, none of which the current leaderboard directly reflects"*
|
|
254
|
-
([limitations](https://deepswe.datacurve.ai/blog/deepswe)).
|
|
255
|
-
- SAKE: *"their ability to reason about software architecture remains largely
|
|
256
|
-
unmeasured"* ([arXiv 2606.29520](https://arxiv.org/abs/2606.29520)).
|
|
257
|
-
- Scale, on why model-plus-scaffold is the unit: native agents
|
|
258
|
-
*"(Claude Code, Codex CLI) perform 1.5-2x more exploration than generic
|
|
259
|
-
harnesses"* ([Scale blog](https://scale.com/blog/swe-atlas-complete)).
|
|
260
|
-
- GDPval: automated grading reached only **66% agreement with human graders**,
|
|
261
|
-
which is why the primary metric stays human head-to-head
|
|
262
|
-
([arXiv 2510.04374](https://arxiv.org/pdf/2510.04374)).
|
|
263
|
-
|
|
264
|
-
## 4. Decisive vs diagnostic (question b)
|
|
265
|
-
|
|
266
|
-
**Decisive today (all three dimensions intact):**
|
|
267
|
-
|
|
268
|
-
| Identity | Source |
|
|
269
|
-
|---|---|
|
|
270
|
-
| `repository-repair:general:functional` | DeepSWE v1.1 JSON |
|
|
271
|
-
| `terminal-operations:general:functional` | Terminal-Bench 2.1 board; AA Terminal-Bench v2.1 board |
|
|
272
|
-
| `repository-comprehension:general:answer-accuracy` | SWE Atlas Codebase QnA |
|
|
273
|
-
| `test-authoring:general:rubric-quality` | SWE Atlas Test Writing |
|
|
274
|
-
| `knowledge-deliverable:general:blind-preference` | AA GDPval-AA v2 (LLM judge — record the grader) |
|
|
275
|
-
| `tool-orchestration:{telecom,banking}:policy-adherence` | AA τ²-Telecom, AA τ³-Banking |
|
|
276
|
-
|
|
277
|
-
**Diagnostic only, with the reason:**
|
|
278
|
-
|
|
279
|
-
| Identity | Source | Collapsed dimension |
|
|
280
|
-
|---|---|---|
|
|
281
|
-
| `frontend-greenfield:{domain}:visual-preference` | Code Arena WebDev | **effort** — no effort column; only sometimes in the label |
|
|
282
|
-
| `frontend-repository-repair:general:functional` | OpenHands Index | **effort** — not a reported dimension |
|
|
283
|
-
| `code-transformation:general:rubric-quality` | SWE Atlas Refactoring | **effort** — unverified on the rendered rows |
|
|
284
|
-
| `greenfield-application:general:functional` | OpenHands Index | **effort** |
|
|
285
|
-
| `algorithmic-synthesis:general:functional` | LiveCodeBench | effort + harness + staleness (repo 2025-07) |
|
|
286
|
-
| `long-horizon-autonomy:general:time-horizon` | METR TH1.1 | **effort** |
|
|
287
|
-
| `long-context-operation:general:context-retention` | NoLiMa, Chroma | effort + harness + staleness |
|
|
288
|
-
| `architecture-reasoning:general:answer-accuracy` | SAKE | **not agentic at all** — MCQ knowledge |
|
|
289
|
-
| `repository-repair:general:functional` | SWE-bench Verified | heterogeneous self-reported scaffolds; staleness |
|
|
290
|
-
|
|
291
|
-
**Direct consequence for `src/lib/frontendWorkloads.mjs`:** the two entries
|
|
292
|
-
currently marked `decisive: true` (`code-arena-webdev`, `openhands-frontend`) are
|
|
293
|
-
decisive on triple and harness but **not on effort**. Under the current single
|
|
294
|
-
boolean, a resolver reading `decisive: true` may believe it can pick an effort
|
|
295
|
-
level from those sources. It cannot. Recommendation (not applied here): replace
|
|
296
|
-
the boolean with three flags — `measuresTriple`, `preservesEffort`,
|
|
297
|
-
`preservesHarness` — so an effort route requires `preservesEffort`, and let the
|
|
298
|
-
resolver fall back to a separate effort-curve source (DeepSWE, Terminal-Bench)
|
|
299
|
-
with the cross-source inference explicitly marked. That is the same rule
|
|
300
|
-
`docs/research/frontend-agent-benchmarks.md` §7.4 already states in prose; making
|
|
301
|
-
it a schema field prevents it from being forgotten.
|
|
302
|
-
|
|
303
|
-
## 5. Does a smaller model degrade on long runs / large context? (question c)
|
|
304
|
-
|
|
305
|
-
**No primary source in this survey reports long-run or long-context degradation
|
|
306
|
-
broken down by model tier or reasoning effort.** The intuition is widely held; it
|
|
307
|
-
is not measured that way by any owner found.
|
|
308
|
-
|
|
309
|
-
What *is* measured:
|
|
310
|
-
|
|
311
|
-
- **METR** fits a logistic curve of success probability against *human* task
|
|
312
|
-
duration and reports the length at which the curve crosses 50% (and 80%). TH1.1
|
|
313
|
-
expanded the suite from 170 to 228 tasks and moved from Vivaria to Inspect;
|
|
314
|
-
8h+ tasks doubled from 14 to 31, but **only 5 of those 31 have measured human
|
|
315
|
-
baselines** — the rest are estimated
|
|
316
|
-
([TH1.1](https://metr.org/blog/2026-1-29-time-horizon-1-1/)). CIs come from
|
|
317
|
-
bootstrapping over task families, tasks, and runs. The published YAML records
|
|
318
|
-
`scaffolds` per model but **no effort field** in the entries inspected
|
|
319
|
-
([benchmark_results_1_1.yaml](https://metr.org/assets/benchmark_results_1_1.yaml)).
|
|
320
|
-
Reported doubling times: 187.8 days all-time, 128.7 days (CI 104.4–158.0) from
|
|
321
|
-
2023 on. **This is per model, not per tier.**
|
|
322
|
-
- **Toby Ord's half-life model** ([arXiv 2505.05115](https://arxiv.org/abs/2505.05115))
|
|
323
|
-
explains the METR curve with *"a constant rate of failing during each minute"*,
|
|
324
|
-
giving each agent its own half-life. The abstract does **not** claim weaker
|
|
325
|
-
models have systematically shorter half-lives — that stratification is an
|
|
326
|
-
inference, not a result.
|
|
327
|
-
- **NoLiMa** ([arXiv 2502.05167](https://arxiv.org/abs/2502.05167)): 11 of 13
|
|
328
|
-
models drop below 50% of their short-context baseline at 32K; even GPT-4o falls
|
|
329
|
-
from 99.3% to 69.7%. It compares 13 different models — **not size variants
|
|
330
|
-
within one family**.
|
|
331
|
-
- **Chroma "Context Rot"** ([2025-07-14](https://www.trychroma.com/research/context-rot))
|
|
332
|
-
tested 18 models *including* three within-family size ladders (Qwen3-8B / 32B /
|
|
333
|
-
235B-A22B and GPT-4.1 / mini / nano). It is therefore the only source that
|
|
334
|
-
*could* have answered the tier question — and it explicitly does not. Its
|
|
335
|
-
size-specific remarks are behavioural quirks, not degradation curves:
|
|
336
|
-
*"We only observe non-attempts with Qwen3-8B, [which] make up 4.21% of tasks"*;
|
|
337
|
-
*"GPT-4.1 mini attempts all tasks, but sometimes generates random words for the
|
|
338
|
-
'Golden Gate Bridge'/'Golden Gate Park' combination."* Its headline finding is
|
|
339
|
-
tier-agnostic: *"model performance degrades as input length increases, often in
|
|
340
|
-
surprising and non-uniform ways."*
|
|
341
|
-
- **AA-LCR** reports one aggregate over 10k–100k-token documents; the published
|
|
342
|
-
view is **not** segmented by context length
|
|
343
|
-
([AA-LCR](https://artificialanalysis.ai/evaluations/artificial-analysis-long-context-reasoning)).
|
|
344
|
-
|
|
345
|
-
**Verdict for the Kit:** "route a small model away from long unattended runs" is
|
|
346
|
-
currently a **defensible heuristic with no decisive backing**. The closest real
|
|
347
|
-
evidence is indirect and within-family effort, not tier: DeepSWE's
|
|
348
|
-
`mean_agent_steps` / `mean_output_tokens` / `mean_duration_seconds` fields let
|
|
349
|
-
the Kit observe that a low-effort configuration consumes a different trajectory
|
|
350
|
-
shape at the same task set. Publishing that as a tier claim would be an
|
|
351
|
-
inference. Mark it `unverified`.
|
|
352
|
-
|
|
353
|
-
## 6. Cost per completed task (question d)
|
|
354
|
-
|
|
355
|
-
**Verified correction to the brief: there is no `costPerTaskUsd` field.** The
|
|
356
|
-
Artificial Analysis Data API is snake_case; the cost object is
|
|
357
|
-
`artificial_analysis_intelligence_index_cost` containing `total_cost` and
|
|
358
|
-
`cost_per_task` (itself nested into `total_cost`, `input_cost`, `reasoning_cost`,
|
|
359
|
-
`answer_cost`) ([Data API docs](https://artificialanalysis.ai/data-api/docs)).
|
|
360
|
-
|
|
361
|
-
**More importantly: every source found reports cost per *attempted* task, never
|
|
362
|
-
cost per *completed* task.**
|
|
363
|
-
|
|
364
|
-
| Source | Cost metric published | Denominator |
|
|
365
|
-
|---|---|---|
|
|
366
|
-
| Artificial Analysis | *"Cost per Task ... calculated by multiplying input, cached, and output token prices by tokens consumed across the workload, weighted by the relative weights of each benchmark ... then dividing by task count"* | **task count** — attempted |
|
|
367
|
-
| AA Coding Agent Index | *"Cost to run: average pay per token API cost per task, based on provider token pricing rather than consumer plans"* ([methodology](https://artificialanalysis.ai/methodology/coding-agents-benchmarking)) | attempted |
|
|
368
|
-
| AA GDPval-AA v2 | *"average cost per task (USD), broken down by input, cache hit, cache write, reasoning, and answer tokens"* | attempted |
|
|
369
|
-
| DeepSWE | `mean_cost_usd`, `median_cost_usd` — per **attempt** | attempted |
|
|
370
|
-
| Terminal-Bench 2.1 board | `Cost` in USD for the whole submission run (e.g. $552.67) | whole run |
|
|
371
|
-
| BFCL V4 | *"an estimate of the cost for the entire benchmark, in USD"* | whole run |
|
|
372
|
-
| Aider polyglot | total run cost, divisible by 225 exercises | attempted |
|
|
373
|
-
| OpenHands Index | cost-accuracy curves per model; the [3-months-out post](https://www.openhands.dev/blog/openhands-index-3-months-out) gives only relative pricing, not absolute per-task figures | attempted |
|
|
374
|
-
| SWE-Lancer | $1M in Upwork **payouts earned**, not spend | neither — it is revenue, not cost |
|
|
375
|
-
|
|
376
|
-
Cost per completed task is `cost_per_attempt / pass_rate`. Both operands are
|
|
377
|
-
published by DeepSWE and by AA, so the Kit **can** compute it — but it is a
|
|
378
|
-
derived quantity and must be tagged as such, with the caveat that the two
|
|
379
|
-
operands must come from the same row. Concretely: `cost.unit` in
|
|
380
|
-
`routingCatalog.mjs` should carry `usd-per-attempt` (what owners publish) or
|
|
381
|
-
`usd-per-run`, and any `usd-per-success` value must be flagged as Kit-derived.
|
|
382
|
-
|
|
383
|
-
Also note the retry semantics differ and are not interchangeable: DeepSWE reports
|
|
384
|
-
pass@1 over four repeated whole-benchmark runs with a 95% run-to-run interval
|
|
385
|
-
(`ci_method: "95% run-to-run: SE across repeated whole-benchmark passes"`), AA
|
|
386
|
-
runs 3 attempts per task, and AA retries API failures for reliability rather than
|
|
387
|
-
as extra solution attempts.
|
|
388
|
-
|
|
389
|
-
## 7. Gaps
|
|
390
|
-
|
|
391
|
-
Task classes with **no decisive source**, and what would close each:
|
|
392
|
-
|
|
393
|
-
1. **Architecture / judgment work — the largest gap.** SAKE is 2,154 multiple
|
|
394
|
-
choice questions, not an agent run; SWE-Lancer's manager split is the only
|
|
395
|
-
agentic proxy and its repo has been archived since 2025-07-18. *Needed:* an
|
|
396
|
-
owner-run board where an agent produces an architectural decision inside a
|
|
397
|
-
real repository and is graded against the decision a senior engineer actually
|
|
398
|
-
made, with effort and harness in the row. Until then the Kit's `judgment`
|
|
399
|
-
routing workload rests on **no decisive evidence at all** — its closest proxy
|
|
400
|
-
is `knowledge-deliverable` (GDPval-AA), which is not software architecture.
|
|
401
|
-
2. **Mechanical / refactoring at effort granularity.** SWE Atlas Refactoring is
|
|
402
|
-
live and names the harness, but effort exposure on its rows is unverified;
|
|
403
|
-
RefactorBench is a static 2025 paper; Aider's refactor/polyglot YAMLs are ~10
|
|
404
|
-
months stale. *Needed:* one confirmation that the Refactoring board carries
|
|
405
|
-
the effort token its sibling boards do. This is the cheapest gap to close —
|
|
406
|
-
a single human look at the rendered board settles it.
|
|
407
|
-
3. **Any per-domain evidence outside frontend.** Code Arena is the sole source
|
|
408
|
-
with per-domain boards. Terminal-Bench, DeepSWE, and SWE Atlas QnA all
|
|
409
|
-
document a category mix and publish one aggregate. *Needed:* per-category
|
|
410
|
-
score export from any of them; until then the Kit must not emit a non-`general`
|
|
411
|
-
domain for those workloads.
|
|
412
|
-
4. **Tier- or effort-resolved long-horizon degradation.** §5. *Needed:* a source
|
|
413
|
-
that reports success against task duration *per effort level*. DeepSWE already
|
|
414
|
-
holds both halves (effort rows + per-run duration/step statistics) and is the
|
|
415
|
-
most plausible candidate to publish it.
|
|
416
|
-
5. **Accessibility and responsiveness.** Unchanged from
|
|
417
|
-
`docs/research/frontend-agent-benchmarks.md`: no current, broad, model-comparative
|
|
418
|
-
board. `accessibility` and `responsive` remain axes with **zero** decisive
|
|
419
|
-
sources.
|
|
420
|
-
6. **Cost per completed task.** No owner publishes it (§6). *Needed:* nothing
|
|
421
|
-
external — the Kit derives it and labels it derived.
|
|
422
|
-
7. **Machine-ingestible artifacts for four otherwise-strong sources.**
|
|
423
|
-
Terminal-Bench (no results endpoint; `/api/leaderboard` → 404), SWE Atlas (only
|
|
424
|
-
dataset + run config), Code Arena (no board API), OpenHands Index (no export).
|
|
425
|
-
Only DeepSWE, Artificial Analysis, METR, Aider, and SWE-bench/experiments can
|
|
426
|
-
be ingested without scraping a rendered page. Three of those five are stale by
|
|
427
|
-
more than 3 months.
|
|
428
|
-
8. **Cadence is undeclared almost everywhere.** Only two freshness statements
|
|
429
|
-
were found in the whole survey: METR's *"periodically whenever we have new
|
|
430
|
-
measurements"* and OpenHands' *"looking to do some more frequent updates going
|
|
431
|
-
forward"*. Every other owner publishes dated artifacts with no promise. The
|
|
432
|
-
catalog's `freshness.expiresAt` therefore has to be a **Kit-side policy
|
|
433
|
-
decision per source**, not a value read from the owner.
|
|
434
|
-
|
|
435
|
-
## 8. Implication for the routing catalog
|
|
436
|
-
|
|
437
|
-
Minimal changes implied by the above, in order of value:
|
|
438
|
-
|
|
439
|
-
1. Split the `decisive` boolean into `measuresTriple` / `preservesEffort` /
|
|
440
|
-
`preservesHarness` (§4). An effort route requires `preservesEffort`; a
|
|
441
|
-
cross-source effort inference must be recorded as an inference.
|
|
442
|
-
2. Constrain `domain` to `general` unless the owner publishes a separate score
|
|
443
|
-
for that domain (§1.3). Add a lint so a new adapter cannot introduce a domain
|
|
444
|
-
the owner does not score.
|
|
445
|
-
3. Give `cost.unit` an explicit enum — `usd-per-attempt`, `usd-per-run`,
|
|
446
|
-
`usd-per-success-derived` — so a derived number is never mistaken for a
|
|
447
|
-
published one (§6).
|
|
448
|
-
4. Treat `long-horizon-autonomy` and `long-context-operation` as first-class
|
|
449
|
-
workloads with their own suites, not as modifiers on other workloads (§1.2).
|
|
450
|
-
5. Keep the tier-degradation heuristic in the policy layer as an explicitly
|
|
451
|
-
`unverified` prior, subject to override by local outcome telemetry (§5).
|