FORMALIS
Из слов — в рабочий процесс
Инструмент для бизнес-аналитиков и команд: опишите процесс на естественном языке — получите валидную BPMN 2.0 диаграмму, протестированную на кейсах.
Проблема
Долго
Ручное описание и моделирование процесса занимает часы и дни. Аналитик собирает информацию от нескольких команд, структурирует, рисует диаграмму, проверяет.
Ошибки
Пробелы в схеме находятся только на этапе реализации. Отсутствующие ветки, непройденные кейсы — всё это дорого исправлять потом.
Итерации
Несогласованность между аналитиком, разработчиком и заказчиком. Каждая правка требует перерисовки и перепроверки.
Как это работает
Ввод
Опишите процесс на естественном языке. Пример: «Клиент оставляет заявку, менеджер проверяет, если всё ок — передаёт в работу, если нет — звонит клиенту».
Формализация
LLM преобразует текст в структурированный Markdown: акторы, шаги, шлюзы, потоки. Вы отвечаете на уточняющие вопросы — схема становится точнее.
Проверка кейсами
Генерация тестовых сценариев и симуляция: LLM проходит по шагам, находит пробелы. Вы видите, какие пути не покрыты.
BPMN
Сборка валидной BPMN 2.0. Визуальный редактор, C4-модель контекста, экспорт XML, сохранение в историю.
Возможности
Формализация в MD
Автоматическое преобразование описания в структурированный Markdown с акторами, шагами, условиями и потоками. Редактируемый результат.
Симуляция кейсов
Генерация и проверка тестовых сценариев. LLM находит непройденные пути и пробелы в логике до того, как они станут проблемой.
BPMN 2.0
Сборка валидного XML с визуализацией через bpmn-js. Редактирование прямо в браузере, скачивание файла.
C4-модель
Автоматическая генерация C4 Context и Container диаграмм на базе Mermaid. Редактируемый шаблон, визуализация архитектуры.
Уточняющие вопросы
После формализации LLM задаёт вопросы по спорным местам. Ответы обогащают Markdown перед симуляцией.
История проектов
Сохранение и загрузка проектов из SQLite. Даты создания и обновления, предпросмотр SVG, быстрый возврат к работе.
Админ-панель
Редактирование системных LLM-промптов для каждого этапа. Фильтрация по стадиям, сброс к дефолтам, персистентность в JSON.
RU / EN
Полная двуязычность интерфейса. Переключение одной кнопкой, сохранение выбора в localStorage.
Тёмная тема
Светлая, тёмная и системная тема. CSS-переменные, плавное переключение, запоминание выбора.
Шаблоны отраслей
Готовые примеры для логистики, HR, IT, продаж, finance, support и manufacturing. Быстрый старт с предзаполненным описанием.
Сохранение MD
Скачивание формализованного Markdown и кейсов. Сохранение отдельных сценариев обратно в основной документ.
Эталонный BPMN
Встроенный пример диаграммы, описывающей работу самого FORMALIS. Доступен для скачивания и изучения.
Техническое описание
Архитектура и реализация
Стек технологий
- Runtime: Bun — быстрый JavaScript-runtime с встроенным HTTP-сервером и SQLite
- Backend: TypeScript, файловый сервер с API-эндпоинтами
- Frontend: Vanilla JS, CSS-переменные, нативные Web Components
- LLM: OpenAI-совместимый API (DeepSeek по умолчанию), JSON mode
- BPMN: bpmn-js — визуальный редактор и рендеринг SVG
- C4: Mermaid.js — рендеринг C4Context и C4Container диаграмм
- Хранение: SQLite через bun:sqlite, JSON-файлы для промптов
4-этапный пайплайн
- Формализация: LLM преобразует текст в Markdown-спецификацию с акторами, шагами, шлюзами. Поддержка уточняющих вопросов.
- Симуляция: Генерация тестовых кейсов и их прохождение по схеме. LLM выявляет пробелы и непройденные пути.
- Итерация: Цикл «вопрос → ответ → обновление MD» до заполнения всех пробелов.
- Генерация: Сборка BPMN 2.0 XML из Markdown с валидацией и визуализацией.
Архитектура
- server.ts: HTTP-сервер с REST API, раздача статики, проксирование LLM
- promptStore.ts: Динамическое хранилище промптов с персистентностью в JSON
- prompts.ts: Системные промпты для каждого этапа пайплайна
- demo.ts: Детерминированные ответы для офлайн-режима без API-ключа
- i18n.js: Двуязычность через data-атрибуты (data-i18n, data-i18n-placeholder, data-i18n-title)
- app.js: Клиентская логика, управление состоянием, рендеринг
API-эндпоинты
POST /api/formalize— формализация текста в MarkdownPOST /api/simulate— симуляция кейса по схемеPOST /api/bpmn— генерация BPMN XML из MarkdownPOST /api/c4— генерация C4-модели из MarkdownPOST /api/case— генерация тестового кейсаPOST /api/case/save-to-md— сохранение кейса обратно в MDPOST /api/questions— генерация уточняющих вопросовPOST /api/apply-answers— применение ответов к MDGET /api/history— список сохранённых проектовPUT /api/session/:id/markdown— сохранение Markdown в историюPUT /api/session/:id/bpmn— сохранение BPMN в историюGET /api/admin/prompts— получение всех промптовPUT /api/admin/prompts/:id— обновление промптаPOST /api/admin/prompts/reset— сброс промптов к дефолтам
Управление промптами
9 системных промптов разделены по этапам пайплайна:
- formalize: FORMALIZE_SYSTEM, FORMALIZE_USER, FORMALIZE_QA_SYSTEM
- simulate: CASE_SYSTEM, SIMULATE_SYSTEM
- generate: BPMN_SYSTEM, C4_SYSTEM, APPLY_ANSWERS_SYSTEM
Все промпты редактируются через админ-панель /admin/ с фильтрацией по стадиям. Изменения сохраняются в data/prompts.json и переживают перезапуск сервера.
Demo-режим
При отсутствии LLM_API_KEY сервер работает в детерминированном demo-режиме. Генерируются фиксированные ответы для каждого этапа, что позволяет тестировать весь пайплайн без подключения к LLM.
Кому подходит
Бизнес-аналитикам
Быстрая формализация процессов из интервью. Черновик диаграммы за минуты, а не дни. Проверка кейсами до согласования.
Разработчикам
Валидная BPMN для автоматизации. Понятная структура, тестовые сценарии, минимум вопросов к аналитику.
Проджект-менеджерам
Визуализация процессов команды. Быстрый онбординг, документирование регламентов, поиск узких мест.
Компаниям
Стандартизация описания процессов. Единый подход, сохранение знаний, масштабирование регламентов.
Архитектура
C4Context
title Архитектура FORMALIS
Person(user, "Пользователь", "Бизнес-аналитик / Разработчик")
System(formalis, "FORMALIS", "Генератор BPMN из текста")
System_Ext(llm, "LLM API", "DeepSeek / OpenAI-совместимый")
Rel(user, formalis, "Описывает процесс")
Rel(formalis, llm, "Формализация, симуляция, генерация")
Rel(formalis, user, "BPMN, MD, кейсы")