---
name: retro
description: |
  면접/지원 회고 스킬. 면접 결과 분석, 탈락 원인 진단, 개선 포인트 도출.
  누적 패턴 분석: 여러 면접 기록에서 반복 약점을 교차 분석.
  "면접 회고", "왜 떨어졌을까", "개선점", "패턴 분석" 등의 요청 시 활용.
allowed-tools:
  - Bash
  - Read
  - Write
  - Grep
  - AskUserQuestion
  - WebSearch
argument-hint: "[회사명] [탈락 단계]"
when_to_use: |
  면접이나 지원 결과를 분석하고, 반복되는 약점을 찾아 다음 지원에 반영할 때 사용한다.
  회고 기록이 3건 이상 쌓이면 누적 패턴 분석으로 개선 전략을 도출할 수 있다.
  모의면접 연습은 /mock_interview 담당이다.
metadata:
  preamble-tier: 2
  version: 0.2.0
  benefits-from: [mock-interview, tracker]
---

!`bash "${CLAUDE_SKILL_DIR}/scripts/preamble.sh" retro "${CLAUDE_SESSION_ID}" "${CLAUDE_PLUGIN_DATA:-}"`

> 위 실행 컨텍스트가 비어 있거나 `KEY=VALUE` 목록 대신 `!` 명령·정책 차단 문구가 그대로 보이면(`!` 주입이 꺼진 환경), 첫 Bash 명령으로 `bash "${CLAUDE_SKILL_DIR}/scripts/preamble.sh" retro`를 실행해 같은 컨텍스트를 확보하고 `${CLAUDE_SKILL_DIR}/references/guardrails.md`를 Read 하세요. 그 파일마저 없는 환경(Cowork처럼 스킬 디렉토리가 파일시스템에 없는 경우)에서는 상태 저장·스크립트 호출 단계를 건너뛰고 필요한 자료를 사용자에게 요청합니다. `STATE_WRITE_FAILED=true`가 보이면 `JOBSTACK_STATE_DIR` 경로를 사용자에게 확인합니다. 이 스킬의 Bash 스니펫은 첫 줄에 `. "${JOBSTACK_STATE_DIR:-$HOME/.jobstack}/env.sh"`를 두어 `$_JS_STATE`·`$_JS_BIN`·`$TODAY`를 불러옵니다.

### 공통 가드레일 (references/guardrails.md)

!`sed '1{/^# /d;}' "${CLAUDE_SKILL_DIR}/references/guardrails.md"`

!`if [ "${JOBSTACK_RUNTIME:-}" = bot ] || [ -n "${JOBCLAW_RUN_ID:-}" ]; then cat "${CLAUDE_SKILL_DIR}/references/bot-protocol.md"; fi`

# 면접/지원 회고

면접이나 지원 결과를 돌아보고, 다음 지원을 위한 구체적 개선 포인트를 도출합니다.

---

## Phase 1: 회고 대상 선택

interview-history와 tracker에서 최근 기록을 확인합니다.

`RETRO_HISTORY_COUNT`가 3 이상이면 C) 패턴 분석 옵션을 강조합니다.

AskUserQuestion:
```
회고할 면접/지원 건을 선택해주세요.

A) 최근 면접 회고 (면접 경험 분석)
B) 탈락 원인 분석 (불합격 건)
C) 누적 패턴 분석 (여러 면접 경험 종합) ← 기록 3건+ 시 강력 추천
```

---

**C 선택 시 — 누적 패턴 분석 바로 실행:**
Phase 2(면접 인터뷰)는 건너뛰고 Phase 3.3 패턴 분석으로 바로 진행합니다.

---

**B 선택 시 — 탈락 원인 분석 (전형 단계별 분기):**

탈락은 어느 단계에서 떨어졌는지에 따라 진단 축이 완전히 다릅니다. 먼저 탈락 직전 단계를 확정합니다.

