forrestchang/andrej-karpathy-skills

A single CLAUDE.md file to improve Claude Code behavior, derived from Andrej Karpathy's observations on LLM coding pitfalls.

126,001
GitHub 스타
12,814
포크
언어
미표기
라이선스
2026.04.20
최근 푸시
2026.04.21
별표한 날

AI 분석

설치 난이도: 쉬움
큐레이터 노트
LLM 코딩 에이전트의 출력 품질을 개선하려는 모든 개발자에게 유용합니다. 특히 Claude Code를 사용하는 프로젝트에 즉시 적용 가능하며, Karpathy의 통찰을 체계화한 점이 가치 있습니다.

강점

  • Andrej Karpathy의 실제 경험 기반으로 LLM 코딩의 일반적인 문제를 직접 해결
  • 네 가지 명확한 원칙으로 구성되어 실천하기 쉬움
  • Claude Code 플러그인과 CLAUDE.md 파일 두 가지 설치 방법을 제공하여 유연함
  • Cursor와의 호환성도 고려되어 다양한 환경에서 사용 가능

약점

  • 단순한 작업에는 과도한 엄격함이 생산성을 저하시킬 수 있음 (저자가 인정)
  • 프로젝트별 사용자 정의가 필요할 수 있어 추가 작업이 발생
  • Claude Code에 특화되어 있어 다른 AI 코딩 도구와의 호환성은 제한적

주의사항

  • 단순한 작업(예: 오타 수정)에는 모든 원칙을 적용하지 말고 상황에 따라 판단 필요
  • 기존 프로젝트에 추가할 때 기존 CLAUDE.md와 충돌하지 않도록 주의
  • 가이드라인이 모든 LLM 코딩 문제를 해결해주지는 않으며, 사용자의 판단이 여전히 중요

시작 가이드

  • Claude Code를 사용 중이라면 플러그인 방식으로 설치하여 모든 프로젝트에 적용
  • 기존 프로젝트의 CLAUDE.md에 내용을 추가하거나 새로 생성
  • 프로젝트별 가이드라인 섹션을 추가하여 팀 규칙과 병합
  • Cursor 사용자라면 CURSOR.md를 참고하여 규칙 설정

README 한국어 번역

이 번역은 AI가 원문 README를 옮긴 것입니다. 원문이 항상 우선합니다.

Karpathy 영감을 받은 Claude Code 가이드라인

제 새 프로젝트 Multica를 확인해보세요 — 재사용 가능한 스킬로 코딩 에이전트를 실행하고 관리하기 위한 오픈소스 플랫폼입니다.

>

X에서 저를 팔로우하세요: https://x.com/jiayuanjy

Andrej Karpathy의 관찰에서 파생된, Claude Code의 동작을 개선하기 위한 단일 CLAUDE.md 파일입니다.

English | 简体中文

문제점

Andrej의 글에서:

"모델들은 사용자를 대신하여 잘못된 가정을 하고 확인 없이 그대로 진행합니다. 혼란을 관리하지 않고, 명확성을 요구하지 않으며, 불일치를 표면화하지 않고, 트레이드오프를 제시하지 않으며, 필요할 때 반박하지 않습니다."

"코드와 API를 지나치게 복잡하게 만들고, 추상화를 부풀리며, 죽은 코드를 정리하지 않습니다... 100줄이면 충분할 것을 1000줄에 걸쳐 부풀려진 구조를 구현합니다."

"여전히 작업과 무관하더라도 충분히 이해하지 못하는 코드나 주석을 부수 효과로 변경하거나 제거하는 경우가 있습니다."

해결책

이러한 문제를 직접 해결하는 하나의 파일에 담긴 네 가지 원칙:

원칙 해결 대상
코딩 전에 생각하기 잘못된 가정, 숨겨진 혼란, 누락된 트레이드오프
단순함 우선 과도한 복잡성, 부풀려진 추상화
정밀한 변경 직교하는 수정, 건드리지 말아야 할 코드 수정
목표 기반 실행 테스트 우선, 검증 가능한 성공 기준을 통한 활용

네 가지 원칙 상세

1. 코딩 전에 생각하기

가정하지 마세요. 혼란을 숨기지 마세요. 트레이드오프를 표면화하세요.

LLM은 종종 조용히 해석을 선택하고 그대로 진행합니다. 이 원칙은 명시적인 추론을 강제합니다:

  • 가정을 명시적으로 밝히세요 — 확실하지 않으면 추측하지 말고 질문하세요
  • 여러 해석을 제시하세요 — 모호함이 있을 때 조용히 선택하지 마세요
  • 정당한 경우 반박하세요 — 더 간단한 접근 방식이 있다면 말하세요
  • 혼란스러울 때 멈추세요 — 무엇이 불명확한지 말하고 명확히 요청하세요

2. 단순함 우선

문제를 해결하는 최소한의 코드. 추측성 코드는 없습니다.

과도한 엔지니어링 경향에 맞서세요:

  • 요청된 것 이상의 기능은 없습니다
  • 단일 사용 코드에 대한 추상화는 없습니다
  • 요청되지 않은 "유연성"이나 "구성 가능성"은 없습니다
  • 불가능한 시나리오에 대한 오류 처리는 없습니다
  • 200줄이 50줄이 될 수 있다면 다시 작성하세요

