FORMALIS

Из слов — в рабочий процесс

Инструмент для бизнес-аналитиков и команд: опишите процесс на естественном языке — получите валидную BPMN 2.0 диаграмму, протестированную на кейсах.

Проблема

Долго

Ручное описание и моделирование процесса занимает часы и дни. Аналитик собирает информацию от нескольких команд, структурирует, рисует диаграмму, проверяет.

Ошибки

Пробелы в схеме находятся только на этапе реализации. Отсутствующие ветки, непройденные кейсы — всё это дорого исправлять потом.

🔄

Итерации

Несогласованность между аналитиком, разработчиком и заказчиком. Каждая правка требует перерисовки и перепроверки.

Как это работает

01

Ввод

Опишите процесс на естественном языке. Пример: «Клиент оставляет заявку, менеджер проверяет, если всё ок — передаёт в работу, если нет — звонит клиенту».

02

Формализация

LLM преобразует текст в структурированный Markdown: акторы, шаги, шлюзы, потоки. Вы отвечаете на уточняющие вопросы — схема становится точнее.

03

Проверка кейсами

Генерация тестовых сценариев и симуляция: LLM проходит по шагам, находит пробелы. Вы видите, какие пути не покрыты.

04

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-этапный пайплайн

  1. Формализация: LLM преобразует текст в Markdown-спецификацию с акторами, шагами, шлюзами. Поддержка уточняющих вопросов.
  2. Симуляция: Генерация тестовых кейсов и их прохождение по схеме. LLM выявляет пробелы и непройденные пути.
  3. Итерация: Цикл «вопрос → ответ → обновление MD» до заполнения всех пробелов.
  4. Генерация: Сборка 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 — формализация текста в Markdown
  • POST /api/simulate — симуляция кейса по схеме
  • POST /api/bpmn — генерация BPMN XML из Markdown
  • POST /api/c4 — генерация C4-модели из Markdown
  • POST /api/case — генерация тестового кейса
  • POST /api/case/save-to-md — сохранение кейса обратно в MD
  • POST /api/questions — генерация уточняющих вопросов
  • POST /api/apply-answers — применение ответов к MD
  • GET /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, кейсы")