Communitygithub.com

마스터 클래스

연구 자료(Obsidian 노트, 코드랩 등)를 학습자가 실제로 시청할 비디오 코스로 변환합니다. 각 레슨마다 MP4 + 노트를 만들고 강좌 인덱스(MOC)를 함께 생성하며, 코드를 한 줄씩 설명하는 대신 의도, 문제 해결 과정, 오해, 직관을 가르칩니다.

마스터 클래스란 무엇인가요?

이 스킬은 학습 자료를 실제로 시청할 가치가 있는 비디오 강좌로 바꾸어 줍니다. 교육학적 설계(자료 읽기, 강좌 지도 작성, 대본 쓰기)를 담당하며, 실제 렌더링(다이어그램, 음성, MP4, Obsidian 노트 생성)은 동반 스킬인 **master-class-render**가 처리합니다. 주요 워크플로우는 ① 사용자에게 출력 언어와 소스 경로를 묻고, ② 자료를 읽고 강좌 지도(course-map.md)를 작성하여 사용자 승인을 받은 후, ③ 각 레슨의 대본(.script.md)을 순서대로 작성하고 린트 검사를 통과시킨 다음, ④ 렌더링 및 결과 보고를 진행합니다. 교육 원칙으로는 '문제 먼저, 해결책은 나중', '구현이 아닌 의도 가르치기', '매 레슨 하나의 오해를 명확히 짚어내기' 등이 있으며, 모든 기술적 주장은 공식 문서나 검증된 출처에 기반해야 합니다. 이 스킬은 Claude Code, Cursor, Codex 등 다양한 AI 에이전트 플랫폼에서 사용할 수 있습니다.

지원 대상✓Claude Code~Codex CLI~Cursor
npx skills add https://github.com/carlos-carvajal-slalom/master-class-skills/tree/main/master-class

즐겨 사용하는 AI에게 물어보기

이 에이전트 스킬이 미리 로드된 새 채팅을 엽니다.

문서

마스터 클래스은(는) 무엇을 하나요?

학습 자료를 학습자가 실제로 시청할 비디오 코스로 바꿉니다. 이 스킬은 교육학(읽기, 강좌 지도, 대본)을 담당합니다. 렌더링(다이어그램, 음성, MP4, Obsidian 노트)은 동반 스킬 master-class-render가 수행합니다.

모델 라우팅 (사용자의 명시적 지시)

PEDAGOGY_MODEL: claude-sonnet-5.5    # 읽기, 강좌 지도, 대본(1-4단계). 품질을 유지하는 가장 저렴한 모델; 필요시 여기서 변경.

품질은 거의 전적으로 1-4단계에 달려 있으므로, 이 단계들은 반드시 PEDAGOGY_MODEL에서 실행해야 합니다. 0, 5, 6단계는 기계적 작업이므로 현재 세션을 구동하는 모델이면 됩니다.

  • 이미 PEDAGOGY_MODEL로 실행 중이거나(사용자가 위임을 건너뛰라고 한 경우) 직접 1-4단계를 수행하세요.
  • 그렇지 않으면 위임하세요. model: PEDAGOGY_MODEL 옵션으로 general-purpose 하위 에이전트를 시작하세요. 여기서 모델을 설정하는 것은 사용자의 명시적 요청입니다. 해당 에이전트의 프롬프트에는 다음이 포함되어야 합니다: 소스 경로, 출력 언어, 소스 폴더 경로, 사용자가 제공한 초점/컨텍스트, 그리고 "~/.copilot/skills/master-class/SKILL.md를 읽고 1-2단계를 정확히 따르세요; course-map.md를 작성한 후 멈추고 맵을 반환하세요."
    • 반환된 맵을 사용자에게 보여주고 승인을 기다리세요(사용자가 승인 없이 진행하라고 요청하지 않은 경우).
    • 그런 다음 승인/변경 사항을 동일한 에이전트(write_agent)에 보내세요: "승인됨 [+ 변경 사항]. 이제 3-4단계를 정확히 수행하세요: 모든 대본을 작성하고, 오류가 없을 때까지 린트하고, scripts/README.md를 작성한 후 린트 요약을 반환하세요."
    • 그런 다음 직접 5단계(렌더링, 큰 모델 불필요)를 계속 진행하세요.
  • 사용자가 요청에서 교육학에 다른 모델을 지정한 경우, 해당 모델을 대신 사용하세요.