1. 아래를 호출해 해당 건의 상태를 확인합니다.
   ```bash
   . "${JOBSTACK_STATE_DIR:-$HOME/.jobstack}/env.sh"
   "$_JS_BIN/jobstack-tracker" list --json
   ```
   그룹별 배열(진행중/대기중/종료/구버전)에서 회사명이 일치하는 항목을 찾아 `status_label`을 확인합니다 — 이미 한글 라벨로 정규화된 값이므로 별도 변환이 필요 없습니다.
2. 일치하는 기록이 없으면 AskUserQuestion 1회로 탈락 단계를 확인합니다:
   ```
   어느 단계에서 탈락했나요?
   A) 서류 (서류전형 불합격)
   B) 코딩테스트·AI역량검사
   C) 1차 면접 (실무)
   D) 2차·최종 면접 (임원)
   ```

**단계별 진단 축:**

| 탈락 단계 | 진단 축 | 이후 흐름 |
|---|---|---|
| 서류 | ① 공고 키워드 반영률 — ETHOS 7가지 기업 키워드 소스 체크리스트와 대조 ② ATS 형식 리스크 — 표·그래픽·이미지·비표준 제목 사용 여부 | Phase 2(면접 인터뷰) 건너뜀 → Phase 3.4·Phase 4로 |
| 코테·AI역량검사 | Phase 3.5의 코딩테스트·AI역량검사 축 재사용 | Phase 2 건너뜀 → Phase 3.5·3.4·Phase 4로 |
| 1차 면접 | 직무역량 + 컬처핏 | Phase 2 면접 인터뷰 진행 |
| 2차·최종 면접 | 컬처핏·모티베이션 핏 + 임원 관점 답변 | Phase 2 면접 인터뷰 진행 |

- **면접 단계 탈락**(1차/2차·최종)일 때만 Phase 2 면접 경험 인터뷰를 진행합니다. 서류·코테·AI역량검사 탈락은 Phase 2를 건너뛰고 해당 진단 축으로 바로 갑니다.
- 단계별 평가 비중(%) 등 시효성 수치가 필요하면 본문에 단정하지 말고 실행 시점에 WebSearch로 출처·기준일과 함께 확인합니다.
- **탈락 건 마무리 안내(1줄)**: "채용절차법상 채용서류 반환 청구권이 있습니다(반환·보관·파기 의무 존재). 반환을 원하면 청구할 수 있으니, 구체적 청구 기간·절차는 안내 시점에 최신 법령을 확인하세요."

---

## Phase 2: 면접 경험 인터뷰

AskUserQuestion으로 하나씩 질문합니다:

1. "어떤 기업/직무 면접이었나요?"
2. "면접 형식은 무엇이었나요? (인성/PT/토론/기술/임원/AI역량검사/AI화상면접/코딩테스트)"
3. "기억나는 면접 질문을 알려주세요. (최대한 많이)"
4. "각 질문에 어떻게 답변했나요?"
5. "면접 분위기는 어땠나요? (꼬리질문이 많았나, 긍정적 반응이 있었나)"
6. "본인이 느끼기에 잘한 점과 아쉬운 점은?"

---

## Phase 3: 분석

### 3.1 답변 품질 분석
수집된 질문-답변을 "결이요" 프레임워크로 평가:
- 첫 문장에 결론이 있었나?
- 구체적 수치/사례가 있었나?
- 직무/기업 연결이 있었나?

**꼬리질문 공통 5세트 재점검:** 사용자가 말한 핵심 답변 각각을 아래 5세트와 대조합니다.
- 어떤 문제였나 / 왜 그 방법이었나 / 역할 범위는 어디까지였나 / 결과를 어떻게 확인했나 / 다시 한다면 무엇을 바꾸겠나

지금도 즉답이 어려운 문장은 **'위험 문장'** 으로 표시하고, '1분 안에 설명 가능' 기준으로 재구성하는 과제를 냅니다. 위험 문장에는 weakness_tags의 `꼬리질문대응` 태그를 연동합니다.

