Synaplan
Open-source AI platform for companies: self-hosted AI agents, GDPR-compliant chatbot widget, RAG knowledge base, WhatsApp and Outlook AI, MCP, multi-model routing. Docker, Kubernetes or hosted in Germ
翻訳待ち
No updates detected yet. GitHub releases will appear here.
ReleasePilot AI — система, которая объединяет задачи, релизы, загрузку команды, риски, блокеры и коммуникацию, а AI помогает Delivery Manager принимать решения.
翻訳待ち
Loading the full README. The saved excerpt is shown below.
AI-powered Delivery Management Platform — помогает продуктовым командам управлять релизами, загрузкой и рисками, и заранее понимать, где delivery может сорваться. Статус: этап 5 из 5. Домен, API и шесть экранов готовы и развёрнуты; сквозная проверка smoke:api проходит по продакшну целиком (59 проверок). Осталась финализация — скриншоты и презентация. Delivery Manager узнаёт о срыве релиза за 2–3 дня до даты, когда сделать уже ничего нельзя. Загрузка команд нигде не посчитана, цепочки блокеров не видны, а на вопрос «успеем ли к четвергу» нет ответа в терминах вероятности.Read the full README ↗
AI-powered Delivery Management Platform — помогает продуктовым командам управлять релизами, загрузкой и рисками, и заранее понимать, где delivery может сорваться.
Демо: https://releasepilot-ai.vercel.app
Статус: проект завершён и сдан. Семь экранов, API и AI-ассистент работают на продакшне; вход по почте, через GitHub и Google; письма со статусом и оповещения о росте риска подключены. Скриншоты — ниже, план выступления — в docs/08-defense.md.
Delivery Manager узнаёт о срыве релиза за 2–3 дня до даты, когда сделать уже ничего нельзя. Загрузка команд нигде не посчитана, цепочки блокеров не видны, а на вопрос «успеем ли к четвергу» нет ответа в терминах вероятности.
Кокпит текущего релиза + детерминированный движок расчёта риска + AI Delivery Assistant, который объясняет причины риска и симулирует сценарии его снижения:
Release 2.14 План: 24 октября (через 7 рабочих дней)
Готовность 72.5% Риск HIGH 84.2 Вероятность выпуска в срок 0%
Почему High
1. Тестирование загружено на 173% вклад 24 → к загрузке
2. PAY-302 держит 4 задачи, блокер застарел вклад 18 → к блокерам
3. Критическая цепочка 9.8 д при 7 остатка вклад 14 → к цепочке
Сценарии → убрать 2 задачи: скор 84.2 → 52.8, уровень High → Medium
Цифры считает код, объясняет их модель. Готовность, загрузка, уровень риска
и вероятность выпуска рассчитываются детерминированным движком, покрытым
юнит-тестами. Модель получает готовые числа и отвечает за интерпретацию и
рекомендации — вычислять ей запрещено, а числа в её ответе сверяются с теми,
что ей давали (src/lib/agent/verify.ts). Это исключает расхождение между
экраном и ответом ассистента.
Движок — чистые функции: ни базы, ни сети, ни Date.now(). Момент времени
передаётся снимком снаружи, поэтому расчёт воспроизводим, а тесты не зависят
от дня запуска.
| Экран | Что отвечает |
|---|---|
| Список релизов | где горит: сортировка по срочности, не по дате |
| Кокпит релиза | риск и причины с вкладом, задачи под угрозой, готовность, загрузка команд, блокеры, цепочка |
| Задачи | список с фильтрами в адресе; создание, правка, удаление и связи — в боковой панели |
| Сценарии | подбор «что перенести», ручной what-if, применение с подтверждением |
| AI-ассистент | диалог потоком, видимые вызовы инструментов, предложения карточкой |
| Аналитика | доля релизов в срок, задержки, динамика отклонений, повторяющиеся причины и узкие места |
| Настройки | команды и их состав, ёмкость по периодам, отсутствия, импорт задач из CSV/JSON |
У каждого — три состояния: загрузка, ошибка, пусто (NFR-06).
Навигация общая для всех экранов: меню разделов, кнопка «AI-ассистент» (внутри
релиза открывает его ассистента, снаружи — самого горящего релиза), поиск по
⌘K или / и вкладки «Кокпит / Задачи / Сценарии / Ассистент» внутри релиза.
Релизы и задачи создаются и правятся прямо из интерфейса — менеджеру и выше;
остальным кнопки правки не показываются, а запись в любом случае закрывает
RLS.
Next.js 16 (App Router) · TypeScript strict · Tailwind CSS 4 · Supabase (PostgreSQL, Auth, RLS) · Claude API (tool use, стриминг) · Vitest · GitHub Actions · Vercel
npm install
cp .env.example .env.local # заполнить ключи Supabase и, при желании, Claude API
npm run seed:demo # демо-организация, шесть выпущенных релизов, задачи
npm run dev
Миграции применяются в SQL-редакторе Supabase по порядку:
supabase/migrations/0001_initial_schema.sql, затем 0002, 0003.
Ассистенту нужна модель: облачный Claude по ANTHROPIC_API_KEY или локальная
через Ollama. Без обоих он отвечает «недоступен», а
остальное приложение — метрики, прогноз, сценарии — работает полностью: это
требование NFR-07, и оно проверяется.
Без ключа и без оплаты токенов — Ollama отдаёт тот же Messages API, что и Claude, поэтому слой агента не меняется: тот же SDK, те же инструменты, та же сверка чисел.
ollama pull qwen3:14b
OLLAMA_CONTEXT_LENGTH=16384 ollama serve
В .env.local:
ANTHROPIC_BASE_URL=http://localhost:11434
ANTHROPIC_MODEL_MAIN=qwen3:14b
ANTHROPIC_MODEL_LIGHT=qwen3:14b
Контекст 16K обязателен: по умолчанию у Ollama 4K, и системный промпт с
описаниями инструментов в него не помещается. Ответ локальной модели идёт
минуту-две против секунд у Claude, а тексты слабее — числа при этом те же,
их считает движок. Работает только локально: сайт на Vercel до localhost
не достанет.
npm run lint
npm run typecheck # next typegen && tsc --noEmit
npm test # 406 тестов, домен и слои перевода на фикстурах
npm run check:db # схема базы против сгенерированных типов
npm run smoke:api # сквозная проверка чтения через настоящие маршруты
npm run smoke:scenario # сквозная проверка записи: сценарии, связи, ёмкость, импорт
smoke:api только читает и ничего не портит. smoke:scenario пишет:
создаёт свой временный релиз, проверяет сохранение и применение сценария,
связи задач, ёмкость и импорт, и убирает за собой даже после падения. Записи в
журнале изменений остаются — журнал только дописывается, и проверка не
исключение из правила, которое она проверяет.
Обе сквозные проверки требуют запущенного npm run dev и демо-данных.
Vercel, переменные окружения те же, что в .env.example. Обязательны
NEXT_PUBLIC_SUPABASE_URL, NEXT_PUBLIC_SUPABASE_ANON_KEY,
SUPABASE_SERVICE_ROLE_KEY; ANTHROPIC_API_KEY — только для ассистента;
CRON_SECRET — для ежедневной записи снимков метрик. Токены Yandex Tracker в
публичный деплой не добавляются.
Адрес сайта задавать не нужно: ссылка подтверждения почты строится из адреса
запроса. Но в Supabase (Authentication → URL Configuration) этот адрес обязан
быть в списке Redirect URLs — иначе Supabase отправит человека по ссылке из
письма на Site URL, то есть на localhost.
This is the beginning of the README. Read the rest at the original. Read the full README ↗