-
If a previous run committed or pushed only a subset of fixes without full finding disposition closure, the resumed run must treat that as an incomplete prior execution, rebuild the inventory from the latest head, and continue until the remaining findings are all classified.
-
If the current branch has no matching public PR, report that clearly instead of guessing.
-
If GitHub access fails because of local proxy configuration, rerun the fetch with proxy variables removed.
-
If live check-runs are visible but job logs return 403, keep the failed step, annotations, and repro command as the root-cause surface; warn, but do not treat the whole failed-check extraction as broken.
-
Treat CodeRabbit pre-merge Warning and Inconclusive rows as mandatory inventory. Verify docstring coverage,
title checks, and similar summary signals against repository policy and the current head; do not dismiss them only
because CodeRabbit labels warnings optional or because no inline review thread exists. A Warning may be accepted
only with an explicit comment-governance reason; an actionable Inconclusive must be fixed, delegated, blocked with
a concrete next step, or proven stale/noise before closeout.
-
Prefer GitHub API results over PR HTML. The PR HTML page is a fallback/debugging source, not the primary source of truth.
-
If the summary block and the latest head review threads disagree, trust the latest unresolved head-review threads and treat older summary findings as stale until re-verified locally.
-
If the latest review body contains folded sections, those sections are still in scope even when open_threads looks short;
do not treat missing urgency labels as permission to skip them.
-
If a folded-section parser reports a mismatch such as Nitpick comments: 13 declared, 11 parsed, treat that as an incomplete inventory state; continue with raw review-body inspection, --section narrowing, or another deterministic extraction path until the missing findings are enumerated or an exact blocker is recorded in closeout.
-
Do not assume every AI reviewer behaves like CodeRabbit. greptile-apps[bot] and gemini-code-assist[bot] findings may exist only as latest-head review threads.
-
Do not assume GitHub Advanced Security behaves like CodeRabbit. github-advanced-security[bot] findings may exist as
review threads, while related code-scanning or CodeQL problems may exist only as check-runs or annotations.
-
Treat GitHub Actions comments with Success with warnings as actionable when they include concrete linter diagnostics such as MegaLinter detailed issues.
-
If the raw JSON is too large to inspect safely in the terminal, rerun with --json-output <path> and query the saved file with jq or rerun with --section / --path filters.
-
If a verified finding still matters but needs a larger repair slice, do not downgrade it to optional; route it through
$graft-multi-agent-batch, $graft-multi-agent-loop, or an explicit blocked state with a next safe startup prompt.
-
The only acceptable reasons to leave a verified finding unfixed in the final report are stale, noise, or a
clearly stated execution blocker with a next safe step.
-
“Only high-priority findings were handled”, “open threads were handled”, “nitpicks were skipped”, or “parser only found most nitpicks” are invalid final
states for this skill.
-
When a finding is left as noise or AI misjudgment, the closeout must name the exact suggestion and give a concrete
non-adoption reason that the user can reuse in the PR reply.
-
When a finding was fixed but the AI thread did not auto-close, first verify that the remote branch ref resolves exactly
to HEAD, then reply once with the fixing commit SHA and location. Leave the thread alone until a later
graft-pr-review run shows either resolution or a fresh AI follow-up.
-
When a finding still needs human judgment on whether to fix or reject it, do not auto-reply; surface the reason to the
user and wait for an explicit decision before any PR-thread response.
-
If the agent has already replied to an AI finding and a later run still sees the thread open with a fresh AI counterargument, mark that thread contested and leave the final decision to a human reviewer instead of auto-closing it.