읽기 목록 (무엇이든 쓰기 전에)

  1. references/cheatsheet.md: 중요한 규칙을 한 페이지에 요약.
  2. references/learner-profile.md: 학습자가 누구인지, 어떻게 생각하는지, 어떤 비유가 통하는지.
  3. references/lesson-template.md: 모든 레슨에 사용할 채울 수 있는 골격.
  4. 승인된 예제(모두 하나의 코스: Lab 02, Tool Use & MCP 출처): examples/course-map.md, 01(잘못된 문장 → 메커니즘), 05(이야기 → 규칙), 08(옵션 비교 → 표준이 존재하는 이유). 이들의 깊이와 어조를 모방하되, 단어를 그대로 사용하지는 마세요.
  5. 선택 사항: references/teaching-research.md, 규칙 뒤에 있는 증거와 출처.

절대 양보할 수 없는 교육 규칙

  1. 문제 먼저, 해결책은 나중. 모든 레슨은 무언가 실패하거나 문제가 되는 구체적인 상황으로 시작합니다. 기술은 문제와 거부된 명백한 대안들을 제시한 후에야 이름이 언급됩니다.
  2. 의도를 가르치고, 구현을 가르치지 마세요. 자료가 X를 가르친다면, 학습자는 X가 무엇인지, 왜 존재하는지, 언제 사용하고 언제 사용하지 말아야 하는지를 이해해야 합니다. 코드는 이미 설명된 개념에 대한 증거(≤ 6줄)일 뿐, 코드를 한 줄씩 따라가는 설명이 되어서는 안 됩니다.
  3. 매 레슨 하나의 오해를 명시적으로 해체하세요.
  4. 구체적 → 추상적, 하나의 실행 예제가 전체 코스를 관통하도록 합니다.
  5. 학습자의 사고 방식: 맥락 → 실제 제약 → 고려된 옵션과 각각이 거부된 이유 → 결정 → 비용/트레이드오프 → 언제 사용하지 말아야 하는지. "더 나은 것이 있는가?"라고 명시적으로 질문하세요.
  6. 인출 연습이 모든 레슨에 포함됩니다: 질문 → … (렌더러가 4초 멈춤 삽입) → 답변과 그 이유.
  7. 연결: 모든 레슨은 다음 레슨이 해결할 문제로 끝납니다.
  8. 길이 제한 없음, 그러나 레슨당 하나의 학습 목표 (보통 4–6분).
  9. 다양화: 도입부, 흐름, 마무리를 다양하게 하세요; 절대 고정된 틀을 사용하지 마세요.
  10. 절대 사실이나 숫자를 지어내지 마세요. 기술적 주장은 읽은 출처나 검증된 공식 문서에서 가져오며, 가상 시나리오는 명확히 시나리오임을 밝혀야 합니다.

워크플로우

0 · 먼저 묻기

  • 출력 언어: 사용자가 이미 말하지 않았다면 항상 물어보세요.
  • 소스 경로 (누락된 경우). 기본값 (볼트 레이아웃이 다를 경우에만 확인):
    • 노트 → <lab 폴더>/Master class/
    • 비디오 → <lab 폴더>/_attachments/master-class/
    • 소스 → <lab 폴더>/_attachments/master-class/source/ (course-map.md, scripts/, scenes/)
  • 위의 모델 라우팅을 적용하세요.

