From bacef11366bd49f2b2635c0cd7f361069783b6e3 Mon Sep 17 00:00:00 2001 From: muhtasham Date: Tue, 5 May 2026 11:58:24 +0200 Subject: [PATCH] Document SCML and CybORG smoke checks --- docs/reference/arenas/cyborg.md | 39 +++++++++++++++++++++++++++++++++ docs/reference/arenas/scml.md | 38 ++++++++++++++++++++++++++++++++ 2 files changed, 77 insertions(+) diff --git a/docs/reference/arenas/cyborg.md b/docs/reference/arenas/cyborg.md index 55b2eb5..ac8c4f3 100644 --- a/docs/reference/arenas/cyborg.md +++ b/docs/reference/arenas/cyborg.md @@ -71,4 +71,43 @@ The runtime pins CybORG to the upstream `v3.0` code and installs it editable fro repository because the upstream package expects data files such as `CybORG/version.txt` to be present next to the source tree. +## Smoke Test + +From the repository root, run the dummy-player example: + +```bash +uv run python main.py configs/examples/CybORG__dummy__r1__s2.yaml -o /tmp/codeclash-cyborg-smoke +``` + +Use a fresh `-o` directory when rerunning the smoke check. + +Expected shape: + +- the command exits with status 0; +- both players pass submission validation; +- stdout includes `In round 0, the winner is ...` and `In round 1, the winner is ...`; +- each round summary contains floating-point average rewards for `alpha` and `beta`; +- per-episode details have `status: "ok"` and `steps_completed: 5`; +- the output directory contains `metadata.json`, `game.log`, `tournament.log`, and + `rounds/round_0.tar.gz` / `rounds/round_1.tar.gz`. + +A representative `metadata.json` round contains a `scores` object with one floating-point episode +reward per player: + +```json +"scores": { + "alpha": -27.0, + "beta": -33.5 +} +``` + +Exact values can change with simulator randomness and configuration; the smoke check is meant to +verify the Docker/runtime adapter path, player-name mapping, and score/log artifact shape. + +The exact tournament directory name includes a timestamp, so inspect the metadata with: + +```bash +find /tmp/codeclash-cyborg-smoke -maxdepth 3 -name metadata.json -print +``` + --8<-- "docs/_footer.md" diff --git a/docs/reference/arenas/scml.md b/docs/reference/arenas/scml.md index 39d6644..4f6009d 100644 --- a/docs/reference/arenas/scml.md +++ b/docs/reference/arenas/scml.md @@ -66,4 +66,42 @@ across those worlds. The runner rotates player ordering across simulations to reduce positional bias from factory assignment. +## Smoke Test + +From the repository root, run the dummy-player example: + +```bash +uv run python main.py configs/examples/SCML__dummy__r1__s2.yaml -o /tmp/codeclash-scml-smoke +``` + +Use a fresh `-o` directory when rerunning the smoke check. + +Expected shape: + +- the command exits with status 0; +- both players pass submission validation; +- stdout includes `In round 0, the winner is ...` and `In round 1, the winner is ...`; +- each round summary contains floating-point average scores for `alpha` and `beta`; +- the output directory contains `metadata.json`, `game.log`, `tournament.log`, and + `rounds/round_0.tar.gz` / `rounds/round_1.tar.gz`. + +A representative `metadata.json` round contains a `scores` object with one floating-point SCML +profit score per player: + +```json +"scores": { + "alpha": 1.0447501220885806, + "beta": 0.9783875910335903 +} +``` + +Exact values can change with simulation order and configuration; the smoke check is meant to verify +the Docker/runtime adapter path, player-name mapping, and score/log artifact shape. + +The exact tournament directory name includes a timestamp, so inspect the metadata with: + +```bash +find /tmp/codeclash-scml-smoke -maxdepth 3 -name metadata.json -print +``` + --8<-- "docs/_footer.md"