بنقرة واحدة
oh-review
Review a PR against its linked issue requirements, post structured feedback
التثبيت باستخدام Codex أو Claude انسخ هذا Prompt والصقه في Codex أو Claude أو مساعد آخر ليراجع صفحة Skill ويثبّتها لك.
القائمة
Review a PR against its linked issue requirements, post structured feedback
التثبيت باستخدام Codex أو Claude انسخ هذا Prompt والصقه في Codex أو Claude أو مساعد آخر ليراجع صفحة Skill ويثبّتها لك.
استنادا إلى تصنيف SOC المهني
Diagnose and fix CI failures on a PR, push fixes
Resolve merge conflicts on a PR by merging base into head
Resolve multi-dependency fan-in by merging dependency PRs into a common base and updating issue dependencies
Work a GitHub issue to completion in a branch, including review follow-ups, then PR for human review
Create Jira subtasks from task descriptions or session context. Investigates when needed, skips when context exists.
Review and merge open PRs for GitHub issues as a cohesive batch
| name | oh-review |
| description | Review a PR against its linked issue requirements, post structured feedback |
Review a PR, check it against the linked issue's requirements, and post structured feedback as a GitHub review. Read-only except for the review comment itself — no code changes, no commits.
/oh-review <pr-number>
<pr-number> - the pull request number to reviewgh must be authenticatedRead dive context (if available) for project background:
cat .wm/dive_context.md 2>/dev/null || echo "No dive context"
Fetch PR metadata:
gh pr view <pr-number> --json title,body,headRefName,baseRefName,additions,deletions,changedFiles,state,mergeable
Abort if PR is not open.
Read the linked issue (CRITICAL) — the issue is the source of truth for requirements:
gh issue view <N> --json title,bodyFetch the PR diff:
gh pr diff <pr-number>
Review the diff against:
Write a structured review to a temp file:
## Review: PR #<number> — <title>
### Requirements Check (from #<issue>)
- [ ] <acceptance criterion 1> — met/not met/partially met
- [ ] <acceptance criterion 2> — met/not met/partially met
### Blockers (P0-P1)
- <issue with explanation and suggested fix>
### Improvements (P2-P3)
- <issue with explanation>
### Clean
- <what looks good>
### Follow-up Work
- <concrete items that should be separate issues/PRs>
Post the review on the PR:
gh pr review <pr-number> --request-changes --body-file /tmp/review-<pr-number>.md
gh pr review <pr-number> --approve --body-file /tmp/review-<pr-number>.md
Signal completion:
signal_completion(status: "blocked", blocker: "PR has N blockers — see review comment")signal_completion(status: "success", message: "Approved — N improvements noted")signal_completion(status: "error", error: "<reason>")CRITICAL: You MUST signal completion when done. Call the signal_completion tool as your FINAL action.
Signal based on outcome:
| Outcome | Call |
|---|---|
| Review posted, PR approved | signal_completion(status: "success", message: "Approved — N improvements noted") |
| Review posted, changes requested | signal_completion(status: "blocked", blocker: "PR has N blockers — see review comment") |
| Unrecoverable failure | signal_completion(status: "error", error: "<reason>") |
If you do not signal, the orchestrator will not know you are done and the session becomes orphaned.
Fallback: If the signal_completion tool is not available, output your completion status as your final message in the format: COMPLETION: status=<status> message=<msg> or COMPLETION: status=<status> error=<reason>.
$ /oh-review 99
Fetching PR #99...
PR: "Fix validation bug in auth module"
State: open, +147 -23, 4 files changed
Parsing linked issue...
Found: Closes #42
Fetching issue #42...
Issue: "Fix validation bug in auth module"
Acceptance criteria:
1. Empty string validation returns error
2. Tests cover edge cases
3. No changes to public API
Fetching PR diff...
Reviewing diff against requirements...
Posting review...
gh pr review 99 --approve --body-file /tmp/review.md
Review posted:
Requirements: 3/3 met
Blockers: 0
Improvements: 2
Follow-ups: 1
signal_completion(status: "success", message: "Approved — 2 improvements noted")
Done.
ARGUMENTS: