English · Español
Lab 00 — Env checklist¶
Pre-req: read
../theory/00-motivation.mdthrough../theory/03-dev-environment.md. Goal: verify everything in the theory chapters is actually present and works on your machine. Tick each box as you finish.Do not copy from
solutions/. There is no solution for this file — it's a verification ritual.
Block A — System¶
-
uname -ashows Linux ≥ 6.x. -
cat /etc/os-releaseshows Fedora 43. -
fish --versionruns (interactive shell only — recipes still usesh). -
dnfis the package manager (not apt / pacman / etc.).
Block B — Languages & runtimes¶
-
python --version→ 3.11.x. -
python -c "import sys; print(sys.prefix)"points inside the project's.venv/afterjust setup. -
uv --version→ 0.4.x or newer. -
just --versionruns. -
git --version→ 2.x.
Block C — Repo state¶
-
git statusshows a clean working tree after first commit. -
git log --onelineshows at least one commit. -
git remote -vshowsoriginpointing athttps://github.com/borjatarraso/lynx-cortex.git. -
gh repo viewshows the repo on GitHub (or the repo is gitignored / private per your choice).
Block D — Gates¶
-
just setupcompletes (timing it — note the wall-clock seconds). -
just lintexits 0 (ruff check + ruff format --check + mypy). -
just testexits 0 with all tests passing. -
just audit-depsexits 0 (no known CVEs in the locked deps). -
uv run bandit -r src/exits 0.
Block E — Editor¶
- VS Code (or Cursor) opens the project and the Python extension activates
.venv/. - Editing a
.pyfile shows ruff diagnostics inline. - Editing a
.pyfile shows mypy diagnostics inline. - Save-on-format produces no diff (the file was already formatted).
-
.vscode/is gitignored (verify withgit statusafter creating settings).
Block F — Claude Code¶
- A new Claude Code session in this directory shows
CLAUDE.mdloaded (mentioned in the system context). -
/phase-checkpointis a recognized slash command (test by typing/in the prompt — it should appear in autocompletion). -
.claude/settings.jsonis committed (no.local.settings.jsoncommitted). - The
math-reviewersubagent can be invoked via the Agent tool and produces a response.
Block G — Docs site (optional but recommended)¶
-
just docs-servelaunches a local site onhttp://127.0.0.1:8000. - The Phase 0 theory pages render with syntax highlighting + math.
Block H — Reproducibility smoke test¶
- Open a Python REPL inside the venv (
uv run python). -
from utils.seeding import seed_everything, log_versions. -
seed_everything(42)runs without error. -
import random; random.random()twice in a row, both afterseed_everything(42), produce the same first call. -
log_versions()returns a dict that includespythonand eithernumpy(afterjust setup) or a"not installed"placeholder.
Block I — Manifest¶
When every box above is ticked:
- Commit:
phase: phase-00 env-checklist complete. - Append a journal entry to
learners/borja/journal/YYYY-MM-DD.mdsummarizing what failed on first try and how you fixed it. - Update
learners/borja/phase-00/checkpoint.jsonsettingdod.env_checklist_completed: true.
If anything fails, do not mark the box. Open a journal entry describing the failure first; that's the most useful artifact at phase close.