- Change `todo done <N>` to variadic `todo done <N>...` for stable
indices across sequential calls
- Process multiple numbers highest-index-first so lower indices remain
valid as tasks are removed
- Validate all numbers upfront before mutating any files
- After marking done, print the full task block (same format as list)
so the user gets visual confirmation of what was completed
- Extract `mark_task_done` as a testable helper; add unit tests