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:
code
# 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:
markdown
## 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-creatoragent (required first step) - •
/ticket-createcommand (via agent)