bench: run M3-5 arm 3 (fan-out vs serial) via the topology axis - #119
Merged
Conversation
ADP's M3-5 arm 3 needs a study varying only topology (single vs swarm), identical model/harness/toolset, on the squad-lab example tasks — the squad track's existing scheduler and topology arm (S4) already support this, so this is a study spec plus an executed, committed result. 20/20 trials, all verified, pre-registration printed unchanged. Result: swarm costs ~3.6x the tokens/wall-clock and ~2.8x the tool calls of a single agent on these two tasks, with no measurable acceptance-score difference (noise floor sd 0.036). Full writeup in examples/topology-arm3-report/SUMMARY.md. Also fixes packages/duva-bench/.venv, which predated this session as a broken venv stub (no pyvenv.cfg) that made every stats-bridge report generation fail on PEP 668's externally-managed guard.
Contributor
🟡 Impact Analysis — PR #119Risk tier: 🟡 MEDIUM 📊 Summary
🎯 Risk Factors
📦 Modules Affectedroot (7 files)
This report is generated automatically for every PR. See #733 for details. |
Contributor
🛫 PR Readiness Check
PR Scope: 🔧 Infrastructure
|
| Status | Check | Details |
|---|---|---|
| ✅ | Single commit | 1 commit — clean history |
| ✅ | Not in draft | Ready for review |
| ✅ | Branch up to date | Up to date with dev |
| ❌ | Copilot review | No Copilot review yet — it may still be processing |
| ✅ | Changeset present | No source files changed — changeset not required |
| ✅ | Scope clean | No .squad/ or docs/proposals/ files |
| ✅ | No merge conflicts | No merge conflicts |
| ✅ | Copilot threads resolved | No Copilot review threads |
| ✅ | CI passing | All checks passing |
Files Changed (7 files, +2785 −0)
| File | +/− |
|---|---|
packages/duva-bench/examples/.gitignore |
+3 −0 |
packages/duva-bench/examples/prepare-seeds.mjs |
+27 −0 |
packages/duva-bench/examples/topology-arm3-report/SUMMARY.md |
+81 −0 |
packages/duva-bench/examples/topology-arm3-report/outcomes.json |
+1028 −0 |
packages/duva-bench/examples/topology-arm3-report/report.html |
+348 −0 |
packages/duva-bench/examples/topology-arm3-report/report.json |
+1225 −0 |
packages/duva-bench/examples/topology-arm3.yaml |
+73 −0 |
Total: +2785 −0
This check runs automatically on every push. Fix any ❌ items and push again.
See CONTRIBUTING.md and PR Requirements for details.
3 tasks
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
ADP's M3-5 needs arm 3 — fan-out (
swarm) vs serial (single) cost/outcomecomparison — and this track's scheduler (S4) already runs topology as a
controlled axis, so this is a study spec plus an executed, committed result,
not new infrastructure.
examples/topology-arm3.yaml: 2 tasks (retry,semver) × 2 topologies(
single/swarm) × 5 reps = 20 trials, identical model/harness/toolsetotherwise.
examples/prepare-seeds.mjsmaterializes the example seeds asreal git repos (same fix
studies/a-tool-familiarity-pilotalready needed).examples/topology-arm3-report/: the generated report (report.json,report.html,outcomes.json) plusSUMMARY.mdwith the write-up.Result
20/20 trials, all verified, pre-registration printed unchanged.
swarmcosts~3.6x the tokens/wall-clock and ~2.8x the tool calls of
singleon these twotasks, with no acceptance-score difference distinguishable from this study's
own noise floor (sd 0.036). Full numbers and caveats in
SUMMARY.md.Budget note
Approved cap was $15; actual spend was $20.68. The scheduler's budget
gate checks accumulated spend within one process invocation before starting
each trial (concurrency 3), so trials already in flight when the threshold
crossed weren't stopped — and the
swarm×semvercell's per-trial costranged $0.16–$7.20, far wider than the flat $0.40/trial planning estimate.
Full timeline and evidence in
SUMMARY.md's "Budget note" section. Reportedas a stop-and-report to the study's author when discovered mid-run;
completing the last 2 trials to close out 20/20 was the author's explicit
call, not a decision made silently. Worth a separate finding for this track:
the budget gate should account for cumulative spend across resumed
invocations and reserve for in-flight trials, not just track one
invocation's running total.
Also fixed
packages/duva-bench/.venvwas a broken stub predating this session (nopyvenv.cfg), which made every stats-bridge report generation fail on PEP668's externally-managed-environment guard. Rebuilt via
scripts/setup-stats.sh --force; not committed (already gitignored).Test plan
npm run checkrun; 2 pre-existing failures unrelated to this change(
test/init-worktree-guard.test.ts,test/cli/doctor.test.ts— both aboutsquad-cli's own worktree/doctor output text, no files in this diff touch
either path)
bench/runs-equivalent ADP data viaduva-bench report; every number inSUMMARY.mdtraces toreport.json