### 3.2 준비 vs 실제 GAP
- 준비한 답변 vs 실제 답변 비교 (면접 예상 질문 세트가 있다면 대조)
- 예상치 못한 질문 유형 분석
- 미끼 전략이 작동했는지 확인
- **미끼 이후 방어 실패 지점 표시**: 자소서·답변으로 미끼를 던졌는데 꼬리질문에서 무너진 지점을 별도로 표시하고, 그 지점을 다음 `/mock_interview` 연습 대상으로 지정합니다.

### 3.2.1 미끼 방어 준비율 (defense-map)

```bash
. "${JOBSTACK_STATE_DIR:-$HOME/.jobstack}/env.sh"
"$_JS_BIN/jobstack-defense-map.mjs" stats --company "삼성전자"
```

출력의 `준비율 N/M (P%)` 줄을 회고 리포트의 참고 지표로 그대로 인용합니다(회사명은 스크립트가 공백 제거·소문자 부분일치로 느슨하게 매칭하고, 여러 파일이 있으면 전체 합산 `준비율`도 함께 냅니다). 결과가 없으면(`defense-map 파일이 없습니다`) 이 지표를 생략하고 오류를 노출하지 않습니다 — 파일 갱신 자체는 `/mock_interview` 종료 시 이뤄지므로 여기서는 조회만 합니다. entry 필드(`bait_type`·`defense_status` 등)의 전체 정의는 `${CLAUDE_SKILL_DIR}/references/defense-map-schema.md` 계약을 `jobstack-defense-map.mjs`가 구현한 것입니다.

면접에서 실제로 받은 질문이 겹치는지 확인하려면 문장·예상 질문 목록을 함께 조회합니다:
```bash
. "${JOBSTACK_STATE_DIR:-$HOME/.jobstack}/env.sh"
"$_JS_BIN/jobstack-defense-map.mjs" show --company "삼성전자"
```
겹치는 entry가 있으면 실전에서 통했는지(`ready`) 막혔는지(`weak`)를 회고에 기록합니다.

### 3.3 패턴 분석

```bash
. "${JOBSTACK_STATE_DIR:-$HOME/.jobstack}/env.sh"
"$_JS_BIN/jobstack-retro-stats"
```

과거 회고가 있으면 스크립트가 각 회고 파일의 프론트매터(`weakness_tags`·`stage`)를 집계해 반복 약점 태그 빈도, 단계별 태그 교차표, 최근 3건 대비 이전 평균의 태그 개수 추세를 계산합니다. 단계 교차는 각 회고를 기록할 당시의 `stage` 값을 그대로 쓰므로 스냅샷 근사가 아니라 그 회고 시점의 실제 기록입니다. 프론트매터가 없는 구서식 파일은 집계에서 제외됩니다.

```
회고 누적 통계 — 4건 ($_JS_STATE/interview-history)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
반복 약점 태그:
  꼬리질문대응    ■■■        3건
  기업연구부족    ■■         2건
  수치화부족     ■          1건

단계 × 태그:
  1차면접: 꼬리질문대응 2, 수치화부족 1, 기업연구부족 1
  서류: 기업연구부족 1
  2차면접: 꼬리질문대응 1

추세: 최근 3건 평균 약점 1.3개 vs 이전 평균 2.0개

최근 회고:
  2026-07-04  삼성전자  1차면접  불합격  [꼬리질문대응, 수치화부족]
  2026-07-20  카카오  1차면접  불합격  [기업연구부족, 꼬리질문대응]
  2026-08-10  토스  서류  불합격  [기업연구부족]
  2026-08-25  당근  2차면접  불합격  [꼬리질문대응]
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
```

병목 단계가 확인되면(같은 단계에서 반복 등장하는 태그) `/strategy` 재수립 추천의 근거 문장으로 연결합니다. retro는 이 출력을 **해석**만 담당합니다 — 전환율 수치 산출·지원 통계·7일 정체 넛지는 tracker(`stats`/`calendar`/`nudge`) 소관이므로 여기서 계산하지 않습니다.

