## Why Актуализация Jira-бэклога АРМ КА (проект AURORA, метка AWPCA) ведётся из этой машины, а доступ к Jira банка есть только у виртуалки (`192.168.0.112`). Рабочий цикл 11.10.2026: правка CSV и скрипта здесь → владелец копирует файлы в виртуалку через общую папку → запускает `jira_sync.py` → выгружает фильтр в CSV → копирует обратно → сверка. За вечер пять кругов, один закончился дублем задачи (AURORA-1588): ключи созданных задач жили в `new_tasks.csv` виртуалки, перенос в неправильную сторону создал задачу повторно. Владелец больше не хочет быть курьером, а CSV как источник истины себя исчерпал. Решения владельца 11.10.2026 (сессия brainstorming, `admin/jira-sync/next-session-bridge.md`): - единственный источник истины по задачам проекта — база на этой машине (Mac mini, `192.168.0.106`); виртуалка — клиент; - интерфейсы к базе — просмотрщик (UI, позже) и MCP (сейчас); CSV и `jira_sync.py` как CLI уходят; - модель изменений — гибрид: зеркало задач только для чтения, любая правка порождает команду в очереди (журнал, повторяемость); - темп запросов к Jira — требование первого порядка (429), политика темпа живёт в хабе, не в агенте; - хаб никогда не повторяет команды сам; каждая команда — желаемый результат, выполняется как «проверь, потом сделай»; - зеркало ограничено JQL `project = AURORA AND labels = AWPCA` (полный набор задач нашего проекта; AURORA шире), фильтры — на стороне приложения; - первая поставка — только ядро (база, хаб, агент, импорт, MCP); просмотрщик на живых данных и правки из UI — отдельные change'и; - по репозиторию на компонент: `jira-hub` (эта машина) и `jira-agent` (виртуалка), ремоуты — приватные в Gitea под `aep`. ## What Changes - **jira-hub** (новый репозиторий, Python 3.13, uv): SQLite-база с зеркалом задач, служебными заметками, пакетами и командами; HTTP API в локальной сети для агента и интерфейсов; MCP-сервер (stdio) как второй вход в тот же код; разовый импорт CSV-пакета `admin/jira-sync/`. - **jira-agent** (новый репозиторий, Python 3.9, только stdlib): один файл `agent.py` + `agent.json`; опрашивает хаб, выполняет команды в Jira по правилу «проверь, потом сделай», ведёт локальный журнал, возвращает состояние задач. - Спеки: `data-model`, `commands`, `agent`, `hub-api`, `mcp`, `migration` (все новые). - `admin/jira-sync/README.md` получает пометку «заменено мостом» (правка вне репозиториев, по чеклисту закрытия); `awp-ca/CLAUDE.md` — две строки в таблице репозиториев. ## Non-goals - Просмотрщик `sprint-2-links.html` на живых данных и правки из него (отдельные change'и: `viewer-live`, `viewer-edit`). - Автоматическая подстройка темпа по фактам 429 (хаб только показывает их). - История версий зеркала (резервные копии файла базы перед пакетом заменяют её). - Работа с типом «Ошибка» вне базовой JQL, несколько проектов Jira, несколько агентов. - TLS и аутентификация пользователей в хабе: домашняя сеть, два статических токена. - Произвольные JQL на запись, произвольные вызовы REST из очереди.