← ClaudeAtlas

jira-task-looplisted

Drain the initialized Jira task queue — auto + local merge per task, with base rebase between tasks. Triggers: jira-task loop; 루프 실행, 큐 소진.
mzd-hseokkim/jira-claude-code-integration · ★ 8 · AI & Automation · score 74
Install: claude install-skill mzd-hseokkim/jira-claude-code-integration
# jira-task-loop: Drain Task Queue **Language Rule**: 프로젝트 CLAUDE.md의 Conventions 섹션 참고 (한국어 출력, Jira 코멘트 제목은 영어). ## Overview init된 태스크 큐를 순차 소진하는 **태스크 레벨 오케스트레이터**. `auto`가 한 태스크 안의 단계 루프라면, `loop`는 태스크 사이의 루프다. - 태스크마다: `auto`(start→approach→impl+test→review) → review 게이트 확인 → `jira-local-merge`(In Review 전이) - 머지 직후, 큐에 남은 worktree 브랜치를 최신 base로 rebase (stale base 방지). 충돌 시 **그 태스크만** `deferred` 보류하고 계속. - `done` / `pr` / `clean`은 포함하지 않음 — "merge 후 main에서 사람이 확인"하는 게이트를 보존. 루프가 끝나면 모든 처리 태스크는 Jira "In Review" 상태로 정렬된다. - auto 또는 merge가 실패하면 **루프 전체 즉시 중단** (rebase 충돌만 예외 — 워크플로 실패가 아니라 순서 문제이므로 보류 후 계속). - 재진입 가능: 큐는 매번 `completedSteps`에서 재계산 — 중단 후 `/jira-task loop` 재실행하면 이어서 진행. **핵심 원칙: 오케스트레이터는 가볍게 유지한다.** context 읽기, Skill 호출, rebase, 판정만 수행. 단계별 작업·산출물은 모두 auto/merge 스킬(과 그 sub-agent)에 위임하고, 산출물 본문을 컨텍스트로 가져오지 않는다. ## Step 1: Load Queue 1. cwd의 `.jira-context.json`을 `Read`. `tasks[]` 배열이 있으면 aggregate. 없으면(worktree-local) 그 안의 `repoRoot`로 `<repoRoot>/.jira-context.json`을 다시 `Read`. 이 시점에 `REPO_ROOT`와 aggregate **절대 경로**를 확정한다 — 루프 중 cwd가 각 worktree로 이동하므로, 이후 모든 aggregate `Read`/`Edit`은 반드시 이 절대 경로를 사용. 2. aggregate가 없거나 `tasks[]`가 비어 있으면 중단: ``` ❌ Loop 실행 불가: init된 태스크 큐가 없습니다. 먼저 /jira-task init [count|ISSUE-KEY]로 작업 환경을 세팅하세요. ``` 3. **deferred 초기화**: `tasks[]`에 `deferred` / `deferredReason`이 남아 있으면 **둘 다** 제거(`Edit`, JSON 유효성 유지) — 새 run은 보류 태스크를 재시도한다 (사유가 여전하면 다시 보류될 뿐). 4. **큐 계산**: `tasks[]` 중 `completedSteps`(없으면 빈 배열로 간주)에 `"merge"`가