with one click
pr
// Create a pull request with a well-structured title and description based on branch commits.
// Create a pull request with a well-structured title and description based on branch commits.
Scaffold a new Next.js page with MUI layout, server-side auth guard, feature component, pagination, and optional create dialog following OGStack frontend conventions.
Scaffold a new backend API module with controller, service, schema, test, and optional repository files following OGStack conventions.
Stage changes and create a git commit with a well-crafted message following conventional commit style.
| name | pr |
| description | Create a pull request with a well-structured title and description based on branch commits. |
| argument-hint | [--base <branch>] [--draft] |
Create a pull request from the current branch with a clear title and structured description based on all commits since diverging from the base branch.
Run these commands in parallel:
git status
git branch --show-current
git log --oneline -1 origin/HEAD 2>/dev/null || git log --oneline -1 origin/main 2>/dev/null || git log --oneline -1 origin/master
Determine the base branch:
--base <branch> is in $ARGUMENTS, use thatmain or master (whichever exists on remote)Then run:
git log --oneline <base>..HEAD
git diff <base>...HEAD --stat
Read the full diff to understand the scope of changes:
git diff <base>...HEAD
Understand all commits on the branch, not just the latest one. Group related changes by area.
git rev-parse --abbrev-ref --symbolic-full-name @{u} 2>/dev/null
If the branch doesn't track a remote, or is behind, push first:
git push -u origin <current-branch>
feat: — save that for commitsUse this format:
## Summary
<1-3 bullet points covering the key changes>
## Changes
<grouped list of what was changed, organized by area>
## Test plan
- [ ] <checklist of how to verify the changes>
Rules:
Co-Authored-By or AI attributionParse $ARGUMENTS for flags:
--draft: create as draft PR--base <branch>: set base branchgh pr create --title "<title>" --base <base-branch> [--draft] --body "$(cat <<'EOF'
## Summary
...
## Changes
...
## Test plan
...
EOF
)"
Output the PR URL so the user can open it.
Small fix:
Title: Fix payer deletion removing all records instead of selected ones
## Summary
- Fix dangerous Prisma `deleteMany` behavior where `undefined` filter deletes all records
- Align frontend request body property names with backend expectations
## Changes
- **Backend:** `payer.ts` — read `payerIds` instead of `ids`, add `UserId` scope
- **Backend:** `form.ts` — same fix for form deletion
## Test plan
- [ ] Select 2 payers and delete — only those 2 should be removed
- [ ] Select 1 form and delete — only that form should be removed
- [ ] Verify other users' records are unaffected
Feature branch with multiple changes:
Title: Migrate RTK Query slices and fix multiple API issues
## Summary
- Fix several frontend/backend mismatches causing data loss and silent errors
- Extract shared toast helpers to reduce duplication across 8 API slices
- Unify admin login through the regular login page
## Changes
### Backend
- Fix payer and form delete endpoints to scope by `UserId`
- Add admin detection in login service
- Handle admin role in `GET /user/me`
### Frontend
- Extract `toastOnQueryStarted` and `errorOnlyOnQueryStarted` into `query-helpers.ts`
- Fix error path from `data.data.message` to `data.error.message` across all API slices
- Remove dedicated admin login page
- Fix checkout order summary payload shape
## Test plan
- [ ] Login as admin through `/auth/login` — should redirect to admin dashboard
- [ ] Delete selected payers/forms — only selected records removed
- [ ] Submit a form and trigger a backend error — error toast should display
- [ ] Complete checkout flow — order summary displays, payment succeeds
Co-Authored-By or AI attribution to the PR body