This is the practice substrate for the methodology tutorials. It is intentionally small, plain, and throwaway: a stdlib-only Python todo-list CLI with a real test suite and a short backlog. You will run real methodology sessions against it.
It ships without any methodology files (no SESSION_RUNNER.md, no CLAUDE.md, no
BACKLOG.md-as-task-tracker). Installing the framework onto this project is exactly what you
do in Tutorial 1 — see ../README.md for the series index.
cd docs/tutorials/sample-project
python3 todo.py add "write the report"
python3 todo.py add "submit the report"
python3 todo.py listState is stored in todos.json in the current directory (override with --file PATH or the
TODO_STORE env var). todos.json is throwaway — delete it any time.
python -m pytest # the runner the tutorials document
python -m unittest # stdlib fallback — zero dependenciesBoth should report all tests passing. In methodology terms this is your build equivalent: green tests are the gate, not "it ran once on my machine."
The CLI has add and list but no way to mark a task done — even though each task already
carries a done flag. Wiring up todo done <id> is the first feature you build, end-to-end, in
Tutorial 2. The backlog lists the rest, including a couple of rough edges that
Tutorial 5 uses as cautionary cases. Don't fix everything at once — that's the whole point.