This skill should be used when the user asks to "review PR and save results", "run PR review with documentation", "create PR review document", "review and document PR", "save PR review to docs", "document PR review", or mentions reviewing a PR with the intention of saving the review results. Executes comprehensive PR review using pr-review-toolkit with opus model and posts results as a PR comment.
Install
npx skillscat add marxbiotech/pr-review-toolkit/pr-review-and-document Install via the SkillsCat registry.
PR Review and Document
Execute comprehensive PR review using pr-review-toolkit and post structured results as a PR comment.
When to Use
Invoke this skill when:
- A comprehensive PR review needs to be documented on the PR
- A formal review record is required for a feature branch
- Review findings need to be visible directly on the PR for team reference
Workflow
Step 1: Get PR Number (Cache-Aware)
PR_NUMBER=$("${CLAUDE_PLUGIN_ROOT}/scripts/get-pr-number.sh")This uses the branch-to-PR-number cache (branch-map.json) with 1-hour TTL, falling back to GitHub API on cache miss.
If no PR exists for the current branch, inform the user and stop.
Step 2: Check Existing Review Comment (Cache-Aware)
EXISTING_CONTENT=$(${CLAUDE_PLUGIN_ROOT}/scripts/cache-read-comment.sh "$PR_NUMBER")This uses the local cache if available, falling back to GitHub API on cache miss.
If content is returned:
- Extract metadata from
<!-- pr-review-metadata ... -->block - Note the current
review_roundand issues status
Step 3: Execute PR Review
Launch the pr-review-toolkit with opus model using the Skill tool:
Skill: pr-review-toolkit:review-pr
Args: all
Model: opusRequired agents (always run):
- code-reviewer - General code quality and CLAUDE.md compliance
- code-simplifier - Code simplification opportunities
- silent-failure-hunter - Error handling and silent failure detection
- type-design-analyzer - Type design quality analysis
- pr-test-analyzer - Test coverage analysis
- comment-analyzer - Comment accuracy and maintainability
Important: All agents are mandatory for every review to ensure comprehensive coverage.
Step 4: Format Review Comment
Structure the review as a PR comment with hidden metadata and collapsible sections.
Character Limit: Keep total content under ~40K characters (GitHub limit is 65,536).
Metadata Block Format
The metadata block uses HTML comment syntax with a specific marker for identification:
- Opening:
<!-- pr-review-metadata(marker on same line as opening) - Content: JSON object with review state
- Closing:
-->on its own line after the JSON
Important: The find-review-comment.sh script searches for <!-- pr-review-metadata to identify review comments. Do not modify this marker format.
Comment Template
<!-- pr-review-metadata
{
"schema_version": "1.0",
"skill": "pr-review-and-document",
"review_round": 1,
"created_at": "YYYY-MM-DDTHH:MM:SSZ",
"updated_at": "YYYY-MM-DDTHH:MM:SSZ",
"branch": "branch-name",
"base": "main",
"issues": {
"critical": { "total": 0, "fixed": 0 },
"important": { "total": 0, "fixed": 0 },
"suggestions": { "total": 0, "fixed": 0 }
},
"agents_run": ["code-reviewer", "silent-failure-hunter", "type-design-analyzer", "pr-test-analyzer", "code-simplifier", "comment-analyzer"]
}
-->
## 🤖 PR Review
**Branch:** `branch-name` → `base-branch`
**Round:** N | **Updated:** YYYY-MM-DD
**Reviewer:** claude-opus-4-5 via pr-review-toolkit
---
### 📊 Summary
| Category | Total | Fixed | Remaining |
|----------|-------|-------|-----------|
| 🔴 Critical | X | X | X |
| 🟡 Important | X | X | X |
| 💡 Suggestions | X | X | X |
**Status:** [✅ Ready to merge | ⚠️ Needs attention | 🔴 Blocking issues]
---
### 🔴 Critical Issues
<details open>
<summary><b>1. [Status Emoji] Issue Title</b></summary>
**File:** `path/to/file.ts:line`
**Problem:** Description of the issue.
**Fix:** Resolution or suggested fix.
</details>
[Repeat for each critical issue]
---
### 🟡 Important Issues
<details>
<summary><b>1. [Status Emoji] Issue Title</b></summary>
**File:** `path/to/file.ts:line`
**Problem:** Description.
**Fix:** Resolution.
</details>
[Repeat for each important issue]
---
### 💡 Suggestions
<details>
<summary>View N suggestions (M addressed)</summary>
| # | Suggestion | Status |
|---|------------|--------|
| 1 | Description | ✅ / ⏭️ |
</details>
---
### ✨ Strengths
- Positive observation 1
- Positive observation 2
---
### 📋 Type Design Ratings
| Type | Encap. | Express. | Useful. | Enforce. | Overall |
|------|--------|----------|---------|----------|---------|
| TypeName | X/10 | X/10 | X/10 | X/10 | **X/10** |
---
### 🎯 Action Plan
**Before Merge:**
- [ ] Action item 1
- [x] Completed item
**After Merge (Backlog):**
- [ ] Future improvement
---
<sub>Generated by pr-review-and-document skill | Round N | [View edit history](click edited)</sub>Step 5: Write Review Comment (Cache-Aware)
Pipe the formatted content directly to cache-write-comment.sh via --stdin:
echo "$REVIEW_CONTENT" | ${CLAUDE_PLUGIN_ROOT}/scripts/cache-write-comment.sh --stdin "$PR_NUMBER"The script will:
- Update local cache (
.pr-review-cache/pr-{N}.json) - Sync to GitHub via
upsert-review-comment.sh --stdin(stdin pipe,不使用 temp file) - Return the comment URL
Step 6: Verify
Confirm the comment was posted successfully by checking the returned URL.
Status Indicators
Use consistent status indicators:
| Indicator | Meaning |
|---|---|
| ✅ | Fixed / Resolved |
| ⏭️ | Deferred / Skipped intentionally |
| ⚠️ | Needs attention |
| 🔴 | Blocking / Critical |
Multi-Round Reviews
When updating an existing review:
- Increment
review_roundin metadata - Update
updated_attimestamp - Update issue counts and statuses
- Keep the same comment (GitHub tracks edit history)
Previous review content is preserved in GitHub's "edited" dropdown, providing full audit trail.
Integration Notes
Using with pr-review-toolkit
This skill wraps the pr-review-toolkit:review-pr command and:
- Forces opus model for comprehensive analysis
- Always runs all 6 review agents (mandatory)
- Formats output as structured PR comment
- Posts directly to the PR
Character Limit Handling
If review content exceeds ~40K characters:
- Collapse more sections with
<details> - Summarize verbose descriptions
- Move detailed code examples to collapsed sections
No PR Available
If the current branch has no open PR:
- Inform the user
- Suggest creating a PR first:
gh pr create
Validation Checklist
Before posting the review comment:
- PR number correctly identified
- All 6 review agents executed
- Metadata JSON is valid
- Issue counts match content
- Status indicators are consistent
- Content is under 40K characters
- Comment posted/updated successfully