Agent Skill
Готовый Agent Skill, который учит кодового ассистента писать на neva правильно, — тот же материал, что и на этом сайте, но переупакованный под модель, а не под читателя.
Скачать neva-skill.zipИсходники: skill/neva.
Зачем это нужно
Ассистенты уверенно ошибаются в MCP на Rust, и причина структурная: MCP
2026-07-28 сломал совместимость со всем, что было до него, а почти весь
материал по MCP, который модель видела, — включая все прочие SDK — описывает
предыдущее поколение. Поэтому типичная ошибка — не забытое имя метода. Это
ассистент, который пишет рукопожатие initialize, тянется к ping,
открывает SSE-поток GET или считает ctx.elicit обычным await в
обработчике, который списывает деньги с карты.
Скилл выносит ровно эти ловушки вперёд, а за подробностями отправляет в нужный файл.
Что внутри
| Файл | О чём |
|---|---|
SKILL.md | Определение версии и профиля, API с пространствами имён у клиента и Context, формы обработчиков, список ловушек, минимальные сервер и клиент, маршрутизация |
references/server.md | Формы обработчиков (async fn, обычная fn, blocking), инструменты, промпты, ресурсы, схемы, имена аргументов, типы контента, пространства имён Context, возможности клиента в каждом запросе, DI, middleware, логи, подписки, рассылка между экземплярами |
references/client.md | Подключение, пространства имён, общий клиент, отмена, вызовы, структурированные результаты, батчи, подписки, ответы на input-запросы, задачи |
references/mrtr.md | Модель повторного выполнения, memo / once / on_commit, режимы elicitation, задачи |
references/apps.md | MCP Apps: ресурсы ui://, блоки _meta.ui, видимость, блок безопасности, рукопожатие View |
references/svir.md | Мост svir: RemoteTools, into_toolbox / with_toolbox, ctx.tools().toolbox(), что сообщается модели, промпты и ресурсы как сообщения, сэмплирование ответом модели |
references/http.md | Транспорты, TLS, JWT и OAuth 2.1 (обе стороны, DPoP, CIMD, grants), DNS-rebinding, остановка сервера, свои движки, публикация в MCP Registry, фича-флаги, развёртывание на нескольких экземплярах |
references/troubleshooting.md | Коды ошибок, «симптом → причина», всё удалённое в этом поколении |
references/legacy.md | Профиль legacy-spec и все пути обновления, с 0.4.x по 0.7.0 |
SKILL.md намеренно короткий: это точка входа, которую агент читает всегда,
и восемь справочников, которые он подгружает только под задачу.
Установка
Формат SKILL.md — общий стандарт, поэтому установка везде одинаковая:
распаковать и скопировать каталог neva/ в папку скиллов инструмента,
сохранив имя каталога — оно обязано совпадать с полем name во frontmatter.
| Инструмент | Персонально | В проекте |
|---|---|---|
| Claude Code | ~/.claude/skills/neva/ | .claude/skills/neva/ |
| opencode | ~/.config/opencode/skills/neva/ | .opencode/skills/neva/ |
| Codex CLI | ~/.codex/skills/neva/ | .codex/skills/neva/ |
unzip neva-skill.zip
mkdir -p ~/.claude/skills && cp -r neva ~/.claude/skills/
После этого перезапустите ассистента — скиллы обнаруживаются при старте.
opencode дополнительно читает .claude/skills/ и .agents/skills/, так что
одной копии внутри проекта может хватить сразу на несколько инструментов.
Всё остальное
Подойдёт любой ассистент, умеющий читать файлы. Укажите ему на SKILL.md и
дайте пройти по ссылкам — или добавьте строку в AGENTS.md проекта:
For Rust MCP work with the `neva` crate, read `.agents/skills/neva/SKILL.md`
and the reference file it routes you to.
Код в нём компилируется
Каждый Rust-сниппет скилла собирается против опубликованного крейта neva в
CI этого репозитория — больше семидесяти штук, — поэтому то, что ассистент
оттуда копирует, действительно компилируется. В этом и смысл скилла вместо
пересказа: ассистент, вставляющий правдоподобный API, хуже того, который
вставляет проверенный.
Запустить проверку самому после правок:
python3 ci/check-snippets.py --docs-dir skill --default-mode compile --default-features full
Версия
Скилл описывает neva 0.7.0 / MCP 2026-07-28, легаси-поколение вынесено отдельно. Обе версии записаны во frontmatter, чтобы ассистент мог понять, соответствует ли скилл крейту перед ним:
metadata:
neva-version: "0.7.0"
mcp-protocol: "2026-07-28"