Skip to content
Back to skills

Check Duplicates

ASecurity

Check a GitHub issue for duplicate issues and existing fix PRs before investing effort.

  • 10 stars
  • 0 votes
  • 0 copies
  • 0 views
  • Added October 6, 2026
documentationbashgit

Works with

  • cli

Security analysis

A100/100

Scanned October 6, 2026

npx -y skills add tomzx/agents --skill check-duplicates --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Check Duplicates?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Check Duplicates
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/tomzx-check-duplicates/badge)](https://www.skillsdirectory.com/skills/tomzx-check-duplicates)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: check-duplicates
description: Check a GitHub issue for duplicate issues and existing fix PRs before investing effort.
allowed-tools: Bash(gh:*, git:*, ghx:*, ~/.agents/scripts/get-env:*), Read, Write, Glob, Grep
argument-hint: "<issue-number> [repository]"
---

# Check Duplicates

Checks a GitHub issue for duplicate issues and existing fix PRs.
Use before starting work on any issue to avoid wasted effort.

This skill performs read-only checks and posts a comment only if a duplicate is found.
It does not modify the issue or create any branches.

## Prerequisites

- Apply the shared SDLC conventions in `skills/sdlc/references/shared.md`.
- If no argument is provided, target the issue from `$ISSUE_NUMBER` (and `$REPO`).
- `ghx` CLI authenticated with read access to the target repository
- A GitHub issue number to check

### Skill attribution (GitHub)

If posting a comment about a duplicate, read `../github-post-attribution/SKILL.md` and append the footer for `SKILL_DIR` = `check-duplicates`.

### Communication guidelines (outbound text)

Before composing any text posted or drafted on the user's behalf, apply [`communication-guidelines/SKILL.md`](../communication-guidelines/SKILL.md).

## Steps

### 1. Fetch the issue

Fetch the issue details to extract search keywords:

```bash
ghx issue view $ISSUE_NUMBER --repo $REPO
```

Extract keywords from:
- Title
- Error messages or stack traces
- Key nouns describing the affected component or behavior

### 2. Search for duplicate issues

Using 2-3 different keyword combinations, search for similar open and closed issues:

```bash
ghx issue list --repo $REPO --search "<keywords>" --state all --limit 10
```

Exclude the current issue from results.
For each candidate, compare:
- Whether it describes the same root cause or behavior
- Whether it is still open (closed may indicate a previous fix)
- Whether it covers the same scope or a subset

If a duplicate is found, comment on the current issue and stop:

```bash
ghx issue comment $ISSUE_NUMBER --repo $REPO --body "$(cat <<'EOF'
Duplicate of #<existing-issue-number>.

---

Posted with [check-duplicates](SKILL_FILE_URL) (`SKILL_SHORT_SHA`)
EOF
)"
```

### 3. Check for existing fix PRs

Search for open PRs that reference this issue:

```bash
ghx pr list --repo $REPO --search "$ISSUE_NUMBER" --state open --limit 10
```

If a fix PR already exists, inform the user and stop. Optionally offer to review it with `/review-pr`.

### 4. Check assignment and status

Check if the issue is already assigned or has an in-progress label.
If someone else is working on it, inform the user before proceeding.

### 5. Report results

If no duplicates, no existing PRs, and no assignment conflicts are found, report that the issue is clear to work on.
Do not post a comment on the issue in this case.

## Outcome

| Finding | Action |
|---|---|
| Duplicate issue found | Comment on current issue linking to duplicate, stop |
| Existing fix PR found | Inform user, offer to review, stop |
| Someone already assigned | Inform user, let them decide whether to proceed |
| No conflicts | Issue is clear to work on, proceed |

If `$OUTCOME_YAML` is set, also emit your routing verdict there per `skills/sdlc/references/shared.md`:

| Verdict | When |
|---|---|
| `novel` | No conflicts, issue is clear to work on |
| `duplicate` | Duplicate issue or existing fix PR found |

## Example Usage

**Scenario 1: Duplicate found**
```
/check-duplicates 20 owner/myrepo
```
Finds issue #12 describes the same bug. Comments on #20 linking to #12.

**Scenario 2: Existing PR found**
```
/check-duplicates 30 owner/myrepo
```
Finds PR #45 already references issue #30. Informs user and offers to review.

**Scenario 3: Clear to work on**
```
/check-duplicates 42 owner/myrepo
```
No duplicates, no existing PRs, no assignment conflicts. Reports clear.

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…