Skip to content

bench: run M3-5 arm 3 (fan-out vs serial) via the topology axis - #119

Merged
DeDuva merged 1 commit into
devfrom
bench/m3-5-arm3-topology
Aug 10, 2026
Merged

bench: run M3-5 arm 3 (fan-out vs serial) via the topology axis#119
DeDuva merged 1 commit into
devfrom
bench/m3-5-arm3-topology

Conversation

@DeDuva

@DeDuva DeDuva commented Aug 10, 2026

Copy link
Copy Markdown
Owner

Summary

ADP's M3-5 needs arm 3 — fan-out (swarm) vs serial (single) cost/outcome
comparison — 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/toolset
    otherwise. examples/prepare-seeds.mjs materializes the example seeds as
    real git repos (same fix studies/a-tool-familiarity-pilot already needed).
  • examples/topology-arm3-report/: the generated report (report.json,
    report.html, outcomes.json) plus SUMMARY.md with the write-up.

Result

20/20 trials, all verified, pre-registration printed unchanged. swarm costs
~3.6x the tokens/wall-clock and ~2.8x the tool calls of single on these two
tasks, 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×semver cell's per-trial cost
ranged $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. Reported
as 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/.venv was a broken stub predating this session (no
pyvenv.cfg), which made every stats-bridge report generation fail on PEP
668's externally-managed-environment guard. Rebuilt via
scripts/setup-stats.sh --force; not committed (already gitignored).

Test plan

  • npm run check run; 2 pre-existing failures unrelated to this change
    (test/init-worktree-guard.test.ts, test/cli/doctor.test.ts — both about
    squad-cli's own worktree/doctor output text, no files in this diff touch
    either path)
  • Report regenerated from bench/runs-equivalent ADP data via
    duva-bench report; every number in SUMMARY.md traces to report.json

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.
@github-actions

Copy link
Copy Markdown
Contributor

🟡 Impact Analysis — PR #119

Risk tier: 🟡 MEDIUM

📊 Summary

Metric Count
Files changed 7
Files added 7
Files modified 0
Files deleted 0
Modules touched 1

🎯 Risk Factors

  • 7 files changed (6-20 → MEDIUM)
  • 1 module(s) touched (≤1 → LOW)

📦 Modules Affected

root (7 files)
  • packages/duva-bench/examples/.gitignore
  • packages/duva-bench/examples/prepare-seeds.mjs
  • packages/duva-bench/examples/topology-arm3-report/SUMMARY.md
  • packages/duva-bench/examples/topology-arm3-report/outcomes.json
  • packages/duva-bench/examples/topology-arm3-report/report.html
  • packages/duva-bench/examples/topology-arm3-report/report.json
  • packages/duva-bench/examples/topology-arm3.yaml

This report is generated automatically for every PR. See #733 for details.

@github-actions

github-actions Bot commented Aug 10, 2026

Copy link
Copy Markdown
Contributor

🛫 PR Readiness Check

ℹ️ This comment updates on each push. Last checked: commit e351bc7

PR Scope: 🔧 Infrastructure

⚠️ 1 item(s) to address before review

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.

@DeDuva
DeDuva merged commit e5f8e9b into dev Aug 10, 2026
16 checks passed
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