mit einem Klick
publish-cheatsheet
// 나노바나나에서 생성된 치트시트 이미지를 public에 복사하고 readings.ts에 cheatsheetImage 필드를 추가합니다. 사용: /publish-cheatsheet week1/slug
// 나노바나나에서 생성된 치트시트 이미지를 public에 복사하고 readings.ts에 cheatsheetImage 필드를 추가합니다. 사용: /publish-cheatsheet week1/slug
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
나노바나나 치트시트 이미지를 Gemini Vision으로 분석하여 해당 kr md 파일의 내용과 일치하는지 검증합니다. 기술적/문맥적 오류, 잘못된 텍스트/그래프/그림을 찾아냅니다. 사용: /review-cheatsheet week1/slug/chapter
| name | publish-cheatsheet |
| description | 나노바나나에서 생성된 치트시트 이미지를 public에 복사하고 readings.ts에 cheatsheetImage 필드를 추가합니다. 사용: /publish-cheatsheet week1/slug |
| arguments | [{"name":"path","description":"week/slug 또는 week/parent/child 형식의 문서 경로\n- 단일 페이지: week1/how-openai-uses-codex\n- 계층 구조: week1/deep-dive-llms/tokenization\n","required":true},{"name":"image","description":"치트시트 이미지 파일 경로 (절대 또는 상대 경로)\n지정하지 않으면 기본 경로에서 검색\n","required":false}] |
나노바나나에서 생성된 치트시트 이미지를 웹에 게시합니다.
/publish-cheatsheet <week/slug>
/publish-cheatsheet <week/slug> --image /path/to/cheatsheet.png
# 단일 페이지 치트시트
/publish-cheatsheet week1/how-openai-uses-codex
# 챕터별 치트시트
/publish-cheatsheet week1/deep-dive-llms/tokenization
# 이미지 경로 직접 지정
/publish-cheatsheet week1/tokenization --image ~/Downloads/tokenization-cheatsheet.png
public/cheatsheets/week{N}/{slug}.png~/Downloads/{slug}-cheatsheet.png~/Downloads/{slug}.pngpublic/cheatsheets/week{N}/{slug}.png (이미지 복사)src/content/readings.ts 업데이트 (cheatsheetImage 필드 추가)/publish-cheatsheet week1/tokenization
│
▼
┌──────────────────────────────────────┐
│ 1. 이미지 파일 찾기 │
│ - --image 옵션 확인 │
│ - 기본 경로들 순차 검색 │
└──────────────────────────────────────┘
│
▼
┌──────────────────────────────────────┐
│ 2. 이미지 파일 검증 │
│ - 파일 존재 여부 │
│ - 이미지 형식 확인 (PNG/JPG/WebP) │
│ - 파일 크기 확인 │
└──────────────────────────────────────┘
│
▼
┌──────────────────────────────────────┐
│ 3. public 디렉토리에 복사 │
│ public/cheatsheets/week{N}/{slug}.png│
└──────────────────────────────────────┘
│
▼
┌──────────────────────────────────────┐
│ 4. readings.ts 업데이트 │
│ cheatsheetImage 필드 추가 │
└──────────────────────────────────────┘
│
▼
완료!
입력: week1/deep-dive-llms/tokenization
→ weekNum: 1
→ parentSlug: deep-dive-llms (있으면)
→ childSlug: tokenization (있으면)
→ slug: tokenization
입력: week1/how-openai-uses-codex
→ weekNum: 1
→ slug: how-openai-uses-codex
--image 옵션 있으면:
해당 경로 파일 존재 확인
없으면 에러: "❌ 이미지 파일을 찾을 수 없습니다: {경로}"
--image 옵션 없으면 (기본 경로 검색):
순서대로 검색:
1. public/cheatsheets/week{N}/{slug}.png
2. public/cheatsheets/week{N}/{parentSlug}/{slug}.png (계층 구조일 때)
3. ~/Downloads/{slug}-cheatsheet.png
4. ~/Downloads/{slug}.png
5. /tmp/{slug}.png
모두 없으면:
AskUserQuestion 도구로 이미지 경로 입력 요청
# 파일 형식 확인
file --mime-type {이미지_경로}
# 예상: image/png, image/jpeg, image/webp
# 파일 크기 확인 (경고용)
du -h {이미지_경로}
# 10MB 초과 시 경고
# 디렉토리 생성
mkdir -p public/cheatsheets/week{N}/{parentSlug-if-any}/
# 이미지 복사
cp {소스_경로} public/cheatsheets/week{N}/{최종_경로}.png
경로 규칙:
public/cheatsheets/week{N}/{slug}.pngpublic/cheatsheets/week{N}/{parentSlug}/{childSlug}.png단일 페이지:
'week1/how-openai-uses-codex': {
// ... 기존 필드들
cheatsheetImage: '/cheatsheets/week1/how-openai-uses-codex.png', // 추가
}
챕터 페이지 (ChildReading):
'week1/deep-dive-llms': {
// ... 기존 필드들
children: [
{
slug: 'tokenization',
// ... 기존 필드들
cheatsheetImage: '/cheatsheets/week1/deep-dive-llms/tokenization.png', // 추가
}
]
}
✅ 치트시트 게시 완료!
📸 이미지: public/cheatsheets/week1/deep-dive-llms/tokenization.png
📊 파일 크기: 2.3MB
🔗 웹 경로: /cheatsheets/week1/deep-dive-llms/tokenization.png
readings.ts 업데이트:
- week1/deep-dive-llms 의 children[tokenization]
- cheatsheetImage 필드 추가
다음 단계:
pnpm dev → /readings/week1/deep-dive-llms/tokenization
| 상황 | 처리 |
|---|---|
| 이미지 파일 없음 | AskUserQuestion으로 경로 입력 요청 |
| 지원하지 않는 형식 | "❌ PNG, JPG, WebP만 지원합니다" |
| readings.ts에 항목 없음 | "❌ 먼저 /upload-reading을 실행하세요" |
| 10MB 초과 | "⚠️ 파일이 큽니다. 최적화 권장" |
| 항목 | 권장값 |
|---|---|
| 형식 | PNG (투명 배경) 또는 WebP |
| 가로 비율 | 16:9 (landscape) |
| 해상도 | 1920x1080 이상 |
| 파일 크기 | 5MB 이하 |
pnpm exec squoosh-cli --webp auto {이미지}