테스트: 시니어 엔지니어가 이것이 지나치게 복잡하다고 말할까요? 그렇다면 단순화하세요.

3. 정밀한 변경

반드시 필요한 것만 건드리세요. 자신의 변경 사항만 정리하세요.

기존 코드를 편집할 때:

  • 인접한 코드, 주석 또는 서식을 "개선"하지 마세요
  • 고장나지 않은 것을 리팩터링하지 마세요
  • 기존 스타일을 따르세요, 다르게 하고 싶더라도
  • 관련 없는 죽은 코드를 발견하면 언급만 하고 삭제하지 마세요

변경으로 인해 고립된 코드가 생겼을 때:

  • 변경으로 인해 사용되지 않게 된 임포트/변수/함수는 제거하세요
  • 기존의 죽은 코드는 요청하지 않는 한 제거하지 마세요

테스트: 변경된 모든 줄은 사용자의 요청에 직접 연결되어야 합니다.

4. 목표 기반 실행

성공 기준을 정의하세요. 확인될 때까지 반복하세요.

명령형 작업을 검증 가능한 목표로 변환하세요:

대신... 다음으로 변환...
"유효성 검사 추가" "잘못된 입력에 대한 테스트를 작성하고 통과시키세요"
"버그 수정" "버그를 재현하는 테스트를 작성하고 통과시키세요"
"X 리팩터링" "전후에 테스트가 통과하는지 확인하세요"

다단계 작업의 경우 간단한 계획을 명시하세요:

1. [단계] → 확인: [검사]
2. [단계] → 확인: [검사]
3. [단계] → 확인: [검사]

강력한 성공 기준은 LLM이 독립적으로 반복할 수 있게 합니다. 약한 기준("작동하게 만드세요")은 지속적인 명확화를 필요로 합니다.

설치

옵션 A: Claude Code 플러그인 (권장)

Claude Code 내에서 먼저 마켓플레이스를 추가하세요:

/plugin marketplace add forrestchang/andrej-karpathy-skills

그런 다음 플러그인을 설치하세요:

/plugin install andrej-karpathy-skills@karpathy-skills

이렇게 하면 가이드라인이 Claude Code 플러그인으로 설치되어 모든 프로젝트에서 스킬을 사용할 수 있습니다.

옵션 B: CLAUDE.md (프로젝트별)

새 프로젝트:

curl -o CLAUDE.md https://raw.githubusercontent.com/forrestchang/andrej-karpathy-skills/main/CLAUDE.md

기존 프로젝트 (추가):

echo "" >> CLAUDE.md
curl https://raw.githubusercontent.com/forrestchang/andrej-karpathy-skills/main/CLAUDE.md >> CLAUDE.md

Cursor와 함께 사용하기

이 저장소에는 커밋된 Cursor 프로젝트 규칙(.cursor/rules/karpathy-guidelines.mdc)이 포함되어 있어, Cursor에서 프로젝트를 열 때 동일한 가이드라인이 적용됩니다. 설정, 다른 프로젝트에서 규칙 사용, Claude Code와의 관계에 대해서는 CURSOR.md를 참조하세요.

핵심 통찰

Andrej로부터:

"LLM은 특정 목표를 충족할 때까지 반복하는 데 매우 뛰어납니다... 무엇을 해야 하는지 말하지 말고, 성공 기준을 제시하고 지켜보세요."

"목표 기반 실행" 원칙이 이를 포착합니다: 명령형 지침을 검증 루프가 있는 선언적 목표로 변환하세요.

작동 여부 확인 방법

다음과 같은 경우 이 가이드라인이 작동하고 있는 것입니다:

  • diff에서 불필요한 변경이 줄어듦 — 요청된 변경만 나타납니다
  • 과도한 복잡성으로 인한 재작성 감소 — 코드가 처음부터 간단합니다
  • 구현 전에 명확화 질문이 옴 — 실수 후가 아닙니다
  • 깔끔하고 최소한의 PR — 우연한 리팩터링이나 "개선"이 없습니다

사용자 정의

이 가이드라인은 프로젝트별 지침과 병합되도록 설계되었습니다. 기존 CLAUDE.md에 추가하거나 새로 만드세요.

프로젝트별 규칙의 경우 다음과 같은 섹션을 추가하세요:

## 프로젝트별 가이드라인

- TypeScript strict 모드 사용
- 모든 API 엔드포인트에는 테스트가 있어야 함
- `src/utils/errors.ts`의 기존 오류 처리 패턴을 따를 것

트레이드오프 참고

이 가이드라인은 속도보다 신중함에 치우칩니다. 간단한 작업(단순한 오타 수정, 명백한 한 줄짜리)의 경우 판단을 사용하세요 — 모든 변경에 전체 엄격함이 필요한 것은 아닙니다.

목표는 중요한 작업에서 비용이 많이 드는 실수를 줄이는 것이지, 간단한 작업을 느리게 하는 것이 아닙니다.

라이선스

MIT

원본 저장소: forrestchang/andrej-karpathy-skills

라이선스: 미표기

게재 제외를 원하시면 삭제 요청을 보내주세요.