---
name: lesson
description: 프로젝트 교훈을 .claude/lessons.md에 기록합니다. 실수, 주의사항, 패턴을 빠르게 캡처.
argument-hint: "[카테고리:] 교훈 내용 (예: 실수: DB 스키마 변경 시 migrations 필수)"
---

# 교훈 캡처

## 목적

작업 중 발견한 실수, 주의사항, 유용한 패턴을 `.claude/lessons.md`에 기록하여 다음 세션에서 반복을 방지합니다.

## 카테고리

| 카테고리 | 키워드 | 용도 |
|----------|--------|------|
| 실수 (Mistakes) | `실수`, `mistake`, `금지`, `하지마` | 반복하면 안 되는 실수 |
| 주의 (Cautions) | `주의`, `caution`, `조심`, `확인` | 작업 시 주의할 점 |
| 패턴 (Patterns) | `패턴`, `pattern`, `순서`, `방법` | 따라야 할 올바른 패턴 |

## 워크플로우

### Step 1: 인수 파싱

사용자 인수를 분석합니다:

- `카테고리: 내용` 형식이면 카테고리를 직접 사용
- 카테고리 없이 내용만 있으면 키워드 기반으로 자동 판별:
  - "~하지 마", "금지", "실수" → 실수
  - "조심", "확인", "주의" → 주의
  - "순서", "방법", "패턴", "~할 때" → 패턴
- 판별이 모호하면 `AskUserQuestion`으로 질문

인수가 비어있으면 `AskUserQuestion`으로 교훈 내용을 질문합니다.

### Step 2: 중복 확인

`.claude/lessons.md`를 읽고 비슷한 교훈이 이미 있는지 확인합니다.

- 핵심 키워드가 70% 이상 겹치는 항목이 있으면 사용자에게 알림
- 기존 항목을 업데이트할지 새로 추가할지 `AskUserQuestion`으로 질문

### Step 3: 교훈 추가

`.claude/lessons.md`의 해당 카테고리 섹션에 추가합니다:

**형식:**
```
- [YYYY-MM-DD] 교훈 내용
```

**규칙:**
- 오늘 날짜를 자동으로 삽입
- 한 줄로 간결하게 작성 (필요하면 `—` 뒤에 이유 추가)
- 해당 카테고리의 마지막 항목 뒤에 추가

### Step 4: 확인

추가된 교훈을 사용자에게 보여줍니다:

```
교훈이 추가되었습니다:
- 카테고리: {카테고리}
- 내용: {내용}
- 파일: .claude/lessons.md

다음 세션부터 자동으로 컨텍스트에 포함됩니다.
```

## 서브커맨드

### `/lesson list`

현재 등록된 모든 교훈을 카테고리별로 보여줍니다.

### `/lesson clean`

오래된(90일+) 교훈이나 중복 항목을 찾아 정리를 제안합니다.
`AskUserQuestion`으로 각 항목의 삭제 여부를 확인합니다.

## Related Files

| File | Purpose |
|------|---------|
| `.claude/lessons.md` | 교훈 저장 파일 |
| `.claude/hooks/load-recent-changes.sh` | SessionStart 훅 (lessons.md를 컨텍스트에 로드) |
