Страница совета ранее показывала только докторов с публикациями и предварительные Q1/Q2/К1 без порогов. Теперь единый расчёт страницы и XLSX выбирает высшую степень из истории, включает кандидатов наук и PhD и сохраняет сотрудников без доступных работ.
Оценка настроена на технические науки: 9 публикаций для доктора и 20 для кандидата/PhD, период — пять лет относительно текущей даты Москвы. Убраны дата ходатайства и сведения о монографиях. Сохраняются проверки степени, вида материала, периода и допустимого основания; К2 самостоятельно допустим только для доктора.
Добавлены подтверждённые количества, основания К2/RSCI и каталоги Q1/Q2 с категориями, источниками и проверками целостности паспортов. Связь журнала со специальностью и рассмотрение конкретной статьи показаны отдельно. XLSX содержит листы «Сотрудники», «Публикации» и «Параметры». Вступление и пояснения занимают всю доступную ширину своих блоков.
Источники на странице и в XLSX названы «Данные ВШЭ» и «ЛК сотрудника ВШЭ». Счётчик личного кабинета исключает записи, полученные только из выгрузки. Справочник публикаций обновлён, проверена воспроизводимость JSON.
Исправлены замечания ревью №168: ручные основания учитывают допустимость вида публикации; повреждение одного каталога не блокирует метрики исправного каталога.
Версии frontend/backend: 0.16.5. Прошли 302 теста приложения и браузерные проверки фильтров, навигации, мобильного вида и XLSX; 10 проверок PostgreSQL пропущены в изолированном запуске SQLite. Новое независимое ревью по указанию пользователя не запускалось.
В README закреплён обязательный порядок будущего production-выпуска: сначала перенести только недостающие записи и значения из актуальных локальных данных, сохранив заполненные значения production; затем проверить полноту и только после этого обновить приложение. Определены отсутствующие значения (0/false и пустые контейнеры не считаются пропуском), обработка конфликтов и безопасность повторного переноса. Текущая правка касается только документации; миграция не выполнялась. git diff --check прошёл.
Страница совета ранее показывала только докторов с публикациями и предварительные Q1/Q2/К1 без порогов. Теперь единый расчёт страницы и XLSX выбирает высшую степень из истории, включает кандидатов наук и PhD и сохраняет сотрудников без доступных работ.
Оценка настроена на технические науки: 9 публикаций для доктора и 20 для кандидата/PhD, период — пять лет относительно текущей даты Москвы. Убраны дата ходатайства и сведения о монографиях. Сохраняются проверки степени, вида материала, периода и допустимого основания; К2 самостоятельно допустим только для доктора.
Добавлены подтверждённые количества, основания К2/RSCI и каталоги Q1/Q2 с категориями, источниками и проверками целостности паспортов. Связь журнала со специальностью и рассмотрение конкретной статьи показаны отдельно. XLSX содержит листы «Сотрудники», «Публикации» и «Параметры». Вступление и пояснения занимают всю доступную ширину своих блоков.
Источники на странице и в XLSX названы «Данные ВШЭ» и «ЛК сотрудника ВШЭ». Счётчик личного кабинета исключает записи, полученные только из выгрузки. Справочник публикаций обновлён, проверена воспроизводимость JSON.
Исправлены замечания ревью №168: ручные основания учитывают допустимость вида публикации; повреждение одного каталога не блокирует метрики исправного каталога.
Версии frontend/backend: 0.16.5. Прошли 302 теста приложения и браузерные проверки фильтров, навигации, мобильного вида и XLSX; 10 проверок PostgreSQL пропущены в изолированном запуске SQLite. Новое независимое ревью по указанию пользователя не запускалось.
В README закреплён обязательный порядок будущего production-выпуска: сначала перенести только недостающие записи и значения из актуальных локальных данных, сохранив заполненные значения production; затем проверить полноту и только после этого обновить приложение. Определены отсутствующие значения (0/false и пустые контейнеры не считаются пропуском), обработка конфликтов и безопасность повторного переноса. Текущая правка касается только документации; миграция не выполнялась. git diff --check прошёл.
Независимое ревью коммита 24d07706e1: требуется исправить два дефекта предварительных счётчиков (P2), подробности в комментариях к строкам.
Origin проверен: admin/miem_workers. Идентичность ревьюера проверена через /user: agent (id=7), автор PR и коммита — codex (id=6).
Проверены diff, расчёт страницы/XLSX, обработка подтверждений и каталогов, тесты и статус CI. CI / test — success для этого SHA. Контрольные сценарии воспроизведены в памяти на коде PR с изолированными входными данными, без изменения файлов репозитория. Полный pytest локально не запускался: зависимости приложения/pytest в окружении отсутствуют. Проверка каталогов на текущих данных дала 229 журналов, 13 паспортов, без ошибок целостности; SHA-256 PDF проверены загрузчиком. Нормативный первоисточник npa8.pdf отсутствует в дереве PR, поэтому правильность изложенных нормативных порогов по оригиналу не подтверждена.
Правки, push и merge не выполнялись.
Независимое ревью коммита 24d07706e122b2096ceafdc4ee122882d5e5afe7: требуется исправить два дефекта предварительных счётчиков (P2), подробности в комментариях к строкам.
Origin проверен: admin/miem_workers. Идентичность ревьюера проверена через /user: agent (id=7), автор PR и коммита — codex (id=6).
Проверены diff, расчёт страницы/XLSX, обработка подтверждений и каталогов, тесты и статус CI. CI / test — success для этого SHA. Контрольные сценарии воспроизведены в памяти на коде PR с изолированными входными данными, без изменения файлов репозитория. Полный pytest локально не запускался: зависимости приложения/pytest в окружении отсутствуют. Проверка каталогов на текущих данных дала 229 журналов, 13 паспортов, без ошибок целостности; SHA-256 PDF проверены загрузчиком. Нормативный первоисточник npa8.pdf отсутствует в дереве PR, поэтому правильность изложенных нормативных порогов по оригиналу не подтверждена.
Правки, push и merge не выполнялись.
[P2] Ручное основание обходит ограничение вида материала для предварительных счётчиков. Этот цикл устанавливает q1/q2/k1/k2/rsci только по году и basis, даже если исходная публикация имеет types=['Книга'] и policy.publication_types не разрешает её зачёт. Воспроизведение: BOOK за 2024 год, подтверждение kind='monograph' и basis='К1' с applicable_year=2024, policy={}. Результат: k1_count=1 и total_count=1, хотя confirmed_count=0 и причина сообщает, что зачёт вида материала не подтверждён. До этого _unique_articles исключает известные не-статьи, а здесь флаги включаются обратно. Ошибка видна на странице и в XLSX и влияет на сортировку. Примените к ручным предварительным основаниям ограничение вида материала; дополнительные виды допускайте согласно явно подтверждённой политике. Добавьте проверку предварительных счётчиков для BOOK/monograph без разрешающей политики.
[P2] Ручное основание обходит ограничение вида материала для предварительных счётчиков. Этот цикл устанавливает q1/q2/k1/k2/rsci только по году и basis, даже если исходная публикация имеет types=['Книга'] и policy.publication_types не разрешает её зачёт. Воспроизведение: BOOK за 2024 год, подтверждение kind='monograph' и basis='К1' с applicable_year=2024, policy={}. Результат: k1_count=1 и total_count=1, хотя confirmed_count=0 и причина сообщает, что зачёт вида материала не подтверждён. До этого _unique_articles исключает известные не-статьи, а здесь флаги включаются обратно. Ошибка видна на странице и в XLSX и влияет на сортировку. Примените к ручным предварительным основаниям ограничение вида материала; дополнительные виды допускайте согласно явно подтверждённой политике. Добавьте проверку предварительных счётчиков для BOOK/monograph без разрешающей политики.
[P2] Ошибка одного снимка блокирует использование исправного второго. publication_catalog добавляет глобальные data['issues'] к проблемам каждой публикации. council_candidates затем требует not article['catalog_issues'] перед включением любой метрики каталога. Воспроизведение: заменить содержимое только q1-journals/catalog.json на {} в изолированном чтении; загрузчик сохраняет 124 журнала Q2. Для BIT Numerical Mathematics (ISSN 0006-3835) возвращается исправная запись с Q2 за 2025 год, но вместе с чужой ошибкой q1-journals, поэтому Q2/ВСЕГО для работы 2025 года не увеличиваются. Это нарушает заявленное сохранение использования исправного снимка при повреждении другого. Показывайте глобальное предупреждение отдельно от ошибок идентичности/метрик конкретной публикации и разрешайте применение полностью проверенного второго каталога. Нужна проверка сценария с одним повреждённым и одним исправным снимком на уровне счётчиков.
[P2] Ошибка одного снимка блокирует использование исправного второго. publication_catalog добавляет глобальные data['issues'] к проблемам каждой публикации. council_candidates затем требует not article['catalog_issues'] перед включением любой метрики каталога. Воспроизведение: заменить содержимое только q1-journals/catalog.json на {} в изолированном чтении; загрузчик сохраняет 124 журнала Q2. Для BIT Numerical Mathematics (ISSN 0006-3835) возвращается исправная запись с Q2 за 2025 год, но вместе с чужой ошибкой q1-journals, поэтому Q2/ВСЕГО для работы 2025 года не увеличиваются. Это нарушает заявленное сохранение использования исправного снимка при повреждении другого. Показывайте глобальное предупреждение отдельно от ошибок идентичности/метрик конкретной публикации и разрешайте применение полностью проверенного второго каталога. Нужна проверка сценария с одним повреждённым и одним исправным снимком на уровне счётчиков.
Повторное независимое ревью a3f4a5b321: оба замечания P2 из review #168 устранены. По исправлениям новых блокирующих замечаний нет.
Ручные основания теперь учитывают согласованный вид материала и подтверждённую policy.publication_types. Неподтверждённая политика и конфликт вида не возвращают книгу в предварительные счётчики. Подтверждённый зачёт использует ту же проверку допустимости типа.
Ошибка снимка остаётся глобальным предупреждением; ошибки конкретной публикации отделены. При повреждении любого одного из Q1/Q2 исправный второй продолжает давать предварительные метрики. Проверки противоречивых ISSN и названий сохранены.
Проверка: просмотрен весь diff от 24d0770 до текущего SHA, включая добавленные регрессионные тесты страницы/XLSX. В памяти на функциях текущего PR, с изолированными входами и без записи файлов, прошли 20 комбинаций ручных оснований/политики/исходного вида, 3 сценария неподтверждённой политики и конфликтов, оба варианта повреждения одного каталога и проверки идентичности журналов. Исправные каталоги: 229 журналов, 13 паспортов, без ошибок целостности. git diff --check — успешно. Версии согласованно повышены до 0.16.1.
Ограничение: полный pytest локально не запускался — зависимости отсутствуют. CI нового SHA пока pending (Waiting to run); это одобрение исправлений по коду, успешный результат CI ещё не подтверждён. Проверка нормативных порогов по отсутствующему первоисточнику npa8.pdf остаётся вне подтверждённого результата.
Origin и независимость аккаунта повторно проверены: reviewer agent (id=7), автор PR и новых коммитов codex (id=6). HEAD перед публикацией ревью не изменился. Правки, push и merge не выполнялись.
Повторное независимое ревью a3f4a5b32137fafca4e4b9cab850d10e5cf3ab7d: оба замечания P2 из review #168 устранены. По исправлениям новых блокирующих замечаний нет.
1. Ручные основания теперь учитывают согласованный вид материала и подтверждённую policy.publication_types. Неподтверждённая политика и конфликт вида не возвращают книгу в предварительные счётчики. Подтверждённый зачёт использует ту же проверку допустимости типа.
2. Ошибка снимка остаётся глобальным предупреждением; ошибки конкретной публикации отделены. При повреждении любого одного из Q1/Q2 исправный второй продолжает давать предварительные метрики. Проверки противоречивых ISSN и названий сохранены.
Проверка: просмотрен весь diff от 24d0770 до текущего SHA, включая добавленные регрессионные тесты страницы/XLSX. В памяти на функциях текущего PR, с изолированными входами и без записи файлов, прошли 20 комбинаций ручных оснований/политики/исходного вида, 3 сценария неподтверждённой политики и конфликтов, оба варианта повреждения одного каталога и проверки идентичности журналов. Исправные каталоги: 229 журналов, 13 паспортов, без ошибок целостности. git diff --check — успешно. Версии согласованно повышены до 0.16.1.
Ограничение: полный pytest локально не запускался — зависимости отсутствуют. CI нового SHA пока pending (Waiting to run); это одобрение исправлений по коду, успешный результат CI ещё не подтверждён. Проверка нормативных порогов по отсутствующему первоисточнику npa8.pdf остаётся вне подтверждённого результата.
Origin и независимость аккаунта повторно проверены: reviewer agent (id=7), автор PR и новых коммитов codex (id=6). HEAD перед публикацией ревью не изменился. Правки, push и merge не выполнялись.
Независимое ревью текущего HEAD 33f5a61865. Замечания review #168 остаются исправленными. Новое замечание P2 — обязательный порядок миграции перед будущим выпуском в production, с учётом уточнения пользователя в текущей сессии.
Локальная БД продолжит обогащаться, production пока работает на старой стабильной версии. Поэтому миграцию сейчас выполнять не требуется; в README нужно закрепить её как обязательный шаг перед будущим production-обновлением. Переносить только отсутствующие в production записи/значения, сохранять существующие заполненные значения, конфликты рассматривать отдельно. Подробности и предлагаемая формулировка — в комментарии к README.
Проверки: просмотрены изменения после a3f4a5b, включая новый справочник, расчёт, источники, интерфейс/XLSX, версии 0.16.5 и тесты. Удалено ровно 797 исходных строк; других добавленных/изменённых записей справочника нет. 49 ФИО отсутствуют в новом индексе. На текущих функциях в памяти проверен сценарий экземпляра без локального обогащения: для этих 49 сотрудников прежний справочник давал 127 работ и 56 предварительных зачётов, сокращённый — 0/0. Для уже сохранённой статьи DOI 10.1103/physrevb.110.134521 без csv_enrichment число уникальных работ остаётся 1, но после сокращения справочника Q1 и ВСЕГО меняются с 1 на 0. Это подтверждает необходимость переноса метаданных даже при наличии самих статей в production.
JSON воспроизводится из текущего CSV. Каталоги: 229 журналов, 13 паспортов, без ошибок целостности. Повторные проверки прежних исправлений: 10 комбинаций ручных оснований/политики и оба варианта повреждения одного каталога прошли. git diff --check — успешно.
Ограничения: полный pytest локально не запускался, зависимости отсутствуют. CI текущего SHA пока pending (Waiting to run). Данные production не читались и не изменялись; описанные сценарии использовали изолированные входы. Нормативный первоисточник npa8.pdf по-прежнему отсутствует в дереве PR, проверка порогов по оригиналу не подтверждена.
Origin совпадает с admin/miem_workers. Reviewer agent (id=7) независим от автора PR codex (id=6); новые Git-коммиты также подписаны именем codex. HEAD перед публикацией проверен. Правки, push и merge не выполнялись.
Независимое ревью текущего HEAD 33f5a61865d7b4889d6cc6888fe41c45cb3581b7. Замечания review #168 остаются исправленными. Новое замечание P2 — обязательный порядок миграции перед будущим выпуском в production, с учётом уточнения пользователя в текущей сессии.
Локальная БД продолжит обогащаться, production пока работает на старой стабильной версии. Поэтому миграцию сейчас выполнять не требуется; в README нужно закрепить её как обязательный шаг перед будущим production-обновлением. Переносить только отсутствующие в production записи/значения, сохранять существующие заполненные значения, конфликты рассматривать отдельно. Подробности и предлагаемая формулировка — в комментарии к README.
Проверки: просмотрены изменения после a3f4a5b, включая новый справочник, расчёт, источники, интерфейс/XLSX, версии 0.16.5 и тесты. Удалено ровно 797 исходных строк; других добавленных/изменённых записей справочника нет. 49 ФИО отсутствуют в новом индексе. На текущих функциях в памяти проверен сценарий экземпляра без локального обогащения: для этих 49 сотрудников прежний справочник давал 127 работ и 56 предварительных зачётов, сокращённый — 0/0. Для уже сохранённой статьи DOI 10.1103/physrevb.110.134521 без csv_enrichment число уникальных работ остаётся 1, но после сокращения справочника Q1 и ВСЕГО меняются с 1 на 0. Это подтверждает необходимость переноса метаданных даже при наличии самих статей в production.
JSON воспроизводится из текущего CSV. Каталоги: 229 журналов, 13 паспортов, без ошибок целостности. Повторные проверки прежних исправлений: 10 комбинаций ручных оснований/политики и оба варианта повреждения одного каталога прошли. git diff --check — успешно.
Ограничения: полный pytest локально не запускался, зависимости отсутствуют. CI текущего SHA пока pending (Waiting to run). Данные production не читались и не изменялись; описанные сценарии использовали изолированные входы. Нормативный первоисточник npa8.pdf по-прежнему отсутствует в дереве PR, проверка порогов по оригиналу не подтверждена.
Origin совпадает с admin/miem_workers. Reviewer agent (id=7) независим от автора PR codex (id=6); новые Git-коммиты также подписаны именем codex. HEAD перед публикацией проверен. Правки, push и merge не выполнялись.
HTTP-запросах. В интерфейсе и XLSX используются названия «Данные ВШЭ» (выгрузка из базы публикаций ВШЭ) и «ЛК сотрудника ВШЭ» (публикации из личного кабинета). Номера строк выгрузки сохраняются для проверки источника. Показываются сотрудники с обнаруженной или подтверждённой степенью доктора, кандидата наук или PhD.
После обновления CSV пересоздайте JSON до сборки/развёртывания сервиса:
При сверке 08.10.2026 с локальной БД workers из исходной выгрузки удалены 797 строк, однозначно найденных у всех указанных авторов. Их метаданные перенесены в `raw_data.csv_enrichment` 1226 существующих публикаций; парсер сохраняет это обогащение при обновлении записи. Выгрузка теперь содержит 1000 строк и 776 ФИО. Резервные копии исходной выгрузки, JSON и записей БД сохранены в `.impeccable/review/hse-source-backup/` и `.impeccable/review/workers-enrichment-backup.json` (не публикуются в Git). Строки с конфликтами или неполными связями авторов сохранены. Для другого экземпляра БД перенос метаданных из исходной выгрузки необходимо выполнить до использования сокращённого файла: сам Git-коммит данные БД не переносит.
[P2] Закрепите обязательную миграцию недостающих данных перед будущим production-выпуском. Здесь описан разовый перенос в локальную БД и предупреждение для другого экземпляра, но не установлен требуемый пользователем порядок для production и запрет перезаписи его существующих значений. После удаления 797 строк обычное обновление Git не переносит их метаданные: даже при наличии статьи в production без csv_enrichment её Q1/ВСЕГО могут уменьшиться (воспроизведено для DOI 10.1103/physrevb.110.134521: 1 → 0).
С учётом уточнения пользователя локальная БД будет обогащаться дальше, а production пока должен оставаться на стабильной версии. Просьба добавить в README явное правило: «Перед обновлением production до этой версии обязательно перенести недостающие данные из актуальной на момент выпуска локальной БД. Добавлять только отсутствующие записи и значения полей, включая недостающие ключи csv_enrichment; уже заполненные значения production не перезаписывать и не удалять. Неоднозначные совпадения и конфликты фиксировать отдельно. Перед переносом создать резервную копию production, выполнить предварительное сравнение и после переноса проверить полноту данных. Обновлять приложение и использовать сокращённый справочник только после успешной проверки миграции. Полная замена production-БД локальной копией недопустима». Повторный перенос должен быть безопасен и не давать дублей. Понятие отсутствующего значения для соответствующих полей должно быть явным, чтобы 0/false не считались пропуском. Это требование к будущему выпуску; выполнять миграцию в текущей reviewer-сессии не нужно.
[P2] Закрепите обязательную миграцию недостающих данных перед будущим production-выпуском. Здесь описан разовый перенос в локальную БД и предупреждение для другого экземпляра, но не установлен требуемый пользователем порядок для production и запрет перезаписи его существующих значений. После удаления 797 строк обычное обновление Git не переносит их метаданные: даже при наличии статьи в production без csv_enrichment её Q1/ВСЕГО могут уменьшиться (воспроизведено для DOI 10.1103/physrevb.110.134521: 1 → 0).
С учётом уточнения пользователя локальная БД будет обогащаться дальше, а production пока должен оставаться на стабильной версии. Просьба добавить в README явное правило: «Перед обновлением production до этой версии обязательно перенести недостающие данные из актуальной на момент выпуска локальной БД. Добавлять только отсутствующие записи и значения полей, включая недостающие ключи csv_enrichment; уже заполненные значения production не перезаписывать и не удалять. Неоднозначные совпадения и конфликты фиксировать отдельно. Перед переносом создать резервную копию production, выполнить предварительное сравнение и после переноса проверить полноту данных. Обновлять приложение и использовать сокращённый справочник только после успешной проверки миграции. Полная замена production-БД локальной копией недопустима». Повторный перенос должен быть безопасен и не давать дублей. Понятие отсутствующего значения для соответствующих полей должно быть явным, чтобы 0/false не считались пропуском. Это требование к будущему выпуску; выполнять миграцию в текущей reviewer-сессии не нужно.
Повторное независимое ревью HEAD 2484bad0fa: замечание P2 из review #170 устранено. По текущему исправлению блокирующих замечаний нет.
README явно закрепляет обязательный перенос актуальных на момент будущего выпуска локальных данных до обновления production и использования сокращённого справочника. Указаны резервная копия, предварительная сверка, сопоставление по устойчивым идентификаторам, добавление только отсутствующих записей/значений и вложенных JSON-ключей, сохранение заполненных данных production, определение отсутствующих значений без приравнивания 0/false/[]/{} к пропуску, отдельный разбор конфликтов, безопасность повторного переноса и проверка полноты/счётчиков. Учтены параллельные изменения production. Полная замена production-БД запрещена; локальная БД может обогащаться дальше, миграция относится к будущему выпуску.
Проверен весь diff после 33f5a61: изменены только README.md и CHANGELOG.md, код и данные не затронуты. git diff --check — успешно. CI / test (pull_request) для текущего SHA — success (9m26s), диагностический production job штатно skipped. Новые локальные тесты для текстовой правки не запускались.
Origin совпадает с admin/miem_workers. Gitea-аккаунт reviewer agent (id=7) независим от автора PR codex (id=6), новый коммит authored/committed codex. HEAD непосредственно перед публикацией сверён.
Это одобрение исправления документации, не подтверждение выполненной миграции: production не читался и не изменялся, обязательная проверка переноса остаётся шагом будущего выпуска. Правки, push и merge в reviewer-сессии не выполнялись.
Повторное независимое ревью HEAD 2484bad0fa00390749244b575f84a3ff7bb58850: замечание P2 из review #170 устранено. По текущему исправлению блокирующих замечаний нет.
README явно закрепляет обязательный перенос актуальных на момент будущего выпуска локальных данных до обновления production и использования сокращённого справочника. Указаны резервная копия, предварительная сверка, сопоставление по устойчивым идентификаторам, добавление только отсутствующих записей/значений и вложенных JSON-ключей, сохранение заполненных данных production, определение отсутствующих значений без приравнивания 0/false/[]/{} к пропуску, отдельный разбор конфликтов, безопасность повторного переноса и проверка полноты/счётчиков. Учтены параллельные изменения production. Полная замена production-БД запрещена; локальная БД может обогащаться дальше, миграция относится к будущему выпуску.
Проверен весь diff после 33f5a61: изменены только README.md и CHANGELOG.md, код и данные не затронуты. git diff --check — успешно. CI / test (pull_request) для текущего SHA — success (9m26s), диагностический production job штатно skipped. Новые локальные тесты для текстовой правки не запускались.
Origin совпадает с admin/miem_workers. Gitea-аккаунт reviewer agent (id=7) независим от автора PR codex (id=6), новый коммит authored/committed codex. HEAD непосредственно перед публикацией сверён.
Это одобрение исправления документации, не подтверждение выполненной миграции: production не читался и не изменялся, обязательная проверка переноса остаётся шагом будущего выпуска. Правки, push и merge в reviewer-сессии не выполнялись.
admin
merged commit b777bb9e16 into main2026-10-08 19:24:08 +00:00
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Страница совета ранее показывала только докторов с публикациями и предварительные Q1/Q2/К1 без порогов. Теперь единый расчёт страницы и XLSX выбирает высшую степень из истории, включает кандидатов наук и PhD и сохраняет сотрудников без доступных работ.
Оценка настроена на технические науки: 9 публикаций для доктора и 20 для кандидата/PhD, период — пять лет относительно текущей даты Москвы. Убраны дата ходатайства и сведения о монографиях. Сохраняются проверки степени, вида материала, периода и допустимого основания; К2 самостоятельно допустим только для доктора.
Добавлены подтверждённые количества, основания К2/RSCI и каталоги Q1/Q2 с категориями, источниками и проверками целостности паспортов. Связь журнала со специальностью и рассмотрение конкретной статьи показаны отдельно. XLSX содержит листы «Сотрудники», «Публикации» и «Параметры». Вступление и пояснения занимают всю доступную ширину своих блоков.
Источники на странице и в XLSX названы «Данные ВШЭ» и «ЛК сотрудника ВШЭ». Счётчик личного кабинета исключает записи, полученные только из выгрузки. Справочник публикаций обновлён, проверена воспроизводимость JSON.
Исправлены замечания ревью №168: ручные основания учитывают допустимость вида публикации; повреждение одного каталога не блокирует метрики исправного каталога.
Версии frontend/backend: 0.16.5. Прошли 302 теста приложения и браузерные проверки фильтров, навигации, мобильного вида и XLSX; 10 проверок PostgreSQL пропущены в изолированном запуске SQLite. Новое независимое ревью по указанию пользователя не запускалось.
В README закреплён обязательный порядок будущего production-выпуска: сначала перенести только недостающие записи и значения из актуальных локальных данных, сохранив заполненные значения production; затем проверить полноту и только после этого обновить приложение. Определены отсутствующие значения (0/false и пустые контейнеры не считаются пропуском), обработка конфликтов и безопасность повторного переноса. Текущая правка касается только документации; миграция не выполнялась. git diff --check прошёл.
Независимое ревью коммита
24d07706e1: требуется исправить два дефекта предварительных счётчиков (P2), подробности в комментариях к строкам.Origin проверен: admin/miem_workers. Идентичность ревьюера проверена через /user: agent (id=7), автор PR и коммита — codex (id=6).
Проверены diff, расчёт страницы/XLSX, обработка подтверждений и каталогов, тесты и статус CI. CI / test — success для этого SHA. Контрольные сценарии воспроизведены в памяти на коде PR с изолированными входными данными, без изменения файлов репозитория. Полный pytest локально не запускался: зависимости приложения/pytest в окружении отсутствуют. Проверка каталогов на текущих данных дала 229 журналов, 13 паспортов, без ошибок целостности; SHA-256 PDF проверены загрузчиком. Нормативный первоисточник npa8.pdf отсутствует в дереве PR, поэтому правильность изложенных нормативных порогов по оригиналу не подтверждена.
Правки, push и merge не выполнялись.
@@ -211,0 +270,4 @@article[metric["quartile"].lower()] = Truefor proof in proofs:for basis in proof.get("bases", []):if not isinstance(basis, dict) or basis.get("applicable_year") != article["year"] or article["year"] is None or not start.year <= article["year"] <= end.year:[P2] Ручное основание обходит ограничение вида материала для предварительных счётчиков. Этот цикл устанавливает q1/q2/k1/k2/rsci только по году и basis, даже если исходная публикация имеет types=['Книга'] и policy.publication_types не разрешает её зачёт. Воспроизведение: BOOK за 2024 год, подтверждение kind='monograph' и basis='К1' с applicable_year=2024, policy={}. Результат: k1_count=1 и total_count=1, хотя confirmed_count=0 и причина сообщает, что зачёт вида материала не подтверждён. До этого _unique_articles исключает известные не-статьи, а здесь флаги включаются обратно. Ошибка видна на странице и в XLSX и влияет на сортировку. Примените к ручным предварительным основаниям ограничение вида материала; дополнительные виды допускайте согласно явно подтверждённой политике. Добавьте проверку предварительных счётчиков для BOOK/monograph без разрешающей политики.
@@ -0,0 +142,4 @@def publication_catalog(identifiers, names, specialty=""):data = catalog()matches = set().union(*(data["by_issn"].get(issn(value), set()) for value in identifiers))issues = list(data["issues"])[P2] Ошибка одного снимка блокирует использование исправного второго. publication_catalog добавляет глобальные data['issues'] к проблемам каждой публикации. council_candidates затем требует not article['catalog_issues'] перед включением любой метрики каталога. Воспроизведение: заменить содержимое только q1-journals/catalog.json на {} в изолированном чтении; загрузчик сохраняет 124 журнала Q2. Для BIT Numerical Mathematics (ISSN 0006-3835) возвращается исправная запись с Q2 за 2025 год, но вместе с чужой ошибкой q1-journals, поэтому Q2/ВСЕГО для работы 2025 года не увеличиваются. Это нарушает заявленное сохранение использования исправного снимка при повреждении другого. Показывайте глобальное предупреждение отдельно от ошибок идентичности/метрик конкретной публикации и разрешайте применение полностью проверенного второго каталога. Нужна проверка сценария с одним повреждённым и одним исправным снимком на уровне счётчиков.
Повторное независимое ревью
a3f4a5b321: оба замечания P2 из review #168 устранены. По исправлениям новых блокирующих замечаний нет.Проверка: просмотрен весь diff от
24d0770до текущего SHA, включая добавленные регрессионные тесты страницы/XLSX. В памяти на функциях текущего PR, с изолированными входами и без записи файлов, прошли 20 комбинаций ручных оснований/политики/исходного вида, 3 сценария неподтверждённой политики и конфликтов, оба варианта повреждения одного каталога и проверки идентичности журналов. Исправные каталоги: 229 журналов, 13 паспортов, без ошибок целостности. git diff --check — успешно. Версии согласованно повышены до 0.16.1.Ограничение: полный pytest локально не запускался — зависимости отсутствуют. CI нового SHA пока pending (Waiting to run); это одобрение исправлений по коду, успешный результат CI ещё не подтверждён. Проверка нормативных порогов по отсутствующему первоисточнику npa8.pdf остаётся вне подтверждённого результата.
Origin и независимость аккаунта повторно проверены: reviewer agent (id=7), автор PR и новых коммитов codex (id=6). HEAD перед публикацией ревью не изменился. Правки, push и merge не выполнялись.
New commits pushed, approval review dismissed automatically according to repository settings
Независимое ревью текущего HEAD
33f5a61865. Замечания review #168 остаются исправленными. Новое замечание P2 — обязательный порядок миграции перед будущим выпуском в production, с учётом уточнения пользователя в текущей сессии.Локальная БД продолжит обогащаться, production пока работает на старой стабильной версии. Поэтому миграцию сейчас выполнять не требуется; в README нужно закрепить её как обязательный шаг перед будущим production-обновлением. Переносить только отсутствующие в production записи/значения, сохранять существующие заполненные значения, конфликты рассматривать отдельно. Подробности и предлагаемая формулировка — в комментарии к README.
Проверки: просмотрены изменения после
a3f4a5b, включая новый справочник, расчёт, источники, интерфейс/XLSX, версии 0.16.5 и тесты. Удалено ровно 797 исходных строк; других добавленных/изменённых записей справочника нет. 49 ФИО отсутствуют в новом индексе. На текущих функциях в памяти проверен сценарий экземпляра без локального обогащения: для этих 49 сотрудников прежний справочник давал 127 работ и 56 предварительных зачётов, сокращённый — 0/0. Для уже сохранённой статьи DOI 10.1103/physrevb.110.134521 без csv_enrichment число уникальных работ остаётся 1, но после сокращения справочника Q1 и ВСЕГО меняются с 1 на 0. Это подтверждает необходимость переноса метаданных даже при наличии самих статей в production.JSON воспроизводится из текущего CSV. Каталоги: 229 журналов, 13 паспортов, без ошибок целостности. Повторные проверки прежних исправлений: 10 комбинаций ручных оснований/политики и оба варианта повреждения одного каталога прошли. git diff --check — успешно.
Ограничения: полный pytest локально не запускался, зависимости отсутствуют. CI текущего SHA пока pending (Waiting to run). Данные production не читались и не изменялись; описанные сценарии использовали изолированные входы. Нормативный первоисточник npa8.pdf по-прежнему отсутствует в дереве PR, проверка порогов по оригиналу не подтверждена.
Origin совпадает с admin/miem_workers. Reviewer agent (id=7) независим от автора PR codex (id=6); новые Git-коммиты также подписаны именем codex. HEAD перед публикацией проверен. Правки, push и merge не выполнялись.
@@ -216,2 +213,3 @@HTTP-запросах. В интерфейсе и XLSX используются названия «Данные ВШЭ» (выгрузка из базы публикаций ВШЭ) и «ЛК сотрудника ВШЭ» (публикации из личного кабинета). Номера строк выгрузки сохраняются для проверки источника. Показываются сотрудники с обнаруженной или подтверждённой степенью доктора, кандидата наук или PhD.После обновления CSV пересоздайте JSON до сборки/развёртывания сервиса:При сверке 08.10.2026 с локальной БД workers из исходной выгрузки удалены 797 строк, однозначно найденных у всех указанных авторов. Их метаданные перенесены в `raw_data.csv_enrichment` 1226 существующих публикаций; парсер сохраняет это обогащение при обновлении записи. Выгрузка теперь содержит 1000 строк и 776 ФИО. Резервные копии исходной выгрузки, JSON и записей БД сохранены в `.impeccable/review/hse-source-backup/` и `.impeccable/review/workers-enrichment-backup.json` (не публикуются в Git). Строки с конфликтами или неполными связями авторов сохранены. Для другого экземпляра БД перенос метаданных из исходной выгрузки необходимо выполнить до использования сокращённого файла: сам Git-коммит данные БД не переносит.[P2] Закрепите обязательную миграцию недостающих данных перед будущим production-выпуском. Здесь описан разовый перенос в локальную БД и предупреждение для другого экземпляра, но не установлен требуемый пользователем порядок для production и запрет перезаписи его существующих значений. После удаления 797 строк обычное обновление Git не переносит их метаданные: даже при наличии статьи в production без csv_enrichment её Q1/ВСЕГО могут уменьшиться (воспроизведено для DOI 10.1103/physrevb.110.134521: 1 → 0).
С учётом уточнения пользователя локальная БД будет обогащаться дальше, а production пока должен оставаться на стабильной версии. Просьба добавить в README явное правило: «Перед обновлением production до этой версии обязательно перенести недостающие данные из актуальной на момент выпуска локальной БД. Добавлять только отсутствующие записи и значения полей, включая недостающие ключи csv_enrichment; уже заполненные значения production не перезаписывать и не удалять. Неоднозначные совпадения и конфликты фиксировать отдельно. Перед переносом создать резервную копию production, выполнить предварительное сравнение и после переноса проверить полноту данных. Обновлять приложение и использовать сокращённый справочник только после успешной проверки миграции. Полная замена production-БД локальной копией недопустима». Повторный перенос должен быть безопасен и не давать дублей. Понятие отсутствующего значения для соответствующих полей должно быть явным, чтобы 0/false не считались пропуском. Это требование к будущему выпуску; выполнять миграцию в текущей reviewer-сессии не нужно.
Повторное независимое ревью HEAD
2484bad0fa: замечание P2 из review #170 устранено. По текущему исправлению блокирующих замечаний нет.README явно закрепляет обязательный перенос актуальных на момент будущего выпуска локальных данных до обновления production и использования сокращённого справочника. Указаны резервная копия, предварительная сверка, сопоставление по устойчивым идентификаторам, добавление только отсутствующих записей/значений и вложенных JSON-ключей, сохранение заполненных данных production, определение отсутствующих значений без приравнивания 0/false/[]/{} к пропуску, отдельный разбор конфликтов, безопасность повторного переноса и проверка полноты/счётчиков. Учтены параллельные изменения production. Полная замена production-БД запрещена; локальная БД может обогащаться дальше, миграция относится к будущему выпуску.
Проверен весь diff после
33f5a61: изменены только README.md и CHANGELOG.md, код и данные не затронуты. git diff --check — успешно. CI / test (pull_request) для текущего SHA — success (9m26s), диагностический production job штатно skipped. Новые локальные тесты для текстовой правки не запускались.Origin совпадает с admin/miem_workers. Gitea-аккаунт reviewer agent (id=7) независим от автора PR codex (id=6), новый коммит authored/committed codex. HEAD непосредственно перед публикацией сверён.
Это одобрение исправления документации, не подтверждение выполненной миграции: production не читался и не изменялся, обязательная проверка переноса остаётся шагом будущего выпуска. Правки, push и merge в reviewer-сессии не выполнялись.