Skip to main content

workflow-gerrit-fix

Workflow for automatically fixing errors or addressing comments on a Gerrit CL requested by the user.

Informations de source

Dépôt
nodejs/node
Dernière activité de la source
4 octobre 2026 à 21:04
Langue détectée de SKILL.md
anglais
Étoiles
122 301
Forks
39 450

Options d'installation

Le prompt qui vérifie d'abord la source est sélectionné par défaut. Vous pouvez passer à une commande directe ou télécharger une copie locale.

Vérifiez les fichiers source

Lisez SKILL.md et les fichiers associés affichés par SkillsMP avant de décider de l'installer.

Affichage de SKILL.md

SKILL.md
Instructions source · Aperçu en lecture seule
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 1. **Orchestration**: Do not do the work yourself. Break down the task and delegate to subagents. 2. **Parallelism**: Always identify at least two parallel tracks (e.g., fixing known errors vs. inspecting for other issues, or addressing different comments). 3. **Isolation**: Always operate in a dedicated worktree for the CL. 4. **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": 1. Call `gerrit_cq` for CL 12345. 2. Identify that `v8_linux64_rel` failed with failing tests. 3. Create worktree `worktrees/cl-12345` and checkout CL. 4. **Spawn Subagent A to reproduce the failing tests locally.** 5. Spawn Subagent A to fix the failing tests. 6. Spawn Subagent B to check other modified files for potential issues. 7. 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": 1. Call `gerrit_comments` for CL 12345. 2. Identify a comment requesting a refactor in `src/objects/lookup.cc`. 3. Create worktree `worktrees/cl-12345` and checkout CL. 4. Spawn Subagent A to perform the refactor as requested. 5. Spawn Subagent B to verify it compiles and run relevant unit tests. 6. Once Subagent A reports success, report to user and ask if you should upload.
Voir sur GitHub