.codex/skills/review/SKILL.md
Address ALL PR issues (GitHub Actions, Greptile, SonarCloud, CI/CD)
npx skillsauth add harshanandak/forge .codex/skills/reviewInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Process ALL pull request issues including GitHub Actions failures, Greptile inline comments, SonarCloud analysis, and other CI/CD checks.
This command handles ALL issues that arise after creating a pull request.
/review <pr-number>
# Get full PR details including all checks
gh pr view <pr-number> --json number,url,isDraft,reviews,statusCheckRollup,comments
# Check individual status checks
gh pr checks <pr-number>
Review ALL status checks:
If any GitHub Actions workflows fail:
# View failed workflow logs
gh run view <run-id> --log-failed
# Identify failure cause:
# - Build failures
# - Test failures
# - Lint/type check failures
# - Deployment failures
# - Security scan failures
For each failure:
Common GitHub Actions Issues:
Greptile provides TWO types of feedback:
IMPORTANT: Use the systematic Greptile resolution process documented in .claude/rules/greptile-review-process.md. This process has been standardized to ensure:
Step 1: List all unresolved threads
bash .claude/scripts/greptile-resolve.sh list <pr-number> --unresolved
This shows:
Step 2: For EACH unresolved thread:
Understand the issue
Categorize the comment:
Fix the issue (if valid)
Reply and resolve (for ALL comments, even invalid ones)
# For valid issues (fixed):
bash .claude/scripts/greptile-resolve.sh reply-and-resolve <pr-number> <comment-id> <thread-id> \
"✅ Fixed: [description]
Changed: [what was changed]
Reason: [why this fixes the issue]
Commit: [commit-sha]"
# For invalid/conflicting issues:
bash .claude/scripts/greptile-resolve.sh reply-and-resolve <pr-number> <comment-id> <thread-id> \
"This approach is correct because:
- Reasoning: [from design doc]
- Evidence: [link to source]
- Alternative considered: [what Greptile suggested]
- Why rejected: [specific reason]
See: docs/plans/YYYY-MM-DD-<slug>-design.md (Decision #X)"
Step 3: Verify all resolved
bash .claude/scripts/greptile-resolve.sh stats <pr-number>
Should show: "✓ All Greptile threads resolved!"
See complete process: .claude/rules/greptile-review-process.md
# Greptile usually posts a summary comment on the PR
# Review the overall assessment and recommendations
The summary typically includes:
# Use sonarcloud skill to query PR-specific issues
/sonarcloud
What SonarCloud does: Static code analysis for quality, security, and maintainability
How it helps:
Query PR-specific data:
Prioritize issues:
Review any other automated checks:
Create a master list of all issues from:
Prioritize by:
For GitHub Actions failures (Critical):
# Fix the issue
# Commit with clear description
git add .
git commit -m "fix: resolve GitHub Actions failure in <workflow-name>
- Fixed: [specific issue]
- Root cause: [explanation]
- Solution: [what was changed]"
git push
# Actions will auto-rerun
For Greptile inline comments (Use Systematic Script):
# Use the standardized Greptile resolution script
# See .claude/rules/greptile-review-process.md for complete process
# For valid comments (fixed):
bash .claude/scripts/greptile-resolve.sh reply-and-resolve <pr-number> <comment-id> <thread-id> \
"✅ Fixed: [description]
Changed: [what was changed]
Reason: [why this fixes the issue]
Commit: [commit-sha]"
# For invalid/conflicting comments:
bash .claude/scripts/greptile-resolve.sh reply-and-resolve <pr-number> <comment-id> <thread-id> \
"This approach is correct because:
- Reasoning: [from design doc]
- Evidence: [link to source]
- Alternative considered: [what Greptile suggested]
- Why rejected: [specific reason]
See: docs/plans/YYYY-MM-DD-<slug>-design.md (Decision #X)"
# Verify all threads resolved:
bash .claude/scripts/greptile-resolve.sh stats <pr-number>
For Greptile summary recommendations:
# Add a PR comment addressing the summary
gh pr comment <pr-number> --body "## Greptile Summary Response
Addressed all key recommendations:
- [Recommendation 1]: ✓ Fixed in commit <sha>
- [Recommendation 2]: ✓ Explained (see inline response)
- [Recommendation 3]: ⏭️ Out of scope for this PR (created issue bd-xxx)
All critical and high-priority items resolved."
For SonarCloud issues (via sonarcloud skill):
# For critical/blocker issues: Fix immediately
# For security vulnerabilities: Fix immediately
# For code smells: Fix if valid, justify if not
# After fixes, SonarCloud will re-analyze on next push
For other CI/CD failures:
# Debug the specific tool's logs
# Fix the underlying issue
# Commit and push
# Verify the check passes
git add .
git commit -m "fix: address ALL PR review feedback
GitHub Actions:
- Fixed: [list of workflow failures resolved]
Greptile:
- Fixed: [list of valid inline comments addressed]
- Explained: [list of invalid comments with reasoning]
- Summary: [key recommendations addressed]
SonarCloud:
- Fixed: [security vulnerabilities and critical issues]
- Justified: [code smells that are intentional]
Other CI/CD:
- Fixed: [any other tool failures]
All review feedback resolved, all checks passing."
git push
# Check status immediately, then poll for at most 60 seconds
gh pr checks <pr-number>
# If checks are still pending after 60 seconds: STOP and tell the user to return
# when CI finishes or new review feedback appears.
#
# Ensure all completed status checks are green:
# ✓ GitHub Actions workflows
# ✓ Greptile review (no unresolved critical comments)
# ✓ SonarCloud quality gate
# ✓ Other CI/CD checks
bd update <id> --comment "PR review complete: all issues addressed, all checks passing"
bd sync
✓ GitHub Actions: 3 workflows
- Build: ✓ Passing (was failing, fixed missing dependency)
- Tests: ✓ Passing
- Deploy Preview: ✓ Passing
✓ Greptile Review:
Inline Comments: 8 total
- Valid: 5 → Fixed & replied inline
- Invalid: 2 → Explained with research evidence & replied inline
- Out of scope: 1 → Noted for future work & replied inline
- All marked resolved ✓
Summary:
- Key recommendations: 3/3 addressed
- Overall assessment: Ready for merge
- Posted summary response comment ✓
✓ SonarCloud (via sonarcloud skill):
Quality Gate: ✓ Passing
Issues: 3 total
- Security: 1 → Fixed (SQL injection risk)
- Code smells: 2 → 1 fixed, 1 justified
- Coverage: Maintained at 85%
✓ Vercel Preview: ✓ Deployed successfully
✓ Security Scan: ✓ No vulnerabilities
✓ All Issues Addressed:
- Critical: 2/2 fixed (GitHub Actions build, SonarCloud security)
- High: 5/5 fixed (Greptile valid comments)
- Medium: 3/3 addressed (1 fixed, 2 explained)
- Low: 0 (none found)
✓ Fixes committed: 3c4d5e6
✓ All checks passing: ✓
✓ Beads updated: Ready for merge
Next: /premerge <pr-number>
<HARD-GATE: /review exit>
Do NOT declare /review complete until:
1. bash .claude/scripts/greptile-resolve.sh stats <pr-number> shows "All Greptile threads resolved"
2. ALL human reviewer comments are either resolved or have a reply with explanation
3. gh pr checks <pr-number> shows all checks passing
4. Context check: Run `bash scripts/beads-context.sh validate <id>` and address any warnings
5. Stage transition: Run the following → exit 0 confirmed:
bash scripts/beads-context.sh stage-transition <id> review premerge \
--summary "<all feedback addressed summary>" \
--decisions "<comment resolutions — valid fixes and justified rejections>" \
--artifacts "<fixed files, commit SHAs>" \
--next "<doc update needs for premerge>"
</HARD-GATE>
Utility: /status → Understand current context before starting
Stage 1: /plan → Design intent → research → branch + worktree + task list
Stage 2: /dev → Implement each task with subagent-driven TDD
Stage 3: /validate → Type check, lint, tests, security — all fresh output
Stage 4: /ship → Push + create PR
Stage 5: /review → Address GitHub Actions, Greptile, SonarCloud (you are here)
Stage 6: /premerge → Update docs, hand off PR to user
Stage 7: /verify → Post-merge CI check on main
development
Pull issues, metrics, quality gates, and analysis data from SonarCloud. ALWAYS use this skill when the user mentions SonarCloud, asks about code quality metrics, wants to check PR quality gates, or needs to review security vulnerabilities and technical debt from static analysis. Also trigger during /review workflow when SonarCloud issues need addressing. Trigger on phrases like "SonarCloud", "quality gate", "code quality metrics", "technical debt", "coverage report", "static analysis issues", "security vulnerabilities from scan".
tools
Produces comprehensive research reports that go far beyond what built-in web search can achieve. Sends research tasks to Parallel AI's pro/ultra processors which spend 3-25 minutes autonomously crawling, reading, and synthesizing dozens of sources — returning structured reports with citations. Built-in WebSearch can only run a few queries; this skill runs an entire research pipeline externally. No binary install — requires PARALLEL_API_KEY in .env.local. ALWAYS use this skill instead of doing multiple WebSearch calls when the user needs a comprehensive report, market analysis, competitive landscape, industry deep-dive, strategic recommendations, or multi-source synthesis. This is the RIGHT tool for any research task that would require more than 3-4 web searches to answer properly. Also trigger during /plan Phase 2 research and /research workflows.
testing
Test content
testing
Test content