PM skills were the only domain packaged as zip files instead of extracted directories, causing plugin install failures and missing codex index entries. Extracts all 6 skills, fixes broken symlink, regenerates index (47 → 53 total), and updates doc counts. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
9.4 KiB
Jira Automation Examples
Auto-Assignment Rules
Auto-assign by component
Trigger: Issue created Conditions:
- Component is not EMPTY Actions:
- Assign issue to component lead
Auto-assign to reporter for feedback
Trigger: Issue transitioned to "Waiting for Feedback" Actions:
- Assign issue to reporter
- Add comment: "Please provide additional information"
Round-robin assignment
Trigger: Issue created Conditions:
- Project = ABC
- Assignee is EMPTY Actions:
- Assign to next team member in rotation (use smart value)
Status Sync Rules
Sync subtask status to parent
Trigger: Issue transitioned Conditions:
- Issue type = Sub-task
- Transition is to "Done"
- Parent issue exists
- All subtasks are Done Actions:
- Transition parent issue to "Done"
Sync parent to subtasks
Trigger: Issue transitioned Conditions:
- Issue type has subtasks
- Transition is to "Cancelled" Actions:
- For each: Sub-tasks
- Transition issue to "Cancelled"
Epic progress tracking
Trigger: Issue transitioned Conditions:
- Epic link is not EMPTY
- Transition is to "Done" Actions:
- Add comment to epic: "{{issue.key}} completed"
- Update epic custom field "Progress"
Notification Rules
Slack notification for high-priority bugs
Trigger: Issue created Conditions:
- Issue type = Bug
- Priority IN (Highest, High) Actions:
- Send Slack message to #engineering:
🚨 High Priority Bug Created {{issue.key}}: {{issue.summary}} Reporter: {{issue.reporter.displayName}} Priority: {{issue.priority.name}} {{issue.url}}
Email assignee when mentioned
Trigger: Issue commented Conditions:
- Comment contains @mention of assignee Actions:
- Send email to {{issue.assignee.emailAddress}}:
Subject: You were mentioned in {{issue.key}} Body: {{comment.author.displayName}} mentioned you: {{comment.body}}
SLA breach warning
Trigger: Scheduled - Every hour Conditions:
- Status != Done
- SLA time remaining < 2 hours Actions:
- Send email to {{issue.assignee}}
- Add comment: "⚠️ SLA expires in <2 hours"
- Set priority to Highest
Field Automation Rules
Auto-set due date
Trigger: Issue created Conditions:
- Issue type = Bug
- Priority = Highest Actions:
- Set due date to {{now.plusDays(1)}}
Clear assignee when in backlog
Trigger: Issue transitioned Conditions:
- Transition is to "Backlog"
- Assignee is not EMPTY Actions:
- Assign issue to Unassigned
- Add comment: "Returned to backlog, assignee cleared"
Auto-populate sprint field
Trigger: Issue transitioned Conditions:
- Transition is to "In Progress"
- Sprint is EMPTY Actions:
- Add issue to current sprint
Set fix version based on component
Trigger: Issue created Conditions:
- Component = "Mobile App" Actions:
- Set fix version to "Mobile v2.0"
Escalation Rules
Auto-escalate stale issues
Trigger: Scheduled - Daily at 9:00 AM Conditions:
- Status = "Waiting for Response"
- Updated < -7 days Actions:
- Add comment: "@{{issue.reporter}} This issue needs attention"
- Send email to project lead
- Add label: "needs-attention"
Escalate overdue critical issues
Trigger: Scheduled - Every hour Conditions:
- Priority IN (Highest, High)
- Due date < now()
- Status != Done Actions:
- Transition to "Escalated"
- Assign to project manager
- Send Slack notification
Auto-close inactive issues
Trigger: Scheduled - Daily at 10:00 AM Conditions:
- Status = "Waiting for Customer"
- Updated < -30 days Actions:
- Transition to "Closed"
- Add comment: "Auto-closed due to inactivity"
- Send email to reporter
Sprint Automation Rules
Move incomplete work to next sprint
Trigger: Sprint closed Conditions:
- Issue status != Done Actions:
- Add issue to next sprint
- Add comment: "Moved from {{sprint.name}}"
Auto-remove completed items from active sprint
Trigger: Issue transitioned Conditions:
- Transition is to "Done"
- Sprint IN openSprints() Actions:
- Remove issue from sprint
- Add comment: "Removed from active sprint (completed)"
Sprint start notification
Trigger: Sprint started Actions:
- Send Slack message to #team:
🚀 Sprint {{sprint.name}} Started! Goal: {{sprint.goal}} Committed: {{sprint.issuesCount}} issues
Approval Workflow Rules
Request approval for large stories
Trigger: Issue created Conditions:
- Issue type = Story
- Story points >= 13 Actions:
- Transition to "Pending Approval"
- Assign to product owner
- Send email notification
Auto-approve small bugs
Trigger: Issue created Conditions:
- Issue type = Bug
- Priority IN (Low, Lowest) Actions:
- Transition to "Approved"
- Add comment: "Auto-approved (low-priority bug)"
Require security review
Trigger: Issue transitioned Conditions:
- Transition is to "Ready for Release"
- Labels contains "security" Actions:
- Transition to "Security Review"
- Assign to security-team
- Send email to security@company.com
Integration Rules
Create GitHub issue
Trigger: Issue transitioned Conditions:
- Transition is to "In Progress"
- Labels contains "needs-tracking" Actions:
- Send webhook to GitHub API:
{ "title": "{{issue.key}}: {{issue.summary}}", "body": "{{issue.description}}", "assignee": "{{issue.assignee.name}}" }
Update Confluence page
Trigger: Issue transitioned Conditions:
- Issue type = Epic
- Transition is to "Done" Actions:
- Send webhook to Confluence:
- Update epic status page
- Add completion date
Quality & Testing Rules
Require test cases for features
Trigger: Issue transitioned Conditions:
- Issue type = Story
- Transition is to "Ready for QA"
- Custom field "Test Cases" is EMPTY Actions:
- Transition back to "In Progress"
- Add comment: "❌ Test cases required before QA"
Auto-create test issue
Trigger: Issue transitioned Conditions:
- Issue type = Story
- Transition is to "Ready for QA" Actions:
- Create linked issue:
- Type: Test
- Summary: "Test: {{issue.summary}}"
- Link type: "tested by"
- Assignee: QA team
Flag regression bugs
Trigger: Issue created Conditions:
- Issue type = Bug
- Affects version is in released versions Actions:
- Add label: "regression"
- Set priority to High
- Add comment: "🚨 Regression in released version"
Documentation Rules
Require documentation for features
Trigger: Issue transitioned Conditions:
- Issue type = Story
- Labels contains "customer-facing"
- Transition is to "Done"
- Custom field "Documentation Link" is EMPTY Actions:
- Reopen issue
- Add comment: "📝 Documentation required for customer-facing feature"
Auto-create doc task
Trigger: Issue transitioned Conditions:
- Issue type = Epic
- Transition is to "In Progress" Actions:
- Create subtask:
- Type: Task
- Summary: "Documentation for {{issue.summary}}"
- Assignee: {{issue.assignee}}
Time Tracking Rules
Log work reminder
Trigger: Issue transitioned Conditions:
- Transition is to "Done"
- Time spent is EMPTY Actions:
- Add comment: "⏱️ Reminder: Please log your time"
Warn on high time spent
Trigger: Work logged Conditions:
- Time spent > original estimate * 1.5 Actions:
- Add comment: "⚠️ Time spent exceeds estimate by 50%"
- Send notification to assignee and project manager
Advanced Conditional Rules
Conditional assignee based on priority
Trigger: Issue created Conditions:
- Issue type = Bug Actions:
- If: Priority = Highest
- Assign to on-call engineer
- Else if: Priority = High
- Assign to team lead
- Else:
- Assign to next available team member
Multi-step approval flow
Trigger: Issue transitioned Conditions:
- Transition is to "Request Approval"
- Budget estimate > $10,000 Actions:
- If: Budget > $50,000
- Assign to CFO
- Send email to executive team
- Else if: Budget > $10,000
- Assign to Director
- Add comment: "Director approval required"
- Add label: "pending-approval"
Smart Value Examples
Dynamic assignee based on component
{{issue.components.first.lead.accountId}}
Days since created
{{issue.created.diff(now).days}}
Conditional message
{{#if(issue.priority.name == "Highest")}}
🚨 CRITICAL
{{else}}
ℹ️ Normal priority
{{/}}
List all subtasks
{{#issue.subtasks}}
- {{key}}: {{summary}} ({{status.name}})
{{/}}
Calculate completion percentage
{{issue.subtasks.filter(item => item.status.statusCategory.key == "done").size.divide(issue.subtasks.size).multiply(100).round()}}%
Best Practices
- Test in sandbox - Always test rules on test project first
- Start simple - Begin with basic rules, add complexity incrementally
- Use conditions wisely - Narrow scope to reduce unintended triggers
- Monitor audit log - Check automation execution history regularly
- Limit actions - Keep rules focused, don't chain too many actions
- Name clearly - Use descriptive names: "Auto-assign bugs to component lead"
- Document rules - Add description explaining purpose and owner
- Review regularly - Audit rules quarterly, disable unused ones
- Handle errors - Add error handling for webhooks and integrations
- Performance - Avoid scheduled rules that query large datasets hourly