asana-projectlisted
Install: claude install-skill dewil/claude-toolkit
# asana-project
Пакетная запись в Asana из JSON-плана: `create` - проект с секциями и задачами с нуля, `tasks` - досыпка задач в существующий проект. Скрипт-эталон - `scripts/asana-project.py` (top-level папка `scripts/` в корне проекта). Только stdlib, из внешнего - опционально `certifi`.
## Зачем это поверх поштучных вызовов
Поштучный канал (что MCP, пока он использовался, что ручные REST-запросы) заводит задачи по одной, и у него нет ни идемпотентного повтора, ни синка сроков из плана-файла. Развернуть доску по итогам встречи (13 задач по трем секциям, у каждой исполнитель, опи��ание, срок) - десятки шагов; через JSON-план - одна команда и одно подтверждение. Пробел не в "поштучно нельзя", а в **пакетности и повторяемости**: план приходит целиком, живет файлом под рукой, и повторный прогон того же файла безопасен.
## Границы
- **Единичные операции** (создать одну задачу, сменить статус, написать комментарий) - REST напрямую тем же PAT: база `https://app.asana.com/api/1.0`, заголовок `Authorization: Bearer <token>`; комментарий - `POST /tasks/{gid}/stories` с полем `html_text`. Понадобилось часто - завести маленький скрипт рядом, а не поднимать MCP (см. "Граница с Asana MCP" ниже).
- **Чтение длинной ленты комментариев** - скилл `asana-comments`: поштучный запрос задачи отдает ленту урезанной и молча.
- **Пакетное разворачивание, досыпка, пересмотр сроков** - этот скилл.
- Скрипт намеренно НЕ делает: перенос существующей задачи в другую секцию, стирание срока (срок тол