과거 기록이 없으면(`회고 파일 없음`) 현재 단일 회고만 진행합니다. 3건 미만이면 스크립트가 `※ 3건 미만이라 패턴 단정은 보류합니다`를 덧붙이므로 그대로 전달합니다.

### 3.4 탈락 원인 3축 분리 진단

탈락 원인을 아래 순서로 분리해 진단하고, 축별로 다음 스킬에 라우팅합니다.

| 축 | 정의 | 라우팅 |
|---|---|---|
| ① 기준 미스매치 | 공고가 반복 요구한 기준과 내 소재가 어긋남 | `/company_research` 재분석 |
| ② 근거 부족 | 문제·역할·행동·변화 중 빠진 요소가 있음 | `/cover_letter` 소재 보강 (경험 전환 6단계) |
| ③ 표현 문제 | 추상어·구조 때문에 전달이 약함 | `/review` |

- 근거 보강은 `${CLAUDE_SKILL_DIR}/references/experience-methods.md` 의 §1(경험 전환 6단계)을 적용합니다.
- **직무 변경 후 탈락**이면 '기준부터 재점검'합니다 — 같은 경험도 새 직무 공고의 키워드로 다시 해석해야 합니다.

### 3.5 전형 유형별 회고 축

AI 전형·코딩테스트는 일반 면접과 진단 축이 다릅니다. 형식에 맞는 축으로 봅니다. 최신 도입 현황이 필요하면 실행 시점에 WebSearch로 확인합니다(본문에 도입 기업 수 등 시효성 수치를 단정하지 않습니다).

- **AI역량검사**: 성향 응답의 일관성, 게임형 과제 수행, 환경 문제(장비·네트워크) 여부를 구분해 봅니다. → 액션: `/mock_interview` D) AI면접 모드
- **AI화상면접**: 답변 **내용**과 비언어 지표(목소리 크기·떨림·더듬)를 **분리해** 진단합니다 — 음성/표정이 아니라 답변 내용을 우선 평가하고, 음성 지표는 별도 축으로 첨부합니다. → 액션: `/mock_interview` D) AI면접 모드
- **코딩테스트**: AI 금지 환경의 기본기에서 막혔는지, AI 활용 과제에서 막혔는지 구분합니다. → 액션: `/mock_interview` E) 기술면접

---

## Phase 4: 개선 액션플랜

**작성 규칙:**
- 회고 항목에 "~을 느꼈다/배웠다" 같은 감상은 금지합니다. 모든 항목은 **다음 지원에서 달라질 행동 한 문장**으로 기록합니다(예: "면접 전 해당 팀 최근 업데이트 3건을 시간순으로 정리한다").
- 개선 항목 앞에 3축 라벨([기준]/[근거]/[표현])을 붙여 원인 축을 드러냅니다. (ETHOS 어조 전환 공식의 '희망→실행', '감정→행동'과 같은 계열 — 감상이 아니라 행동으로 적는다.)

```
회고 결과 요약
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
강점:
  - 기술적 깊이 있는 답변 (Redis 캐싱 설명)
  - 프로젝트 경험 구체적 전달

개선 필요:
  - [기준] 지원동기 답변이 기업 연구와 어긋남
    → 액션: /company_research로 재분석
  - [근거] 꼬리질문에서 역할 범위를 답하지 못함
    → 액션: /mock_interview로 꼬리질문 연습
  - [근거] 숫자 기반 성과 전달 부족
    → 액션: 주요 경험 3개에 before→after 수치 추가

다음 면접까지 To-Do (모두 행동 변화 문장):
  1. [ ] 지원 전 공고 키워드 7소스를 체크리스트로 대조한다
  2. [ ] 자소서 미끼마다 꼬리질문 답변을 1분 분량으로 준비한다
  3. [ ] 병목 단계(예: 1차 면접)를 대상으로 모의면접을 2회 진행한다
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
```

---

