unattended-looplisted
Install: claude install-skill chacheum/chageun
# 무인 빌드 loop (unattended-loop) — 걸어다니는 뼈대
사람이 자리를 비운 사이, 이 세션이 **할 일 하나**를 받아 파이프라인을 한 바퀴 돌아 **검증 대기 초안**을 만든다. "완성"이 아니라 "사람이 돌아와 로컬로 열어 검증할 초안"이다.
## 발동 전 자기가드 (기계 바닥이 없으면 멈춤)
이 스킬은 **무인 안전 훅이 켜진 Claude 세션**에서만 안전하다. LOOP를 시작하기 전에 확인한다:
- 무인 표식(`CHAGEUN_UNATTENDED=1`)과 통과표가 있는가? 없으면 **LOOP를 시작하지 않고** 사람에게 "무인 모드가 아닙니다 — `chageun-unattended` 런처로 시작하세요"라고 알린다.
- PreToolUse 안전 훅이 실제로 걸려 있는지 확인한다. **세션 안에서 훅 배선을 직접 볼 수단은 없으므로, 위 통과표의 존재가 유일한 대리 증거다** — 그것 없이 "확인했다"고 넘기지 않는다. 확인되지 않으면 무인 LOOP 금지(기계 바닥 부재).
**이 자기가드는 심층 방어의 얇은 겉막이다.** 진짜 기계 바닥은 **격리 작업실**이다 — 런처 `chageun-unattended go`가 본체를 `git clone --local`한 **일회용 저장소**에서, `origin` 리모트를 떼고(push·PR 구조적 불능) `claude --strict-mcp-config`(빈 MCP 목록)로 기동(MCP 전면 off 지향)한다. 그래서 ���인 중 **설치·localhost 검증은 자유롭게**(로컬은 풀림) 하되, 되돌리기 불가 행동은 *환경적으로* 불가능하다. MCP-off의 런타임 효과는 무인에서 눈으로 확인할 수 없어, **원격 MCP 쓰기·MCP 경유 DB 쓰기는 훅이 백스톱으로 함께 막는다**(둘 중 하나만 믿지 않는 심층방어). (여기에 런처가 `claude`를 하드코딩해 다른 CLI로는 무인 진입이 불가능하다는 점도 바닥이지 이 문단이 아니다.)
## SETUP — 시동 (사람 있을 때, 유인)
무인 시작 **전**(아직 `.chageun`가 안 잠긴 유인 상태)에 사람과 함께 준비한다:
1. 사람이 채팅으로 할 일을 말한다.
2. 세션이 일을 적는다:
- **일이 하나면** `.chageun/task.md`(할일 카드: 왜·무엇·범위·안 하는 것) + `.chageun/criteria.md`(성공기준).
- **여러 일이면** `.chageun/queue.md`에 **차례로** 적는다 — 각 항목: 번호·제목 + 그 일의 성공기준(자동으로 잴 수 있는 형태). 큐는 위에서부터 처리된다.
- 성공기준은 반드시 **자동으로 잴 수 있는 형태**(존재·텍스트·상태 **단언**, 로컬 실행 시나리오)로. "예쁘다" 같은 취향 기준은 부적합.
3. 두 파일을 사람에게 **보여주고**, 성공기준은 **한 줄씩** 짚어 "이 줄 맞나요?"로 확인받는다(대충 넘기지 못하게). 통째로 "네" 받고 넘기지 않는다 — 느슨한 기준이 그대로 동결되면 루프가 자기 기준을