## Title Short, imperative summary (e.g., "fix(robots): handle None in sensor parser"). See [CONTRIBUTING.md](../CONTRIBUTING.md) for PR conventions. ## Summary / Motivation - One-paragraph description of what changes and why. - Why this change is needed and any trade-offs or design notes. ## Related issues - Fixes / Closes: # (if any) - Related: # (if any) ## What changed - Short, concrete bullets explaining the functional changes (how the behavior or output differs now). - Short note if this introduces breaking changes and migration steps. ## How was this tested (or how to run locally) - Tests added: list new tests or test files. `pytest -q tests/ -k ` - Manual checks / dataset runs performed. - Instructions for the reviewer for reproducing with a quick example or CLI (if applicable) ## Checklist (required before merge) - [ ] Linting/formatting run (`pre-commit run -a`) - [ ] All tests pass locally (`pytest`) - [ ] Documentation updated - [ ] CI is green - [ ] Community Review: I have reviewed another contributor's open PR and linked it here: # (insert PR number/link) ## Reviewer notes - Anything the reviewer should focus on (performance, edge-cases, specific files) or general notes. - Anyone in the community is free to review the PR.