depth_shell_saturation
attacker · house league, persona counter_meta · Elo 1106 · wins 41%2026-10-03_attacker_depth_shell_saturation
What it says it does
Idea: Park all 30 strikers just outside gun range in three interleaved depth shells, then release them on one tick so that no two strikers ever share a blast radius and every interceptor kills at most one.
Which part of convergence_blast_scheduler's logic this attacks -------------------------------------------------------------- The defender gets its strength from a plan built on blast groups. It predicts radial positions at a deadline radius of about 40 and picks an aim track whose 0.9 * blast neighbourhood covers the most strikers. It waits until neighbouring strikers converge inside one blast so that each interceptor kills two or three. Against a single synchronized ring of 30, the neighbour spacing at r = 40 is about 8.4. That is inside the 9-unit coverage radius, so its 20 interceptors reach 30 strikers.
This bot removes that geometry and keeps the gun saturation:
- 30 slots, 12 degrees apart, are split into 3 shells, using slot index mod 3. The shells stage at radii 118, 130 and 142. Inside one shell, neighbours are 36 degrees apart, which is 25 units at r = 40 and 15.7 at r = 25. Neighbours in adjacent shells are 12 degrees apart and also 12 units apart in depth. The blast-group planner therefore finds only singleton groups, and its 20 interceptors can kill at most about 17 strikers.
- Staging uses the defender's own threat filter against it. Tracks that are not closing (vr <= 1) at r >= 100 are dropped from E entirely. Drones pace tangentially on their slot, with radial velocity near 0, outside gun range. The bot launches nothing at them and its gun cannot reach them.
- All shells release on the same tick. Arrivals fall about 3 ticks apart per shell, so roughly 13 surviving strikers reach a one-target gun within a few ticks of each other.
What in the replays shows it breaks there -----------------------------------------
- Every loss to synchronized_ring ended the same way: stock_left 0, 20 launched, and 21 to 24 interceptor kills. Those extra kills came only from converged-ring doubles. The surviving 3 or 4 strikers arrived within 2 ticks of each other and the gun managed only 2 to 5 kills.
- The rush replay (26 kills from 4 interceptors) shows the defender's margin comes entirely from clustering. Without clusters it is out of interceptors well before the last third of the swarm.
Record
| backend | cli |
|---|---|
| date | 2026-10-03 |
| dry_run | False |
| escalation | False |
| model | opus |
| name | 2026-10-03_attacker_depth_shell_saturation |
| persona | counter_meta |
| prompt_version | 2026-09-29.1 |
| raw_response | out/house_raw/2026-10-03T033141_cli_attacker_counter_meta.md |
| result | beat_target: True, field_mean: 0.518, rank: 3, score_vs_target: 0.585 |
| role | attacker |
| target | 2026-10-01_defender_convergence_blast_scheduler |
| tokens | input: 9445, output: 8758 |
Against each opponent
| opponent | its mean score |
|---|---|
| annealed_assignment | 0.856 |
| layered | 0.802 |
| hover_bank_late_binder | 0.777 |
| contracting_ring_blaster | 0.750 |
| dither_parked_magazine | 0.746 |
| gun_only | 0.689 |
| deadline_cluster_ledger | 0.605 |
| loiter_then_collapse | 0.603 |
| convergence_blast_scheduler | 0.585 |
| hover_bank_double_lattice | 0.560 |
| greedy_value_model | 0.517 |
| reveal_timed_prelaunch | 0.497 |
| identify_then_engage | 0.477 |
| class_gated_magazine_keeper | 0.435 |
| miss_budget_scheduler | 0.414 |
| discriminating_ledger | 0.374 |
| nearest_first | 0.315 |
| annealed_assignment_eager | 0.313 |
| backscheduled_blast_packer | 0.293 |
| cluster_blast_column_breaker | 0.223 |
Ten most recent matches
From the latest nightly tournament.
| opponent | seed | outcome | its score | replay |
|---|---|---|---|---|
| discriminating_ledger | 9 | defended | 0.435 | watch |
| miss_budget_scheduler | 9 | defended | 0.231 | watch |
| reveal_timed_prelaunch | 9 | defended | 0.638 | watch |
| convergence_blast_scheduler | 9 | defended | 0.234 | watch |
| loiter_then_collapse | 9 | defended | 0.641 | watch |
| backscheduled_blast_packer | 9 | breached | 0.850 | watch |
| dither_parked_magazine | 9 | breached | 0.847 | watch |
| cluster_blast_column_breaker | 9 | defended | 0.231 | watch |
| contracting_ring_blaster | 9 | breached | 0.852 | watch |
| deadline_cluster_ledger | 9 | defended | 0.438 | watch |