| name | aatex-navigation |
| description | Навигация по ЦУП ААТех — пространства, доски, колонки. Применяй когда пользователь спрашивает "какие у меня доски", "покажи пространства", "что в колонке X", "где найти доску Y", или когда нужно получить boardId/spaceId/columnId перед созданием/перемещением карточки. |
Навигация по ЦУП ААТех
Когда использовать
- Начало любого сценария с карточками (нужны
boardId, spaceId, columnId)
- Пользователь спрашивает: «какие доски», «покажи пространства», «что на доске»
- Поиск нужной доски по названию («найди доску Закупки»)
- Проверка ограничений колонки (какие типы карточек разрешены)
Иерархия
Organization
└── Space (пространство — тема работы)
└── Board (доска — канбан)
└── Column (колонка — статус)
└── Card (карточка — задача)
Инструменты
| Инструмент | Параметры | Что возвращает |
|---|
list_spaces | — | Пространства текущей организации |
list_boards | spaceId | Доски в пространстве |
get_board_columns | boardId | Колонки (JSONB) + title доски |
list_all_boards | — | Все доски по всем пространствам: {id, title, boardType, spaceId, spaceName} |
archive_board | boardId | Soft-delete (без активных карточек) |
Сценарии
1. «Покажи доски»
Самый быстрый способ — list_all_boards. Он вернёт плоский список всех доступных досок с именами пространств. Не итерируй list_spaces → list_boards если пользователь не уточнил пространство.
2. «Найди доску по названию»
list_all_boards → фильтруй по title (case-insensitive contains)
Если нашёл одну — запомни её id. Если несколько — уточни у пользователя.
3. «Какие колонки на доске»
get_board_columns(boardId) → board.columns: [{id, title, isFinalColumn, attachedBoardId, allowedCardTypes?}]
Обрати внимание:
isFinalColumn: true — финальная колонка (завершение работы, автоматизация)
attachedBoardId — колонка каскадит карточки на dispatch-доску
allowedCardTypes — ограничения по типам карточек в этой колонке (если задано)
4. Получить columnId для создания карточки
1. list_all_boards → найти primary доску
2. get_board_columns(boardId) → выбрать подходящую колонку
3. Запомнить columnId + проверить allowedCardTypes
Важные особенности
Primary vs Dispatch
| Тип | Создавать карточки? | Описание |
|---|
primary | ДА — только здесь | Основная доска, хранит карточки |
dispatch | НЕТ | Отображает карточки из primary через каскад |
personal | ДА | Персональная доска пользователя |
card.boardId всегда указывает на primary. Если нужно переместить карточку на dispatch — используйте primary колонку с attachedBoardId, каскад сработает автоматически.
Доступ к доскам
- Доска с пустым
userIds (не personal) — видна всем в орге
- Доска с заполненным
userIds — только перечисленным + owner/admin
- Personal board (
userId set) — только владельцу + owner/admin
- MCP-клиент видит ровно те же доски, что пользователь в UI
Архивация
archive_board работает только если на доске нет активных (не-архивных) карточек. Если есть — предложи пользователю:
- Массово заархивировать карточки:
bulk_move_cards в колонку + archive_card
- Или переместить на другую доску
Типичные ошибки
| Ошибка | Причина |
|---|
Board not found | ID неверный или доска в другой орге |
Access denied | Нет в userIds доски |
Board has active cards | Нельзя архивировать — сначала убери карточки |
Пример (типичное начало сценария)
Пользователь: «Создай карточку "Закупка подшипников" в Производстве»
1. list_all_boards
→ ищу spaceName="Производство" + boardType="primary"
→ нашёл boardId=42, spaceId=7
2. get_board_columns(42)
→ выбираю колонку "Новые" columnId="col_abc123"
3. (перехожу к create_card с найденными ID)