Skip to content

English · Español

Lab 00 — Env checklist

Pre-req: read ../theory/00-motivation.md through ../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 -a shows Linux ≥ 6.x.
  • cat /etc/os-release shows Fedora 43.
  • fish --version runs (interactive shell only — recipes still use sh).
  • dnf is 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/ after just setup.
  • uv --version → 0.4.x or newer.
  • just --version runs.
  • git --version → 2.x.

Block C — Repo state

  • git status shows a clean working tree after first commit.
  • git log --oneline shows at least one commit.
  • git remote -v shows origin pointing at https://github.com/borjatarraso/lynx-cortex.git.
  • gh repo view shows the repo on GitHub (or the repo is gitignored / private per your choice).

Block D — Gates

  • just setup completes (timing it — note the wall-clock seconds).
  • just lint exits 0 (ruff check + ruff format --check + mypy).
  • just test exits 0 with all tests passing.
  • just audit-deps exits 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 .py file shows ruff diagnostics inline.
  • Editing a .py file shows mypy diagnostics inline.
  • Save-on-format produces no diff (the file was already formatted).
  • .vscode/ is gitignored (verify with git status after creating settings).

Block F — Claude Code

  • A new Claude Code session in this directory shows CLAUDE.md loaded (mentioned in the system context).
  • /phase-checkpoint is a recognized slash command (test by typing / in the prompt — it should appear in autocompletion).
  • .claude/settings.json is committed (no .local.settings.json committed).
  • The math-reviewer subagent can be invoked via the Agent tool and produces a response.
  • just docs-serve launches a local site on http://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 after seed_everything(42), produce the same first call.
  • log_versions() returns a dict that includes python and either numpy (after just 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.md summarizing what failed on first try and how you fixed it.
  • Update learners/borja/phase-00/checkpoint.json setting dod.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.