Community이미지github.com

Yeshwanthyk/teach

서브시스템, 변경 사항, 또는 아이디어를 상대방이 실제로 이해하도록 설명합니다. 메커니즘을 위해 `how` 명령을 실행하고, 이유를 위해 `history` 뷰를 살펴본 뒤, 평문 계층과 점진적으로 구성되는 다이어그램으로 설명합니다.

teach란 무엇인가요?

Teach는 AI 에이전트가 사람에게 코드베이스의 특정 부분, 변경 사항 또는 개념을 이해시키기 위한 스킬입니다. 단순히 정보를 나열하는 대신, 'how'와 'history' 도구를 통해 기계적인 동작 방식과 설계 이유를 먼저 수집한 후, 이를 평문 계층(layers)으로 구성하여 설명합니다. 사용자의 질문 맥락(리뷰, 디버깅, 신규 학습)을 파악하여 이미 아는 내용은 건너뛰고, 궁금해하는 부분에 깊이를 집중합니다. 설명은 '가장 간단한 완전한 답'부터 시작하여 대화식으로 진행되며, 필요에 따라 `show-me`나 `viz` 같은 시각화 도구를 결합하여 점진적으로 복잡도를 쌓아 올립니다. 이 스킬은 Claude Code, Cursor, Codex 등 AI 코딩 에이전트에서 사용하도록 설계되었으며, 변경 사항을 적용하지 않고 순수하게 이해를 목표로 합니다.

지원 대상✓Claude Code~Codex CLI~Cursor
npx skills add https://github.com/Yeshwanthyk/agent-skills/tree/HEAD/skills/teach

Installed? Explore more 이미지 skills: steipete/songsee, affaan-m/frontend-design, mattpocock/improve-codebase-architecture · View all 6 →

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

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

문서

teach은(는) 무엇을 하나요?

무언가가 무엇인지, 어떻게 동작하는지, 그리고 왜 그렇게 만들어졌는지를 상대방의 속도에 맞춰 설명하세요. 목표는 이해입니다. 코드를 변경하지 마세요.

무엇을 전달할지 결정

상대방이 대화를 마치고 이해해야 할 두세 가지를 고르세요. 대화에서 그들이 왜 질문하는지(변경하려는 중인지, 리뷰 중인지, 디버깅 중인지, 처음 접하는지)와 이미 알고 있는 것이 무엇인지 읽어내세요. 그들이 명백히 알고 있는 것은 건너뛰고, 그들의 질문이 있는 곳에 깊이를 두세요.

how를 통해 수집

충분한 코드를 읽어 방향을 잡은 다음, 새로 조사하는 대신 how가 깊이 파보도록 하세요:

  • 메커니즘: how의 Investigate를, 질문이 필요한 뷰에서 사용하세요(Trace는 단일 흐름, Map은 서브시스템).
  • 이유: how의 History 뷰를 사용하세요. 기본적으로 범위를 좁게 유지하세요: 질문을 그들이 직면한 결정에 한정하고, git과 한두 개의 소스에서 시작하며, 건너뛴 내용을 기록하세요. 이유 자체가 핵심일 때만 범위를 넓히세요.

서브시스템은 보통 둘 다 필요하고, 작은 변경은 하나만 필요할 수 있습니다. 둘 다 광범위할 때는 위임 계약에 따라 백그라운드 워커에서 History를 실행하는 동안 메커니즘을 추적하세요. 가르칠 목적으로 how의 결과를 자유롭게 바꿔 말하되, History의 신뢰도 레이블은 그대로 유지하세요: 그런 주의 표현은 발견 결과이므로 보존해야 합니다.

계층으로 설명

평범한 정의로 시작하세요. 선임 엔지니어가 소리내어 말하는 방식으로, 흔한 이름이 있다면 그것도 함께 사용하세요. 그런 다음 이 경우와 연결하세요("여기서는 이것을 ...하는 데 사용합니다") 그리고 쌓아 올리세요: 어떻게 동작하는지, 그 이유, 예외 케이스. 각 부분에 대해, 그것이 해결하는 문제와 구체적인 메커니즘을 제시하세요. 상대방이 무언가를 할 때(요청을 보내거나, 위로 스크롤하거나, 재시도할 때) 어떤 일이 일어나는지 단계별로 설명하는 것이 종종 가장 효과적입니다. 함수와 상수의 목록은 참고 자료일 뿐, 가르침이 아닙니다.

가장 작은 완전한 답변을 먼저 제시하세요. 한두 문장 정도로. 그런 다음 멈추고 상대방이 방향을 정하도록 하세요. 그들이 요청할 때 한 계층씩 추가하세요. 대화를 유지하세요: 당신이 멈출 지점이 오면 상대방이 답할 시간을 주세요. 실시간 상대가 없는 경우(일회성 실행)에는 계층을 깔끔하게 전달하고 마지막에 더 깊이 들어갈 것을 제안하세요.

점진적으로 구성하며 보여주기

코드, diff, 또는 실행 중인 예제를 열어보세요. 말보다 더 빠르게 전달될 때 사용하세요. 세 개 이상의 움직이는 부분이 있는 경우, 각 다이어그램이 이전 다이어그램을 다시 그리고 한 부분을 추가하여 시스템이 조립되는 모습을 볼 수 있는 짧은 시리즈를 그리세요. A → B → C를 가르치려면: A → B를 그리고, C를 추가하여 다시 그리고, 반환 엣지를 추가하여 다시 그리세요. 한 번에 모든 것을 보여주는 다이어그램은 참고 카드일 뿐입니다. 필요하다면 마지막에 사용하세요.

아이디어가 이것일 때사용할 도구
한 포인트, 정의, 짧은 이유평문 산문
흐름, 호출 경로, 구조, 또는 이전/이후show-me, 호스트에 맞게 형식 선택에서 선택된 형식으로
사용자가 클릭해야 하는 상태, 시간이 지남에 따라 펼쳐지는 프로세스(컴포넌트를 통한 요청, 프로토콜 교환), 또는 타이밍과 볼륨(경쟁, 지연이 발생하는 위치, 트래픽 분할)viz: view: states, view: seq, 또는 뷰 선택 목록에 있는 뷰

상대방이 요청하지 않았다면 더 무거운 아티팩트(저장된 viz 페이지)를 만들기 전에 제안하고, 그 아티팩트가 빌드되는 동안 대화식으로 가르치는 것을 계속하세요. 아티팩트에는 첫 번째 단계의 포인트를 전달하여, how가 찾은 모든 것이 아니라 그 포인트들을 가르치도록 하세요.

어조

unslop을 통해 작성하세요: 평범한 구어체 영어, 간결하지만 너무 짧지 않게, 은유나 앞으로 나올 내용에 대한 예고 대신 구체적인 메커니즘을 사용하세요. 이것이 목표 밀도입니다: "가상화는 렌더링용과 디스크 로딩용의 두 부분으로 실행됩니다. 항목이 버퍼 밖으로 스크롤되면 DOM 노드와 메모리 내 데이터가 모두 제거됩니다." 개념당 하나의 이름을 일관되게 사용하세요. 짧은 문장을 선호하세요. 각 부분을 핵심적이거나 까다롭거나 기억해야 할 것이라고 강조하지 않고 평범하게 말하세요. 그리고 퀴즈를 내거나 다시 말하도록 요구하지 마세요. 이 섹션 이름은 당신을 위한 지시사항일 뿐, 답변에는 포함하지 마세요.

완료 조건

상대방이 요청한 계층에서 질문에 답하고, 모든 주장이 how의 발견 결과나 당신이 읽은 코드로 추적 가능하며, History 주장은 신뢰도 레이블을 유지하고, 모든 아티팩트가 열리거나 링크되고 동일한 증거로 구축되었으며, 다음에 추적할 가치가 있는 스레드가 명명되었을 때 완료됩니다.

Individual skills in this repo

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

관련 스킬