Документация Задачи — трекер

Mockarty Tasks — встроенный трекер задач

Mockarty Tasks — лёгкий трекер задач внутри платформы: проекты, канбан-доска,
спринты, бэклог, аналитика — глубоко связанный с тест-кейсами, прогонами и
аномалиями, так что баг живёт рядом с тестом, который его воспроизводит.

Открывается из сайдбара: Задачи (/ui/tasks).

Включение и выключение трекера

Трекер входит в модуль «Процессинг и коммуникации» и включён по умолчанию в каждом пространстве
имён, тариф которого его включает. Команда, которая ведёт задачи в другом месте (например, в Jira),
выключает его для пространства: Настройки → Настройки TMS → Трекер задач (переключатель
issueTrackerEnabled). Пока он выключен, API трекера отвечает понятной ошибкой feature_disabled с
указанием на этот переключатель.

Проекты

Всё живёт в проекте: он владеет префиксом ключа задач (ABC-123), workflow,
компонентами, версиями и списком участников. Создаётся из селектора проектов
в тулбаре.

  • Префикс ключа уникален в namespace; дубликат отклоняется понятной
    ошибкой конфликта.
  • Слияние проектов: сначала просмотрите источник и цель. Целью может быть
    только другой доступный проект того же пространства. Слияние присваивает
    задачам новые ключи с префиксом цели и закрывает исходный проект в одной
    операции. При ошибке перенос не происходит. Ответ содержит соответствие
    старых и новых ключей keyMap; слияние свыше 10 000 задач отклоняется,
    чтобы размер ответа был ограничен. Привязка задач к спринтам очищается.
    Задачи, уже лежащие в корзине, тоже переходят в целевой проект и остаются
    доступными для восстановления; они входят в число задач в просмотре и лимите.
  • Удаление проекта: если в нём есть открытые задачи или доски, запрос
    вернёт конфликт с их количеством. Рекурсивное удаление переносит проект,
    все открытые задачи и доски в корзину одной операцией. Сначала восстановите
    проект, затем нужные задачи и доски по отдельности. Пока проект в корзине,
    добавлять в него компоненты и версии нельзя.
  • Видимость: проект бывает namespace (виден всем в namespace) или
    private (создатель, лид, явные участники, админы). Приватность каскадится
    на задачи проекта везде — доски, поиск, аналитика. Создавать доски и спринты
    внутри приватного проекта могут только его участники.
  • Приватность на уровне задачи: эпик (или любую задачу) можно дополнительно
    пометить приватной со своим списком участников; дети наследуют. Закрытые
    задачи скрыты везде, включая отчёты. Поиск, компактные списки, граф связей,
    дерево подзадач и связи тест-кейса показывают только доступные задачи. При
    клонировании недоступные дочерние задачи и связи не копируются.
  • Связи с тест-кейсами: задачу можно связать только с существующим открытым
    тест-кейсом того же пространства. Повторное связывание сохраняет прежнюю
    связь. После отвязки она исчезает из карточки задачи и очищается по истечении
    настроенного срока хранения.
  • Workflow: выберите пресет (kanban / simple / bugflow) или настройте на
    проект в Настройки → Workflow, при желании — с переопределением по типу задачи
    (схема как в Jira: поток по умолчанию плюс, например, Bug flow для багов).
    Доска показывает колонки потока по умолчанию; карточка, чей тип идёт по другому
    потоку, стоит в колонке своей полосы (к выполнению / в работе / готово). Внутри
    задачи список статусов и быстрые переходы берутся из воркфлоу её типа — вам
    никогда не предложат переход, который трекер отклонит. Недопустимые колонки
    затемняются при перетаскивании — с учётом типа карточки.

Типы задач

Встроенные типы: Bug, Story, Task, Epic, Sub-task. Каждая карточка,
строка списка и сама задача показывают тип цветным значком (жук, закладка, галочка,
молния, список) — эпик от бага отличается с первого взгляда; эпики агрегируют детей.

