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는 두 개의 로컬 백엔드인 codex와 pi를 지원합니다. 두 백엔드 모두 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-opencodetutor-what-nextcodetutor-askcodetutor-follow-upcodetutor-refresh-architecture-memory
사용자 정의
사용자는 컨텍스트 제한(codetutor-max-project-context-bytes 등)과 시스템 프롬프트(codetutor-system-prompt)를 조정하여 튜터의 동작과 AI 백엔드에 전송되는 데이터 양을 맞춤 설정할 수 있습니다.
SUMMARY CodeTutor는 저장 시 변경 사항을 검토하고 코딩 개념을 가르치는 읽기 전용 AI 튜터 패널을 제공하는 Emacs 패키지이며, 소스 파일을 직접 수정하지 않습니다.
TITLE CodeTutor: Emacs용 AI 페어 프로그래머