
mxBoard
Канбан-доска для ИИ-агентов. Пакет MODX 3, в котором из коробки есть доска в менеджере, REST-API и MCP-эндпоинт: агенты (Claude Code, Codex, opencode) подключаются к доске по URL и токену — локально ставить нечего.
Пакет универсальный. Он не знает ни про какие конкретные боты и трекеры: всё, что специфично для вашей инсталляции, вешается плагином на события mxBoard и хранится в произвольном поле meta у карточки.
Зачем
Когда агентов несколько, а задач много, кто-то должен понимать, что взято, что сделано и кому верить. mxBoard — общее состояние работ: агент берёт назначенную карточку, двигает её и отчитывается, человек видит доску глазами и закрывает задачи.
Ключевая идея — правила проверяются на сервере, в едином сервисном слое, а не в интерфейсе. Каким бы каналом ни пришёл запрос (менеджер, REST, MCP), работает один процессор: агент не может «найти канал послабее» и, например, закрыть чужую задачу.
Что внутри
- Иерархия отдел → проект → задача. Отдел = группа пользователей MODX; проект = доска с колонками-стадиями; задача типизирована.
- Типы задач с обязательными полями — формализация постановки (багфикс: где/что/как воспроизвести/как должно быть) + опциональная ИИ-проверка полноты перед сохранением.
- Модель прав относительно карточки: автор ↔ исполнитель, правила перехода на колонке, «закрывает только автор», запрет самоаттестации, дедлайны с оспариванием, подзадачи-блокеры.
- Учёт времени: плановая трудоёмкость в часах от автора (исполнитель её оспаривает, а не правит) и факт, который доска считает сама — от входа в стартовую стадию до закрытия.
- Два канала для агентов — MCP и REST поверх одного сервисного слоя.
- Живые уведомления и живое обновление в админке (SSE): доска и открытая карточка сами подтягивают чужие изменения. Плюс лента
/eventsдля внешних оркестраторов. - Киоск-доступ «только канбан» — готовая политика доступа
mxBoard Only.
Требования
- MODX Revolution 3.x (xPDO 3), контекст менеджера.
- PHP 8.1+, MySQL/MariaDB (InnoDB).
- VueTools — доска использует общий Vue 3 + PrimeVue, подключаемый через Import Map этого пакета (тема Aura и PrimeIcons приходят оттуда же). Без VueTools доска покажет понятное сообщение и не запустится.
Установка
Поставьте transport-пакет через Пакеты → Установить пакет в менеджере MODX. Установка идемпотентна — повторная установка/upgrade не затирает то, что вы могли донастроить руками.
Что создаётся при установке
Резолверы пакета делают систему пригодной к работе «из коробки»:
| Что | Подробности |
|---|---|
| Таблицы БД | Все сущности mxBoard (mxboard_*). См. Модель прав. |
| Группа и отдел | Группа пользователей MODX mxBoard, помеченная как отдел «Отдел разработки». |
| Типы задач | bugfix (где, что, как воспроизвести, как должно быть, окружение, severity), feature (цель, описание реализации, критерии приёмки, контексты, зависимости) и research (что выяснить, формат результата). Состав объявлен одним файлом core/components/mxboard/schema/task-types.php. См. Типы задач. |
Проект default | «Основной проект» с колонками backlog → to_start → plan → in_progress → review → done: два ручных гейта (старт и приём плана) — под работу с агентами. У каждой стадии есть описание — инструкция тому, чей ход наступил. Плюс глобальный шаблон колонок. |
| Медиа-источник | Выделенный источник файлов «mxBoard» для вложений; его id пишется в настройку mxboard.media_source. |
| Политика доступа | mxBoard Only — пресет «только канбан» для киоск-доступа (никому не назначается автоматически). См. Интеграция → Киоск-доступ. |
| Плагины | mxBoardProfileToken (виджет выдачи токена в профиле, только sudo) и mxBoardKiosk (редирект киоск-групп на доску). |
| События | 11 системных событий mxbOn* для интеграции. См. Интеграция. |
Обновление существующей установки
Резолверы намеренно не трогают то, что вы настроили руками: они только добавляют недостающее. Отсюда два следствия, о которых стоит знать при обновлении:
- Флаг «Стартовая» (
is_start) на стадии не проставляется автоматически. Пока он не отмечен, фактическое время задач не замеряется. Отметьте нужную стадию сами — Структура → стадии проекта (в коробочном наборе этоto_start). См. Модель прав → План и факт. - Системные настройки не перезаписываются. Если нужен новый дефолт (например
mxboard.group_admin_authority = 1), выставьте его вручную. См. Настройки.
Первый запуск
Откройте Компоненты → mxBoard — доска проекта default откроется сразу. Дальше — Быстрый старт: отдел, пользователи, токен для агента и первая задача.
Грабли, о которых стоит знать
- OPcache в PHP-FPM живёт отдельно от CLI. После установки/обновления пакета из консоли веб-сайт может продолжать выполнять предыдущую версию классов — сбросьте OPcache веб-запросом.
- Поле порядка называется
position, а неrank. В MySQL 8RANK— зарезервированное слово; xPDO не квотит его вORDER BYи молча возвращает пустую выборку. Заложено в схему — важно помнить при доработках.
