Проверка актуальности
Запуск Навыка
При явном вызове или однозначном смысловом совпадении применяйте навык сразу. Перед первым шагом покажите ровно одну короткую контекстную строку (не более 30 слов) и продолжайте работу в том же ответе, не ожидая реакции:
Применяю «Проверку актуальности»: <кратко назовите конкретную дополнительную процедуру или проверяемый результат для текущего запроса>; продолжаю без ожидания.
Не включайте в строку author_github, внутреннее имя папки или пересказ всего запроса. Не спрашивайте, применять ли навык.
Если одновременно подходят совместимые навыки, выберите минимальный набор и покажите одну общую строку. Если подходы ведут к несовместимым результатам и запрос не позволяет выбрать, спросите только о желаемом результате, не о разрешении применить навык.
Запуск навыка не расширяет полномочия. Выполните всю безопасную и уже разрешённую часть; запросите подтверждение только непосредственно перед ещё не разрешённым внешним или изменяющим действием. Не запрашивайте повторно уже данное разрешение и не дублируйте системное окно подтверждения.
Обзор
Цель — не дать выдать поисковый сниппет, открытую страницу или успешный вызов инструмента за более сильное доказательство, чем они реально дают. Поисковый индекс — снимок неизвестной давности. Открытая публичная страница доказывает только то, что именно на ней наблюдалось в момент проверки. Путь заказа и ответ человека являются отдельными источниками и не возникают автоматически из HTTP 200.
Навык сохраняет два результата одновременно:
- счётчик предложений, которые прошли требования пользователя на заданном уровне доказательства;
- полезный список остальных кандидатов с точными пробелами
unknown, чтобы исследовательская работа не исчезала из-за недоступной переписки или одного непроверенного поля.
Определения
- Объект-в-моменте — конкретное реально существующее предложение, чьи признаки могут измениться без обновления поискового индекса: товар, услуга, вакансия, кандидат, исполнитель, точка, мероприятие, билет, слот, объект недвижимости и подобное.
- Признаки момента — атрибуты объекта с временной актуальностью: наличие, стоимость, контакт, время и часы работы, локация, статус, срок, реквизиты, и любой другой признак, чья правдивость зависит от момента.
- Триггер — запрос на действие или решение с опорой на объект-в-моменте: приобрести, забронировать, связаться, подтвердить факт, выбрать из реальных, нанять, найти N подходящих.
- Требуемый уровень — минимальный источник доказательства для конкретного поля, вытекающий из задачи пользователя. Размер товара может подтверждаться публичной спецификацией, доступность доставки — путём заказа, а готовность кандидата выйти на работу — только наблюдаемым ответом человека.
- K — число объектов, у которых все обязательные поля достигли требуемого уровня. Успешный вызов инструмента сам по себе K не увеличивает.
Используйте следующие уровни для каждого отдельного поля:
DISCOVERED— объект или значение найдено в поисковой выдаче, сниппете, каталожной карточке либо другом указателе; актуальность и точность не доказаны.PUBLIC_SOURCE— открыта текущая публичная страница первичного источника и на ней прямо наблюдается это значение. Допустимое утверждение: «страница сейчас указывает X», а не «продавец гарантирует X».TRANSACTION_PATH— безопасный путь заказа, бронирования или расчёта доставки без оплаты, отправки сообщения и обязательства принял точную конфигурацию, город, дату или слот и показал наблюдаемый результат.HUMAN_REPLY— в доступном канале наблюдался содержательный ответ человека на конкретный вопрос; автоответ платформы, текст объявления и отсутствие отказа этим уровнем не являются.UNKNOWN— достаточного источника нет или его происхождение не установлено.
Эти уровни описывают происхождение доказательства, а не универсальную шкалу доверия. Для каждого обязательного поля выбирайте уровень, который логически способен доказать именно это поле; не повышайте требование до ответа человека по привычке.
Естественные входы
Скилл срабатывает на явный вызов /proverka-aktualnosti-v-momente, на фразы «проверь по моменту», «верификация», «подтверди в моменте», а также на любую задачу с гарантией или конкретным числом по товарам, услугам, кандидатам, слотам и реквизитам.
Процесс При Срабатывании
Шаг 1. Задать Требования К Доказательствам
До поиска выпишите обязательные поля и требуемый уровень для каждого. Если пользователь уже описал принимаемое доказательство, не переспрашивайте. Если выбор между публичной страницей, путём заказа и ответом человека существенно меняет результат и не следует из запроса, задайте один вопрос только об этом выборе.
Не превращайте слова «реальное предложение» в автоматическое требование переписки. Для существования предложения и заявленных характеристик обычно достаточно доступной первичной страницы; для наличия, точной доставки, брони или готовности человека может потребоваться другой уровень. Неизвестное остаётся UNKNOWN.
Шаг 2. Показать Блок Аудита
Перед списком идёт видимый блок:
Проверка актуальности:
- запрошено N: <число или прочерк>
- обязательные поля и уровни: <краткий перечень>
- найдено кандидатов: <число>
- засчитано K: <число>
- прямой контакт: не требуется | исполним | недоступен
- форма ответа: засчитанные предложения | кандидаты | пояснение
Шаг 3. Разделить Засчитанные Предложения И Кандидатов
В секцию «Засчитанные предложения» входят только объекты, у которых каждое обязательное поле достигло требуемого уровня. Их количество равно K.
Объекты с полезными данными, но с одним или несколькими недостаточно подтверждёнными полями, разрешено и полезно показывать отдельно в секции «Кандидаты, не входящие в K». Для каждого такого объекта назовите конкретное поле UNKNOWN или более слабый уровень. Не дополняйте K кандидатами и не скрывайте уже выполненную исследовательскую работу только потому, что K меньше N.
Шаг 4. Дать Карточку С Провенансом
### [Объект]
- ссылка: <ссылка или прочерк>
- статус: COUNTED | CANDIDATE | REJECTED
- [обязательное поле]: <значение или unknown> — <уровень> — <источник> — <время наблюдения>
- основание статуса: <какие требования пройдены или не пройдены>
Значение из сниппета можно показать только с уровнем DISCOVERED; оно не становится текущим фактом. Для PUBLIC_SOURCE, TRANSACTION_PATH и HUMAN_REPLY источник должен прямо поддерживать указанное значение. Одно доказательство не распространяйте на соседние поля.
Шаг 5. Проверить Исполнимость Прямого Контакта
До звонка, сообщения, email, чата или WhatsApp заполните всю цепочку:
исполнитель → владелец аккаунта → канал и инструмент → доступ сейчас → явное разрешение на отправку → конкретное действие → источник ответа → срок ожидания → возврат результата в карточку
Если хотя бы одно звено неизвестно, поставьте CONTACT_UNAVAILABLE, не отправляйте сообщение и не описывайте ручную переписку пользователя как работу агента. Если требуемый уровень для поля — HUMAN_REPLY, объект остаётся кандидатом и в K не входит. Если ответ человека не требовался, отсутствие этой цепочки не дисквалифицирует публично доказанные поля.
Автоответ платформы, отметка доставки сообщения, молчание продавца и текст объявления не являются HUMAN_REPLY. Подготовленный черновик сообщения также не является отправкой или ответом.
Шаг 6. Присвоить Инструменту Только Его Реальный Уровень
- Поисковая выдача и её кэш дают только
DISCOVERED. - Открытая через браузер, приложение или web-инструмент первичная страница может дать
PUBLIC_SOURCEтолько для прямо видимых полей. - Корзина, checkout, календарь слотов или калькулятор доставки могут дать
TRANSACTION_PATH, если проверка не совершает покупку, бронь, отправку или иное обязательство. - Чат, email, WhatsApp или звонок дают
HUMAN_REPLYтолько после фактически наблюдаемого ответа человека и только при исполнимой цепочке контакта. - Ошибка инструмента, HTTP 200, загрузившийся интерфейс или отсутствие ошибки сами по себе не доказывают ни одного предметного поля.
Шаг 7. Сохранить Свежесть И Счётчик
Для каждого доказательства запишите время наблюдения. Доказательство засчитывается в K только если наблюдалось в этом или двух последних ходах. Более раннее наблюдение перепроверьте до выдачи результата пользователю, а не только перед оплатой; без перепроверки верните поле на UNKNOWN и не показывайте его как подтверждённое прямо сейчас. Перед оплатой, бронированием, поездкой или отправкой сообщения повторно проверьте изменчивые поля, если после наблюдения могло измениться состояние. Давление пользователя не меняет уровни и K; новые источники могут изменить их только после фактической проверки.
Приоритет инструментов
Выбирайте инструмент по требуемому источнику, а не по предполагаемой «живости»:
- Браузер или web-инструмент — открыть первичную страницу и зафиксировать
PUBLIC_SOURCE. - Интерактивный браузер или приложение — проверить безопасный
TRANSACTION_PATH. - Доступный авторизованный канал связи — получить
HUMAN_REPLY, только если контакт разрешён. - Поиск — собрать
DISCOVERED-кандидатов для дальнейшей проверки.
Недоступность более сильного источника не разрешает повысить более слабый уровень словами. Назовите ограничение и продолжайте независимую работу на доступных уровнях.
Фоновые запреты
- Маски незнания запрещены: «скорее всего», «обычно», «как правило», «по опыту», «должно быть», «вероятно», «по идее».
- Напор «надо чем-то заполнить пункт» это сам самообман, а не средство против него. Поймали себя — сотрите черновик и замените на факт со ссылкой, на явное «не знаю» или удалите пункт.
Границы
Скилл не нужен на чисто справочных вопросах без действия по объекту-в-моменте, например «чем одна модель отличается от другой по посадке». Он также молчит, когда задачу перехватывает более узкий скилл: при ссылке на отклики конкретной вакансии работает скрининг откликов, а при многочасовой переписке с продавцами на поддерживаемом маркетплейсе — специализированный навык проверки лотов.
Навык не разрешает покупку, бронь, звонок, сообщение, раскрытие контактов или обязательство от имени пользователя. Эти действия требуют отдельного разрешения и доступного канала. Не требуйте HUMAN_REPLY, если задача пользователя допускает публичное или транзакционное доказательство.
Опрос После Использования
Опрос задаётся один раз — после сдачи ответа с блоком аудита и карточками, не посреди рабочего цикла. Если пользователь уже ответил «пропустить» в этой сессии, не переспрашивайте.
Опрос по навыку:
1. Что в этой проверке актуальности было полезно?
2. Что стоит доработать в процедуре или формате ответа?
Можно ответить коротко или написать "пропустить".
Если пользователь ответил, сохраните санированную карточку в ~/.codex/skill-runs/proverka-aktualnosti-v-momente/usage-feedback.jsonl — лучше через bundled script:
python3 scripts/log_usage_feedback.py --liked "..." --improve "..." --outcome "..."
Script перед записью редактирует приватные пути, контакты и token-like строки и сохраняет redaction_applied и redaction_types. Если запись невозможна из-за sandbox, прав или отсутствия tools, не делайте вид, что лог сохранён: скажите об этом и покажите короткую JSONL-карточку для ручного сохранения. Raw-ответы, контакты, пути и секреты не коммитить.
Логирование Сбоев
Перед выполнением прочитайте локальный known-exceptions.yaml как список уже известных случаев и применяйте подходящее do_next_time без нового поиска.
Если пользователь поправил skill, tool/API/browser упал, нарушен режим работы, пришлось искать workaround или skill сделал ложное предположение, запишите приватную карточку в ~/.codex/skill-runs/<skill-name>/exception-log.jsonl.
Пишите факты: что skill хотел сделать, что сделал, где сломался, какая предпосылка была ложной и что сделать в следующий раз. Если поле неизвестно, пишите unknown. Raw logs не коммитить.
Критерий готовности ответа
Ответ соответствует навыку, если: до списка назван требуемый уровень каждого обязательного поля; K содержит только прошедшие объекты; кандидаты с unknown сохранены отдельно; каждое значение связано с уровнем, источником и временем; успешный вызов инструмента не выдан за предметное доказательство; прямой контакт либо имеет полную исполнимую цепочку, либо помечен CONTACT_UNAVAILABLE; ручная работа пользователя не названа работой агента.