Andrey Epifancev 30833a466a Архив OpenSpec: sprints-backlog (#108)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-25 15:24:17 +04:00

52 lines
4.8 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

## 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`, если агент поле не нашёл.