agendalisted
Install: claude install-skill dong-park/pharos
# agenda — 격리 클론 자율 실행기 (pharos agenda autopilot)
평문 아젠다를 던지면 **원격 없는 격리 클론**에서 워커가 끝까지 자율 수행하고 결과만 회수한다.
CLI 피처(`pharos agenda`)의 진입 스킬. 설계·근거: `docs/agenda-autopilot.{spec,plan,review}.md`,
`docs/spikes/{push-block,clone-model}/`.
## 언제 / 언제 안 쓰나
- **쓴다**: 자기완결적이고 끝 상태가 명확한 작업을, **격리(원격 없음) + 자기검증(테스트 게이트)**
로 안전하게 자율 실행하고 싶을 때. 던지고 손 떼고 싶을 때(감시 불필요). 여러 건 병렬.
- **안 쓴다**:
- Claude가 **직접 감시·독립검증·적대리뷰**까지 해야 하는 고위험 작업 → `/outsource`.
- 현재 워크스페이스의 **기존** pane에 던지기 → `/dispatch-pane`.
- 전체 spec→ship 파이프라인 → `/dev`.
- 요구사항 모호 → 먼저 `/deep-interview`로 아젠다를 정확히(워커는 맥락 0).
## 사용법
```bash
# dry-run (부작용 0 — slug/브랜치/run_dir만 출력)
pharos agenda "socket.rs unwrap을 Result 전파로 바꾸고 테스트 추가"
# 실행 — ⚠️ Claude 세션에선 TMPDIR 보정 필수 (샌드박스 TMPDIR ≠ GUI TMPDIR)
TMPDIR="$(getconf DARWIN_USER_TEMP_DIR)" pharos agenda --run "socket.rs unwrap을 Result 전파로 바꾸고 테스트 추가"
```
- ⚠️ **TMPDIR 함정**: Claude 하니스는 `$TMPDIR=/tmp/claude-*`, GUI 앱은 `/var/folders/.../T/`에
소켓을 만든다. 보정 없이 `pharos agenda --run`을 호출하면 spawn이 `cannot connect to Pharos`
로 실패한다(clone·policy는 이미 됨). 일반 유저 셸에선 TMPDIR이 같아 그냥 됨. → 메모리
`project_agenda_spawn_tmpdir`.
- **GUI 필수**: spawn은 GUI 소켓 경유. 앱이 떠 있어야 함.
## 흐름 (--run 시 자동)
1. 현재 repo를 별도 **클론**으로 뜸(`$GWT_DIR|$HOME/worktree`/`agenda-<slug>`), `agenda/<slug>` 브랜치.
2. **능력 제거** — 클론의 remote 제거 + credential 비움 + 격리 pre-push + 토큰파싱 deny 훅
(클론 밖 배치). push가 물리적으로 불가 → 메인 repo·원격 절대 불가침.
3. 새 워크스페이스에 **워커(`claude --dangerously-skip-permissions`, 대화형 TUI라 pane에서
관찰 가능)** 스폰. l