1 · 제한된 깊이로 읽기

  • 랩/노트를 완전히 읽으세요. 노트북의 경우, 마크다운과 코드가 보여주는 개념을 읽으세요; 절대 노트북을 실행하지 말고 비밀번호나 .env 파일을 읽지 마세요.
  • 자료의 의도와 관련된 경우에만 [[위키링크]]/연결된 문서를 최대 2단계 깊이까지 따라가세요. 이후의 랩, 이미 다룬 전제 조건, 관련 없는 주제는 건너뛰세요.
  • 웹 검색은 이유를 확인하거나 완성하기 위해 허용됩니다 (공식 문서와 명세서). 출처를 인용하세요.
  • 로그를 유지하세요: 읽은 내용 / 폐기한 내용 + 이유.

2 · 강좌 지도 → 승인을 위해 중단

<source>/course-map.md를 examples/course-map.md처럼 작성하세요:

  • 의도를 2-3문장으로, 학습자가 결정할 수 있게 되는 내용;
  • 읽기 로그;
  • 레슨 표: # · 레슨 · 시작 문제 · 오해 · 비유/도입부 · 해결 → 미해결 과제. 레슨 00은 큰 그림, 마지막 레슨은 결정으로서의 종합.

3 · 대본, 레슨당 한 번에 하나씩

각 레슨에 대해 순서대로:

  1. 치트시트, 템플릿, 강좌 지도에서 해당 레슨 행, 그리고 하나의 예제를 다시 읽으세요.
  2. references/lesson-template.md를 <source>/scripts/NN - 짧은 제목.script.md로 복사하고 채우세요. .script.md 접미사는 필수입니다. 그렇지 않으면 Obsidian이 대본을 레슨 노트와 혼동합니다.
  3. 린트 검사(4단계)를 수행하고 다음 레슨으로 넘어가기 전에 수정하세요.

내레이션은 듣기 위해 작성됩니다: 목록, 표, URL 없음; 숫자는 사람들이 말하는 방식으로; ID/코드는 백틱으로 감싸서 단어처럼 읽도록 합니다. 인출 연습 구간은 인출 연습 제목을 사용하고 질문과 답변 사이에 …를 사용합니다. 해당 구간의 Screen이 질문 자체라면 *"질문"* 형식으로 작성하세요.

마지막으로 <source>/scripts/README.md를 작성하세요: 레슨 표 + 루브릭 자체 검토.

4 · 린트 + 루브릭 (렌더링 전 반드시 통과)

python3 ~/.copilot/skills/master-class/scripts/lint_script.py "<source>/scripts" --sources "<lab 폴더>" <읽은 다른 노트들>

모든 ERROR를 수정하세요. 의도적이지 않은 한(예: 명확히 가상 시나리오의 가상 숫자) 모든 WARN을 수정하세요. 린터는 이것들을 판단할 수 없으므로 직접 확인하세요:

  • '왜'가 '어떻게'보다 먼저 나오는가: 기술은 거부된 대안들 이후에만 등장하는가
  • 코드를 전혀 보지 않고도 이해할 수 있는가
  • 오해가 명시적으로 언급되고 해체되는가
  • 도입부의 질문에 명시적으로 답하는가
  • Screen이 내레이션을 보완하는가(중복 텍스트 없음)
  • 소리 내어 읽었을 때 선생님처럼 들리는가, 불릿 리스트처럼 들리지 않는가
  • 연속된 레슨 사이에 도입부/마무리가 다양한가

5 · 렌더링 → master-class-render

~/.copilot/skills/master-class-render/SKILL.md를 읽고 따르세요: 장면을 쓰고, 하나의 명령으로 MP4, 레슨 노트, MOC를 빌드한 후 검증하세요.

6 · 보고

경로(MOC 우선), 레슨 수 및 총 길이, 린트 결과, 미검증 사항, 읽기 로그 요약.

Individual skills in this repo

This repo contains 1 individual skill — each has its own dedicated page.

관련 스킬