---
name: recruit
description: 새 에이전트를 영입한다. 문답을 통해 역할을 정의하고 필요한 파일을 자동 생성한다.
user_invocable: true
argument-hint: "[에이전트이름] (생략 시 이름부터 문답)"
---

# 에이전트 영입

새 에이전트를 영입하여 `agents/{이름}/` 디렉토리에 필요한 파일을 생성한다.

## 입력

- `$ARGUMENTS`: 에이전트 이름 (소문자, 영문). 생략 시 문답으로 결정.

## 절차

### 1. 기존 정보 수집

대화 컨텍스트에서 이미 나온 정보를 먼저 정리한다. 아래 항목 중 대화에서 파악 가능한 것은 그대로 사용하고, **부족한 항목만 사용자에게 질문한다.**

### 2. 문답 (부족한 항목만)

아래 정보가 필요하다. 이미 알고 있는 항목은 건너뛴다.

| # | 항목 | 질문 예시 | 필수 |
|---|------|----------|------|
| 1 | **이름** | "에이전트 이름을 뭘로 할까요? (소문자 영문)" | O |
| 2 | **한줄 설명** | "{이름}의 역할을 한 줄로 설명해주세요" | O |
| 3 | **주요 역할** (1~3개) | "주로 어떤 작업을 하나요?" | O |
| 4 | **기술 스택** | "사용하는 언어/도구/프레임워크는?" | - |
| 5 | **협업 대상** | "함께 일할 에이전트가 있나요?" | - |
| 6 | **작업 환경** | "특별한 환경 설정이 필요한가요? (API 키, 외부 서비스 등)" | - |
| 7 | **이름 제안** (이름 미정 시) | 역할 기반으로 2~3개 이름 후보 제안 | - |

**문답 원칙:**
- 한 번에 2~3개 항목을 묶어서 질문 (너무 많은 왕복 방지)
- 사용자가 간단히 답하면 그에 맞춰 추론하여 채운다
- 확실하지 않은 추론은 확인을 받는다

### 3. 요약 확인

모든 정보가 모이면 생성할 파일 목록과 내용 요약을 보여주고 사용자 확인을 받는다.

```
📋 에이전트 영입 요약
━━━━━━━━━━━━━━━━━━━
이름: {이름}
역할: {한줄 설명}
주요 업무: {역할 목록}
기술 스택: {스택}
협업: {대상 목록}

생성할 파일:
  agents/{이름}/role.md
  agents/{이름}/CLAUDE.md
  agents/{이름}/.claude/settings.json
  agents/{이름}/.claude/skills/    (_example에서 복사: check-chatroom,
                                    check-mentions, end-turn, send-message 등)
  agents/{이름}/knowhow/           (빈 디렉토리)

진행할까요?
```

### 4. 파일 생성

사용자가 승인하면 아래 파일을 생성한다.

#### agents/{이름}/role.md

```markdown
---
name: {이름 PascalCase}
description: {한줄 설명}
---

## 담당 역할

1. **{역할1}** — {설명}
2. **{역할2}** — {설명}

## 협업 구조

- **{대상에이전트}** ({역할}) — {협업 내용}
```

#### agents/{이름}/CLAUDE.md

`agents/_example/CLAUDE.md`를 복사하여 다음을 치환한다:
- `{에이전트이름}` → 실제 이름
- `{한줄 설명}` → 역할 설명
- `역할 1`, `역할 2` → 실제 역할
- 기술 스택, 작업 환경 정보가 있으면 별도 섹션 추가

#### agents/{이름}/.claude/settings.json

`agents/_example/.claude/settings.json`을 그대로 복사한다.

#### agents/{이름}/.claude/skills/

`agents/_example/.claude/skills/` 디렉토리 전체를 그대로 복사한다. 여기에는 모든 에이전트가 공통으로 사용하는 기본 스킬이 들어 있다:

- `check-chatroom/` — 채팅방 안 읽은 메시지 확인
- `check-mentions/` — 나를 멘션한 메시지만 확인
- `end-turn/` — 턴 종료
- `send-message/` — 채팅방에 메시지 전송

> **중요.** 이 단계를 빠뜨리면 신규 에이전트는 `/send-message`, `/check-chatroom` 같은 턴제 운영에 필수적인 슬래시 커맨드를 전혀 사용할 수 없다. 반드시 스킬 폴더 전체가 복사되었는지 확인한다. `_example`에 새 공통 스킬이 추가되면 신규 영입 시 자동으로 함께 복사된다.

`cp -r agents/_example/.claude/skills agents/{이름}/.claude/` 한 번이면 충분하다(리크루터 자신도 동일한 구조로 셋업되어 있으므로 참고).

#### agents/{이름}/knowhow/

빈 디렉토리를 생성한다. (`.gitkeep` 파일 하나 포함)

### 5. 팀 알림

`/send-message general`로 새 에이전트 합류 메시지를 보낸다:
- type: `message`
- subject: "{이름} 에이전트 합류"
- 본문: 역할 요약 + 협업 대상 안내

### 6. 완료 보고

생성된 파일 목록과 다음 단계를 안내한다. 보고 전에 반드시 아래 sanity check를 수행한다:

- `agents/{이름}/.claude/skills/send-message/SKILL.md` 존재 확인 (없으면 스킬 복사가 누락된 것 — 3단계로 되돌아가 `cp -r`을 다시 수행)
- `agents/{이름}/role.md`, `CLAUDE.md`, `.claude/settings.json` 존재 확인

확인 완료 후 안내:
- "Claude Code에서 `agents/{이름}/` 디렉토리로 이동하여 세션을 시작하세요"
- "첫 턴에서 `/check-chatroom general`로 합류 메시지를 확인할 수 있습니다"

## 주의사항

- 같은 이름의 에이전트 디렉토리가 이미 존재하면 **덮어쓰지 않고** 사용자에게 알린다
- `_example/` 디렉토리는 템플릿으로 유지한다 (삭제하지 않음)
- 이름은 반드시 소문자 영문 + 하이픈만 허용 (예: `data-analyst`, `frontend-dev`)
- **`.claude/skills/` 복사를 절대 빠뜨리지 않는다.** 이 폴더가 없으면 신규 에이전트는 `/send-message`, `/check-chatroom`, `/end-turn` 등 턴제 운영에 필수적인 슬래시 커맨드를 전혀 쓸 수 없다. 영입 완료 직후 해당 경로의 존재를 반드시 검증할 것
