init
This commit is contained in:
58
.opencode/skills/git/references/workflow-pr.md
Normal file
58
.opencode/skills/git/references/workflow-pr.md
Normal file
@@ -0,0 +1,58 @@
|
||||
# Pull Request Workflow
|
||||
|
||||
Execute via `git-manager` subagent.
|
||||
|
||||
## Variables
|
||||
- TO_BRANCH: target (defaults to `main`)
|
||||
- FROM_BRANCH: source (defaults to current branch)
|
||||
|
||||
## CRITICAL: Use REMOTE diff
|
||||
PRs based on remote branches. Local diff includes unpushed changes.
|
||||
|
||||
## Tool 1: Sync + Analyze
|
||||
|
||||
**IMPORTANT: Always merge `main` (or any default branch) to current branch first.**
|
||||
|
||||
```bash
|
||||
git fetch origin && \
|
||||
git push -u origin HEAD 2>/dev/null || true && \
|
||||
BASE=${BASE_BRANCH:-main} && \
|
||||
HEAD=$(git rev-parse --abbrev-ref HEAD) && \
|
||||
echo "=== PR: $HEAD → $BASE ===" && \
|
||||
echo "=== COMMITS ===" && \
|
||||
git log origin/$BASE...origin/$HEAD --oneline && \
|
||||
echo "=== FILES ===" && \
|
||||
git diff origin/$BASE...origin/$HEAD --stat
|
||||
```
|
||||
|
||||
**If "Branch not on remote":** Push first, retry.
|
||||
|
||||
## Tool 2: Generate Content
|
||||
**Title:** Conventional commit format, <72 chars, NO version numbers
|
||||
**Body:** Summary bullets + Test plan checklist
|
||||
|
||||
## Tool 3: Create PR
|
||||
```bash
|
||||
gh pr create --base $BASE --head $HEAD --title "..." --body "$(cat <<'EOF'
|
||||
## Summary
|
||||
- Bullet points
|
||||
|
||||
## Test plan
|
||||
- [ ] Test item
|
||||
EOF
|
||||
)"
|
||||
```
|
||||
|
||||
## DO NOT use (local comparison)
|
||||
- ❌ `git diff main...HEAD`
|
||||
- ❌ `git diff --cached`
|
||||
- ❌ `git status`
|
||||
|
||||
## Error Handling
|
||||
|
||||
| Error | Action |
|
||||
|-------|--------|
|
||||
| Branch not on remote | `git push -u origin HEAD`, retry |
|
||||
| Empty diff | Warn: "No changes for PR" |
|
||||
| Push rejected | `git pull --rebase`, resolve, push |
|
||||
| No upstream | `git push -u origin HEAD` |
|
||||
Reference in New Issue
Block a user