| name | workflow_gerrit_fix |
| description | Workflow for automatically fixing errors or addressing comments on a Gerrit CL requested by the user. |
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 (from v8-utils) to check Commit Queue
status.
- Presubmit Errors: Use
gerrit_get_presubmit_errors (from pndMcp) to
fetch detailed presubmit results.
- Comments: Use
gerrit_comments or gerrit_list_change_comments to 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/main to 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
self subagent 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.
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_cq for CL 12345.
- Identify that
v8_linux64_rel failed with failing tests.
- Create worktree
worktrees/cl-12345 and 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_comments for CL 12345.
- Identify a comment requesting a refactor in
src/objects/lookup.cc.
- Create worktree
worktrees/cl-12345 and 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.