Contributing
This book is open to contributions: open an issue or a pull request on GitHub.
Fixing a number
Section titled “Fixing a number”Every number in a lesson must be reproducible. If one doesn’t match: name the lesson, your library versions and your output. A number that doesn’t reproduce is a bug.
Writing or improving a lesson
Section titled “Writing or improving a lesson”- Read the authoring guide:
tools/AUTHORING.md(template, honesty rules, Turkish rules). - Lesson structure comes from
curriculum.yaml; after changing it runuv run python tools/build_book.py, which regeneratesSUMMARY.md, part pages and each lesson’s metadata block. Don’t edit those generated parts by hand. - Write the experiment in
experiments/NN-slug/experiment.py(English code, fixed seeds, prints a table) and save its exact stdout asoutput.txt. - Write the lesson in English (
part-…/NN-slug.md) and Turkish (tr/part-…/NN-slug.md). In Turkish, technical terms stay in English. - Check that every relative link resolves and the site builds:
cd site && npm run build.
Code conventions
Section titled “Code conventions”- English identifiers, comments and output.
- Dependencies in
pyproject.toml, pinned inuv.lock(uv add <pkg>, thenuv export --no-hashes --no-dev --format requirements-txt > requirements.txt). - Before a pull request:
uv run ruff check .anduv run python tools/check_book.py. - Robot models through
experiments/common/menagerie.py.