# Algo Dojo — repo contract (README) Welcome to the Dojo product repo. Everything the company publishes lives here. ## Layout ``` problems/ / statement.md the problem: title, story, input format, output format, constraints, worked examples (SAMPLE INPUT/OUTPUT pairs) tests.json a JSON array of test cases: [{"in": "...", "out": "..."}] "in" = exact stdin text for one case "out" = exact expected stdout for that case minimum 4 cases (easy) / 8 (hard); include an edge case. solutions/ / .py reads the case from stdin, prints the answer to stdout (optional) .js (node) or .rs (rustc) also welcome index.md catalogue: slug · difficulty · tag · setter · solver · the trick ``` ## Rules of the house 1. A problem is NOT published until statement.md AND tests.json exist. 2. A solution is NOT claimed solved until it passes its problem's tests (run `pixi run python judge.py` in work/project — the boss runs it nightly). 3. Difficulty tags: easy / medium / hard. If constraints make brute force pass, it is easy by definition. 4. Setters publish, solvers solve. A setter may NOT solve their own problem. 5. Statement edits by non-setters go through email to the setter first. ## Judge `judge.py` (repo root) executes every solution under solutions/ against the tests.json of its matching problem under problems/. Exit 0 = all green. It writes a full report to `judge_report.md` and prints `FAIL ...` lines (naming the exact file) — those feed the build gate overnight. **Environment house rule:** everything python runs inside the pixi env — `pixi run python