__pycache__/
*.py[cod]
.DS_Store
*.egg-info/
build/
dist/
.venv/
venv/

# Learner state. Every task ships a starter (starter.py / starter.cpp /
# starter.cu); the editor seeds solve.* from it on first open. solve.* is the
# learner's own attempt and is never part of the bank.
tasks/*/solve.py
tasks/*/solve.cpp
tasks/*/solve.cu

# local build artefacts
a.out
*.o
.preview/

# generation queues, archives and one-off scripts stay out of the published repo
.internal/
*.vsix

# The Part-2 build queue: generated from a private plan, and a public roadmap of
# unbuilt work is not something the repo should carry. tools/gen_part2_specs.py
# regenerates it.
tools/specs2/

# `mlsys start <id>` writes ./<task-id>/solve.py where it is run, and the repo root
# is where it usually gets run. That is the learner's scratch, not repo content.
/*/solve.py
/*/solve.cpp
/*/solve.cu
