Clean up ladder configs, agent observations, and BattleSnake validation#116
Merged
Conversation
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>
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>
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>
Required by codeclash.analysis (elo plots + ranking). Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
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>
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>
…mini/model_roster.yaml
…le_player doc ref
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Non-SCML improvements split out from the john/scml-ladder branch. Mostly a config reorg plus a few functional fixes.
Config reorganization (most of the diff)
Ladder
win_last_k: 0) included by every run config; adds the min_round_wins/win_last_k schema + validation in _resolve_ladder_rules.
"BattleSnake ladder" + a cooperative-relay framing). Arena specifics inject via a new {{arena_description}} template var, exposed from the
arena's static description through GameContext.
Fixes
Cleanup