Skip to content

English · Español

Lab 00 — Checklist de entorno

Pre-requisito: lee ../theory/00-motivation.md hasta ../theory/03-dev-environment.md. Objetivo: verificar que todo lo de los capítulos de teoría está realmente presente y funciona en tu máquina. Marca cada caja al terminar.

No copies de solutions/. No hay solución para este archivo — es un ritual de verificación.

Bloque A — Sistema

  • uname -a muestra Linux ≥ 6.x.
  • cat /etc/os-release muestra Fedora 43.
  • fish --version se ejecuta (solo shell interactivo — las recetas siguen usando sh).
  • dnf es el gestor de paquetes (no apt / pacman / etc.).

Bloque B — Lenguajes y runtimes

  • python --version → 3.11.x.
  • python -c "import sys; print(sys.prefix)" apunta dentro del .venv/ del proyecto tras just setup.
  • uv --version → 0.4.x o más nuevo.
  • just --version corre.
  • git --version → 2.x.

Bloque C — Estado del repo

  • git status muestra un working tree limpio tras el primer commit.
  • git log --oneline muestra al menos un commit.
  • git remote -v muestra origin apuntando a https://github.com/borjatarraso/lynx-cortex.git.
  • gh repo view muestra el repo en GitHub (o el repo está gitignored / es privado según tu elección).

Bloque D — Puertas

  • just setup completa (cronométralo — anota los segundos wall-clock).
  • just lint sale con 0 (ruff check + ruff format --check + mypy).
  • just test sale con 0 con todos los tests pasando.
  • just audit-deps sale con 0 (sin CVEs conocidas en las deps del lock).
  • uv run bandit -r src/ sale con 0.

Bloque E — Editor

  • VS Code (o Cursor) abre el proyecto y la extensión de Python activa .venv/.
  • Editar un archivo .py muestra diagnostics de ruff inline.
  • Editar un archivo .py muestra diagnostics de mypy inline.
  • Save-on-format no produce diff (el archivo ya estaba formateado).
  • .vscode/ está gitignored (verifica con git status tras crear settings).

Bloque F — Claude Code

  • Una nueva sesión de Claude Code en este directorio muestra CLAUDE.md cargado (mencionado en el contexto del sistema).
  • /phase-checkpoint es un slash command reconocido (testea tecleando / en el prompt — debería aparecer en el autocompletado).
  • .claude/settings.json está commiteado (sin .local.settings.json commiteado).
  • El subagente math-reviewer puede invocarse vía la tool Agent y produce respuesta.

Bloque G — Sitio de docs (opcional pero recomendado)

  • just docs-serve lanza un sitio local en http://127.0.0.1:8000.
  • Las páginas de teoría de la Fase 0 se renderizan con syntax highlighting + mates.

Bloque H — Smoke test de reproducibilidad

  • Abre un REPL de Python dentro del venv (uv run python).
  • from utils.seeding import seed_everything, log_versions.
  • seed_everything(42) corre sin error.
  • import random; random.random() dos veces seguidas, ambas tras seed_everything(42), producen la misma primera llamada.
  • log_versions() devuelve un dict que incluye python y bien numpy (tras just setup) o un placeholder "not installed".

Bloque I — Manifiesto

Cuando toda caja de arriba esté marcada:

  • Commit: phase: phase-00 env-checklist complete.
  • Añade una entrada de diario a learners/borja/journal/YYYY-MM-DD.md resumiendo qué falló al primer intento y cómo lo arreglaste.
  • Actualiza learners/borja/phase-00/checkpoint.json poniendo dod.env_checklist_completed: true.

Si algo falla, no marques la caja. Abre primero una entrada de diario describiendo el fallo; ese es el artefacto más útil al cierre de fase.