52 lines
4.8 KiB
Markdown
52 lines
4.8 KiB
Markdown
## Why
|
||
|
||
Владелец 23.10.2026 наметил для модуля jira спринты и бэклог «как в Jira». 24.10.2026 (brainstorming #108) уточнил:
|
||
в первую очередь — визуализация в вебе, похожая на Jira (бэклог и доска спринта, для kanban-досок — kanban), и
|
||
действия из чата через MCP: создавать спринты, запускать и завершать их, ранжировать задачи в бэклоге. Веб — только
|
||
просмотр. Нужна история закрытых спринтов и оценки: в AURORA пока не оценивали, владелец хочет ретроспективно прикинуть
|
||
оценки по прошедшему спринту, чтобы дальше планировать покером.
|
||
|
||
Сейчас хаб знает спринт задачи только как имя строкой, у задач закрытых спринтов имя теряется; ни спринтов (даты,
|
||
состояние, цель), ни ранга, ни оценок, ни колонок доски в зеркале нет.
|
||
|
||
## What Changes
|
||
|
||
- **Зеркало (схема v9):** спринты досок (`jira_sprint`), членство задач во всех их спринтах (`issue_sprint`), колонки
|
||
и kanban-бэклог доски (`jira_board`), у задачи — ранг (`rank`) и оценка (`story_points`).
|
||
- **Агент v15** (design-only change `agent-v15-sprints` в jira-agent): в `refresh` читает настройки досок, все спринты,
|
||
ранг, story points и все спринты задачи; выполняет новые команды.
|
||
- **Команды:** `ensure_sprint_meta` (создать или поправить спринт: имя, даты, цель), `ensure_sprint_state` (запустить
|
||
или завершить, при завершении — куда невыполненные), `ensure_rank` (выше/ниже другой задачи); `ensure_fields` —
|
||
поле `story_points`.
|
||
- **API:** `GET /agile?project=` — доска, спринты (активные, будущие, закрытые) со своими задачами и суммами оценок,
|
||
бэклог, задачи kanban-доски.
|
||
- **MCP `sdlc-jira`:** `sprints`, `sprint`, `backlog` — чтение с оценками и суммами; новые типы команд — через
|
||
`batch_create` с подсказками параметров.
|
||
- **Веб модуля jira:** страницы «Бэклог», «Спринт» (scrum) и «Kanban» (kanban), только просмотр; пункты меню — по типу
|
||
доски проекта, без доски — нет; «Доска» → «Связи» (`/app/jira/links`, прежние адреса перенаправляют).
|
||
|
||
## Non-Goals
|
||
|
||
- Правки Jira из веба (перетаскивание, кнопки спринтов, смена статуса) — веб только смотрит.
|
||
- Отчёты Jira (burndown, velocity), покер планирования, эпики на бэклоге отдельной панелью, версии (fix version).
|
||
- Статус задачи на момент закрытия спринта (по журналу) — «выполнено» по текущему статусу.
|
||
- Соседи (задачи других проектов) на новых экранах.
|
||
- Подъём `min_agent_version` — владелец после выкатки v15.
|
||
|
||
## Anti-Goals
|
||
|
||
- Экраны, которые выглядят как Jira, но расходятся с ней по составу: спринт с задачами не того проекта, бэклог с
|
||
выполненными задачами, порядок не по рангу Jira.
|
||
- Команда спринта, которая при повторе делает второй спринт или второй перенос.
|
||
- Пункт меню, ведущий на пустую страницу у проекта без доски.
|
||
- Потеря работы хаба со старым агентом v14 до выкатки v15.
|
||
|
||
## Impact
|
||
|
||
- Хаб: `modules/jira/{schema,mirror,api,mcp,commands,hooks,settings}.py`, `core/db.py` (v9), веб
|
||
`web/src/modules/jira/**` (новые страницы, переименование, меню), спеки `data-model`, `commands`, `agent`, `hub-api`,
|
||
`mcp`, `web-app`.
|
||
- jira-agent: v15 (`src/agent.py`), свой design-only change.
|
||
- Выкатка: хаб (kickstart, `make web`, `/mcp` reconnect) → `agent publish` v15 → проверка полей Jira банка →
|
||
`field_ids.story_points`, если агент поле не нашёл.
|