Skip to content

[copilot-opt] Reduce reviewer workflow fan-out on Copilot PRs to cut 96% action_required rate #27322

@github-actions

Description

@github-actions

Problem

Every Copilot-authored PR triggers 7–11 review workflows simultaneously (Grumpy Code Reviewer, PR Nitpick Reviewer, Q, Scout, /cloclo, Security Review Agent, Archie, Smoke CI, Doc Build, CGO, Content Moderation, AI Moderator). This fan-out results in 48 out of 50 sessions (96%) ending with conclusion: action_required — the workflows themselves trigger further action requests rather than resolving cleanly. Each PR generates 20+ redundant workflow runs while providing overlapping signals.

Evidence

  • Analysis window: 2026-04-06 to 2026-04-20 (14 days)
  • Sessions analyzed: 50 (all from 2026-04-20 based on available data)
  • Key metrics and examples:
    • copilot/add-latex-ecosystem-group triggered 23 workflow runs in a single batch
    • copilot/fix-gh-aw-upgrade-windows-issue triggered 22 workflow runs in a single batch
    • 48/50 sessions (96%) concluded as action_required — only AI Moderator and Running Copilot cloud agent succeeded
    • 7 distinct reviewer agents (Grumpy Code Reviewer, PR Nitpick Reviewer, Q, Scout, /cloclo, Security Review Agent, Archie) fire in parallel per PR alongside CI workflows (Smoke CI, CGO, Doc Build)
    • PR data shows 910 PRs created in April alone, all receiving this full fan-out treatment

Proposed Change

  • Add a concurrency group scoped per PR branch to cancel superseded reviewer runs: concurrency: group: review-$\{\{ github.head_ref }}, cancel-in-progress: true
  • Consolidate the 7 reviewer agents into a unified "review" job that runs checks sequentially or assigns based on PR content type (docs, code, security) instead of all-at-once fan-out
  • For Copilot-authored PRs specifically, gate the full reviewer suite behind a lightweight triage step that determines which reviewers are relevant to the change scope

Expected Impact

  • Reduce per-PR workflow run count from ~22 to 3–5 (60–85% reduction in CI minutes)
  • Drop the action_required conclusion rate from 96% to below 30% by eliminating redundant escalations from overlapping reviewers
  • Decrease queue pressure on self-hosted runners, reducing latency for genuine CI checks

Notes

  • Distinct root cause category: orchestration fan-out / redundant agent parallelism
  • Data quality caveats: No events.jsonl files available under /tmp/gh-aw/session-data/logs/; analysis based on sessions-list.json and PR data. Session timestamps span a single day, suggesting the 14-day window data was truncated to the most recent snapshot.

Generated by Copilot Opt · ● 1.3M ·

Metadata

Metadata

Type

No type
No fields configured for issues without a type.

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions