Skip to content

feat: pre-flight PR deduplication protocol to cut Copilot retry waste#28843

Merged
pelikhan merged 3 commits intomainfrom
copilot/copilot-opt-reduce-pr-retry-waste
Apr 28, 2026
Merged

feat: pre-flight PR deduplication protocol to cut Copilot retry waste#28843
pelikhan merged 3 commits intomainfrom
copilot/copilot-opt-reduce-pr-retry-waste

Conversation

Copy link
Copy Markdown
Contributor

Copilot AI commented Apr 28, 2026

8 feature topics required 2–3 closed-PR re-submissions in a 14-day window, each consuming a full agent session with no incremental progress. This adds a structured circuit-breaker at two levels: developer instructions (agent behaviour) and the copilot-opt analysis workflow (detection and escalation).

developer.instructions.md — new PR Deduplication Protocol section

  • Pre-flight check: before opening any PR, search closed PRs for overlapping keywords via GitHub MCP search_pull_requests
  • Prior failure analysis: if a closed PR is found, classify the close reason (ci-failure, reviewer-rejected, scope-mismatch, duplicate, unknown) and document it in a ## Prior Attempts section of the new PR description
  • Retry circuit breaker: ≥2 closed PRs on the same topic → block new PR, add copilot-retry-blocked label, require explicit maintainer approval before proceeding

copilot-opt.md — mandatory duplicate PR detection in analysis workflow

  • Phase 3 promoted from optional to mandatory; split into 3a (general PR signals), 3b (duplicate pattern detection), 3c (retry threshold rules)
  • Phase 3b adds a concrete jq detection procedure grouping closed-without-merge PRs by title and surfacing close reasons via MCP
  • Phase 4 auto-elevates retry-blocked topics (≥2 closed PRs) to high priority in recommendation selection
  • Phase 5 adds a "Prior Failed Attempts" table addendum to issue bodies for retry-blocked topics, plus copilot-retry-blocked label on the created issue
  • Added close-older-issues: true to safe-outputs to prevent stale issue accumulation
  • Final Validation Checklist expanded with duplicate-detection verification steps
# Phase 3b detection — finds topics with ≥2 closed-without-merge PRs
jq '[.[] | select(.state == "CLOSED" and .mergedAt == null)]
    | group_by(.title)
    | map({title: .[0].title, count: length, prs: [.[] | {number, url, closedAt}]})
    | map(select(.count >= 2))
    | sort_by(-.count)' /tmp/gh-aw/pr-data/copilot-prs.json

Warning

Firewall rules blocked me from connecting to one or more addresses (expand for details)

