8. 태스크 관리 규격 (Task Management)
Claude Code의 TodoRead/TodoWrite에 대응하는 태스크 관리 이벤트를 정의한다. §5의 도구 호출(tool.invoke.*)로도 표현 가능하나, 태스크 관리는 UI 렌더링과 밀접하므로 전용 페이로드 구조를 정의한다.
8.1. 태스크 객체 스키마
{
"id": "String (필수, 고유 식별자)",
"content": "String (필수, 태스크 설명)",
"status": "String (필수, 'pending' | 'in_progress' | 'completed' | 'cancelled')",
"priority": "String (선택, 'critical' | 'high' | 'medium' | 'low')",
"created_at": "String (선택, ISO 8601)",
"updated_at": "String (선택, ISO 8601)",
"parent_id": "String (선택, 부모 태스크 ID, 계층 구조 지원)",
"metadata": "Object (선택, 추가 정보)"
}
8.2. 도구 결과 내 태스크 전달
태스크 관리 도구(TodoRead, TodoWrite 또는 동등한 도구)의 결과는 tool.invoke.result에서 output_type: "structured"와 함께 다음 output 구조를 사용한다:
TodoRead 결과:
{
"output_type": "structured",
"output": {
"todos": ["Task Object (§8.1의 스키마를 따르는 배열)"]
}
}
TodoWrite 결과:
{
"output_type": "structured",
"output": {
"success": "Boolean (필수)",
"count": "Number (필수, 반영된 태스크 수)",
"todos": ["Task Object (선택, 갱신 후 전체 목록)"]
}
}