← Atlassian RovoCONTENT HISTORYWHAT CHANGED · RULE-BASED ANALYSIS
Update to Atlassian Rovo
Snapshot Sep 30, 2026 · 22:46 UTC · version 2.0.1
Collection source: not recorded for this historical snapshot.
First saved snapshot
No earlier snapshot is available to establish a change.
Compare saved observations
Download comparison JSONFull technical diff · 0 changed fields
Full snapshot data
{
"name": "triage-issue",
"description": "Intelligently triage bug reports and error messages by searching for duplicates in Jira and offering to create new issues or add comments to existing ones. When an agent needs to: (1) Triage a bug report or error message, (2) Check if an issue is a duplicate, (3) Find similar past issues, (4) Create a new bug ticket with proper context, or (5) Add information to an existing ticket. Searches Jira for similar issues, identifies duplicates, checks fix history, and helps create well-structured bug reports.",
"included_files": [
{
"relative_path": "references/bug-report-templates.md",
"size_in_bytes": 9960
},
{
"relative_path": "references/search-patterns.md",
"size_in_bytes": 6211
}
],
"skill_md_contents": "---\nname: triage-issue\ndescription: \"Intelligently triage bug reports and error messages by searching for duplicates in Jira and offering to create new issues or add comments to existing ones. When an agent needs to: (1) Triage a bug report or error message, (2) Check if an issue is a duplicate, (3) Find similar past issues, (4) Create a new bug ticket with proper context, or (5) Add information to an existing ticket. Searches Jira for similar issues, identifies duplicates, checks fix history, and helps create well-structured bug reports.\"\n---\n\n# Triage Issue\n\n## Keywords\ntriage bug, check duplicate, is this a duplicate, search for similar issues, create bug ticket, file a bug, report this error, triage this error, bug report, error message, similar issues, duplicate bug, who fixed this, has this been reported, search bugs, find similar bugs, create issue, file issue\n\n## Overview\n\nAutomatically triage bug reports and error messages by searching Jira for duplicates, identifying similar past issues, and helping create well-structured bug tickets or add context to existing issues. This skill eliminates manual duplicate checking and ensures bugs are properly documented with relevant historical context.\n\n**Use this skill when:** Users need to triage error messages, bug reports, or issues to determine if they're duplicates and take appropriate action.\n\n---\n\n## Workflow\n\nFollow this 6-step process to effectively triage issues:\n\n### Step 1: Extract Key Information\n\nAnalyze the bug report or error message to identify search terms.\n\n#### Extract These Elements:\n\n**Error signature:**\n- Error type or exception name (e.g., \"NullPointerException\", \"TimeoutError\")\n- Error code or status (e.g., \"500\", \"404\", \"ERR_CONNECTION_REFUSED\")\n- Specific error message text (key phrases, not full stack trace)\n\n**Context:**\n- Component or system affected (e.g., \"authentication\", \"payment gateway\", \"API\")\n- Environment (e.g., \"production\", \"staging\", \"mobile app\")\n- User actions leading to error (e.g., \"during login\", \"when uploading file\")\n\n**Symptoms:**\n- Observable behavior (e.g., \"page blank\", \"infinite loading\", \"data not saving\")\n- Impact (e.g., \"users can't login\", \"payments failing\")\n\n#### Example Extractions:\n\n**Input:** \"Users getting 'Connection timeout' error when trying to login on mobile app\"\n**Extracted:**\n- Error: \"Connection timeout\"\n- Component: \"login\", \"mobile app\"\n- Symptom: \"can't login\"\n\n**Input:** \"NullPointerException in PaymentProcessor.processRefund() line 245\"\n**Extracted:**\n- Error: \"NullPointerException\"\n- Component: \"PaymentProcessor\", \"refund\"\n- Location: \"processRefund line 245\"\n\n---\n\n### Step 2: Search for Duplicates\n\nSearch Jira using extracted keywords to find similar or duplicate issues.\n\n#### Search Strategy:\n\nExecute **multiple targeted searches** to catch duplicates that may use different wording:\n\n**Search 1: Error-focused**\n```\nsearchJiraIssuesUsingJql(\n cloudId=\"...\",\n jql='project = \"PROJ\" AND (text ~ \"error signature\" OR summary ~ \"error signature\") AND type = Bug ORDER BY created DESC',\n fields=[\"summary\", \"description\", \"status\", \"resolution\", \"created\", \"updated\", \"assignee\"],\n maxResults=20\n)\n```\n\n**Search 2: Component-focused**\n```\nsearchJiraIssuesUsingJql(\n cloudId=\"...\",\n jql='project = \"PROJ\" AND text ~ \"component keywords\" AND type = Bug ORDER BY updated DESC',\n fields=[\"summary\", \"description\", \"status\", \"resolution\", \"created\", \"updated\", \"assignee\"],\n maxResults=20\n)\n```\n\n**Search 3: Symptom-focused**\n```\nsearchJiraIssuesUsingJql(\n cloudId=\"...\",\n jql='project = \"PROJ\" AND summary ~ \"symptom keywords\" AND type = Bug ORDER BY priority DESC, updated DESC',\n fields=[\"summary\", \"description\", \"status\", \"resolution\", \"created\", \"updated\", \"assignee\"],\n maxResults=20\n)\n```\n\n#### Search Tips:\n\n**Use key terms only:**\n- ✅ \"timeout login mobile\"\n- ✅ \"NullPointerException PaymentProcessor refund\"\n- ❌ \"Users are getting a connection timeout error when...\" (too verbose)\n\n**Search recent first:**\n- Order by `created DESC` or `updated DESC` to find recent similar issues\n- Recent bugs are more likely to be relevant duplicates\n\n**Don't over-filter:**\n- Include resolved issues (might have been reopened or regression)\n- Search across all bug statuses to find fix history\n\n---\n\n### Step 3: Analyze Search Results\n\nEvaluate the search results to determine if this is a duplicate or a new issue.\n\n#### Duplicate Detection:\n\n**High confidence duplicate (>90%):**\n- Exact same error message in summary or description\n- Same component + same error type\n- Recent issue (< 30 days) with identical symptoms\n- **Action:** Strongly recommend adding comment to existing issue\n\n**Likely duplicate (70-90%):**\n- Similar error with slight variations\n- Same component but different context\n- Resolved issue with same root cause\n- **Action:** Present as possible duplicate, let user decide\n\n**Possibly related (40-70%):**\n- Similar symptoms but different error\n- Same component area but different specific error\n- Old issue (> 6 months) that might be unrelated\n- **Action:** Mention as potentially related\n\n**Likely new issue (<40%):**\n- No similar issues found\n- Different error signature and component\n- Unique symptom or context\n- **Action:** Recommend creating new issue\n\n#### Check Fix History:\n\nIf similar resolved issues are found:\n\n**Extract relevant information:**\n- Who fixed it? (assignee on resolved issues)\n- How was it fixed? (resolution comment or linked PRs)\n- When was it fixed? (resolution date)\n- Has it regressed? (any reopened issues)\n\n**Present this context** to help with triage decision.\n\n---\n\n### Step 4: Present Findings to User\n\n**CRITICAL:** Always present findings and wait for user decision before taking any action.\n\n#### Format for Likely Duplicate:\n\n```\n🔍 **Triage Results: Likely Duplicate**\n\nI found a very similar issue already reported:\n\n**PROJ-456** - Connection timeout during mobile login\nStatus: Open | Priority: High | Created: 3 days ago\nAssignee: @john.doe\nhttps://yoursite.atlassian.net/browse/PROJ-456\n\n**Similarity:**\n- Same error: \"Connection timeout\"\n- Same component: Mobile app login\n- Same symptoms: Users unable to login\n\n**Difference:**\n- Original report mentioned iOS specifically, this report doesn't specify platform\n\n**Recommendation:** Add your details as a comment to PROJ-456\n\nWould you like me to:\n1. Add a comment to PROJ-456 with your error details\n2. Create a new issue anyway (if you think this is different)\n3. Show me more details about PROJ-456 first\n```\n\n#### Format for Possibly Related:\n\n```\n🔍 **Triage Results: Possibly Related Issues Found**\n\nI found 2 potentially related issues:\n\n**1. PROJ-789** - Mobile app authentication failures\nStatus: Resolved | Fixed: 2 weeks ago | Fixed by: @jane.smith\nhttps://yoursite.atlassian.net/browse/PROJ-789\n\n**2. PROJ-234** - Login timeout on slow connections\nStatus: Open | Priority: Medium | Created: 1 month ago\nhttps://yoursite.atlassian.net/browse/PROJ-234\n\n**Assessment:** Your error seems related but has unique aspects\n\n**Recommendation:** Create a new issue, but reference these related tickets\n\nWould you like me to create a new bug ticket?\n```\n\n#### Format for No Duplicates:\n\n```\n🔍 **Triage Results: No Duplicates Found**\n\nI searched Jira for:\n- \"Connection timeout\" errors\n- Mobile login issues\n- Authentication failures\n\nNo similar open or recent issues found.\n\n**Recommendation:** Create a new bug ticket\n\n**Note:** I found 1 old resolved issue (PROJ-123 from 8 months ago) about login timeouts, but it was for web, not mobile, and was resolved as \"configuration error.\"\n\nWould you like me to create a new bug ticket for this issue?\n```\n\n---\n\n### Step 5: Execute User Decision\n\nBased on user's choice, either add a comment or create a new issue.\n\n#### Option A: Add Comment to Existing Issue\n\nIf user wants to add to existing issue:\n\n**Fetch the full issue first** to understand context:\n```\ngetJiraIssue(\n cloudId=\"...\",\n issueIdOrKey=\"PROJ-456\"\n)\n```\n\n**Then add the comment:**\n```\naddCommentToJiraIssue(\n cloudId=\"...\",\n issueIdOrKey=\"PROJ-456\",\n commentBody=\"[formatted comment - see below]\"\n)\n```\n\n**Comment Structure:**\n```markdown\n## Additional Instance Reported\n\n**Reporter:** [User's name or context]\n**Date:** [Current date]\n\n**Error Details:**\n[Paste relevant error message or stack trace]\n\n**Context:**\n- Environment: [e.g., Production, iOS 16.5]\n- User Impact: [e.g., 50+ users affected in last hour]\n- Steps to Reproduce: [if provided]\n\n**Additional Notes:**\n[Any unique aspects of this instance]\n\n---\n*Added via triage automation*\n```\n\n#### Option B: Create New Issue\n\nIf user wants to create new issue:\n\n**First, check available issue types:**\n```\ngetJiraProjectIssueTypesMetadata(\n cloudId=\"...\",\n projectIdOrKey=\"PROJ\"\n)\n```\n\n**Determine appropriate issue type:**\n- For bugs/errors → Use \"Bug\" (if available)\n- For issues without errors → Use \"Task\" or \"Issue\" \n- Fallback → First available non-Epic, non-Subtask type\n\n**Create the issue:**\n```\ncreateJiraIssue(\n cloudId=\"...\",\n projectKey=\"PROJ\",\n issueTypeName=\"Bug\",\n summary=\"[Clear, specific summary - see below]\",\n description=\"[Detailed description - see below]\",\n additional_fields={\n \"priority\": {\"name\": \"Medium\"} # Adjust based on user input severity assessment\n }\n)\n```\n\n**Summary Format:**\nUse the pattern: `[Component] [Error Type] - [Brief Symptom]`\n\n**Examples:**\n- ✅ \"Mobile Login: Connection timeout during authentication\"\n- ✅ \"Payment API: NullPointerException in refund processing\"\n- ✅ \"Dashboard: Infinite loading on reports page\"\n- ❌ \"Error in production\" (too vague)\n- ❌ \"Users experiencing issues\" (not specific)\n\n**Description Structure:**\n```markdown\n## Issue Description\n[1-2 sentence summary of the problem]\n\n## Error Details\n```\n[Error message or stack trace]\n```\n\n## Environment\n- **Platform:** [e.g., Mobile iOS, Web, API]\n- **Version:** [if known]\n- **Environment:** [Production/Staging/etc]\n\n## Steps to Reproduce\n1. [Step 1]\n2. [Step 2]\n3. [Step 3]\n\n## Expected Behavior\n[What should happen]\n\n## Actual Behavior\n[What actually happens]\n\n## User Impact\n- **Frequency:** [e.g., Every time, Intermittent]\n- **Affected Users:** [e.g., All users, Mobile users only]\n- **Severity:** [e.g., Users cannot complete checkout]\n\n## Additional Context\n[Any other relevant information]\n\n## Related Issues\n[If applicable, reference similar issues found during triage]\n- See also: PROJ-123 (similar but resolved)\n\n---\n*Created via automated triage*\n```\n\n---\n\n### Step 6: Provide Summary\n\nAfter taking action, confirm what was done.\n\n#### If Comment Added:\n\n```\n✅ **Comment Added Successfully**\n\nAdded details to existing issue: **PROJ-456**\nhttps://yoursite.atlassian.net/browse/PROJ-456\n\n**What I included:**\n- Your error details\n- Environment context\n- User impact information\n\n**Next Steps:**\n- The assignee (@john.doe) will be notified\n- Monitor PROJ-456 for updates\n- If this turns out to be different, we can still create a separate ticket\n```\n\n#### If New Issue Created:\n\n```\n✅ **New Issue Created**\n\n**PROJ-890** - Mobile Login: Connection timeout during authentication\nhttps://yoursite.atlassian.net/browse/PROJ-890\n\nType: Bug | Priority: Medium | Status: Open\n\n**What's Included:**\n- Complete error details and stack trace\n- Environment and reproduction steps\n- User impact assessment\n- References to related issues (PROJ-123, PROJ-789)\n\n**Next Steps:**\n- Issue will be reviewed during next triage meeting\n- Consider setting priority based on user impact\n- Assign to appropriate team member\n```\n\n---\n\n## Edge Cases & Troubleshooting\n\n### Multiple Potential Duplicates\n\nIf you find 3+ very similar issues:\n\n```\n🔍 **Triage Results: Multiple Possible Duplicates**\n\nI found 3 issues that might be related:\n\n**Most Likely Duplicate:**\n**PROJ-456** - [summary] (Open, 2 days ago)\nMatch: 95% - Same error and component\n\n**Also Possibly Related:**\n**PROJ-234** - [summary] (Open, 1 month ago)\nMatch: 70% - Similar symptoms, different error\n\n**PROJ-123** - [summary] (Resolved, 8 months ago)\nMatch: 60% - Related component, but was fixed\n\n**Recommendation:** \n1. Add to PROJ-456 (most similar)\n2. Reference PROJ-234 in your comment (might be related)\n3. Note PROJ-123 was previously fixed (possible regression)\n\nWhich issue should I add your details to? (Or create new)\n```\n\n### Unclear Project Context\n\nIf user doesn't specify which project:\n\n```\nWhich Jira project should I search for similar issues?\n\nAvailable projects:\n- BACKEND (Backend Services)\n- MOBILE (Mobile Apps)\n- WEB (Web Platform)\n- INFRA (Infrastructure)\n\nOr tell me the project key directly (e.g., BACKEND, MOBILE)\n```\n\n### Insufficient Information\n\nIf the bug report lacks critical details:\n\n```\nI need more information to effectively triage this issue:\n\n**What I have:**\n- Error: \"Something went wrong\"\n\n**What would help:**\n- Specific error message or code\n- Which part of the system (login, payment, etc.)\n- What the user was trying to do\n- Which environment (production, staging, mobile, web)\n\nCan you provide any of these details?\n```\n\n### Resolved Regression\n\nIf you find a resolved issue that matches:\n\n```\n🔍 **Triage Results: Possible Regression**\n\nThis looks like it might be a regression of a previously fixed issue:\n\n**PROJ-567** - [Same issue description]\nStatus: Resolved (Fixed) | Fixed: 3 months ago | Fixed by: @jane.smith\nResolution: [Brief description of fix]\nhttps://yoursite.atlassian.net/browse/PROJ-567\n\n**This suggests:**\n- The original fix may not have fully addressed the root cause\n- OR there's been a regression in recent changes\n- OR this is a different issue with similar symptoms\n\n**Recommendation:** Create a new issue and link it to PROJ-567 as \"may be related to\" or \"regression of\"\n\nShould I create a new issue with this context?\n```\n\n### Custom Required Fields\n\nIf creating an issue fails due to required fields:\n\n1. **Check what fields are required:**\n```\ngetJiraIssueTypeMetaWithFields(\n cloudId=\"...\",\n projectIdOrKey=\"PROJ\",\n issueTypeId=\"10001\"\n)\n```\n\n2. **Ask user for values:**\n```\nThis project requires additional fields to create a Bug:\n- Severity: [High/Medium/Low]\n- Affected Version: [Version number]\n\nPlease provide these values so I can create the issue.\n```\n\n3. **Retry with additional fields:**\n```\ncreateJiraIssue(\n ...existing parameters...,\n additional_fields={\n \"priority\": {\"name\": \"High\"},\n \"customfield_10001\": {\"value\": \"Production\"}\n }\n)\n```\n\n---\n\n## Tips for Effective Triage\n\n### For Search:\n\n**Do:**\n✅ Use multiple search queries with different angles\n✅ Include both open and resolved issues in search\n✅ Search for error signatures and symptoms separately\n✅ Look at recent issues first (last 30-90 days)\n✅ Check for patterns (multiple reports of same thing)\n\n**Don't:**\n❌ Search with entire error messages (too specific)\n❌ Only search open issues (miss fix history)\n❌ Ignore resolved issues (miss regressions)\n❌ Use too many keywords (reduces matches)\n\n### For Issue Creation:\n\n**Do:**\n✅ Write clear, specific summaries with component names\n✅ Include complete error messages in code blocks\n✅ Add environment and impact details\n✅ Reference related issues found during search\n✅ Use \"Bug\" issue type for actual bugs\n\n**Don't:**\n❌ Create vague summaries like \"Error in production\"\n❌ Paste entire stack traces in summary (use description)\n❌ Skip reproduction steps\n❌ Forget to mention user impact\n❌ Hard-code issue type without checking availability\n\n### For Duplicate Assessment:\n\n**High Confidence Duplicates:**\n- Exact same error + same component + recent (< 30 days)\n- Same root cause identified\n\n**Likely Different Issues:**\n- Different error signatures\n- Different components/systems\n- Significantly different contexts\n\n**When Unsure:**\n- Present both options to user\n- Lean toward creating new issue (can be closed as duplicate later)\n- Linking issues is better than hiding information\n\n---\n\n## Examples\n\n### Example 1: Clear Duplicate Found\n\n**User Input:**\n```\nTriage this error: \"Connection timeout error when users try to login on iOS app\"\n```\n\n**Process:**\n1. Extract: \"Connection timeout\", \"login\", \"iOS\"\n2. Search: Find PROJ-456 (open, 2 days ago) with exact same error\n3. Analyze: 95% match - same error, component, symptom\n4. Present: Show PROJ-456 as duplicate, recommend adding comment\n5. Execute: User confirms, add comment with iOS-specific details\n6. Confirm: Comment added to PROJ-456\n\n**Output:**\n```\n✅ Comment added to PROJ-456\n\nYour iOS-specific error details have been added to the existing issue.\nThe assignee will be notified.\n```\n\n### Example 2: New Issue with Related Context\n\n**User Input:**\n```\nError: NullPointerException in PaymentProcessor.processRefund() at line 245\nStack trace: [full stack trace]\n```\n\n**Process:**\n1. Extract: \"NullPointerException\", \"PaymentProcessor\", \"processRefund\", \"line 245\"\n2. Search: Find PROJ-789 (resolved, 3 weeks ago) about payment errors, but different line\n3. Analyze: Related component but different specific error\n4. Present: No duplicates, found related issue, recommend new ticket\n5. Execute: User confirms, create new Bug with context\n6. Confirm: PROJ-890 created\n\n**Output:**\n```\n✅ New Issue Created\n\nPROJ-890 - Payment API: NullPointerException in refund processing\nhttps://yoursite.atlassian.net/browse/PROJ-890\n\nReferences related issue PROJ-789 for context.\n```\n\n### Example 3: Possible Regression\n\n**User Input:**\n```\nUsers can't upload files larger than 5MB, getting \"Upload failed\" error\n```\n\n**Process:**\n1. Extract: \"Upload failed\", \"5MB\", \"file upload\"\n2. Search: Find PROJ-234 (resolved 2 months ago) - exact same issue\n3. Analyze: Was fixed but now happening again\n4. Present: Possible regression, recommend new issue linked to old one\n5. Execute: Create new issue, link to PROJ-234 as \"may be caused by\"\n6. Confirm: PROJ-891 created with regression context\n\n**Output:**\n```\n✅ New Issue Created (Possible Regression)\n\nPROJ-891 - File Upload: Upload failed for files >5MB (Regression?)\nhttps://yoursite.atlassian.net/browse/PROJ-891\n\nThis may be a regression of PROJ-234, which was resolved 2 months ago.\nIssue includes reference to original fix for investigation.\n```\n\n---\n\n## When NOT to Use This Skill\n\nThis skill is for **triaging bugs and errors only**. Do NOT use for:\n\n❌ Feature requests (use spec-to-backlog)\n❌ General task creation (use capture-tasks-from-meeting-notes)\n❌ Searching for information (use search-company-knowledge)\n❌ Generating status reports (use generate-status-report)\n\n**Use this skill specifically for:**\n✅ \"Is this a duplicate bug?\"\n✅ \"Triage this error message\"\n✅ \"Has this been reported before?\"\n✅ \"Create a bug ticket for this\"\n\n---\n\n## Quick Reference\n\n**Primary workflow:** Extract → Search → Analyze → Present → Execute → Confirm\n\n**Search tool:** `searchJiraIssuesUsingJql(cloudId, jql, fields, maxResults)`\n\n**Action tools:**\n- `addCommentToJiraIssue(cloudId, issueIdOrKey, commentBody)` - Add to existing\n- `createJiraIssue(cloudId, projectKey, issueTypeName, summary, description)` - Create new\n\n**Issue type:** Always prefer \"Bug\" for error reports, check with `getJiraProjectIssueTypesMetadata`\n\n**Remember:**\n- Multiple searches catch more duplicates\n- Present findings before acting\n- Include error details and context\n- Reference related issues\n- Use \"Bug\" issue type when available\n"
}SHA-256: b319e8f842b6b2b64cd0f2053305b43bfaba9fed4bc16f415b09b7bb951b4e2e