# EnterPlanMode

세션을 계획 모드로 전환합니다. 계획 모드는 읽기 전용 탐색 단계로, 어시스턴트가 코드베이스를 조사하고 구체적인 구현 계획을 작성하여 파일이 수정되기 전에 사용자의 승인을 받는 단계입니다.

## 사용 시점

- 사용자가 여러 파일이나 하위 시스템에 걸쳐 있는 사소하지 않은 변경을 요청합니다.
- 요구사항이 모호하며 어시스턴트가 접근 방식을 확정하기 전에 코드를 읽어야 합니다.
- 리팩터링, 마이그레이션, 또는 의존성 업그레이드가 제안되고 영향 범위가 불분명합니다.
- 사용자가 명시적으로 "이것을 계획해 달라", "먼저 계획하자"라고 말하거나 설계 검토를 요청합니다.
- 위험이 충분히 높아서 바로 편집으로 이동하면 작업을 낭비하거나 상태를 손상시킬 수 있습니다.

## 매개변수

없음. `EnterPlanMode`는 인수를 받지 않습니다 — 빈 매개변수 객체로 호출하십시오.

## 예시

### 예시 1: 큰 기능 요청

사용자가 다음과 같이 묻습니다: "관리자 패널에 Okta를 통한 SSO를 추가해 주세요." 어시스턴트는 `EnterPlanMode`를 호출한 다음, 여러 턴에 걸쳐 인증 미들웨어, 세션 저장소, 라우트 가드, 기존 로그인 UI를 읽는 데 시간을 소비합니다. 필요한 변경, 마이그레이션 단계, 테스트 범위를 설명하는 계획을 작성한 다음 승인을 위해 `ExitPlanMode`를 통해 제출합니다.

### 예시 2: 위험한 리팩터링

사용자가 다음과 같이 말합니다: "REST 컨트롤러를 tRPC로 변환해 주세요." 어시스턴트는 계획 모드에 들어가, 각 컨트롤러를 조사하고, 공개 계약을 카탈로그화하고, 롤아웃 단계 (shim, dual-read, cutover)를 나열하며, 어떤 파일도 건드리기 전에 순서 계획을 제안합니다.

## 참고사항

- 계획 모드는 계약상 읽기 전용입니다. 그 안에 있는 동안 어시스턴트는 `Edit`, `Write`, `NotebookEdit`, 또는 변이를 일으키는 셸 명령을 실행해서는 안 됩니다. `Read`, `Grep`, `Glob`, 그리고 비파괴적인 `Bash` 명령만 사용하십시오.
- 사소한 한 줄짜리 편집, 순수 연구 질문, 또는 사용자가 이미 변경을 전체 세부 사항으로 지정한 작업에는 계획 모드에 들어가지 마십시오. 오버헤드가 도움보다 더 해를 끼칩니다.
- Auto 모드에서는 사용자가 명시적으로 요청하지 않는 한 계획 모드를 권장하지 않습니다 — Auto 모드는 사전 계획보다 행동을 선호합니다.
- 비싼 작업에서 경로 수정을 줄이기 위해 계획 모드를 사용하십시오. 5분간의 계획은 종종 한 시간의 잘못된 편집을 절약합니다.
- 계획 모드에 들어가면 실제로 변경될 시스템의 부분에 조사를 집중하십시오. 당면한 작업과 관련 없는 저장소의 철저한 둘러보기를 피하십시오.
- 계획 자체는 하니스가 기대하는 경로의 디스크에 작성되어야 `ExitPlanMode`가 제출할 수 있습니다. 계획에는 모호한 의도가 아니라 구체적인 파일 경로, 함수 이름, 검증 단계가 포함되어야 합니다.
- 사용자는 계획을 거부하고 수정을 요청할 수 있습니다. 계획이 수락될 때까지 계획 모드 내에서 반복하십시오. 그때만 종료하십시오.
