## Why Просмотрщик «Спринт 2 линк» (`admin/sprint-2-links.html`, артефакт на claude.ai) — граф блокировок спринта с раскладкой по эпикам и датам, критическим путём и панелью проблем — работает на ручной выгрузке CSV из фильтра Jira. С 13.10.2026 в работе мост jira-hub/jira-agent: зеркало задач, связей и заметок обновляется из Jira командой `refresh` через очередь. Ручная выгрузка CSV больше не нужна: доска может читать зеркало хаба напрямую. Решения владельца 14.10.2026 (brainstorming): - вариант A: сначала живые данные на текущей одностраничной версии, затем отдельным change — веб-приложение на React (React + TypeScript + Vite, статика отдаётся хабом), где доска станет одной из страниц; API проектируется под него; - страницу открывают пока только на Mac mini; вход — клиентский токен хаба, вводится один раз и хранится в браузере (вариант 1; без исключений для 127.0.0.1 и без вшивания токена в страницу); - раскладка из старой страницы переносится существующими экспортом/импортом JSON. ## What Changes - **jira-hub**: - `GET /board` (клиентский токен) — согласованный снимок зеркала: задачи (включая эпики и соседей) с заметками `fact_status`/`work_kind`, связи, время последнего полного прогона; данные без преобразований; - `GET /` и `GET /links` — страница доски связей без токена (статический файл из пакета `src/jira_hub/web/links.html`); - страница — развитие `admin/sprint-2-links.html`: вход по токену, загрузка из `GET /board`, «Обновить из Jira» (пакет `refresh` с автором `viewer` и ожидание его), «Перечитать», импорт JSON в режиме хаба применяет только раскладку и фильтры; встроенная выгрузка CSV от 11.10.2026 удаляется; CSV-файл — запасной путь. - Спека `hub-api` — MODIFIED «Процесс и доступ» (исключение для статической страницы), ADDED «Снимок доски» и «Страница доски связей». ## Non-goals - Запись из страницы (перенос в спринт, срок, связи, исполнитель командами очереди) — change `viewer-edit`. - Веб-приложение на React — следующий change; эта страница в нём будет перенесена, не расширена. - Доступ со других машин сети, вход без токена, хранение раскладки в базе хаба. - Изменение логики доски (граф, раскладка, критический путь, проблемы, таблица, тема). - Переопубликация артефакта на claude.ai (спека migration: не переопубликовывается). ## Impact - `jira-hub`: `api.py` (маршруты `/board`, `/`, `/links`; отправка не-JSON ответа), новый модуль чтения снимка (или функция в `mirror`), `src/jira_hub/web/links.html`, тесты API, `ARCHITECTURE.md`, `CLAUDE.md`, README. - `admin/sprint-2-links.html` остаётся в `admin/` как история, не правится. - Контракт с агентом не меняется. Новых зависимостей нет. - Issue: aep/jira-hub#17.