Персистентные Tasks, субагенты на общем списке, зависимости между задачами — разбираем обновление и подводные камни


Та самая одна настройка

Вот она:

CLAUDE_CODE_TASK_LIST_ID=my-project claude

Всё. Теперь задачи сохраняются между сессиями. Закрыл терминал, открыл снова с тем же ID — задачи на месте.

Что ещё появилось в новых Tasks:

  • Субагенты видят общий список: 5 воркеров на одном task list

  • Зависимости: "Задача 3 ждёт задачу 2" — агент понимает

  • Multi-session: Два терминала работают с одним списком

Для кого: Сложные рефакторинги, декомпозиция фич, параллельная работа субагентов.

Репозиторий: github.com/maslennikov-ig/claude-code-orchestrator-kit


Проблема: "Амнезия агента"

Знакомо? Ты три часа работаешь с Claude Code над сложным рефакторингом. Создал план, разбил на подзадачи, выполнил половину. Закрыл терминал — и всё. На следующий день агент не помнит ни плана, ни что было сделано.

> Продолжи рефакторинг auth модуля

Claude: Какой рефакторинг? Можете дать контекст?

Старые Todos в Claude Code работали именно так. Задачи жили в памяти сессии. Закрыл терминал — список исчез. Субагенты не видели задачи основного агента. Зависимостей не было.

Сообщество придумывало костыли: markdown-файлы с TODO, Beads (git-backed трекер), ручные промпты "вот твой контекст".

В январе 2026 Anthropic наконец решили эту проблему. Tasks — это не косметический апгрейд. Это архитектурное изменение.


Что изменилось: Файловая система вместо RAM

Было: Todos в памяти

Сессия 1: Создал задачи → Работал → Закрыл терминал
Сессия 2: Задач нет. Агент не помнит.

Стало: Tasks на диске

Сессия 1: Создал задачи → Работал → Закрыл терминал
Сессия 2: Задачи на месте. Агент знает, что сделано.

Задачи теперь сохраняются в ~/.claude/ и привязываются к TASK_LIST_ID. Это даёт персистентность между сессиями.

Таблица отличий

Аспект

Старые Todos

Новые Tasks

Хранение

В памяти

На диске

Закрыл терминал

Всё пропало

Задачи сохранились

Субагенты

Не видят задачи

Видят через shared ID

Зависимости

Нет

blockedBy, blocks

Multi-session

Невозможно

Работает


Новые инструменты агента

Claude Code получил 4 новых тула для работы с задачами:

TaskCreate   — создать задачу с описанием
TaskList     — показать все задачи
TaskGet      — получить детали конкретной задачи
TaskUpdate   — обновить статус, добавить зависимости

Пример создания задачи

> Создай задачу для рефакторинга auth модуля

Claude использует TaskCreate:
  subject: "Refactor auth module"
  description: "Разделить auth.ts на auth-service.ts, auth-middleware.ts, auth-types.ts"
  activeForm: "Refactoring auth module"

Пример зависимостей

> Покажи задачи