Смена типа. Завели баг как задачу? Откройте задачу: контрол Тип — первый в
строке статуса. Нажмите и выберите новый тип — он сохраняется сразу, а изменение
попадает в историю задачи. Действуют те же правила иерархии, что в Jira: подзадаче
нужен родитель (сначала задайте его), у эпика родителя быть не может, задача, у
которой уже есть подзадачи, не может стать подзадачей, а текущий статус должен
существовать в воркфлоу нового типа — иначе трекер подскажет, что поменять сначала.

Доска

Одна колонка на статус workflow, drag-and-drop между колонками (под контролем
workflow; закрывающие переходы спрашивают резолюцию — как в Jira).

Быстрые пути на доске:

  • Быстрое создание: слот + Добавить задачу внизу каждой колонки —
    введите заголовок, Enter.
  • Быстрое редактирование карточки: клик по пипу приоритета — меню
    приоритетов; клик по аватару — выбор исполнителя (участники workspace
    появляются по фокусу, свободный id/email по Enter, «Снять исполнителя»
    одним кликом); двойной клик по заголовку — переименование на месте
    (Enter сохраняет, Esc отменяет — одиночный клик по-прежнему открывает
    карточку).
  • Массовые действия: отметьте карточки чекбоксами — плавающая панель
    предлагает статус / приоритет / спринт / исполнителя / метки / удаление.
  • Прогресс эпика: карточка эпика несёт полосу прогресса
    (готово / всего детей).
  • Закрытие эпика: сначала завершите дочерние задачи. Переход в конечный
    статус отклоняется, пока хотя бы одна из них открыта, в том числе при массовом переносе.
  • Сворачивание колонок: шеврон в шапке колонки сворачивает её в узкую
    полоску (запоминается на проект); клик по полоске разворачивает.
  • WIP-лимиты: клик по счётчику колонки задаёт мягкий лимит — счётчик
    краснеет при превышении.
  • Клавиатура: карточки фокусируемы — ↑/↓ внутри колонки, ←/→ между
    колонками, Enter открывает задачу, Space выделяет. c — новая задача,
    / — фокус в поиск.
  • Группировка: свимлейны по исполнителю или статусу.

Дорожная карта, таймлайн и календарь

Помимо доски, списка и бэклога — три планировочных представления:

  • Дорожная карта — по строке на эпик: прогресс-бар и читаемая сводка
    (готово/всего дочерних задач с процентом и график). Эпик без собственных дат
    наследует диапазон своих детей (самый ранний плановый старт → самый поздний
    дедлайн), поэтому достаточно запланировать сами задачи; собственные даты
    эпика всегда важнее. Задача считается дочерней, когда у неё выставлен
    родитель — этот эпик.
  • Таймлайн — диаграмма Ганта по задачам с датами. Масштаб — кнопками на
    панели или Ctrl + колесо мыши (с якорем на курсор); при приближении
    диаграмма прокручивается по горизонтали, названия задач остаются закреплены
    слева, а пустую область можно перетаскивать для панорамирования. Деления оси
    подстраиваются — от годов до отдельных дней. Перетащите полосу, чтобы
    перенести задачу; потяните за край — изменится только старт или дедлайн.
  • Календарь — сетка месяца; задачи попадают на день дедлайна. Выходные
    затенены; наведите на любой день и нажмите переключатель в его углу, чтобы
    отметить командный выходной (или сделать субботу рабочей) — настройка
    общая для всей команды проекта, а в шапке виден счётчик рабочих дней месяца
    для оценки капасити. Клик по дню создаёт задачу с этим дедлайном.

Бэклог и поиск

Вид «Бэклог» — плоский список тех же задач. Строка поиска понимает обычный
текст и MQL (Mockarty Query Language) — JQL-подобные запросы с
автодополнением полей, операторов и значений.

Спринты

Создавайте спринты, перетаскивайте задачи, затем Старт и позже
Завершить из шапки доски (незавершённые задачи предлагают перенос).
Стори-поинты живут на задаче; кнопка Прогноз на активном спринте
анализирует committed/completed поинты, оставшиеся дни, блокеры и
неназначенные/неоценённые задачи — и отвечает «успеваем ли?» с рекомендацией.

В одном проекте одновременно может быть активен только один спринт. Перед
запуском следующего завершите или отмените текущий; конфликтующий запуск
вернёт ошибку.

