Задача

Разработать плагин для Mattermost версии 10.12.1 на языке Go. При вводе команды вида /task "Название" в чат должно отправляться интерактивное сообщение с тремя кнопками:

  • /task "Название" - генерация сообщения.

Функциональные требования

Интерактивное сообщение

  • После выполнения команды в канале появляется сообщение с тремя кнопками: Проверил, Выполнил, Проверил (две разные, названия условные).
  • Каждая кнопка должна отображать список пользователей, нажавших на неё.
  • Один пользователь может нажать на любое количество кнопок из трёх - его имя будет добавлено к соответствующему списку.

Поведение кнопок

  • При нажатии на любую из трёх кнопок в группе должно появляться/исчезать новое интерактивное поле - кнопка Сброс.
  • Кнопка Сброс должна отменять все отметки данного пользователя (убирать его имя из всех текущих кнопок) в данном сообщении.

Технические ограничения

  • Язык реализации: Go (совместимость с версией Mattermost не ниже указанной).
  • Плагин не должен менять стандартные функциональности и не мешать другим командам.
  • Данные о выборе должны быть привязаны к конкретной сессии команды и никуда не сохраняться (локально, клиентски).

Условия по стилю

  • Название задачи в команде может быть произвольным, без поддержки специальных символов.
  • Сообщение должно выглядеть как встроенный интерактивный элемент (используя кнопки Mattermost).

Дополнительно

  • Плагин не должен требовать дополнительных внешних баз данных или хранилищ.
  • Требуется простая тестируемость - возможность запустить команду и увидеть интерактивные кнопки.
  • Код должен поставляться с исходным текстом и базовым README по установке/сборке.