jira-task-startlisted
Install: claude install-skill mzd-hseokkim/jira-claude-code-integration
# jira-task-start: Start Working on a Jira Task
**Language Rule**: 프로젝트 CLAUDE.md의 Conventions 섹션 참고 (한국어 출력, Jira 코멘트 제목은 영어).
## Prerequisites
- Jira MCP server must be connected (check with `/jira`)
- Current directory should be inside a git repository
- TASK-ID must be a valid Jira issue key (e.g., PROJ-123)
## Workflow
### Step 0: Detect Mode (post-init vs fresh)
cwd에서 `.jira-context.json`을 `Read`로 읽어보고 아래로 분기 — **init이 이미 워크트리·README·context를 만들어둔 상태이면 중복 작업을 건너뛴다.**
- **post-init 모드** (hot path): 파일이 존재하고 `taskId === <TASK-ID>`이며 `worktreePath`가 디스크에 있음.
- Step 3(worktree 생성 체크), Step 4(README 생성)를 **스킵**한다.
- Step 6은 통째 rewrite 대신 patch (기존 필드 보존 + 추가).
- **fresh 모드**: 위 조건 미충족.
- 모든 Step 그대로 수행.
이 분기 결정은 사용자에게 한 줄로 알려준다 — 예: `📂 post-init 모드: worktree·README·context 재생성 생략.`
### Step 1: Fetch Issue Details (cache-first)
먼저 `.jira-context.json`의 `cachedIssue`를 확인한다. **모든 필수 필드(`summary`, `description`, `priority`, `assignee`, `issuetype`)가 채워져 있고 `fetchedAt`이 있으면 fetch를 건너뛴다** — init이 만들어둔 캐시가 이미 충분한 경우.
cache miss면 `mcp__atlassian__jira_get_issue` 호출:
**Context optimization**: 호출 시 다음 파라미터로 응답을 슬림화한다.
- `fields="summary,status,priority,assignee,issuetype,description,subtasks,issuelinks"`
- `comment_limit=0` (start 단계에서는 코멘트 이력 불필요)
호출 후 결과를 **worktree-local** `.jira-context.json`의 `cachedIssue`에 저장한다 (CLAUDE.md "Issue Cache" 참고 — 후속 단계가 재조회를 생략할 수 있게). `fetchedAt`은 반드시 `new Date().toISOString()` (UTC `Z`) 형식.
> ⛔ **fresh 모드에서는 이 시점에 worktree-local