CodeTutor: Emacs용 AI 페어 프로그래머

CodeTutor는 자동완성 엔진이 아니라 AI 페어 프로그래밍 튜터 역할을 하도록 설계된 Emacs 패키지입니다. 로컬 AI 어시스턴트를 Emacs 편집기에 통합하여 개념적 안내를 제공하고, 저장 후 코드 변경을 검토하며, 사용자의 소스 파일을 절대 수정하지 않고 아키텍처 조언을 제공합니다.

핵심 철학: 구현보다 교육

CodeTutor는 사용자를 해결책으로 이끌어 주는 원칙에 기반하여, 바로 사용할 수 있는 코드를 제공하는 것이 아니라, 시니어 또는 스태프 엔지니어처럼 기본 개념, 위험, 아키텍처에 초점을 맞추도록 설계되었습니다.

구현 경계

  • 소스 수정 금지: 이 도구는 프로젝트 파일에 쓰지 않으며, 패치를 생성하거나 전체 파일 교체를 만들지 않습니다.
  • 개념적 안내: 간결한 예시 코드 샘플을 제공하고 피드백 뒤의 개념을 설명하지만, 특정 작업에 대한 완전한 구현을 제공하는 것은 피합니다.

기능

CodeTutor는 네 가지 주요 상호작용 루프를 통해 작동합니다: 시작 평가, 저장 검토, 수동 프롬프트, 그리고 후속 질문.

저장 검토 루프

codetutor-review-on-save가 활성화되면, 패키지는 Emacs 저장 프로세스에 훅을 연결합니다. 저장 전 파일 상태를 캡처하고, 저장된 버퍼 텍스트와 비교하여 통합 diff를 생성한 뒤, 이 diff와 프로젝트 컨텍스트를 AI 백엔드에 전송합니다. 결과적인 교육 응답은 오른쪽 튜터 패널에 표시됩니다.

수동 프롬프트 및 후속 질문

사용자는 codetutor-ask를 사용하여 미니버퍼를 통해 튜터와 상호작용할 수 있습니다. 이 요청에는 현재 파일, 프로젝트 컨텍스트, 그리고 아키텍처 메모리가 포함됩니다. 이후 codetutor-follow-up을 사용하여 이전 답변에 대한 명확한 질문을 할 수 있으며, 대화 흐름의 연속성을 유지합니다.

프로젝트 평가 및 다음 단계

  • 시작 평가: codetutor-open을 실행하면 프로젝트 평가가 트리거되어 어디서 시작해야 하는지와 코드를 작성하기 전에 필요한 엔지니어링 판단을 식별합니다.
  • 다음 단계: codetutor-what-next 명령은 사용 가능한 프로젝트 컨텍스트를 기반으로 튜터에게 가장 좋은 다음 단계를 하나 추천하도록 요청합니다.

기술 아키텍처 및 컨텍스트 수집

CodeTutor는 여러 로컬 소스에서 데이터를 집계하여 포괄적인 프롬프트를 구성함으로써 AI가 충분한 컨텍스트를 가지고 조언을 제공하도록 합니다.

컨텍스트 소스

소스 목적
PROJECT.md / project.md 제품 및 프로젝트 방향
spec/ directory 명세 및 설계 노트
.codetutor/ARCHITECTURE.md 지속 가능한 프로젝트 메모리
Current file text 현재 파일 텍스트, 활성 편집 컨텍스트
Tree-sitter/Imenu summary 버퍼의 구문 수준 개요
Project file index 튜터가 검사할 다른 파일을 식별하도록 돕습니다
Diff since last save 검토 중인 구체적인 변경 사항
Open project buffers 현재 세션의 인접 작업

아키텍처 메모리

CodeTutor는 지속 가능한 메모리 시스템을 구현합니다. 튜터가 아키텍처 관찰을 식별하면 이를 codetutor-memory 블록으로 감쌉니다. 패키지는 이러한 관찰을 자동으로 추출하여 .codetutor/ARCHITECTURE.md에 추가합니다. 이 파일은 패키지가 자동으로 쓸 수 있는 유일한 파일입니다.

백엔드 통합 및 안전성

CodeTutor는 두 개의 로컬 백엔드인 codexpi를 지원합니다. 두 백엔드 모두 AI가 사용자의 파일 시스템을 수정하지 못하도록 구성됩니다.

백엔드 구성

  • Codex: 승인 정책을 never로 설정하고 일시적인 세션을 사용하는 읽기 전용 샌드박스에서 codex exec를 사용합니다.
  • pi: read, grep, find, ls 로 제한된 도구 집합을 사용한 비대화형 프린트 모드를 사용합니다.

안전 계층

안전은 두 계층을 통해 강제됩니다: 파일 편집을 금지하는 프롬프트 수준 지시와 AI를 읽기 전용 모드로 제한하는 백엔드 수준 명령 경계.

설치 및 요구 사항

CodeTutor는 Emacs 28.1 이상이 필요하며, 내장 tree-sitter 지원을 위해 Emacs 29 이상을 권장합니다.

Doom Emacs 설정

Doom Emacs 사용자를 위해, 패키지는 로컬 저장소 레시피를 사용하여 packages.el에 추가하고, config.el에서 다음 명령으로 설정할 수 있습니다:

  • codetutor-open
  • codetutor-what-next
  • codetutor-ask
  • codetutor-follow-up
  • codetutor-refresh-architecture-memory

사용자 정의

사용자는 컨텍스트 제한(codetutor-max-project-context-bytes 등)과 시스템 프롬프트(codetutor-system-prompt)를 조정하여 튜터의 동작과 AI 백엔드에 전송되는 데이터 양을 맞춤 설정할 수 있습니다.

SUMMARY CodeTutor는 저장 시 변경 사항을 검토하고 코딩 개념을 가르치는 읽기 전용 AI 튜터 패널을 제공하는 Emacs 패키지이며, 소스 파일을 직접 수정하지 않습니다.

TITLE CodeTutor: Emacs용 AI 페어 프로그래머

Sources