Персональный менеджер задач для повседневных дел и личных проектов.
| Версия ТЗ | 0.5 (черновик) |
| Дата | 2026-09-19 |
| Статус | На обсуждении |
Продвинутый личный таск-менеджер. Ключевая идея — минимальный трением ввод: задача закидывается в систему в одну строку, без выбора проекта, тегов и приоритета. Система сама делает предварительную детализацию, а пользователь позже утверждает или правит её при разборе.
Сценарий А — веб-интерфейс (основной). Разбор стека входящих, детализация и утверждение задач, работа с проектами, планирование, просмотр дерева задач.
Сценарий Б — ИИ-агент через MCP. Агент от имени пользователя добавляет задачи (например, из переписки или диалога с LLM). Большинство AI-задач выполняется на стороне агента; сервер предоставляет MCP-интерфейс к данным.
raw) и ожидают детализации.При попадании задачи в стек система самостоятельно предлагает черновые метаданные:
Требования:
approved) только после явного действия пользователя.Тип задачи: каждая задача имеет тип — разовая или регулярная (повторяющаяся; см. 3.5).
Статусы выполнения:
| Статус | Смысл |
|---|---|
to_do — К выполнению |
Принята в работу, ожидает выполнения |
in_progress — В работе |
Выполняется сейчас |
done — Завершено (закрыто) |
Выполнена |
cancelled — Отменено |
Была актуальной, затем перестала быть актуальной. Не равно удалению — задача сохраняется, т.к. может снова стать актуальной |
deferred — Отложено |
На текущий момент не нужна или не в приоритете; возможно, позже это изменится |
cancelled и deferred — обратимы: задача может быть возвращена в to_do.raw → approved) — отдельная плоскость, не статус выполнения: «сырая» задача из стека получает статус только после утверждения.Дедлайны — двух видов:
Прогнозирование времени выполнения — система оценивает длительность задачи (на основе истории завершённых задач; алгоритм уточняется).
Бюджет — опциональный, на задачу; есть не у каждой задачи:
Анти-прокрастинационный режим: пользователь указывает доступное время (например, «3 часа»), система предлагает 3 варианта задач, подходящих под это время; пользователь выбирает один и выполняет сразу.
create_task — добавить задачу (достаточно текста; метаданные опциональны);update_task, complete_task;list_tasks / search_tasks — фильтры по проекту, тегу, статусу;get_task — полное описание с вложениями.profile.locale из SSO-профиля, scope profile).app_settings, ключ language), пустое значение = следовать SSO.| Требование | Значение |
|---|---|
| Архитектура | Клиент-серверное; SPA + REST API + MCP |
| Фронтенд | SPA на Vue 3 с gnexus-ui-kit (npm: gnexus-ui-kit@^0.4.0, peer: Vue ^3.4) |
| Бэкенд | Python (FastAPI — предположительно), клиент SSO — gnexus-gauth |
| СУБД | PostgreSQL (рекомендация для VPS) |
| Авторизация | SSO через auth.gnexus.space, библиотека gnexus-gauth (https://git.gnexus.space/git/root/gnexus-auth-client-py.git) |
| Хостинг | VPS, HTTPS |
| AI | Ollama на сервере; модель задана конфигом |
| Упаковка | В итоге всё пакуется в Docker (docker-compose: API, PostgreSQL, фронт, Ollama + модель) |
| Мобильность | На старте — только PWA; Android-приложение — вне скоупа стартовой версии (вернуться к нему позже) |
| Приватность | Все данные и LLM-вызовы — на собственном сервере |
Внешние зависимости проекта (не форкать, обновлять через пакетный менеджер):
gnexus-ui-kit — часто обновляется, использовать только публичный API кита;gnexus-gauth — клиентская библиотека SSO.Task
id, title, description (markdown)
task_type one_time | recurring — тип задачи: разовая / регулярная
status to_do | in_progress | done | cancelled | deferred
detail_state raw | approved — плоскость детализации (стека)
parent_task_id nullable — дерево подзадач
project_id nullable
tag_ids []
priority nullable (заполняется автодетализацией / вручную)
deadline nullable — дедлайн:
strict { date } — «до конкретной даты»
soft { period: week|month|year } — «в течение периода»
recurrence nullable — правило повторения (для task_type = recurring)
time_estimate nullable — прогноз времени (система)
budget nullable — ручной бюджет (деньги и/или время), опционален
estimated_cost nullable — оценка затрат по задаче (сравнивается с бюджетом)
actual_time nullable — фактические затраты (для обучения прогноза)
created_at, approved_at, done_at
Project
id, name
relevance_status active | paused | archived — статус актуальности
priority
note markdown — ссылки на ресурсы, контекст
Tag — справочник тегов
Attachment — файлы задач (изображения), task_id, mime
История завершённых задач (фактическое время) — источник для прогнозирования длительности.
┌─────────────┐ ┌────────────────────── VPS (docker-compose) ─────────────┐
│ Web SPA │────▶│ API (FastAPI) ──▶ PostgreSQL │
│ Vue 3 + │ │ │ │
│ gnexus- │ │ ├──▶ Сервис автодетализации ──▶ Ollama (модель │
│ ui-kit │ │ │ — LLM, модель из конфига) │
└─────────────┘ │ ├──▶ Хранилище вложений (файлы) │
│ └──▶ MCP-сервер (для ИИ-агентов) │
└─────────────────────────────────────────────────────────┘
▲ SSO auth.gnexus.space (клиент gnexus-gauth)
| Этап | Содержание |
|---|---|
| M0 — каркас | Репозиторий, скелет backend + frontend, SSO-интеграция (gnexus-gauth), деплой на VPS |
| M1 — MVP задач | CRUD задач, быстрый ввод, стек входящих, теги, проекты (базово), ручная детализация |
| M2 — детализация | Интеграция Ollama + модель из конфига, автопредзаполнение метаданных, подтверждение/редактирование, Markdown-редактор, вложения из буфера |
| M3 — структура | Дерево подзадач, классический список с фильтрами, заметки проектов |
| M4 — умность | Прогнозирование времени, бюджет, режим «3 варианта» |
| M5 — MCP | MCP-сервер, инструменты для агентов |
| M6 — мобильность | PWA (Android-приложение — позже, вне стартового скоупа) |
| M7 — упаковка | Docker (docker-compose: API, PostgreSQL, фронт, Ollama + модель) |
Порядок M4/M5 может меняться — MCP можно поднять раньше ради ИИ-сценария.
cancelled / deferred: определения зафиксированы (3.4), но поведение в интерфейсе почти одинаковое — скрыть из активных списков и оставить доступным для возврата. Уточнить при проектировании представлений, нужны ли оба статуса или их поведение сольётся.