## Phase 5: 기록 및 추적

회고 결과를 `$_JS_STATE/interview-history/retro-{기업명}-{date}.md`에 저장합니다. 파일 맨 위에 아래 YAML 프론트매터를 붙입니다.

```yaml
---
date: 2026-07-04
company: 삼성전자
role: SW엔지니어
stage: 1차면접        # tracker 한글 상태 라벨 중 하나 (준비중/지원완료/서류합격/1차면접/2차면접/최종면접/최종합격/불합격/지원취소)
result: 불합격         # 합격/불합격/대기 등
weakness_tags: [꼬리질문대응, 수치화부족]   # 고정 8태그 내에서만: 기업연구부족·꼬리질문대응·수치화부족·기술깊이·기준미스매치·근거부족·표현문제·컬처핏
actions: [1차 면접 대상 모의면접 2회, before→after 수치 3건 보강]
---
```

- `stage`는 tracker 한글 상태 라벨 중 하나로만 씁니다(canonical 매핑은 `${CLAUDE_SKILL_DIR}/references/tracker-states.md`). `weakness_tags`는 위 고정 8태그 안에서만 씁니다 — 새 태그를 임의로 만들지 않습니다. 이 프론트매터 형식은 `jobstack-retro-stats`가 그대로 파싱하는 계약이므로 필드명·형식을 임의로 바꾸지 않습니다.
- **제3자 PII 기록 금지**: 면접관 실명·연락처 등 제3자 정보를 회고 파일에 남기지 않습니다. 3등급 PII 정책(제3자=금지, 익명화·집계만)을 따르며, 자세한 규칙은 `${CLAUDE_SKILL_DIR}/references/guardrails.md` §1을 참조합니다.
- 지원 현황을 관리 중이면 봇 네이티브 명령 `/track`·`/myapps`에서 해당 건의 상태·메모를 갱신하도록 안내합니다.

**회고 상세 기록:** 회고 모드(A/B/C)·탈락 단계·weakness_tags 등 회고 상세는 위 회고 산출 파일(`retro-{기업명}-{date}.md`)의 YAML 프론트매터에만 남깁니다. `skill-usage.jsonl`에는 프리앰블에서 이미 기록한 표준 텔레메트리 외에 별도 이벤트를 추가하지 않습니다 — 이벤트 규격은 `${CLAUDE_SKILL_DIR}/references/telemetry-events.md`의 정의된 종류만 씁니다.

**결과물 뷰어 안내:** 회고 파일을 저장한 뒤 다음 명령으로 브라우저에서 열 수 있음을 사용자에게 안내합니다.
```bash
. "${JOBSTACK_STATE_DIR:-$HOME/.jobstack}/env.sh"
"$_JS_BIN/jobstack-view" <회고파일.md>
```

---

## 보이스

따뜻하지만 솔직한 코치. 실패를 비난하지 않되, 원인은 정확히 짚습니다. 항상 구체적 다음 행동과 함께.

## 완료 상태

- **완료 (DONE)** — 회고 + 액션플랜 완료
- **완료 (DONE)** [패턴 분석] — 누적 회고 패턴 + 개선 추세 분석 완료
- **우려사항 있는 완료 (DONE_WITH_CONCERNS)** — 패턴 분석인데 기록이 3건 미만이라 추세 신뢰도가 낮음. 표본 부족을 명시하고 단정하지 않음
- **차단됨 (BLOCKED)** — 사용자가 중간에 중단했거나 필요한 정보를 회수할 수 없어 진행 불가. 차단 요인과 시도한 내용 기술
- **추가 정보 필요 (NEEDS_CONTEXT)** — 회고 대상 기록(면접·지원 내역)이 전혀 없어 진행 불가. 필요한 내용 정확히 기술

다음 추천:
- `/strategy` (전략 재수립, 반복 약점이 구조적이면)
- `/mock_interview` (반복 약점 집중 연습)
- `/company_research` (기업 연구 부족이 반복 패턴이면)
