Exit Plan Mode 도구 (exit_plan_mode)
이 문서는 Qwen Code의 exit_plan_mode 도구에 대해 설명합니다.
설명
plan mode에서 구현 계획 제시를 마쳤을 때 exit_plan_mode를 사용합니다. 이 도구는 사용자에게 계획을 승인 또는 거부하도록 요청하고, planning mode에서 implementation mode로 전환합니다.
이 도구는 코드를 작성하기 전에 구현 단계를 계획해야 하는 작업용으로 설계되었습니다. 리서치나 정보 수집 작업에는 사용하면 안 됩니다.
인수
exit_plan_mode는 다음 인수를 받습니다:
plan(string, 필수): 사용자에게 승인 요청할 구현 계획. 구현 단계를 설명하는 간결한 마크다운 형식의 계획이어야 합니다.originalRequest(string, 선택 사항): plan이 필요한 서브에이전트가 리더에게 승인을 요청할 때 사용하는 원본 요청.researchSummary(string, 선택 사항): plan이 필요한 서브에이전트의 리더 리뷰를 위한 조사 컨텍스트.
Qwen Code에서 exit_plan_mode 사용 방법
Exit Plan Mode 도구는 Qwen Code의 planning 워크플로우 일부입니다. plan mode(일반적으로 코드베이스를 탐색하고 구현 접근 방식을 설계한 후)에서 이 도구를 사용하여 다음을 수행합니다:
- 구현 계획을 사용자에게 제시
- 구현 진행 승인을 요청
- 사용자 응답에 따라 plan mode에서 implementation mode로 전환
이 도구는 사용자에게 계획을 제시하고 다음 옵션을 제공합니다:
- Restore Previous: 계획을 승인하고 Plan mode 이전에 활성화된 모드로 복원
- Proceed Once: 이번 세션에만 계획을 승인
- Proceed Always: 계획을 승인하고 향후 편집 작업에 대한 자동 승인을 활성화
- Cancel: 계획을 거부하고 planning mode 유지
사용법:
exit_plan_mode(plan="여기에 자세한 구현 계획 작성...")이 도구를 사용해야 하는 경우
다음 상황에서 exit_plan_mode를 사용합니다:
- 구현 작업: 코딩 작업의 구현 단계를 계획하고 있을 때
- 계획 완료: 탐색과 구현 접근 방식 설계가 끝났을 때
- 사용자 승인 필요: 코드 변경 전에 사용자 확인이 필요할 때
- 코드 작성 작업: 코드 작성, 수정, 리팩토링이 포함된 작업
적절한 사용 예시:
- “사용자 인증을 구현해 주세요” → 인증 시스템 구현 계획 후 사용
- “사용자 관리를 위한 새 API 엔드포인트를 추가해 주세요” → 엔드포인트 구조 설계 후 사용
- “데이터베이스 레이어를 TypeORM을 사용하도록 리팩토링해 주세요” → 리팩토링 접근 방식 계획 후 사용
이 도구를 사용하면 안 되는 경우
다음 상황에서 exit_plan_mode를 사용하지 마세요:
- 리서치 작업: 기존 코드를 이해하거나 탐색하는 데 집중하는 작업
- 정보 수집: 구현 없이 검색, 읽기, 분석을 수행할 때
- 문서화 작업: 코드 변경 없이 문서를 만들 때
- 분석 작업: 구현 없이 설명이나 리뷰를 제공할 때
부적절한 사용 예시:
- “코드베이스에서 vim mode 구현을 검색하고 이해해 주세요” → 사용하지 않음 (리서치 작업)
- “인증 시스템이 어떻게 작동하는지 설명해 주세요” → 사용하지 않음 (분석 작업)
- “프로젝트의 모든 TODO 주석을 찾아주세요” → 사용하지 않음 (정보 수집)
exit_plan_mode 예시
구현 계획 예시
exit_plan_mode(plan="## 사용자 대시보드 구현 계획
### 1. 대시보드 컴포넌트 생성
- 메인 대시보드 레이아웃으로 `UserDashboard.tsx` 생성
- 사용자 통계를 표시하는 `DashboardStats.tsx` 추가
- 최근 사용자 활동을 위한 `ActivityFeed.tsx` 구현
### 2. API 연동 추가
- 대시보드 데이터 fetch를 위한 `dashboardApi.ts` 생성
- 사용자 통계 및 활동 데이터 엔드포인트 추가
- 에러 처리 및 로딩 상태 구현
### 3. 라우팅 업데이트
- `App.tsx`에 대시보드 라우트 추가
- 대시보드 링크로 네비게이션 컴포넌트 업데이트
- 인증된 사용자를 위한 라우트 보호 추가
### 4. 테스트 및 문서화
- 대시보드 컴포넌트 유닛 테스트 작성
- API 호출 통합 테스트 추가
- 대시보드 기능으로 사용자 문서 업데이트
이 구현은 약 4-6시간이 소요되며 8-10개 파일의 변경이 필요합니다.")리팩토링 계획 예시
exit_plan_mode(plan="## 데이터베이스 레이어 리팩토링 계획
### Phase 1: 설정 및 구성
- TypeORM 의존성 설치 및 구성
- 데이터베이스 연결 구성 생성
- 기존 모델에 대한 엔티티 정의 설정
### Phase 2: 마이그레이션
- 기존 데이터 마이그레이션 스크립트 생성
- TypeORM을 사용한 새 repository 패턴 구현
- raw SQL 쿼리를 TypeORM query builder로 교체
### Phase 3: 테스트 및 검증
- 모든 데이터베이스 테스트를 TypeORM을 사용하도록 업데이트
- 마이그레이션 후 데이터 무결성 검증
- 회귀가 없음을 보장하는 성능 테스트
이 리팩토링은 하위 호환성을 유지하면서 데이터베이스 레이어를 현대화합니다.")사용자 응답 처리
exit_plan_mode를 호출한 후, 사용자는 여러 방식으로 응답할 수 있습니다:
- Proceed Once: 기본 확인 설정으로 즉시 구현을 위해 계획이 승인됨
- Proceed Always: 계획이 승인되고 후속 편집 작업에 대해 자동 승인이 활성화됨
- Cancel: 계획이 거부되고 시스템이 추가 계획을 위해 plan mode를 유지
이 도구는 명시적인 결정이 수락되고 실행이 시작된 후에만 승인 모드를 변경합니다. 권한 규칙, 자동 승인 모드, permission-allow hook은 사용자를 대신하여 메인 세션 계획 종료를 승인할 수 없습니다.
중요 참고 사항
- Plan mode 전용: 이 도구는 현재 plan mode에 있을 때만 사용해야 합니다
- 구현 중심: 코드 작성 또는 수정이 포함된 작업에만 사용하세요
- 간결한 계획: 계획을 집중적이고 간결하게 유지하세요 — 세부 사항보다 명확성에 중점을 둡니다
- 마크다운 지원: 계획은 가독성을 위해 마크다운 포맷을 지원합니다
- 단일 사용: 진행 준비가 되었을 때 planning 세션당 한 번만 사용해야 합니다
- 사용자 제어: 진행 여부에 대한 최종 결정은 항상 사용자에게 있습니다
- 실패 시 안전 종료: 취소, 만료된 승인, 호스트 실패 및 전환 실패는 Plan mode를 유지합니다
Planning 워크플로우와의 통합
Exit Plan Mode 도구는 더 큰 planning 워크플로우의 일부입니다:
- Plan Mode 진입: 사용자가 요청하거나 시스템이 planning이 필요하다고 판단
- 탐색 단계: 코드베이스 분석, 요구 사항 이해, 옵션 탐색
- 계획 설계: 탐색을 기반으로 구현 전략 수립
- 계획 제시:
exit_plan_mode를 사용하여 사용자에게 계획 제시 - 구현 단계: 승인 후 계획된 구현 진행
이 워크플로우는 신중한 구현 접근 방식을 보장하고 사용자에게 중요한 코드 변경에 대한 제어권을 제공합니다.