From 6418cacb0b7a18b4508b51f638c0d82db721e8b7 Mon Sep 17 00:00:00 2001 From: Boris Cherny Date: Tue, 29 Jul 2025 11:05:36 -0700 Subject: [PATCH 1/2] Add GitHub workflow to deduplicate issues and Claude configuration MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude --- .claude/commands/dedupe.md | 33 ++++++++++++++++++++++ .github/workflows/claude-dedupe-issues.yml | 25 ++++++++++++++++ 2 files changed, 58 insertions(+) create mode 100644 .claude/commands/dedupe.md create mode 100644 .github/workflows/claude-dedupe-issues.yml diff --git a/.claude/commands/dedupe.md b/.claude/commands/dedupe.md new file mode 100644 index 00000000..f2814019 --- /dev/null +++ b/.claude/commands/dedupe.md @@ -0,0 +1,33 @@ +--- +allowed-tools: Bash(gh issue view:*), Bash(gh search:*), Bash(gh issue list:*), Bash(gh api:*), Bash(gh issue comment:*) +description: Find duplicate GitHub issues +--- + +Find up to 3 likely duplicate issues for a given GitHub issue. + +To do this, follow these steps precisely: + +1. Use an agent to check if the Github issue (a) is closed, (b) does not need to be deduped (eg. because it is broad product feedback without a specific solution, or positive feedback), or (c) already has a duplicates comment that you made earlier. If so, do not proceed. +2. Use an agent to view a Github issue, and ask the agent to return a summary of the issue +3. Then, launch 5 parallel agents to search Github for duplicates of this issue, using diverse keywords and search approaches, using the summary from #1 +4. Next, feed the results from #1 and #2 into another agent, so that it can filter out false positives, that are likely not actually duplicates of the original issue +5. Finally, comment back on the issue with a list of up to three duplicate issues (or zero, if there are no likely duplicates) + +Notes (be sure to tell this to your agents, too): + +- Use `gh` to interact with Github, rather than web fetch +- Do not use other tools, beyond `gh` (eg. don't use other MCP servers, file edit, etc.) +- Make a todo list first +- For your comment, follow the following format precisely (assuming for this example that you found 3 suspected duplicates): + +--- + +Found 3 possible duplicate issues: + +1. +2. +3. + +If your issue is a duplicate, please close it and 👍 the existing issue instead. + +## 🤖 Generated with [Claude Code](https://claude.ai/code) diff --git a/.github/workflows/claude-dedupe-issues.yml b/.github/workflows/claude-dedupe-issues.yml new file mode 100644 index 00000000..6a6daad7 --- /dev/null +++ b/.github/workflows/claude-dedupe-issues.yml @@ -0,0 +1,25 @@ +name: Claude Issue Dedupe +description: Automatically dedupe GitHub issues using Claude Code +on: + issues: + types: [opened] + +jobs: + triage-issue: + runs-on: ubuntu-latest + timeout-minutes: 10 + permissions: + contents: read + issues: write + + steps: + - name: Checkout repository + uses: actions/checkout@v4 + + - name: Run Claude Code slash command + uses: anthropics/claude-code-base-action@beta + with: + prompt: "/dedupe ${{ github.repository }}/issues/${{ github.event.issue.number }}" + anthropic_api_key: ${{ secrets.ANTHROPIC_API_KEY }} + claude_env: | + GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} From c904f0f4095d8caec60fb4c60696a57cfb6dbaaf Mon Sep 17 00:00:00 2001 From: Boris Cherny Date: Tue, 29 Jul 2025 11:36:28 -0700 Subject: [PATCH 2/2] Update .claude/commands/dedupe.md --- .claude/commands/dedupe.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.claude/commands/dedupe.md b/.claude/commands/dedupe.md index f2814019..6ef70942 100644 --- a/.claude/commands/dedupe.md +++ b/.claude/commands/dedupe.md @@ -10,7 +10,7 @@ To do this, follow these steps precisely: 1. Use an agent to check if the Github issue (a) is closed, (b) does not need to be deduped (eg. because it is broad product feedback without a specific solution, or positive feedback), or (c) already has a duplicates comment that you made earlier. If so, do not proceed. 2. Use an agent to view a Github issue, and ask the agent to return a summary of the issue 3. Then, launch 5 parallel agents to search Github for duplicates of this issue, using diverse keywords and search approaches, using the summary from #1 -4. Next, feed the results from #1 and #2 into another agent, so that it can filter out false positives, that are likely not actually duplicates of the original issue +4. Next, feed the results from #1 and #2 into another agent, so that it can filter out false positives, that are likely not actually duplicates of the original issue. If there are no duplicates remaining, do not proceed. 5. Finally, comment back on the issue with a list of up to three duplicate issues (or zero, if there are no likely duplicates) Notes (be sure to tell this to your agents, too):