Install
openclaw skills install github-pr-writerWrite clear, structured GitHub pull request descriptions using a standardized template. Use when creating a PR, updating a PR description, or when asked to d...
openclaw skills install github-pr-writerGenerates structured, thorough PR descriptions using a consistent template.
See assets/pull_request_template.md for the full template to copy into your repo's .github/pull_request_template.md.
When writing a PR description, gather context first:
# See what changed vs base branch
git diff main --stat
# See commit messages
git log --oneline main..HEAD
# See full diff (for smaller PRs)
git diff main
Then fill in each section:
One or two sentences. What does this PR do and why? Link the issue if there is one.
Closes #123
Adds user authentication via Devise with email confirmation.
Check exactly one (or two if truly applicable). Be honest — don't check "safe" if there are breaking changes.
Link issues or describe the specific feature/bug this addresses. Be specific enough that a reviewer knows what to look for.
Bullet points — what actually changed in the code:
Group related changes together. Lead with the most important change.
Honest assessment. If you changed a shared concern, a base class, or anything that touches many parts of the app — flag it.
Tell the reviewer how to verify the changes work:
# 📦 Pull Request
## Summary
Closes #44
Adds the driver availability system for ride booking. When a patron requests a ride,
the system checks which approved drivers are available based on schedule windows,
existing ride conflicts, and drive-time buffers.
---
## ✅ Checklist Before Merging
### Code
- [x] Code runs locally without errors
- [x] My code has no unused or commented-out sections
- [x] I have reviewed my code
- [x] I have added comments to any complex logic
### Testing
- [x] All tests are passing
- [x] I have added or updated tests as needed
---
## 🧪 Type of Change
- [x] 🚀 New feature
---
## 🛠️ Implements / Fixes
Implements driver availability checking for Phase 1 ride scheduling.
---
## 📋 Description of Changes
- Added `role` column to `user_rides` (driver/patron, default: patron)
- Created `driver_schedules` table for recurring and one-off availability windows
- Added `DriverSchedule` model with `covers_time?` method
- Added `GeoapifyDriveTimeService` for real drive time via Geoapify Route Matrix API
- Added `DriverAvailabilityService` — 4-step availability check
- Updated seeds and factories to include `role`
---
## 💣 Impact
- [x] This PR is safe (does not break existing functionality)
---
## 🧪 Testing Notes
- [x] All/most tests changed
75 new tests across 3 spec files. Final suite: 729 examples, 0 failures.