You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Clean up ladder configs, agent observations, and BattleSnake validation (#116)
* Add lock for image construction
* Update win conditions
* Surface per-step budget in agent observations
Add a global observation_template in configs/mini/default.yaml with a
[Step n/limit used - k left] banner, and thread it onto the model via a
ClashAgentConfig field pushed in ClashAgent.__init__. Applies to every model
backend, tournament type, and arena; models otherwise learn the step limit only
once at round start with no running counter.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
* Reject BattleSnake submissions missing a server entrypoint
validate_code was a pure function-def check, so a main.py that drops the
'if __name__ == "__main__": run_server(...)' block passed validation but
failed to start at runtime (forfeit). Require the entrypoint statically.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
* Centralize ladder win condition in shared ladder_rules.yaml
Every ladder run config duplicated the same ladder_rules block. Extract it to
configs/ablations/ladder/ladder_rules.yaml (min_round_wins: 2, win_last_k: 0)
and include it from all run configs so the win condition lives in one place.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
* Add matplotlib to dev dependencies
Required by codeclash.analysis (elo plots + ranking).
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
* Print ladder advancement rule to console
Unify with scml-ladder's behavior: echo the advancement rule to stdout (in
addition to logging it) at the start of a ladder run.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
* reduce ocmments
* nit
* reduce comments
* Give ladder climbers an adversarial task prompt
Ladder run configs only set game_description to e.g. 'BattleSnake ladder', so a
climbing model was never told it's writing code to defeat an opponent (the shared
instance template even frames rounds as a cooperative relay). Add a shared
ladder_prompt.yaml with an arena-agnostic prompt that states the adversarial task
and pulls in arena specifics via a new {{arena_description}} template var (exposed
from the arena's static description through GameContext). All 19 run configs
include it; make_* build configs are unaffected.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
* Strip explanatory comments from ladder/agent config additions
* Fix pre-commit
* Move observation_template from agent config into model configs
* Reorganize configs: main->pvp, ladder out of ablations, models.yaml->mini/model_roster.yaml
* Remove unreferenced example configs (stale Bridge/haiku, duplicate HuskyBench)
* Point docs at pvp configs; drop r5 example duplicates and vs_human ablation
* Fix battlesnake entrypoint check to accept any server start; fix single_player doc ref
* Remove unused ClashAgentConfig now that observation_template lives in model configs
---------
Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
0 commit comments