Wong — 하루 마무리 학습 가이드북 (구 daily-log)
Claude Code로 보낸 하루 종일 작업(모든 세션과 저장소에 걸쳐)을 하나의 날짜별 마크다운 파일로 바꾸세요. 이 파일은 학습 가이드로 작성되어, 사용자가 코드를 손으로 다시 구현하고, 각 결정이 내려진 이유를 이해하며, 실제로 이해했기 때문에 어떻게 동작하는지 설명할 수 있도록 도와줍니다.
출력물은 변경 로그가 아닙니다. 초보자용 교과서입니다. 소프트웨어 배경 지식이 전혀 없는 사람도 처음부터 끝까지 읽으면서 무엇을 했고 왜 했는지 이해할 수 있을 정도로 간단하고 대화체로 작성됩니다. 모든 기술 용어는 처음 등장할 때 평이한 언어로 정의됩니다. 코드는 기술적으로 유지되지만 평이한 영어 설명으로 감싸져 있습니다. 사소한 내용의 완전성보다 깊이와 '이유'가 더 중요합니다. 4단계의 전체 작성 스타일 — 필수 규칙을 참조하세요.
0단계. 명령에서 노력 수준 읽기
사용자는 첫 번째 인수로 노력 수준을 전달할 수 있습니다: light, medium, 또는 heavy. 아무것도 주어지지 않으면 기본값은 heavy입니다. (날짜를 전달할 수도 있습니다. YYYY-MM-DD 토큰은 날짜이고, light/medium/heavy 토큰은 노력 수준입니다. 순서는 상관없고 둘 다 선택 사항입니다. 예: /wong medium, /wong light 2026-06-25.)
노력 수준은 토큰 사용량을 제어합니다. 수집기의 다이제스트 크기(--effort 사용)와 작성 중 수행하는 작업의 양을 모두 조정합니다.
- light — 가장 저렴합니다. 상위 2~3개 작업만 문서화합니다.
git show/추가 파일 읽기를 실행하지 마세요. 다이제스트 + 커밋 메시지에 의존하고, 최대 하나의 짧은 코드 조각만 포함합니다. 각 섹션을 간결하게 유지합니다. 여전히 Git 스킬 섹션, Slack 요약, PDF 및 업로드를 생성합니다. - medium — 균형 잡힙니다. 상위 약 5개 작업을 문서화합니다. 가장 중요한 2~3개 작업에 대해서만 실제 코드(
git show)를 가져옵니다. 적당한 깊이입니다. - heavy (기본값) — 아래에 설명된 전체 처방: 모든 개별 작업에 대해 실제 코드를 가져오고 완전한 깊이를 제공합니다.
선택한 수준을 모든 단계에 적용합니다.
단계
1. 오늘의 원자료 수집
선택한 노력 수준으로 수집기를 실행합니다 (디스크의 모든 세션 대본을 읽으므로 모든 동시/종료된 세션을 캡처합니다, 현재 세션뿐만 아니라):
python3 ~/.claude/skills/wong/collect_day.py --effort heavy
heavy를 0단계의 수준으로 바꿉니다. 과거 날짜를 기록하려면 날짜를 추가하세요:
python3 ~/.claude/skills/wong/collect_day.py --effort medium 2026-06-25
다이제스트 파일의 경로를 출력합니다 (~/Daily Log/.digest-<date>.md).
해당 다이제스트를 완전히 읽으세요. 저장소별로 다음을 포함합니다: 해당 날짜의 Git 커밋 맵, 커밋되지 않은 변경 사항 통계, 그리고 세션별로 — 사용자의 프롬프트, Claude가 편집한 파일, Claude의 설명, 그리고 하위 에이전트 결과.
용어집도 읽으세요 (~/Daily Log/.glossary.md에 있음. 존재하지 않으면 비어 있는 것으로 간주). 이전 날짜에 이미 설명된 사소한/기초적인 용어가 나열되어 있습니다. 4단계의 "사소한 용어는 한 번만 설명"을 참조하여 용어집에 이미 있는 내용은 다시 설명하지 않습니다.
다이제스트에 활성 세션이 없다고 표시되면 사용자에게 알리고 중지합니다.
2. 개별 기능/작업 식별
오늘의 작업을 개별 작업 단위로 그룹화합니다. 세션당 하나의 섹션이 아닙니다. 동일한 기능을 진행한 세션/커밋을 병합합니다. "작업 단위"는 사용자가 하나의 뚜렷한 작업으로 가리킬 수 있는 것입니다 (예: "verto 에이전트 호출 전달 버그 수정", "예측 다이얼러 중단율 상한"). 실제로 중요했던 몇 가지를 목표로 하고, 사소한 내용으로 채우지 마세요.
3. 각 작업에 대한 실제 코드 가져오기
노력 수준 게이트: light에서는 이 단계를 완전히 건너뜁니다 (git show/파일 읽기 없음 — 다이제스트 + 커밋 메시지를 사용하고, 최대 하나의 코드 조각만). medium에서는 가장 중요한 2~3개 작업에 대해서만 수행합니다. heavy에서는 모든 작업에 대해 수행합니다.
다이제스트는 커밋 SHA와 편집된 파일을 나열하지만 전체 차이는 아닙니다. 문서화하는 각 작업에 대해 코드 조각이 의역이 아닌 실제 코드가 되도록 실제 코드를 가져옵니다:
git -C <repo> show <sha> # 커밋의 전체 차이
git -C <repo> show <sha> -- <path> # 하나의 파일 차이
git -C <repo> diff -- <path> # 커밋되지 않은 작업
또는 관련 줄에서 현재 파일을 읽습니다. 전체 파일을 덤프하는 것보다 핵심 줄(아이디어를 전달하는 줄)을 보여주는 것을 선호합니다.
해당 작업과 관련된 지뢰에 대해 저장소의 CLAUDE.md 및 docs/GOTCHAS.md (있는 경우)를 참조하세요. "Gotchas & lessons" 섹션에 금상첨화입니다.
4. 학습 가이드 작성 — 증분식, 절대 덮어쓰지 않음
파일 이름 형식. 파일은 ~/Daily Log/에 저장되며 이름은 다음과 같습니다:
<YYYY-MM> - <DD> - <그날 한 일에 대한 한 줄>.md
예: 2026-06 - 26 - Fixed agent call delivery and started Yotel 3D landing page.md.
한 줄 부분은 그날 작업에 대한 짧고 평이한 언어의 헤드라인입니다 (날짜 구분자가 이미 " - "를 사용하므로 그 안에 하이픈 없음; 약 12단어 미만으로 유지). 파일의 최상위 # 제목은 .md를 제외한 파일 이름과 동일한 문자열이어야 합니다.
오늘의 파일 찾기 (추가 로직에 중요). 한 줄 접미사가 다양하기 때문에 정확한 <date>.md를 찾지 마세요. 대신 날짜 접두사로 오늘의 파일을 찾으세요. ~/Daily Log/를 나열하고 <YYYY-MM> - <DD> - 로 시작하는 파일을 일치시킵니다 (예: ls "~/Daily Log/"를 실행하고 2026-06 - 26 - 로 시작하는 파일을 선택). 하루에 최대 하나만 있습니다.
이 스킬은 하루에 여러 번 실행될 수 있습니다. 첫 번째 이후의 모든 실행에서는 아직 문서화되지 않은 작업만 추가해야 합니다. 절대 덮어쓰거나 중복하지 마세요.
절차:
- 오늘 날짜의 파일이 없으면 (날짜 접두사와 일치하는 파일이 없음): 아래 전체 구조로 생성합니다 (Day overview + 작업당 하나의 섹션,
## 1.,## 2., …으로 번호 지정), 위 형식으로 이름을 지정합니다. - 오늘 날짜의 파일이 이미 존재하면 (날짜 접두사로 찾음): 먼저 읽습니다. 기존
## N. <title>제목과 각 References 줄의 커밋 SHA / 세션 ID를 스캔하여 이미 다루어진 내용의 집합을 만듭니다. 그런 다음, 오늘의 다이제스트에서 커밋/세션이 아직 해당 집합에 없는 작업을 식별합니다.- 파일 이름의 한 줄 요약을 하루 전체에 대해 정확하게 유지하십시오: 새로 추가된 작업으로 인해 그날의 헤드라인이 변경되어야 하는 경우, 파일 이름을 바꾸고 (그에 맞게
#제목도 업데이트) 한 줄 요약이 그날 한 모든 일을 계속 반영하도록 합니다. 헤드라인이 여전히 적합하면 이름을 그대로 둡니다. - 새로운 작업이 없으면 파일이 이미 최신 상태라고 사용자에게 알리고 중지합니다 (다시 쓰지 마십시오).
- 그렇지 않으면, 새 작업에 대해서만 새로운
## N.섹션을 추가하고 (기존 번호 매기기를 계속), 동일한 기능별 템플릿을 사용합니다. - Day overview 블록을 제자리에서 업데이트합니다: 커밋/세션 수를 늘리고 헤드라인을 확장하여 새로 추가된 작업을 언급합니다. 기존 기능 섹션은 건드리지 마십시오.
- 전체 덮어쓰기가 아닌 편집(대상 삽입)을 사용하여, 손으로 편집한 섹션을 포함한 이전 섹션이 그대로 보존되도록 합니다.
- 파일 이름의 한 줄 요약을 하루 전체에 대해 정확하게 유지하십시오: 새로 추가된 작업으로 인해 그날의 헤드라인이 변경되어야 하는 경우, 파일 이름을 바꾸고 (그에 맞게
커밋 SHA 또는 세션 ID가 파일에 이미 나타나면 "작업 단위"를 이미 다루어진 것으로 간주합니다. 문구가 아닌 이러한 식별자를 기준으로 일치시키므로, 재실행 시 거의 중복된 섹션이 생성되지 않습니다.
작성 스타일 — 필수 (이것이 핵심)
완전한 초보자를 위한 교과서 챕터처럼 작성하세요. 소프트웨어에 대해 아무것도 모르는 똑똑한 사람을 대상으로 합니다. 독자는 사전 지식 없이 모든 섹션을 처음부터 끝까지 따라갈 수 있어야 합니다.
- 대화체로 간단하게. 짧은 문장. 쉬운 단어. 보고서를 쓰는 것이 아니라 친구와 이야기하듯이 설명하세요. 서사에서 전문 용어를 피하세요.
- 각 기술 용어는 전체 시리즈에서 한 번만 정의하세요. 하루에 한 번이 아닙니다. 용어가 처음 나타날 때 일상적인 언어로 인용 상자 안에 정의하세요:
> **"X"의 의미.** …(실제 세계 비유 사용). 하지만 먼저 용어집(~/Daily Log/.glossary.md)을 확인하고 이미 나열된 용어는 절대 다시 정의하지 마세요. 이는 사소하고 반복적인 기초 용어(저장소/커밋/브랜치가 무엇인지, Yotel이 무엇인지, 기본 git)에 가장 중요합니다. 한 번 설명하고 나면 그냥 사용하세요. 오늘의 작업에 진정으로 중심이 되는 완전히 새로운 용어는 여전히 상자를 얻습니다. 이전에 다루어진 기본 용어는 그렇지 않습니다. 아래의 "사소한 용어는 한 번만 설명"을 참조하여 메커니즘을 확인하세요. - 기술적 정확성이 요점인 경우에만 기술적으로 유지하세요 — 예: 실제 코드 변경, 정확한 파일, 실제 트레이드오프. 실제 코드를 표시하되, 앞뒤에 평이한 영어 설명으로 감싸고, 코드 조각에 평이한 언어로 주석을 답니다. 절대 코드를 그냥 덤프하지 마세요.
- 각 섹션을 "일상적인 버전"으로 시작하세요 — 무엇이 고장났거나 필요했고 왜 중요한지에 대한 평이한 언어 이야기 — 기술적 세부 사항 전에.
- 맨 위에 짧은 "이 문서를 읽는 방법" 메모를 사용하고, 프로젝트를 평이한 용어로 설명하는 "큰 그림 (먼저 읽으세요)" 개요를 사용하세요 (이 제품이 무엇인지, 누가 사용하는지, 왜).
- "설명하는 방법" 포인트를 평이하고 자신감 있는 한 문장 형태로 유지하고, 간단히 설명할 하나의 영리한 통찰력을 따르세요.
- 정직하세요: 실제로 제공된 코드와 설정/탐색을 명확히 구분하고, 평이한 언어로 말하세요.
~/Daily Log/에 있는 가장 최근 기존 파일의 어조와 일치시키세요 (존재하는 경우 참조 예제로 읽으세요).
사소한 용어는 한 번만 설명 (용어집)
전체 시리즈의 독자는 "저장소가 무엇인지" 또는 "Yotel이 무엇인지"를 매일 다시 설명하는 것을 보지 않아야 합니다. 따라서:
- 작성하기 전에
~/Daily Log/.glossary.md(이미 설명된 용어 목록)을 읽으세요. 목록에 있는 모든 것을 알려진 것으로 간주하세요 — 목록에 있는 용어에 대해> **"X"의 의미.**상자를 작성하지 마십시오. 그냥 용어를 정상적으로 사용하세요. - 작성하는 동안 시리즈에 실제로 새로운 용어(용어집에 없는)에 대해서만 정의 상자를 추가하세요. 사소한 기초를 다시 정의하는 쪽으로 강하게 편향하지 마세요. 기본 용어에 대해 확실하지 않으면 이미 다루어진 것으로 가정하고 건너뛰세요.
- 작성/추가한 후에
~/Daily Log/.glossary.md를 업데이트하세요: 오늘 처음 정의한 용어를 추가합니다 (줄당 하나). 기존 항목을 절대 제거하지 마세요. 파일이 없으면 생성하세요.
이는 무엇보다도 사소하고 반복적인 용어(저장소, 커밋, 브랜치, 작업 트리, 제품이 무엇인지, 기본 git)에 적용됩니다. 하루 작업의 핵심인 복잡한 용어는 그날 설명할 수 있지만, 일단 용어집에 들어가면 나중에 다시 설명되지 않습니다.
기능별 템플릿 및 Day-overview 구조 (제목을 위의 초보자 친화적인 어조에 맞게 조정하세요 — 이들은 그대로 복사할 엄격한 레이블이 아니라 다루어야 할 내용입니다):
# <YYYY-MM> - <DD> - <그날 한 일에 대한 한 줄>
> **이 문서를 읽는 방법.** (초보자에게 사용 방법을 알려주는 1-2문장)
## 큰 그림 (먼저 읽으세요)
오늘 완료된 작업에 대한 평이한 언어 개요. "프로젝트/저장소", "커밋", 그리고 제품(예: Yotel)이 무엇인지 **용어집에 아직 없다면 여기서만** 정의하세요 — 즉, 첫 번째 로그에서만. 이후 날에는 이러한 기본 사항과 "이 제품이 무엇인지" 설명자를 건너뛰고, 이름만 언급하고 계속 진행하세요.
---
## 1. <작업 단위의 평이한 언어 제목> (<repo>)
### 일상적인 버전
전문 용어가 없는 이야기 — 무엇이 고장났거나 필요했으며, 왜 실제 사람에게 중요한지. 비유를 사용하세요.
### 실제로 무슨 일이 있었는지 / 수정 사항 (기술적인 부분)
이제 정확한 세부 사항: 실제 원인, 실제 코드 변경 (평이한 영어로 표시되고 설명되며 주석이 달린 조각 포함), 정확한 파일 `경로`. 각 새 기술 단어 앞에 `> **"용어"의 의미.**` 상자를 넣으세요.
### 직접 해보는 방법 (단계별)
초보자가 따라할 수 있는 번호가 매겨진 구체적인 단계.
### 설명하는 방법 (이해하고 나면)
- 작업이 수행하는 작업에 대한 평이한 한 문장 요약.
- 하나의 영리한 통찰력, 간단히 설명.
- 방어해야 할 트레이드오프, 일상적인 용어로.
### 기억할 가치가 있는 교훈
평이한 언어로 된 핵심 내용 + CLAUDE.md / docs/GOTCHAS.md의 관련 지뢰.
**찾을 수 있는 곳:** 파일, 커밋 SHA, 세션 ID.
---
## 2. <다음 작업…>
---
## 오늘 사용한 Git 스킬
(항상 문서의 **마지막** 섹션입니다. 다이제스트의 "Git commands Claude ran" 블록에서 작성됩니다 — 아래의 전용 지침 참조.)
### <git 작업, 예: 변경 사항 커밋> `git commit`
**수행한 작업** — 평이한 언어로, 이 명령이 오늘 무엇을 달성했는지.
**이유** — 워크플로우에서 이 단계가 왜 필요한지.
**직접 해보는 방법** — 실제 명령과 각 부분 및 플래그가 무엇을 의미하는지에 대한 짧은 설명, 독자가 손으로 실행할 수 있도록.
### <다음 git 작업…>
"오늘 사용한 Git 스킬" 섹션 — 필수 (항상 마지막 섹션)
매일 문서를 ## 오늘 사용한 Git 스킬 섹션으로 끝내세요. 다이제스트의 "Git commands Claude ran" 블록(세션당 하나의 블록)에서 작성합니다.
작성 방법:
- 다이제스트의 모든 세션에서 모든 git 명령을 수집합니다. 캡처된 항목은 복합 명령일 수 있습니다(예:
cd repo && git add ... && git commit ...). git 부분을 분리하세요. - git 작업별로 그룹화하세요 (예: 커밋, 브랜치 생성, 작업 트리 생성, 푸시, 스테이징, 스태시, 복원, 리베이스, log/diff/show/status로 검사). 각각의 개별 작업에 대해 하나의 하위 섹션 — 동일한 작업을 여러 번 나열하지 마세요. 많은 명령이 읽기 전용 검사(
git status,git log,git diff,git show)인 경우, 각각 하나씩 다루지 않고 하나의 짧은 "저장소 둘러보기" 하위 섹션에서 함께 다루세요. - 각 작업에 대해 문서의 다른 모든 곳에서 사용된 초보자 친화적인 어조로 세 가지를 작성하세요:
- 수행한 작업 — 이것이 오늘 실제 작업에서 무엇을 달성했는지.
- 이유 — 워크플로우에서 그 단계가 왜 필요한지.
- 직접 해보는 방법 — 실제 명령, 각 부분과 중요한 플래그가 무엇을 의미하는지에 대한 평이한 설명, 독자가 손으로 실행할 수 있도록.
첫 번째 사용 전에
> **"X"의 의미.**상자를 넣으세요.
[번역을 위해 잘림]