| name | gif-review |
| description | Handles GitHub PR review comments for the GIF project: evaluates each comment individually, applies accepted changes as atomic commits with lint validation, and posts replies with accept/reject decision, reasoning, and code snippets. Use when asked to handle PR comments, reflect review feedback, or respond to reviewer suggestions. Triggers on: 'PR ์ฝ๋ฉํธ ๋ฐ์', 'review ๋ฐ์', '์ฝ๋ฉํธ ์ฒ๋ฆฌ', 'PR ๋ฆฌ๋ทฐ ๋ฐ์', 'respond to review', 'handle PR feedback', '๋ฆฌ๋ทฐ ๋ฐ์ํด์ค', '์ฝ๋ฉํธ ๋ต๊ธ ๋ฌ์์ค', '์ฝ๋ฉํธ ๋ฐ์ํด์ค', 'review comment ๋ฐ์'. Does NOT trigger for creating PRs, committing code, or pushing. |
GIF PR Review Response Skill
Fetch Comments
gh repo view --json owner,name
gh pr list --head $(git branch --show-current) --json number,title
gh api repos/{owner}/{repo}/pulls/{pr_number}/comments
gh pr view {pr_number} --json comments,reviews,url
Evaluation Criteria
Accept the comment when it:
- Fixes incorrect behavior or logic
- Improves adherence to GIF project conventions:
- TanStack Query v5: array
queryKey, useQuery/useMutation only
- Axios: always use the configured Axios instance, never bare
axios.get()
- Server Components: default; add
'use client' only for state, events, or hooks
- Role-based access: Middleware and Layout guards per teacher role type
- Improves TypeScript type safety (missing types, incorrect type assertions)
- Adds missing validation at system boundaries (user input, external API responses)
Reject the comment when it:
- Contradicts the PR's intentional design decision
- Introduces abstraction not needed for current scope (YAGNI)
- Is a subjective style preference not in the project conventions
- Is out of scope for this PR
Reply Templates
Accepted
๋ฐ์ํ์ต๋๋ค.
{1-2 sentence reason for acceptance}
๋ฐ์ ์ปค๋ฐ: `{short_hash}` โ {commit_message}
```{language}
{relevant modified lines โ keep concise}
### Rejected
๋ฏธ๋ฐ์ํ์ต๋๋ค.
{1-2 sentence reason for rejection}
## Apply Workflow
1. Make the code change
2. `npm run lint` โ fix any lint errors in the same change
3. `git add {changed files}`
4. `git commit -m "fix: {brief description of the review fix}"`
5. `git log -1 --format="%h"` โ get short hash for reply
6. After ALL comments are processed: `git push origin {branch}` (push once)
7. Post reply for each comment:
```bash
gh api repos/{owner}/{repo}/pulls/comments/{comment_id}/replies \
-f body="{reply_text}"
Processing Order
Process comments chronologically. Evaluate and prepare all changes first, then commit, then push once, then post all replies.