Skip to content

Add Duplicate Surfacing agentic workflow (pilot from winget-cli) - #687

Merged
denelon merged 2 commits into
microsoft:mainfrom
denelon:denelon/agentic-dup-surfacing
Jul 29, 2026
Merged

Add Duplicate Surfacing agentic workflow (pilot from winget-cli)#687
denelon merged 2 commits into
microsoft:mainfrom
denelon:denelon/agentic-dup-surfacing

Conversation

@denelon

@denelon denelon commented Jul 29, 2026

Copy link
Copy Markdown
Collaborator

📖 Description

Ports the Duplicate Surfacing agentic workflow (gh aw) from microsoft/winget-cli (PRs #6400, #6408, #6410) to winget-create.

When a new issue is opened, an agent searches existing issues and, if it finds a likely duplicate, applies a Possible-Duplicate label and posts an advisory comment linking the candidate for maintainer review. It is detect-only — it never closes issues or applies duplicate-close triggers.

This is the first Tier-1 pilot of rolling the workflow out across the winget repo family. Both winget-cli refinements are included:

  • No-op runs are not reported as tracking issues (noop.report-as-issue: false).
  • Search guidance mandates high-recall in:title queries so old, sparse-body duplicates surface reliably.

Changes:

  • .github/workflows/duplicate-surfacing.md — agentic workflow source (portable via ${{ github.repository }}).
  • .github/workflows/duplicate-surfacing.lock.yml + .github/aw/actions-lock.json + .gitattributes — compiled artifacts (gh aw compile).
  • .github/actions/spelling/allow.txt — adds autodetect, noop, PreIndexedPackage, toolsets.
  • A Possible-Duplicate label (amber #FBCA04) has been created on the repo.

Note: Enabling the workflow requires the github/gh-aw-actions/*@* entry in the repository's Actions allow-list, which needs admin. Flagging for a maintainer with admin to confirm/add (as was done for winget-cli).

Created with GitHub Copilot assistance.

🔗 References

Resolves #686

Origin implementation: microsoft/winget-cli #6400, #6408, #6410.

🔍 Validation

  • gh aw compile duplicate-surfacing completes with 0 errors / 0 warnings.
  • The identical workflow is running in production on microsoft/winget-cli (verified end-to-end there, including a live duplicate-detection test).
  • gh aw trial replay against winget-create issues to follow.

✅ Checklist

📋 Issue Type

  • Bug fix
  • Feature
  • Task
Microsoft Reviewers: Open in CodeFlow

@azure-pipelines

Copy link
Copy Markdown
Azure Pipelines:
There may be pipelines that require an authorized user to comment /azp run to run.

@github-actions

This comment has been minimized.

@denelon
denelon marked this pull request as ready for review July 29, 2026 19:46
@azure-pipelines

Copy link
Copy Markdown
Azure Pipelines:
There may be pipelines that require an authorized user to comment /azp run to run.

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

🟡 Not ready to approve

The workflow’s activation/permission model appears misaligned with “run on new issues” expectations for public issue reporters, and the generated workflow grants broader write permissions than necessary (PR write) for an issues-only workflow.

Once you've addressed the issues Copilot identified, you can request another Copilot review.

This review doesn't count toward merge requirements. Sign up for the private preview to control whether Copilot approvals count.

Pull request overview

This PR adds the Duplicate Surfacing GitHub Agentic Workflow to winget-create, mirroring the pilot already used in winget-cli, so new issues can be scanned for likely duplicates and (optionally) labeled/commented for maintainer review.

Changes:

  • Adds the Duplicate Surfacing agentic workflow source (duplicate-surfacing.md) and its compiled lock workflow (duplicate-surfacing.lock.yml).
  • Adds the agentic workflow actions lockfile (.github/aw/actions-lock.json) and marks lock workflows as generated in .gitattributes.
  • Updates the spelling action configuration (exclude compiled artifacts; allow a few workflow-specific terms).
File summaries
File Description
.github/workflows/duplicate-surfacing.md New agentic workflow source that guides duplicate detection and restricts outputs to label/comment.
.github/workflows/duplicate-surfacing.lock.yml Generated compiled workflow implementing the agentic workflow runtime and safe-outputs handling.
.github/aw/actions-lock.json Pins the gh-aw setup action SHA used during compilation.
.github/actions/spelling/excludes.txt Excludes gh-aw compiled artifacts and lock workflows from spellchecking noise.
.github/actions/spelling/allow.txt Adds allowed workflow-specific tokens that appear in the workflow text.
.gitattributes Marks lock workflows as generated and configures merge behavior for them.
Review details
  • Files reviewed: 5/6 changed files
  • Comments generated: 2
  • Review effort level: Low

We're testing this review assessment. Please use 👍 or 👎 to tell us if it's correct.

Comment thread .github/workflows/duplicate-surfacing.md
Comment thread .github/workflows/duplicate-surfacing.lock.yml
denelon and others added 2 commits July 29, 2026 13:43
Ports the gh-aw Duplicate Surfacing workflow from microsoft/winget-cli
(PRs #6400, #6408, #6410) to winget-create. On newly opened issues, an
agent searches existing issues and, when it finds a likely duplicate,
applies the Possible-Duplicate label and posts an advisory comment for
maintainer review. It never closes issues or applies duplicate-close
triggers (detect-only).

Includes the two winget-cli refinements: no-op runs are not reported as
tracking issues (noop.report-as-issue: false), and search guidance
mandates high-recall in:title queries to surface old, sparse-body
duplicates.

Adds autodetect, noop, PreIndexedPackage, and toolsets to the spelling
allow list for the workflow prompt text.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Copilot-Session: 3701d64a-96ba-42f1-be59-b4e7d2a2820a
The compiled duplicate-surfacing.lock.yml and .github/aw/ artifacts are
machine-generated (marked linguist-generated) and embed tool names, CA
bundle identifiers, and other tokens that are not real English words.
Exclude them from Check Spelling rather than polluting the dictionary.

Also allow the #NNN placeholder used in the workflow prompt text.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Copilot-Session: 3701d64a-96ba-42f1-be59-b4e7d2a2820a
@denelon
denelon force-pushed the denelon/agentic-dup-surfacing branch from 67a4fd7 to 7e6b7e4 Compare July 29, 2026 20:43
@denelon
denelon merged commit 7b371cb into microsoft:main Jul 29, 2026
3 checks passed
@denelon
denelon deleted the denelon/agentic-dup-surfacing branch July 29, 2026 20:46
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.

Add Duplicate Surfacing agentic workflow (pilot from winget-cli)

3 participants