6.6 KiB
6.6 KiB
Why
Владелец работает в одном Jira-проекте AURORA и разграничивает свои проекты метками. Сейчас мост знает один такой
проект — AWPCA (АРМ КА): базовая JQL project = AURORA AND labels = AWPCA и одна доска board_id = 4216 зашиты в
настройки. Нужен второй проект — STOCKS_DRRK — со своей доской Jira (возможно, канбан без спринтов) и своим
репозиторием, откуда Claude ведёт его задачи через MCP. Дальше проектов может стать больше.
Решения владельца 19.10.2026 (brainstorming, jira-hub#61):
- полноценный вариант: проект — сущность хаба, а не фильтр поверх общей JQL;
- у каждого проекта своя доска Jira, у неё может не быть спринтов (канбан);
- сессия Claude в репозитории проекта видит и меняет только задачи своего проекта; связи между проектами не нужны;
- веб-приложение одно, проект переключается выпадающим списком в шапке (вариант A из макетов), в его конце — «+ Новый проект…»;
- проект заводит человек из веб-приложения или Claude через MCP; Claude затем сам прописывает в репозитории, с каким проектом работает его сессия;
- обновление из Jira — одним запросом по всем проектам: метки всех проектов собираются в одну JQL; так и для
автообновления, и для кнопки «Обновить из Jira», и для
refreshиз MCP; - пока только создание проекта: переименования и удаления нет.
What Changes
- Проекты в хабе. Новая таблица
project(схема v4): метка Jira (ключ, не меняется), название, номер доски Jira (может отсутствовать), тип доски (scrum/kanban, определяет агент). МаршрутыGET /projects,POST /projects. Миграция заводит проект AWPCA «АРМ КА» с доской 4216 из нынешних настроек. - Базовая JQL собирается из проектов —
project = <project_key> AND labels in ("<метка>", …); настройкиbase_jqlиboard_idуходят изsetting. Создание проекта ставит полныйrefresh. - Разрез по проекту в API.
GET /board?project=иGET /issues?project=отдают задачи проекта и их соседей (задачи других меток, связанные с ними, и их эпики) с признакомneighborотносительно проекта. - Пакет проекта.
POST /batchesпринимаетproject: хаб добавляет метку проекта вensure_issue, запрещает чужие метки проектов и команды над задачами вне проекта; пакет помнит свой проект (batch.project). - Спринты по доске проекта.
ensure_sprintполучаетboard_idдоски проекта задачи от хаба; на канбан-доске и без доски — 422 при постановке.refreshполучает от хаба список досок проектов; агент собирает спринты со всех scrum-досок и сообщает тип досок, тип которых хабу ещё не известен. - MCP с привязкой к проекту.
jira-hub mcp --project <метка>: инструменты задач и пакетов работают в разрезе проекта. Без привязки доступны только список и создание проектов и служебные инструменты. Новые инструментыprojects,project_create(ответ — готовый фрагмент.mcp.jsonдля репозитория проекта). - Веб-приложение. Выпадающий список проектов в шапке, форма «Новый проект», проект в адресе (
?project=) и в памяти браузера; доска и список задач — по выбранному проекту; раскладка доски хранится отдельно для каждого проекта, раскладка AWPCA сохраняется. - Агент v12 (отдельный PR в jira-agent): доски из параметров команд вместо настройки
board_id, тип доски.
Non-Goals
- Переименование, удаление проекта, смена его доски — позже.
- Свои для каждого проекта словари (
kind_labels,link_types,transitions_map,issue_types,closed_statuses) — Jira-проект один, словари общие. - Проекты в других Jira-проектах (кроме
project_key= AURORA). - Отдельное автообновление и отдельная кнопка «обновить» для одного проекта.
- Перенос задачи из проекта в проект (смена метки проекта) командами в разрезе проекта.
- Смена проекта внутри запущенной сессии MCP (только перезапуском с другим
--project).
Anti-Goals
- Задача одного проекта получила метку другого (или осталась без метки своего) из-за того, что сессия Claude не знала, в каком она проекте.
- AWPCA после выкатки потерял задачи, заметки, раскладку доски или историю синхронизаций.
- Сессия в репозитории одного проекта по умолчанию видит и меняет задачи другого.