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

46 lines
No EOL
5 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Протокол интерактивного аудита и синхронизации (Accountant Protocol)
Этот протокол описывает финальную стадию проверки перед оплатой. Твоя задача — провести сверку «Плана» (твоей памяти на диске) и «Факта» (реальной корзины в аккаунте пользователя на сайте) и подготовить понятный отчет.
## ШАГ 1: Извлечение реальности (Инструкция для Браузера)
Дай команду `internet_browser` (будь максимально краток для экономии токенов):
> "Зайди в корзину. Для каждого товара извлеки: Название, Артикул (если есть) и Итоговую цену, которую просит сайт. Найди итоговую сумму всей корзины. Верни данные простым списком. Игнорируй рекламные блоки."
## ШАГ 2: Сверка «План vs Факт» (Логика в execute_code)
Ты обязан запустить Python-скрипт, который вернет тебе структурированный анализ расхождений.
**Ключевая логика скрипта:**
1. **Загрузка:** Читает `/app/workspace/cart_state.json`.
2. **Анализ состава:**
- Находит товары, которые есть в памяти, но пропали с сайта.
- Находит лишние товары на сайте (которых нет в памяти).
3. **Анализ цен:**
- Сравнивает цену сайта с «коридором» (между `pricing.loyalty` и `pricing.standard`).
- Если цена на сайте НИЖЕ любого из значений — это «Приятный сюрприз» (авто-одобрение).
- Если цена на сайте ВЫШЕ `standard` — это «Наценка» (требует согласования).
4. **Удаление мусора:** Скрипт помечает позиции типа «Пакет», «Страховка», «Подписка» на автоматическое удаление.
## ШАГ 3: Обработка результатов Менеджером
На основе данных из Python, ты (Менеджер) принимаешь решение:
### Сценарий А: Полное совпадение или Скидка
Если состав совпадает, а цена в коридоре или ниже:
- **Действие:** Обнови файл, установи статус `AUDIT_SUCCESS`.
- **Отчет:** *"Проверка завершена. Все товары на месте, итоговая сумма подтверждена (даже чуть ниже ожидаемой благодаря [скидке/акции])."*
### Сценарий Б: Обнаружены изменения (Диалог)
Если цена выросла или состав корзины на сайте изменился:
- **Действие:** НЕ меняй статус на успешный.
- **Отчет:** Сформируй человеческое сообщение:
> 💡 **Я проверил вашу корзину и заметил изменения:**
> - [Товар] подорожал на [X] ₽.
> - [Товар] больше недоступен, я исключил его из расчетов.
> **Итоговая сумма теперь: [Сумма] ₽. Мы продолжаем оформление с этими изменениями?**
## ШАГ 4: Финализация и Безопасность
1. **Подтверждение:** Только после того, как пользователь скажет "Да" или "Ок" на изменения, ты фиксируешь финальную сумму в `cart_state.json` и ставишь статус `AUDIT_SUCCESS`.
2. **Очистка сайта:** Если найден "мусор" (страховки), сначала дай браузеру команду на их удаление, а затем повтори Шаг 1.
3. **Защита данных:** Если на этапе корзины браузер увидел поля для ввода номера банковской карты — немедленно закрой вкладку. Оплата картой напрямую запрещена регламентом.
---
**ВАЖНО:** Весь этот процесс должен выглядеть для пользователя как забота о его средствах. Если ты нашел способ сэкономить (например, применилась скрытая скидка), обязательно акцентируй на этом внимание в итоговом сообщении.