home / skills / gentleman-programming / gentleman-skills / jira-task

jira-task skill

/curated/jira-task

This skill creates Jira tasks following Prowler's standard format when you ask to create a Jira task, ticket, or issue.

npx playbooks add skill gentleman-programming/gentleman-skills --skill jira-task

Review the files below or copy the command above to add this skill to your agents.

Files (1)
SKILL.md
9.2 KB
---
name: jira-task
description: >
  Creates Jira tasks following Prowler's standard format.
  Trigger: When user asks to create a Jira task, ticket, or issue.
license: Apache-2.0
metadata:
  author: gentleman-programming
  version: "1.0"
---

## When to Use

Use this skill when creating Jira tasks for:
- Bug reports
- Feature requests
- Refactoring tasks
- Documentation tasks

## Multi-Component Work: Split into Multiple Tasks

**IMPORTANT:** When work requires changes in multiple components (API, UI, SDK), create **separate tasks for each component** instead of one big task.

### Why Split?
- Different developers can work in parallel
- Easier to review and test
- Better tracking of progress
- API needs to be done before UI (dependency)

### Bug vs Feature: Different Structures

#### For BUGS: Create separate sibling tasks
Bugs are typically urgent fixes, so create independent tasks per component:

**Task 1 - API:**
- Title: `[BUG] Add aws_region field to AWS provider secrets (API)`
- Must be done first (UI depends on it)

**Task 2 - UI:**
- Title: `[BUG] Add region selector to AWS provider connection form (UI)`
- Blocked by API task

#### For FEATURES: Create parent + child tasks
Features need business context for stakeholders, so use a parent-child structure:

**Parent Task (for PM/Stakeholders):**
- Title: `[FEATURE] AWS GovCloud support`
- Contains: Feature overview, user story, acceptance criteria from USER perspective
- NO technical details
- Links to child tasks

**Child Task 1 - API:**
- Title: `[FEATURE] AWS GovCloud support (API)`
- Contains: Technical details, affected files, API-specific acceptance criteria
- Links to parent

**Child Task 2 - UI:**
- Title: `[FEATURE] AWS GovCloud support (UI)`
- Contains: Technical details, component paths, UI-specific acceptance criteria
- Links to parent, blocked by API task

### Parent Task Template (Features Only)

```markdown
## Description

{User-facing description of the feature - what problem does it solve?}

## User Story

As a {user type}, I want to {action} so that {benefit}.

## Acceptance Criteria (User Perspective)

- [ ] User can {do something}
- [ ] User sees {something}
- [ ] {Behavior from user's point of view}

## Out of Scope

- {What this feature does NOT include}

## Design

- Figma: {link if available}
- Screenshots/mockups if available

## Child Tasks

- [ ] `[FEATURE] {Feature name} (API)` - Backend implementation
- [ ] `[FEATURE] {Feature name} (UI)` - Frontend implementation

## Priority

{High/Medium/Low} ({business justification})
```

### Child Task Template (Features Only)

```markdown
## Description

Technical implementation of {feature name} for {component}.

## Parent Task

`[FEATURE] {Feature name}`

## Acceptance Criteria (Technical)

- [ ] {Technical requirement 1}
- [ ] {Technical requirement 2}

## Technical Notes

- Affected files:
  - `{file path 1}`
  - `{file path 2}`
- {Implementation hints}

## Testing

- [ ] {Test case 1}
- [ ] {Test case 2}

## Related Tasks

- Parent: `[FEATURE] {Feature name}`
- Blocked by: {if any}
- Blocks: {if any}
```

### Linking Tasks

In each task description, add:
```markdown
## Related Tasks
- Parent: [Parent task title/link] (for child tasks)
- Blocked by: [API task title/link]
- Blocks: [UI task title/link]
```

## Task Template

```markdown
## Description

{Brief explanation of the problem or feature request}

**Current State:**
- {What's happening now / What's broken}
- {Impact on users}

**Expected State:**
- {What should happen}
- {Desired behavior}

## Acceptance Criteria

- [ ] {Specific, testable requirement}
- [ ] {Another requirement}
- [ ] {Include both API and UI tasks if applicable}

## Technical Notes

- {Implementation hints}
- {Affected files with full paths}
- {Dependencies or related components}

## Testing

- [ ] {Test case 1}
- [ ] {Test case 2}
- [ ] {Include regression tests}

## Priority

{High/Medium/Low} ({justification})
```

