Agent Skills и SKILL.md: прогрессивное раскрытие, измеренное
Пять реальных skill с 128 374 token инструкций занимают 253 token context. Сократите описания — и agent перестаёт их находить.
На этой странице
Возьмём проект, в котором установлены пять опубликованных skill. Вот сколько они стоят.
ls .claude/skills/next-best-practices next-cache-components vercel-composition-patterns
vercel-react-best-practices vercel-react-native-skillsskill level 1 level 2 level 3 files
next-best-practices 40 966 19,374 19
next-cache-components 28 2,334 0 0
vercel-composition-patterns 59 533 10,667 13
vercel-react-best-practices 68 1,670 53,670 75
vercel-react-native-skills 58 950 37,957 41
------ ------- --------
total 253 6,453 121,668Сто двадцать восемь тысяч token инструкций, примеров и правил — больше, чем помещается в context window на 128 000 token, — а постоянная стоимость доступности всех пяти составляет 253 token, две десятых процента. Ничто другое в этом курсе не имеет такой формы. За определение инструмента вы платите в каждом запросе, используется оно или нет, а глава 26 измерила один MCP server в 1 619 token ещё до того, как он вообще что-либо делает: в тридцать два раза больше средней строки уровня 1 в таблице выше.
Эта глава — о механизме, который даёт такое соотношение, о двух способах, которыми он ломается, и о вопросе, к которому механизм принуждает и на который почти никто не отвечает: если у вас есть фрагмент знания, в каком из четырёх мест ему место.
Почему в этой главе нет языка программирования
Ссылка на раздел: Почему в этой главе нет языка программированияГлава 14 установила правило для второй половины этого курса — подключения, повторы и отмена пишутся на TypeScript — и объявила пять исключений. Это одно из них, и причина не во вкусе.
Skill — это Markdown-файл. Не файл, который настраивает программу, не файл, который программа компилирует: это документ, который модель читает, так же как она читает сообщение, которое вы набрали. Дать этой главе язык программирования означало бы не понять формат, а именно это непонимание — самое распространённое заблуждение о skills. Всё ниже — Markdown и YAML, плюс один небольшой shell script, который существует ровно затем, чтобы показать, где code должен и не должен находиться внутри skill.
Счёт, который он снижает, и это арифметика главы 16
Ссылка на раздел: Счёт, который он снижает, и это арифметика главы 16Вот реальная инструкция: как одна компания пишет release notes. Это процедура, а не предпочтение — у неё есть упорядоченный набор шагов, таксономия, голос, шаблон и скрипт, который собирает сырой материал.
Положите всё это в system prompt, как делает большинство команд, и вступит в силу арифметика главы 16. System prompt — это префикс, а за префикс платят при каждом вызове. Измерено с o200k_base по папке, написанной для этой главы:
whole thing pasted into the system prompt 1,716 x 40 = 68,640 input tokens $0.1373
as a skill, activated once on turn 12 46 x 40
+ 324 (SKILL.md body)
+ 665 (two reference files read)
= 2,829 input tokens $0.0057
as a skill, never activated at all 46 x 40 = 1,840 input tokens $0.0037В двадцать четыре раза дешевле, когда используется, в тридцать семь раз дешевле, когда не используется. Тарифы — из главы 16: $2.00 за миллион входных token.
Теперь честное возражение, потому что глава, которая его пропустила бы, была бы рекламой. Prompt caching в основном закрывает денежный разрыв. System prompt стабилен и стоит первым, что делает его лучшим кандидатом на кэширование; при $0.20 за миллион кэшированных входных token те же 68 640 token стоят $0.0168, а не $0.1373. Всё ещё в три раза дороже skill, но уже не на порядок.
Деньги никогда не были самым сильным аргументом. Вот он:
Кэширование удешевляет постоянный префикс. Оно не делает его меньше.
На 40-м ходе версия с system prompt всё ещё держит в окне 1 716 token политики release notes во время разговора о чём-то совершенно другом, конкурируя за то, что глава 24 назвала бюджетом attention модели. В версии со skill их 46. Закэшируйте не то — и вы купили скидку на отвлечение.
В виде формулы, где — ходы, — metadata, — body, — весь bundle, а — набор bundled files, которые действительно прочитаны:
Вся эта глава — разница между умножением второго члена на и умножением его на один или на ноль.
Что такое skill на самом деле
Ссылка на раздел: Что такое skill на самом делеSkill — это каталог. Спецификация достаточно короткая, чтобы привести её полностью:
release-notes/
├── SKILL.md # required: YAML frontmatter + Markdown instructions
├── scripts/ # optional: executable code
├── references/ # optional: documentation read on demand
├── assets/ # optional: templates, schemas, examples
└── ... # anything else you likeSKILL.md должен начинаться с YAML frontmatter, и обязательны ровно два поля: name и description.1 Ещё четыре необязательны, и никаких других не определено:
| Поле | Обязательно | Ограничение |
|---|---|---|
name | да | 1–64 символа, строчные буквы, цифры и дефисы; без начального, конечного или двойного дефиса; должно совпадать с именем каталога |
description | да | 1–1024 символа, не пустое; говорит, что делает skill и когда его использовать |
license | нет | имя лицензии или имя bundled файла лицензии |
compatibility | нет | до 500 символов: целевой продукт, необходимые пакеты, доступ к сети |
metadata | нет | свободная map строковых ключей в строковые значения для ваших собственных инструментов |
allowed-tools | нет | разделённый пробелами список заранее одобренных инструментов; помечено как экспериментальное |
Вот skill для release notes, целиком, с body короче тридцати строк:
---
name: release-notes
description: Write the release notes for a tagged version in this company's house style. Use when preparing a release, drafting a changelog entry, or when someone asks for the notes for a version number or a tag.
allowed-tools: Bash(git log:*) Bash(git tag:*) Read
---
# Release notes
## Procedure
1. Run `scripts/collect.sh <previous-tag> <new-tag>`. It prints one line per merged
pull request: number, title, author and the labels.
2. Drop every line whose labels contain `internal`, `ci` or `chore`.
3. Put each surviving line into exactly one of the four categories in
[references/categories.md](references/categories.md). A change that seems to fit two
belongs in the higher one; the order in that file is the order of precedence.
4. Rewrite each line as a sentence in the voice defined in
[references/voice.md](references/voice.md). The pull request title is a note to
the team; the release note is a note to a stranger.
5. Check the result against [references/examples.md](references/examples.md).
## The one rule that is not negotiable
Every note says what a person can now do, or what stopped happening to them. If a
sentence can only be understood by someone who has read the diff, it is not finished.Прочитайте, чем является этот body. Это не политика — это оглавление с порядком операций. Политика живёт в трёх файлах, которые он называет и не включает. А первый шаг передаёт работу скрипту, потому что code скрипта вообще никогда не попадает в context window: попадает только его вывод.2
Три уровня и стоимость каждого
Ссылка на раздел: Три уровня и стоимость каждогоУ модели загрузки есть имя и три стадии. Спецификация формулирует их с привязанным бюджетом token:1
- Metadata, около 100 token:
nameиdescription, загружаются при старте для каждого установленного skill. - Инструкции, рекомендуется меньше 5 000 token: body
SKILL.md, загружается, когда skill активирован. - Ресурсы, по необходимости: bundled files, загружаются только когда что-то их требует.
Справочная документация добавляет к той же таблице четвёртую колонку — когда загружается, стоимость в token, содержимое — и важная строка третья: ничего до обращения.3 Там же есть фраза, которая резюмирует всю главу:
Files don't consume context until accessed, so Skills can include comprehensive API documentation, large datasets, or extensive examples. There's no context penalty for bundled content that isn't used.3
Измеренная таблица в начале этой главы — это проверка этого утверждения на пяти skill, которые никто не писал для этой статьи. Две строки стоит прочитать рядом.
next-best-practices имеет body на 966 token, который ссылается на девятнадцать файлов, содержащих 19 374 token. Попросите его исправить hydration error — и agent прочитает body плюс hydration-error.md: 1 409 token из 20 340, коэффициент четырнадцать, а остальные восемнадцать файлов так и не будут открыты.
next-cache-components имеет body на 2 334 token и вообще не имеет bundled files. Это валидный skill и хорошо написанный skill, но у него нет уровня 3, который можно раскрывать. Это честный предел техники: progressive disclosure экономит только если есть что отложить. Skill, знание которого не раскладывается на части, платит весь свой body при активации, и единственный оставшийся рычаг — не активировать его.
Сломайте его: описание — это весь интерфейс
Ссылка на раздел: Сломайте его: описание — это весь интерфейсУровень 1 — это routing-решение, принятое по одному предложению. Ничто другое в skill не влияет на то, будет ли он вообще открыт: ни качество body, ни примеры, ни скрипты. Поэтому описание — не документация. Это поверхность запроса, и она может быть неправильной.
Спецификация говорит об этом через хороший и плохой пример, и плохой — это четыре слова: description: Helps with PDFs.1 Это стоит измерить, а не просто принять.
Шесть skill, каждый с правдоподобным описанием, которое говорит, что он делает и когда его использовать. Двадцать четыре запроса, по четыре на skill, сформулированные так, как их сформулировал бы человек, и никогда не называющие skill. Модель видит шесть строк в своём system prompt и должна ответить одним именем или NONE. Greedy decoding, чтобы результат воспроизводился. Затем те же двадцать четыре запроса с теми же шестью skill, но описания сокращены до голой темы.
rich - sql-review: Review a SQL migration for locks, missing indexes and unsafe
defaults before it runs on the production database. Use when someone adds
or changes a migration, an index, or a table column.
thin - sql-review: Helps with SQL.rich 295 tokens of level 1 for six skills 18/24 correct = 75.0 % [55.1, 88.0]
thin 81 tokens of level 1 for six skills 10/24 correct = 41.7 % [24.5, 61.2]
paired: rich only 9, thin only 1, two-sided sign test p = 0.0215
answered NONE: rich 1 of 24, thin 9 of 24Сначала прочитайте интервалы, как настаивала глава 4 и как снова будет настаивать глава 29: они перекрываются, и двадцать четыре случая не могут ранжировать две системы только по агрегатам. Решает парное сравнение, и это инструмент главы 15: из десяти случаев, где две ветки разошлись, девять достались насыщенным описаниям и один — тонким. Это установлено на обычном пороге.
Теперь прочитайте последнюю строку — это собственно вывод. С тонкими описаниями модель ответила NONE на девять из двадцати четырёх запросов. Не неверный skill: никакой skill. Вот четыре из них, дословно:
"Check this migration before I run it against production." -> release-notes
"Will this CREATE INDEX lock writes?" -> NONE
"Is this ALTER TABLE safe to deploy at peak traffic?" -> NONE
"Is 'seamless and powerful' allowed in the app store listing?" -> next-best-practicesБыл установлен идеальный skill sql-review, с body, примерами и чек-листом, и он ни разу не был открыт — три раза подряд, на трёх вопросах, ради которых был написан. Уровни 2 и 3 не имеют значения для skill, до которого уровень 1 никогда не доходит.
Стоимость исправления: 214 token, разница между 295 и 81, распределённая по шести skill. Это вывод главы 18, пришедший с другой стороны. Там изменение только описания инструмента подняло форматирование дат с 2 правильных из 24 до 24 из 24. Здесь изменение только описания skill поднимает активацию с 10 из 24 до 18. В обоих случаях самое дешёвое исправление в системе — предложение, и в обоих случаях предложение должно называть trigger, а не только предмет: не что это такое, а что пользователь только что сказал, когда это применимо.
Одна оговорка, которую эта глава должна собственным стандартам. Это модель с половиной миллиарда параметров, и frontier model маршрутизирует намного лучше, чем 75 %. Читайте механизм, а не величину: routing-сигнал имеет длину в одно предложение независимо от того, какая модель его читает, и ни одна модель не может выбирать по информации, которую вы не вложили в это предложение.
Сломайте снова: аварийный выход стоимостью 26 362 token
Ссылка на раздел: Сломайте снова: аварийный выход стоимостью 26 362 tokenВторая поломка противоположна первой. Skill найден, уровни правильно разделены, и agent всё равно читает всё.
vercel-react-best-practices — действительно хорошо построенный skill. Его body на 1 670 token — это таблица приоритетов из восьми категорий и краткий справочник, называющий 70 файлов правил, по одной строке на каждый. Правила лежат на диске рядом: 70 файлов, самый маленький — 132 token, медианный — 319, самый большой — 1 052. Задайте один вопрос о barrel imports, и честная стоимость — body плюс один файл, меньше 2 400 token против bundle на 53 670.
Затем последняя строка body говорит вот что:
## Full Compiled Document
For the complete guide with all rules expanded: `AGENTS.md`AGENTS.md — это 26 362 token. Это конкатенация 70 файлов правил: их сумма — 25 784, а разница — заголовки между ними. Значит, skill предлагает agent выбор между чтением одного медианного правила на 319 token и чтением того же содержимого, целиком, по цене в восемьдесят три раза выше — и предлагает этот выбор в предложении без указания стоимости и без условия, когда его делать.
Это не bug, и файл не неправильный; скомпилированный документ действительно полезен человеку и agent, которого попросили провести аудит всей codebase. Это файл уровня 3 с приглашением уровня 2, и урок обобщается дальше этого одного skill: каждый путь из SKILL.md должен говорить, сколько он стоит и когда он того стоит, потому что у модели нет способа узнать, что имя файла в восемьдесят три раза дороже имени файла над ним.
В той же папке есть меньший урок про устаревание. Body говорит «70 rules across 8 categories» и перечисляет 70; каталог rules/ содержит 72 файла, из которых два — scaffolding (_template.md и _sections.md); а sidecar metadata.json говорит «40+ rules». Три счёта одного и того же набора в одной папке: один правильный, один арифметический и один оставшийся от более ранней версии. Skill — это документ, а документы протухают ровно так же, как комментарий в коде, сместившийся относительно кода рядом с ним, — с той разницей, что этот читает машина, которая не поднимет бровь.
Поля, которые добавляет эталонная реализация, и ловушка переносимости
Ссылка на раздел: Поля, которые добавляет эталонная реализация, и ловушка переносимостиОткрытая спецификация определяет шесть полей frontmatter. Эталонная реализация, Claude Code, принимает двадцать.2 Пять групп стоит знать по именам, потому что именно там формат перестаёт быть только документом:
Разрешения и вызов. allowed-tools заранее одобряет инструменты для хода, который вызвал skill, и грант очищается на следующем сообщении; disallowed-tools удаляет их. disable-model-invocation не даёт модели загрузить его самостоятельно, превращая skill в команду, которую запускает человек. user-invocable: false делает обратное: скрыто от людей, доступно только модели, для фоновых знаний.
Изоляция и стоимость. context: fork запускает skill в отдельном sub-agent context с собственным окном — граница sub-agent из главы 25 одной строкой YAML, — где agent выбирает тип, а background решает, ждёт ли ход. model и effort меняют модель, которая работает, пока skill активен, только для этого хода.
Аргументы (arguments, argument-hint) позволяют человеку передавать значения, которые подставляются в body, и именно это делает skill пригодным как slash-команду. Scoping (paths) ограничивает активацию файлами, совпадающими с glob. А dynamic context injection — то, что меняет ментальную модель: строка вида !`git diff HEAD` запускается до отправки body, и её вывод подставляется в текст. Документ — это шаблон, и часть его вычисляется во время чтения.
Теперь ловушка, и она сформулирована в той же документации: вне Claude Code — в веб-продукте, через Skills API, при упаковке — разрешены только шесть указанных полей, а любое другое поле является жёсткой ошибкой при загрузке.2 Поэтому skill, который идеально работает в одном продукте, не устанавливается в другом продукте того же поставщика, и ломается он на frontmatter, а не на чём-то, что можно было бы проверить чтением прозы. Если вы хотите, чтобы skill был переносимым, шесть полей — весь ваш бюджет. Если нет, скажите это в compatibility, который существует ровно для этого.
Таблица, ради которой существует эта глава
Ссылка на раздел: Таблица, ради которой существует эта главаЧетыре вещи постоянно путают друг с другом, и эта путаница — не словарное занудство: неверный выбор либо стоит денег на каждом ходе, либо лишает гарантии, которую вы думали, что имеете.
| System prompt | Skill | Инструмент | MCP server | |
|---|---|---|---|---|
| Что это | текст в каждом запросе | папка, в корне которой SKILL.md | JSON Schema плюс endpoint в вашем code | процесс или сервис, говорящий на протоколе |
| Что делает модель | читает его, всегда | читает его, когда решает, что описание совпало | вызывает его и ждёт ваш результат | вызывает его через host, один client на server |
| Сколько стоит | вся длина, каждый ход, всегда | около 50 token за ход; body один раз, если используется | его schema, каждый ход; выполнение при вызове | каждая schema плюс instructions server, каждый ход |
| Что может гарантировать | ничего — это совет | ничего — это совет, который модель может пропустить | всё, что ваш code проверяет перед действием | всё, что enforcing делает server |
| Кто пишет | вы | вы, коллега или поставщик | вы | кто-то другой, для многих hosts |
| Глава | 15 | эта | 18 | 26 и 27 |
Две строки жирным — всё различие. Skill читают; инструмент вызывают. Skill — это проза, которая попадает в context window и конкурирует за attention со всем остальным там; модель может ей следовать, неверно её прочитать или проигнорировать, и ничто в системе этого не заметит. Инструмент — это вызов, который полностью покидает руки модели: ваш code получает аргументы, валидирует их, проверяет разрешения и принимает решение. Глава 18 сформулировала это как «модель предлагает, а ваш code распоряжается», и именно этого разделения у skill нет.
Итак, шесть реальных случаев, с решениями:
«Отвечай на языке пользователя. Никогда не называй цену, которую тебе не дали.»
Ссылка на раздел: «Отвечай на языке пользователя. Никогда не называй цену, которую тебе не дали.»System prompt. Применяется на каждом ходе, это ограничение, а не процедура, и оно занимает два предложения. То, что применяется всегда, нечего раскрывать progressively, а платить за строку обнаружения на каждом ходе, чтобы не платить за два предложения на каждом ходе, — не экономия.
«Как мы здесь пишем release notes.»
Ссылка на раздел: «Как мы здесь пишем release notes.»Skill. Процедурно, нужно, возможно, на одном ходе из сорока, раскладывается на voice, таксономию и примеры, и это проза, которую будет редактировать человек. Именно для такой формы создан формат, и измерение выше показывает, что он экономит.
«Найди заказ по его идентификатору в складской базе данных.»
Ссылка на раздел: «Найди заказ по его идентификатору в складской базе данных.»Инструмент. За этим стоит детерминированная функция, и модель не должна импровизировать query. Записать это как skill — документ, объясняющий, как запрашивать склад, — значит дать модели schema и надеяться. Schema плюс endpoint дают ей ответ.
«Читай и записывай issues в нашем tracker из каждого agent-продукта, который использует компания.»
Ссылка на раздел: «Читай и записывай issues в нашем tracker из каждого agent-продукта, который использует компания.»MCP server. Возможность не ваша, нескольким hosts она нужна, и у неё есть история с authentication. Это проблема , с которой открылась глава 26; протокол — ответ на неё, и глава 27 поставляет один дважды. Skill не может быть обнаружен host, который никогда не видел вашу filesystem, — именно этот разрыв и закрывает стандартизационная работа в конце этой главы.
«Брендбук на четыреста страниц.»
Ссылка на раздел: «Брендбук на четыреста страниц.»Ни один из четырёх. Это знание, которое нужно искать, а не процедура, которой нужно следовать, и ему место в индексе, который agent ищет: глава 19. Упаковать его как уровень 3 разрешено, заманчиво и неправильно, потому что модели пришлось бы гадать только по именам, в каком из сорока файлов лежит ответ. Хороший skill — это двухстраничная процедура, которая говорит agent, когда искать в этом индексе, что означает низкий similarity score и как цитировать найденное.
«Никогда не возвращай больше двухсот евро без участия человека.»
Ссылка на раздел: «Никогда не возвращай больше двухсот евро без участия человека.»Инструмент с approval gate, и никогда skill. Это действительно важный случай. Записанный в SKILL.md, лимит — это предложение, которое модель читает и обычно соблюдает; записанный в инструмент возврата, это ветка, которая выполняется до движения денег. Лимит, нарушение которого поставило бы вас в неловкое положение, — не документация. Правило, которое стоит запомнить: если последствия игнорирования инструкции хуже, чем плохо отформатированный ответ, этой инструкции не место в документе.
От внутреннего жаргона к стандарту, с числами
Ссылка на раздел: От внутреннего жаргона к стандарту, с числамиИстория короткая, необычно хорошо датированная, и именно эту часть почти никто не рассказывает.
Agent Skills были опубликованы 16 октября 2025 года как функция одного поставщика, определённая в том анонсе как «organized folders of instructions, scripts, and resources that agents can discover and load dynamically to perform better at specific tasks», с тремя уровнями, описанными через аналогию, которую стоит сохранить: «like a well-organized manual that starts with a table of contents, then specific chapters, and finally a detailed appendix».4
18 декабря 2025 года та же страница была обновлена и объявила формат открытым стандартом, с собственной спецификацией по адресу agentskills.io, governance, открытым для contributions, и reference validator.3 При чтении 7 сентября 2026 года витрина клиентов стандарта перечисляла сорок шесть продуктов — редакторы, терминалы, облачные платформы и мобильные runtimes, включая first-party coding agents Anthropic, OpenAI, Google и Mistral, — каждый со ссылкой на собственную документацию по настройке.1
Сближение с MCP делается открыто, с числами, которые можно проверить:
| Что это | Открыто | Состояние на 7 сен. 2026 | |
|---|---|---|---|
| SEP-2076 | Agent Skills as a First-Class MCP Primitive: новые методы skills/list и skills/get, capability skills, уведомление list_changed | 13 января 2026 | закрыто, 24 февраля 2026 |
| Skills Over MCP working group | определяет, как skills «discovered, distributed, and consumed through MCP»; встречается еженедельно; семнадцать указанных участников, двое из них leads | interest group 1 февраля 2026; working group 16 апреля 2026 | активна |
| SEP-2640 | Skills Extension, Extensions Track: resource convention skill://, extension identifier io.modelcontextprotocol/skills, discovery через skills/list и content через resources/read | 23 апреля 2026 | на review |
Интересны не предложения, а закрытие. SEP-2076 просил четвёртый primitive рядом с tools, resources и prompts. Working group, выросшая из него, решила, что ответ — нет: skills едут на уже существующем primitive resources как opt-in extension.5 Глава 26 измерила тот же инстинкт в собственном changelog протокола, где sampling, roots и logging были deprecated, а не сохранены. Standards body, которое удаляет собственное предложение, ведёт себя правильно, и причина рассказывать эту историю с числами перед глазами в том, что summaries, которые вы прочитаете в других местах, всё ещё описывают skills как MCP primitive.
Куда это ведёт дальше
Ссылка на раздел: Куда это ведёт дальшеТеперь вы можете написать SKILL.md, разделить его на три уровня, которые окупаются, прочитать frontmatter чужого skill и понять, какие поля не переживут загрузку куда-то ещё, а также ответить на вопрос, вокруг которого построена вся глава, — system prompt, skill, инструмент или server — с причиной, а не по привычке.
Чего вы не можете сделать — так это сказать, работает ли ваш.
Каждое важное утверждение в этой главе было измерением, а самое важное — точностью: 18 из 24 против 10 из 24, с интервалом у каждого и парным тестом между ними, потому что два перекрывающихся агрегата ничего не решают. Этот инструмент был заимствован. Описание skill — это routing key, его body — процедура, которой модель может следовать или не следовать, и обе эти свойства можно выяснить только запустив вещь много раз и оценив то, что вернулось, — а это golden set, grader, который вы написали до запуска, и метрика, которая спрашивает, сработало ли это каждый раз, а не хотя бы один раз.
Глава 29 — об этом, и она начинается с числа, от которого зависит метод этой главы: agent, который добивается успеха семь раз из десяти, выглядит как 70 %, а его pass^10 — шанс добиться успеха во всех десяти — равен нулю. Она также измеряет три grader на одних и тех же двухстах транскриптах и получает 0 %, 13 % и 26 %, не регенерируя ни одного token. Прежде чем доверять предложению, которое вы только что записали в description, вам нужен инструмент, способный сказать, что оно хуже того, которое вы заменили.
Источники и метод
Ссылка на раздел: Источники и методКаждый подсчёт token в этой главе был произведён локально с tiktoken 0.14.0 и encoding o200k_base, 7 сентября 2026 года: по пяти сторонним skill, перечисленным в начале этой главы, и по skill release-notes, написанному для этой главы, чей полный текст частично воспроизведён выше. Уровень 1 измеряется как единственная строка - name: description, которую host рендерит в system prompt; уровень 2 — body SKILL.md после frontmatter; уровень 3 — любой другой файл в папке. Стоимости используют измеренные в главе 16 тарифы для gpt-5.6-terra: $2.00 за миллион входных token и $0.20 за миллион кэшированных входных token, применённые к этим counts — это арифметика по измеренным token, а не наблюдения живого счёта. Ни один платный API не был вызван для написания этой главы.
Activation experiment запускал Qwen/Qwen2.5-0.5B-Instruct в half precision на одном потребительском GPU, greedy decoding, 24 запроса по шести skill, дважды — один раз с описаниями, которые говорят, что skill делает и когда применяется, один раз с описаниями, сокращёнными до голой темы в стиле собственного «poor example» спецификации. Интервалы — Wilson на 95 %; парное сравнение — двухсторонний exact sign test по десяти discordant cases; Wilson interval взят из главы 4, exact paired sign test — из главы 15, оба использованы без изменений. Читайте величины как свойство очень маленькой модели, а метод — как переносимый.
Пять skill, измеренных здесь, — сторонние пакеты, а не написанные для этой главы: next-best-practices и next-cache-components из vercel-labs/next-skills, а также vercel-composition-patterns, vercel-react-best-practices и vercel-react-native-skills из vercel-labs/agent-skills. Их внутренние counts — 70 файлов правил, AGENTS.md на 26 362 token, metadata.json с датой январь 2026 и утверждением «40+ rules» — были прочитаны из файлов на диске 7 сентября 2026 года и являются свойствами этой опубликованной версии, а не критикой её авторов: каждый из них — тот самый drift, который появляется в любом documentation tree, редактируемом чаще, чем его пересчитывают.
Сноски
Ссылка на раздел: Сноски-
Agent Skills Specification и Overview,
agentskills.io/specificationиagentskills.io, прочитано 7 сентября 2026 года. Источник directory layout; таблицы frontmatter, воспроизведённой выше со всеми ограничениями (name1–64 символа и совпадение с каталогом,description1–1024 символа,compatibilityдо 500,allowed-toolsпомечено experimental); хорошего и плохого примеровdescription; трёхстадийного описания progressive disclosure с бюджетом token (metadata около 100 token, instructions рекомендуется меньше 5 000, resources по необходимости) и совета держатьSKILL.mdменьше 500 строк; замечания, что «the agent will load this entire file once it's decided to activate a skill»; соглашенийscripts/,references/иassets/; командыskills-ref validate; утверждения, что формат «was originally developed by Anthropic, released as an open standard, and has been adopted by a growing number of agent products»; и client showcase, которая на дату чтения перечисляла сорок шесть продуктов. ↩ ↩2 ↩3 ↩4 -
Skills в документации Claude Code,
code.claude.com/docs/en/skills, прочитано 7 сентября 2026 года. Источник полной таблицы полей, использованной в разделе «Поля, которые добавляет эталонная реализация», —when_to_use,argument-hint,arguments,disable-model-invocation,user-invocable,allowed-tools,disallowed-tools,model,effort,context,agent,background,hooks,paths,shell,metadata,license,compatibility— описания dynamic context injection, где!`command`запускается до отправки body, правила, что грантallowed-toolsочищается на следующем сообщении, и compliance note, что вне Claude Code принимаются только шесть указанных полей, а любое другое вызывает жёсткую ошибку при upload или packaging. ↩ ↩2 ↩3 -
Обзор Agent Skills,
platform.claude.com/docs/en/agents-and-tools/agent-skills/overview, прочитано 7 сентября 2026 года. Источник таблицы уровней с четырьмя колонками (Level 1 metadata, always, about 100 tokens per skill; Level 2 instructions, when triggered, under 5k tokens; Level 3+ resources, as needed, none until accessed); предложения, полностью процитированного о том, что bundled content не несёт context penalty; фразы «until a Skill is triggered, only its name and description occupy context»; утверждения, что code скрипта никогда не попадает в context window и попадает только его output; и раздела security, который говорит использовать skills только из доверенных источников и предупреждает, что malicious skill «can direct Claude to invoke tools or execute code in ways that don't match the Skill's stated purpose» — тема главы 30, приходящая через документ, а не через описание инструмента. ↩ ↩2 ↩3 -
Anthropic, Equipping agents for the real world with Agent Skills, 16 октября 2025 года,
anthropic.com/engineering/equipping-agents-for-the-real-world-with-agent-skills, прочитано 7 сентября 2026 года. Источник процитированного выше определения, аналогии с оглавлением/главами/приложением, трёх уровней в первоначальном описании и framing, что agents нужны «more composable, scalable, and portable ways» для передачи domain expertise. Сопутствующий product announcement по адресуclaude.com/blog/skillsсодержит дату публикации 16 октября 2025 года и обновление от 18 декабря 2025 года, которое ввело organization-wide management и open standard. ↩ -
Skills Over MCP Charter,
modelcontextprotocol.io/community/working-groups/skills-over-mcp, прочитано 7 сентября 2026 года. Источник процитированной выше mission statement, дат changelog (interest group сформирована 1 февраля 2026 года, initial charter 14 апреля 2026 года, преобразована в working group 16 апреля 2026 года, SEP-2640 linked 25 апреля 2026 года), leadership и семнадцати перечисленных members, еженедельного cadence встреч и success criterion, называющего draft Skills Extension «a formal extension using existing Resources primitives». SEP-2076, Agent Skills as a First-Class MCP Primitive,github.com/modelcontextprotocol/modelcontextprotocol/pull/2076, был открыт 13 января 2026 года и закрыт 24 февраля 2026 года; он предлагалskills/list,skills/get, server capabilityskillsи notificationskills/list_changed, а также определял skill как «a named bundle of instructions plus references to tools, prompts, and resources that together teach an agent how to perform a domain-specific workflow». SEP-2640, Skills Extension,.../pull/2640, был открыт 23 апреля 2026 года на Extensions Track и содержит resource conventionskill://и extension identifierio.modelcontextprotocol/skills. Глава 26 перечисляет ту же working group среди optional extensions протокола. ↩