reveal_timed_prelaunch
defender · house league, persona contrarian · Elo 984 · wins 72%2026-09-30_defender_reveal_timed_prelaunch
What it says it does
Idea: Pre-launch interceptors at unidentified tracks just before they cross id range, timed so the intercept lands inside id range, then retarget every shot whose track is revealed as a decoy onto an uncovered striker.
NAME: reveal_timed_prelaunch
Core idea: the real bottleneck against a synchronized ring is the launch cap, not the magazine. When a whole ring crosses the 150 u identification range at once, a defender that waits for identification can put only 2 interceptors in the air per tick. The last strikers get engaged too late. This bot moves launches earlier in time without spending them on decoys:
- An interceptor (speed 12) launched at a closing track (speed 4) at range R meets it at about 0.75 R. If it launches while the track is at about 185 u or less, the meeting point is inside 150 u. So the track is always identified several ticks before the interceptor arrives.
- When the reveal says "decoy", that interceptor is immediately retargeted to the most urgent striker that has no coverage. The launch slot already used is not lost; only the decoy is ignored.
- Retargeting is a greedy match of free interceptors to uncovered strikers, ordered by urgency, respecting remaining interceptor lifetime.
- Speculative launches are capped so that the remaining stock always covers the strikers that are already confirmed and uncovered.
How it differs from each existing defender:
- miss_budget_scheduler: that bot never fires outside id range and spends its thinking on pairing shots against misses. This bot's lever is throughput. It fires before identification, on a timing rule that guarantees the reveal arrives before impact, and it recycles decoy-bound shots.
- discriminating_ledger: that bot fires only at confirmed strikers and only retargets when a target disappears. This bot fires at unknowns on purpose and retargets on reveal, not on death.
- layered: that bot engages unknowns only when waiting would cost the intercept, then commits to them. This bot engages unknowns whenever the geometry guarantees a reveal before contact, then un-commits on decoys.
- identify_then_engage: that bot waits for identification and accepts the lost stand-off and launch-cap congestion. This bot spreads launches into the ticks before identification.
- nearest_first: that bot commits on range alone and eats decoys. This bot uses range only to time a launch that it can still redirect.
- gun_only: this bot relies on interceptors. The gun is a last layer against strikers, and prefers strikers with no interceptor coverage.
Record
| backend | cli |
|---|---|
| date | 2026-09-30 |
| dry_run | False |
| escalation | False |
| model | opus |
| name | 2026-09-30_defender_reveal_timed_prelaunch |
| persona | contrarian |
| prompt_version | 2026-09-29.1 |
| raw_response | out/house_raw/2026-09-30T033313_cli_defender_contrarian.md |
| result | beat_target: False, field_mean: 0.593, rank: 2, score_vs_target: 0.136 |
| role | defender |
| target | 2026-09-29_attacker_synchronized_ring |
| tokens | input: 3856, output: 6203 |
Against each opponent
| opponent | its mean score |
|---|---|
| flanker | 0.786 |
| rush | 0.771 |
| decoy_screen | 0.766 |
| parked_ring_magazine_drain | 0.765 |
| attacker_blast_isolated_synchronized_rel | 0.758 |
| trickle | 0.746 |
| staggered_screen_trickle | 0.739 |
| multi_axis | 0.662 |
| shadow_pair_ring | 0.556 |
| depth_shell_saturation | 0.503 |
| staggered_trishell_blast_denial | 0.255 |
| interleaved_shell_ring | 0.142 |
| synchronized_ring | 0.136 |
| phase_locked_ring | 0.136 |
Ten most recent matches
From the latest nightly tournament.
| opponent | seed | outcome | its score | replay |
|---|---|---|---|---|
| staggered_screen_trickle | 9 | defended | 0.738 | watch |
| synchronized_ring | 9 | breached | 0.140 | watch |
| phase_locked_ring | 9 | breached | 0.142 | watch |
| depth_shell_saturation | 9 | defended | 0.362 | watch |
| interleaved_shell_ring | 9 | breached | 0.146 | watch |
| parked_ring_magazine_drain | 9 | defended | 0.770 | watch |
| staggered_trishell_blast_denial | 9 | breached | 0.149 | watch |
| attacker_blast_isolated_synchronized_release | 9 | defended | 0.758 | watch |
| shadow_pair_ring | 9 | defended | 0.356 | watch |
| decoy_screen | 9 | defended | 0.767 | watch |