-
Notifications
You must be signed in to change notification settings - Fork 0
Open
Labels
Description
목표
ClaudeDeveloper 클래스를 Anthropic Agent SDK 기반으로 마이그레이션하여 코드 복잡도를 90% 감소시키고 유지보수성 향상
현재 문제점
- 400+ 줄의 복잡한 프로세스 관리 코드 (spawn, stdin/stdout, signal 처리)
- 수동 타임아웃 및 에러 처리
- Windows/Unix 분기 처리
- 프로세스 정리 로직 복잡
해결 방안
Anthropic Agent SDK 적용 (https://docs.claude.com/en/api/agent-sdk/typescript)
SDK 장점
- ✅ Git/GitHub CLI 명령 실행 가능 (Bash tool)
- ✅ 코드 75% 감소 (400줄 → 100줄)
- ✅ 내장 타임아웃/에러 처리
- ✅ 스트리밍 지원
- ✅ 타입 안전성
작업 범위
1. ClaudeDeveloperSDK 클래스 생성
// src/services/developer/claude-developer-sdk.ts
import { query } from '@anthropic-ai/claude-agent-sdk';
class ClaudeDeveloperSDK implements DeveloperInterface {
async executePrompt(prompt: string, workspaceDir: string) {
const stream = query({
prompt: optimizedPrompt,
cwd: workspaceDir,
timeout: this.timeoutMs,
tools: ['Bash', 'Read', 'Write', 'Edit']
});
let response = '';
for await (const chunk of stream) {
response += chunk;
}
return this.responseParser.parse(response);
}
}2. Factory 패턴 적용
// src/services/developer/index.ts
export function createDeveloper(config, deps) {
return config.useSDK
? new ClaudeDeveloperSDK(config, deps)
: new ClaudeDeveloper(config, deps);
}3. 설정 확장
interface DeveloperConfig {
useSDK?: boolean;
apiKey?: string; // SDK용
claudeCLIPath?: string; // CLI용 (fallback)
}구현 체크리스트
- pnpm add @anthropic-ai/claude-agent-sdk
- ClaudeDeveloperSDK 클래스 구현
- Factory 함수 생성
- Context File Manager 통합
- Response Parser 재사용
- 단위 테스트 작성
- 통합 테스트 (Git/GitHub CLI)
- 기존 CLI 버전 유지 (fallback)
테스트 케이스
- SDK 초기화 및 API 키 검증
- 프롬프트 실행 및 응답 파싱
- Git 명령 실행 (commit, push)
- GitHub CLI 실행 (gh pr create)
- 타임아웃 처리
- 에러 핸들링
- Context 파일 처리
참고 문서
- SDK 가이드: https://docs.claude.com/en/api/agent-sdk/typescript
- 현재 구현: src/services/developer/claude-developer.ts (400+ 줄)
- 인터페이스: src/types/developer.types.ts
예상 작업 시간
4-6시간
우선순위
⭐⭐⭐⭐⭐ (High)
Reactions are currently unavailable