## Title Conventions

Format: `[TYPE] Brief description (components)`

**Types:**
- `[BUG]` - Something broken that worked before
- `[FEATURE]` - New functionality
- `[ENHANCEMENT]` - Improvement to existing feature
- `[REFACTOR]` - Code restructure without behavior change
- `[DOCS]` - Documentation only
- `[CHORE]` - Maintenance, dependencies, CI/CD

**Components (when multiple affected):**
- `(API)` - Backend only
- `(UI)` - Frontend only
- `(SDK)` - Prowler SDK only
- `(API + UI)` - Both backend and frontend
- `(SDK + API)` - SDK and backend
- `(Full Stack)` - All components

**Examples:**
- `[BUG] AWS GovCloud accounts cannot connect - STS region hardcoded (API + UI)`
- `[FEATURE] Add dark mode toggle (UI)`
- `[REFACTOR] Migrate E2E tests to Page Object Model (UI)`
- `[ENHANCEMENT] Improve scan performance for large accounts (SDK)`

## Priority Guidelines

| Priority | Criteria |
|----------|----------|
| **Critical** | Production down, data loss, security vulnerability |
| **High** | Blocks users, no workaround, affects paid features |
| **Medium** | Has workaround, affects subset of users |
| **Low** | Nice to have, cosmetic, internal tooling |

## Affected Files Section

Always include full paths when known:

```markdown
## Technical Notes

- Affected files:
  - `api/src/backend/api/v1/serializers.py`
  - `ui/components/providers/workflow/forms/aws-credentials-form.tsx`
  - `prowler/providers/aws/config.py`
```

## Component-Specific Sections

### API Tasks
Include:
- Serializer changes
- View/ViewSet changes
- Migration requirements
- API spec regeneration needs

### UI Tasks
Include:
- Component paths
- Form validation changes
- State management impact
- Responsive design considerations

### SDK Tasks
Include:
- Provider affected
- Service affected
- Check changes
- Config changes

## Checklist Before Submitting

1. ✅ Title follows `[TYPE] description (components)` format
2. ✅ Description has Current/Expected State
3. ✅ Acceptance Criteria are specific and testable
4. ✅ Technical Notes include file paths
5. ✅ Testing section covers happy path + edge cases
6. ✅ Priority has justification
7. ✅ **Multi-component work is split into separate tasks**
8. ✅ **Titles are recommended for all tasks**

## Output Format

### For BUGS (sibling tasks):

```markdown
## Recommended Tasks

### Task 1: [BUG] {Description} (API)
{Full task content}

---

### Task 2: [BUG] {Description} (UI)
{Full task content}
```

### For FEATURES (parent + children):

```markdown
## Recommended Tasks

### Parent Task: [FEATURE] {Feature name}
{User-facing content, no technical details}

---

### Child Task 1: [FEATURE] {Feature name} (API)
{Technical content for API team}

---

### Child Task 2: [FEATURE] {Feature name} (UI)
{Technical content for UI team}
```

## Formatting Rules

**CRITICAL:** All output MUST be in Markdown format, ready to paste into Jira.

- Use `##` for main sections (Description, Acceptance Criteria, etc.)
- Use `**bold**` for emphasis
- Use `- [ ]` for checkboxes
- Use ``` for code blocks with language hints
- Use `backticks` for file paths, commands, and code references
- Use tables where appropriate
- Use `---` to separate multiple tasks

## Jira MCP Integration

**CRITICAL:** When creating tasks via MCP, use these exact parameters:

### Required Fields

```json
{
  "project_key": "PROWLER",
  "summary": "[TYPE] Task title (component)",
  "issue_type": "Task",
  "additional_fields": {
    "parent": "PROWLER-XXX",
    "customfield_10359": {"value": "UI"}
  }
}
```

### Team Field (REQUIRED)

The `customfield_10359` (Team) field is **REQUIRED**. Options:
- `"UI"` - Frontend tasks
- `"API"` - Backend tasks
- `"SDK"` - Prowler SDK tasks

### Work Item Description Field

**IMPORTANT:** The project uses `customfield_10363` (Work Item Description) instead of the standard `description` field for display in the UI.

**CRITICAL:** Use **Jira Wiki markup**, NOT Markdown:
- `h2.` instead of `##`
- `*text*` for bold instead of `**text**`
- `* item` for bullets (same)
- `** subitem` for nested bullets