I tried to connect to the following addresses, but was blocked by firewall rules:

  • https://api.github.com/graphql
    • Triggering command: /usr/bin/gh gh repo view --json owner,name --jq .owner.login + "/" + .name ache/go/1.25.8/x64/pkg/tool/linux_amd64/vet GOINSECURE t/internal/numberev-parse GOMODCACHE ache/go/1.25.8/x64/pkg/tool/linux_amd64/vet (http block)
    • Triggering command: /usr/bin/gh gh repo view owner/repo (http block)
    • Triggering command: /usr/bin/gh gh repo view owner/repo 5486�� se 8617/b024/vet.cfg ache/go/1.25.8/x64/pkg/tool/linux_amd64/vet GOINSECURE GOMOD GOMODCACHE ache/go/1.25.8/x64/pkg/tool/linuremote.origin.url (http block)
  • https://api.github.com/orgs/test-owner/actions/secrets
    • Triggering command: /usr/bin/gh gh api /orgs/test-owner/actions/secrets --jq .secrets[].name -json GO111MODULE x_amd64/compile GOINSECURE GOMOD GOMODCACHE x_amd64/compile env -json GO111MODULE x_amd64/vet GOINSECURE GOMOD GOMODCACHE x_amd64/vet (http block)
    • Triggering command: /usr/bin/gh gh api /orgs/test-owner/actions/secrets --jq .secrets[].name /home/REDACTED/work/gh-aw/gh-aw/.github/workflows rev-parse sona-explorer.lock.yml nore /opt/hostedtoolcapi /home/REDACTED/worgraphql git -C ithub/workflows config repository(owne-f remote.origin.urgh -m e-output-integra/repos/actions/github-script/git/ref/tags/v9 /opt/hostedtoolc--jq (http block)
  • https://api.github.com/repos/actions/ai-inference/git/ref/tags/v1
    • Triggering command: /usr/bin/gh gh api /repos/actions/ai-inference/git/ref/tags/v1 --jq [.object.sha, .object.type] | @tsv /tmp/TestCollectWorkflowFiles_WithImports2494241530/001 rev-parse /usr/bin/git 2358881/b162/_pkgit GO111MODULE 64/pkg/tool/linu--show-toplevel git rev-�� --show-toplevel 64/pkg/tool/linux_amd64/compile /usr/bin/git a pkg/mod/golang.o/opt/hostedtoolcache/node/24.14.1/x64/bin/npm g git (http block)
    • Triggering command: /usr/bin/gh gh api /repos/actions/ai-inference/git/ref/tags/v1 --jq [.object.sha, .object.type] | @tsv --show-toplevel epo}/actions/runs/12345/artifacts /usr/bin/git e config 64/pkg/tool/linu--show-toplevel git rev-�� --show-toplevel 64/pkg/tool/linux_amd64/vet /usr/bin/git api-consumption-node show /usr/bin/gh git (http block)
  • https://api.github.com/repos/actions/checkout/git/ref/tags/v3
    • Triggering command: /usr/bin/gh gh api /repos/actions/checkout/git/ref/tags/v3 --jq [.object.sha, .object.type] | @tsv ets.TOKEN }} x_amd64/vet /usr/bin/docker with-tools.md GO111MODULE x_amd64/vet docker nt.m�� md d /opt/hostedtoolcache/node/24.14.1/x64/bin/node g_.a GO111MODULE x_amd64/vet node (http block)
    • Triggering command: /usr/bin/gh gh api /repos/actions/checkout/git/ref/tags/v3 --jq [.object.sha, .object.type] | @tsv /tmp/gh-aw-test-runs/20260428-040806-53558/test-2642137002 remote /usr/bin/git 01 -f r-prompt-analysi--show-toplevel git rev-�� --show-toplevel go /usr/lib/git-core/git te '../../../**/git :latest 1/x64/bin/node /usr/lib/git-core/git (http block)
  • https://api.github.com/repos/actions/checkout/git/ref/tags/v5
    • Triggering command: /usr/bin/gh gh api /repos/actions/checkout/git/ref/tags/v5 --jq [.object.sha, .object.type] | @tsv 0429-34782/test-1031800441/.github/workflows 8617/b215/vet.cfg ache/go/1.25.8/x64/pkg/tool/linux_amd64/compile -p github.com/goccy--version -lang=go1.21 ache/go/1.25.8/x64/pkg/tool/linux_amd64/compile 7157�� -unreachable=false /tmp/go-build8548617/b013/vet.cfg /opt/hostedtoolcache/go/1.25.8/x64/pkg/tool/linux_amd64/vet go1.25.8 -c=4 -nolocalimports /opt/hostedtoolcache/go/1.25.8/x64/pkg/tool/linux_amd64/vet (http block)
    • Triggering command: /usr/bin/gh gh api /repos/actions/checkout/git/ref/tags/v5 --jq [.object.sha, .object.type] | @tsv --show-toplevel ache/go/1.25.8/x64/pkg/tool/linux_amd64/vet /usr/bin/git ons/secrets 8617/b232/vet.cf\n g git rev-�� --show-toplevel ache/go/1.25.8/x64/pkg/tool/linuorigin /usr/bin/git 814828379 -trimpath 1/x64/bin/node git (http block)
    • Triggering command: /usr/bin/gh gh api /repos/actions/checkout/git/ref/tags/v5 --jq [.object.sha, .object.type] | @tsv --show-toplevel gh /usr/bin/git list l /usr/bin/git git rev-�� --show-toplevel git /usr/bin/git s/test.md x_amd64/compile /opt/hostedtoolc--show-toplevel git (http block)
  • https://api.github.com/repos/actions/checkout/git/ref/tags/v6
    • Triggering command: /usr/bin/gh gh api /repos/actions/checkout/git/ref/tags/v6 --jq [.object.sha, .object.type] | @tsv -unreachable=false /tmp/go-build8548617/b107/vet.cfg /opt/hostedtoolcache/go/1.25.8/x64/pkg/tool/linux_amd64/vet -json GO111MODULE 64/bin/go /opt/hostedtoolcache/go/1.25.8/x64/pkg/tool/linux_amd64/vet -ato�� licyMinIntegrityOnlymin-integrity_with_repos=public_422777034/001 -buildtags /opt/hostedtoolcache/go/1.25.8/x64/pkg/tool/linux_amd64/link l -ifaceassert -nilfunc /opt/hostedtoolcache/go/1.25.8/x64/pkg/tool/linux_amd64/link (http block)
    • Triggering command: /usr/bin/gh gh api /repos/actions/checkout/git/ref/tags/v6 --jq [.object.sha, .object.type] | @tsv k/gh-aw/gh-aw/pkg/semverutil/semverutil.go k/gh-aw/gh-aw/pkg/semverutil/semverutil_test.go /usr/bin/git -json GO111MODULE 64/bin/go git rev-�� --show-toplevel go /usr/bin/git -json GO111MODULE x_amd64/compile git (http block)
    • Triggering command: /usr/bin/gh gh api /repos/actions/checkout/git/ref/tags/v6 --jq [.object.sha, .object.type] | @tsv /tmp/TestParseDefaultBranchFromLsRemoteWithRealGitbranch_with_hyphen66193673/001 /tmp/TestParseDefaultBranchFromLsRemoteWithRealGitbranch_with_hyphen66193673/002/work /usr/bin/git b/workflows GO111MODULE x_amd64/compile git rev-�� --show-toplevel (http block)
  • https://api.github.com/repos/actions/github-script/git/ref/tags/v8
    • Triggering command: /usr/bin/gh gh api /repos/actions/github-script/git/ref/tags/v8 --jq [.object.sha, .object.type] | @tsv --show-toplevel ache/go/1.25.8/xconfig /usr/bin/git 8617/b423/_pkg_.git /tmp/go-build854rev-parse 64/pkg/tool/linuHEAD git rev-�� --show-toplevel 64/pkg/tool/linux_amd64/compile /usr/bin/git a -buildtags /opt/hostedtoolc--show-toplevel git (http block)
    • Triggering command: /usr/bin/gh gh api /repos/actions/github-script/git/ref/tags/v8 --jq [.object.sha, .object.type] | @tsv xterm-color /usr/bin/gh /usr/bin/git CommaSeparatedCogit -f (http block)
  • https://api.github.com/repos/actions/github-script/git/ref/tags/v9
    • Triggering command: /usr/bin/gh gh api /repos/actions/github-script/git/ref/tags/v9 --jq [.object.sha, .object.type] | @tsv -json GO111MODULE x_amd64/asm GOINSECURE GOMOD GOMODCACHE x_amd64/asm env -json GO111MODULE x_amd64/asm GOINSECURE GOMOD GOMODCACHE x_amd64/asm (http block)
    • Triggering command: /usr/bin/gh gh api /repos/actions/github-script/git/ref/tags/v9 --jq [.object.sha, .object.type] | @tsv -json GO111MODULE x_amd64/compile GOINSECURE GOMOD GOMODCACHE x_amd64/compile env -json ii/equal_fold.go-ifaceassert x_amd64/compile GOINSECURE GOMOD GOMODCACHE x_amd64/compile (http block)
    • Triggering command: /usr/bin/gh gh api /repos/actions/github-script/git/ref/tags/v9 --jq [.object.sha, .object.type] | @tsv cp .github/aw/ac-c=4 GO111MODULE x_amd64/compile GOINSECURE GOMOD GOMODCACHE x_amd64/compile env -json GO111MODULE x_amd64/compile GOINSECURE GOMOD GOMODCACHE x_amd64/compile (http block)
  • https://api.github.com/repos/actions/setup-go/git/ref/tags/v4
    • Triggering command: /usr/bin/gh gh api /repos/actions/setup-go/git/ref/tags/v4 --jq [.object.sha, .object.type] | @tsv --show-toplevel 64/pkg/tool/linu/tmp/go-build8548617/b113/vet.cfg /usr/bin/gh ortcfg g 64/pkg/tool/linu--show-toplevel gh run download 4 /usr/bin/gh test-logs/run-4 gLhb/hBEUOkjpLNrrev-parse ache/go/1.25.8/x--show-toplevel gh (http block)
    • Triggering command: /usr/bin/gh gh api /repos/actions/setup-go/git/ref/tags/v4 --jq [.object.sha, .object.type] | @tsv user.email test@example.com /usr/bin/git ithub/workflows git (http block)
  • https://api.github.com/repos/actions/setup-node/git/ref/tags/v4
    • Triggering command: /usr/bin/gh gh api /repos/actions/setup-node/git/ref/tags/v4 --jq [.object.sha, .object.type] | @tsv /tmp/TestGuardPolicyTrustedUsersExpressionCompilv1.0.0 remote /usr/bin/git -json GO111MODULE 64/bin/go git -C /home/REDACTED/work/gh-aw/gh-aw/.github/workflows resolved$ /usr/bin/git -json GO111MODULE x_amd64/vet git (http block)
    • Triggering command: /usr/bin/gh gh api /repos/actions/setup-node/git/ref/tags/v4 --jq [.object.sha, .object.type] | @tsv GOMODCACHE 64/pkg/tool/linuremote /usr/bin/gh RMCF1Vmib GO111MODULE 64/pkg/tool/linu--show-toplevel gh run download 5 /usr/bin/git test-logs/run-5 g 64/pkg/tool/linu--show-toplevel git (http block)
    • Triggering command: /usr/bin/gh gh api /repos/actions/setup-node/git/ref/tags/v4 --jq [.object.sha, .object.type] | @tsv ErrorFormatting844157780/001 git /usr/bin/git sUAg/yURo6GzgiSggit config /usr/bin/infocmp--show-toplevel git -C /tmp/TestGuardPolicyTrustedUserstest-logs/run-1 l /usr/bin/git ithub/workflows git repository(owne--show-toplevel git (http block)
  • https://api.github.com/repos/actions/setup-node/git/ref/tags/v6
    • Triggering command: /usr/bin/gh gh api /repos/actions/setup-node/git/ref/tags/v6 --jq [.object.sha, .object.type] | @tsv xec6Bf1es /tmp/go-build8548617/b087/vet.cfg /opt/hostedtoolcache/go/1.25.8/x64/pkg/tool/linux_amd64/vet -json GO111MODULE 64/bin/go cfg -ato�� g/styles/huh_theme.go g/styles/theme.go /opt/hostedtoolcache/go/1.25.8/x64/pkg/tool/linux_amd64/vet -errorsas -ifaceassert -nilfunc /opt/hostedtoolcache/go/1.25.8/x-buildtags (http block)
    • Triggering command: /usr/bin/gh gh api /repos/actions/setup-node/git/ref/tags/v6 --jq [.object.sha, .object.type] | @tsv 0429-34782/test-3483769046 l 1/x64/bin/node -errorsas -ifaceassert -nilfunc 1/x64/bin/node conf�� 12125929 test@example.com /usr/bin/git -json GO111MODULE x_amd64/compile git (http block)
    • Triggering command: /usr/bin/gh gh api /repos/actions/setup-node/git/ref/tags/v6 --jq [.object.sha, .object.type] | @tsv GOMODCACHE l /usr/bin/git -json GO111MODULE x_amd64/compile git -C /tmp/TestGuardPolicyTrustedUsersExpressionCompiledOutput1268019269/001 config /usr/bin/git remote.origin.urgit GO111MODULE x_amd64/cgo git (http block)
  • https://api.github.com/repos/actions/upload-artifact/git/ref/tags/v4
    • Triggering command: /usr/bin/gh gh api /repos/actions/upload-artifact/git/ref/tags/v4 --jq [.object.sha, .object.type] | @tsv /tmp/gh-aw-test-runs/20260428-040429-34782/test-.artifacts[].name config /usr/bin/git remote.origin.urgit GO111MODULE x_amd64/compile git remo�� 2" 1>&2 x_amd64/compile rue,"errors":[],"warnings":[]}] eturned GO111MODULE x_amd64/compile ache/go/1.25.8/x64/pkg/tool/linux_amd64/vet (http block)
    • Triggering command: /usr/bin/gh gh api /repos/actions/upload-artifact/git/ref/tags/v4 --jq [.object.sha, .object.type] | @tsv --show-toplevel -tests /usr/bin/git ith-tools.md son repository(owne--show-toplevel git -C /tmp/gh-aw-test-runs/20260428-040806-53558/test-3175360362/.github/workflows rev-parse (http block)
  • https://api.github.com/repos/astral-sh/setup-uv/git/ref/tags/eac588ad8def6316056a12d4907a9d4d84ff7a3b
    • Triggering command: /usr/bin/gh gh api /repos/astral-sh/setup-uv/git/ref/tags/eac588ad8def6316056a12d4907a9d4d84ff7a3b --jq [.object.sha, .object.type] | @tsv user.name ings.cjs rgo/bin/git b62234b3..full-mgo st/suppress-warnrun de_modules/.bin//tmp/go-handler-test-pVRBRP/slow.go forks.js bran�� -M st/suppress-warnings.cjs (http block)
    • Triggering command: /usr/bin/gh gh api /repos/astral-sh/setup-uv/git/ref/tags/eac588ad8def6316056a12d4907a9d4d84ff7a3b --jq [.object.sha, .object.type] | @tsv . st/dist/workers/main $name) { hasDiscussionsEnabled } } /tmp/bare-incremgit gin/full-mode-brcheckout k/gh-aw/node_mod-b git diff�� --binary ba8e3ae8f83f2262-c=4 odules/npm/node_-nolocalimports README.md ode_modules/vite-C ache/node/24.14./home/REDACTED/work/gh-aw/gh-aw/.github/workflows git (http block)
    • Triggering command: /usr/bin/gh gh api /repos/astral-sh/setup-uv/git/ref/tags/eac588ad8def6316056a12d4907a9d4d84ff7a3b --jq [.object.sha, .object.type] | @tsv . tions/setup/js/node_modules/vite--stdout bin/git /tmp/bare-increm/opt/hostedtoolcache/node/24.14.1/x64/bin/node gin/full-mode-br--experimental-import-meta-resolve ache/uv/0.11.8/x--require git diff�� --binary st/suppress-warn--conditions p/bin/git -m ode_modules/viteapi ache/node/24.14.graphql st/dist/workers/-f (http block)
  • https://api.github.com/repos/github/gh-aw
    • Triggering command: /usr/bin/gh gh api /repos/github/gh-aw --jq .default_branch -output.go false r: $owner, name: $name) { hasDiscussionsEnabled } } --require 4c9b00838266ca6c-C k/gh-aw/gh-aw/ac/home/REDACTED/work/gh-aw/gh-aw 1/x64/bin/node ve . tions/setup/js/node_modules/vitest/suppress-warnings.cjs r: $owner, name: $name) { hasDiscussionsEnabled } } -exist a80dbecfda9a0ed4-C 1a10a35700b78ef5/home/REDACTED/work/gh-aw/gh-aw tions/setup/js/nshow (http block)
    • Triggering command: /usr/bin/gh gh api /repos/github/gh-aw --jq .default_branch ithub/workflows main ed.lock.yml e_modules/.bin/ggit git p/bin/git /opt/hostedtoolcrev-parse -o ithub/workflows -importcfg /opt/hostedtoolcache/node/24.14.1/x64/bin/node -s -w -buildmode=exe /opt/hostedtoolcshow (http block)
    • Triggering command: /usr/bin/gh gh api /repos/github/gh-aw --jq .default_branch k/gh-aw/gh-aw/.gremote.origin.url show r: $owner, name: $name) { hasDiscussionsEnabled } } --binary --output=/tmp/gi-C er.lock.yml ache/go/1.25.8/xshow -C *.json' '!../../../pkg/workflow/js/**/*.json' --ignore-path ../../../.prettierignore config r: $owner, name: $name) { hasDiscussionsEnabled } } remote.origin.urgit uments ache/go/1.25.8/x/home/REDACTED/work/gh-aw/gh-aw git (http block)
  • https://api.github.com/repos/github/gh-aw-actions/git/ref/tags/v0.1.2
    • Triggering command: /usr/bin/gh gh api /repos/github/gh-aw-actions/git/ref/tags/v0.1.2 --jq [.object.sha, .object.type] | @tsv -960279103/base.md -960279103/new.md /usr/bin/git ortcfg g 64/pkg/tool/linu--show-toplevel /usr/bin/git remo�� -v 64/pkg/tool/linux_amd64/vet /usr/bin/git 1404043753/.githgit TJ4J/EoB_P8I8Hxwrev-parse e.test git (http block)
    • Triggering command: /usr/bin/gh gh api /repos/github/gh-aw-actions/git/ref/tags/v0.1.2 --jq [.object.sha, .object.type] | @tsv --show-toplevel node /usr/bin/git source-field-vargit ../../../**/*.jsrev-parse me: String!) { --show-toplevel git remo�� tags/v6 infocmp sv itbranch_with_hygit itbranch_with_hyrev-parse er: String!, $na--show-toplevel git (http block)
  • https://api.github.com/repos/github/gh-aw-actions/git/ref/tags/v1.0.0
    • Triggering command: /usr/bin/gh gh api /repos/github/gh-aw-actions/git/ref/tags/v1.0.0 --jq [.object.sha, .object.type] | @tsv k/gh-aw/gh-aw/.github/workflows/agent-performanctest-logs/run-1 config /usr/bin/git remote.origin.urgit GO111MODULE x_amd64/compile git remo�� GOMODCACHE l /usr/bin/git bytealg/indexbytgit GO111MODULE x_amd64/vet git (http block)
    • Triggering command: /usr/bin/gh gh api /repos/github/gh-aw-actions/git/ref/tags/v1.0.0 --jq [.object.sha, .object.type] | @tsv -stringintconv -tests /usr/bin/git /home/REDACTED/worgit show repository(owne--show-toplevel git -C /tmp/gh-aw-test-runs/20260428-040806-53558/test-2363187945/.github/workflows config (http block)
  • https://api.github.com/repos/github/gh-aw-actions/git/ref/tags/v1.2.3
    • Triggering command: /usr/bin/gh gh api /repos/github/gh-aw-actions/git/ref/tags/v1.2.3 --jq [.object.sha, .object.type] | @tsv k/gh-aw/gh-aw/.github/workflows/ace-editor.md k/gh-aw/gh-aw/pkg/stringutil/identifiers.go /usr/bin/git -json GO111MODULE x_amd64/compile git rev-�� --show-toplevel x_amd64/compile om/org1/repo.git -json GO111MODULE x_amd64/vet git (http block)
    • Triggering command: /usr/bin/gh gh api /repos/github/gh-aw-actions/git/ref/tags/v1.2.3 --jq [.object.sha, .object.type] | @tsv --objects (http block)
  • https://api.github.com/repos/github/gh-aw/actions/runs
    • Triggering command: /usr/bin/gh gh run list --json databaseId,number,url,status,conclusion,workflowName,createdAt,startedAt,updatedAt,event,headBranch,headSha,displayTitle --limit 100 --created >=2026-04-21 GOMOD GOMODCACHE 64/pkg/tool/linuTest User env add-source-path-620397793/.github/workflows GO111MODULE 64/pkg/tool/linux_amd64/vet GOINSECURE t GOMODCACHE 64/pkg/tool/linutest@example.com (http block)
    • Triggering command: /usr/bin/gh gh run list --json databaseId,number,url,status,conclusion,workflowName,createdAt,startedAt,updatedAt,event,headBranch,headSha,displayTitle --limit 100 --created >=2026-03-29 setup/js/node_moremote GOMODCACHE 64/pkg/tool/linux_amd64/vet ortc�� dfWiE9R6S g 64/pkg/tool/linux_amd64/vet GOINSECURE 2358881/b087/ GOMODCACHE 64/pkg/tool/linux_amd64/vet (http block)
    • Triggering command: /usr/bin/gh gh run list --json databaseId,number,url,status,conclusion,workflowName,createdAt,startedAt,updatedAt,event,headBranch,headSha,displayTitle --limit 100 --created >=2026-01-28 GOMOD GOMODCACHE 64/pkg/tool/linuorigin ortc�� 2358881/b096/_pkg_.a g 64/pkg/tool/linux_amd64/vet GOINSECURE GOMOD GOMODCACHE 64/pkg/tool/linutest@example.com (http block)
  • https://api.github.com/repos/github/gh-aw/actions/runs/1/artifacts
    • Triggering command: /usr/bin/gh gh api --paginate repos/{owner}/{repo}/actions/runs/1/artifacts --jq .artifacts[].name l_test.go 64/pkg/tool/linux_amd64/compile GOINSECURE fips140/ecdh GOMODCACHE 64/pkg/tool/linux_amd64/compile (http block)
    • Triggering command: /usr/bin/gh gh run download 1 --dir test-logs/run-1 O8a-/w8uJjXynBhCHi02xO8a- 64/pkg/tool/linux_amd64/compile GOINSECURE fips140/hkdf GOMODCACHE 64/pkg/tool/linux_amd64/compile -c a ZTds/2vgHE4jOupBv7mHHZTds g GOSUMDB GOWORK 64/bin/go ache/go/1.25.8/x64/pkg/tool/linuremote (http block)
    • Triggering command: /usr/bin/gh gh api --paginate repos/{owner}/{repo}/actions/runs/1/artifacts --jq .artifacts[].name config ache/node/24.14.1/x64/bin/node remote.origin.urgit ntifiers.go 64/pkg/tool/linu--show-toplevel infocmp t-36�� sistency_GoAndJavaScript972362419/001/test-frontmatter-with-env---detach 64/pkg/tool/linux_amd64/compile e/git ./../pkg/workflogit show 64/bin/go e/git (http block)
  • https://api.github.com/repos/github/gh-aw/actions/runs/12345/artifacts
    • Triggering command: /usr/bin/gh gh api --paginate repos/{owner}/{repo}/actions/runs/12345/artifacts --jq .artifacts[].name g 64/pkg/tool/linux_amd64/vet GOINSECURE GOMOD GOMODCACHE 64/pkg/tool/linux_amd64/vet (http block)
    • Triggering command: /usr/bin/gh gh run download 12345 --dir test-logs/run-12345 38wk/F3_s36TZU8RlNGu_38wk 64/pkg/tool/linux_amd64/compile GOINSECURE contextprotocol//tmp/test-expr-828536973.js GOMODCACHE 64/pkg/tool/linux_amd64/compile (http block)
    • Triggering command: /usr/bin/gh gh api --paginate repos/{owner}/{repo}/actions/runs/12345/artifacts --jq .artifacts[].name docker 1/x64/bin/node json' --ignore-pgit ghcr.io/github/srev-parse 64/bin/go ache/go/1.25.8/x64/pkg/tool/linux_amd64/vet t-ha�� ithub/workflows/api-consumption-report.md /usr/bin/gh /usr/bin/gh th .prettierignogit piler}} 64/bin/go /usr/bin/gh (http block)
  • https://api.github.com/repos/github/gh-aw/actions/runs/12346/artifacts
    • Triggering command: /usr/bin/gh gh api --paginate repos/{owner}/{repo}/actions/runs/12346/artifacts --jq .artifacts[].name g 64/pkg/tool/linux_amd64/vet GOINSECURE 2358881/b133/ GOMODCACHE 64/pkg/tool/linux_amd64/vet (http block)
    • Triggering command: /usr/bin/gh gh run download 12346 --dir test-logs/run-12346 GO111MODULE 64/pkg/tool/linux_amd64/vet GOINSECURE GOMOD 2358881/b011/syminputs.version 64/pkg/tool/linux_amd64/vet (http block)
    • Triggering command: /usr/bin/gh gh api --paginate repos/{owner}/{repo}/actions/runs/12346/artifacts --jq .artifacts[].name rev-parse ache/go/1.25.8/x64/pkg/tool/linux_amd64/vet json' --ignore-pgit -f DiscussionsEnabl--show-toplevel ache/go/1.25.8/x64/pkg/tool/linux_amd64/vet -C 0806-53558/test-1444886624 rev-parse e/git-upload-pack th .prettierignogit GoFiles,IgnoredGrev-parse $name) { has--show-toplevel infocmp (http block)
  • https://api.github.com/repos/github/gh-aw/actions/runs/2/artifacts
    • Triggering command: /usr/bin/gh gh api --paginate repos/{owner}/{repo}/actions/runs/2/artifacts --jq .artifacts[].name GO111MODULE 64/pkg/tool/linux_amd64/link GOINSECURE 2358881/b011/rt0rev-parse ache/go/1.25.8/x--show-toplevel 64/pkg/tool/linux_amd64/link (http block)
    • Triggering command: /usr/bin/gh gh run download 2 --dir test-logs/run-2 GO111MODULE g GOINSECURE 2358881/b078/js_/tmp/test-import-1042180816.js ache/go/1.25.8/x64/src/syscall/j--show-toplevel ache/go/1.25.8/x64/pkg/tool/linux_amd64/link log.�� go build -ldflags "-s -w -X main.version=32c484c-dirty" -o gh-aw ./cmd/gh-aw 79XR/6YQuLpx94_gDFryr79XR g GOSUMDB GOWORK 64/bin/go ache/go/1.25.8/x64/pkg/tool/linu/tmp/go-build8548617/b113/vet.cfg (http block)
    • Triggering command: /usr/bin/gh gh api --paginate repos/{owner}/{repo}/actions/runs/2/artifacts --jq .artifacts[].name show ache/node/24.14.1/x64/bin/node on' --ignore-patgit git 64/bin/go git t-32�� sistency_GoAndJavaScript972362419/001/test-frontmatter-with-nested-objects.md rev-parse e/git ./../pkg/workflogit rev-parse 64/pkg/tool/linu--show-toplevel e/git (http block)
  • https://api.github.com/repos/github/gh-aw/actions/runs/3/artifacts
    • Triggering command: /usr/bin/gh gh api --paginate repos/{owner}/{repo}/actions/runs/3/artifacts --jq .artifacts[].name GO111MODULE 64/pkg/tool/linux_amd64/vet GOINSECURE 2358881/b011/sysrev-parse ache/go/1.25.8/x--show-toplevel 64/pkg/tool/linux_amd64/vet (http block)
    • Triggering command: /usr/bin/gh gh run download 3 --dir test-logs/run-3 g x_amd64/compile GOINSECURE fips140/tls12 GOMODCACHE x_amd64/compile (http block)
    • Triggering command: /usr/bin/gh gh api --paginate repos/{owner}/{repo}/actions/runs/3/artifacts --jq .artifacts[].name rev-parse /usr/bin/git on' --ignore-patgit rev-parse $name) { has--show-toplevel git -C ithub/workflows config e/git remote.origin.urgit piler}} r: $owner, name:--show-toplevel e/git (http block)
  • https://api.github.com/repos/github/gh-aw/actions/runs/4/artifacts
    • Triggering command: /usr/bin/gh gh api --paginate repos/{owner}/{repo}/actions/runs/4/artifacts --jq .artifacts[].name g 64/pkg/tool/linux_amd64/vet GOINSECURE GOMOD 2358881/b006/symsecrets.TOKEN 64/pkg/tool/linux_amd64/vet (http block)
    • Triggering command: /usr/bin/gh gh run download 4 --dir test-logs/run-4 gLhb/hBEUOkjpLNrZf4ikgLhb ache/go/1.25.8/x64/pkg/tool/linux_amd64/vet GOINSECURE fips140/mlkem GOMODCACHE ache/go/1.25.8/x64/pkg/tool/linux_amd64/vet (http block)
    • Triggering command: /usr/bin/gh gh api --paginate repos/{owner}/{repo}/actions/runs/4/artifacts --jq .artifacts[].name show kflows/weekly-blog-post-writer.lock.yml on' --ignore-patgit show DiscussionsEnabl--show-toplevel /usr/bin/gh api graphql -f e/git -f owner=github -f e/git (http block)
  • https://api.github.com/repos/github/gh-aw/actions/runs/5/artifacts
    • Triggering command: /usr/bin/gh gh api --paginate repos/{owner}/{repo}/actions/runs/5/artifacts --jq .artifacts[].name zm1t/ybsydLQ-bM8eUCGDzm1t 64/pkg/tool/linux_amd64/compile GOINSECURE GOMOD GOMODCACHE 64/pkg/tool/linux_amd64/compile (http block)
    • Triggering command: /usr/bin/gh gh run download 5 --dir test-logs/run-5 g 64/pkg/tool/linux_amd64/compile GOINSECURE GOMOD GOMODCACHE 64/pkg/tool/linux_amd64/compile (http block)
    • Triggering command: /usr/bin/gh gh api --paginate repos/{owner}/{repo}/actions/runs/5/artifacts --jq .artifacts[].name rev-parse /usr/bin/infocmp on' --ignore-patgit ghcr.io/github/srev-parse 64/bin/go infocmp -1 xterm-color (http block)
  • https://api.github.com/repos/github/gh-aw/actions/workflows
    • Triggering command: /usr/bin/gh gh workflow list --json name,state,path -json .go x_amd64/compile GOINSECURE GOMOD GOMODCACHE x_amd64/compile env -json GO111MODULE x_amd64/vet GOINSECURE GOMOD GOMODCACHE x_amd64/vet (http block)
    • Triggering command: /usr/bin/gh gh run list --json databaseId,number,url,status,conclusion,workflowName,createdAt,startedAt,updatedAt,event,headBranch,headSha,displayTitle --workflow nonexistent-workflow-12345 --limit 100 GOMOD GOMODCACHE x_amd64/vet env g_.a GO111MODULE x_amd64/vet GOINSECURE l/unsafebytes GOMODCACHE x_amd64/vet (http block)
    • Triggering command: /usr/bin/gh gh run list --json databaseId,number,url,status,conclusion,workflowName,createdAt,startedAt,updatedAt,event,headBranch,headSha,displayTitle --workflow nonexistent-workflow-12345 --limit 6 ntio/asm/ascii 2358881/b047/sym--show-toplevel 64/pkg/tool/linux_amd64/vet env 69/001/test-empty-frontmatter.md GO111MODULE ache/go/1.25.8/x64/pkg/tool/linux_amd64/vet GOINSECURE GOMOD GOMODCACHE ache/go/1.25.8/x64/pkg/tool/linuremote.origin.url (http block)
  • https://api.github.com/repos/github/gh-aw/contents/.github/workflows/shared/reporting.md
    • Triggering command: /tmp/go-build8548617/b404/cli.test /tmp/go-build8548617/b404/cli.test -test.testlogfile=/tmp/go-build8548617/b404/testlog.txt -test.paniconexit0 -test.v=true -test.parallel=4 -test.timeout=10m0s -test.run=^Test -test.short=true GOINSECURE GOMOD GOMODCACHE x_amd64/asm env -json GO111MODULE x_amd64/compile GOINSECURE GOMOD GOMODCACHE x_amd64/compile (http block)
    • Triggering command: /tmp/go-build105794234/b404/cli.test /tmp/go-build105794234/b404/cli.test -test.testlogfile=/tmp/go-build105794234/b404/testlog.txt -test.paniconexit0 -test.v=true -test.parallel=4 -test.timeout=10m0s -test.run=^Test -test.short=true remote.origin.urinfocmp k/gh-aw/gh-aw/ac-1 k/gh-aw/node_modxterm-color git -C o actions/setup-cli/install.sh..." tPath,Error,Dir,GoFiles,IgnoredGoFiles,IgnoredOtherFiles,CFiles,CgoFiles,CXXFiles,MFiles,HFiles,-atomic k/gh-aw/gh-aw/actions/setup/js/node_modules/.bin/node test-y4IJ71/errogit main r-prompt-analysi/home/REDACTED/work/gh-aw/gh-aw git (http block)
  • https://api.github.com/repos/github/gh-aw/git/ref/tags/v0.47.4
    • Triggering command: /usr/bin/gh gh api /repos/github/gh-aw/git/ref/tags/v0.47.4 --jq [.object.sha, .object.type] | @tsv --show-toplevel ache/go/1.25.8/x^remote\..*\.gh-resolved$ /usr/bin/git agent-persona-exgit -trimpath (http block)
    • Triggering command: /usr/bin/gh gh api /repos/github/gh-aw/git/ref/tags/v0.47.4 --jq [.object.sha, .object.type] | @tsv --show-toplevel git /usr/bin/infocmp Imports201853023git show (http block)
  • https://api.github.com/repos/github/gh-aw/git/ref/tags/v1.0.0
    • Triggering command: /usr/bin/gh gh api /repos/github/gh-aw/git/ref/tags/v1.0.0 --jq [.object.sha, .object.type] | @tsv 69/001/test-inlined-imports-enabled-with-body-content.md 8617/b004/vet.cfg g -p internal/byteordrev-parse -lang=go1.25 ache/go/1.25.8/x64/pkg/tool/linuconfig -o 2358881/b234/importcfg -trimpath ache/go/1.25.8/x64/pkg/tool/linux_amd64/vet -p regexp/syntax -lang=go1.25 ache/go/1.25.8/x64/pkg/tool/linuremote.origin.url (http block)
    • Triggering command: /usr/bin/gh gh api /repos/github/gh-aw/git/ref/tags/v1.0.0 --jq [.object.sha, .object.type] | @tsv repo1143612687/0remote.origin.url --write k.yml --ignore-path .prettierignore --log-level=erro--show-toplevel sh -c ub/workflows git /usr/libexec/docker/cli-plugins/docker-buildx ithub/workflows rev-parse (http block)
  • https://api.github.com/repos/github/gh-aw/git/ref/tags/v1.2.3
    • Triggering command: /usr/bin/gh gh api /repos/github/gh-aw/git/ref/tags/v1.2.3 --jq [.object.sha, .object.type] | @tsv -json GO111MODULE x_amd64/vet GOINSECURE GOMOD GOMODCACHE x_amd64/vet env g_.a GO111MODULE x_amd64/vet GOINSECURE bug GOMODCACHE x_amd64/vet (http block)
    • Triggering command: /usr/bin/gh gh api /repos/github/gh-aw/git/ref/tags/v1.2.3 --jq [.object.sha, .object.type] | @tsv te '../../../**/*.json' '!../../../pkg/workflow/js/**/*.json' --ignore-path ../../../.prettieriggit :latest (http block)
  • https://api.github.com/repos/github/gh-aw/git/ref/tags/v2.0.0
    • Triggering command: /usr/bin/gh gh api /repos/github/gh-aw/git/ref/tags/v2.0.0 --jq [.object.sha, .object.type] | @tsv ted-objects.md GO111MODULE x_amd64/vet GOINSECURE GOMOD GOMODCACHE 02zfbN4/KAMAEFRbrev-parse env g_.a GO111MODULE x_amd64/vet GOINSECURE GOMOD GOMODCACHE x_amd64/vet (http block)
    • Triggering command: /usr/bin/gh gh api /repos/github/gh-aw/git/ref/tags/v2.0.0 --jq [.object.sha, .object.type] | @tsv -json GO111MODULE x_amd64/vet GOINSECURE GOMOD GOMODCACHE x_amd64/vet env g_.a rotocol/go-sdk@v1.5.0/internal/j-ifaceassert x_amd64/vet GOINSECURE GOMOD GOMODCACHE x_amd64/vet (http block)
    • Triggering command: /usr/bin/gh gh api /repos/github/gh-aw/git/ref/tags/v2.0.0 --jq [.object.sha, .object.type] | @tsv ays.md GO111MODULE x_amd64/vet GOINSECURE GOMOD GOMODCACHE x_amd64/vet env g_.a rotocol/go-sdk@v1.5.0/jsonrpc/js-ifaceassert x_amd64/vet GOINSECURE GOMOD GOMODCACHE x_amd64/vet (http block)
  • https://api.github.com/repos/github/gh-aw/git/ref/tags/v3.0.0
    • Triggering command: /usr/bin/gh gh api /repos/github/gh-aw/git/ref/tags/v3.0.0 --jq [.object.sha, .object.type] | @tsv -json GO111MODULE x_amd64/vet GOINSECURE GOMOD GOMODCACHE x_amd64/vet env g_.a GO111MODULE x_amd64/vet GOINSECURE GOMOD GOMODCACHE x_amd64/vet (http block)
    • Triggering command: /usr/bin/gh gh api /repos/github/gh-aw/git/ref/tags/v3.0.0 --jq [.object.sha, .object.type] | @tsv te '../../../**/*.json' '!../../../pkg/workflow/js/**/*.json' --ignore-path ../../../.prettieriggit go me: String!) { repository(owner: $owner, name: $name) { hasDiscussionsEnabled } } ithub/workflows git /opt/hostedtoolc--show-toplevel bash --no�� ithub/workflows /opt/hostedtoolcrev-parse kflows/ai-moderator.lock.yml k/gh-aw/gh-aw/.ggit /home/REDACTED/worrev-parse ollector.lock.ym--show-toplevel node (http block)
  • https://api.github.com/repos/nonexistent/action/git/ref/tags/v999.999.999
    • Triggering command: /usr/bin/gh gh api /repos/nonexistent/action/git/ref/tags/v999.999.999 --jq [.object.sha, .object.type] | @tsv 0429-34782/test-source-field-var-errorsas 8617/b034/vet.cfg k -I /tmp/go-build232rev-parse -I ache/go/1.25.8/x64/pkg/tool/linushow sRem�� /tmp/go-build2322358881/b070/_pkg_.a pkg/mod/golang.org/x/text@v0.36.0/internal/tag/tag.go ache/go/1.25.8/x64/pkg/tool/linux_amd64/vet -p io/fs -lang=go1.25 ache/go/1.25.8/x12345 (http block)
    • Triggering command: /usr/bin/gh gh api /repos/nonexistent/action/git/ref/tags/v999.999.999 --jq [.object.sha, .object.type] | @tsv 49759/001 git /home/REDACTED/node_modules/.bin/n-nilfunc tierignore rev-parse me: String!) { -lang=go1.25 node /hom�� k/gh-aw/gh-aw ../../../**/*.json y-quality-improver.lock.yml --ignore-path ../../../.pretticheckout ock.yml git (http block)
  • https://api.github.com/repos/nonexistent/repo/actions/runs/12345
    • Triggering command: /usr/bin/gh gh run view 12345 --repo nonexistent/repo --json status,conclusion GOINSECURE t/internal/langurev-parse GOMODCACHE ache/go/1.25.8/x64/pkg/tool/linux_amd64/vet (http block)
    • Triggering command: /usr/bin/gh gh run view 12345 --repo nonexistent/repo --json status,conclusion ./../pkg/workflogit GoFiles,IgnoredGrev-parse 64/pkg/tool/linu--show-toplevel e/git estP�� /home/REDACTED/work/gh-aw/gh-aw tname) ache/node/24.14.1/x64/bin/node k/gh-aw/gh-aw etadata/main.go r: $owner, name:--paginate git (http block)
  • https://api.github.com/repos/owner/repo/actions/workflows
    • Triggering command: /usr/bin/gh gh workflow list --json name,state,path --repo owner/repo x_amd64/asm GOINSECURE GOMOD GOMODCACHE x_amd64/asm env -json GO111MODULE x_amd64/vet GOINSECURE GOMOD sm_wasm.s x_amd64/vet (http block)
    • Triggering command: /usr/bin/gh gh workflow list --json name,state,path --repo owner/repo x_amd64/compile GOINSECURE GOMOD GOMODCACHE x_amd64/compile env -json GO111MODULE x_amd64/vet GOINSECURE GOMOD emclr_wasm.s x_amd64/vet (http block)
    • Triggering command: /usr/bin/gh gh workflow list --repo owner/repo --json name,path,state ache/go/1.25.8/x64/pkg/tool/linux_amd64/vet GOINSECURE GOMOD GOMODCACHE ache/go/1.25.8/x64/pkg/tool/linuremote.origin.url (http block)
  • https://api.github.com/repos/test-owner/test-repo/actions/secrets
    • Triggering command: /usr/bin/gh gh api /repos/test-owner/test-repo/actions/secrets --jq .secrets[].name -json GO111MODULE x_amd64/compile GOINSECURE GOMOD GOMODCACHE x_amd64/compile env -json GO111MODULE x_amd64/vet GOINSECURE GOMOD GOMODCACHE x_amd64/vet (http block)
    • Triggering command: /usr/bin/gh gh api /repos/test-owner/test-repo/actions/secrets --jq .secrets[].name /home/REDACTED/worremote.origin.url rev-parse p/bin/sh nore /opt/hostedtoolc-C me: String!) { /home/REDACTED/work/gh-aw/gh-aw/.github/workflows git -C ithub/workflows config r: $owner, name: $name) { hasDiscussionsEnabled } } remote.origin.urgit -m yml go (http block)
  • https://api.github.com/repos/test/repo
    • Triggering command: /usr/bin/gh gh api /repos/test/repo --jq .default_branch 343794612/.github/workflows 8617/b095/vet.cfg g gh-aw ./cmd/gh-aw 64/bin/go ache/go/1.25.8/x64/pkg/tool/linu/tmp/go-build8548617/b112/vet.cfg (http block)
    • Triggering command: /usr/bin/gh gh api /repos/test/repo --jq .default_branch user.name Test User /usr/bin/git iant-2890381900 on l-instrumentatio--show-toplevel git add test.txt l /usr/bin/git k/gh-aw/gh-aw /opt/hostedtoolcrev-parse yml git (http block)
  • invalid.example.invalid
    • Triggering command: /usr/lib/git-core/git-remote-https /usr/lib/git-core/git-remote-https origin https://invalid.example.invalid/nonexistent-repo.git e/git init�� ndor/bin/git git ode_modules/.bin/git =receive test@example.com--git-dir=/tmp/bare-incremental-Au8Mc2 /git (dns block)

