
Goal Decomposer решает самую скучную часть планирования: превращение расплывчатой цели в конкретные задачи со сроками. Цель можно надиктовать голосом или написать, ассистент задаёт уточняющие вопросы и выдаёт план, где у каждой задачи есть дата, отсчёт дней и напоминание.
Приложение сделано одним экраном из трёх шагов: цель, уточнение, план. Данные на снимках демонстрационные: цель и план подготовлены для показа.
Для кого
Для человека, у которого цель есть, а плана нет: запустить магазин, подготовиться к экзамену, переехать, выйти на новый рынок. Для руководителя небольшой команды, которому нужно быстро превратить устную постановку в список задач со сроками. И для сервисных компаний, где клиент описывает проблему словами, а на выходе нужен понятный план работ.
Как это работает
- Пользователь диктует цель или пишет её текстом. Язык диктовки выбирается переключателем: русский, украинский или английский.
- Ассистент коротко пересказывает, как понял цель, показывает черновик задач с датами и задаёт от трёх до шести уточняющих вопросов.
- Пользователь отвечает, и ассистент собирает итоговый план: объяснение и от пяти до двенадцати задач с дедлайнами и напоминаниями.
- План сохраняется и остаётся на месте после перезагрузки страницы, а браузер присылает напоминания о сроках.


Что внутри
- Распознавание речи работает прямо в браузере через Web Speech API: текст появляется в поле по ходу диктовки, диктовку можно остановить и продолжить. Там, где браузер речь не распознаёт, цель вводится текстом.
- Декомпозиция идёт в два запроса к модели OpenAI. Первый возвращает резюме цели, уточняющие вопросы и черновик задач, второй учитывает ответы и строит итоговый план. Модель отвечает строгим JSON, сервер получает из него данные даже если ответ обёрнут в лишний текст.
- Дедлайны модель ставит от сегодняшней даты, которую сервер передаёт вместе с целью. В плане задачи сгруппированы по месяцам, у каждой видно, через сколько дней срок; близкие сроки подсвечиваются жёлтым, просроченные красным. Сверху сводка: число задач, ближайший срок, финиш и дни до него.
- Напоминания показываются системными уведомлениями браузера через service worker. Таймер раз в 30 секунд сверяет сроки, поэтому напоминания приходят, пока приложение открыто во вкладке.
- Хранение: план лежит в браузере и копией на сервере под анонимным идентификатором устройства. Если браузерную копию очистить, план подтянется с сервера.
- Ключ OpenAI пользователь вводит сам в настройках. Ключ хранится в его браузере и уходит на сервер только на время запроса, сервер его не записывает.
Экспорта в календарь и интеграций с таск-трекерами в проекте пока нет: план живёт внутри приложения.


Инженерные решения
- сервер на Node без внешних зависимостей: раздаёт интерфейс, проксирует запросы к модели и хранит планы в JSON-файле;
- адрес API и модель задаются настройками окружения, поэтому приложение работает и с OpenAI напрямую, и через совместимый шлюз;
- два теста: быстрый смоук сервера и сквозной прогон интерфейса в headless Chrome, где модель подменена заглушкой, а сценарий проходит от цели до плана и восстановления после перезагрузки.
Где применимо
Личное планирование, постановка задач в небольших командах, интейк заявок в сервисных компаниях, где клиент описывает проблему словами, а система должна выдать понятный план работ.
Схема данных
Что уходит в модель, что возвращается и где хранится план.
Контур системы
Путь от продиктованной цели до напоминания о сроке.
Схема интерфейса
Как устроен рабочий экран.
Где посмотреть
Постоянного публичного адреса у проекта нет. Приложение запускается локально или через временный туннель Cloudflare, адрес которого меняется при каждом перезапуске, поэтому ссылку здесь не публикуем. Показываем его на демонстрации, по записи.
Похожее решение: ИИ-секретарь с убедительным голосом и телефонией.