Phase 2: 3 new scripts + 2 reference files for prompt-only skills. Tessl 45-55% → 94-100%.
198 lines
6.3 KiB
Markdown
198 lines
6.3 KiB
Markdown
# Jira Workflows Reference
|
|
|
|
Comprehensive guide to Jira workflow design, transitions, conditions, validators, and post-functions.
|
|
|
|
## Default Workflows
|
|
|
|
### Simplified Workflow
|
|
```
|
|
Open → In Progress → Done
|
|
```
|
|
|
|
### Software Development Workflow
|
|
```
|
|
Backlog → Selected for Development → In Progress → In Review → Done
|
|
↑___________________________| (reopen)
|
|
```
|
|
|
|
### Bug Tracking Workflow
|
|
```
|
|
Open → In Progress → Fixed → Verified → Closed
|
|
↑ | |
|
|
|____Reopened________|________|
|
|
```
|
|
|
|
## Custom Workflow Design
|
|
|
|
### Design Principles
|
|
1. **Mirror your actual process** — don't force teams into artificial states
|
|
2. **Minimize statuses** — each status must represent a distinct work state where the item waits for a different action
|
|
3. **Clear ownership** — every status should have an obvious responsible party
|
|
4. **Allow rework** — always provide paths back for rejected/reopened items
|
|
5. **Separate "waiting" from "working"** — distinguish "In Review" (waiting) from "Reviewing" (actively working)
|
|
|
|
### Status Categories
|
|
Jira maps every status to one of four categories that drive board columns and JQL:
|
|
|
|
| Category | Meaning | JQL | Examples |
|
|
|----------|---------|-----|----------|
|
|
| `To Do` | Not started | `statusCategory = "To Do"` | Backlog, Open, New |
|
|
| `In Progress` | Active work | `statusCategory = "In Progress"` | In Progress, In Review, Testing |
|
|
| `Done` | Completed | `statusCategory = Done` | Done, Closed, Released |
|
|
| `Undefined` | Legacy/unused | — | Avoid using |
|
|
|
|
### Recommended Statuses by Team Type
|
|
|
|
**Engineering Team:**
|
|
```
|
|
Backlog → Ready → In Progress → Code Review → QA → Done
|
|
```
|
|
|
|
**Support Team:**
|
|
```
|
|
New → Triaged → In Progress → Waiting on Customer → Resolved → Closed
|
|
```
|
|
|
|
**Design Team:**
|
|
```
|
|
Backlog → Research → Design → Review → Approved → Handoff
|
|
```
|
|
|
|
## Transitions
|
|
|
|
### Transition Properties
|
|
|
|
| Property | Description |
|
|
|----------|-------------|
|
|
| **Name** | Display name on the button (e.g., "Start Work") |
|
|
| **Screen** | Form shown during transition (optional) |
|
|
| **Conditions** | Who can trigger this transition |
|
|
| **Validators** | Rules that must pass before transition executes |
|
|
| **Post-functions** | Actions executed after transition completes |
|
|
|
|
### Common Transition Patterns
|
|
|
|
**Start Work:**
|
|
```
|
|
Trigger: "Start Work" button
|
|
Condition: Assignee only
|
|
Validator: Issue must have assignee
|
|
Post-function: Set "In Progress" resolution to None
|
|
```
|
|
|
|
**Submit for Review:**
|
|
```
|
|
Trigger: "Submit for Review" button
|
|
Condition: Assignee or project admin
|
|
Validator: All sub-tasks must be Done
|
|
Post-function: Add comment "Submitted for review by {user}"
|
|
```
|
|
|
|
**Approve:**
|
|
```
|
|
Trigger: "Approve" button
|
|
Condition: Must be in "Reviewers" group
|
|
Validator: Must add comment
|
|
Post-function: Set resolution to "Done", fire event
|
|
```
|
|
|
|
## Conditions
|
|
|
|
### Built-in Conditions
|
|
|
|
| Condition | Use When |
|
|
|-----------|----------|
|
|
| **Only Assignee** | Only assigned user can transition |
|
|
| **Only Reporter** | Only creator can transition |
|
|
| **Permission Condition** | User must have specific permission |
|
|
| **Group Condition** | User must be in specified group |
|
|
| **Sub-Task Blocking** | All sub-tasks must be resolved |
|
|
| **Previous Status** | Issue must have been in a specific status |
|
|
| **User Is In Role** | User must have project role (Developer, Admin) |
|
|
|
|
### Combining Conditions
|
|
- **AND logic**: Add multiple conditions to one transition — ALL must pass
|
|
- **OR logic**: Create parallel transitions with different conditions
|
|
|
|
## Validators
|
|
|
|
### Built-in Validators
|
|
|
|
| Validator | Checks |
|
|
|-----------|--------|
|
|
| **Required Field** | Specific field must be populated |
|
|
| **Field Has Been Modified** | Field must change during transition |
|
|
| **Regular Expression** | Field must match regex pattern |
|
|
| **Permission Validator** | User must have permission |
|
|
| **Previous Status Validator** | Issue was in a required status |
|
|
|
|
### Common Validator Patterns
|
|
|
|
```
|
|
# Require comment on rejection
|
|
Validator: Comment Required
|
|
When: Transition = "Reject"
|
|
|
|
# Require fix version before release
|
|
Validator: Required Field = "Fix Version/s"
|
|
When: Transition = "Release"
|
|
|
|
# Require time logged before closing
|
|
Validator: Field Required = "Time Spent" (must be > 0)
|
|
When: Transition = "Close"
|
|
```
|
|
|
|
## Post-Functions
|
|
|
|
### Built-in Post-Functions
|
|
|
|
| Post-Function | Action |
|
|
|---------------|--------|
|
|
| **Set Field Value** | Assign a value to any field |
|
|
| **Update Issue Field** | Change assignee, priority, etc. |
|
|
| **Create Comment** | Add automated comment |
|
|
| **Fire Event** | Trigger notification event |
|
|
| **Assign to Lead** | Assign to project lead |
|
|
| **Assign to Reporter** | Assign back to creator |
|
|
| **Clear Field** | Remove field value |
|
|
| **Copy Value** | Copy field from parent/linked issue |
|
|
|
|
### Post-Function Execution Order
|
|
Post-functions execute in defined order. Standard sequence:
|
|
1. Set issue status (automatic, always first)
|
|
2. Add comment (if configured)
|
|
3. Update fields
|
|
4. Generate change history (automatic, always last)
|
|
5. Fire event (triggers notifications)
|
|
|
|
**Important:** "Generate change history" and "Fire event" must always be last — reorder if you add custom post-functions.
|
|
|
|
## Workflow Schemes
|
|
|
|
### What They Do
|
|
- Map issue types to workflows within a project
|
|
- One workflow scheme per project
|
|
- Different issue types can use different workflows
|
|
|
|
### Configuration Pattern
|
|
```
|
|
Project: MYPROJ
|
|
Workflow Scheme: "Engineering Workflow Scheme"
|
|
|
|
Bug → Bug Tracking Workflow
|
|
Story → Development Workflow
|
|
Task → Simple Workflow
|
|
Epic → Epic Workflow
|
|
Sub-task → Sub-task Workflow (inherits parent transitions)
|
|
```
|
|
|
|
## Best Practices
|
|
|
|
1. **Start simple, add complexity only when needed** — a 5-status workflow beats a 15-status one
|
|
2. **Name transitions as actions** — "Start Work" not "In Progress" (the status is "In Progress", the action is "Start Work")
|
|
3. **Use screens sparingly** — only show a screen when you need data from the user during transition
|
|
4. **Test with real users** — workflows that look good on paper may confuse the team
|
|
5. **Document your workflow** — add descriptions to statuses and transitions
|
|
6. **Use global transitions carefully** — a "Cancel" transition from any status is convenient but can bypass important gates
|
|
7. **Audit quarterly** — remove statuses with <5% usage
|