이중 루프 구조:
- 내부 루프 (Planner 자가검증, 최대 3회):
계획 → 코딩 → Planner가 결과 검증 → 미달 시 추가 태스크 → 반복
Planner가 만족할 때까지 자체적으로 보완 작업 진행
- 외부 루프 (Reviewer, 최대 2회):
Planner 만족 → Reviewer 검토 → 반려 시 피드백으로 재계획
새 메서드:
- planner_verify(): Planner가 계획 달성도 자가 검증
- _read_recent_files(): 프로젝트 파일 읽기 공용 헬퍼
- reviewer.md: 에이전트 모드에 맞게 전면 개편
- 실제 파일 기반 리뷰로 변경
- 명확한 통과/반려 기준 (critical만 반려, 스타일은 통과)
- '의심이 되면 통과시키세요' 원칙
- coder.md: 완성도 요구사항 추가
- 빈 폴더(새 프로젝트) 대응 안내
- TODO/뼈대 금지 — 완성된 코드 요구
- 파일 간 참조 확인 지시
- summarizer.md: 입력 설명을 에이전트 모드에 맞게 수정
- router.md: 삭제 (unified.md가 대체)
- _handle_task: pipeline.execute() 대신 단계별 호출로 변경
-> 계획/코딩/리뷰/재시도 각 단계를 Discord에 실시간 표시
-> 코딩 중.../리뷰 중... Embed가 완료 시 업데이트됨
- em-dash -> ASCII dash (cp949 인코딩 오류 방지)
핵심 변경:
- gemini_caller.py: call_agent() 추가 (cwd 지원, 5분 타임아웃)
Gemini가 프로젝트 디렉토리에서 직접 파일 읽기/쓰기/실행
- task_pipeline.py: Coder가 call_agent() 사용, file_applier 의존 제거
리뷰 실패 시 최대 2회 재시도 (피드백 포함)
- discord_bot.py: pipeline.execute() 호출로 단순화
- coder.md: 파일 직접 쓰기 지시 (코드블록 출력 금지)
- 검증: echo prompt | gemini --cwd=VW_Proj → test_agent.txt 생성 확인
- workspace.py: 채널별 워크스페이스 모델 + JSON 영속 저장
- discord_bot.py: /workspace 슬래시 커맨드 (set/git/vikunja/info/remove/list)
- 등록 채널만 자동 응답, 미등록 채널 무시
- Git/Vikunja 미설정 시 작업 차단 + 안내
- 통합 프롬프트 1회 호출 (router+planner+chat 통합)
- docs_manager.py: Wiki 인덱스, 세션 기록, Changelog 자동 업데이트
- task_pipeline.py: 모든 Gemini 호출에 docs 컨텍스트 주입, 완료 시 기록
- unified.md: 분류+즉답/계획 통합 프롬프트