krona-staff/docs/audit/2026-09-26/TASK-GROK.md
Victor Trushenko f5ac179623
Some checks are pending
ci / verify (push) Waiting to run
docs(audit): add 2026-09-26 audit, acceptance and executor tasks
Executors could not see the audit: Grok reported that the owner's
AUDIT.md and evidence never reached it, so its scenarios could not be
mapped to the audit IDs. Keeping the audit, the acceptance report and
the task for each executor in the repository lets Codex, Antigravity
and Grok take work and report through git.

The live-check scripts are stored as .mjs.txt so the project linter,
which type-checks every .mjs file, does not break for everyone; the
maintained version of these checks is Grok's harness in tests/e2e.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-26 15:13:56 +07:00

12 KiB
Raw Permalink Blame History

Задание для Grok: тестовый контур на живой базе и независимая приёмка

  • Репозиторий: https://git.ochenstarik.ru/ochenstarik/krona-staff
  • Основа: ветка codex/bootstrap-platform-foundation, коммит 778ba2d
  • Материалы в репозитории: docs/audit/2026-09-26/ — AUDIT.md и evidence/ со сценариями живой проверки и их выводом.

Контекст

AUDIT.md сверен с твоим аудитом 2026-09-26_full-project-audit_grok_3e20544.md. Итог сверки:

  • 22 находки подтверждены;
  • 4 подтверждены частично (F8, F11, N7, N10);
  • 1 уже исправлена (F5);
  • 1 не воспроизвелась (N13).

После твоего аудита в основную ветку влиты офлайн-синхронизация и новое оформление портала. Находки по синхронизации (S1–S9) в AUDIT.md уже учтены.

Главный урок: 156 зелёных тестов на поддельной базе не заметили, что создание сотрудника, подтверждение смены и расчёт зарплаты на реальной PostgreSQL всегда падают.

Твоя роль

Продукт ты не исправляешь — это делают Codex и Antigravity.

От тебя нужно две вещи:

  • построить тестовый контур, который ловит дефекты на настоящей базе;
  • независимо принимать каждое исправление.

Зона ответственности

Твоя зона:

  • tests/e2e/** — новый набор сквозных сценариев: живой сервер на живой PostgreSQL;
  • tests/integration/tenant-isolation.test.ts;
  • .forgejo/workflows/ci.yml и вспомогательные скрипты для тестов.

Не трогай: src/, apps/, migrations/, deploy/. Это зоны Codex и Antigravity. Если тесту нужна правка продукта, оставь замечание исполнителю.

Правила

  • Ветка grok/e2e-harness, маленькие коммиты. В теле каждого коммита объясни причину (AGENTS.md).
  • Токены и ключи в тестах генерируй случайно. Реальные ФИО и суммы не используй.
  • К каждому выводу прикладывай команду и фактический вывод. То, что не удалось проверить, помечай «не проверено» явно, как ты уже делаешь.

Задачи

№ Что сделать Готово, когда
1 N5. В тесте изоляции арендаторов очистка идёт ролью приложения, а у неё нет права DELETE на сотрудников. Перенеси очистку на роль мигратора или оберни в транзакцию с откатом Тест проходит на живой базе; CI с DATABASE_TEST_URL из-за него больше не красный
2 Набор tests/e2e. Поднять сервер на реальной PostgreSQL 17 и прогнать сценарии по всем находкам P0 и P1. За основу взять evidence/live-audit.mjs.txt и evidence/live-sync.mjs.txt. Каждый сценарий проверяет правильное поведение, поэтому сейчас он красный. Список красных сценариев и есть список открытых дефектов Есть сценарии для K1, K3, K4, K5, K6, K10, K11, K12, S1, S2, S9, N9, N12 и A4; отчёт «зелёный / красный» по каждому ID
3 Сценарии по решениям владельца (роли, точки, процесс подтверждения, согласие). Подробности — в таблице ниже Сценарии есть и пока красные; это ожидаемо
4 CI. Сервис PostgreSQL; роли как в пилоте, но мигратор без SUPERUSER. Миграции вверх, откат всех, снова вверх. Запуск tests/e2e. docker build перенести туда, где есть docker, либо вынести в отдельную задачу. Закрепить действия по SHA (F13) CI реально проверяет схему и маршруты на живой базе
5 Проверка пилотного compose тестом, как сейчас проверяется корневой: переменные с :?, нет NODE_ENV=development, у приложения нет учётных данных мигратора —
6 Приёмка. Первым проверь немедленную меру Antigravity по S1: устройство больше не создаёт и не меняет смену. Дальше после каждого PR от Codex и Antigravity прогоняй tests/e2e и целевые сценарии. На слово ничего не принимай По каждому закрытому ID есть независимое подтверждение: таблица «ID — было — стало — доказательство»
7 Повторить N13 (гонка первого расчёта) под нагрузкой: 10–50 параллельных запросов. У меня на двух запросах не воспроизвелось Вердикт с числом попыток
8 Snyk — только если владелец выдаст токен. Без токена не запускать —

Сценарии для задачи 3:

Сценарий Ожидаемый результат
Управляющий точки А запускает расчёт точки Б 403
Управляющий отправляет пакет на подтверждение 403
Бухгалтер отправляет пакет успешно; оповещение каждому руководителю ровно одно
Бухгалтер пытается подписать пакет 403
Реестр до подписи руководителя начислений и выплат нет
Руководитель подписывает начисления и выплаты зарегистрированы; пакет и его смены неизменяемы
Изменение смены после отправки подписать пакет нельзя, он возвращается бухгалтеру
Возврат с комментарием пакет у бухгалтера, комментарий сохранён
Сотрудник точки А отработал смену на точке Б смена попадает в расчёт точки Б
Сотрудник без согласия на биометрию сервер отвечает терминалу «регистрация запрещена»
Отзыв согласия статус для терминала меняется

Проверки, которым нужна Windows (DPAPI, ACL каталога данных, установщик, WinUI, реальный pipe), в твоём окружении недоступны. Отмечай их «не проверено» и ссылайся на тесты Codex.

Порядок работы с остальными

  1. Сразу: задачи 1, 2, 4 и 5. Это не зависит от других исполнителей.
  2. Задача 3 — сразу. Сценарии будут красными, пока Codex не сделает этап 4.
  3. Задача 6 — по мере поступления PR. Первым — немедленная мера Antigravity по S1, затем этап 1 Codex (K3, K4).

Отчёт

Первый PR — после задач 1, 2, 4 и 5. В нём набор сценариев и краткий отчёт: какие сценарии красные. Дальше — приёмочная таблица после каждого PR исполнителей.