
Description
Inline code review workflow. Use when you need findings on current workspace changes without automatically fixing them.
SKILL.md
Run:
git diff --name-only $(git merge-base HEAD origin/HEAD 2>/dev/null || echo "HEAD~1") HEAD 2>/dev/null || git diff --name-only HEAD~1 HEAD 2>/dev/null || git status --porcelain | awk '{print $2}'
If no changes are found, inform the user there is nothing to review and conclude with a no-op result.
Build a thorough understanding of:
- What was changed and why (infer intent from the diff and surrounding code)
- How the changes interact with the rest of the codebase
- Whether the changes are complete and consistent
Also get the full diff for reference:
git diff $(git merge-base HEAD origin/HEAD 2>/dev/null || echo "HEAD~1") HEAD
- Bug Determination Criteria - Flag issues that:
- Meaningfully impact accuracy, performance, security, or maintainability
- Are discrete and actionable (not general codebase issues)
- Were introduced in these changes (not pre-existing bugs)
- Are provably broken (not speculation about potential issues)
- The author would likely fix if made aware
- Can be traced to specific affected code parts
- Contract Consistency:
- Verify all referenced properties exist in their types/interfaces/classes
- Check for invalid, missing, or renamed properties
- Confirm changes don't break inheritance, composition, or overrides
- Look for contract violations across related entities
- Data Model Validation:
- Check queries filter soft-deleted records appropriately
- Verify active/deactivation flags are checked
- Ensure database constraints aren't violated
- Confirm field types match schema definitions
- Reference and Usage Review:
- Trace references to changed functions, methods, or classes
- Ensure usages remain compatible with changes
- Watch for subtle breaking changes
- Security review:
- Check for exposed sensitive data
- Verify input validation
- Look for injection vulnerabilities
- Code quality checks:
- Identify code smells (long methods, complex logic, tight coupling)
- Find duplicated code that should be refactored
- Look for incomplete implementations or TODO comments
- Performance considerations:
- Look for inefficient algorithms
- Identify potential memory leaks
- Concurrency and atomicity issues:
- Check for race conditions in shared state access
- Verify atomic operations where required
- Look for missing transaction boundaries
Review Principles:
- TRUST THE TYPE SYSTEM: Avoid reporting type errors that the compiler would catch
- One finding per distinct issue
- Focus on issues the author would want to fix
- Avoid trivial style nits unless they obscure meaning
- Verify findings against the actual codebase context
Use this exact format:
| # | Severity | File | Line(s) | Issue |
|---|---|---|---|---|
| 1 | 🔴 High | path/to/file.ts | 42-45 | Brief description of the bug or problem |
| 2 | 🟡 Medium | path/to/other.ts | 18 | Brief description |
| 3 | 🟢 Low | path/to/file.ts | 100 | Brief description |
Severity levels:
- 🔴 High: Bugs, security issues, data loss risks, broken functionality
- 🟡 Medium: Logic issues, missing edge cases, performance problems
- 🟢 Low: Code quality, maintainability, minor improvements
Keep descriptions concise (1-2 sentences max). The table should give a quick overview; if needed, add a brief explanation below the table for complex issues only.
If no issues are found, say so clearly and briefly note what you reviewed.
After presenting the table, you are done.
<decision_guidance>
judge subagent or any other nested review-only subagent. Perform the review yourself and report findings directly.active_appendix_path, treat that appendix selection as authoritative and skip independent path reclassification.active_appendix_path before following any appendix-specific workflow instructions in this file.active_appendix_path is already supplied by the caller, use that exact appendix and skip independent path selection.local-workspace-review only when the request is to review the current workspace diff and does not include a PR number, PR URL, repository plus PR identifier, existing review-thread metadata, a top-level review comment to update, or other explicit pull-request review context.last_review_sha, an existing Roomote summary comment, or other sync-specific review metadata.*-with-approval path only when the active review profile explicitly allows approval; otherwise use the comment-only variant for the same initial or sync review mode.review-merge-resolution only when the request is to review a merge-conflict resolution diff rather than a workspace diff or pull request.
<base_path name="local-workspace-review" id="base-path-local-workspace-review">
The existing workflow above remains the local-workspace-review path: the 4-step git-diff-based review that reads changed files in context and presents findings in a markdown table. Use it only when no explicit pull-request or merge-resolution context selects one of the appendix paths below.
</base_path>
linked_implementation_task_id was supplied from the reusable PR owner task, the workflow sent an explicit final review result there by calling the Roomote MCP tool mcp__roomote__manage_tasks with action: "send_message" for every terminal outcome; any handoff failure stayed non-blocking.
<best_practices>
<decision_guidance>
TOP_LEVEL_COMMENT_ID when it is present and valid.roomote-review-summary comment, then a reusable legacy summary comment, and create a new canonical comment only when no safe reusable artifact exists.TOP_LEVEL_COMMENT_ID is provided and can be patched safely.
<error_handling>
linked_implementation_task_id was supplied from the reusable PR owner task, the workflow sent an explicit final review result there by calling the Roomote MCP tool mcp__roomote__manage_tasks with action: "send_message" for every terminal outcome; any handoff failure stayed non-blocking.
<best_practices>
<decision_guidance>
TOP_LEVEL_COMMENT_ID when it is present and valid.roomote-review-summary comment, then a reusable legacy summary comment, and create a new canonical comment only when no safe reusable artifact exists.TOP_LEVEL_COMMENT_ID is provided and can be patched safely.
<error_handling>
linked_implementation_task_handoff_enabled was true and linked_implementation_task_id was supplied from the reusable PR owner task, the workflow sent an explicit final sync-review result there by calling the Roomote MCP tool mcp__roomote__manage_tasks with action: "send_message" for every terminal outcome; any handoff failure stayed non-blocking.<best_practices>
commit_id is acceptable.
<decision_guidance>
legacy_full_rereview_path only when a reusable legacy summary exists but no reliable anchor SHA can be recovered.last_review_sha is supplied explicitly.roomote-review-summary SHA marker.commit_id.
<error_handling>
commit_id.legacy_full_rereview_path. Ask for last_review_sha only when no reliable anchor and no reusable legacy summary comment exist.
linked_implementation_task_handoff_enabled was true and linked_implementation_task_id was supplied from the reusable PR owner task, the workflow sent an explicit final sync-review result there by calling the Roomote MCP tool mcp__roomote__manage_tasks with action: "send_message" for every terminal outcome; any handoff failure stayed non-blocking.<best_practices>
commit_id is acceptable.
<decision_guidance>
legacy_full_rereview_path only when a reusable legacy summary exists but no reliable anchor SHA can be recovered.last_review_sha is supplied explicitly.roomote-review-summary SHA marker.commit_id.
<error_handling>
commit_id.legacy_full_rereview_path. Ask for last_review_sha only when no reliable anchor and no reusable legacy summary comment exist.
- List all files that had conflicts (from the conflict resolution diff)
- For each conflicted file, examine:
- The original conflict hunks (both sides)
- The proposed resolution
- Whether the resolution keeps intent from both branches
- Collect any command outputs from checks (lint, typecheck, test, build)
Create a structured summary of findings.
Hard-fail checks (HIGH severity):
- Are there any remaining conflict markers (
<<<<<<<,=======,>>>>>>>) in the resolved files? - Did checks (tests/build/typecheck) introduce new failures?
- Are there security-sensitive changes (auth, permissions, encryption) resolved without clear deterministic rationale?
- Are there database migration or schema conflicts resolved ambiguously?
Judgment checks (MEDIUM severity):
- Was the same logic block modified by both sides, requiring partial drop or selection?
- Were auth, permissions, validation, or business-rule regions involved in the conflict?
- Were migration, data-shape, or public API contract regions involved?
- Were there mutually incompatible behavior choices that required picking one side?
Informational checks (LOW severity):
- Are there formatting or style inconsistencies in the resolved code?
- Were imports reordered in a non-standard way?
If any HIGH severity findings exist:
- Verdict: BLOCK
- List all high-severity findings with file paths and line references
- Explain why tool-only resolution is unsafe
- The commit MUST NOT proceed
If only MEDIUM and/or LOW severity findings exist:
- Verdict: PASS_WITH_WARNINGS
- List all medium-severity findings as "controversial decisions" that will be highlighted in the PR comment
- List all low-severity findings as informational notes
- The commit may proceed
If no findings:
- Verdict: PASS
- The commit may proceed with a clean resolution summary
Format your output as:
VERDICT: [BLOCK | PASS_WITH_WARNINGS | PASS]
HIGH_SEVERITY_FINDINGS:
- [finding 1]
- [finding 2]
CONTROVERSIAL_DECISIONS:
- [decision 1]
- [decision 2]
WARNINGS:
- [warning 1]
- [warning 2]
RESOLVED_FILES:
- [file 1]
- [file 2]
More skills from the Roomote repository
View all 32 skillsaddress-pr-feedback
address unresolved GitHub PR feedback
Jul 19Code ReviewGitHubPull Requestsagent-browser
automate browser interactions for agents
Jul 16Browser AutomationCLITestingcapture-visual-proof
capture visual proof of browser tasks
Jul 16AutomationBrowser AutomationScreenshotsci-failure-triage
triage failed CI workflows
Jul 23CI/CDDebuggingGitHub Actionscode-quality-auditor
audit code quality in merged pull requests
Jul 26Code AnalysisCode ReviewQAcodeql-triage
triage and remediate CodeQL security alerts
Jul 19Code AnalysisCodeQLDebuggingGitHub +2
More from Roo Code
View publishercreate-draft-pr
create draft pull requests
Roomote
Jul 16AutomationGitHubPull Requestscreate-pr
create pull requests for pending changes
Roomote
Jul 16GitHubPull Requestsdebug-reported-bug
reproduce and debug reported bugs
Roomote
Jul 16DebuggingGitTestingdependabot-triage
triage GitHub Dependabot alerts
Roomote
Jul 26AutomationGitHubSecurityTriageenvironment-setup
configure local development environments
Roomote
Jul 19ConfigurationLocal Developmentexplain-repo-code
explain repository code and architecture
Roomote
Jul 16Code AnalysisDocumentation