Files
gh-openshift-eng-ai-helpers…/commands/validate-blockers.md
2025-11-30 08:46:00 +08:00

198 lines
7.1 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
---
description: Validate proposed release blockers using Red Hat OpenShift release blocker criteria
argument-hint: [target-version] [component-filter] [--bug issue-key]
---
## Name
jira:validate-blockers
## Synopsis
```
/jira:validate-blockers [target-version] [component-filter] [--bug issue-key]
```
**Note**: `target-version` is required unless `--bug` is provided.
## Description
The `jira:validate-blockers` command helps release managers make data-driven decisions on proposed release blockers. It analyzes bugs with "Release Blocker = Proposed" status using Red Hat OpenShift release blocker criteria and provides clear APPROVE/REJECT/DISCUSS recommendations with detailed justification.
This command is essential for:
- Validating proposed release blockers
- Making blocker approval/rejection decisions
- Understanding why a bug should or shouldn't block a release
- Reviewing blocker criteria compliance
## Key Features
- **Proposed Blocker Focus** Automatically filters for bugs with Release Blocker = Proposed
- **Red Hat OpenShift Release Blocker Criteria** Analyzes against documented blocker criteria
- **Clear Recommendations** Provides APPROVE, REJECT, or DISCUSS recommendations
- **Detailed Justification** Shows which criteria matched and analysis rationale
- **Component Filtering** Scope validation to specific components
## Implementation
For detailed implementation guidance including JQL queries, scoring algorithms, and decision logic, see the [jira-validate-blockers skill](../skills/jira-validate-blockers/SKILL.md).
### High-Level Workflow
1. **Parse Arguments and Build Filters** Extract arguments (target version, component filter, bug ID). Build JQL query for:
- **Single bug mode** (if --bug provided): Query specific bug by issue key (version not required)
- **Component + version mode** (if both provided): Query proposed blockers matching target version and component, excluding already-fixed bugs (status not in Closed, Release Pending, Verified, ON_QA)
- **Version only mode** (if version provided): Query all proposed blockers for target version, excluding already-fixed bugs
- **Error**: If neither --bug nor version provided, show error message
2. **Query Proposed Blockers** Use MCP tools to fetch bugs based on mode:
- Single bug: Fetch one specific bug with all fields
- Component + version: Fetch proposed blockers matching version and component filter, excluding already-fixed statuses
- Version only: Fetch all proposed blockers for target version, excluding already-fixed statuses
3. **Analyze Each Blocker** Apply Red Hat OpenShift release blocker criteria:
- Strong blockers: Component Readiness regression, Service Delivery blocker, data loss, install/upgrade failures, service unavailability, regressions
- Never blockers: Severity below Important, new features without regression
- Workaround assessment: Check if acceptable workaround exists (idempotent, safe at scale, timely)
4. **Generate Recommendations** Create report with APPROVE/REJECT/DISCUSS verdicts and justifications.
### Technical Details
The skill file provides complete details on:
- JQL query construction for proposed blockers
- Blocker scoring criteria and point values
- Workaround assessment logic
- Decision thresholds
## Usage Examples
### Version-Based Validation
1. **Validate all proposed blockers for a target version**:
```
/jira:validate-blockers 4.21
```
### Component-Based Validation
2. **Validate blockers for a specific component and version**:
```
/jira:validate-blockers 4.21 "Hypershift"
```
### Single Bug Validation
3. **Validate a specific proposed blocker (version not required)**:
```
/jira:validate-blockers --bug OCPBUGS-36846
```
## Output Format
The command outputs a blocker validation report:
```markdown
# 🚫 Release Blocker Validation Report
**Components**: All | **Project**: OCPBUGS | **Proposed Blockers**: 5 | **Generated**: 2025-11-23
## Summary
- ✅ **Recommend APPROVE**: 2
- ❌ **Recommend REJECT**: 1
- ⚠️ **Needs DISCUSSION**: 2
---
## Blocker Analysis
### OCPBUGS-12345: Cluster install fails on AWS ✅ APPROVE
**Recommendation**: APPROVE - This bug meets blocker criteria
**Criteria Matched**:
- ✅ Install/upgrade failure
- ✅ Affects all users
- ✅ No acceptable workaround
**Justification**:
Install failures are strong blockers. This bug prevents cluster installation on AWS, affecting all users attempting AWS deployments. No workaround exists.
**Suggested Action**: Approve as release blocker
---
### OCPBUGS-12346: UI button misaligned ❌ REJECT
**Recommendation**: REJECT - This bug does not meet blocker criteria
**Criteria Matched**:
- ❌ Cosmetic/UI-only issue (not data loss/corruption/unavailability)
- ❌ Severity: Low (must be Important or higher)
**Justification**:
Bugs with severity below Important are never blockers. This is a cosmetic issue with no functional impact.
**Suggested Action**: Reject as release blocker, triage to appropriate sprint
---
## Next Steps
1. Review APPROVE recommendations - add to blocker list
2. Review REJECT recommendations - remove blocker status
3. Discuss unclear cases in triage meeting
```
## Arguments
**IMPORTANT**: Either `target-version` OR `--bug` must be provided. If neither is provided, the command will error out.
### Core Arguments
- **$1 target-version** *(required unless --bug is provided)*
Target release version to validate blockers for. Format: `X.Y` (e.g., `4.21`, `4.22`)
The implementation automatically:
- Expands version to search for both `X.Y` and `X.Y.0` in Target Version, Target Backport Versions, and Affected Version fields
- Excludes already-fixed bugs with status: Closed, Release Pending, Verified, ON_QA
Examples:
- `4.21` - Validates active proposed blockers for 4.21
- `4.22` - Validates active proposed blockers for 4.22
**Note**: Not required when `--bug` is provided.
- **$2 component-filter** *(optional)*
Component name(s) to filter proposed blockers. Supports single or multiple (comma-separated) components.
Examples:
- `"Hypershift"` - Single component
- `"Hypershift,Cluster Version Operator"` - Multiple components
**Note**: Ignored if `--bug` is provided. Requires `target-version` to be specified.
Default: All components for the target version
- **--bug** *(optional)*
Validate a single specific bug by its JIRA issue key.
When provided, analyzes only this bug and ignores both target-version and component-filter.
Examples:
- `--bug OCPBUGS-36846`
**Note**: When `--bug` is provided, target-version and component-filter are ignored.
Default: Not specified
## Return Value
- **Markdown Report**: Blocker validation report with recommendations
- **Exit Code**:
- `0` - Success
- `1` - Error querying JIRA or analyzing bugs
## Prerequisites
- Jira MCP server must be configured (see [plugin README](../README.md))
- MCP tools provide read-only access to JIRA APIs
- No JIRA credentials required for read operations (public Red Hat JIRA issues)
- Access to JIRA projects (OCPBUGS)
- Permission to search and view issues in target projects