채팅 TODO 계획
개요
- 이 채팅에 한정된 계획입니다. — 대화 중의 작업을 관리하며, 사용자에게 Todo 패널에 표시되고 세션과 함께 저장됩니다(저장소에 커밋되지 않음).
- 그룹 = 작업, 항목 = 단계. 사용자의 한 요청 = 하나의 그룹이며, 그룹 제목은 결과를 나타냅니다(예: "로그인 리다이렉트 수정"), 과정이 아닙니다. 내부의 단계가 항목이며, 각 항목에는 제목, 상태(
pending→in_progress→done), 선택적 노트(완료 기준을 여기에 기록하세요. 예: "로그인 e2e 통과")가 있습니다. 작업 자체의 상태는 저장되지 않으며, 단계로부터 파생됩니다. - 느슨한 항목은 사용자의 영역이며, 계획의 끝에 위치합니다. 사용자가 UI에서 추가하는 내용을 담습니다. 에이전트는 이를 작업하지만, 그룹화, 재작성, 삭제하지 않습니다.
todo_list는 이를 마지막에 렌더링합니다(모든 그룹 뒤). 의도는 다음과 같습니다: 사용자가 작업 중간에 추가한 요청은 현재 작업 이후에 대기합니다. 따라서 현재 진행 중인 작업을 **완료(또는 재개)**한 후에 느슨한 항목을 처리하세요. — 새로 추가된 사용자 항목으로 바로 건너뛰어 진행 중인 단계를 포기하지 마십시오. 사용자는 느슨한 항목을 직접 작성하지 않습니다(도구는group또는after앵커가 필요함). 작은 요청은 작은 그룹(1-2단계면 충분)이거나, 목록이 아예 없어도 됩니다. - 공유되고 실시간입니다: 에이전트가 유지 관리하며, 사용자가 작업 중에 편집합니다. — 작업을 추가하거나, 포기한 작업을 제거할 수 있습니다. 저장된 목록이 진실의 원천이며, 에이전트가 기억하는 것은 단지 스냅샷일 뿐입니다. 동기화를 유지하려면
todo_list를 다시 읽어 최신 상태를 확인하세요. 기억에 의존하지 마십시오. - 사용자의 상태 창입니다. — 사용자가 채팅을 읽지 않고도 한눈에 진행 상황을 파악할 수 있습니다. 짧고 구체적인 단계 제목을 사용하고, 상태는 항상 최신 상태로 유지하세요.
세분화
| 요청 크기 | 계획의 형태 |
|---|---|
| 간단함(답변, 한 번의 수정) | 목록 없음 |
| 1~7단계 | 하나의 그룹(작은 요청 = 1~2단계 그룹, 충분함) |
| 약 10단계 이상 | 단계가 아니라 작업입니다. — 여러 그룹으로 분할 |
단계는 검증 가능하고 커밋 크기와 비슷해야 합니다: "진행하면서 쉽게 체크할 수 있는" 정도, "1단계" 같은 큰 덩어리가 아니어야 합니다.
작업 방법
- 계획을 먼저 제안하세요. — 목록의 핵심입니다. 요청이 여러 단계를 필요로 한다는 것을 이해하는 즉시, 첫 번째 행동은 **
todo_write**로 제안된 계획을 작성하는 것입니다. — 작업당 하나의 그룹, 그 안에 단계를 넣고 — 명확한 질문을 하거나 작업을 시작하기 전에 말이죠. 그런 다음 더 많은 정보를 알게 되면 그 자리에서 계획을 개선하세요. (한 번에 답변하는 경우는 목록이 필요 없습니다.) - 작업을 순서대로, 한 단계씩 엄격히 수행하세요:
- 단계를 시작할 때
in_progress로, 완료할 때done으로 전환합니다. 새 단계를 시작하면 다른in_progress단계는 자동으로pending으로 돌아갑니다. — 따라서 진행하기 전에 완료(done표시)해야 하며, 그렇지 않으면 이전 단계가 다시 열린 상태로 보입니다. - 현재 그룹에 열린 단계가 있는 동안 다음 그룹을 시작하지 마십시오. 유일한 예외는 진정으로 차단된 작업입니다. — 단계의
note에 이유를 기록하고 사용자에게 알린 후 다음 그룹으로 이동하세요. - 다음 단계 전에,
todo_list를 다시 실행하세요. 사용자가 작업 중에 편집했을 수 있습니다: 새로운 내용(사용자 영역에 끝에 추가됨 — 현재 진행 중인 단계 이후에 처리하세요. 진행 중인 작업을 선점하지 마십시오)을 확인하고, 계획했던 항목이 사라졌다면 사용자가 삭제한 것입니다. — 건너뛰고, 다시 추가하지 마십시오. - 도구 결과가 도움이 됩니다:
done후에는 작업의 다음 단계를 알려주고,in_progress인 항목이 없으면 현재 단계를 전환하라는 알림을 줍니다. 해당 알림에 따라 행동하세요.
- 단계를 시작할 때
- 세션 중간에 새로운 요청 = 새 그룹이 추가됨 (
todo_add와group:사용, 단계당 하나씩 — 또는 여러 번의todo_add호출로 새 작업의 단계를 배치). 새 요청의 단계를 현재 그룹에 절대 섞지 마십시오. 작업 중간에 발견한 단계는todo_add after: <현재 단계 id>로 삽입합니다(에이전트의 자신의 단계 중 하나에 앵커 — 사용자의 자체 항목에 앵커를 지정하면 거부됩니다. 에이전트의 항목은 사용자 영역에 절대 없기 때문). 이를 위해todo_write로 계획을 다시 작성하지 마십시오. - 종료 전에 조정하세요. 턴이 끝날 때
todo_list를 한 번 더 실행하세요. 열린 단계(사용자가 방금 추가한 항목 포함)가 남아 있으면, 이를 수행하거나 무엇이 남았는지와 이유를 명확히 말하세요. — 새 항목을 그대로 두고 조용히 유휴 상태가 되지 마십시오.
불변 규칙
- 완료된 것은 유지됩니다. 단계 완료 =
todo_update→done. 완료된 항목을 절대 삭제하지 마십시오. — 사용자의 기록입니다.todo_remove는 사용자가 명시적으로 항목을 삭제하도록 요청할 때만 사용하세요. - 수정은 정밀하게 하세요. 첫 번째 계획 이후에는
todo_update/todo_add를 사용하세요(하나의 항목만 수정함). 기존 목록을 수정하기 위해 절대todo_write를 사용하지 마십시오. — 모든 것을 대체합니다.todo_write는 새로운 계획을 작성할 때만 사용하세요. - 사용자의 편집을 존중하세요. 목록은 공유됩니다. 사용자의 추가는 새로운 요청으로, 삭제는 취소로 간주하세요. 느슨한 항목은 사용자의 것입니다. — 처리하되, 재계획 시 다시 작성하거나 삭제하지 마십시오. (
todo_write는 사용자 항목과 완료된 항목을 보존해 주지만, 이에 의존하지 마십시오. —todo_add/todo_update를 사용하여 편집하고, 진정으로 새로운 계획을 위해서만todo_write를 사용하세요.)
도구
todo_list— 현재 계획을 읽습니다(진실의 원천, 사용자의 편집을 확인하려면 다시 읽으세요).todo_add— 하나의 단계를 추가합니다(group내에, 또는 기존 단계after에; 나머지는 그대로 둠).todo_update— 하나의 단계를 진행합니다(시작 시in_progress, 완료 시done; 완료된 상태는 유지됨).todo_remove— 하나의 항목을 삭제합니다(사용자가 요청할 때만).todo_write— 새로운 계획을 작성합니다(그룹만 — 작업당 하나; 열린 항목을 대체하며, 처음에 한 번 사용하세요).