Pins runtimes with mise (Python/Node/Rust), auto-generates .env, and runs a clean-slate bootstrap that installs all deps and passes the complete suite (85 tests).
A fresh clone builds and passes its tests with one command, on a clean machine, using pinned runtime versions — no "works on my machine" drift.
make
That's it. make (default target → scripts/bootstrap.sh):
mise.toml (mise install),.venv using the pinned Python,requirements-dev.txt),Full captured output: docs/agent-analysis/D5_bootstrap_output.txt.
Verification record: docs/agent-analysis/D5_reproducibility_record.md.
mise — the version manager that reads mise.toml:
brew install mise # or: curl https://mise.run | sh
Everything else (Python, Node, dependencies) is installed by make at the exact
pinned versions. No system Python/Node required.
mise.toml)| Tool | Version | Why pinned |
|---|---|---|
| python | 3.12.8 | tests assert 3.12; avoids host-Python drift (this host runs 3.14) |
| node | 22.12.0 | repo is polyglot; one declared Node for all clones |
Plus declared env (APP_ENV, PYTHONDONTWRITEBYTECODE) that was previously implicit.
make test # run tests in the existing venv
make run # serve the app on :8000
make doctor # show the resolved pinned toolchain (mise ls)
make clean # remove .venv
make help # list targets
.devcontainer/devcontainer.json reproduces the same environment in VS Code /
GitHub Codespaces (Python 3.12.8 + Node 22.12.0 features), running the test suite
on start via postStartCommand.
| Previously implicit | Now declared in |
|---|---|
| Python version (host had 3.14 → deprecation drift) | mise.toml python = "3.12.8" |
| Node version | mise.toml node = "22.12.0" |
gpg needed for mise's Python attestation verification | mise.toml [settings] python.github_attestations = false |
APP_ENV environment variable | mise.toml [env] + devcontainer |
| Exact dependency versions | requirements*.txt (== pins) |