Files
akyldash/docs/decisions/001-telegram-workspace-mvp.md
Codex Agent 07381ad70f feat: normalize Ministry of Justice documents
Add a resumable standard-library normalization pipeline for the downloaded CBD archive. It produces canonical bilingual metadata, sanitized HTML, plain text, deterministic fragments, checksums, quality markers, and an SQLite processing manifest while preserving the raw source.

Recover document-list pagination when the Ministry API exhausts request retries, and cover that scenario with a regression test.

Document the normalization workflow and frontend-search MVP plan, include the source functional specification, ignore local runtime logs, and bump the backend version to 0.2.1.
2026-08-12 08:32:12 +03:00

82 lines
10 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Решение 001: границы и правила первой версии Telegram-инфраструктуры
Статус: рабочий черновик, требует подтверждения команды
Дата: 2026-07-31
## Цель
Проверить рабочий цикл «обсуждение в Telegram → экспорт → ручной анализ в ChatGPT → подтверждение → фиксация в Git/Gitea» на небольшом и безопасном объёме.
Telegram не является хранилищем проекта, а бот и ChatGPT не принимают окончательных решений и не изменяют репозиторий без подтверждения команды.
## Что входит в MVP
- Telegram-супергруппа с темами `Общее` (стандартная тема), `MVP`, `Решения`, `Обсуждение`, `Работа с ИИ` и `Отчеты`.
- Тема `MVP` используется только для обсуждения границ первой версии. После фиксации MVP тема закрывается.
- Тема `Обсуждение` используется для рабочих гипотез и вопросов, которые ещё не стали подтверждёнными решениями.
- В теме `Решения` бот публикует итоговые сводки и подтверждённые решения после завершения обсуждения. Сообщения бота являются единственным редактируемым источником итогового текста; пользователи не редактируют сообщения бота.
- Тема `Работа с ИИ` закрытая: в ней публикуются только сообщения бота о корректных подходах, best practice, типичных ошибках и недопустимых формулировках при работе с ИИ. Отдельный FAQ будет подготовлен позднее как библиотека таких практик.
- Бот принимает сообщения только из явно разрешённых тем.
- Для сообщения сохраняются текст, автор, дата и время, тема, идентификатор сообщения и связь с ответом.
- Экспорт выполняется по ручной отметке участника или по явно заданному диапазону темы.
- Экспорт формируется в Markdown и включает контекст, сообщения по времени, ссылки и доступные вложения.
- Markdown публикуется в закрытой для сообщений участников теме `Отчеты`. В исходной теме бот оставляет заметную отсечку, прямую ссылку и общий с отчётом уникальный хэштег.
- Участник вручную загружает экспорт в ChatGPT и возвращает результат в Telegram.
- Gitea-уведомления на старте можно публиковать в `Общее` либо в отдельную тему после появления такой потребности. События ограничиваются PR, задачами, дедлайнами и сбоями важных проверок.
- Подтверждённые решения и изменения документации фиксируются в Git/Gitea обычным review-процессом.
## Что не входит в MVP
- API-интеграция с языковой моделью и автоматический ИИ-чат.
- Автоматическое принятие решений, изменение кода или создание PR без подтверждения.
- Сбор всех сообщений группы по умолчанию.
- Полнотекстовый поиск, RAG, векторная база и сложная аналитика.
- Уведомление о каждом push, комментарии или техническом событии.
## Правила данных и приватности
1. Автоматически собираются только сообщения из согласованных рабочих тем.
2. Ручной экспорт имеет приоритет над автоматическим сбором.
3. Вложения экспортируются только если бот имеет к ним доступ и их включение разрешено правилами темы.
4. Конфиденциальные, персональные и юридически чувствительные данные не отправляются во внешний сервис без отдельного разрешения команды.
5. Срок хранения сообщений, вложений и экспортов должен быть утверждён до включения автоматического режима.
6. Доступ к боту, архиву и уведомлениям получают только участники из согласованного списка.
## Утверждённые решения
- Используются темы `MVP`, `Решения`, `Обсуждение` и `Работа с ИИ`; тема `Общее` остаётся стандартной.
- `MVP` закрывается после фиксации состава первой версии.
- Итог обсуждения формирует бот и публикует в `Решения`.
- Файлы экспортов публикуются в теме `Отчеты`; исходные темы не засоряются файлами.
- `Работа с ИИ` предназначена только для публикаций бота и будет содержать best practice, а не обычный FAQ.
- Остальные параметры первой версии из этого документа считаются утверждёнными, если команда не изменит их отдельным решением.
## Граница между ботом и ИИ
- Бот без обращения к API языковой модели полностью выполняет сбор сообщений, сортировку, добавление метаданных, подготовку вложений и формирование Markdown-экспорта.
- На следующем этапе бот должен добавлять к экспорту готовую инструкцию для ручной загрузки в обычный ChatGPT.
- Выделение решений, задач, рисков, противоречий и открытых вопросов выполняется в ChatGPT вручную через подписку участника.
- На следующем этапе бот должен принимать возвращённый человеком отчёт, публиковать его в Telegram и связывать с исходным обсуждением.
- Бот не выдаёт эвристический или шаблонный результат за выполненный ИИ-анализ. Поиск ключевых слов и ручные метки допустимы только как вспомогательная навигация.
## Техническое замечание о правах тем
Telegram позволяет запретить пользователям отправку сообщений в закрытой теме, но не даёт отдельного режима «пользователи обсуждают, а затем только бот публикует» внутри одной и той же открытой темы. Поэтому завершение обсуждения в `Решения` должно оформляться закрытием темы или переключением прав группы. В любом случае пользователи не смогут редактировать сообщения, отправленные ботом.
## Инфраструктурные предпосылки
- Доступы для настройки находятся в локальном `credentials.json`; секреты из этого файла нельзя включать в Git, логи CI/CD, экспорт Telegram или сообщения бота.
- Для проекта можно создать открытый репозиторий в Gitea.
- В Gitea необходимо настроить защиту `main`: прямые push запрещены, изменения проходят через pull request и проверки CI/CD.
- Бот развёрнут в Container Manager на Synology с постоянным SQLite-томом и политикой автоперезапуска; конфигурацию развёртывания ещё предстоит зафиксировать в репозитории.
- PostgreSQL будет использоваться как хранилище бота; параметры доступа к базе будут предоставлены отдельно.
- Почта может использоваться как дополнительный канал доставки файлов и отчётов, но не как основное хранилище.
## Критерий завершения Stage 0
Критерий выполнен: границы MVP зафиксированы, темы созданы, первая версия бота и экспортов реализована. Полный рабочий цикл будет принят командой после проверки на реальном обсуждении.
---
Акылдаш · Telegram-бот v0.2.2 · Backend v0.2.1 · Frontend — не создан