retrolisted
Install: claude install-skill SONGYEONGSIN/vibe-flow
# 프로젝트 회고 워크플로우
세션 노트(`.claude/session-notes.md`)와 git 이력을 기반으로 프로젝트 회고를 생성한다.
**세션 컨텍스트가 없어도 동작한다** — 파일 기반이므로 세션 유실과 무관.
---
## Phase 1: 소스 수집
아래를 **병렬로** 실행한다.
### 1-1. 세션 노트 읽기
```
Read: .claude/session-notes.md
```
- 파일이 없거나 비어있으면 "세션 노트 없음"으로 표시하고 계속 진행
- `/commit` Phase 4에서 자동 생성된 파일
### 1-2. Git 이력 수집
```bash
# 프로젝트명 추출
basename $(pwd)
# 전체 커밋 이력 (기간 제한 없음 — 마지막 /retro 이후 전부)
git log --oneline --stat
# 주요 변경 파일
git log --name-only --pretty=format:"" | sort | uniq -c | sort -rn | head -20
```
### 1-3. 기존 회고 확인
```
Glob: ~/knowledge/retrospectives/*-{프로젝트명}*.md
```
- 같은 프로젝트의 이전 회고가 있으면 참고 (반복 등장하는 지식 = 공통 지식 후보)
### 1-4. 기술 스택 파악
```
Read: package.json (dependencies, devDependencies만)
```
---
## Phase 2: 지식 분류
수집한 소스에서 지식을 **2가지 버킷**으로 분류한다.
### 공통 지식 (cross-project)
다른 프로젝트에서도 재사용 가능한 것:
| 유형 | 예시 |
|------|------|
| 프레임워크 패턴 | "Next.js App Router에서 외부 이미지는 remotePatterns 필수" |
| 라이브러리 동작 | "Stripe 웹훅은 raw body 필요" |
| 디버깅 기법 | "Supabase RLS 디버깅: service_role로 우회 테스트" |
| 아키텍처 패턴 | "낙관적 업데이트 + 에러 시 롤백" |
| 도구 사용법 | "Vercel Edge Function 콜드스타트 ~50ms" |
### 프로젝트 고유 지식 (project-specific)
이 프로젝트에서만 의미 있는 것:
| 유형 | 예시 |
|------|------|
| 도메인 로직 | "리워드 금액은 VAT 포함 표시" |
| 비즈니스 규칙 | "펀딩 마감 후 환불 불가" |
| 데이터 모델 | "users와 rewards는 N:M 관계" |
| 외부 연동 | "와디즈 API 인증은 OAuth2 + 별도 파트너 키" |
### 분류 기준
**"다른 프로젝트에서 같은 상황을 만나면 도움이 되는가?"**
- Yes → 공통 지식
- No → 프로젝트 고유
---
## Phase 3: 회고 문서 생성
### 저장 경로
```
~/knowledge/retrospectives/YYYY-MM-DD-{프로젝트명}.md
```