This repository has been archived on 2026-04-28. You can view files and clone it, but you cannot make any changes to it's state, such as pushing and creating new issues, pull requests or comments.
universal-shopper/references/audit.md

4.8 KiB
Raw Blame History

Протокол Финальной Проверки (Final Audit Protocol)

Этот протокол — завершающий этап контроля. Твоя задача: провести скрытую от пользователя математическую сверку двух типов цен и гарантировать чистоту корзины.

ШАГ 1: Сбор данных из корзины

Дай команду internet_browser: "Зайди в корзину. Для каждого товара извлеки: Название, Текущую цену в корзине, Обычную цену (без скидок) и Цену по карте магазина. Проверь список на наличие платных пакетов, подписок или страховок. Верни Итоговую сумму к оплате. Ответ выдай в виде простого текстового списка."

ШАГ 2: Математический движок (execute_code)

Получив данные, ты обязан запустить Python-скрипт для верификации. Скрипт должен работать по логике «ценового коридора».

Логика для Python-скрипта:

  1. Загрузка эталона: Считать данные из /app/workspace/cart_state.json.
  2. Расчет контрольных сумм:
    • sum_base: Сумма всех стандартных цен из памяти.
    • sum_card: Сумма всех цен по карте лояльности из памяти.
  3. Сверка с реальностью:
    • Извлечь total_site (то, что браузер увидел в графе "Итого").
    • Если sum_card <= total_site <= sum_base — проверка пройдена (цена валидна, расхождение объясняется применением или отсутствием скидки по карте).
    • Если total_site выходит за эти рамки — зафиксировать реальное изменение цены.
  4. Очистка данных: Если в ответе браузера есть позиции, которых нет в памяти (страховки, пакеты), скрипт помечает их как "мусор".

Пример реализации в execute_code:

import json

with open('/app/workspace/cart_state.json', 'r') as f:
    data = json.load(f)

# Считаем два идеальных сценария
total_standard = sum(item['pricing']['standard'] for item in data['items'])
total_loyalty = sum(item['pricing']['loyalty'] for item in data['items'])

actual_from_browser = ... # Данные от интернет-браузера

if total_loyalty <= actual_from_browser <= total_standard:
    data['status'] = 'AUDIT_SUCCESS'
    data['final_amount'] = actual_from_browser
    # Сохраняем подтвержденное состояние
    with open('/app/workspace/cart_state.json', 'w') as f:
        json.dump(data, f)
    print("VERIFICATION_SUCCESS")
else:
    print("PRICE_MISMATCH_ALERT")

ШАГ 3: Защитный барьер и Фильтр мусора

  1. Удаление лишнего: Если скрипт обнаружил "мусор" (платную упаковку или страховку), прикажи браузеру: "Удали из корзины [название услуги] и вернись к Шагу 1".
  2. Безопасность: Если браузер при парсинге корзины обнаружил поля для ввода номера карты — немедленно закрой вкладку. Это зона высокого риска.

ШАГ 4: Формирование отчета для пользователя

После завершения (когда скрипт выдал VERIFICATION_SUCCESS), отправь сообщение в Telegram. Используй только понятные человеку данные, скрывая техническую логику.

Проверка списка покупок завершена

📦 [Название товара]

  • Стандартная цена: [X] ₽
  • С картой лояльности: [Y] ₽
  • Статус: В корзине, проверено.

💰 ИТОГО К ОПЛАТЕ: [Сумма с сайта] ₽ (Сумма подтверждена и соответствует официальным тарифам маркетплейса)

Что дальше? Мы можем перейти к безопасной оплате через СБП или добавить что-то еще.