| name | retro |
| description | 주간/세션 단위 회고를 실행하세요. "회고해줘", "이번 주 정리해줘", "뭘 했는지 요약해줘", "retro", "retrospective", "/retro" 등에 트리거합니다. git 통계 + 메모리를 결합해 성과·배운 것·막힌 곳을 구조화된 리포트로 출력하고, 진화 기회를 식별합니다. |
회고(Retro) 스킬
숫자는 거짓말하지 않는다. git과 메모리가 말하는 것을 들어라.
회고는 자책이 아니라 다음 주를 더 잘 보내기 위한 데이터 수집이다.
트리거
- "회고해줘" / "이번 주 어땠어" / "retro" / "/retro"
- 주간 또는 세션 종료 시점
- 릴리스 직후 ("이번 배포 정리해줘")
입력 파싱
기간을 지정하지 않으면 지난 7일이 기본. 명시적 기간 예시:
- "오늘 회고" → 오늘 0시 이후
- "이번 주 회고" → 지난 7일
- "이번 스프린트" → 사용자에게 시작 날짜를 묻는다
- "v1.2 릴리스 이후" → 해당 태그 이후
절차
1단계: git 통계 수집 (병렬)
git log --oneline --since="7 days ago" --no-merges
git diff --stat HEAD~$(git log --oneline --since="7 days ago" --no-merges | wc -l) HEAD 2>/dev/null || \
git log --since="7 days ago" --no-merges --numstat --format="" | awk '{add+=$1; del+=$2} END {print "+"add" -"del}'
git log --since="7 days ago" --no-merges --name-only --format="" | sort -u | head -30
git log --since="7 days ago" --no-merges --format="%D" | tr ',' '\n' | grep -v '^$' | sort -u | head -10
git log --since="7 days ago" --no-merges --format="%s" | grep -oP '^(feat|fix|docs|refactor|test|chore|perf|build|ci)' | sort | uniq -c | sort -rn
기간 내 커밋이 0개이면 파라미터를 늘려 재시도하고, 그래도 없으면 사용자에게 알린다.
2단계: 메모리 패턴 분석
a) .claude/memory/mistakes.md 에서 해당 기간 항목 추출
- 새로 기록된 실수 개수
- 반복 태그 있는지 (진화 트리거 확인)
b) .claude/memory/lessons.md 에서 새 항목 확인
c) .claude/memory/decisions.md 에서 기간 내 ADR 확인
3단계: 진화 신호 감지
아래 조건이 감지되면 진화 권고 섹션에 명시:
| 신호 | 의미 |
|---|
| mistakes.md 동일 태그 2회 이상 | 해당 영역 규칙/hook 강화 필요 |
| 같은 커밋 타입이 전체의 60% 이상 | 특정 작업 패턴 → 스킬 추출 고려 |
| fix 커밋이 feat 커밋보다 많음 | 테스트 커버리지 또는 설계 문제 신호 |
| 문서 관련 커밋이 0개 | 코드-문서 불일치 누적 가능성 |
4단계: 리포트 생성
출력 형식
## 🔁 회고 — YYYY-MM-DD ~ YYYY-MM-DD
### 📊 숫자
| 항목 | 값 |
|---|---|
| 커밋 | N개 |
| 추가 라인 | +X |
| 삭제 라인 | -Y |
| 순 변화 | +Z |
| 변경 파일 | N개 |
| 테스트 커밋 비율 | N% |
### 🏗️ 무엇을 했나
커밋 타입별 요약. 가장 많이 건드린 영역 3개.
### 🐛 실수와 학습
- 이번 기간 mistakes.md에 기록된 실수: N개
- 새 교훈(lessons.md): N개
- 반복 태그: <있으면 나열 / 없음>
### 🚧 막힌 곳
fix 커밋이 많거나 같은 파일을 반복 수정한 경우 식별.
### ⚡ 진화 권고
<감지된 진화 신호가 있으면 나열. 없으면 "이번 기간 진화 트리거 없음">
### 📝 다음 주 제안
데이터 기반으로 1~3개 제안. 추측 금지 — 숫자에서 도출한 것만.
규칙
- git이 없는 디렉토리에서는 메모리 파트만 실행하고 git 섹션은 "git 저장소 아님"으로 표시.
- 숫자를 지어내지 않는다. 명령이 실패하면 "측정 불가"로 표시.
- 개인 비난이나 모호한 평가("생산성이 낮았음") 금지. 숫자와 패턴만 말한다.
- 진화 권고는 실제 감지된 신호가 있을 때만. 억지로 뭔가를 찾지 않는다.
- 리포트 끝에
evolve 스킬 트리거 여부를 명시한다:
- "진화 권고 있음 →
/evolve 실행을 고려하세요"
- "진화 트리거 없음 → 다음 회고까지 관찰 계속"
안티 패턴
- 실수를 숨기거나 긍정적으로 포장하는 것. 회고는 현실을 직시하는 자리다.
- "이번 주도 열심히 했습니다" 같은 무의미한 평가.
- git 통계 없이 인상으로 요약하는 것.
- 진화 권고를 진화 실행과 혼동하는 것 — 이 스킬은 진화를 권고하지 실행하지 않는다.