새 작업 도구
new_task
도구 및 컨텍스트 관리 전략
개요
Cline은 복잡하거나 장기 실행되는 작업 중에 워크플로 연속성 및 컨텍스트 보존을 관리하는 데 도움이 되도록 설계된 강력한 내부 도구인 new_task
를 포함합니다. 이 도구는 Cline의 자체 컨텍스트 창 사용량 인식 및 .clinerules
의 유연성과 결합되어 작업을 분해하고 작업 세션 간의 원활한 전환을 보장하기 위한 정교한 전략을 가능하게 합니다.
핵심 기능과 사용자 지정 규칙과의 상호 작용 방식을 이해하는 것이 이 기능을 효과적으로 활용하는 데 중요합니다.
핵심 기능
두 가지 기본 기능은 고급 컨텍스트 관리를 가능하게 합니다.
new_task
도구:- 기능: Cline이 사용자 승인에 따라 현재 작업 세션을 종료하고 즉시 새 세션을 시작할 수 있도록 합니다.
- 컨텍스트 사전 로드: 결정적으로 Cline은 도구의
<context>
블록 내에 제공된 특정 컨텍스트로 이 새 작업 세션을 사전 로드할 수 있습니다. 이 컨텍스트는 Caret 또는.clinerules
파일이 정의하는 모든 것일 수 있습니다. 요약, 코드 스니펫, 다음 단계, 프로젝트 상태 등.
- 컨텍스트 창 인식:
- 추적: Cline은 작업 중에 현재 사용 중인 사용 가능한 컨텍스트 창의 백분율을 내부적으로 추적합니다.
- 가시성: 이 정보는 Cline의 프롬프트에 제공된
environment_details
에서 볼 수 있습니다.
/newtask
슬래시 명령 사용
Cline이 newtask
도구를 제안하거나 복잡한 규칙을 정의하는 빠른 대안으로, 슬래시 명령을 사용하여 프로세스를 직접 시작할 수 있습니다.
- 방법: 채팅 입력 필드에
/newtask
를 입력하기만 하면 됩니다. - 작업: Cline은 일반적으로 현재 세션을 기반으로 컨텍스트를 제안하여 새 작업을 생성할 것을 제안합니다(도구를 사용할 때의 기본 동작과 유사). 새 작업이 생성되기 전에 컨텍스트를 확인하고 잠재적으로 수정하기 위해
ask_followup_question
프롬프트를 계속 받게 됩니다. - 이점: Cline이 제안할 때까지 기다릴 필요 없이 분기 탐색 또는 긴 세션 관리를 위해
new_task
기능을 활용하는 빠르고 사용자 시작 방식입니다.
/newtask
슬래시 명령 사용에 대한 자세한 내용은 새 작업 명령
문서를 참조하십시오.
기본 동작 (.clinerules
없음)
기본적으로 특정 .clinerules
가 동작을 지시하지 않는 경우:
- 도구 가용성:
new_task
도구가 존재하며 Cline은 이를 사용할 수 있습니다. - 컨텍스트 인식: Cline은 컨텍스트 사용량 백분율을 인식합니다.
- 자동 트리거 없음: Cline은 컨텍스트 사용량이 특정 백분율(예: 50%)에 도달하는 것만으로 작업 핸드오프를 자동으로 시작하지 않습니다.
new_task
사용을 제안하는 결정은 전체 작업 진행 상황 및 프롬프트 지침을 기반으로 하는 AI 모델의 추론에서 비롯됩니다. - 기본 컨텍스트 사전 로드:
new_task
가<context>
블록 구조를 정의하는 특정 규칙 없이 사용되는 경우, Cline은 현재 이해를 기반으로 관련 정보(예: 진행 상황 및 다음 단계에 대한 기본 요약)를 사전 로드하려고 시도하지만, 이는 규칙 기반 접근 방식보다 덜 포괄적일 수 있습니다.
.clinerules
의 힘: 사용자 지정 워크플로 활성화
핵심 기능은 기본적으로 존재하지만, new_task
및 컨텍스트 인식을 .clinerules
에 정의된 사용자 지정 워크플로와 결합할 때 진정한 힘, 자동화 및 사용자 지정이 나타납니다. 이를 통해 Cline이 컨텍스트 및 작업 연속성을 관리하는 시기와 방법을 정확하게 제어할 수 있습니다.
new_task
와 함께 .clinerules
를 사용하는 주요 이점:
- 자동화된 컨텍스트 관리: 특정 컨텍스트 백분율(예: >50%, >70%) 또는 토큰 수에서 핸드오프를 자동으로 트리거하는 규칙을 정의하여 최적의 성능을 보장하고 컨텍스트 손실을 방지합니다.
- 모델별 최적화: 특정 토큰 수를 초과하면 성능이 저하되는 것으로 알려진 모델의 경우 더 일찍 트리거하는 등 다양한 LLM에 대한 알려진 임계값을 기반으로 핸드오프 트리거를 조정합니다.
- 지능형 중단점: 컨텍스트 임계값이 통과된 후 논리적 중단점(예: 함수 또는 테스트 완료 후)을 찾도록 규칙을 통해 Cline에 지시하여 더 깔끔한 핸드오프를 보장합니다.
- 구조화된 작업 분해: 계획 모드를 사용하여 하위 작업을 정의한 다음,
.clinerules
를 사용하여 Cline이 각 하위 작업 완료 시new_task
를 통해 새 작업을 자동으로 생성하고 다음 하위 작업에 대한 컨텍스트를 사전 로드하도록 합니다. - 사용자 지정 컨텍스트 패키징: 매우 상세하고 일관된 핸드오프를 위해
.clinerules
에서<context>
블록의 정확한 구조와 내용을 의무화합니다(아래 예시 참조). - 향상된 메모리 지속성:
new_task
컨텍스트 블록을 세션 간에 정보를 유지하는 기본 통합 방식으로 사용하여 파일 기반 메모리 시스템을 대체하거나 보완할 수 있습니다. - 워크플로 자동화: 특정 유형의 작업을 시작할 때 항상 특정 설정 지침 또는 프로젝트 상용구를 사전 로드하는 것과 같은 특정 시나리오에 대한 규칙을 정의합니다.
예시 규칙 기반 워크플로: 작업 핸드오프 프로세스
아래 예시와 같은 특정 .clinerules
에 의해 구동되는 일반적인 워크플로는 다음 단계를 포함합니다.
-
트리거 식별 (규칙 기반): Cline은 규칙에 정의된 핸드오프 지점(예: 컨텍스트 사용량 > 50%, 작업 완료)을 모니터링합니다.
-
사용자 확인: Cline은
ask_followup_question
을 사용하여 새 작업을 생성할 것을 제안하며, 종종 규칙에 정의된 의도된 컨텍스트를 보여줍니다.<ask_followup_question>
<question>[특정 성과]를 완료했으며 컨텍스트 사용량이 높습니다(XX%). 다음 컨텍스트를 사전 로드하여 [남은 작업]을 계속하기 위해 새 작업을 생성하시겠습니까?</question>
<options>["예, 새 작업 생성", "먼저 컨텍스트 수정", "아니요, 이 세션 계속"]</options>
</ask_follow_question> -
사용자 제어: 새 작업이 생성되기 전에 컨텍스트를 승인, 거부 또는 Cline에 수정하도록 요청할 수 있습니다.
-
컨텍스트 패키징 (
new_task
도구): 승인되면 Cline은.clinerules
에 의해 의무화된 구조에 따라 컨텍스트를 패키징하여new_task
를 사용합니다. -
새 작업 생성: 현재 작업이 종료되고 지정된 컨텍스트로 사전 로드된 새 세션이 즉시 시작됩니다.
핸드오프 컨텍스트 블록 (규칙 정의 구조)
규칙 기반 핸드오프의 효과는 .clinerules
가 <context>
블록을 정의하는 방식에 크게 좌우됩니다. 포괄적인 구조는 종종 다음을 포함합니다.
## 완료된 작업
: 성과, 수정/생성된 파일, 주요 결정 사항에 대한 상세 목록.## 현재 상태
: 프로젝트 상태, 실행 중인 프로세스, 주요 파일 상태.## 다음 단계
: 남은 작업, 구현 세부 정보, 알려진 문제에 대한 명확하고 우선순위가 지정된 목록.## 참조 정보
: 링크, 코드 스니펫, 패턴, 사용자 기본 설정.- 실행 가능한 시작: 즉각적인 다음 작업에 대한 명확한 지침.
잠재적 사용 사례 및 워크플로
new_task
와 .clinerules
의 유연성은 많은 가능성을 열어줍니다.
- 사전 예방적 컨텍스트 창 관리: 최적의 성능을 유지하기 위해 특정 백분율(예: 50%, 70%) 또는 토큰 수에서 핸드오프를 자동으로 트리거합니다.
- 지능형 중단점: 컨텍스트 임계값이 통과된 후 논리적 중단점(예: 함수 또는 테스트 완료 후)을 찾도록 Cline에 지시하여 더 깔끔한 핸드오프를 보장합니다.
- 구조화된 작업 분해: 계획 모드를 사용하여 하위 작업을 정의한 다음,
.clinerules
를 사용하여 Cline이 각 하위 작업 완료 시new_task
를 통해 새 작업을 자동으로 생성하도록 합니다. - 자동화된 세션 요약: 이전 세션의 주요 논의 지점에 대한 요약을 항상 포함하도록
<context>
블록을 구성합니다. - 상용구/설정 사전 로드: 특정 프로젝트와 관련된 새 작업을 표준 설정 지침 또는 파일 템플릿으로 사전 로드하여 시작합니다.
- "메모리 뱅크" 대안:
new_task
컨텍스트 블록을 세션 간에 정보를 유지하는 기본 방식으로 사용하여 파일 기반 메모리 시스템을 잠재적으로 대체합니다.
필요에 가장 적합한 워크플로를 찾기 위해 .clinerules
를 실험해 보는 것이 좋습니다!
예시 .clinerules
: 작업 핸드오프 전략 가이드
아래는 컨텍스트 창 관리를 위해 new_task
를 사용하는 데 특별히 초점을 맞춘 .clinerules
파일의 예시입니다. 이는 단지 하나의 특정 전략일 뿐이며, 핵심 new_task
도구는 다른 사용자 지정 규칙과 다르게 사용될 수 있음을 기억하십시오.
# `new_task` 도구를 사용해야 합니다: 작업 핸드오프 전략 가이드
**⚠️ 중요 지침 - 다음 지침을 반드시 따라야 합니다 ⚠️**
이 가이드는 복잡한 작업을 효과적으로 분해하고 작업 간의 원활한 핸드오프 프로세스를 구현하기 위한 **필수** 지침을 제공합니다. 연속성, 컨텍스트 보존 및 효율적인 작업 완료를 보장하기 위해 다음 지침을 **반드시** 따라야 합니다.
## ⚠️ 컨텍스트 창 모니터링 - 필수 작업 필요 ⚠️
환경 세부 정보에 표시된 컨텍스트 창 사용량을 **반드시** 모니터링해야 합니다. 사용량이 사용 가능한 컨텍스트 창의 50%를 초과하면 `new_task` 도구를 사용하여 작업 핸드오프를 **반드시** 시작해야 합니다.
200K 컨텍스트 창에서 컨텍스트 창 사용량이 50%를 초과하는 예시:
\`\`\`text
# 컨텍스트 창 사용량
105,000 / 200,000 토큰 (53%)
모델: anthropic/claude-sonnet-4 (200K 컨텍스트 창)
\`\`\`
**중요**: 컨텍스트 창 사용량이 50% 이상인 경우 **반드시** 다음을 수행해야 합니다.
1. 현재 논리적 단계를 완료합니다.
2. `ask_followup_question` 도구를 사용하여 새 작업을 생성할 것을 제안합니다.
3. 승인되면 포괄적인 핸드오프 지침과 함께 `new_task` 도구를 사용합니다.
## 계획 모드에서 작업 분해 - 필수 프로세스
계획 모드는 복잡한 작업을 분석하고 관리 가능한 하위 작업으로 분해하도록 특별히 설계되었습니다. 계획 모드에 있을 때 **반드시** 다음을 수행해야 합니다.
### 1. 초기 작업 분석 - 필수
- 사용자의 요청 전체 범위를 철저히 이해하는 것으로 **반드시** 시작해야 합니다.
- 작업의 모든 주요 구성 요소 및 종속성을 **반드시** 식별해야 합니다.
- 잠재적인 문제, 예외 사례 및 전제 조건을 **반드시** 고려해야 합니다.
### 2. 전략적 작업 분해 - 필수
- 전체 작업을 논리적이고 개별적인 하위 작업으로 **반드시** 분해해야 합니다.
- 종속성을 기반으로 하위 작업의 우선순위를 **반드시** 지정해야 합니다(무엇이 먼저 완료되어야 하는지).
- 단일 세션(15-30분 작업) 내에서 완료할 수 있는 하위 작업을 **반드시** 목표로 해야 합니다.
- 컨텍스트 전환이 합리적인 자연스러운 중단점을 **반드시** 고려해야 합니다.
### 3. 작업 로드맵 생성 - 필수
- 사용자에게 명확하고 번호가 매겨진 하위 작업 목록을 **반드시** 제시해야 합니다.
- 하위 작업 간의 종속성을 **반드시** 설명해야 합니다.
- 가능한 경우 각 하위 작업에 대한 예상 시간을 **반드시** 제공해야 합니다.
- 도움이 되는 경우 Mermaid 다이어그램을 사용하여 작업 흐름 및 종속성을 **반드시** 시각화해야 합니다.
\`\`\`mermaid
graph TD
A[주요 작업] --> B[하위 작업 1: 설정]
A --> C[하위 작업 2: 핵심 구현]
A --> D[하위 작업 3: 테스트]
A --> E[하위 작업 4: 문서화]
B --> C
C --> D
\`\`\`
### 4. 사용자 승인 받기 - 필수
- 제안된 작업 분해에 대한 사용자 피드백을 **반드시** 요청해야 합니다.
- 사용자 우선순위 또는 추가 요구 사항에 따라 계획을 **반드시** 조정해야 합니다.
- 시작할 하위 작업을 **반드시** 확인해야 합니다.
- 구현 준비가 되면 사용자에게 Act 모드로 전환하도록 **반드시** 요청해야 합니다.
## 작업 구현 및 핸드오프 프로세스 - 필수 절차
Act 모드에서 작업을 구현할 때 효과적인 작업 핸드오프를 위해 다음 지침을 **반드시** 따라야 합니다.
### 1. 집중 구현 - 필수
- 현재 하위 작업을 완전히 완료하는 데 **반드시** 집중해야 합니다.
- 주석 및 커밋 메시지를 통해 진행 상황을 명확하게 **반드시** 문서화해야 합니다.
- 논리적 완료 지점에서 체크포인트를 **반드시** 생성해야 합니다.
### 2. 완료 지점 인식 - 중요
다음과 같은 경우 자연스러운 핸드오프 지점을 **반드시** 식별해야 합니다.
- 현재 하위 작업이 완전히 완료되었습니다.
- 더 큰 하위 작업에서 논리적 중단점에 도달했습니다.
- 구현이 예상보다 오래 걸리고 나중에 계속할 수 있습니다.
- 작업 범위가 원래 계획을 넘어 확장되었습니다.
- **중요**: 컨텍스트 창 사용량이 50%를 초과합니다(예: 200K 컨텍스트 창의 경우 100,000개 이상의 토큰).
### 3. 핸드오프 프로세스 시작 - 필수 작업
완료 지점에 도달하면 **반드시** 다음을 수행해야 합니다.
1. 지금까지 달성한 내용을 요약합니다.
2. 남은 작업을 명확하게 명시합니다.
3. **필수**: `ask_followup_question` 도구를 사용하여 새 작업을 생성할 것을 제안합니다.
\`\`\`xml
<ask_followup_question>
<question>[특정 성과]를 완료했습니다. [남은 작업]을 계속하기 위해 새 작업을 생성하시겠습니까?</question>
<options>["예, 새 작업 생성", "아니요, 이 세션 계속", "생각해볼게요"]</options>
</ask_follow_question>
\`\`\`
### 4. 컨텍스트와 함께 새 작업 생성 - 필수 작업
사용자가 새 작업 생성을 동의하면 포괄적인 핸드오프 지침과 함께 `new_task` 도구를 **반드시** 사용해야 합니다.
\`\`\`xml
<new_task>
<context>
# 작업 연속: [간략한 작업 제목]
## 완료된 작업
- [완료된 항목의 상세 목록]
- [수정/생성된 특정 파일 포함]
- [내려진 중요한 결정 사항 기록]
## 현재 상태
- [프로젝트의 현재 상태 설명]
- [실행 중인 프로세스 또는 환경 설정]
- [주요 파일 및 현재 상태]
## 다음 단계
- [남은 작업의 상세 목록]
- [다룰 특정 구현 세부 정보]
- [알려진 문제점]
## 참조 정보
- [관련 문서 링크]
- [따라야 할 중요한 코드 스니펫 또는 패턴]
- [현재 세션 중에 기록된 사용자 기본 설정]
[특정 다음 작업]을 통해 구현을 계속하십시오.
</context>
</new_task>
\`\`\`
### 5. 상세 컨텍스트 전송 - 필수 구성 요소
새 작업을 생성할 때 **반드시** 항상 다음을 포함해야 합니다.
#### 프로젝트 컨텍스트 - 필수
- 프로젝트의 전반적인 목표와 목적을 **반드시** 포함해야 합니다.
- 주요 아키텍처 결정 및 패턴을 **반드시** 포함해야 합니다.
- 기술 스택 및 종속성을 **반드시** 포함해야 합니다.
#### 구현 세부 정보 - 필수
- 현재 세션에서 생성 또는 수정된 파일을 **반드시** 나열해야 합니다.
- 구현된 특정 함수, 클래스 또는 구성 요소를 **반드시** 설명해야 합니다.
- 따라야 할 디자인 패턴을 **반드시** 설명해야 합니다.
- 테스트 접근 방식을 **반드시** 개략적으로 설명해야 합니다.
#### 진행 상황 추적 - 필수
- 완료된 항목의 체크리스트를 **반드시** 제공해야 합니다.
- 남은 항목의 체크리스트를 **반드시** 제공해야 합니다.
- 발생한 모든 차단 또는 문제를 **반드시** 기록해야 합니다.
#### 사용자 기본 설정 - 필수
- 사용자가 언급한 코딩 스타일 기본 설정을 **반드시** 기록해야 합니다.
- 사용자가 요청한 특정 접근 방식을 **반드시** 문서화해야 합니다.
- 사용자가 식별한 우선순위 영역을 **반드시** 강조해야 합니다.
## 효과적인 핸드오프를 위한 모범 사례 - 필수 지침
### 1. 연속성 유지 - 필수
- 작업 간에 일관된 용어를 **반드시** 사용해야 합니다.
- 이전 결정 및 그 근거를 **반드시** 참조해야 합니다.
- 명시적으로 방향을 변경하지 않는 한 동일한 아키텍처 접근 방식을 **반드시** 유지해야 합니다.
### 2. 컨텍스트 보존 - 필수
- 핸드오프에 관련 코드 스니펫을 **반드시** 포함해야 합니다.
- 이전 세션의 주요 논의를 **반드시** 요약해야 합니다.
- 해당하는 경우 특정 파일 및 줄 번호를 **반드시** 참조해야 합니다.
### 3. 명확한 다음 작업 설정 - 필수
- 명확하고 실행 가능한 다음 단계로 핸드오프를 **반드시** 시작해야 합니다.
- 남은 작업의 우선순위를 **반드시** 지정해야 합니다.
- 내려야 할 모든 결정을 **반드시** 강조해야 합니다.
### 4. 가정 문서화 - 필수
- 구현 중에 이루어진 모든 가정을 **반드시** 명확하게 명시해야 합니다.
- 사용자 입력이 필요할 수 있는 영역을 **반드시** 기록해야 합니다.
- 잠재적인 대체 접근 방식을 **반드시** 식별해야 합니다.
### 5. 재개 가능성 최적화 - 필수
- 다음 세션이 즉시 작업을 시작할 수 있도록 핸드오프를 **반드시** 구성해야 합니다.
- 환경 구성이 필요한 경우 설정 지침을 **반드시** 포함해야 합니다.
- 빠른 컨텍스트 복원을 위해 상단에 빠른 요약을 **반드시** 제공해야 합니다.
## 예시 작업 핸드오프
### 효과적인 작업 핸드오프의 예시 #1:
\`\`\`xml
<new_task>
<context>
# 작업 연속: 사용자 인증 시스템 구현
## 완료된 작업
- 기본 Express.js 서버 구조 생성
- MongoDB 연결 및 사용자 스키마 구현
- 비밀번호 해싱을 통한 사용자 등록 엔드포인트 완료
- Joi를 사용한 입력 유효성 검사 추가
- 등록 엔드포인트에 대한 초기 테스트 스위트 생성
## 현재 상태
- 서버가 포트 3000에서 성공적으로 실행 중입니다.
- MongoDB 연결이 설정되었습니다.
- 등록 엔드포인트(/api/users/register)가 완전히 작동합니다.
- 모든 등록 시나리오에 대한 테스트 스위트가 통과합니다.
## 다음 단계
1. 로그인 엔드포인트(/api/users/login) 구현
- 비밀번호 비교를 위해 bcrypt 사용
- 성공적인 로그인 시 JWT 토큰 생성
- 잘못된 자격 증명에 대한 적절한 오류 처리 추가
2. 인증 미들웨어 생성
- JWT 토큰 확인
- 사용자 정보 추출
- 만료된 토큰 처리
3. 인증이 필요한 보호된 경로 추가
4. 비밀번호 재설정 기능 구현
## 참조 정보
- JWT 비밀은 .env 파일에 저장되어야 합니다.
- routes/users.js에 있는 기존 오류 처리 패턴을 따르십시오.
- 사용자 스키마는 models/User.js에 정의되어 있습니다.
- 테스트 패턴은 tests/auth.test.js에 설정되어 있습니다.
등록 엔드포인트에 설정된 동일한 패턴을 따라 로그인 엔드포인트를 구현하여 계속하십시오.
</context>
</new_task>
\`\`\`
### 비효율적인 작업 핸드오프의 예시 #2:
_(참고: 원본 규칙에 제공된 "YOLO MODE 구현" 예시는 직접적인 핸드오프 컨텍스트 블록이라기보다는 미래 고려 사항이 포함된 일반적인 상태 업데이트에 가깝습니다. 진정한 비효율적인 핸드오프는 '현재 상태' 또는 '다음 단계'에 대한 세부 정보가 부족할 수 있습니다.)_
## 작업 핸드오프 사용 시기 - 필수 트리거
다음 시나리오에서 작업 핸드오프를 **반드시** 시작해야 합니다.
1. **중요**: 컨텍스트 창 사용량이 50%를 초과할 때(예: 200K 컨텍스트 창의 경우 100,000개 이상의 토큰)
2. 단일 세션을 초과하는 **장기 실행 프로젝트**
3. 여러 개의 개별 단계가 있는 **복잡한 구현**
4. **컨텍스트 창 제한**에 접근할 때
5. 더 큰 프로젝트 내에서 **초점 영역을 전환할 때**
6. 작업의 다른 부분에 대해 **다른 전문 지식**이 도움이 될 수 있을 때
**⚠️ 최종 알림 - 중요 지침 ⚠️**
환경 세부 정보 섹션에서 컨텍스트 창 사용량을 **반드시** 모니터링해야 합니다. 50%를 초과하면(예: "105,000 / 200,000 토큰 (53%)"), `ask_follow_up_question` 도구와 `new_task` 도구를 사용하여 작업 핸드오프 프로세스를 **반드시** 사전에 시작해야 합니다. `new_task` 도구를 **반드시** 사용해야 합니다.
이러한 지침을 엄격하게 따르면 작업 간의 원활한 전환을 보장하고 프로젝트 추진력을 유지하며 복잡한 다중 세션 프로젝트에서 작업하는 사용자에게 최상의 경험을 제공할 수 있습니다.
```markdown
## 사용자 상호 작용 및 워크플로 고려 사항
- **선형 흐름:** 현재 `new_task`를 사용하면 선형 시퀀스가 생성됩니다. 이전 작업이 종료되고 새 작업이 시작됩니다. 이전 작업 기록은 되돌아가기 위해 계속 액세스할 수 있습니다.
- **사용자 승인:** 항상 제어권을 가지며, 핸드오프를 승인하고 Cline이 전달할 컨텍스트를 수정할 기회를 가집니다.
- **유연성:** 핵심 `new_task` 도구는 유연한 구성 요소입니다. 엄격한 컨텍스트 관리, 작업 분해 또는 기타 창의적인 용도 등 필요에 가장 적합한 워크플로를 생성하기 위해 `.clinerules`를 실험해 보십시오.