If you need me to access, download, or install something from one of these locations, you can either:

Copilot AI and others added 2 commits April 28, 2026 04:08
…detection

- Add PR Deduplication Protocol section to developer.instructions.md with:
  - Pre-flight duplicate PR check using search_pull_requests before opening a PR
  - Prior failure analysis phase that reads closed PR reasons at session start
  - Retry limit circuit breaker: no 3rd PR attempt without human review
  - copilot-retry-blocked label protocol
- Update copilot-opt.md:
  - Make Phase 3 PR cross-analysis mandatory (was optional)
  - Add Phase 3b: Duplicate PR Pattern Detection with jq detection procedure
  - Add Phase 3c: Retry count threshold (2=high-risk, 3+=retry-blocked)
  - Elevate retry-blocked topics to high priority in Phase 4 recommendations
  - Add 'Prior Failed Attempts' addendum for retry-blocked issue bodies in Phase 5
  - Add copilot-retry-blocked label requirement for retry-blocked issues
  - Add close-older-issues: true to safe-outputs
  - Expand Final Validation Checklist with duplicate-detection checks
- Recompile copilot-opt.lock.yml

Agent-Logs-Url: https://github.com/github/gh-aw/sessions/6e83e392-5122-4c65-a609-d840c44c2830

Co-authored-by: gh-aw-bot <259018956+gh-aw-bot@users.noreply.github.com>
…ctions

