userbench/UserBench-train400

UserBench train400 twin: the same 620 held tasks plus 400 leak-safe prior turns per developer. Composer 2.5 multi-label acts score by set Jaccard/IoU.

Published 7/21/2026 by

harbor run -d userbench/UserBench-train400

UserBench-train400

Twin of the public UserBench eval with leak-safe prior-session context.

Same 620 held tasks / 62 developers as userbench/UserBench@v2 (history, gold, verifier unchanged). Each task additionally ships earlier sessions for that developer under /sim/train/, totaling 400 human user-turns sampled with sqrt two-stage.

What the agent sees

Path Role
/sim/history.md Held conversation so far (identical to baseline)
/sim/train/_index.json Index of packed prior sessions (ids, timestamps, repos, turn takes, paths)
/sim/train/<sid>.md Contiguous prefixes of those sessions (same > DEVELOPER / > AGENT format)
/sim/answer.txt Where the agent writes the next developer message

The instruction is count-agnostic: it points at /sim/train/ without hardcoding “400”. The turn budget is a publish-time sampler parameter.

Leakage invariant

For each developer let T* = min(held_sessions[].ts) (manifest session timestamp).

Every packed train session satisfies:

  1. session.ts < T*
  2. max(turn.ts) < T*

This is stricter than the cohort’s session-start train/held split alone. Sessions that wall-clock-overlap the earliest held session are never included.

QC on this package: 0 / 620 tasks violate max(turn.ts) < T*.

Sampling

  1. Start from the developer’s full leak-safe train pool (all sessions/turns passing the T* rule).
  2. Allocate exactly 400 human-turns with sqrt_two_stage (time-stratified session pick, then contiguous-prefix waterfill).
  3. Emit prefixes through the k-th human turn (including intervening AGENT/TOOL/SYSTEM), with the same ~200-word-per-turn truncation as eval history.

The full pools (not just the 400-turn subsample) live in the GitHub repo under train_pools/ so future Hub variants (e.g. train1000) can resample from the same T*-filtered corpus without changing the leakage rule.

Scale

Developers 62
Tasks 620 (10 per developer; same selection as baseline)
Condition train400
Train budget 400 human-turns / developer (shared across that developer’s 10 tasks)

Task naming

Same short IDs as baseline (Harbor org/name):

userbench/<username>__<hash>

Versioning is via Harbor tags on this package (e.g. @v2). Digests differ from the noprofile baseline; consume via the dataset ref below so baseline UserBench@v2 stays pinned to zero-train digests.

Keywords

userbench · user-simulation · coding-agents · move-prediction · train400

How to reference

What Ref
This twin userbench/UserBench-train400@v2 (also latest)
Zero-train baseline userbench/UserBench@v2
Hub https://hub.harborframework.com/datasets/userbench/UserBench-train400
Full train pools (GitHub) https://github.com/AlienKevin/user-simulator/tree/main/train_pools
harbor run -d userbench/UserBench-train400@v2 -a <agent> -m <model>

Links

Task
userbench/singampalliveerendra__8dc175b0
userbench/jdsingh122918__44679c06
userbench/dc_004__9a96d08d
userbench/MohammedMqat__09e14a28
userbench/nosman__5b7c798e
userbench/KeKs0r__90c80d6d
userbench/ta93abe__22fa2a69
userbench/scottdensmore__6d44807a
userbench/ta93abe__3b70eafa
userbench/ET-NoahDolev__a018815b
userbench/barbogast__07017b77
userbench/nosman__75355bce
userbench/ababushkin__3c505e52
userbench/FSM1__1fe3ba80
userbench/barbogast__47bb82ec
userbench/wildlily1021__2e8bcca3
userbench/Soph__31443222
userbench/135yshr__d1edc0a3
userbench/jskswamy__a7f1470b
userbench/robouden__158fa32c
userbench/jobinlawrance__a748127e
userbench/yyovil__61ad7991
userbench/mvanhorn__8c97d4de
userbench/kungfusaini__8314296d
userbench/ababushkin__e2b5880e
userbench/dc_000__e5a61347
userbench/melagiri__25b8f546
userbench/135yshr__196168af
userbench/yutakobayashidev__52dbe4cd
userbench/penso__395b6920
userbench/jobinlawrance__a1dc6ac0
userbench/yyovil__262c7a5a
userbench/penso__fe93fa2b
userbench/barbogast__4509fc91
userbench/MohammedMqat__e972ce4f
userbench/raman325__a9ce30a5
userbench/Stark-Industries0417__3c378e34
userbench/admarble__af4442f0
userbench/manderson240__2bac58a0
userbench/jeevanpillay__7941e093
userbench/jakobtfaber__0fddf0ed
userbench/winksaville__e91d7fe5
userbench/MohammedMqat__4e4e7193
userbench/winksaville__98ba6868
userbench/dc_000__25e7cf92
userbench/heddendorp__7d0856ac
userbench/barbogast__015a4d1e
userbench/kohaku500__80f87c63
userbench/junaid-appointy__915b9090
userbench/jdsingh122918__235948db
userbench/scottdensmore__7b129602
userbench/jhoetter__3517bfbd
userbench/johyunduk__cb36cb1b
userbench/KeKs0r__a3482769
userbench/marcus-sa__aafed4ab
userbench/armelhbobdad__7a6c95c5
userbench/dc_001__aefe92aa
userbench/ababushkin__c4f5c7c5
userbench/admarble__347929ab
userbench/achildrenmile__5d92c930
userbench/armelhbobdad__1ca1c892
userbench/raman325__e67e0975
userbench/junaid-appointy__35091490
userbench/yutakobayashidev__c9c5ca60
userbench/MohammedMqat__eaaeae4f
userbench/jeevanpillay__71e57a23
userbench/raman325__d86a71c6
userbench/robouden__cb40a5e2
userbench/kungfusaini__e97ae043
userbench/heddendorp__8a98faf8
userbench/khaong__e1ad66fe
userbench/ET-NoahDolev__744c71ca
userbench/jakobtfaber__bdaadc4b
userbench/melagiri__7a34ab4a
userbench/thieso2__ac3f3046
userbench/dcambria__91b175cb
userbench/jskswamy__89eb1820
userbench/malkoG__9b476884
userbench/kmiki0__2a36c043
userbench/KeKs0r__a3599b78
userbench/dc_010__47ffc258
userbench/Poytr1__4ef838c8
userbench/heddendorp__1d900217
userbench/kmiki0__603c6c1f
userbench/Stark-Industries0417__c6832f84
userbench/dc_004__a833e6e4
userbench/christso__64756dde
userbench/Stark-Industries0417__1c7b5273
userbench/kungfusaini__0dcc9805
userbench/gabadi__566903d8
userbench/singampalliveerendra__28776902
userbench/fcamblor__aa53f12b
userbench/melagiri__130f32d7
userbench/gabadi__5ff54caa
userbench/FSM1__53bf4e87
userbench/135yshr__824ae900
userbench/alishakawaguchi__04c32a20
userbench/ET-NoahDolev__cf912278
userbench/alishakawaguchi__585afa4a
userbench/lyston11__5cd5012e

Displaying 100 of 620 tasks