@@ -66,4 +66,41 @@ across those worlds.
6666The runner rotates player ordering across simulations to reduce positional bias from factory
6767assignment.
6868
69+ # # Smoke Test
70+
71+ From the repository root, run the dummy-player example :
72+
73+ ` ` ` bash
74+ rm -rf /tmp/codeclash-scml-smoke
75+ uv run python main.py configs/examples/SCML__dummy__r1__s2.yaml -o /tmp/codeclash-scml-smoke
76+ ` ` `
77+
78+ Expected shape :
79+
80+ - the command exits with status 0;
81+ - both players pass submission validation;
82+ - stdout includes `In round 0, the winner is ...` and `In round 1, the winner is ...`;
83+ - each round summary contains floating-point average scores for `alpha` and `beta`;
84+ - the output directory contains `metadata.json`, `game.log`, `tournament.log`, and
85+ ` rounds/round_0.tar.gz` / `rounds/round_1.tar.gz`.
86+
87+ A representative `metadata.json` round contains a `scores` object with one floating-point SCML
88+ profit score per player :
89+
90+ ` ` ` json
91+ "scores": {
92+ "alpha": 1.0447501220885806,
93+ "beta": 0.9783875910335903
94+ }
95+ ` ` `
96+
97+ Exact values can change with simulation order and configuration; the smoke check is meant to verify
98+ the Docker/runtime adapter path, player-name mapping, and score/log artifact shape.
99+
100+ The exact tournament directory name includes a timestamp, so inspect the metadata with :
101+
102+ ` ` ` bash
103+ find /tmp/codeclash-scml-smoke -maxdepth 3 -name metadata.json -print
104+ ` ` `
105+
69106--8<-- "docs/_footer.md"
0 commit comments