Старт и завершение спринта запускают триггеры автоматизации Спринт начат и
Спринт завершён. Оба проверяют правило для каждой задачи спринта —
действия правил (назначить, сменить статус, прокомментировать, уведомить…)
работают с задачей, поэтому одиночному срабатыванию «на спринт» просто нечего
делать. Типичные правила: прокомментировать всё, что уехало в релиз, при
завершении спринта; назначить оставшиеся без исполнителя при старте. При завершении
спринта в ответе приходит число задач, поставленных на проверку правил.
Проверка выполняется асинхронно; при ошибке она может повториться.

Задача

Клик по карточке открывает задачу: rich-text описание с вложениями и
inline-картинками, комментарии с @-упоминаниями, лента активности, ворклог с
таймером, метки, компоненты, версии исправления/затронутые, срок, наблюдатели
и голоса.

Задача открывается в спокойном режиме просмотра — без рамок полей, только
содержимое. Клик по карандашу в верхней панели или просто по любому полю
включает редактирование; кнопка Сохранить остаётся неактивной, пока ничего
не изменено. Живые виджеты (комментарии, чек-лист, роли, ворклог, спринт)
применяются сразу и в сохранении не нуждаются.

Описание в режиме просмотра отображается как форматированный Markdown. Клик
по описанию или его карандашу открывает исходный текст; длинное описание
прокручивается внутри редактора и на компьютере, и на телефоне. Готово
возвращает форматированный предпросмотр без сохранения, а переключатель
просмотра в верхней панели тоже закрывает редактор. Чтобы записать изменения,
нажмите Сохранить.

  • Назначить на меня: одна ссылка рядом с полем «Исполнитель» подставляет вас;
    нажмите Сохранить. Выбор по имени (люди и агенты) остаётся в самом поле.
  • Роли: назначайте разработчика, тестировщика и аналитика (и кастомные
    роли проекта) из одной компактной строки — роль слева, поиск человека
    справа, кнопка +.
  • Связи: линкуйте задачи (блокирует / заблокирована / связана / дубликат),
    задавайте родителя, добавляйте подзадачи. Кнопка Граф рисует
    интерактивный граф зависимостей — рёбра блокировок красные; клик по ноде
    подсвечивает транзитивную цепочку блокеров (всё, что должно завершиться
    раньше), двойной клик открывает задачу.
  • Быстрые переходы: кнопки в один клик для всех статусов, разрешённых
    workflow из текущего.
  • Переместить / Клонировать / Зеркалить: перенос в другой проект,
    клонирование (с подзадачами), зеркало во внешний трекер (см.
    Внешние трекеры).

Авто-заведение из тестирования (intake)

Трекер умеет заводить задачи автоматически из аномалий платформы: security-
сканы, упавшие тест-раны и тест-планы, перф-регрессии, результаты хаоса и
дрифт контрактов. Настройте intake-правила на namespace (источник, минимальная
серьёзность, glob цели, целевой проект, маппинг приоритета, метки).
Повторные аномалии дедупятся на существующую задачу — она переоткрывается и
получает комментарий о повторении вместо дубликата.

Интеграция со SCM

Публичный вебхук принимает события GitHub / GitLab: пуши, pull/merge-реквесты
и пайплайны. Коммиты и ветки, названные по ключу задачи, линкуются к ней сами,
fix-глагол в сообщении коммита закрывает задачу, статус последнего пайплайна
виден на тикете. Каждая связь показывается на задаче строкой: иконка
git-системы, короткий SHA коммита или номер MR, ветка, тема коммита /
заголовок MR и живой статус-бейдж (opened / merged / closed у MR, success /
failed / running у пайплайнов) — при наведении видны полные детали.
Merge-реквест никогда не закрывает задачу автоматически — по одной задаче
часто идёт несколько MR; при вливании слинкованного MR его бейдж просто
переключается на merged.

Аналитика

По проекту: burndown, velocity, кумулятивный поток (CFD), метрики
доставки (lead / cycle time, недельный throughput), роадмап эпиков с
агрегацией детей и командный вид (по людям: open/in-progress/done, поинты,
средний cycle time). Метрики трекера доступны и как источники
виджет-дашбордов. Закрытые (приватный эпик) задачи исключаются из всех
агрегатов для не-участников.

