---
name: Start Work
slug: start-work
category: Automation
description: Prepare a Jira ticket for development by automating status transitions, assignment, branch creation, and plan generation.
github: "https://github.com/liferay/liferay-portal/tree/master/.claude/skills/start-work"
language: Java
stars: 2260
forks: 3789
install: "git clone https://github.com/liferay/liferay-portal"
added: 2026-07-20T06:48:18.959Z
last_synced: 2026-07-29T06:36:54.145Z
canonical_url: "https://dirskills.com/skills/start-work"
---

# Start Work

Prepare a Jira ticket for development by automating status transitions, assignment, branch creation, and plan generation.

**Install:** `git clone https://github.com/liferay/liferay-portal`

## README

# Start Work on a Jira Ticket

Prepare a Liferay ticket for development.

## Resolve the Ticket

Accept a key (`LPD-86295`) or a browse URL from `${ARGUMENTS}`. When nothing is supplied and `${PWD}` matches `*/liferay-portal-<KEY>` where `<KEY>` matches the Jira pattern `[A-Z]+-[0-9]+`, derive the key from the directory name. Otherwise, ask the user.

## Prerequisites

Abort when the working tree has uncommitted changes.

## Determine the Target

Fetch the ticket (issue type, current assignee, subtasks) and resolve the **target** — the ticket where the branch and active work state live:

- **Bug** (`10004`) — the bug itself. There is no child.
- **Story** (`10001`) or **Task** (`10002`) — the **Technical Task** (`10153`) subtask. Jira autocreates it when the parent is moved to an in-progress status, so the target does not exist yet and must be resolved after **Start Work on the Parent**. It may exist from a previous attempt, in which case it becomes the target.

## Start Work on the Parent

Assign the parent to the user and apply the transitions below. When the parent is already in an in-progress status by a different user, refuse to continue.

| Parent Type | Destination | Transition IDs |
| --- | --- | --- |
| Bug | In Progress | `61` |
| Story | In Development | `41`, then `61` |
| Task | In Progress | `21` |

For a Story, apply the two transitions in sequence: `41` moves it to **Ready for Development**, which triggers Jira to autocreate the **Technical Task** subtask, then `61` moves it to **In Development**.

## Start Work on the Child

Skip for **Bug**. For **Story** / **Task**, refetch the parent's subtasks until the **Technical Task** appears, then assign it to the user and transition it:

| Child Type | Destination | Transition ID |
| --- | --- | --- |
| Technical Task | In Progress | `41` |

## Create a Git Branch

Branch off the current HEAD, named after the **target** key. When the branch already exists, check it out instead.

## Make a Plan

Enter plan mode and read the tickets (both parent and child) to make the plan.
