| name | code-lesson |
| description | 코드에서 배우기. Claude가 짠 코드의 구조, 패턴, 로직을 초등학생도 이해할 수 있게 설명해준다. '이거 설명해줘', '코드 설명', '뭘 배울 수 있어', 'code lesson', '이 코드 뭐야', '구조 설명', '어떻게 돌아가는거야' 같은 요청 시 트리거. |
Code Lesson
세션에서 변경된 코드를 분석해서, 유저가 기술적으로 배울 수 있는 포인트를 쉽게 설명한다.
핵심 원칙
초등학생도 이해할 수 있게.
- 전문 용어를 쓰면 반드시 비유로 풀어준다
- "이건 뭐냐면..." 톤으로 설명
- 코드 → 비유 → 왜 이렇게 하는지 순서
플로우
- 변경 감지:
git diff HEAD~1 또는 세션에서 변경한 파일 목록 파악
- 분석: 변경된 코드에서 배울 만한 포인트 추출
- 사용된 디자인 패턴
- 새로운 라이브러리/API 사용법
- 구조적 결정 (왜 이렇게 나눴는지)
- 에러 처리 방식
- 성능 관련 선택
- 설명: 각 포인트를 쉽게 설명
- 기록:
.learnings/ 디렉토리에 저장
설명 형식
각 학습 포인트마다:
### [포인트 제목]
**파일**: `경로/파일명` (라인 N-M)
**뭐냐면**: 한 줄 요약
**비유로 설명하면**: 일상적인 비유로 풀어쓴 설명
**코드에서 보면**:
```코드 조각```
**왜 이렇게 했냐면**: 이유 설명
**이걸 알면 좋은 이유**: 실무에서 어디에 쓰이는지
배울 포인트 판단 기준
기록할 것:
- 처음 등장하는 패턴/기술 (이 프로젝트에서)
- 구조적으로 중요한 결정
- 실수하기 쉬운 부분과 해결 방법
- 라이브러리의 비직관적인 사용법
기록하지 않을 것:
- 단순 변수명 변경, 포맷팅
- 이미 설명한 적 있는 패턴 (
.learnings/에서 확인)
- 설정 파일 변경
저장
경로: <프로젝트>/.learnings/YYYY-MM-DD.md
파일 형식:
# Code Lessons — YYYY-MM-DD
## HH:MM
### [포인트 제목]
(위 설명 형식)
---
날짜별 파일에 append. .learnings/가 없으면 생성.
.gitignore에 .learnings/가 없으면 추가할지 유저에게 물어본다.
유저 레벨 감지
memory에 유저 정보가 있으면 레벨에 맞춰 조절:
- 초보: 모든 개념을 비유로 설명
- 중급: 패턴 이름 + 왜 선택했는지
- 고급: 트레이드오프, 대안 비교 중심