Gerrit Fix & Review Workflow
Use this skill when the user asks to "fix the errors on Gerrit issue X" or "address reviewer comments on CL X" or similar requests targeting a specific Gerrit Change List (CL).
Core Principles
- Orchestration: Do not do the work yourself. Break down the task and delegate to subagents.
- Parallelism: Always identify at least two parallel tracks (e.g., fixing known errors vs. inspecting for other issues, or addressing different comments).
- Isolation: Always operate in a dedicated worktree for the CL.
- Reproduction: Always attempt to reproduce the failure locally before applying a fix, to ensure the fix is verified.
Protocol
1. Information Gathering
- CQ Results: Use
gerrit_cq(fromv8-utils) to check Commit Queue status. - Presubmit Errors: Use
gerrit_get_presubmit_errors(frompndMcp) to fetch detailed presubmit results. - Comments: Use
gerrit_commentsorgerrit_list_change_commentsto read reviewer feedback or robot comments. This is critical when the goal is to address reviewer comments.
2. Workspace Setup
- Worktree: Create a new isolated worktree using
agents/scripts/create_worktree.sh <cl_id>for the CL to avoid polluting the main workspace. - Checkout: Patch the CL in the new worktree (e.g.,
git cl patch X). - Rebase: Rebase the branch to
origin/mainto ensure it builds against the latest code.
3. Reproduction & Triage
- Reproduction: Instruct the subagent to reproduce the failure locally (e.g., run the failing test or compile target) to confirm the issue and provide a baseline for verification.
- Triage & Delegation: Break down the identified errors or comments and
delegate them to subagents.
- Track A (Fix/Address): Delegate the fixing of reported errors or
addressing specific reviewer comments to a
selfsubagent with full tool access. - Track B (Scan/Verify): Delegate a scan of other modified files or running local tests to ensure no other issues were introduced.
- Track A (Fix/Address): Delegate the fixing of reported errors or
addressing specific reviewer comments to a
4. Verification
- Local Build/Test: Instruct the subagent to verify that the fix compiles locally and the reproduced failure is now resolved.
- Upload: Once verified locally, upload a new patchset using
agents/scripts/upload_cl.sh cur check "<what you changed>"to Gerrit to run the remote checks or ask for re-review.
Example: Fixing Errors
If the user says "fix errors on CL 12345":
- Call
gerrit_cqfor CL 12345. - Identify that
v8_linux64_relfailed with failing tests. - Create worktree
worktrees/cl-12345and checkout CL. - Spawn Subagent A to reproduce the failing tests locally.
- Spawn Subagent A to fix the failing tests.
- Spawn Subagent B to check other modified files for potential issues.
- Once Subagent A reports success and verification (tests pass), report to user and ask if you should upload.
Example: Addressing Comments
If the user says "address comments on CL 12345":
- Call
gerrit_commentsfor CL 12345. - Identify a comment requesting a refactor in
src/objects/lookup.cc. - Create worktree
worktrees/cl-12345and checkout CL. - Spawn Subagent A to perform the refactor as requested.
- Spawn Subagent B to verify it compiles and run relevant unit tests.
- Once Subagent A reports success, report to user and ask if you should upload.