ワンクリックで
review-cheatsheet
// 나노바나나 치트시트 이미지를 Gemini Vision으로 분석하여 해당 kr md 파일의 내용과 일치하는지 검증합니다. 기술적/문맥적 오류, 잘못된 텍스트/그래프/그림을 찾아냅니다. 사용: /review-cheatsheet week1/slug/chapter
// 나노바나나 치트시트 이미지를 Gemini Vision으로 분석하여 해당 kr md 파일의 내용과 일치하는지 검증합니다. 기술적/문맥적 오류, 잘못된 텍스트/그래프/그림을 찾아냅니다. 사용: /review-cheatsheet week1/slug/chapter
YouTube 콘텐츠의 챕터별 하위페이지 구조를 readings.ts에 생성하고, 전체 번역 파일에서 챕터별 번역 파일을 자동 생성합니다. 사용: /split-youtube-chapters week1/deep-dive-llms
코드 수정 완료 후 conventional commit 형식의 커밋 메시지를 자동 생성하고 사용자 확인 후 커밋합니다. 사용자가 커밋해줘 또는 /commit 요청 시 사용.
readings.ts의 요약 필드가 원본 kr 마크다운과 비교하여 잘 작성되었는지 평가합니다. 이슈별로 개선사항을 제안하고 사용자 컨펌 후 readings.ts를 수정합니다. 사용: /eval-summary week1 또는 /eval-summary week1/slug
나노바나나 프롬프트의 정확성을 한글 번역본과 비교하여 검증하고, WebSearch로 팩트체크한 후 이슈별로 사용자 확인을 거쳐 수정합니다. 사용: /improve-prompt week1/deep-dive-llms/tokenization
Reading 원문에서 나노바나나 프로용 치트시트 프롬프트를 생성합니다. 3단계 에이전트 파이프라인(분석→구조설계→프롬프트생성)으로 콘텐츠 유형에 맞는 프롬프트 생성. 사용: /nanobanana week1/slug
나노바나나에서 생성된 치트시트 이미지를 public에 복사하고 readings.ts에 cheatsheetImage 필드를 추가합니다. 사용: /publish-cheatsheet week1/slug
| name | review-cheatsheet |
| description | 나노바나나 치트시트 이미지를 Gemini Vision으로 분석하여 해당 kr md 파일의 내용과 일치하는지 검증합니다. 기술적/문맥적 오류, 잘못된 텍스트/그래프/그림을 찾아냅니다. 사용: /review-cheatsheet week1/slug/chapter |
| arguments | [{"name":"path","description":"week/slug/chapter 형식의 문서 경로\n예: week1/deep-dive-llms/tokenization\n","required":true},{"name":"all","description":"week1의 모든 치트시트를 검증 (--all)","required":false}] |
나노바나나 치트시트 이미지를 Gemini Vision API로 분석하여 원본 한국어 문서와 비교 검증합니다.
# 개별 챕터 검증
/review-cheatsheet week1/deep-dive-llms/tokenization
# 단일 페이지 검증
/review-cheatsheet week1/how-openai-uses-codex
# week1 전체 검증
/review-cheatsheet --all
| 파일 유형 | 경로 |
|---|---|
| 치트시트 이미지 | public/cheatsheets/week{N}/{slug}/{chapter}.png |
| 한국어 번역 | docs/week{N}/{slug}/kr/{chapter}.md |
.claude/outputs/review-cheatsheet/
└── week{N}/{slug}/
├── {chapter}-gemini-analysis.json # Gemini Vision 분석 결과
└── {chapter}-review-report.md # 검증 리포트
/review-cheatsheet week1/deep-dive-llms/tokenization
│
▼
┌──────────────────────────────────────┐
│ 1. 파일 경로 확인 │
│ - 치트시트: public/cheatsheets/... │
│ - kr md: docs/.../kr/*.md │
└──────────────────────────────────────┘
│
▼
┌──────────────────────────────────────┐
│ 2. Gemini Vision API 호출 │
│ - 이미지 분석 │
│ - 모든 텍스트/요소 추출 │
└──────────────────────────────────────┘
│
▼
┌──────────────────────────────────────┐
│ 3. md 파일과 비교 분석 │
│ - Task agent로 비교 │
│ - 불일치/오류 탐지 │
└──────────────────────────────────────┘
│
▼
┌──────────────────────────────────────┐
│ 4. 리포트 생성 │
│ - 발견된 이슈 정리 │
│ - 심각도 분류 │
└──────────────────────────────────────┘
이 스킬이 호출되면 다음 단계를 따르세요.
경로 파싱:
- week1/deep-dive-llms/tokenization
→ week: 1
→ slug: deep-dive-llms
→ chapter: tokenization
파일 경로:
- 이미지: public/cheatsheets/week1/deep-dive-llms/tokenization.png
- kr md: docs/week1/deep-dive-llms/kr/tokenization.md
파일명 매핑 주의:
- 일부 파일명이 다를 수 있음
- 이미지: preview-of-things-to-come.png → md: preview-things-to-come.md
- 이미지: sft-to-rl.png → md: supervised-finetuning-to-rl.md
- 매핑 실패 시 Glob으로 유사 파일 검색
Python 스크립트로 Gemini Vision API를 호출합니다:
python3 << 'PYEOF'
import os
import json
from pathlib import Path
# .env 파일에서 API 키 로드
env_path = Path(".env")
if env_path.exists():
for line in env_path.read_text().split('\n'):
if '=' in line and not line.strip().startswith('#'):
key, value = line.strip().split('=', 1)
os.environ[key] = value
import warnings
warnings.filterwarnings('ignore')
import google.generativeai as genai
genai.configure(api_key=os.environ.get('GOOGLE_API_KEY'))
# 이미지 경로 (실제 경로로 대체)
image_path = Path("public/cheatsheets/week1/deep-dive-llms/tokenization.png")
image_data = image_path.read_bytes()
model = genai.GenerativeModel('gemini-2.0-flash')
prompt = """
이 치트시트 이미지를 분석해주세요. 다음 항목들을 JSON 형식으로 반환해주세요:
1. extracted_text: 이미지에서 추출한 모든 텍스트 (섹션별로 구분)
2. diagrams: 다이어그램/그래프 설명
3. technical_terms: 기술 용어 목록
4. numbers: 이미지에 나타난 모든 숫자/수치
5. potential_issues: 발견된 잠재적 오류나 이상한 점
JSON 형식으로만 답변해주세요.
"""
response = model.generate_content([prompt, {"mime_type": "image/png", "data": image_data}])
print(response.text)
PYEOF
결과를 .claude/outputs/review-cheatsheet/week{N}/{slug}/{chapter}-gemini-analysis.json에 저장합니다.
Task agent를 호출하여 비교 분석을 수행합니다:
Task tool 호출:
- subagent_type: "general-purpose"
- prompt: .claude/agents/review-cheatsheet/compare-analyzer.md 내용
+ Gemini 분석 결과 JSON
+ kr md 파일 내용
- description: "cheatsheet-compare - 치트시트 검증"
비교 분석 결과를 바탕으로 리포트를 생성합니다:
# 치트시트 검증 리포트
## 문서 정보
- **경로**: week1/deep-dive-llms/tokenization
- **이미지**: public/cheatsheets/week1/deep-dive-llms/tokenization.png
- **검증일**: {날짜}
## 검증 결과 요약
| 항목 | 상태 | 비고 |
|------|------|------|
| 텍스트 정확성 | ✅/⚠️/❌ | {설명} |
| 기술적 정확성 | ✅/⚠️/❌ | {설명} |
| 문맥적 일관성 | ✅/⚠️/❌ | {설명} |
## 발견된 이슈
### Critical (즉시 수정 필요)
- {이슈 설명}
### Warning (확인 권장)
- {이슈 설명}
### Info (참고)
- {이슈 설명}
## 상세 비교
### 이미지 추출 텍스트
{Gemini가 추출한 텍스트}
### md 파일 핵심 내용
{kr md 파일의 요약/핵심 정리 섹션}
### 불일치 항목
{구체적인 불일치 내용}
Write tool로 .claude/outputs/review-cheatsheet/week{N}/{slug}/{chapter}-review-report.md에 저장합니다.
✅ 치트시트 검증 완료!
📊 **검증 결과**: {전체 상태}
📋 **발견된 이슈**:
- Critical: {N}건
- Warning: {N}건
- Info: {N}건
📁 **리포트 저장 위치**:
.claude/outputs/review-cheatsheet/week1/deep-dive-llms/
├── tokenization-gemini-analysis.json
└── tokenization-review-report.md
💡 **권장 조치**:
{Critical 이슈가 있으면 수정 권장}
week1의 모든 치트시트를 순차적으로 검증합니다:
1. public/cheatsheets/week1/**/*.png 파일 목록 가져오기
2. 각 이미지에 대해 Step 1-5 반복
3. 전체 요약 리포트 생성: master-report.md
| 상황 | 처리 |
|---|---|
| 이미지 파일 없음 | "치트시트 이미지를 찾을 수 없습니다: {경로}" |
| md 파일 없음 | "한국어 번역 파일을 찾을 수 없습니다: {경로}" |
| API 키 없음 | ".env 파일에 GOOGLE_API_KEY를 설정해주세요" |
| API 오류 | 에러 메시지 출력 후 스킵 |
google-generativeai (또는 google-genai).env 파일에 GOOGLE_API_KEY 설정