After creating the issue, update the description with:

```json
{
  "customfield_10363": "h2. Description\n\n{content}\n\n*Current State:*\n* {problem 1}\n* {problem 2}\n\n*Expected State:*\n* {solution 1}\n* {solution 2}\n\nh2. Acceptance Criteria\n\n* {criteria 1}\n* {criteria 2}\n\nh2. Technical Notes\n\nPR: [{pr_url}]\n\nAffected files:\n* {file 1}\n* {file 2}\n\nh2. Testing\n\n* [ ] PR - Local environment\n** {test case 1}\n** {test case 2}\n* [ ] After merge in prowler - dev\n** {test case 3}"
}
```

### Common Epics

| Epic | Key | Use For |
|------|-----|---------|
| UI - Bugs & Improvements | PROWLER-193 | UI bugs, enhancements |
| API - Bugs / Improvements | PROWLER-XXX | API bugs, enhancements |
| LightHouse AI | PROWLER-594 | AI features |
| Technical Debt - UI | PROWLER-502 | Refactoring |

### Workflow Transitions

```
Backlog (10037) → To Do (14) → In Progress (11) → Done (21)
                → Blocked (10)
```

### MCP Commands Sequence

1. **Create issue:**
```
mcp__mcp-atlassian__jira_create_issue
```

2. **Update Work Item Description:**
```
mcp__mcp-atlassian__jira_update_issue with customfield_10363
```

3. **Assign and transition:**
```
mcp__mcp-atlassian__jira_update_issue (assignee)
mcp__mcp-atlassian__jira_transition_issue (status)
```

## Keywords
jira, task, ticket, issue, bug, feature, prowler

Overview

This skill creates Jira tasks using Prowler's standard format when you ask to create a Jira task, ticket, or issue. It produces properly structured titles, descriptions, acceptance criteria, technical notes, and linking conventions for bugs, features, refactors, docs, and chores. The output is organized to support MCP Jira integration and to enforce multi-component splitting rules.

How this skill works

When triggered, the skill analyzes the request type (bug, feature, enhancement, refactor, docs) and the affected components (API, UI, SDK, Full Stack). It generates either sibling bug tasks or a parent + child feature set, using Prowler templates for Description, Acceptance Criteria, Technical Notes, Testing, Priority, and Related Tasks. It also includes the exact Jira fields and team field guidance needed for MCP-based creation and the Work Item Description update pattern.

When to use it

  • Report production bugs that require backend, frontend, or SDK changes
  • Propose new features that need stakeholder context plus technical work
  • Create refactors, documentation tasks, or maintenance chores
  • Split multi-component work into parallel tasks for API, UI, SDK
  • Generate ready-to-paste Jira content for MCP automation

Best practices

  • Split multi-component changes: sibling tasks for bugs, parent+children for features
  • Use the title convention: [TYPE] Brief description (components)
  • Include Current State and Expected State in every task description
  • Provide full file paths in Technical Notes and clear, testable acceptance criteria
  • Set Team via customfield_10359 (API, UI, SDK) and update customfield_10363 with Jira Wiki markup for Work Item Description

Example use cases

  • Create two sibling bug tasks when an AWS region field is missing in both API and UI
  • Create a parent feature task for AWS GovCloud support with child API and UI tasks linked and prioritized
  • Convert a bug report into two component-specific tasks so backend can be fixed before UI changes
  • Produce a technical SDK task describing affected provider checks and config changes
  • Prepare MCP payloads: create issue, update Work Item Description, assign team field, and transition workflow

FAQ

Should I create one task for multi-component work?

No. For bugs create separate sibling tasks per component. For features create a parent task with child tasks for each component.

What title format should I use?

Use the convention: [TYPE] Brief description (components), e.g. [BUG] Add region selector (API + UI).

Which Jira field stores the display description?

Use customfield_10363 (Work Item Description) and provide content in Jira Wiki markup when updating the issue.