skills/jira-lifecycle/SKILL.md
Manage issue lifecycle through workflow transitions and status changes. Control who does what and when via assignments, versions, and components.
npx skillsauth add grandcamel/jira-assistant-skills jira-lifecycle-managementInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Workflow and lifecycle management for JIRA issues.
| Operation | Risk | Notes |
|-----------|------|-------|
| List transitions | - | Read-only |
| List versions/components | - | Read-only |
| Transition issue | ! | Can transition back |
| Assign/unassign | ! | Can reassign |
| Resolve issue | ! | Can reopen |
| Reopen issue | ! | Can resolve again |
| Create version/component | - | Easily reversible |
| Update version/component | ! | Can be undone |
| Release version | ! | Can unrelease |
| Archive version | ! | Can unarchive |
| Delete component | !! | Issues lose component association |
Risk Legend: - Safe, read-only | ! Caution, modifiable | !! Warning, destructive but recoverable | !!! Danger, irreversible
Use this skill to: Drive issues through workflows, assign ownership, manage releases and components.
Not for: Creating/editing issue content (use jira-issue) or finding issues (use jira-search).
Also see: Workflow Guide | JSM Workflows | Best Practices
IMPORTANT: Always use the jira-as CLI. Never run Python scripts directly.
7 command categories for complete lifecycle management:
| Category | Purpose | Example |
|----------|---------|---------|
| Transitions | Move issues between statuses | jira-as lifecycle transition PROJ-123 --to "In Progress" |
| Assignments | Control ownership | jira-as lifecycle assign PROJ-123 --self or --user email |
| Resolution | Mark issues complete | jira-as lifecycle resolve PROJ-123 --resolution Fixed |
| Reopen | Restore resolved issues | jira-as lifecycle reopen PROJ-123 |
| Versions | Plan and track releases | jira-as lifecycle version create PROJ --name "v2.0.0" |
| Components | Organize by subsystem | jira-as lifecycle component create PROJ --name "API" |
| Discovery | View available options | jira-as lifecycle transitions PROJ-123 |
All commands support --help for full option documentation.
jira-as lifecycle transitions PROJ-123 # List available transitions
jira-as lifecycle transitions PROJ-123 --output json # Output as JSON
jira-as lifecycle transition PROJ-123 --to "In Progress" # Transition by status name
jira-as lifecycle transition PROJ-123 --id 31 # Transition by ID
jira-as lifecycle transition PROJ-123 --to Done --resolution Fixed # With resolution
jira-as lifecycle transition PROJ-123 --to "In Progress" --comment "Starting work" # With comment
jira-as lifecycle transition PROJ-123 --to "In Progress" --sprint 42 # Move to sprint after transition
jira-as lifecycle transition PROJ-123 --to Done --dry-run # Preview without executing
jira-as lifecycle transition PROJ-123 --to Done --fields '{"customfield_10001": "value"}' # With custom fields
jira-as lifecycle assign PROJ-123 --self # Assign to yourself
jira-as lifecycle assign PROJ-123 --user [email protected] # Assign to user
jira-as lifecycle assign PROJ-123 --unassign # Remove assignee
jira-as lifecycle resolve PROJ-123 # Resolve issue (may require --resolution)
jira-as lifecycle resolve PROJ-123 --resolution Fixed # Resolve with specific resolution
jira-as lifecycle resolve PROJ-123 --resolution Fixed --comment "Fixed in v1.2.0" # With comment
jira-as lifecycle reopen PROJ-123 # Reopen issue
jira-as lifecycle reopen PROJ-123 --comment "Reopening for additional work" # Reopen with comment
jira-as lifecycle version list PROJ # List versions
jira-as lifecycle version list PROJ --output json # Output as JSON
jira-as lifecycle version list PROJ --unreleased # Show only unreleased versions
jira-as lifecycle version list PROJ --archived # Include archived versions
jira-as lifecycle version create PROJ --name "v2.0.0" # Create version
jira-as lifecycle version create PROJ --name "v2.0.0" --description "Major release" # With description
jira-as lifecycle version create PROJ --name "v2.0.0" --start-date 2026-01-01 --release-date 2026-03-01
jira-as lifecycle version create PROJ --name "v2.0.0" --released --dry-run # Preview creation
jira-as lifecycle version create PROJ --name "v2.0.0" --archived # Create as archived
jira-as lifecycle version release PROJ "v1.0.0" # Release a version
jira-as lifecycle version release PROJ "v1.0.0" --move-unfixed "v1.1.0" # Move unfixed issues to another version
jira-as lifecycle version archive PROJ "v0.9.0" # Archive a version
Note: Component update and delete operations require the component ID (not name). Use jira-as lifecycle component list PROJ to find component IDs. The --lead option requires an account ID, not email.
jira-as lifecycle component list PROJ # List components (shows IDs)
jira-as lifecycle component list PROJ --output json # Output as JSON
jira-as lifecycle component create PROJ --name "API" # Create component
jira-as lifecycle component create PROJ --name "API" --description "REST API layer" # With description
jira-as lifecycle component create PROJ --name "Backend" --lead 5b10a2844c20165700ede21g
jira-as lifecycle component create PROJ --name "Frontend" --assignee-type COMPONENT_LEAD
jira-as lifecycle component update --id 10000 --name "New Name" # Update by ID
jira-as lifecycle component update --id 10000 --description "Updated description" # Update description
jira-as lifecycle component update --id 10000 --lead 5b10a2844c20165700ede22h
jira-as lifecycle component update --id 10000 --assignee-type PROJECT_LEAD --dry-run
jira-as lifecycle component delete --id 10000 # Delete with confirmation prompt
jira-as lifecycle component delete --id 10000 --yes # Delete without confirmation
jira-as lifecycle component delete --id 10000 --move-to 10001 # Move issues before deletion
jira-as lifecycle component delete --id 10000 --dry-run # Preview deletion
All commands support these options:
| Option | Description |
|--------|-------------|
| --help | Show help message and exit |
| Command | Supported Formats |
|---------|-------------------|
| transitions | text, json |
| transition | text, json |
| assign | text, json |
| resolve | text, json |
| reopen | text, json |
| version list | table, json |
| version create/release/archive | text, json |
| component list | table, json |
| component create/update/delete | text, json |
Most modification commands support --dry-run to preview changes without executing:
jira-as lifecycle transition PROJ-123 --to Done --dry-run
jira-as lifecycle assign PROJ-123 --self --dry-run
jira-as lifecycle version create PROJ --name "v1.0.0" --dry-run
jira-as lifecycle component create PROJ --name "API" --dry-run
jira-as lifecycle component update --id 10000 --name "New Name" --dry-run
jira-as lifecycle component delete --id 10000 --dry-run
| Code | Meaning | |------|---------| | 0 | Success - operation completed successfully | | 1 | Error - operation failed (check stderr for details) |
See examples/LIFECYCLE_EXAMPLES.md for comprehensive copy-paste examples.
Works with standard JIRA workflows, custom workflows, JIRA Service Management workflows, and simplified workflows. Scripts automatically adapt to different configurations.
See references/TROUBLESHOOTING.md for common issues and solutions.
Quick fixes:
jira-as lifecycle transitions ISSUE-KEY to see available transitions--fields '{"field": "value"}' optionRequires JIRA credentials via environment variables (JIRA_SITE_URL, JIRA_EMAIL, JIRA_API_TOKEN).
See docs/BEST_PRACTICES.md for:
Pre-built patterns in references/patterns/:
data-ai
Time tracking, worklogs, and time reports. TRIGGERS: 'log time', 'time spent on', 'log hours', 'log work', 'worklog', 'time tracking', 'timesheet', 'how much time', 'time logged', 'time report', 'export timesheet', 'set estimate', 'remaining estimate', 'original estimate'. Use for time-related queries and operations on issues. NOT FOR: SLA tracking (use jira-jsm), date-based issue searches (use jira-search), issue field updates unrelated to time (use jira-issue).
tools
Find issues by criteria (status, assignee, priority, etc.) using JQL. Create filters, export results to CSV/JSON, bulk update. Ideal for reporting and automation.
testing
Issue linking, blockers, and dependency analysis. TRIGGERS: 'what's blocking', 'what is blocking', 'is blocked by', 'link issues', 'link to', 'blockers for', 'depends on', 'clone issue', 'clone with', 'blocking chain', 'dependency graph', 'show dependencies', 'get blockers', 'relates to', 'duplicates'. Use for issue dependencies, relationships, and cloning. NOT FOR: epic linking (use jira-agile), field updates (use jira-issue), bulk cloning (use jira-bulk).
development
JIRA cache and performance operations. TRIGGERS: 'warm the cache', 'warm cache', 'cache status', 'clear cache', 'cache warm', 'cache for project', 'discover project', 'project discovery', 'cache hit rate', 'optimize performance', 'rate limit'. Use for JIRA API performance optimization and project context discovery. NOT FOR: project configuration/settings (use jira-admin), issue operations (use jira-issue), bulk issue modifications (use jira-bulk).