TaskList:
  1. [completed] Setup project structure
  2. [in_progress] Create database schema
  3. [pending] Implement API endpoints (blocked by #2)
  4. [pending] Add authentication (blocked by #3)
  5. [pending] Write tests (blocked by #3, #4)

Агент сам понимает: задачу 3 нельзя начинать, пока не закончена задача 2. Это граф зависимостей, как в реальном проектном менеджменте.


Киллер-фича: Субагенты и параллелизм

Вот где Tasks раскрываются по-настоящему.

Сценарий: Рефакторинг на 20 файлов

Раньше:

Агент читает файл 1 → меняет → читает файл 2 → меняет → ...
Последовательно. Долго. Контекст забивается.

Теперь:

Главный агент: Создаёт план из 20 задач
              Разбивает на "волны" по зависимостям
              Спавнит 5 субагентов

Субагент 1: Берёт задачу #3 → выполняет → помечает completed
Субагент 2: Берёт задачу #4 → выполняет → помечает completed
...
Главный агент: Видит прогресс, координирует

Каждый субагент работает в своём контекстном окне. Не забивает контекст главного агента. Синхронизация — через общий task list.

Как настроить shared task list

# Терминал 1 (основной агент)
CLAUDE_CODE_TASK_LIST_ID=my-project claude

# Терминал 2 (субагент или воркер)
CLAUDE_CODE_TASK_LIST_ID=my-project claude

Оба терминала видят один и тот же список задач. Изменения синхронизируются мгновенно через файловую систему.


Продвинутый кейс: Оркестратор и Наблюдатель

Это сценарий из видео от команды Claude Code, и он реально крутой.

Идея

Запускаем два терминала:

  • Терминал A (Worker): Выполняет задачи, пишет код

  • Терминал B (Checker): Наблюдает, тестирует, добавляет баги

Настройка

# Терминал A
CLAUDE_CODE_TASK_LIST_ID=feature-123 claude
> Возьми следующую задачу из списка и выполни её

# Терминал B
CLAUDE_CODE_TASK_LIST_ID=feature-123 claude
> Каждые 30 секунд проверяй completed задачи.
> Запускай тесты на изменённые файлы.
> Если тесты падают — создай новую задачу с описанием бага.

Что происходит

Терминал A: Выполнил задачу "Add login endpoint" → пометил completed
Терминал B: Увидел → запустил тесты → тесты упали
Терми��ал B: Создал задачу "Fix: login returns 500 on empty password"
Терминал A: Увидел новую задачу → взял в работу → исправил

Это как CI/CD, но внутри Claude Code. Worker не отвлекается на тесты — у него есть наблюдатель.

Почему это работает

Синхронизация через файловую систему мгновенная. Нет race conditions (ну, почти). Нет проблемы устаревших данных.


Практика: Как настроить

Фиксация task_list_id

Проблема: Если не задать ID явно, он привязывается к сессии и удаляется при /clear.

Решение: Задать ID в переменной окружения или конфиге.

# В .bashrc или .zshrc
export CLAUDE_CODE_TASK_LIST_ID="my-default-project"

# Или при запуске
CLAUDE_CODE_TASK_LIST_ID=feature-xyz claude

Структура хранения

~/.claude/
├── projects/
│   └── my-project/
│       └── sessions/
├── plans/
└── tasks/          # Здесь живут task lists
    └── my-project.json

От��лючение Tasks

Если новая система не нужна:

CLAUDE_CODE_ENABLE_TASKS=false claude

Вернётесь к старым Todos (но зачем?).


Реальный workflow: Декомпозиция фичи

Покажу, как я использую Tasks для сложных задач.

Шаг 1: Создание плана

> Мне нужно добавить систему нотификаций.
> Разбей на подзадачи с зависимостями.

Claude создаёт:
  1. [pending] Design notification schema
  2. [pending] Create database migration (blocked by #1)
  3. [pending] Implement notification service (blocked by #2)
  4. [pending] Add WebSocket support (blocked by #3)
  5. [pending] Create notification UI components (blocked by #3)
  6. [pending] Write integration tests (blocked by #4, #5)

Шаг 2: Параллельная работа

Задачи #4 и #5 не зависят друг от друга — их можно делать параллельно.

Терминал 1: Работает над WebSocket (#4)
Терминал 2: Работает над UI (#5)

Оба видят общий прогресс. Когда оба закончат — #6 разблокируется.

Шаг 3: Продолжение через день

Закрыл терминалы, пошёл спать. На следующий день:

CLAUDE_CODE_TASK_LIST_ID=notifications claude

> Какие задачи остались?

Claude: Осталось 2 задачи:
  5. [in_progress] Create notification UI components
  6. [pending] Write integration tests (blocked by #5)

Контекст сохранился. Не нужно заново объяснять, что делаем.


Когда Tasks — это то, что нужно

Сложные рефакторинги

20+ файлов, зависимости между изменениями, несколько дней работы. Tasks отслеживают прогресс и не дают забыть, что уже сделано.

Декомпозиция фич

Большая фича разбивается на подзадачи. Агент понимает порядок выполнения. Можно распараллелить независимые части.

Работа с субагентами

Оркестратор раздаёт задачи, воркеры выполняют. Каждый в своём контексте, но синхронизированы через общий список.

Прерывистая работа

Сегодня 2 часа, завтра 3 часа, послезавтра ещё час. Tasks помнят состояние между сессиями.


Когда Tasks не нужны

Быстрые правки

> Поправь опечатку в README

Не нужен task list. Просто сделай.

Одноразовые скрипты

> Напиши скрипт для миграции данных

Одна сессия, одна задача. Tasks — оверкилл.

Простые вопросы

> Как работает useEffect в React?

Это не задача, это вопрос.


Ограничения и честный взгляд

Хранение — глобальное

Tasks живут в ~/.claude/, не в проекте. Это значит:

  • Нельзя закоммитить в Git

  • Нельзя перенести на другую машину (просто так)

  • История задач не версионируется

Feature request на configurable path помечен как "not planned". Жаль.

Нет поиска по истории

Закрытые задачи "уходят". Нельзя сделать:

# Этого нет
claude tasks search "payment" --include-completed

Год назад решали похожую проблему? Не найдёшь через Tasks.

Для git-backed истории — Beads

Если вам критичны:

  • Версионирование задач в Git

  • Поиск по истории решений

  • Переносимость между машинами

Посмотрите на Beads. Это git-backed issue tracker для AI-агентов. Tasks и Beads можно комбинировать: Tasks для текущей работы, Beads для архива.


Итого: Что изменилось

Раньше (Todos)

  • Задачи в памяти — пропадают при закрытии

  • Субагенты слепые — не видят общий план

  • Нет зависимостей — агент не понимает порядок

  • Одна сессия — один контекст

Теперь (Tasks)

  • Персистентность — задачи на диске

  • Shared task list — субагенты синхронизированы

  • Dependency graph — агент понимает блокировки

  • Multi-session — параллельная работа

Это похоже на Jira внутри терминала

Есть список тикетов. Воркеры разбирают задачи. Прогресс виден всем. Зависимости учитываются.

Только без веб-интерфейса и митингов по статусу.


Что попробовать прямо сейчас

# 1. Обновить Claude Code до последней версии
# (Tasks появились в v2.1.16+)

# 2. Запустить с явным task list ID
CLAUDE_CODE_TASK_LIST_ID=test-project claude

# 3. Попросить создать задачи
> Создай план для простого TODO-приложения на React.
> Разбей на задачи с зависимостями.

# 4. Посмотреть результат
> Покажи все задачи

# 5. Закрыть терминал и открыть снова
CLAUDE_CODE_TASK_LIST_ID=test-project claude
> Какие задачи есть?

# Спойлер: задачи на месте

Дисклеймер

Понимаю, что может быть критика:

"Tasks — это база, зачем статья?"
Для тех, кто пропустил обновление. Или использовал Claude Code раньше и забросил из-за "амнезии".

"Beads лучше, потому что git-backed!"
Согласен, для истории и переносимости — да. Но Tasks проще в setup и нативно интегрированы. Для многих задач этого достаточно.

"Это маркетинг Anthropic?"
Нет. Я честно показал ограничения: нет git-backed хранения, нет поиска по истории, feature requests на улучшения отклонены.

Если знаете лучший workflow — пишите в комментариях. Тема development с AI-агентами развивается быстро, и лучшие практики ещё формируются.


Контакты и обратная связь

Telegram

Канал: https://t.me/maslennikovigor
Прямой контакт: https://t.me/maslennikovig

GitHub (orchestrator kit — агенты, скиллы, команды)

Репозиторий: https://github.com/maslennikov-ig/claude-code-orchestrator-kit


Игорь Масленников
Пишу про AI-агентов, LLM-архитектуру и автоматизацию разработки.


А как вы решаете проблему "амнезии агента"? Используете Tasks, Beads, markdown-файлы или что-то своё?