Help us improve
Share bugs, ideas, or general feedback.
From roborev
Fixes all open review findings from roborev in one pass. Invoked via /roborev-fix or user request to fix open reviews.
npx claudepluginhub kenn-io/roborev --plugin roborevHow this skill is triggered — by the user, by Claude, or both
Slash command
/roborev:roborev-fixThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
Fix all open review findings in one pass.
Records a comment on a roborev code review and closes it. Useful for adding final remarks or status updates before closing a review.
Mandates invoking relevant skills via tools before any response in coding sessions. Covers access, priorities, and adaptations for Claude Code, Copilot CLI, Gemini CLI.
Share bugs, ideas, or general feedback.
Fix all open review findings in one pass.
/roborev-fix [job_id...]
Do NOT invoke this skill just because the user pasted existing review findings or review text into the conversation.
If the prompt already contains the findings to fix, treat that as direct fix
input and work on the code normally. The presence of verdicts, severities,
file paths, suggested fixes, or copied review summaries is not by itself a
request to run /roborev-fix.
Use this skill when the user explicitly invokes /roborev-fix, asks to fix
open/unaddressed reviews (in any phrasing), provides job IDs that need
fetching, or gives a mix of job IDs and pasted findings.
You must execute bash commands to complete this task. Skip steps already satisfied by conversation context. Defer to CLAUDE.md when it conflicts.
When the user invokes /roborev-fix [job_id...]:
Check the conversation first. If the user has already pasted review
findings (verdicts, severities, file paths, suggested fixes), use those
directly. Do not re-fetch reviews that are already present in the
conversation. When reusing pasted findings, collect any job IDs mentioned
alongside them — step 5 needs these to comment on and close the reviews.
If job IDs are missing from the pasted output, discover them via
roborev fix --open --list and match each pasted finding to the correct
job by commit SHA or reviewed file paths. If a finding cannot be
confidently matched to a specific job, ask the user for the job ID
rather than closing the wrong review.
If job IDs are provided and findings are NOT already in the conversation, fetch them:
roborev show --job <job_id> --json
If no job IDs are provided and no findings are in the conversation, discover open reviews:
roborev fix --open --list
This prints one line per open job with its ID, commit SHA, agent, and summary. Collect the job IDs from the output.
If the command fails, report the error to the user. Common causes: the daemon
is not running, or the repo is not initialized (suggest roborev init).
If no open reviews are found, inform the user there is nothing to fix.
Skip this step if findings are already available from step 1.
For each job ID, fetch the full review as JSON:
roborev show --job <job_id> --json
If the command fails for a job ID, report the error and continue with the remaining jobs.
The JSON output has this structure:
job_id: the job IDoutput: the review text containing findingsjob.verdict: "P" for pass, "F" for fail (may be empty if the review errored)job.git_ref: the reviewed git ref (SHA, range, or synthetic ref)closed: whether this review has already been closedcomments: array of comments left on this review (may be empty or absent)
responder (who left it) and response (the text)roborev-fix or roborev-refine are automated tool recordsSkip any reviews where job.verdict is "P" (passing reviews have no findings to fix).
Skip any reviews where job.verdict is empty or missing (the review may have errored and is not actionable).
Skip any reviews where closed is true, unless the user explicitly provided that job ID (in which case, warn them and ask to confirm).
If all reviews are skipped, inform the user there is nothing to fix.
If the review has comments, respect any developer feedback (false positives, preferred approaches).
The actionable closure set is exactly the non-skipped failing job IDs collected in steps 1-2. Keep this original job list separate from any jobs created later by commit hooks or follow-up reviews.
If a finding's context is unclear from the review output alone and job.git_ref is not "dirty", run git show <git_ref> to see the original diff. Only do this when needed — the review output usually contains enough detail (file paths, line numbers, descriptions) to fix findings directly.
Parse findings from the output field of all failing reviews. Collect every finding with its severity, file path, and line number. Then:
Run the project's test suite to verify all fixes work:
go test ./...
Or whatever test command the project uses. If tests fail, fix the regressions before proceeding.
Closure ordering is mandatory. After fixes are verified, comment on and close
exactly the original actionable job IDs from steps 1-2 before waiting on,
fetching, or responding to any new review created by commit hooks. Do not treat
a post-fix auto-review as a prerequisite for closing the original addressed
reviews; handle that new review in a separate /roborev-fix cycle.
If repository policy requires committing before close comments can reference a SHA, perform step 6 first, then immediately return here and close the original job set. Otherwise, close before committing.
For each original job that was fixed, record a summary comment and then close
it. Run these as separate commands, but only run roborev close after
confirming the comment succeeded:
roborev comment --commenter roborev-fix --job <job_id> "<summary of changes>"
# Only if the comment above succeeded:
roborev close <job_id>
The comment should reference each finding by severity and file, state what was fixed, and note any findings intentionally skipped. Keep it concise (1-3 sentences). Escape quotes and special characters in the bash command.
Follow the project's commit conventions (see CLAUDE.md). If the project instructs you to always commit, do so without asking.
Before the final response, explicitly audit the original actionable job IDs and
verify each reports closed=true:
roborev show --job <job_id> --json
Do not rely on roborev list --open for this audit; unrelated open reviews can
obscure whether the original closure set was handled.
Pasted findings in the prompt:
User: "Roborev found HIGH in foo.go:42 and MEDIUM in bar.go:10 ..."
Agent:
/roborev-fixAuto-discovery:
User: /roborev-fix
Agent:
roborev fix --open --list and finds 2 open reviews: job 1019 and job 1021roborev show --job 1019 --json and roborev show --job 1021 --jsongit show <git_ref> for one review where the finding lacked enough contextgo test ./... to verifyroborev comment --commenter roborev-fix --job 1019 "Fixed null check and added error handling"roborev close 1019roborev comment --commenter roborev-fix --job 1021 "Fixed missing validation"roborev close 1021roborev show --job <job_id> --json and verifies closed=trueExplicit job IDs:
User: /roborev-fix 1019 1021
Agent:
go test ./... to verifyroborev comment --commenter roborev-fix --job 1019 "Fixed null check in foo.go and error handling in bar.go"roborev close 1019roborev show --job 1019 --json and verifies closed=true/roborev-respond — comment on a review and close it without fixing code