nativeprompt
Health Gecti
- License — License: MIT
- Description — Repository has a description
- Active repo — Last push 0 days ago
- Community trust — 116 GitHub stars
Code Gecti
- Code scan — Scanned 12 files during light audit, no dangerous patterns found
Permissions Gecti
- Permissions — No dangerous permissions requested
Bu listing icin henuz AI raporu yok.
Промпт для Claude Code и для Codex это два разных языка. Переписывает ваш под ту модель, где вы работаете, по официальным правилам вендора, со ссылкой на док под каждой правкой. Работает на вашей подписке: без API-ключей, без зависимостей, офлайн.
🇷🇺 Русский · 🇬🇧 English
nativeprompt
Один и тот же промпт Claude Code и Codex читают по-разному. nativeprompt переписывает его
под ту модель, за которой вы сидите прямо сейчас, по официальным правилам вендора, и на
каждую правку дает ссылку на первоисточник.
Claude Code · Codex · 2433 теста · ноль зависимостей · ноль API-ключей · работает офлайн
Одна фраза, две судьбы
«Думай пошагово». Совет, который повторяют все и везде.
На Claude он безобиден. На reasoning-моделях GPT-5.x он делает ответ хуже, и написано это
не у меня в блоге, а в документации самой OpenAI: модель уже рассуждает внутри, навязанные
шаги ей мешают.
Вы пишете один и тот же текст в двух окнах и думаете, что просите одно и то же. А просите
разное. Вот несколько мест, где грамматики расходятся:
| Что в промпте | Claude Code (Opus 5) | Codex / GPT-5.x |
|---|---|---|
| «думай пошагово» | допустимо | удалить, модель рассуждает сама (reasoning guide) |
| «перепроверь себя» | предупреждение, Opus 5 верифицирует сам (prompting Opus 5) | нейтрально |
| «покажи только самое важное» | переформулировать, Opus 5 поймет буквально и правда скроет остальное | нейтрально |
| КАПС и «ОБЯЗАТЕЛЬНО!!!» | убрать, вызывает пере-срабатывание | убрать, скаффолдинг эпохи GPT-4.1 не помогает |
| Одна инструкция дважды | терпимо | убрать, лаконичный промпт выигрывает (prompt guidance) |
Это не мои наблюдения и не народные приметы. Каждая строка тут ведет на страницу вендора, и
эти страницы инструмент сам проверяет на свежесть.
Что он делает
Три шага, никакой магии.
Смотрит, на чем вы работаете. Явный --model, потом маркеры живой сессии CLI, потом
переменные окружения, потом каскад .claude/settings.json и ~/.codex/config.toml. Ключ
это семейство плюс поколение, поэтому незнакомый идентификатор вроде будущегоclaude-opus-6 все равно получит правила семейства Claude, а не «модель не определена».
Проверяет промпт по правилам именно этого вендора. У Claude их 18, у OpenAI 8, каждое с
обязательной ссылкой на официальный док. Народные хаки в шпаргалку не принимаются, это
условие вклада.
Показывает, что и почему. Каждая находка идет с объяснением, с оговоркой «когда этот
совет не подходит» и с адресом правила. Плюс подсказывает, какой командой запускать задачу:/goal, /loop, plan mode, dynamic workflow у Claude Code, /plan, /goal, делегирование
в облако у Codex.
Текст ваш при этом цел. Инструмент понижает КАПС, снимает вежливую обертку и дописывает
недостающие секции плейсхолдерами ‹…›. Он не додумывает за вас задачу и ничего не удаляет
молча: маркер [!] означает «вендор советует это убрать, решать вам».
Почему это работает на вашей подписке
Внутри инструмента нет модели. Совсем.
Разбор считается локально: регулярные выражения плюс версионированная шпаргалка правил. Ни
API-ключа, ни счета за токены, ни отправки вашего промпта кому бы то ни было. Выдерните
сеть, он продолжит работать, кроме команды update, которая ходит за доками вендоров.
А «умную» литературную переписку делает ваша же модель, по мета-промпту, который
инструмент для нее готовит. То есть внутри подписки Claude Code или Codex, за которую вы уже
заплатили. Второго счета не появляется.
Ноль рантайм-зависимостей, только стандартная библиотека Python.
Чем он отличается от других улучшателей
У Anthropic и OpenAI есть свои prompt improver'ы. Каждый умеет ровно одну вещь: свою модель.
Мульти-вендорные вроде Rosetta требуют, чтобы вы сами выбрали целевую модель, а правила
внутри со временем протухают, и вы об этом не узнаете.
| Anthropic improver | OpenAI optimizer | Rosetta и похожие | nativeprompt | |
|---|---|---|---|---|
| Сам определяет вашу модель (семейство + поколение) | нет | нет | нет | да |
| Только официальные правила вендора | да | да | частично | да |
| Дает ссылку на док под каждой правкой | нет | нет | нет | да |
| Следит за свежестью доков и сигналит | нет | нет | нет | да |
| Работает офлайн, без ключа и без счета за токены | нет | нет | нет | да |
| Знает и Claude, и Codex одновременно | нет | нет | да | да |
Последняя строка и есть причина, по которой инструмент вообще появился. Если вы работаете
только в Claude, вам хватит родного improver'а от Anthropic. Больно становится, когда окон
два.
Кому это надо
Тем, у кого открыты оба окна. Claude Code для одного, Codex для другого. Держать в голове
две грамматики руками тяжело, а разница реальная и стоит качества ответа.
Тем, кто платит за подписку и не хочет второй счет. Разбор ничего не стоит: он считается
у вас на машине.
Тем, кто учит промптингу. Каждый совет со ссылкой на официальную страницу, спорить не с
чем. Это сильно короче, чем объяснять своими словами.
Командам с общими правилами. Шпаргалка лежит в JSON, правится через PR, версионируется.
Свои правила добавляются рядом с вендорскими.
Тем, кто ведет проект долго. Вендоры меняют рекомендации, и вы об этом обычно узнаете
последним. nativeprompt update следит за 24 страницами доков и говорит, когда первоисточник
поехал.
Область применения это агентные CLI: Claude Code, Codex, а также Gemini CLI, Grok Build,
Qwen Code и Kimi CLI. Не API, не веб-чат.
Про последние четыре скажу честно и сразу. Google, xAI, Alibaba и Moonshot правил промптинга
под свои модели не публикуют. Значит там остается только половина про запуск, а половина про
текст промпта пустует. Выдумать правила и подписать их именем вендора я не могу: тогда
рухнет вся конструкция, ради которой все затевалось.
Установка
pipx install nativeprompt # или: pip install nativeprompt
Ноль внешних зависимостей, только стандартная библиотека. Работает офлайн и без API-ключа.
Из исходников, если хотите править правила под себя:
git clone https://github.com/edvardgrishin27/nativeprompt
cd nativeprompt
pip install -e . # даст команду `nativeprompt` в PATH
Можно вообще без установки, пакет запускается как модуль из папки репозитория:
python3 -m nativeprompt improve "..."
Требования: Python 3.9 и выше. Больше ничего.
Быстрый старт
Шесть команд: improve, detect, rules, coverage, install, update.
# переписать промпт под автоматически определённую модель + объяснить
nativeprompt improve "почини баг в логине, думай пошагово, перепроверь себя"
# задать целевую модель явно
nativeprompt improve "..." --model claude-opus-5
nativeprompt improve "..." --model gpt-5.6 # или просто: codex
# какая модель определилась?
nativeprompt detect
# показать все правила и их источники
nativeprompt rules claude
nativeprompt rules codex
# самопроверка: не изменились ли официальные доки вендоров
nativeprompt update
Флаги improve: --model M, --json (весь отчет машиночитаемо), --no-metaprompt (без
блока мета-промпта), --verify (самопроверка: те же детекторы по собственному результату,
закрыто / оставлено вам / внесено инструментом).
Флаги detect: --model M, --json.
Флаги update: --write (записать снапшот хэшей после ревью), --diff (показать, ЧТО именно изменилось в доке вендора), --timeout N (по умолчанию 20 с), --json.
Каждый отчет несет карточку воспроизводимости: строкой в шапке и полным объектом meta в--json. Там версия пакета, семейство, версия правил, дата сверки с доками, поколение и
признак, по которому оно определилось, форма задачи, id сработавших и примененных правил и
первые 12 символов sha256 промпта. Нужна она вот зачем: два отчета от разных версий
инструмента и разных версий шпаргалки внешне неразличимы, и спор «у меня выдавало другое»
иначе не решить.
воспроизводимость: nativeprompt 0.6.0 · правила claude 2026-09-02 · доки
сверены 2026-07-29 · поколение opus-5 (model-id) · форма normal ·
сработало 8, применено 6 · промпт sha256 4da13855e134
Хэш тут метка для сверки «тот ли промпт», не доказательство: полный текст по 48 битам не
восстановить. Поэтому карточку можно приложить к issue, не вклеивая туда пути и куски логов.
Промпт подается и через stdin, для текста с кавычками так безопаснее:
printf '%s' "$PROMPT" | nativeprompt improve --model claude-opus-5 --json
Как выглядит вывод
Возьмем типичный «как привыкли» промпт:
Не мог бы ты пожалуйста ОБЯЗАТЕЛЬНО починить баг в логине, думай пошагово и обязательно перепроверь себя. Покажи только самое важное.
На Claude Opus 5 (--model claude-opus-5), 7 находок:
МОДЕЛЬ: Claude Code (claude-opus-5) · opus-5
определено: явно (--model)
ЧТО УЛУЧШИТЬ (7, сначала важное):
1. [+] Заскоупить задачу: файл, сценарий, что значит «готово»
неприменимо: Если файл, модуль или экран уже назван выше в этом же диалоге…
правило: https://code.claude.com/docs/en/best-practices
2. [+] Дать проверку, которую Claude прогонит сам
неприменимо: Если проверку задаёт окружение (хук на тесты, CI на каждый коммит)…
правило: https://code.claude.com/docs/en/best-practices
3. [~] Симптом + где искать + что значит «починено» (лечить причину)
неприменимо: Если причина уже найдена выше в диалоге…
правило: https://code.claude.com/docs/en/best-practices
4. [!] «Только важное» сужает выдачу — просите всё, фильтруйте отдельно
неприменимо: Если сузить выдачу — и есть цель («только упавшие тесты»)…
правило: https://platform.claude.com/docs/en/.../prompting-claude-opus-5
5. [~] Просить действие прямо, а не намёком
неприменимо: Если вы и правда просите мнение, а не работу…
правило: https://platform.claude.com/docs/en/.../be-clear-and-direct
6. [-] Убрать давящие КАПС / «CRITICAL» / «ОБЯЗАТЕЛЬНО!!!»
неприменимо: Если КАПС — это имя, флаг или цитата из лога (ERROR, TODO, DEBUG=1)…
7. [!] Лишняя просьба «перепроверь себя» (Opus 5 верифицирует сам)
неприменимо: Если «проверь» — часть самого задания…
правило: https://platform.claude.com/docs/en/.../prompting-claude-opus-5
УЛУЧШЕННЫЙ ПРОМПТ (детерминированная правка):
Обязательно починить баг в логине, думай пошагово и обязательно перепроверь себя. Покажи только самое важное.
Контекст: ‹назовите файл/путь через @ (напр. @src/...), сценарий и что значит «готово»›
Симптом: ‹что именно ломается, где искать (файл/модуль) и что значит «починено»; лечить причину, не симптом›
Проверка: ‹тест/сборка/команда, которую нужно прогнать после правки, и чинить, пока не пройдёт›
(Краткость: Ответь кратко.)
Тот же промпт на GPT-5.6 (--model gpt-5.6), находки уже другие:
МОДЕЛЬ: Codex (gpt-5.6) · gpt-5.6
ЧТО УЛУЧШИТЬ (3, сначала важное):
1. [!] «думай пошагово» лишнее — GPT-5.x рассуждает сам
неприменимо: Если «пошагово» относится к ФОРМАТУ ответа…
правило: https://developers.openai.com/api/docs/guides/reasoning
2. [~] Просить действие прямо
3. [-] Убрать лишние подпорки и КАПС-приказы
УЛУЧШЕННЫЙ ПРОМПТ (детерминированная правка):
Обязательно починить баг в логине, думай пошагово и обязательно перепроверь себя. Покажи только самое важное.
Смотрите: у Codex «думай пошагово» это находка, а у Claude такого правила нет вовсе. Вот они,
две разные официальные грамматики, ради которых все и написано.
И обратите внимание, что текст промпта в обоих случаях цел. Меняется форма, дописываются
секции-плейсхолдеры. Маркер считается по факту, а не по тому, что правило о себе объявляет:
знак действия получает только та находка, которая правда изменила текст. Поэтому [!] стоит
и там, где совет ушел только в мета-промпт.
Находки идут от важного к косметике: priority 1 это контракт результата и границы
задачи, 2 режим запуска и структура, 3 косметика. Под каждой стоит строка неприменимо:,
конкретная ситуация, где совет мимо («файл уже назван выше в этом же диалоге»). Детекторы тут
регулярки, истории диалога они не видят, и часть находок ложные. Ложное срабатывание, которое
видно и которое можно пропустить, ничего не стоит. Детектор, который никогда не ошибается,
обошелся бы дороже.
Если правила молчат, или все сработавшее инструмент закрыл сам, improve так и скажет, а
мета-промпт печатать не станет: «Промпт соответствует правилам, которые инструмент умеет
проверять, переписывать нечего». Плейсхолдер ‹…› закрытием не считается, он передает
правило вам, и --verify смотрит на это так же. Почему так устроено, разобрано в
CLAIMS.ru.md, раздел «Почему инструмент не переписывает текст сам».
Увидеть оба варианта рядом одной командой:
python3 examples/contrast_demo.py
Сырые промпты для экспериментов лежат в examples/prompts.md.
Сколько правил он реально закрывает
Команда coverage считает это на ваших же промптах, без всякой модели внутри:
nativeprompt coverage мои-промпты.json --models claude-opus-5,gpt-5.6
На моем тестовом корпусе цифра такая: 227 находок, инструмент закрывает 87 из них, это
38 %, оставляет вам 140 и вносит своих ноль. Последнее и есть главное свойство:
инструмент не имеет права добавить нарушение, которого в промпте не было.
Что эта цифра НЕ означает: она не про качество ответа модели. Модель тут не запускается
вовсе. Померить качество ответа офлайн честно нельзя, для этого нужен датасет и два прогона.
Померить соответствие официальным правилам можно, и результат воспроизводится побайтово.
Использование в VS Code
Расширение Claude Code для VS Code это отдельная поверхность со своими особенностями. Разберу
явно, потому что именно тут детект модели удивляет чаще всего.
Предпосылки
- Нужен VS Code 1.94.0 и выше. Расширение ставится по ссылке
vscode:extension/anthropic.claude-codeили поиском «Claude Code» в Extensions. Для форков (Cursor, Kiro, Devin Desktop) есть сборка в Open VSX. - Расширение НЕ добавляет
claudeв PATH. Оно несет приватную копию CLI для панели чата, а командаclaudeв терминале требует отдельной установки standalone-CLI. Это стоит развести:nativepromptобычная CLI-утилита, вы ставите и запускаете ее во встроенном терминале VS Code (Cmd+`). Хук же работает внутри панели чата. Выводnativeprompt improveсам по себе в панели не появится.
Как проверить, что модель определилась
Три способа, по возрастанию надежности.
/statusпрямо в панели чата, покажет активную модель и аккаунт.nativeprompt detectво встроенном терминале, покажет не только модель, но и источник:
$ nativeprompt detect
Модель: claude-opus-5[1m] · opus-5
Семейство/CLI: claude (Claude Code)
Определено: ~/.claude/settings.json (сессия Claude Code · VS Code)
- Статус-строка (
statusLine), самый точный путь: скрипту статус-строки на stdin приходит JSON сmodel.idиmodel.display_name, а заодноcontext_window.context_window_size(фактическое подтверждение, что 1M-контекст правда активен) иeffort.level.
Если detect показывает не ту модель
Все причины ниже из официальных доков, а не из догадок.
- В пикере
/modelвы нажалиs(«только на эту сессию»).Enterсохраняет выбор в пользовательские настройки (~/.claude/settings.json),sне сохраняет ничего. Значитdetectчестно читает старое значение. Это известное ограничение чтения настроек. - VS Code запущен из Dock или Finder и не унаследовал shell-окружение. Тогда
ANTHROPIC_MODELиз.zshrcрасширение не увидит. Лечится тремя способами: запускатьcode .из терминала, задать переменную в настройке расширенияclaudeCode.environmentVariables, либо прописать ее в блокеenvфайла~/.claude/settings.json, этот файл общий для расширения и CLI. - Проектные или managed-настройки перебивают ваш выбор. Порядок приоритета: managed (высший, не переопределяется ничем), аргументы командной строки,
.claude/settings.local.json,.claude/settings.jsonпроекта,~/.claude/settings.json. Когда модель на старте пришла из проектных или managed-настроек, стартовый заголовок сессии показывает, какой файл ее задал. - Алиас это не версия.
opus,sonnet,bestрезолвятся в конкретную модель по-разному в зависимости от провайдера: Anthropic API, AWS, Bedrock, Google Cloud, Microsoft Foundry дают разные поколения.nativepromptв таком случае честно оставляет поколение неопределенным и применяет правила семейства. Нужна точность, пиньте полное имя модели или используйтеANTHROPIC_DEFAULT_OPUS_MODEL/_SONNET_/_HAIKU_/_FABLE_. - Суффикс
[1m](окно 1M) дописывается и к алиасу, и к полному имени:opus[1m],claude-opus-4-8[1m],opusplan[1m].nativepromptсрезает его так же, как это делает сам Claude Code, но запоминает факт, чтобы не подтолкнуть вас к потере 1M-контекста.
Хук в VS Code
Конфигурация хуков общая для расширения и терминального CLI: тот же ~/.claude/settings.json, тот же блок hooks (JSON ниже, в разделе про режимы). Из GUI: в поле ввода наберите /, раздел Customize, дальше hooks.
Три вещи про UserPromptSubmit, которые стоит знать заранее:
- Таймаут 30 секунд, а не стандартные 600.
nativepromptукладывается с запасом, он детерминированный и в сеть не ходит. По этой же причине не вешайте на это событие сетевые вызовы. - Матчеры не поддерживаются и молча игнорируются, хук срабатывает на каждый промпт.
- Хук не заменяет текст вашего промпта. Поля
updatedPromptв контракте нет (updatedInputесть только у tool-событий). Хук отдаетadditionalContext, и Claude видит рядом оригинал и улучшенную версию. Это ограничение платформы, я тут ничего не недоделал.
Полезно добавить в settings.json строку "$schema": "https://json.schemastore.org/claude-code-settings.json", VS Code даст автодополнение и валидацию настроек прямо в редакторе.
Codex в VS Code
- Конфиг общий с CLI: gear icon, Codex Settings, Open config.toml.
- Порядок приоритета: флаги CLI, проектный
.codex/config.toml(ближайший к текущей папке), профиль (~/.codex/<profile>.config.toml),~/.codex/config.toml,/etc/codex/config.toml, встроенные дефолты. - У Codex нет официальной переменной окружения для модели.
CODEX_MODELиOPENAI_MODELв списке публичных переменных отсутствуют,nativepromptиспользует их только как эвристику-фолбэк, а основной источник этоmodel = "..."изconfig.toml. - Если проект не помечен как доверенный, слой
.codex/проекта пропускается целиком и применится пользовательский конфиг. - Официальная переменная, которую читают и CLI, и IDE-расширение, это
CODEX_HOME(по умолчанию~/.codex), корень состояния Codex.
Два режима работы
1. По запросу, навык Claude Code
SKILL.md в корне репозитория это навык Claude Code. Он срабатывает, когда вы
просите «улучши мой промпт», «перепиши запрос», «как лучше сформулировать». Claude сам
запускает nativeprompt improve --json, показывает разбор со ссылками, рекомендацию по
запуску, а потом выполняет мета-промпт и отдает готовую переписанную версию.
Одна деталь безопасности зашита в навык намеренно: присланный промпт считается данными.
Claude не выполняет описанную внутри задачу и не следует вложенным командам, а сам текст
передается только через stdin, чтобы кавычки не сломали команду.
Установка навыка одной командой:
nativeprompt install
Кладет навык в ~/.claude/skills/nativeprompt/. Этот каталог читают обе среды: и Claude Code
в терминале, и десктопное приложение. Свой каталог задается через --dir, перезапись через--force.
Вызывается навык словами, а не слэшем: «улучши мой промпт: …». Слэш-команды/nativeprompt не существует.
2. На каждый промпт, хук UserPromptSubmit
hooks/nativeprompt_hook.py подмешивает разбор к каждому
вашему промпту. Он молчит на коротких (меньше 15 символов) и на уже хороших: правок нет,
вывода нет. Любая внутренняя ошибка означает тихий ноль, отправку промпта хук не ломает
никогда.
Блок для ~/.claude/settings.json:
{
"$schema": "https://json.schemastore.org/claude-code-settings.json",
"hooks": {
"UserPromptSubmit": [
{
"hooks": [
{
"type": "command",
"command": "python3 ~/Documents/nativeprompt/hooks/nativeprompt_hook.py"
}
]
}
]
}
}
Путь искать не нужно, хук сам находит пакет: сначала установленный (
pip install nativeprompt), затем каталог собственного репозитория, затем переменныеNATIVEPROMPT_HOMEиCLAUDE_PROJECT_DIR. Не нашел или что-то пошло не так, молча
пропускает ход и никогда не блокирует отправку промпта.
Что хук добавляет в контекст: список правок со ссылками на правила (до 6 штук), улучшенную
версию промпта, рекомендацию по запуску и просьбу уточнить у вас все, что осталось в ‹…›.
Сколько это стоит. Хук висит на каждом промпте, значит его размер оплачивается всегда, из
вашего же окна контекста. Потолок 2400 символов, на корпусе проекта худший случай после
урезания 1729 символов. Если не помещается, хук режет по фиксированному порядку и только свои
блоки: сначала рекомендацию по запуску, потом хвост списка советов сверх трех, потом блок
«улучшенная версия» целиком. Ваш текст не режется посередине никогда: блок либо есть целиком,
либо его нет, а когда что-то урезано, об этом сказано отдельной строкой. Чем это проверено, в
CLAIMS.ru.md.
Работа с Codex
Для Codex в репозитории отдельная дорожка:
AGENTS.mdв корне, инструкции агенту, который работает над самим репозиторием (с явной границей: core не трогаем, работаем вcodex/).codex/integration/AGENTS.md.snippet, фрагмент, который вы вставляете в свойAGENTS.md, чтобы Codex звалnativepromptпри просьбе улучшить промпт.codex/integration/plugins/nativeprompt/, skill-only плагин для Codex с безопасной оберткойimprove_prompt.py: промпт только через stdin, без shell, с проверкой JSON-контракта.
Локальная установка навыка для Codex:
python3 -m pip install -e .
mkdir -p ~/.agents/skills
ln -s "$PWD/codex/integration/plugins/nativeprompt/skills/nativeprompt" \
~/.agents/skills/nativeprompt
Дальше новая сессия Codex и явный вызов:
$nativeprompt улучши этот промпт для Codex: ‹промпт›
Постоянные правила проекта для Codex держите в AGENTS.md, а глубину рассуждения и длину
ответа задавайте в ~/.codex/config.toml (model_reasoning_effort, model_verbosity), а не
словами в промпте. Это, кстати, тоже одно из правил в шпаргалке.
Как это устроено
Конвейер: detect → analyze → rewrite → harness → explain → update.
- detect (
detect.py) определяет модель по цепочке сигналов: явный--model, маркеры активной сессии CLI, переменные окружения, каскад.claude/settings.jsonи~/.codex/config.toml. Ключ это семейство плюс поколение, поэтому незнакомый идентификатор все равно получит правила семейства. - analyze (
analyze.py) прогоняет детекторы по тексту промпта: принудительный CoT, требование самопроверки, КАПС-императивы, повторы, противоречия, отсутствие контекста, критерия готовности, контракта вывода, мягкие формулировки вместо прямого поручения. - rewrite (
rewrite.py) делает детерминированную правку: убрать вредное для этой модели, реструктурировать (XML-теги для Claude, прямое действие), добавить недостающие секции строго плейсхолдерами‹…›, никогда не выдумывая содержание. - harness (
harness.py) по форме задачи (trivial / planning / goal / loop / workflow) советует режим запуска:/goal,/loop, plan mode, dynamic workflow у Claude Code,/plan,/goal, делегирование в облако у Codex. - explain (
explain.py) собирает отчет: каждая правка привязана к правилу и егоsource-URL, плюс готовит мета-промпт, инструкцию для вашей же модели. - update (
update.py) описан ниже.
Два слоя правки стоит различать честно. Детерминированный проход структурный: убрать,
переставить, добавить плейсхолдеры. Полная литературная переписка делается мета-промптом
руками вашей же модели. Никакого «ИИ внутри инструмента» нет, ядро считает все локально.
Самообновление
Правила лежат в nativeprompt/rules/*.json, это версионированная шпаргалка, которую ведет
человек, с полем rules_version и обязательным source-URL у каждого правила. Ключуется по
семейству и поколению, поэтому новая модель того же семейства инструмент не ломает.
nativeprompt update берет манифест канонических доков вендоров (rules/_sources.json,.md-версии страниц и llms.txt), скачивает их, считает хэши и диффует со снапшотомrules/_snapshot.json:
[изменилось] claude https://code.claude.com/docs/en/goal.md
[новое] openai https://learn.chatgpt.com/docs/prompting.md
[без изменений] claude https://code.claude.com/docs/en/best-practices.md
...
Итог: изменилось 1, новых 4, без изменений 17, недоступно 0 (из 24).
→ Офиц. доки изменились. Сверьте правила rules/*.json с источником и обновите их
(при работе в CI — откроется PR). Затем: nativeprompt update --write.
При обнаруженных изменениях команда возвращает ненулевой код выхода, это сигнал для CI.
Правила не меняются молча: update только сообщает, что первоисточник поехал, а самиrules/*.json правит человек через PR. Выбор осознанный, шпаргалка должна оставаться
проверяемой.
Границы
Полный честный список в CLAIMS.md. Коротко:
- Не додумывает задачу за вас. Недостающее (файлы, критерий «готово», формат вывода) вставляется плейсхолдерами
‹…›, а не выдуманным содержанием. - Детекторы это эвристики, регулярные выражения. Возможны ложные срабатывания и пропуски на необычных формулировках. Ассистент, не оракул.
- Алиас не резолвится в версию. Задана модель как
opus/sonnet/best, точное поколение зависит от провайдера и плана, инструмент честно оставляет поколение пустым и применяет правила семейства. - Детект настроек читает не все. Сейчас разбирается каскад
.claude/settings.local.json,.claude/settings.json,~/.claude/settings.jsonи~/.codex/config.toml. Managed-настройки Claude Code (высший приоритет в enterprise), проектный.codex/config.tomlи переменнаяCODEX_HOMEпока не учитываются. Сомневаетесь, сверьтесь с/statusили задайте--modelявно. - Переменные сессии Codex это эвристика.
CODEX_THREAD_ID,CODEX_SHELL,CODEX_CI,CODEX_SANDBOXв список официально документированных не входят, определение активной сессии опирается на них как на догадку. - Правила обновляются человеком.
updateтолько сигналит. - Глубина покрытия разная. У Claude Code и Codex правила разобраны по поколениям, 18 и 8 правил. У Gemini, Qwen, Kimi и Grok по одному правилу и совету по запуску: вендоры публикуют о них меньше.
- Это не бенчмарк. Инструмент применяет правила вендора, а не измеряет, что промпт стал «на X процентов лучше». Никаких процентов улучшения он не обещает.
Проверяемость: python -m pytest -q дает 2433 теста (детект, детекторы, перепись, харнесс,
целостность правил, frozen-снапшот набора правил, самопроверка, отказ переписывать, бюджет
контекста хука, карточка воспроизводимости). nativeprompt rules показывает все правила с
источниками, сверьте выборочно сами.
Как внести вклад
Новое правило принимается только с официальным первоисточником. Формат это объект в
массиве rules внутри nativeprompt/rules/<family>.json:
{
"id": "claude-xml",
"scope": "family",
"check": "missing_xml",
"action": "restructure",
"title": "Сложный промпт из нескольких частей — обернуть в XML-теги",
"why": "Короткое объяснение с примером «было → стало».",
"source": "https://platform.claude.com/docs/en/build-with-claude/..."
}
scopeэтоfamily(все семейство) или конкретное поколение (opus-5).checkэто идентификатор детектора изanalyze.py, для нового условия добавьте детектор и тест к нему.actionэтоremove/add/restructure/warn.sourceобязателен, ссылка на официальный док вендора. Блог-посты, треды и народные хаки не принимаются. Добавьте страницу и вrules/_sources.json, чтобыupdateследил за ее свежестью.
Новый вендор это новый файл nativeprompt/rules/<family>.json с блоками detect,generations, rules и harness (какая команда CLI под какую форму задачи), плюс его
источники в _sources.json. Код на семейства не завязан, каталог загружается динамически.
Требования к PR: ядро остается zero-deps (только stdlib), тесты зеленые
(python -m pytest -q), принцип «не додумывать задачу за пользователя» сохраняется.
Почему правила не вливаются автоматически
Робот замечает изменение, скачивает его, показывает точный diff и открывает PR. Последний
шаг, решить, меняется ли правило, оставлен человеку намеренно. Три причины.
- Изменение доки не равно изменению правила. Большинство правок это опечатки, переформулировки, новые примеры. Автомат гонял бы правила туда-сюда на пустом месте.
- Правило это перевод, а не копия. Дока говорит прозой: «Opus 5 проверяет себя сам, уберите инструкции о проверке». А правило это распознаватель плюс решение об области действия, все семейство или только это поколение. Тут нужно суждение.
- Ошибка автомата хуже устаревшего правила. Он выдаст неверный совет со ссылкой на официальный источник, то есть с максимальным доверием. Пакет ставят другие люди, и правки, написанные моделью, не должны вливаться в него сами.
Лицензия
MIT. Сделано для канала «Внутри FuturaAI», Эдвард Гришин.
Yorumlar (0)
Yorum birakmak icin giris yap.
Yorum birakSonuc bulunamadi