Dev Playbook
Templates

Pull Request Template

PR description template.

Copy this into .github/PULL_REQUEST_TEMPLATE.md in each repo, or use it manually.


## Summary

- <!-- What does this PR do and why? 1-3 bullet points -->

## Changes

- <!-- List significant changes. Not a file-by-file diff, but what matters. -->

## Test Plan

- [ ] Unit tests added/updated
- [ ] Manual testing completed
- [ ] Edge cases considered
- [ ] CI passes

## Self-Review Checklist

- [ ] I've read every line of the diff
- [ ] No debug code or console.logs left behind
- [ ] No hardcoded values that should be config
- [ ] No security issues (injection, exposed secrets, missing auth)
- [ ] Error handling is appropriate
- [ ] This PR does ONE thing

## Related

- Closes #<!-- issue number -->

---
Generated with [Claude Code](https://claude.com/claude-code)

Usage

Option A: Auto-populate for all PRs

Save the content between the ``` fences as .github/PULL_REQUEST_TEMPLATE.md in your repo. GitHub will auto-fill this template every time someone opens a PR.

Option B: Use with gh CLI

gh pr create \
  --title "feat: add course enrollment limit" \
  --body "$(cat <<'EOF'
## Summary

- Add MaxCapacity field to courses with enrollment validation

## Changes

- Added `MaxCapacity` column to Course entity + migration
- Enrollment endpoint now returns 409 when course is full
- Course detail page shows remaining spots

## Test Plan

- [x] Unit tests for EnrollStudentCommandHandler capacity check
- [x] Integration test for 409 response
- [x] Manual testing with capacity = 1, 0, null (unlimited)

## Self-Review Checklist

- [x] Read the diff
- [x] No debug code
- [x] No hardcoded values
- [x] No security issues
- [x] Error handling appropriate
- [x] Single concern

## Related

- Closes #42

---
Generated with [Claude Code](https://claude.com/claude-code)
EOF
)"

On this page