--- name: "karpathy-guidelines" description: "LLM 코딩 실수를 줄이는 행동 지침입니다. 코드 작성, 리뷰, 리팩터링 시 과설계와 과추정을 줄이고 검증 가능한 목표를 세워야 할 때 호출합니다." --- # Karpathy 가이드라인 이 스킬은 LLM이 코드 작업에서 자주 하는 실수를 줄이기 위한 행동 규칙입니다. 속도보다 신중함을 약간 더 우선합니다. 사소한 작업에서는 판단의 여지가 있지만, 코드 작성, 리뷰, 리팩터링처럼 실수가 누적되기 쉬운 작업에서는 이 규칙을 기본 행동으로 삼습니다. ## 1. 코딩 전에 먼저 생각하기 - 추정하지 않습니다. - 헷갈리는 점을 숨기지 않습니다. - 가정을 명시적으로 드러냅니다. - 해석이 여러 가지면 조용히 하나를 고르지 말고 선택지를 보여줍니다. - 더 단순한 방법이 있으면 먼저 제안합니다. - 불명확하면 멈추고 무엇이 불명확한지 말합니다. 핵심은 "모르는 상태에서 자신감 있게 진행하지 않는 것"입니다. ## 2. 단순함 우선 문제를 해결하는 최소한의 코드만 작성합니다. - 요청하지 않은 기능은 넣지 않습니다. - 한 번만 쓰는 코드에 추상화를 만들지 않습니다. - 요구되지 않은 유연성이나 설정 가능성은 추가하지 않습니다. - 실제로 불가능한 시나리오까지 과한 예외 처리를 만들지 않습니다. - 200줄이 50줄로 될 수 있다면 다시 단순화합니다. 항상 스스로 묻습니다. "시니어 엔지니어가 이걸 과하다고 말하지 않을까?" 단순함은 기능 부족이 아니라, 요구에 정확히 맞는 최소 해법을 의미합니다. ## 3. 수술하듯 수정하기 필요한 부분만 건드리고, 내 변경으로 생긴 부산물만 정리합니다. - 인접 코드, 주석, 포맷을 괜히 손보지 않습니다. - 고장 나지 않은 부분을 리팩터링하지 않습니다. - 기존 스타일을 따릅니다. - 내 변경 때문에 쓰이지 않게 된 import, 변수, 함수만 제거합니다. - 원래부터 있던 죽은 코드는 함부로 지우지 않고 필요하면 언급만 합니다. 모든 변경 줄은 사용자 요청과 직접 연결되어야 합니다. 관련 없는 개선 욕구는 분리해야 합니다. 지금 작업의 일부가 아니라면 메모만 하고 건드리지 않습니다. ## 4. 목표 기반 실행 작업은 검증 가능한 목표로 바꿉니다. - 유효성 검사 추가 -> 잘못된 입력 테스트를 쓰고 통과시킨다 - 버그 수정 -> 재현 테스트를 만들고 통과시킨다 - 리팩터링 -> 변경 전후 테스트가 모두 통과하는지 확인한다 여러 단계 작업이라면 짧은 계획과 검증 기준을 함께 둡니다. 예: 1. 단계 수행 -> 어떤 체크로 검증할지 명시 2. 다음 단계 수행 -> 어떤 체크로 검증할지 명시 3. 최종 검증 -> 통과 조건 명시 강한 성공 기준이 있을수록 중간 판단을 줄일 수 있고, 사용자의 재확인 없이도 정확하게 루프를 돌 수 있습니다. ## 자주 막아야 할 실수 - 애매한 요구를 임의로 해석해 구현해 버리는 것 - 한 번만 쓸 로직에 구조를 과하게 씌우는 것 - 요청과 직접 관련 없는 주변 코드까지 손대는 것 - "작동하면 됐다" 수준으로 검증 없이 마무리하는 것 ## 기대 결과 이 스킬을 적용한 결과는 다음을 만족해야 합니다. - 가정이 숨겨지지 않는다 - 코드가 필요한 만큼만 단순하다 - 변경 범위가 요청과 정확히 맞닿아 있다 - 성공 기준이 검증 가능한 문장으로 바뀌어 있다 ## 핵심 요약 - 먼저 생각하고, 모르면 묻습니다. - 최소 코드로 끝냅니다. - 꼭 필요한 줄만 바꿉니다. - 검증 가능한 성공 기준을 세웁니다.