code-review-context
Code Review Context — короткая, но строгая спецификация того, как Codex должен формировать видимый модели контекст для inference. Источник прямо определяет context как историю сообщений, которая отправляется модели. Поэтому правила относятся не к стилю ревью и не к содержанию конкретного патча, а к границам и устойчивости набора фрагментов перед их передачей модели. Первое правило — не переписывать историю. Контекст должен строиться incrementally, то есть добавляться последовательно. Это исключает скрытое редактирование уже собранной истории ради удобного вида текущего запроса. Для code review это означает сохранять порядок и происхождение накопленных сообщений и новых материалов, чтобы решение модели опиралось на тот же набор наблюдений, который был подготовлен системой. Второе правило — избегать частых изменений контекста, которые вызывают cache misses. Частое перестроение одного и того же набора не является бесплатным: оно ломает повторное использование контекстного кэша. Практический вывод из источника — менять context только когда появилось содержательное новое наблюдение, а не пересобирать его без необходимости из-за несущественной перестановки или косметического изменения. Третье правило запрещает unbounded items. Каждый фрагмент, инжектируемый в model context, должен иметь ограниченный размер и жёсткий cap. Источник устанавливает конкретную верхнюю границу: один item не может быть больше 10K токенов. Это касается каждого отдельного элемента, а не только среднего размера всего контекста. Большой файл, длинная история или автоматически добавленный отчёт не должны обходить ограничение только потому, что общий запрос ещё помещается в окно модели. Четвёртое правило требует выделять новые individual items, которые могут превысить 1K токенов, как P0. Для таких фрагментов нужна дополнительная ручная проверка. Порог 1K не является разрешением на автоматическую вставку: он отделяет крупный новый материал, который должен быть заметен ревьюеру, от обычного небольшого дополнения. Ручная проверка нужна до отправки такого элемента в context, чтобы контролировать его размер и необходимость. Пятое правило задаёт структуру реализации: все injected fragments должны быть определены как structs в core/context и реализовать ContextualUserFragment trait. Это требование даёт каждому фрагменту явное место и общий контракт. Источник тем самым не разрешает складывать произвольные строки в контекст без типизированного представления. Для ревью реализации нужно проверить и расположение struct, и наличие trait, и то, что фактически инжектируемый материал соответствует этому контракту. Эти ограничения удобно применять как небольшой gate перед inference. Сначала система добавляет материалы в историю последовательно, затем оценивает, не вызывает ли изменение лишний cache miss. Каждый новый item получает bounded size и проверку hard cap; item больше 10K токенов отклоняется или должен быть уменьшен до допустимого представления. Новый item свыше 1K токенов помечается P0 и проходит дополнительный manual review. Наконец, проверяется типизированное представление в core/context и реализация ContextualUserFragment. У подхода есть намеренное ограничение: этот skill не описывает алгоритм суммаризации, порядок приоритетов между разными источниками, формат конкретного diff или способ измерять качество ответа модели. Он фиксирует только пять границ: постепенное построение истории, защиту cache reuse, ограничение каждого элемента, ручной контроль крупных новых фрагментов и обязательный структурный контракт. Поэтому нельзя приписывать ему правила, которых нет в исходном SKILL.md, и нельзя считать прохождение этих проверок гарантией корректности самого code review. Полезный результат применения — предсказуемый и проверяемый pipeline подготовки model context. История сохраняет последовательность, новые данные не бесконтрольно разрастаются, потенциально дорогие изменения становятся видимыми как P0, а код контекстных фрагментов остаётся типизированным и локализованным в core/context. Это снижает риск незаметно отправить модели слишком большой или неожиданно переписанный материал, но не заменяет человеческую оценку содержания ревью и итогового ответа.
Для чего подходит
- Проверка изменений в model context
- Ограничение размера элементов истории
- Контроль cache-friendly построения контекста
Установка
Сначала прочитайте SKILL.md и scripts в исходном репозитории. Затем выполните команду в каталоге проекта:
npx skills add https://github.com/openai/codex/tree/main/.codex/skills/code-review-context