Tracked tooling for this checkout's problems/ tree and any other
on-disk problem set selected with CODERPUZZLE_PROBLEMS.
verify_solution.py <shard-qualified-bundle-key> [<ext> ...](or<key> --solution <file> [--solution <file> ...]— repeatable, may appear anywhere after the key, and mutually exclusive with ext filters — to judge the named external file(s) against the bundle's cases instead of its ownsolution*files) — THE gate: judges everysolution*.<ext>in a bundle through the real executors, locally, without sandboxing. Compiles the Java harness (runner/java/CoderPuzzleJavaHarness.java) into a fresh temp dir once per run; local cpp compiles get the-I scripts/verify_shimshim. TypeScript compiles with the image-pinned tsc fromscripts/ts-pin(tracked spec;npm ci --prefix scripts/ts-pinbootstraps it), falling back tofrontend/node_moduleswhen the pin is absent. Needs the local toolchain on PATH.verify_corpus.py— whole-corpus consistency check (crawl index ↔ bettercode ↔ this repo's originals ↔ the private adapted tree keyed by MAPPING.json): coverage, slug parity, shard placement, bundle file shape, the 13-crawltwins. Run after any tree surgery. Upstream scrape sources default to~/code/lc-crawland~/code/bettercode; override withCODERPUZZLE_CRAWL/CODERPUZZLE_BETTERCODE; setCODERPUZZLE_ADAPTED_PROBLEMSto the adaptedproblems/directory.check.py— the static bundle gate, run on demand (this repo's GitHub Actions do not run it;coderpuzzle checkinside the judge image does): bundle completeness, schema conformance, statement grammar, duplicate ids/slugs,solution.* ⊇ starter.*, and the starter generator round-trip.python3 scripts/check.py --tree problems --skip-runtimeis the static tier.--problems=additionally selects bundles for the runtime tier;--bundles=restricts the per-bundle static checks (corpus-wide rules — misnamed directories, duplicate ids/slugs — always scan the whole set);--report-jsonwrites the per-bundle pass/fail verdicts CI records.ci_state.py— the incremental CI selector: keys every static result by bundle contents plus the static toolchain and every judge result by the individual solution file plus its bundle inputs plusrunner/, then compares againststate.jsonon theci-statebranch.selectemits the run plan (unchanged keys and recorded passes skip; recorded failures re-run every push until they pass);recordmerges the run's verdict artifacts back into the state and prunes keys whose files are gone.gen_starters.py— regenerates everystarter.*fromproblem.json(--checkdiffs, writes nothing); the Python style follows each bundle's provenance viaproblems-tooling/adapt-mapping.jsonunless--styleoverrides it orCODERPUZZLE_PYTHON_STYLEpins the tree.format.py/format.sh— the formatter loaders:format.pyimports the pinned implementation (this checkout'srunner/formatters.py, or the image's/runnercopy) and formats or--checks in place;format.shruns the same command inside the runner image via docker, bind-mounting the checkout'srunner/cli.py+runner/formatters.pyover the image's copies.prepare_judge_host.py— provisions one exclusive, bounded cgroup v2 slot on a dedicated Linux host and emits the env file thatcompose.isolated.yamlconsumes; see docs/JUDGE-RESOURCES.md.stress_judge.py— collects real HTTP judge timings from a live deployment, driven by a private (untracked) manifest of test-account credentials and exported source strings.
ts-pin/— tracked TypeScript pin (spec + lockfile) behindverify_solution.py's local TS tier;npm ci --prefix scripts/ts-pinbootstraps it.problems-tooling/—adapt-mapping.json(the provenance ledgergen_starters.pykeys Python starter style from) and apackage.jsonpinning prettier / prettier-plugin-java / sql-formatter to the runner image's exact versions for local format runs (node_modulesgitignored).verify_shim/— include-path shim handed to local C++ compiles underverify_solution.py.
stub-server.mjs— stub API server for offline UI work; verdicts flip via the mode file.localonly/stub-mode(ok|wa|tle).shot.mjs— puppeteer screenshot driver (writes.localonly/shots/).session-e2e.mjs+session-e2e-server.mjs— session/idle-expiry end-to-end scenario (servesfrontend/dist, proxies/apito a local uvicorn).ascii.py,see-seal.py— render screenshots as palette-bucketed ASCII for layout inspection without vision.