AI Duplicate Detector & Issue Assistant - Documentation
Updated: 2026-06-30
Overview
AI Duplicate Detector & Issue Assistant does two things for your Jira team. First, it finds and helps you resolve duplicate issues — on the issue you are viewing, across your backlog, and automatically when new issues are created. Second, it acts as an AI assistant on every issue, turning the issue's content into summaries, acceptance criteria, sub-tasks, estimates, test cases, translations and more — with the option to apply the result straight back to the issue.
Everything runs inside Atlassian's platform on Forge. AI is provided by Anthropic Claude through Atlassian's native Forge LLM API — no issue content is sent to any service outside Atlassian, and your data is never used to train any model.
Features at a glance
| Feature | Where | What it does |
|---|---|---|
| Duplicate detection | Issue panel | Lists open issues that describe the same problem, each with a match score and reason. |
| Merge duplicate | Issue panel | Marks a candidate as a duplicate: links the two issues, adds a note, moves watchers, and closes the duplicate. Requires confirmation. |
| Backlog scan | Project page | Scans the project's open issues in one pass and groups likely duplicates. |
| Auto-detection | Automatic | When a new issue is created, the app checks for existing duplicates and, if found, posts a comment on the new issue. |
| AI actions | Issue panel | On-demand AI helpers (see below). Some can write their result back to the issue. |
Getting started
- Install the app from the Atlassian Marketplace onto your Jira Cloud site.
- Open any Jira issue. The app adds an AI Duplicate Detector panel that lists possible duplicates automatically and shows the AI actions menu.
- Open a project’s AI Duplicate Scan page (from the project sidebar) to scan the whole backlog for duplicate groups.
The first time you use the app, Jira may ask you to grant permission. All reads and writes happen on your behalf, so the app can only ever see and change issues you already have permission to work with.
Duplicate detection & merge
The app finds duplicates in three stages, entirely within Atlassian's platform:
- Candidate search. Using the issue's summary and keywords, the app runs a Jira search (JQL) to gather a small set of open issues that could be related.
- AI evaluation. Each candidate is compared against the current issue by the AI model, which scores how likely it is to be a duplicate and writes a short reason.
- Ranking. Only high-confidence matches are kept and shown, sorted by score. If nothing matches, the panel tells you no duplicates were found.
Merging a duplicate
Next to each candidate there is a Mark as duplicate & merge action. Jira has no single "merge" operation, so the app performs the steps a person would: it links the candidate to the current issue as a Duplicate, adds a note, moves the candidate's watchers onto the current issue, and transitions the candidate to a closed/done status (with resolution Duplicate where available).
Backlog scan & auto-detection
- Backlog scan (project page): Open AI Duplicate Scan from the project and press Scan for duplicates. The app reads the project's open issues and, in a single AI pass, groups the ones that look like duplicates of each other. Open any issue's panel to merge.
- Auto-detection (new issues): When an issue is created, the app checks for existing duplicates in the background. If it finds any, it posts a comment on the new issue listing them — so duplicates are caught at creation time. The AI is only called when the initial Jira search actually finds candidates, which keeps processing minimal.
AI actions
On any issue, open the panel's AI actions menu to run one of the following. Results appear in the panel; where noted, you can apply them to the issue.
| Action | What it produces | Apply to issue? |
|---|---|---|
| Summarize | A short summary and key points, including recent comments. | Add as comment |
| Acceptance Criteria | A checklist of acceptance criteria. | Add as comment |
| Rewrite Issue | A clearer, better-structured version of the description. | Replace description (with confirmation) |
| Suggest Sub-tasks | A breakdown into sub-task titles. | Create sub-tasks |
| Estimate Story Points | A point estimate with confidence and rationale. | Set story points |
| Generate Test Cases | A table of test cases (title, steps, expected result). | Add as comment |
| Translate | The issue translated into a language you choose. | Add as comment |
| Triage | Suggested priority, category and team, with a reason. | Add as comment |
| Split Epic | Suggested child stories for an epic. | Add as comment |
| Analyze Bug | Severity, reproduction steps and possible causes. | Add as comment |
Actions that write to Jira only do so when you explicitly click the apply button. Rewrite Issue replaces the existing description, so it asks you to confirm first. Add as comment is always available and never changes existing content.
AI model
The app uses Anthropic Claude, accessed exclusively through Atlassian's native Forge LLM API. No issue content is sent to any AI service outside the Atlassian platform, and your data is never used to train any model. The AI is used only at request time to produce the result you asked for.
Permissions & data handling
Scopes requested:
read:jira-work— read the current issue and search for candidates and backlog issues.write:jira-work— only for actions you trigger: add comments, create sub-tasks, update the description, set story points, link issues, and transition a duplicate to closed.write:issue.watcher:jira— move a duplicate's watchers onto the canonical issue during a merge.storage:app— cache duplicate results so the same issue is not re-analyzed unnecessarily.
- All Jira reads and writes are performed on behalf of the current user, so the app can only ever access or change issues that user is already permitted to work with.
- The app runs entirely on Atlassian Forge (serverless). It operates no external servers or databases; encryption, hosting, and authentication are provided by the Forge platform.
- The app does not collect credentials or API tokens, and does not store personal data beyond the temporary duplicate-result cache.