Andrey Epifancev 4a5d6dbb90 docs(openspec): change hub-modules — ядро и модуль jira (#87)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-23 18:31:31 +04:00

49 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
Хаб перестаёт быть только мостом Jira. Следом за ним идёт модуль вики (evaTeam Wiki: дерево страниц проекта
Markdown-файлами, MCP для сверки решений с тем, что зафиксировали аналитики) и спринты/бэклог в модуле Jira. Сейчас весь
код — один плоский пакет, где «команда», «агент», «проект» и «зеркало Jira» переплетены: очередь знает про `refresh`,
доски и вложения, `api` — одна таблица из 35 маршрутов, MCP — один сервер на всё.
Решения владельца 23.10.2026 (brainstorming, jira-hub#87):
- хаб становится **sdlc-hub**: ядро + модули, Jira — первый модуль, вики — второй;
- у вики будет **отдельный агент** (не jira-agent) и **отдельный MCP** — «чтобы не перегружать»;
- **сначала перестраиваем код** под старым именем; переименование (репозиторий `aep/jira-hub`, launchd
`ru.aepif.jira-hub`, `~/.local/share/jira-hub`, имя MCP `jira-hub`, CLI) — позже, отдельной задачей, но помним о нём.
## What Changes
- **Ядро и модуль jira в коде.** Пакет делится на `jira_hub/core/` (база и миграции, настройки, проекты, хранилище
файлов, реле, релиз агента, очередь пакетов, HTTP-сервер и авторизация, общий слой MCP, CLI) и
`jira_hub/modules/jira/` (зеркало, журнал изменений, вложения, контракт команд, свои маршруты, инструменты MCP,
импорт). Модуль подключается к ядру описанием `Module`: таблицы, типы команд и обработчики очереди, маршруты, настройки,
фоновые работы, инструменты MCP.
- **Очередь без знания о Jira.** Механика пакетов, выдачи, довыдачи, отчётов и подтверждения остаётся в ядре; всё, что
сейчас завязано на конкретные типы (`refresh`, `ensure_attachment`, `fetch_attachment`, `ensure_sprint`), уходит в
обработчики модуля jira.
- **MCP по модулю.** `jira-hub mcp jira [--project <метка>]` — сервер модуля jira; `jira-hub mcp [--project <метка>]` без
модуля — то же самое, как сейчас (записи в `.mcp.json` awp-ca и user scope не меняются).
- **Веб по модулю.** Страницы «Доска», «Задачи», «Лента», карточка и обновление из Jira переезжают в
`web/src/modules/jira/`; оболочка собирает страницы, пункты боковой панели и действия из списка модулей.
- **Документация.** `ARCHITECTURE.md` и `CLAUDE.md` описывают ядро и модули.
Внешнее поведение не меняется: те же адреса HTTP API и веба, те же инструменты MCP, та же схема базы (v6), тот же
протокол агента. jira-agent не трогается.
## Non-Goals
- Переименование в sdlc-hub (репозиторий, пакет `jira_hub`, launchd, каталог данных, имя MCP, CLI `jira-hub`).
- Модуль wiki, eva-agent, вкладка вики в вебе.
- Несколько видов агентов (токен, `agent_status`, релиз и `claim` по виду агента) — в change модуля wiki, когда появится
второй агент.
- Спринты и бэклог.
- Новые возможности API, MCP или веба.
## Anti-Goals
- Живой агент v14 перестал получать команды, обновляться или отчитываться.
- Запись `jira-hub` в `.mcp.json` awp-ca или в user scope перестала работать или потеряла инструменты.
- Сменились адреса веба (`/app/board`, `/app/issues`, `/app/feed`, `/app/issues/{key}`) или ключи `localStorage`.
- Миграция схемы или перенос файлов в каталоге данных.
- «Большой взрыв»: одна правка на весь пакет, которую нельзя проверить по частям; набор тестов красный между шагами.