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 маршрутизирует запрос на естественном языке в нужный тул. Агент
проводит весь цикл разработки по задаче:
- Взять работу —
issuetracker_issues_nextвозвращает следующую незаблокированную
задачу, назначенную на агента. - Сориентироваться —
issuetracker_issues_get+issuetracker_issues_comments
(тред обсуждения) +issuetracker_issues_activity(история статусов/назначений),
чтобы действовать по тому, что уже решено, а не наугад. - Сделать + отчитаться — двигает вперёд через
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), так что доска поддерживает себя актуальной без
человека в цикле.