- Fix jq filter: remove redundant .mergedAt == \"\" check, only use null check
- Clarify date format in Prior Failed Attempts table header (YYYY-MM-DD)
- Fix spelling: summarises -> summarizes in developer.instructions.md
- Recompile copilot-opt.lock.yml

Agent-Logs-Url: https://github.com/github/gh-aw/sessions/6e83e392-5122-4c65-a609-d840c44c2830

Co-authored-by: gh-aw-bot <259018956+gh-aw-bot@users.noreply.github.com>
Copilot AI changed the title [WIP] Fix excessive retry waste in Copilot PR submissions feat: pre-flight PR deduplication protocol to cut Copilot retry waste Apr 28, 2026
Copilot AI requested a review from gh-aw-bot April 28, 2026 04:14
@pelikhan pelikhan marked this pull request as ready for review April 28, 2026 04:23
Copilot AI review requested due to automatic review settings April 28, 2026 04:23
@pelikhan pelikhan merged commit dc14609 into main Apr 28, 2026
29 checks passed
@pelikhan pelikhan deleted the copilot/copilot-opt-reduce-pr-retry-waste branch April 28, 2026 04:23
@github-actions github-actions Bot mentioned this pull request Apr 28, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[copilot-opt] Reduce Copilot PR retry waste: 8 feature PRs required 2-3 re-submissions in last 14 days

3 participants