AgentSkillsCN

ticket-duplicate-detection

在创建新工单之前,先检测是否存在相似或重复的工单。

SKILL.md
--- frontmatter
name: ticket-duplicate-detection
description: Detects similar/duplicate tickets before creating new ones.
user-invocable: false

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:

  1. Primary keywords: Main noun/verb (e.g., "drawer", "modal", "z-index")
  2. Technical terms: Component names, error messages, file names
  3. 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 TypePrimary SearchSecondary Search
UI BugComponent name + symptom"modal", "dialog", "overlay"
ErrorError messageFunction/file name
FeatureFeature nameRelated features
Performance"slow", "performance"Component name
Styling"z-index", "css", "style"Component name

Common Synonym Mappings

TermAlso search for
drawersidebar, nav, navigation
modaldialog, popup, overlay
buttonbtn, click, action
forminput, field, validation
errorbug, crash, fail

Integration

Used by:

  • linear-ticket-creator agent (required first step)
  • /ticket-create command (via agent)