Портфель объединяет прогресс выбранных проектов, в том числе из другого
namespace после разрешения его владельца. Разрешение не открывает приватные
проекты и задачи: их правила участия сохраняются. При ошибке чтения неполная
сводка не возвращается.

API

База: /api/v1/namespaces/{namespace}/issuetracker. Основное:

Метод Путь Назначение
GET/POST /projects Список / создание проектов.
GET /projects/:id/merge-preview?target=:targetId Проверка цели и числа задач перед слиянием; цель из другого пространства даёт 404.
POST /projects/:id/merge Слияние с телом {"targetProjectId":"..."}; возвращает keyMap и sourceClosed. Если префикс цели изменился, ответ 409; при числе задач свыше 10 000 — 400.
GET/POST /issues Список (фильтры: projectId, sprintId, search) / создание.
PUT /issues/:id Обновление (неуказанные поля сохраняются). "type": "bug" меняет тип задачи; нарушение правил иерархии даёт 422 с code (subtask_needs_parent, epic_cannot_have_parent, subtask_cannot_have_children, status_not_in_workflow + allowedStatuses).
POST /issues/:id/move Переход по workflow. Закрытие родителя с открытыми детьми даёт 422 (children_not_done); недоступная проверка детей — 503.
POST /issues/bulk/update · /bulk/assign · /bulk/move … Массовые операции меняют только доступные вам задачи, включая унаследованную приватность эпика. Тело bulk/move: ids, status, rank, resolution (обязателен при закрытии для проектов с требованием), throughIntermediate (авто-проход по workflow). Отказы по отдельным задачам возвращаются в failed.
GET /issues/:id/graph Окрестность связей (родитель, дети, типизированные рёбра).
POST /issues/:id/relations Связи (kind: blocks, blocked_by, relates_to, duplicates).
GET/POST /sprints Спринты; /sprints/:id/burndown и /sprints/:id/forecast — burn-чарт и прогноз рисков.
GET /projects/:id/velocity · /cfd · /metrics · /roadmap · /team Аналитика проекта.
GET/POST /portfolios Список / создание сохранённых портфелей.
GET /portfolios/:id/rollup Сводка доступного прогресса проектов портфеля.

Задача создаётся словом — "type": "bug" (а также story, task, epic, subtask), —
и любое чтение возвращает то же слово в поле type: чтобы понять, что за задача перед
вами, не нужно идти за идентификатором. У пользовательского типа проекта такого слова
нет — там ответ даёт typeId.

AI-агенты

Трекер полностью управляем AI-агентами — те же операции, что человек делает на
доске, доступны как MCP-тулы issuetracker_*, а встроенная чат-персона
task_tracker маршрутизирует запрос на естественном языке в нужный тул. Агент
проводит весь цикл разработки по задаче:

  1. Взять работу — issuetracker_issues_next возвращает следующую незаблокированную
    задачу, назначенную на агента.
  2. Сориентироваться — issuetracker_issues_get + issuetracker_issues_comments
    (тред обсуждения) + issuetracker_issues_activity (история статусов/назначений),
    чтобы действовать по тому, что уже решено, а не наугад.
  3. Сделать + отчитаться — двигает вперёд через issuetracker_issues_move (workflow
    энфорсится: нелегальный переход или закрытие без требуемой резолюции отклоняются с
    перечнем валидных значений), пишет что сделал через issuetracker_issues_comment,
    логирует время через issuetracker_worklog_log.

Ведение бэклога и спринтов так же агент-достижимо: декомпозиция эпика
(issuetracker_issues_batch_create), управление связями (issuetracker_issues_link
/ _relations / _remove_relation), планирование и прогон спринта
(issuetracker_sprints_create, _sprint_set_status для старта, _sprint_complete
для закрытия с переносом незавершённого), чтение аналитики (_project_velocity,
_sprint_burndown, _sprint_forecast). Аномалии прогонов
security/test/perf/chaos/contract авто-заводятся как задачи через intake-правила
(issuetracker_intake_rules_set), так что доска поддерживает себя актуальной без
человека в цикле.