# TaskList

Возвращает каждую задачу в текущей команде (или сессии) в обобщённой форме. Используйте, чтобы обозреть невыполненную работу, решить, что взять следующим, и избежать создания дубликатов.

## Когда использовать

- В начале сессии, чтобы увидеть, что уже отслеживается.
- Перед вызовом `TaskCreate`, чтобы подтвердить, что работа ещё не зафиксирована.
- При выборе, какую задачу взять следующей как сокомандник или подагент.
- Для быстрой проверки зависимостей между задачами команды.
- Периодически во время длинных сессий для ре-синхронизации с сокомандниками, которые могли взять, завершить или добавить задачи.

`TaskList` работает только на чтение и дёшев; вызывайте свободно, когда нужен обзор.

## Параметры

`TaskList` не принимает параметров. Всегда возвращает полный набор задач активного контекста.

## Форма ответа

Каждая задача в списке — сводка, а не полная запись. Ожидайте примерно:

- `id` — стабильный идентификатор для `TaskGet` / `TaskUpdate`.
- `subject` — короткий императивный заголовок.
- `status` — один из `pending`, `in_progress`, `completed`, `deleted`.
- `owner` — handle агента или сокомандника, либо пусто, если задача невостребована.
- `blockedBy` — массив ID задач, которые должны завершиться первыми.

За полным описанием, критериями приёмки или метаданными конкретной задачи обращайтесь через `TaskGet`.

## Примеры

### Пример 1

Быстрая проверка статуса.

```
TaskList()
```

Просмотрите вывод на предмет `in_progress` без `owner` (застарелая работа) и `pending` с пустым `blockedBy` (готова к взятию).

### Пример 2

Сокомандник выбирает следующую задачу.

```
TaskList()
# Filter to: status == pending AND blockedBy is empty AND owner is empty.
# Among those, prefer the lower ID (tasks are typically numbered in
# creation order, so lower IDs are older and usually higher priority).
TaskGet(taskId: "<chosen id>")
TaskUpdate(taskId: "<chosen id>", status: "in_progress", owner: "<your handle>")
```

## Примечания

- Эвристика сокомандника: когда несколько задач `pending` разблокированы и без владельца, берите с наименьшим ID. Это сохраняет FIFO и предотвращает захват двумя агентами одной и той же заметной задачи.
- Уважайте `blockedBy`: не начинайте задачу, чьи блокеры ещё `pending` или `in_progress`. Сначала обработайте блокер или скоординируйтесь с его владельцем.
- `TaskList` — единственный механизм обнаружения задач. Поиска нет; если список длинный, сканируйте структурно (по статусу, затем по владельцу).
- Удалённые задачи могут по-прежнему появляться в списке со статусом `deleted` для отслеживания. Игнорируйте их для планирования.
- Список отражает живое состояние команды, поэтому сокомандники могут добавлять или брать задачи между вызовами. Перелистайте перед взятием, если прошло время.
