diff --git a/CHANGELOG.md b/CHANGELOG.md index ba995b0..d41e71f 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -45,6 +45,8 @@ изменения ширины результатов и документа. Язык поиска находится в фильтрах; состояния открытия, оглавление правовых заголовков, лаборатория и кабинет приведены к последовательной и компактной компоновке. +- Добавлен план развития платформы со сравнением возможностей «Токтом Онлайн», + пробелов Акылдаша и этапов продуктовой проверки. - Frontend `0.2.6` / Backend `0.13.1`: двухпанельная компоновка поиска сохраняется до ширины 1175 px, чтобы три панели не обрезались при промежуточных ширинах окна. diff --git a/docs/product/platform-development-plan-toktom-2026-10-24.md b/docs/product/platform-development-plan-toktom-2026-10-24.md new file mode 100644 index 0000000..296d08f --- /dev/null +++ b/docs/product/platform-development-plan-toktom-2026-10-24.md @@ -0,0 +1,307 @@ +# План развития «Акылдаш»: конкурентный анализ «Токтом Онлайн» + +Дата: 24 октября 2026 года. Статус: предложение для продуктового решения; +не утверждённый бюджет или срок выпуска. Изменения приложения этим документом +не выполняются. + +## 1. Вывод и оценка шансов + +**На текущем этапе «Акылдаш» не готов заменить профессиональную СПС целиком. +Шанс построить востребованный продукт есть, если начать с ограниченного +практического сегмента и доказать качество данных и экономию времени.** + +Копирование всей широты конкурента потребует не только разработки, но и +постоянной юридической редакции, получения материалов, сопровождения клиентов +и продаж. Рекомендуемая стартовая гипотеза — поиск и контроль норм для +небольших юридических и бухгалтерских команд, работающих с ОсОО/ЖЧК, +налогообложением и трудовыми вопросами. Наличие отдельных поисковых улучшений +по ОсОО и налогам делает этот сегмент удобным для проверки, но само по себе +не подтверждает спрос. + +| Сценарий | Оценка | Что должно измениться | +| --- | --- | --- | +| Быстрая полная замена привычной СПС | Низкие шансы сейчас | Нужны надёжный выпуск, полнота материалов и профессиональные инструменты | +| Дополнительный инструмент для одной практической задачи | Наиболее реалистичная гипотеза | Пилот должен показать измеримую пользу без обязательного отказа от прежней системы | +| Основное рабочее место небольшой команды | Условно достижимо после пилота | Нужны удержание, обновления, персональная работа и подтверждённая готовность платить | +| Массовая платформа с ИИ-консультантом | Долгосрочная гипотеза | Нужны проверяемые ответы, экономика обслуживания и контроль юридических ошибок | + +Проценты вероятности успеха не рассчитываются: нет данных о числе клиентов +конкурента, продажах, удержании, нашей команде, бюджете и стоимости привлечения. +Цены, скорость и качество поиска систем в одинаковых условиях не сравнивались. +Техническая возможность создать функцию не доказывает коммерческое преимущество. + +## 2. Основание и ограничения исследования + +Изучено открытое [руководство «Токтом Онлайн»](https://online.toktom.kg/cms/Topic/273) +целиком: портал, учётные записи, продукты, поиск и работа с документами. +В таблице ниже номера означают разделы этого руководства. Описание функции +подтверждает её документирование, но не результат испытания платной системы. +Дата последнего обновления руководства не установлена; старый год в подвале +не позволяет определить актуальность отдельных инструкций. + +Отдельная [страница продукта](https://online.toktom.kg/cms/Topic/292) +заявляет ежедневное обновление и работу через интернет с синхронизацией +персональных данных. Это заявления поставщика; их фактическое выполнение +не проверялось. Актуальный тариф на этой странице предлагается запрашивать. + +База сравнения «Акылдаш»: актуальная на повторной сверке `origin/main`, commit +`c8d0086a9f20485c5efe6f9d3ccd476dd9f07065` (2 ноября 2026 года). Матрица +G01–G25, описание текущих возможностей в разделе 3 и этапы A–F в разделе 6 +повторно сверены с этой базой. Проверены: + +- [README](../../README.md), [обзор продукта](project-overview.md); +- [API](../../backend/search/api.py), [поисковый интерфейс](../../backend/search/review.html), + [учётные записи](../../backend/search/auth.py), [запросы](../../backend/search/query.py); +- [каталоги](search-catalog-v1.md), [план frontend](frontend-search-sps-plan.md), + [readiness gate](frontend-design-readiness-plan.md); +- [состояние инфраструктуры и корпуса](../operations/CURRENT_STATE.md), + [доступ](../operations/ACCESS.md), а также актуальные реализации Search API, + учётных записей и поискового интерфейса. + +Матрица отражает возможности реализации на указанном commit, а не только +состояние прежней базы исследования. В частности, в текущем внутреннем контуре +администратор может создавать и удалять учётные записи и сбрасывать пароль; +публичная регистрация и восстановление по email по-прежнему отсутствуют. +Технические версии кода: Backend 0.13.3 (`APP_VERSION` в +`backend/search/minjust_opensearch.py`), Frontend 0.3.3 (подвал +`backend/search/review.html`), Telegram-бот 0.2.2 (`APP_VERSION` в +`tools/telegram-bot/bot.py`). Корневой README указывает Backend 0.13.2; +`backend/README.md` содержит более старые Backend 0.13.0 / Frontend 0.2.3. +При расхождении использованы версия backend и подвал интерфейса в указанном +commit. Эти версии не подтверждают развёртывание соответствующего кода. +Живой production, полнота локального корпуса и пользовательская доступность +не подтверждены текущими проверками. Нельзя считать функцию доступной клиентам +только на основании наличия кода. + +## 3. Что уже есть у нас + +В реализации есть полнотекстовый поиск RU/KY, фильтры по виду, статусу, группе +органа, юридической силе и дате; пагинация и сортировка по релевантности/дате. +Есть API карточки и редакций, чтение выбранной редакции и языка, оглавление, +поиск внутри текста, печать и переход на официальный источник. +Это **не нужно разрабатывать заново**. + +Учётные записи SQLite, проверка полномочий на сервере, +смена пароля и административные создание, удаление и сброс пароля доступны +во внутреннем контуре. Лаборатория собирает оценки выдачи и комментарии +проверяющих. Это не публичная регистрация, не восстановление пароля по email, +не пользовательские заметки к нормам и не история исследований между устройствами. + +По состоянию, записанному в `CURRENT_STATE.md`, публичный запуск и готовность +всего корпуса не подтверждены. В документе есть исторические проверки архива +и ограниченного staging; успешная обработка одного документа не доказывает +полноту и актуальность базы. RAG в README отмечен как ещё не созданный. + +## 4. Функциональные пробелы + +Обозначения: **нет** — в проверенных API, UI и профильных планах отсутствует +готовая возможность; **частично** — есть основа, но сценарий неполон; +**не подтверждено** — без аудита корпуса или рабочего сервиса вывод невозможен. +«Нет» относится к реализации указанного commit, а не ко всем внешним наработкам. +P0 — до публичного пилота; P1 — основное рабочее место; P2 — после спроса; +P3 — только при отдельном обосновании. + +| ID | Возможность в руководстве «Токтом» | Состояние «Акылдаш» и необходимое дополнение | Приоритет | +| --- | --- | --- | --- | +| G01 | Регистрация, восстановление, соцвход (§1.1–1.2) | Частично: внутренние аккаунты есть; публичный onboarding и восстановление по email отсутствуют. Соцвход отложить | P1 / P3 | +| G02 | Организация и профиль (§3.1.1) | Частично: есть кабинет, но нет полноценной модели организаций | P2 | +| G03 | Счёт, платежи (§3.1.2) | Нет: коммерческий учёт и сверка оплат | P2 | +| G04 | Продукты, сроки, промокоды (§3.2.1–3) | Нет: тарифные права и жизненный цикл подписки | P2 | +| G05 | Подключение коллег (§3.2.4–5) | Нет: приглашения и права внутри организации; внутренние роли не заменяют это | P2 | +| G06 | Настройки выдачи (§3.2.6) | Частично: параметры доступны, серверного сохранения предпочтений нет | P1 | +| G07 | Тематические разделы (§3.3.1) | Частично: черновая таксономия есть, публичный тематический фильтр отсутствует | P1 | +| G08 | Судебные, справочные, зарубежные материалы (§3.3.1) | Не подтверждено: специализированные полные коллекции и их поиск не показаны; наличие отдельных актов в ЦБД не исключается | P2 / P3 | +| G09 | Новые документы (§3.3.3) | Нет отдельной пользовательской ленты поступлений | P1 | +| G10 | Избранное, изменения (§3.3.4) | Нет серверного списка и пользовательского контроля изменений | P1 | +| G11 | История документов/запросов (§3.3.5) | Нет синхронизированной истории исследования; URL браузера и история входов — другие данные | P1 | +| G12 | Обзор обновлений (§3.3.6) | Нет журнала новых, изменённых и отменённых актов для пользователя | P0 / P1 | +| G13 | Открытие по коду (§3.4.2) | Частично: API принимает код, отдельного пользовательского сценария нет | P1 | +| G14 | Расширенные реквизиты (§3.4.3) | Частично: нужны номер, раздельные поля названия/текста, тематический отбор, множественные значения и поиск без обязательного q | P1 | +| G15 | Детальные органы, публикация (§3.4.3.1) | Частично: API ограничен группами органов; нет полного реестра и фильтров по регистрации/источнику публикации | P2 | +| G16 | Шаблоны запросов (§3.4.3.2) | Нет именованных сохранённых поисков | P1 | +| G17 | Сортировка по органу/виду (§3.5.3) | Нет таких режимов и выбора направления; текущая дата имеет дополнительный приоритет статуса | P2 | +| G18 | Word: выдача/документ (§3.5.4; 3.6.6) | Нет DOCX-экспорта; браузерная печать уже есть | P1 | +| G19 | Справка и реквизиты (§3.6.1) | Частично: метаданные есть, полная читаемая паспортная карточка требует доработки | P1 | +| G20 | Связи, обратные ссылки (§3.6.7–8) | Нет собственного проверенного графа связей и обратного индекса; исходные HTML-ссылки не равнозначны | P1 | +| G21 | Предпросмотр, «Связной» (§3.6.9; 13) | Нет контекстного просмотра и связей на уровне конкретной нормы | P2 | +| G22 | Графические копии (§3.6.10) | Частично на уровне архива: готовая выдача оригиналов не подтверждена; вложения staging не верифицированы | P2 | +| G23 | Сравнение редакций (§3.6.12) | Нет сопоставления двух текстов и выделения изменений; переключатель редакций уже есть | P1 | +| G24 | Языковое сравнение (§3.6.14) | Нет параллельного просмотра; переключение RU/KY уже есть | P1 | +| G25 | Форум, сообщения (§2; 3.2.7–8) | Нет пользовательского сообщества; рабочий Telegram-бот команды его не заменяет | P3 | + +Редакции, языки, оглавление и печать (§3.6.2–5) в перечень отсутствующих +функций не включены. Для сравнительного списка использовано +[руководство поставщика](https://online.toktom.kg/cms/Topic/273). + +## 5. Стратегия отличия + +Это гипотезы развития, а не установленные преимущества над конкурентом. +Отсутствие описания в его руководстве не доказывает отсутствия функции. + +1. **Проверяемая актуальность.** На каждой норме показывать источник, редакцию, + время последней успешной проверки и ограничения данных. Разделять дату + получения, принятия, вступления в силу и период применимости. +2. **Практический двуязычный поиск.** Измерять RU и KY отдельно на реальных + задачах, сокращениях и опечатках. Не обещать кыргызскую морфологию только + из-за наличия ICU. Не подменять отсутствующий официальный текст переводом. +3. **Рабочая задача вместо набора документов.** Проверить сценарий + «найти применимую норму → проверить редакцию → сохранить доказательство → + получить сигнал об изменении». Он должен занимать меньше времени у пилота. +4. **Объяснение с проверяемыми ссылками.** После надёжного поиска добавить + ответы с точными цитатами и открытием фрагмента. При недостатке источников + система сообщает об этом; юридические выводы требуют проверки специалистом. + +Удобный интерфейс и низкая цена сами по себе не обеспечат переход клиентов. +Открытые источники также не дают автоматического разрешения на любой способ +их использования. Права на каждый новый источник проверяются отдельно; +копирование базы и редакционных материалов конкурента в план не входит. + +## 6. Последовательность развития и приёмка + +Сроки ниже — предварительные диапазоны для команды из двух разработчиков +с регулярным участием юриста и частичным участием дизайнера/эксплуатации. +Это предположение для обсуждения, не оценка существующего штата. При иной +команде и после обследования данных сроки нужно пересчитать. Переходы +определяются результатами, а не истечением недель. + +### Этап A. Данные и воспроизводимый запуск — P0, ориентир 3–6 недель + +Зависимости: состояние официального API, доступный корпус и участие владельца +инфраструктуры. Назначить ответственных за данные, эксплуатацию и юридическую +проверку. Согласовать правила текущей редакции и обработки неизвестного статуса. + +- Завершить квалификацию источника и полный аудит корпуса; отдельно проверить + языки, порядок редакций, контрольные суммы, ошибки, вложения и пропуски. +- Запустить воспроизводимый цикл проверки обновлений с журналом изменений + и безопасным переключением индекса. Из этого журнала строить G12 и G09. +- Выполнить существующий readiness gate, зафиксировать baseline и ограничения. +- Подготовить пилотное развёртывание, наблюдение за ошибками, проверенный backup + и восстановление в изолированной среде по существующим процедурам. + +Приёмка: завершённый отчёт о полноте с объяснёнными исключениями; повторный +запуск не создаёт дубликатов; неудачное обновление сохраняет рабочий индекс; +сквозные сценарии RU/KY проходят; восстановление проверено. Рекомендуемая цель +актуализации — не более суток от доступности изменения у источника; сначала +измерить достижимость и только затем обещать SLA пользователям. + +### Этап B. Поисковое рабочее место — P1, ориентир 4–6 недель + +Зависимость: этап A. Закрыть G07, G13–14, G18–19 и уточнить G06. +Использовать готовые просмотр, печать и оглавление; не переписывать их. + +- Утвердить темы и устойчивые идентификаторы; не превращать черновые хеши + классификатора в публичный контракт без проверки. +- Добавить точный номер и независимые поля поиска; разрешить отбор только + по реквизитам; определить семантику AND/OR и множественного выбора. +- Сделать паспорт документа, пользовательский сценарий открытия по коду и + DOCX с редакцией, языком, источником и временем выгрузки. Не обещать PDF- + экспорт сверх печати до подтверждения отдельной потребности. + +Приёмка: 20 задач пилота успешно проходят путь от запроса до нужного фрагмента; +документы без языка/текста имеют понятное состояние; файл экспорта воспроизводит +выбранную редакцию; новые правила не ухудшают замороженный relevance baseline. + +### Этап C. Возвращение к работе и контроль — P1, ориентир 3–5 недель + +Зависимости: A–B; для внешних пользователей — выбранная модель доступа и +проверенное восстановление аккаунта G01. Для закрытого пилота допустимы +создаваемые администратором внутренние аккаунты без публичной регистрации. + +Закрыть G06, G10–11, G16: серверные избранное, история и шаблоны; G09/G12 +показать как пользовательскую ленту. Добавить настройки контроля и доставки +уведомлений только после появления надёжного журнала обновлений. Выбор канала +и согласие пользователя — отдельное решение; наличие бота команды не означает +готовность продуктовых уведомлений. + +Приёмка: сохранённое доступно со второго устройства; данные разных аккаунтов +изолированы; удаление/отключение контроля работает; повторная обработка события +не дублирует сигнал. Правила хранения истории и удаления аккаунта документированы. + +### Этап D. Анализ нормы — P1/P2, ориентир 5–8 недель + +Зависимости: проверенные редакции, структура фрагментов и метаданные A–B. +Закрыть G23–24 и базовую часть G20; затем G21, G22 и G15 по результатам пилота. +Для связей сохранять источник, целевую редакцию и уверенность сопоставления. + +Приёмка: юрист проверяет не менее 30 разнообразных пар редакций, включая +перенумерацию и перемещение статей; интерфейс отличает техническую правку от +содержательной, а неопределённость показывает явно. Параллельный RU/KY-просмотр +использует одну редакцию и не выдумывает соответствия. Неуверенные ссылки +не выдаются как подтверждённые связи. Текстовый diff не считается юридическим +заключением о дате применимости нормы. + +### Этап E. Платный командный продукт — P2, ориентир 4–8 недель + +Зависимость: подтверждённые повторное использование и готовность платить. +Закрыть G02–05 и недостающую часть G01. Сначала выбрать одну понятную модель +подписки и необходимый канал оплаты; не воспроизводить весь биллинг конкурента. + +Приёмка: организация приглашает и отзывает участника; сервер проверяет права +и срок доступа; повторное платёжное событие не создаёт повторное начисление; +просроченная подписка не уничтожает сохранённые данные. Стоимость эксплуатации, +юридической редакции и поддержки учитывается в экономике тарифа. + +### Этап F. Новые источники и ответы — P2/P3, отдельная оценка + +G08, G17, G25 и оставшиеся расширения включать по измеренному спросу. +Для судебной практики сначала исследовать законность получения, полноту, +обезличивание и обновляемость; для экспертных материалов — лицензирование +и редакционную ответственность. Международные акты проверять в существующем +корпусе прежде, чем создавать отдельный загрузчик. Зарубежную базу и форум +не ставить на критический путь первого продукта. + +RAG — отдельная разработка после A–D. Начать с поиска доказательств и цитат, +затем краткого ответа. Приёмка: замороженный экспертный набор, проверка каждой +ссылки и редакции, отказ при недостатке данных и ноль критических неподтверждённых +юридических утверждений на приёмочном наборе. Это критерий допуска, а не гарантия +безошибочности вне набора. Сравнение качества ИИ конкурентов пока не выполнено. + +## 7. Проверка рыночной гипотезы и условия остановки + +Параллельно этапу A провести 12–15 интервью с юристами и бухгалтерами, включая +пользователей действующих СПС. Собирать обезличенные задачи, частоту, +потери времени, критичные источники и причины отказа от нового сервиса. +Цены сравнивать после получения актуальных коммерческих предложений. + +Предлагаемый пилот: 10–15 специалистов, 4 недели, 20 одинаковых задач с RU/KY +и простыми/сложными запросами. С согласия участников сравнить время и долю +правильных решений в текущем инструменте и «Акылдаш»; менять порядок систем, +чтобы уменьшить эффект обучения. Результат оценивает юрист по первоисточнику. + +Цели ниже — предлагаемые пороги решения, не уже достигнутые показатели: + +| Измерение | Предлагаемый порог | Решение | +| --- | --- | --- | +| Качество поиска | Recall@10 ≥ 0,90 и MRR@10 ≥ 0,75 на независимо проверенном наборе, отдельно RU и KY | При недостижении улучшать поиск до расширения функций | +| Практическая польза | Медианное время правильного выполнения задач меньше минимум на 25% | При отсутствии выигрыша пересмотреть сценарий и сегмент | +| Возвращаемость | Не менее 60% активированных участников пользуются продуктом на четвёртой неделе | При провале сначала исследовать причины, затем решать о биллинге | +| Готовность платить | Не менее трёх независимых организаций готовы на платный пилот по названной цене | Переходить к этапу E после проверки экономики | +| Доверие | Нет критических ошибок редакции/источника в приёмочных задачах | Любая такая ошибка блокирует публичные обещания надёжности | + +Малый пилот помогает выбрать направление, но не даёт оценки доли рынка. +Если пользователям необходимы источники, которые мы не можем законно получить, +либо стоимость сопровождения превышает приемлемый тариф, сузить сегмент или +остановить выбранную модель до дальнейших вложений. + +## 8. Ближайший рабочий цикл + +1. Назначить владельца продукта и юридического редактора; согласовать сегмент. +2. Зафиксировать состояние корпуса и readiness gate на актуальной main. +3. Провести интервью, собрать задачи и заморозить критерии пилота. +4. Превратить этап A и минимальную часть B в отдельные задачи с зависимостями + и критериями приёмки. Согласовать связь с существующим планом frontend, + не отменяя его gate этим документом. +5. После пилота пересчитать сроки, стоимость и порядок C–F; выбрать, какие + пробелы действительно мешают продаже, а какие можно отложить. + +Для реализации сохранять существующую архитектуру Python/SQLite/OpenSearch, +использовать текущие API и компоненты, добавлять зависимости только по +обоснованной необходимости. Изменения проводить отдельными PR с проверками, +версией при изменении кода, независимым review и changelog. Production-действия +и изменение инфраструктуры требуют действующих процедур доступа и backup. + +--- + +Повторная сверка реализации: `main` `c8d0086a9f20485c5efe6f9d3ccd476dd9f07065`. +Backend v0.13.3 · Frontend v0.3.3 · Telegram-бот v0.2.2. Это версии +исследованного кода; они не подтверждают развёртывание этих версий.