Jira Ticket Analysis Skill
This skill provides methodology for analyzing Jira ticket quality and identifying areas for improvement.
Quality Dimensions
1. Clarity
Questions to assess:
- •Is the goal obvious from the summary?
- •Is the description free of jargon?
- •Would a new team member understand this?
- •Are acronyms explained?
Scoring:
- •5: Crystal clear, no questions needed
- •4: Clear with minor ambiguity
- •3: Understandable but needs context
- •2: Confusing, multiple interpretations
- •1: Cannot understand the request
2. Completeness
Questions to assess:
- •Are acceptance criteria defined?
- •Is the scope clear (what's in/out)?
- •Are dependencies listed?
- •Is technical context provided?
Scoring:
- •5: All information present, ready to implement
- •4: Minor details missing
- •3: Key information missing but discoverable
- •2: Significant gaps
- •1: Missing most required information
3. Actionability
Questions to assess:
- •Can work start immediately?
- •Are blockers identified and addressed?
- •Is the scope achievable?
- •Are success criteria measurable?
Scoring:
- •5: Can start now with confidence
- •4: One small clarification needed
- •3: Some research/clarification needed
- •2: Blocked or unclear how to proceed
- •1: Cannot start without major discovery
4. Context
Questions to assess:
- •Is the "why" explained?
- •Is user impact described?
- •Are related tickets linked?
- •Is there technical background?
Scoring:
- •5: Full context, understand importance
- •4: Good context, minor gaps
- •3: Basic context provided
- •2: Little context, unclear importance
- •1: No context, don't know why this matters
Analysis Process
Step 1: Initial Read
- •Read summary and description
- •Note first impressions
- •Identify obvious issues
Step 2: Score Dimensions
Rate each dimension 1-5 and note specific issues:
markdown
| Dimension | Score | Issues | |-----------|-------|--------| | Clarity | 3 | Acronyms undefined, vague scope | | Completeness | 2 | No acceptance criteria | | Actionability | 2 | Blocked by design | | Context | 4 | Good background | | **Overall** | **2.75** | Needs refinement |
Step 3: Identify Improvements
For each issue, provide:
- •What's wrong
- •How to fix it
- •Example improved text
Step 4: Provide Recommendations
Prioritize fixes by impact:
- •Critical (blocks understanding)
- •Important (delays work)
- •Nice-to-have (polish)
Common Issues and Fixes
Issue: Vague Summary
Before: "Fix the thing" After: "Fix payment processing timeout for orders over $1000"
Pattern: [Action] [specific thing] [condition/context]
Issue: Missing Acceptance Criteria
Before:
code
Make the page faster
After:
code
h2. Acceptance Criteria * Page load time < 2 seconds on 3G connection * Lighthouse performance score > 80 * No layout shift during load * Images lazy-loaded below fold
Issue: No Context/Why
Before:
code
Add retry logic to API calls
After:
code
h2. Context Users are experiencing intermittent failures when the payment service is slow to respond. This causes checkout abandonment and support tickets. h2. Problem When the payment API times out (typically 2-3 times per day during peak hours), the user sees an error with no recovery path. h2. Solution Add retry logic with exponential backoff to handle transient failures gracefully.
Issue: Code-Heavy Description
Before:
code
Change this:
function processOrder(order) {
// 50 lines of code
}
To this:
function processOrder(order) {
// 50 different lines of code
}
After:
code
h2. Change Required
Modify {{src/services/orderProcessor.ts}} to validate order totals before processing.
h2. Technical Notes
* Add validation in processOrder function
* Throw OrderValidationError for invalid totals
* Log validation failures for monitoring
Issue: Scope Creep
Before:
code
Add user notifications. Also we should probably redo the entire notification system and add email preferences and maybe webhooks too.
After:
code
h2. Scope Add email notification when order ships. h2. Out of Scope (Future Tickets) * Notification preferences UI * Webhook integrations * Push notifications
Analysis Report Template
markdown
## Ticket Quality Analysis: PROJ-123 ### Summary [Brief description of the ticket] ### Quality Scores | Dimension | Score | Status | |-----------|-------|--------| | Clarity | X/5 | [Good/Needs Work/Poor] | | Completeness | X/5 | [Good/Needs Work/Poor] | | Actionability | X/5 | [Good/Needs Work/Poor] | | Context | X/5 | [Good/Needs Work/Poor] | | **Overall** | **X/5** | | ### Issues Found #### Critical Issues 1. [Issue description] - Impact: [Why this matters] - Fix: [How to resolve] #### Important Issues 1. [Issue description] - Impact: [Why this matters] - Fix: [How to resolve] #### Minor Issues 1. [Issue description] ### Recommended Improvements 1. **[Most Important Fix]** Current: [What it says now] Improved: [What it should say] 2. **[Second Fix]** [Details] ### Readiness Assessment - [ ] Ready for sprint planning - [x] Needs refinement first - [ ] Needs product clarification - [ ] Needs technical discovery
Batch Analysis Patterns
Finding Low-Quality Tickets
code
# Missing description
project = PROJ AND description IS EMPTY
# Short descriptions (< 100 chars approximation)
project = PROJ AND description ~ "[a-zA-Z]" AND NOT description ~ "*\\n*"
# No acceptance criteria pattern
project = PROJ AND description !~ "acceptance" AND description !~ "criteria" AND type = Story
# Old unrefined tickets
project = PROJ AND status = "To Do" AND created <= -60d AND labels NOT IN ("refined", "ready")
Quality Dashboard Metrics
Track over time:
- •% tickets with acceptance criteria
- •Average quality score
- •Tickets needing refinement
- •Time from creation to ready status
Integration with Refinement
Pre-Refinement Analysis
- •Run batch analysis on sprint candidates
- •Generate quality report
- •Prioritize tickets needing work
- •Estimate refinement effort
During Refinement
- •Review analysis findings
- •Discuss improvements with team
- •Update tickets in real-time
- •Re-score after improvements
Post-Refinement Verification
- •Verify all critical issues addressed
- •Confirm acceptance criteria added
- •Check technical context included
- •Mark tickets as "refined"