Перейти к содержимому
28/30Глава 28 из 30

Agent Skills и SKILL.md: прогрессивное раскрытие, измеренное

Пять реальных skill с 128 374 token инструкций занимают 253 token context. Сократите описания — и agent перестаёт их находить.

На этой странице

Возьмём проект, в котором установлены пять опубликованных skill. Вот сколько они стоят.

terminalBASH
ls .claude/skills/
TEXT
next-best-practices  next-cache-components  vercel-composition-patterns
vercel-react-best-practices  vercel-react-native-skills
o200k_base tokens, measuredTEXT
skill                              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 по папке, написанной для этой главы:

the same instruction, two ways, 40 turnsTEXT
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. Закэшируйте не то — и вы купили скидку на отвлечение.

В виде формулы, где nn — ходы, L1L_1 — metadata, L2L_2 — body, L3L_3 — весь bundle, а RR — набор bundled files, которые действительно прочитаны:

system prompt=n(L1+L2+L3)skill=nL1+1[used](L2+iRL3(i))\text{system prompt} = n\,(L_1 + L_2 + L_3) \qquad \text{skill} = n\,L_1 + \mathbb{1}[\text{used}]\left(L_2 + \sum_{i \in R} L_3^{(i)}\right)

Вся эта глава — разница между умножением второго члена на nn и умножением его на один или на ноль.

Skill — это каталог. Спецификация достаточно короткая, чтобы привести её полностью:

the whole formatTEXT
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 like

SKILL.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 короче тридцати строк:

release-notes/SKILL.mdMARKDOWN
---
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

  1. Metadata, около 100 token: name и description, загружаются при старте для каждого установленного skill.
  2. Инструкции, рекомендуется меньше 5 000 token: body SKILL.md, загружается, когда skill активирован.
  3. Ресурсы, по необходимости: 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, но описания сокращены до голой темы.

the two system promptsTEXT
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.
24 requests, Qwen2.5-0.5B-Instruct, greedy decodingTEXT
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. Вот четыре из них, дословно:

TEXT
"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 говорит вот что:

the final section of SKILL.mdTEXT
## 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 promptSkillИнструментMCP server
Что этотекст в каждом запросепапка, в корне которой SKILL.mdJSON Schema плюс endpoint в вашем codeпроцесс или сервис, говорящий на протоколе
Что делает модельчитает его, всегдачитает его, когда решает, что описание совпаловызывает его и ждёт ваш результатвызывает его через host, один client на server
Сколько стоитвся длина, каждый ход, всегдаоколо 50 token за ход; body один раз, если используетсяего schema, каждый ход; выполнение при вызовекаждая schema плюс instructions server, каждый ход
Что может гарантироватьничего — это советничего — это совет, который модель может пропуститьвсё, что ваш code проверяет перед действиемвсё, что enforcing делает server
Кто пишетвывы, коллега или поставщиквыкто-то другой, для многих hosts
Глава15эта1826 и 27

Две строки жирным — всё различие. Skill читают; инструмент вызывают. Skill — это проза, которая попадает в context window и конкурирует за attention со всем остальным там; модель может ей следовать, неверно её прочитать или проигнорировать, и ничто в системе этого не заметит. Инструмент — это вызов, который полностью покидает руки модели: ваш code получает аргументы, валидирует их, проверяет разрешения и принимает решение. Глава 18 сформулировала это как «модель предлагает, а ваш code распоряжается», и именно этого разделения у skill нет.

Итак, шесть реальных случаев, с решениями:

«Отвечай на языке пользователя. Никогда не называй цену, которую тебе не дали.»

Ссылка на раздел: «Отвечай на языке пользователя. Никогда не называй цену, которую тебе не дали.»

System prompt. Применяется на каждом ходе, это ограничение, а не процедура, и оно занимает два предложения. То, что применяется всегда, нечего раскрывать progressively, а платить за строку обнаружения на каждом ходе, чтобы не платить за два предложения на каждом ходе, — не экономия.

Skill. Процедурно, нужно, возможно, на одном ходе из сорока, раскладывается на voice, таксономию и примеры, и это проза, которую будет редактировать человек. Именно для такой формы создан формат, и измерение выше показывает, что он экономит.

«Найди заказ по его идентификатору в складской базе данных.»

Ссылка на раздел: «Найди заказ по его идентификатору в складской базе данных.»

Инструмент. За этим стоит детерминированная функция, и модель не должна импровизировать query. Записать это как skill — документ, объясняющий, как запрашивать склад, — значит дать модели schema и надеяться. Schema плюс endpoint дают ей ответ.

«Читай и записывай issues в нашем tracker из каждого agent-продукта, который использует компания.»

Ссылка на раздел: «Читай и записывай issues в нашем tracker из каждого agent-продукта, который использует компания.»

MCP server. Возможность не ваша, нескольким hosts она нужна, и у неё есть история с authentication. Это проблема N×MN \times M, с которой открылась глава 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-2076Agent Skills as a First-Class MCP Primitive: новые методы skills/list и skills/get, capability skills, уведомление list_changed13 января 2026закрыто, 24 февраля 2026
Skills Over MCP working groupопределяет, как skills «discovered, distributed, and consumed through MCP»; встречается еженедельно; семнадцать указанных участников, двое из них leadsinterest group 1 февраля 2026; working group 16 апреля 2026активна
SEP-2640Skills Extension, Extensions Track: resource convention skill://, extension identifier io.modelcontextprotocol/skills, discovery через skills/list и content через resources/read23 апреля 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, редактируемом чаще, чем его пересчитывают.

  1. Agent Skills Specification и Overview, agentskills.io/specification и agentskills.io, прочитано 7 сентября 2026 года. Источник directory layout; таблицы frontmatter, воспроизведённой выше со всеми ограничениями (name 1–64 символа и совпадение с каталогом, description 1–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

  2. 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

  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

  4. 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.

  5. 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 capability skills и notification skills/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 convention skill:// и extension identifier io.modelcontextprotocol/skills. Глава 26 перечисляет ту же working group среди optional extensions протокола.

Готовы доверить выбор модели LIA?

Создавайте со всеми ИИ-моделями в одном месте — начните бесплатно уже сегодня.