From miranda
Reviews GitHub PR against linked issue requirements, checks code quality and repo patterns, posts structured approve/request-changes feedback via gh CLI.
npx claudepluginhub open-horizon-labs/mirandaThis skill uses the workspace's default tool permissions.
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.
Performs thorough pull request reviews with parallel agents for bugs, security issues, guideline compliance, and error handling. Provides confidence-scored feedback and batched GitHub comments.
Reviews pull requests through quality lenses like architecture and security, compiling analysis with inline comments. Use for thorough PR reviews with optional focus areas.
Share bugs, ideas, or general 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: