Ticket Duplicate Detection Skill
Patterns for checking Linear for similar/duplicate tickets before creating new ones.
Purpose
Avoid creating duplicate tickets by:
- Searching Linear with multiple query patterns
- Presenting potential duplicates to user
- Offering options: link, sub-issue, or proceed
Detection Methodology
Step 1: Extract Search Keywords
From the user's issue description, extract:
- Primary keywords: Main noun/verb (e.g., "drawer", "modal", "z-index")
- Technical terms: Component names, error messages, file names
- Synonyms: Related terms (e.g., "sidebar" for "drawer", "dialog" for "modal")
Step 2: Search Linear
Use mcp__linear__list_issues with multiple queries:
# Search 1: Primary keywords
mcp__linear__list_issues with query="drawer z-index", updatedAt="-P30D", limit=20
# Search 2: Error messages (if applicable)
mcp__linear__list_issues with query="handleTabChange undefined", limit=10
# Search 3: Component/file names
mcp__linear__list_issues with query="AppDrawer", limit=10
Time range: Search issues updated in last 30 days (updatedAt: "-P30D")
Step 3: Filter Results
Check results for:
- Open issues (active work)
- Recently closed (might be reopened)
- Same component/area
- Similar symptoms
Step 4: Present to User
If potential duplicates found:
## Potential Duplicate Tickets Found
I found these similar tickets before creating a new one:
1. **PROJ-123**: "Fix drawer z-index issue" (Open)
- Similar: Both about drawer layering
2. **PROJ-100**: "Modal appears behind sidebar" (Done - 2 weeks ago)
- Similar: Same UI area
**Options:**
A) Link to existing ticket (add as related)
B) Create as sub-issue of existing ticket
C) Proceed with new ticket (different issue)
Which option?
Step 5: Take Action
Based on user choice:
- Option A: Add link/comment to existing ticket
- Option B: Create with parentId set
- Option C: Create new ticket as planned
Search Patterns Reference
| Issue Type |
Primary Search |
Secondary Search |
| UI Bug |
Component name + symptom |
"modal", "dialog", "overlay" |
| Error |
Error message |
Function/file name |
| Feature |
Feature name |
Related features |
| Performance |
"slow", "performance" |
Component name |
| Styling |
"z-index", "css", "style" |
Component name |
Common Synonym Mappings
| Term |
Also search for |
| drawer |
sidebar, nav, navigation |
| modal |
dialog, popup, overlay |
| button |
btn, click, action |
| form |
input, field, validation |
| error |
bug, crash, fail |
Integration
Used by:
linear-ticket-creator agent (required first step)
/ticket-create command (via agent)
1---2name: ticket-duplicate-detection3description: Detects similar/duplicate tickets before creating new ones.4---56# Ticket Duplicate Detection Skill78Patterns for checking Linear for similar/duplicate tickets before creating new ones.910## Purpose1112Avoid creating duplicate tickets by:13- Searching Linear with multiple query patterns14- Presenting potential duplicates to user15- Offering options: link, sub-issue, or proceed1617## Detection Methodology1819### Step 1: Extract Search Keywords2021From the user's issue description, extract:221. **Primary keywords**: Main noun/verb (e.g., "drawer", "modal", "z-index")232. **Technical terms**: Component names, error messages, file names243. **Synonyms**: Related terms (e.g., "sidebar" for "drawer", "dialog" for "modal")2526### Step 2: Search Linear2728Use `mcp__linear__list_issues` with multiple queries:2930```31# Search 1: Primary keywords32mcp__linear__list_issues with query="drawer z-index", updatedAt="-P30D", limit=203334# Search 2: Error messages (if applicable)35mcp__linear__list_issues with query="handleTabChange undefined", limit=103637# Search 3: Component/file names38mcp__linear__list_issues with query="AppDrawer", limit=1039```4041**Time range**: Search issues updated in last 30 days (`updatedAt: "-P30D"`)4243### Step 3: Filter Results4445Check results for:46- Open issues (active work)47- Recently closed (might be reopened)48- Same component/area49- Similar symptoms5051### Step 4: Present to User5253If potential duplicates found:5455```markdown56## Potential Duplicate Tickets Found5758I found these similar tickets before creating a new one:59601. **PROJ-123**: "Fix drawer z-index issue" (Open)61 - Similar: Both about drawer layering62632. **PROJ-100**: "Modal appears behind sidebar" (Done - 2 weeks ago)64 - Similar: Same UI area6566**Options:**67A) Link to existing ticket (add as related)68B) Create as sub-issue of existing ticket69C) Proceed with new ticket (different issue)7071Which option?72```7374### Step 5: Take Action7576Based on user choice:77- **Option A**: Add link/comment to existing ticket78- **Option B**: Create with parentId set79- **Option C**: Create new ticket as planned8081## Search Patterns Reference8283| Issue Type | Primary Search | Secondary Search |84|------------|---------------|------------------|85| UI Bug | Component name + symptom | "modal", "dialog", "overlay" |86| Error | Error message | Function/file name |87| Feature | Feature name | Related features |88| Performance | "slow", "performance" | Component name |89| Styling | "z-index", "css", "style" | Component name |9091## Common Synonym Mappings9293| Term | Also search for |94|------|-----------------|95| drawer | sidebar, nav, navigation |96| modal | dialog, popup, overlay |97| button | btn, click, action |98| form | input, field, validation |99| error | bug, crash, fail |100101## Integration102103Used by:104- `linear-ticket-creator` agent (required first step)105- `/ticket-create` command (via agent)