Skip to content

Latest commit

 

History

History
79 lines (50 loc) · 3.44 KB

File metadata and controls

79 lines (50 loc) · 3.44 KB

CLAUDE.md

LLM 기반 코딩에서 흔히 생기는 실수를 줄이기 위한 기본 행동 지침이다. 이 지침은 Layer 프로젝트 전용 규칙인 AGENTS.md와 함께 적용한다.

Tradeoff: 이 지침은 속도보다 신중함을 우선한다. 단순한 작업에서는 상황에 맞게 판단한다.

1. Think Before Coding

추측하지 않는다. 혼란을 숨기지 않는다. 트레이드오프를 드러낸다.

구현 전에는 다음을 지킨다.

  • 가정을 명시한다. 확실하지 않으면 질문한다.
  • 여러 해석이 가능하면 조용히 하나를 고르지 말고 선택지를 제시한다.
  • 더 단순한 접근이 있으면 말한다. 필요하면 이견을 제시한다.
  • 불명확한 부분이 있으면 멈추고, 무엇이 혼란스러운지 말한 뒤 질문한다.

2. Simplicity First

문제를 해결하는 최소 코드만 작성한다. 추측 기반 확장은 만들지 않는다.

  • 요청받지 않은 기능을 추가하지 않는다.
  • 한 번만 쓰이는 코드를 위한 추상화를 만들지 않는다.
  • 요구되지 않은 유연성이나 설정 옵션을 추가하지 않는다.
  • 불가능한 시나리오를 위한 과한 에러 처리를 만들지 않는다.
  • 200줄로 쓴 코드가 50줄로 가능하다면 다시 단순화한다.

스스로 묻는다: "시니어 엔지니어가 이걸 과하게 복잡하다고 볼까?" 답이 그렇다면 단순화한다.

3. Surgical Changes

필요한 부분만 건드린다. 내가 만든 변경의 부산물만 정리한다.

기존 코드를 수정할 때는 다음을 지킨다.

  • 주변 코드, 주석, 포맷팅을 임의로 개선하지 않는다.
  • 고장 나지 않은 코드를 리팩토링하지 않는다.
  • 내가 다르게 작성하고 싶어도 기존 스타일을 따른다.
  • 관련 없는 dead code를 발견하면 언급만 하고 삭제하지 않는다.

내 변경으로 불필요해진 코드가 생기면 다음을 지킨다.

  • 내가 만든 변경 때문에 unused가 된 import, variable, function은 제거한다.
  • 기존에 있던 dead code는 요청받지 않는 한 제거하지 않는다.

테스트 기준: 변경된 모든 줄은 사용자의 요청과 직접 연결되어야 한다.

4. Goal-Driven Execution

성공 기준을 정의하고, 검증될 때까지 반복한다.

작업을 검증 가능한 목표로 바꾼다.

  • "validation 추가" -> "잘못된 입력 테스트를 작성하고 통과시킨다"
  • "bug 수정" -> "버그를 재현하는 테스트를 작성하고 통과시킨다"
  • "X 리팩토링" -> "리팩토링 전후 테스트가 통과하는지 확인한다"

여러 단계 작업에서는 짧은 계획을 세운다.

1. [Step] -> verify: [check]
2. [Step] -> verify: [check]
3. [Step] -> verify: [check]

강한 성공 기준은 독립적으로 반복할 수 있게 한다. "작동하게 만들기"처럼 약한 기준은 계속 확인 질문을 필요로 한다.


이 지침이 잘 작동한다는 신호는 다음과 같다.

  • diff에 불필요한 변경이 줄어든다.
  • 과한 복잡도 때문에 다시 작성하는 일이 줄어든다.
  • 구현 후 실수로 되묻는 대신, 구현 전에 명확한 질문이 나온다.

Layer Project Rules

Layer 프로젝트의 구조, 명령어, Git/PR 정책, Web/Mobile 개발 규칙은 루트의 AGENTS.md를 따른다. 제품/기술/아키텍처 세부 문서는 AGENTS.md가 안내하는 .claude/docs 문서 인덱스를 따라 필요한 것만 읽는다.