# todos

유용한 project context 가까이에 task state와 handoff note를 유지합니다.

- Canonical: https://docs.xmemo.dev/ko/docs/tools/todos
- Locale: ko-KR
- Content-Locale: ko-KR
- Canonical-Content-Digest: 191848e34c6130ea7c7026f86e247cf62ccb063ecf6fa01d5f4acce533a64867
- Edition-Digest: 9832e946ed10679e6512426e8ce4149f458e131de2081a5d20774bb862b6dce7
- Source-Revision: sha256:a208365f51d49c201b173728a752a5cec89775c71d38b55619b7bdb6846d5717

## Tool Reference: `todo`

### Purpose

project context 가까이에서 task TODO를 생성, 업데이트, 완료, 목록 조회 또는 명시적으로 bulk-delete하면서 승인된 project context 안에 task state를 보존합니다.

### Parameters

- `action` (create | update | complete | list | delete_all, required): Dispatcher operation입니다.
- `todo_id` (string, optional): update 또는 completion에 사용할 정확한 item ID입니다.
- `content / title` (string, optional): Task text입니다. 둘 다 제공하면 서로 일치해야 합니다.
- `project_id` (string, optional): 승인된 project workspace identifier입니다.
- `priority / due_at / status / note` (string, optional): Task priority, due timestamp, status transition 및 handoff note입니다.
- `item_status / due_before / search / query` (string, optional): List filter입니다. search와 query는 list 전용이며 둘 다 제공하면 서로 일치해야 합니다.
- `limit / cursor / owner_timezone` (integer / string, optional, default: 20 / empty / configured timezone): Pagination 및 날짜 해석 제어입니다.
- `client_mutation_id / expected_version` (string / integer, optional): create/update의 idempotency key와 update의 optimistic concurrency version입니다.
- `confirm_delete_all` (boolean, optional, default: false): 명시적인 복구 가능한 bulk deletion에 필요한 true 값입니다.

### Returns

Structured output은 action을 식별하고 영향을 받은 item(s), pagination cursor, mutation status 및 안전한 task metadata를 반환합니다. Bulk deletion은 항상 복구 가능한 soft deletion입니다.

### Errors

- Authorization failure: list에 memory:read가 없거나 mutation에 memory:write/project capability가 없습니다.
- Validation failure: create에 client_mutation_id가 없거나 update에 양수 expected_version이 없거나 action field가 충돌합니다.
- Safety rejection: delete_all에는 명시적인 confirmation이 필요하며 widget/mount-capability caller는 사용할 수 없습니다.
- Timezone, project 또는 optimistic-concurrency error가 명시적으로 반환되며 dispatcher는 field를 조용히 무시하지 않습니다.

### Examples

#### idempotent task 생성



```typescript
todo({
  action: "create",
  content: "Review the MCP scope matrix",
  client_mutation_id: "task-review-scope-001",
  due_at: "2026-08-25T09:00:00Z"
})
```

#### 열린 task 목록 조회



```typescript
todo({ action: "list", item_status: "open", limit: 10 })
```

### Related Tools

- [remember](/docs/tools/remember): task의 근거가 되는 영구 decision 또는 fact를 저장합니다.
- [recall_context](/docs/tools/recall-context): 계속하기 전에 task와 project context를 복원합니다.
- [forget](/docs/tools/forget): 필요할 때 정확한 ID로 검토된 TODO 하나를 제거합니다.

## 하나 더 추가하기 전에 열린 항목 목록 확인

먼저 읽으면 여러 agent가 동일한 project scope에서 작업할 때 중복 TODO를 피할 수 있습니다.

```ts
todo({ action: "list" })
```

