Инструмент aeman для управления инженерными задачами
Команда разработчиков облачной платформы Cozystack представила aeman — систему ежедневного планирования, разработанную специально для инженерных коллективов. Проект базируется на функционале GitHub Projects v2 и переосмысливает концепцию рабочего стола: каждый инженер видит только текущие задачи, тогда как отложенные пункты скрываются до нужной даты.
Инструмент написан на языке Go, веб-интерфейс реализован с использованием TypeScript и React. Проект распространяется под свободной лицензией Apache-2.0.
Ключевые возможности aeman
- Персональная доска (Me): агрегирует задачи из всех команд на выбранный день. Задачи распределяются по четырем цветовым зонам: срочные («сделать сегодня»), стандартные, внеплановые и резервные. Каждая карточка оснащена ползунком прогресса (0–100%), статусом (Review, Locked, Recurrent, Done), счетчиком «возраста» и встроенными ссылками на issue или PR.
- Командная доска (Team): предоставляет матрицу «сотрудник — зона задач» с поддержкой режима «View as» для контроля прогресса конкретного инженера лидером группы.
- Гибкое планирование: реализованы операции «carry-over» для переноса незавершенных задач в новый день и кнопки быстрого откладывания («+1 день», «+1 неделя»).
- Недельный обзор: планирование с привязкой к контрольным точкам (среда, пятница) и общим прогресс-баром для всей команды.
- Рецензирование и подзадачи: автоматизированный процесс освобождения задачи после завершения ревью, а также поддержка подзадач с наследованием прогресса от родительского элемента.
- Аудит: детальный журнал действий для каждой карточки, позволяющий отслеживать историю изменений и строить статистику.
Архитектурные особенности
Главная особенность aeman заключается в полном отсутствии собственной базы данных. Роль хранилища выполняет GitHub Projects v2. Все атрибуты задач — зоны, прогресс, спринты — являются полями проекта, которые инструмент создает автоматически. Пользователь может в любой момент вернуться к штатному интерфейсу GitHub без потери данных и необходимости сложной миграции.
Проект поставляется как единый исполняемый файл с JSON REST API, WebSocket-потоком обновлений и MCP-сервером. Дизайн API вдохновлен Kubernetes: ресурсы типизированы (Card, Sprint, Ordering, Presence), а клиент работает по схеме «list + watch», что обеспечивает обновление данных на всех экранах в реальном времени с задержкой около секунды.
Оптимизация работы с API
Чтобы избежать задержек при выполнении GraphQL-мутаций GitHub, запись организована по методу «write-behind». Изменения моментально попадают в серверный кэш, а в GitHub отправляются фоновой очередью с объединением последовательных правок (DeltaFIFO). Это исключает «откаты» интерфейса при медленной работе API GitHub, при этом сам сервис остается единственным источником истины.
Интеграция с ИИ
Встроенный MCP-сервер открывает возможности для взаимодействия с AI-агентами (например, Claude). Агенты могут самостоятельно создавать карточки, вести заметки и выполнять «carry-over» в рамках тех же правил доступа, что и люди.
Для локального запуска aeman достаточно аутентифицированного GitHub CLI. Интерфейс разворачивается на 127.0.0.1:8765, автоматически настраивая поля в выбранном проекте. Для командной работы предусмотрены Docker-контейнеры с авторизацией через GitHub OAuth и Helm-чарт для Kubernetes.






