---
name: issue-status
description: 이슈의 status:: 라벨을 수동으로 지정한다. 기존 status:: 라벨을 자동으로 전부 제거하고 새 status:: 하나만 남겨 배타성을 강제한다(라벨 교체 1회). 전이 규칙을 우회하는 사람 전용 escape hatch. "이슈 상태 바꿔", "status 변경", "set-status", "상태 정정", "이슈 라벨 상태 수정" 요청 시 사용.
---

# issue-status — 이슈 status:: 수동 전이 (이전 status 자동 제거)

이슈에 붙은 `status::*` 라벨을 하나로 교체한다. **다른 status:: 라벨은 자동으로 전부 제거**되고
지정한 하나만 남는다(GitHub도 배타성 강제). 라벨 교체를 한 번의 API 호출로 처리하므로 중간에
status 두 개가 공존하는 순간이 없다.

## 성격 — 사람 전용 escape hatch

이 명령은 워커의 전이 규칙(`issue next`가 담당하는 TRANSITIONS)을 **우회**한다. 정상 진행은
워커가 알아서 하므로, 이 스킬은 잘못 붙은 상태를 사람이 직접 정정하거나 특정 단계로 강제 이동시킬
때만 쓴다. 게이트(`request::*`)는 건드리지 않는다 — 그건 approve/reject/answer의 몫이다.

## 사용법

```bash
uv run --project /Users/realsun/data/git/kelgit \
  kelgit issue set-status <대상> <이슈#> <status>
```

- `<대상>`: `github:owner/repo` 또는 `gitlab:group[/sub]/proj`
- `<이슈#>`: 이슈 번호
- `<status>`: 다음 7개 중 하나 (status:: 접두는 붙여도/빼도 되게 안내, 정식 이름 기준)

  `investigate → plan → approved → in-progress → qa → review → complete`

## 절차

1. 대상/이슈번호/목표 status를 확인한다. status가 위 7개(STATUS_ORDER)에 없으면 명령이 거부하므로,
   오타 없이 정식 이름을 쓴다.
2. 명령을 실행한다. 실행 후 "기존 status:: 제거 + 새 status:: 부착"이 한 번에 이뤄졌음을 보고한다.
3. 결과 라벨을 사용자에게 요약한다.

## 주의

- 알 수 없는 status 이름은 STATUS_ORDER 검증으로 거부된다(에러 메시지에 허용 목록 표시).
- 이건 수동 정정 도구다. 요약 코멘트·게이트 처리·낙관적 잠금이 필요한 정상 전이는
  워커(`issue next`)가 담당하므로 여기서 억지로 흉내 내지 않는다.
- `type::`·`request::`·`action::` 라벨은 그대로 보존된다 — status:: 스코프만 교체한다.
