## Summary

<!-- What does this PR do and why? -->
<!-- PR title must follow Conventional Commits: feat:, fix:, docs:, chore:, etc. -->

## Changes

<!-- Bullet list of key changes -->

## Checklist

- [ ] PR title uses conventional commit format (`feat:`, `fix:`, `docs:`, etc.)
- [ ] Tests pass locally (`task test` or `task test:unit` / `task test:integration`)
- [ ] Beads tasks updated (`bd close <id>` + committed before push)
- [ ] Documentation updated (if user-facing changes)
- [ ] ADR created (if architectural decision)
