Skip to content

fix(pull-request skill): reply and resolve all threads including non-actionable#3167

Open
PierreBrisorgueil wants to merge 4 commits intomasterfrom
fix/pull-request-skill-resolve-all-threads
Open

fix(pull-request skill): reply and resolve all threads including non-actionable#3167
PierreBrisorgueil wants to merge 4 commits intomasterfrom
fix/pull-request-skill-resolve-all-threads

Conversation

@PierreBrisorgueil
Copy link
Contributor

@PierreBrisorgueil PierreBrisorgueil commented Feb 24, 2026

Summary

  • What changed: Monitor loop now explicitly replies to and resolves all open threads — including informational/false-positive ones — before reaching the stop condition
  • Why: Non-actionable threads (bot false positives, LGTM, style notes) were silently skipped, leaving open threads on the PR and requiring manual intervention
  • Related issues: Closes fix(pull-request skill): reply and resolve all threads including non-actionable #3166

Scope

  • Module(s) impacted: .claude/skills/pull-request/SKILL.md
  • Cross-module impact: none
  • Risk level: low

Validation

  • npm run lint
  • npm test
  • Manual checks done (if applicable)

Guardrails check

  • No secrets or credentials introduced (.env*, secrets/**, keys, tokens)
  • No risky rename/move of core stack paths
  • Changes remain merge-friendly for downstream projects
  • Tests added or updated when behavior changed

Notes for reviewers

  • Security considerations: none — skill docs only
  • Mergeability considerations: low risk, single markdown file changed
  • Follow-up tasks: same fix shipped to Vue repo in a parallel PR

Summary by CodeRabbit

  • Documentation
    • Updated PR review workflow to an 8-step loop with explicit polling, CI retry behavior, and a consecutive-zero counter for graceful stopping.
    • Clarified handling for actionable vs non-actionable threads: reply-and-resolve required for non-actionable; actionable items trigger fixes and re-verification.
    • Stop condition now requires two consecutive polling passes showing zero open threads and a final branch-protection check before closing.

…actionable

Informational/false-positive threads must be explicitly replied to and
resolved before the stop condition is met — not silently skipped.

- Loop procedure: add step 6 for non-actionable open threads (reply, resolve)
- Stop condition: zero open threads (not just zero actionable)
@PierreBrisorgueil PierreBrisorgueil added the Chore release label Feb 24, 2026
@PierreBrisorgueil PierreBrisorgueil self-assigned this Feb 24, 2026
@coderabbitai
Copy link

coderabbitai bot commented Feb 24, 2026

📝 Walkthrough

Walkthrough

Updated the pull-request skill monitoring loop to require explicit replies and resolution for all open threads (including non-actionable informational/false-positive threads); introduced a consecutive_zero counter and backoff loop, added CI retry handling, and require two consecutive zero-thread polls before verifying branch protection and stopping.

Changes

Cohort / File(s) Summary
PR Skill Monitoring Loop
​.claude/skills/pull-request/SKILL.md
Expanded the monitor loop from ~6 to 8 explicit steps; introduced consecutive_zero tracking and backoff; changed stop condition from "zero actionable threads" to "zero open threads" (including replying/resolving non-actionable threads); added CI retry/clear-on-failure logic and post-stop branch protection check; clarified steps 6a–6c wording and examples.

Sequence Diagram(s)

sequenceDiagram
  actor Monitor as Monitor Loop
  participant CI as CI System
  participant PR as Pull Request (Threads)
  participant GH as Branch Protection Check

  Monitor->>CI: wait for CI results
  alt CI failed
    CI-->>Monitor: failure
    Monitor->>Monitor: clear consecutive_zero, retry (goto CI)
  else CI passed
    CI-->>Monitor: success
    Monitor->>PR: list open threads
    alt any open threads
      Monitor->>PR: handle actionable (fix/commit/resolve)
      Monitor->>PR: handle non-actionable (reply explaining, resolve)
      Monitor->>Monitor: reset consecutive_zero, loop back to CI/polling
    else zero open threads
      Monitor->>Monitor: increment consecutive_zero
      alt consecutive_zero threshold reached
        Monitor->>GH: check branch protection
        GH-->>Monitor: status
        Monitor->>PR: STOP ✓
      else
        Monitor->>Monitor: wait grace, continue loop
      end
    end
  end
Loading

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~10 minutes

Possibly related issues

Possibly related PRs

Suggested labels

Docs

Poem

🐰 I hop through PR threads, nimble and bright,

I answer, resolve, and tidy by night.
No comment ignored, no thread left to roam,
I close them with carrots and carry them home. 🥕

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Title check ✅ Passed The title accurately summarizes the main change: fixing the pull-request skill to reply to and resolve all threads, including non-actionable ones.
Description check ✅ Passed The description follows the template, includes all required sections (Summary, Scope, Validation, Guardrails, Notes), and provides clear context on what changed and why.
Linked Issues check ✅ Passed The code changes in SKILL.md fully address issue #3166 by implementing explicit thread reply/resolution for both actionable and non-actionable threads before stop condition.
Out of Scope Changes check ✅ Passed All changes are scoped to the pull-request skill documentation file and directly address the linked issue requirement; no out-of-scope modifications detected.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch fix/pull-request-skill-resolve-all-threads

Comment @coderabbitai help to get the list of available commands and usage tips.

@PierreBrisorgueil PierreBrisorgueil marked this pull request as ready for review February 24, 2026 12:08
Copilot AI review requested due to automatic review settings February 24, 2026 12:08
@codecov
Copy link

codecov bot commented Feb 24, 2026

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 89.86%. Comparing base (762c79a) to head (a8c4e7e).
⚠️ Report is 3 commits behind head on master.

Additional details and impacted files
@@           Coverage Diff           @@
##           master    #3167   +/-   ##
=======================================
  Coverage   89.86%   89.86%           
=======================================
  Files          52       52           
  Lines        1164     1164           
  Branches      234      234           
=======================================
  Hits         1046     1046           
  Misses        107      107           
  Partials       11       11           

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

Copy link

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Updates the pull-request skill documentation so the monitor loop explicitly handles (replies to and resolves) non-actionable review threads, preventing PRs from being left with unresolved conversations that require manual cleanup.

Changes:

  • Adds an explicit loop step to reply to + resolve non-actionable open threads before stopping.
  • Updates the “Informational” feedback definition to require replying and resolving (instead of skipping).

Copy link

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 1

🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Inline comments:
In @.claude/skills/pull-request/SKILL.md:
- Around line 130-131: Update the document to consistently use the "zero open
threads" stop-condition: change the top description (Line 3), section 6f (Line
241), and any other occurrences that currently read "zero actionable threads" or
"zero unresolved actionable threads" to read "zero open threads" so the loop
termination is unambiguous; ensure Step 7's wording and cross-references are
identical to the new phrase.

ℹ️ Review info

Configuration used: defaults

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 4d67a00 and 23cb7e1.

📒 Files selected for processing (1)
  • .claude/skills/pull-request/SKILL.md

Section 6f and the frontmatter description still referenced 'zero
unresolved actionable threads' — now updated to 'zero open threads'
to match the loop procedure step 7.
…PR-level comments

Approvals and bot reports (codecov, etc.) are PR-level comments, not
resolvable review threads. Clarify that 'resolve' only applies to
unresolved review threads, and that PR-level comments cannot be resolved
via the GitHub thread API.
…ing review checks

- Loop procedure: add consecutive_zero counter (X=2) — stop only after
  2 consecutive passes with zero unresolved threads, catching slow bots
- Step 4: re-check gh pr checks before reading threads — if any check
  still pending, loop back to grace period (generic, bot-agnostic)
- Stop condition (6f): updated to reflect double-pass requirement
Copy link

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🧹 Nitpick comments (1)
.claude/skills/pull-request/SKILL.md (1)

130-130: Use “pending status checks” instead of “pending review checks.”
gh pr checks refers to CI/status checks; the current label is slightly ambiguous in an operator runbook.

✏️ Suggested wording tweak
-  4. Re-check pending review checks     → gh pr checks <number> — if any still pending, GOTO 3
+  4. Re-check pending status checks     → gh pr checks <number> — if any still pending, GOTO 3
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In @.claude/skills/pull-request/SKILL.md at line 130, Update the step text that
currently reads "Re-check pending review checks → gh pr checks <number> — if any
still pending, GOTO 3" to use "pending status checks" instead of "pending review
checks" so it accurately refers to CI/status checks (i.e., change the phrase
"pending review checks" to "pending status checks" in the step string).
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Nitpick comments:
In @.claude/skills/pull-request/SKILL.md:
- Line 130: Update the step text that currently reads "Re-check pending review
checks → gh pr checks <number> — if any still pending, GOTO 3" to use "pending
status checks" instead of "pending review checks" so it accurately refers to
CI/status checks (i.e., change the phrase "pending review checks" to "pending
status checks" in the step string).

ℹ️ Review info

Configuration used: defaults

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between f1df941 and a8c4e7e.

📒 Files selected for processing (1)
  • .claude/skills/pull-request/SKILL.md

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Chore release

Projects

None yet

Development

Successfully merging this pull request may close these issues.

fix(pull-request skill): reply and resolve all threads including non-actionable

2 participants