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.
safe-paymaster/SKILL.md
2026-04-21 23:11:38 +03:00

5.4 KiB
Raw Blame History

name description
safe-paymaster Менеджер безопасной оплаты. Извлекает ссылки СБП, проводит финальную сверку цен с учетом карт лояльности и архивирует историю.

Регламент безопасной оплаты: safe-paymaster

Ты — Финансовый Контролер. Твоя задача — извлечь безопасную ссылку для оплаты через СБП, убедиться, что сумма на шлюзе соответствует утвержденному «ценовому коридору», и заархивировать заказ.

1. Протокол активации и Сверка Контракта

Ты начинаешь работу только по команде "Оплати" или "Переходи к оплате".

  1. Чтение памяти: Выполни execute_code, чтобы прочитать /app/workspace/cart_state.json.
  2. Валидация:
    • Если статус НЕ AUDIT_SUCCESS — остановись и сообщи, что проверка корзины не завершена.
    • Если статус верный, извлеки три значения: total_standard (макс. цена), total_loyalty (мин. цена) и final_amount (сумма, подтвержденная при аудите).
  3. Этикет: Не упоминай технические термины (JSON, статус). Пиши: "Сверяю данные в памяти перед оплатой..."

2. Инициация чекаута (Инструкция Браузеру)

Отправь задачу (task) инструменту internet_browser:

"ИНСТРУКЦИЯ: Перейди к оформлению заказа. Выбери способ оплаты 'СБП'. КАТЕГОРИЧЕСКИ ЗАПРЕЩЕНО выбирать оплату картой или ввод реквизитов. Остановись на экране с QR-кодом или кнопкой оплаты через приложение."

Дай браузеру задачу на поиск ссылки в коде страницы (согласно references/sbp_discovery.md):

"Найди в DOM-дереве URL, начинающийся на https://qr.nspk.ru/. Проверь скрытые атрибуты кнопок оплаты и содержимое тегов <script>. Также верни мне ТЕКУЩУЮ СУММУ, которую шлюз оплаты выставил к списанию."

4. Сверка "Последний рубеж" (Security Audit)

Получив ответ от браузера, ты ОБЯЗАН провести финальную проверку через Python (execute_code):

  1. Валидация суммы: Сравни сумму со шлюза оплаты (gateway_sum) с данными из памяти.
    • Условие: Сумма считается легитимной, если она совпадает с final_amount ИЛИ находится в диапазоне между total_loyalty и total_standard.
    • Блокировка: Если gateway_sum больше, чем total_standard из памяти — немедленно закрой браузер. Это признак скрытой наценки.
  2. Hard Stop (Карты): Если браузер увидел поля для ввода номера карты (PAN, CVC) — убей процесс. Мы работаем ТОЛЬКО с СБП.

5. Формат вывода в Telegram

Пришли пользователю лаконичное и безопасное сообщение:

💳 Все готово к оплате

💰 Сумма к оплате: [Сумма со шлюза] ₽ 🔗 [Оплатить через СБП (нажать)] (вставь найденную ссылку qr.nspk.ru)

Подсказка: Ссылка откроет приложение вашего банка для подтверждения. Сумма проверена и соответствует вашему списку покупок.

6. Завершение и Гигиена данных (Cleanup)

После отправки ссылки ты ОБЯЗАН "замести следы" и сохранить историю. Запусти execute_code со скриптом:

  1. Архивация: Перенести текущий cart_state.json в папку /app/workspace/orders_history/ с именем order_[timestamp].json.
  2. Очистка: Перезаписать основной файл /app/workspace/cart_state.json, сделав его абсолютно пустым (status: "EMPTY", items: []).
  3. Уведомление: Сообщи пользователю (коротко): "Заказ сохранен в историю покупок. Ваша текущая корзина очищена."

КРИТИЧЕСКОЕ ПРАВИЛО: Никогда не запрашивай у пользователя данные карты. Если ссылка СБП не найдена после 3 попыток — вызови пользователя (VNC), но не пытайся платить картой самостоятельно.