Гражданская платформа

Методология

Источники данных

Основной источник — официальный API открытых данных Госдумы (api.duma.gov.ru). Система оператора СОЗД (sozd.duma.gov.ru) закрыта для автоматического доступа в robots.txt, поэтому мы не выполняем скрейпинг и используем СОЗД только как источник ссылок и файлов документов. У каждого законопроекта есть кликабельная ссылка на карточку в СОЗД и указана дата актуальности данных.

Идентификатор законопроекта — RN вида 141597-8 (номер + созыв). Синхронизация инкрементальная и идемпотентная; события дедуплицируются по паре (rn, event_hash). Если API недоступен, показываются данные из кэша с честной отметкой даты.

Автоматические пересказы

Блоки «Кратко», «Что меняется», «Кого касается» могут генерироваться автоматически и всегда помечаются плашкой «Сгенерировано автоматически». Тон строго нейтральный: мы описываем последствия, а не даём оценок. Если модель не уверена — блок не заполняется, а не заполняется догадкой. Это не юридическая консультация; первоисточник всегда рядом.

Уровень влияния и читаемость

«Уровень влияния» — расчётный балл (охват × глубина изменений), «Читаемость» — индекс сложности исходного текста. Это ориентиры, а не оценки «хорошо/плохо».

Народное голосование

Народное голосование — опрос пользователей платформы. Оно не имеет юридической силы и не является социологическим исследованием. Принцип «один человек — один голос». Данные о том, кто голосовал, и о том, как проголосовали, хранятся раздельно и не связаны напрямую: выбор записывается под разовым ballot-token, а связь «пользователь → выбор» на сервере не сохраняется. Отзыв голоса возможен до закрытия окна при наличии ballot-token. Все операции пишутся в append-only журнал с хеш-цепочкой; при аномальных всплесках голосование замораживается до ручного ревью.

Проверяемость итогов. Итог каждого опроса можно проверить независимо: обезличенный журнал публикуется на странице «Проверить итоги», где хеши записей пересчитываются прямо в браузере, а итог собирается из журнала (vote_cast минус vote_revoked по ballot-token). Формула записи: hash = sha256(prev_hash | тип | канонический JSON payload).

Важно: полноценная верификация личности (и связанная обработка персональных данных) в текущей версии не включена и будет запущена только после согласования правовой модели. Сейчас доступ к голосованию ограничен уровнем доверия аккаунта.