## Summary

<!-- What does this PR do? -->

## Test plan

- [ ] `uv run pytest tests/ -x -q` passes
- [ ] `uv run pyright` passes (strict mode)
- [ ] `uv run ruff check .` passes

## Checklist

- [ ] Commits follow conventional prefix format (feat/fix/docs/test/chore)
- [ ] No large data files or results committed
- [ ] No PII or secrets in tracked files
