201 lines
6.9 KiB
Markdown
201 lines
6.9 KiB
Markdown
---
|
||
description: Analyze new bugs and cards added over a time period and generate grooming meeting agenda
|
||
argument-hint: [project-filter] [time-period] [--component component-name] [--label label-name] [--type issue-type]
|
||
---
|
||
|
||
## Name
|
||
jira:grooming
|
||
|
||
## Synopsis
|
||
```
|
||
/jira:grooming [project-filter] [time-period] [--component component-name] [--label label-name] [--type issue-type]
|
||
```
|
||
|
||
## Description
|
||
The `jira:grooming` command helps teams prepare for backlog grooming meetings. It automatically collects bugs and user stories created within a specified time period OR assigned to a specific sprint, analyzes their priority, complexity, and dependencies, and generates structured grooming meeting agendas.
|
||
|
||
This command is particularly useful for:
|
||
- Backlog organization before sprint planning
|
||
- Sprint-specific grooming sessions
|
||
- Regular requirement grooming meetings
|
||
- Priority assessment of new bugs
|
||
- Technical debt organization and planning
|
||
|
||
## Key Features
|
||
|
||
- **Automated Data Collection** – Collect and categorize issues within specified time periods or sprints by type (Bug, Story, Task, Epic), extract key information (priority, components, labels), and identify unassigned or incomplete issues.
|
||
|
||
- **Intelligent Analysis** – Evaluate issue complexity based on historical data, identify related or duplicate issues, analyze business value and technical impact, and detect potential dependencies.
|
||
|
||
- **Agenda Generation** – Build a structured, actionable meeting outline organized by priority and type, with discussion points, decision recommendations, estimation references, and risk alerts.
|
||
|
||
## Implementation
|
||
|
||
The `jira:grooming` command runs in three main phases:
|
||
|
||
### 🧩 Phase 1: Data Collection
|
||
- Automatically queries JIRA for issues based on the provided time range or sprint name:
|
||
- **Time range mode**: Filters issues by creation date within the specified period (e.g., `last-week`, `2024-01-01:2024-01-31`)
|
||
- **Sprint mode**: Filters issues by JIRA Sprint without time constraints (e.g., `"OTA 277"`)
|
||
- Sprint detection: If the time-period parameter doesn't match known time range formats, it's treated as a sprint name
|
||
- Supports complex JQL filters, including multi-project, component-based, label-based, and issue-type queries.
|
||
- Extracts key fields such as title, type, priority, component, reporter, and assignee.
|
||
- Detects related or duplicate issues to provide better context.
|
||
|
||
### 🧠 Phase 2: Analysis & Processing
|
||
- Groups collected issues by type and priority (e.g., Critical Bugs, High Priority Stories).
|
||
- Identifies incomplete or unclear issues that need clarification.
|
||
- Estimates complexity and effort based on similar historical data.
|
||
- Highlights risks, dependencies, and recommended next actions.
|
||
|
||
### 📋 Phase 3: Report Generation
|
||
- Automatically generates a **structured grooming meeting agenda** in Markdown format.
|
||
- Includes discussion points, decision checklists, and action items.
|
||
- Output can be copied directly into Confluence or shared with the team.
|
||
|
||
## Usage Examples
|
||
|
||
1. **Single project weekly review**:
|
||
```
|
||
/jira:grooming OCPSTRAT last-week
|
||
```
|
||
|
||
2. **Multiple OpenShift projects**:
|
||
```
|
||
/jira:grooming "OCPSTRAT,OCPBUGS,HOSTEDCP" last-2-weeks
|
||
```
|
||
|
||
3. **Filter by component**:
|
||
```
|
||
/jira:grooming OCPSTRAT last-week --component "Control Plane"
|
||
```
|
||
|
||
4. **Custom date range**:
|
||
```
|
||
/jira:grooming OCPBUGS 2024-10-01:2024-10-15
|
||
```
|
||
|
||
5. **Filter by label**:
|
||
```
|
||
/jira:grooming OCPSTRAT last-week --label "technical-debt"
|
||
```
|
||
|
||
6. **Combine component and label filters**:
|
||
```
|
||
/jira:grooming OCPSTRAT last-week --component "Control Plane" --label "performance"
|
||
```
|
||
|
||
7. **Query sprint issues with component filter**:
|
||
```bash
|
||
/jira:grooming OCPBUGS "OTA 277" --component "Cluster Version Operator"
|
||
```
|
||
|
||
8. **Filter by issue type**:
|
||
```
|
||
/jira:grooming OCPSTRAT last-week --type Bug
|
||
```
|
||
|
||
9. **Filter by multiple issue types**:
|
||
```
|
||
/jira:grooming OCPSTRAT last-week --type "Bug,Epic"
|
||
```
|
||
|
||
10. **Combine all filters**:
|
||
```
|
||
/jira:grooming OCPSTRAT last-week --component "Control Plane" --label "performance" --type Story
|
||
```
|
||
|
||
## Output Format
|
||
|
||
### Grooming Meeting Agenda
|
||
|
||
The command outputs a ready-to-use Markdown document that can be copied into Confluence or shared with your team.
|
||
|
||
```markdown
|
||
# Backlog Grooming Agenda
|
||
**Project**: [project-key] | **Period**: [time-period] | **New Issues**: [count]
|
||
|
||
## 🚨 Critical Issues ([count])
|
||
- **[PROJ-1234]** System crashes on login - *Critical, needs immediate attention*
|
||
- **[PROJ-1235]** Performance degradation - *High, assign to team lead*
|
||
|
||
## 📈 High Priority Stories ([count])
|
||
- **[PROJ-1236]** User profile enhancement - *Ready for sprint*
|
||
- **[PROJ-1237]** Payment integration - *Needs design review*
|
||
|
||
## 📝 Needs Clarification ([count])
|
||
- **[PROJ-1238]** Missing acceptance criteria
|
||
- **[PROJ-1239]** Unclear technical requirements
|
||
|
||
## 📋 Action Items
|
||
- [ ] Assign PROJ-1234 to senior developer (immediate)
|
||
- [ ] Schedule design review for PROJ-1237 (this week)
|
||
- [ ] Clarify requirements for PROJ-1238,1239 (before next grooming)
|
||
```
|
||
|
||
## Configuration
|
||
|
||
### Default Query Configuration (.jira-grooming.json)
|
||
```json
|
||
{
|
||
"defaultProjects": ["OCPSTRAT", "OCPBUGS"],
|
||
"defaultLabels": [],
|
||
"priorityMapping": {
|
||
"Critical": "🚨 Critical",
|
||
"High": "📈 High Priority"
|
||
},
|
||
"estimationReference": {
|
||
"enableHistoricalComparison": true
|
||
}
|
||
}
|
||
```
|
||
|
||
## Arguments
|
||
|
||
- **$1 – project-filter**
|
||
JIRA project selector. Supports single or multiple projects (comma-separated).
|
||
Examples:
|
||
- `OCPSTRAT`
|
||
- `"OCPSTRAT,OCPBUGS,HOSTEDCP"`
|
||
- `"OpenShift Virtualization,Red Hat OpenShift Control Planes"`
|
||
Default: read from configuration file
|
||
|
||
- **$2 – time-period**
|
||
Time range for issue collection OR sprint name.
|
||
Options:
|
||
- Time ranges: `last-week` | `last-2-weeks` | `last-month` | `YYYY-MM-DD:YYYY-MM-DD`
|
||
- Sprint name: Any string that doesn't match time range formats (e.g., `"OTA 277"`)
|
||
Default: `last-week`
|
||
|
||
**Behavior:**
|
||
- If a time range is provided, filters issues by creation date within that range
|
||
- If a sprint name is provided, filters issues by JIRA Sprint WITHOUT applying time range constraints
|
||
|
||
- **--component** *(optional)*
|
||
Filter by JIRA component (single or comma-separated).
|
||
Examples:
|
||
- `--component "Networking"`
|
||
- `--component "Control Plane,Storage"`
|
||
|
||
- **--label** *(optional)*
|
||
Filter by JIRA labels (single or comma-separated).
|
||
Examples:
|
||
- `--label "technical-debt"`
|
||
- `--label "performance,security"`
|
||
|
||
- **--type** *(optional)*
|
||
Filter by JIRA issue type (single or comma-separated).
|
||
Examples:
|
||
- `--type Bug`
|
||
- `--type "Epic,Story"`
|
||
- `--type "Bug,Task,Feature"`
|
||
|
||
Common issue types: `Bug`, `Story`, `Task`, `Epic`, `Feature`, `Sub-task`
|
||
|
||
## Return Value
|
||
- **Markdown Report**: Ready-to-use grooming agenda with categorized issues and action items
|
||
|
||
## See Also
|
||
- `jira:status-rollup` - Status rollup reports
|
||
- `jira:solve` - Issue solution generation
|