3,583 papers
arXiv:2610.25064 94 18 окт. 2026 г. FREE

Мета-скил: слияние двух конфликтующих скилов в один файл с одним общим примером

КЛЮЧЕВАЯ СУТЬ
Обнаружено: если у агента два навыка (skill, файла с инструкциями) на одну работу, он выбирает один и бросает правила второго целиком. Теряется около трети правил, даже тех, что ничему не противоречат. Метод позволяет заставить агента выполнять правила обоих навыков сразу, не переписывая их с нуля. Фишка: виноваты не правила, а примеры внутри навыков, потому что модель копирует образец, а не читает список. Слей два файла в один и оставь один общий пример по правилам обоих навыков, и перехват почти исчезает.
Адаптировать под запрос
⚡

TL;DR

Мета-скил — это один файл инструкций, в который слиты правила двух скилов (файлов SKILL.md, которые учат агента одной работе). В конце файла стоит один пример, соблюдающий правила обоих скилов. Так модель получает не два конкурирующих образца, а один правильный. Файл лучше писать самой сильной моделью.

Главная находка: когда в контексте лежат два скила для одной работы, модель не смешивает их. Она выбирает один и выполняет его правила целиком, а правила второго бросает, даже те, что ничему не противоречат. Одиночный скил выполняется почти идеально, а при втором скиле «для того же» теряется около трети правил. Причина — примеры внутри скилов. Каждый показывает результат только по правилам своего скила, и модель копирует формат образца. Фраза «при конфликте главный скил А» не помогает ни на одной модели. Большая модель теряет столько же, сколько маленькая.

Лечение: слить оба файла в один и дописать в конец один пример, который следует обоим скилам. Если сливать не хочется, можно оставить два файла и закончить каждый одним и тем же примером, соблюдающим оба скила. Перехват при этом почти исчезает.


🔬

Схема метода

ШАГ 1: Выписать правила обоих скилов → два списка
ШАГ 2: Пометить пары правил → противоречат / совпадают / переплетены (остальные независимы)
ШАГ 3: Собрать один файл → независимые слово в слово, совпадающие в одно,
        противоречия решает «главный» скил, переплетённые в одно общее правило
ШАГ 4: Написать ОДИН пример, соблюдающий все правила обоих скилов
        (старые примеры выбросить)
ШАГ 5: Заменить два файла одним

Всё делается в одном чате, одним промптом, лучше на самой сильной модели из доступных.

Запасной вариант без слияния: оставить два файла и в конец каждого вставить один и тот же пример, соблюдающий оба скила.


🚀

Пример применения

Задача: В команде интернет-магазина два скила для коммитов. Личный conventional-commits разработчик Андрей поставил себе сам. Командный tracker-first принят в очереди SHOP в Яндекс Трекере. Агент в Claude Code пишет коммиты то по одному стилю, то по другому. Второй скил он игнорирует целиком, включая правила, которые не спорят с первым.

Промпт:

Ты — редактор инструкций для агента. Слей два скила для одной работы
(«написать сообщение коммита») в один файл SKILL.md.


1. Первая строка: type(scope): описание.
2. Первая строка до 72 символов, глагол в повелительном наклонении.
3. После первой строки — пустая строка и тело: зачем сделано изменение.
4. В теле нет слов «исправил», «поправил» без уточнения.
5. Последняя строка сообщения: Co-authored-by: {имя}.
6. Тип только из списка: feat, fix, docs, refactor, test, chore.
Пример: (пример скила A)



1. Первая строка начинается с номера тикета в квадратных скобках: [SHOP-123].
2. Первая строка до 72 символов.
3. После первой строки — пустая строка и тело: зачем сделано изменение.
4. Тело содержит строку «Компонент: {название}».
5. Последняя строка сообщения: Reviewed-by: pending.
6. Строка «Автор: {имя}» стоит перед последней строкой.
Пример: (пример скила B)


tracker-first
(при прямом конфликте побеждает командный скил)


Шаг 1. Выпиши правила каждого скила списком.
Шаг 2. Найди пары правил, которые взаимодействуют, и пометь:
  - противоречат: оба выполнить нельзя;
  - совпадают: оба просят одно и то же;
  - переплетены: оба выполнить можно, но только при аккуратной
    компоновке (например, оба хотят быть последней строкой).
  Остальные правила — независимые. Не выдумывай пар, которых нет.
Шаг 3. Напиши итоговый SKILL.md:
  - независимые правила — слово в слово;
  - совпадающие — одним правилом;
  - противоречащие — выигрывает Primary, одна строка об этом;
  - переплетённые — одно общее правило, которое прямо говорит,
    как расположить строки.
Шаг 4. В конец файла добавь ОДИН пример сообщения коммита,
  который соблюдает все правила обоих скилов, кроме проигравшей
  стороны противоречия. Примеры из исходных файлов не копируй.
Шаг 5. Выведи сначала таблицу меток, затем готовый файл.

Результат: Модель сначала покажет таблицу: какие правила совпали, какие спорят, какие переплетены. Затем выдаст один SKILL.md с единым списком правил, строкой про приоритет командного скила и одним сквозным примером коммита. Этот файл заменяет два исходных. Агент после этого должен выполнять правила обоих скилов, а не одного.


🧠

Почему это работает

Слабость. Модель копирует образец сильнее, чем читает правила. Пример внутри скила показывает вывод по правилам только этого скила. Когда в контексте два таких образца, модель выбирает один и повторяет его формат. Остальные правила второго скила теряются, хотя им ничто не мешало. Приказ «главный скил А» не отменяет притяжения образца: модель не следует приоритету так, как мы ждём.

Сильная сторона. Если образец один и правильный, модель хорошо его воспроизводит. Один пример, соблюдающий оба набора правил, показывает, как они живут вместе. Это особенно важно для переплетённых правил: например, две строки, которым обеим нужно стоять последней. Списком такие правила не объяснишь, а на примере видно сразу.

Рычаги управления: - Кто пишет слияние. Чем сильнее модель-автор, тем лучше файл. Слабая модель-автор путает метки и портит результат. - Пример. Это главный рычаг. Без него эффект сильно падает, а неправильный пример почти ничего не даёт. Пример надо проверять по каждому правилу. - Строка про приоритет. Нужна только для настоящих противоречий. Одна строка в списке, на остальное она не влияет. - Метки пар. Не обязательны. У самой сильной модели простое «слей в один файл с одним общим примером» работало почти так же, как разбор по шагам. Шаги помогают, только когда метки поставлены верно.


📋

Шаблон промпта

Ты — редактор инструкций для агента. Слей два скила для одной работы
({название_работы}) в один файл SKILL.md.


{текст_скила_A}



{текст_скила_B}


{главный_скил}
(при прямом конфликте побеждает этот скил)


Шаг 1. Выпиши правила каждого скила списком.
Шаг 2. Найди пары правил, которые взаимодействуют, и пометь:
  - противоречат: оба выполнить нельзя;
  - совпадают: оба просят одно и то же;
  - переплетены: оба выполнить можно, но только при аккуратной компоновке.
  Остальные правила — независимые. Не выдумывай пар, которых нет.
Шаг 3. Напиши итоговый SKILL.md:
  - независимые правила — слово в слово;
  - совпадающие — одним правилом;
  - противоречащие — выигрывает Primary, одна строка об этом;
  - переплетённые — одно общее правило, которое прямо говорит, как их совместить.
Шаг 4. В конец файла добавь ОДИН пример результата, который соблюдает
  все правила обоих скилов (кроме проигравшей стороны противоречия).
  Примеры из исходных файлов не копируй.
Шаг 5. Выведи сначала таблицу меток, затем готовый файл.

Что подставлять: {название_работы} — одна работа, на которую претендуют оба скила. {текст_скила_A/B} — полный текст файлов. {главный_скил} — тот, чья сторона выигрывает при прямом противоречии.

Простой вариант: убери и оставь «слей в один файл, правила без потерь, в конце один пример, соблюдающий оба скила». На самой сильной модели результат был почти таким же.

Вариант без слияния: оставь два файла как есть. Удали из каждого родной пример и добавь в конец обоих один и тот же пример, соблюдающий оба скила.

🚀 Быстрый старт — вставь в чат:

Вот шаблон слияния двух скилов в один. Адаптируй под мою задачу:
{моя задача}. Задавай вопросы, чтобы заполнить поля.

[вставить шаблон выше]

LLM спросит, какую работу делают скилы, какой из них главный и дашь ли ты тексты обоих файлов. Это нужно, чтобы метод работал: слияние держится на точных метках пар правил и на одном верном примере. Всё остальное она возьмёт из шаблона.


⚠️

Ограничения

⚠️ Скилы искусственные: авторы написали их сами, по шесть правил на скил, с проверкой кодом. Реальные скилы длиннее и размытее. Цифры стоит читать как направление, а не как гарантию.

⚠️ Слабая модель-автор вредит: если слияние пишет маленькая модель, файл получается хуже, чем у сильной. Она часто путает метки и выдумывает несуществующие связи правил.

⚠️ Неправильный пример бесполезен: пример, который не выполняет все правила, почти ничего не даёт. Проверяй его вручную или отдельным запросом.

⚠️ Приоритет не работает: строка «при конфликте побеждает А» не возвращает потерянный скил ни на одной модели. Не рассчитывай на неё как на защиту.

⚠️ «Применяй оба» помогает частично: сильные модели с ним возвращают второй скил, но переплетённые правила остаются сломанными. Полностью верных ответов получается лишь около пятой части.

⚠️ Порядок загрузки решает, но непредсказуемо: какой скил победит, зависит от пары, порядка и модели. Если порядок не контролируешь, предсказать результат нельзя.

⚠️ Условия теста: оба файла лежали прямо в контексте. В реальных агентах скилы открываются по требованию, и там есть дополнительные потери из-за невыбранного скила.

⚠️ Не для всех задач: в SQL-запросах перехват почти не возникал: правила касались разных частей одного запроса, и модели их смешивали.


🔍

Как исследовали

Исследователи сделали 16 пар скилов для одной работы: сообщение коммита, описание пул-реквеста, SQL-запрос, баг-репорт и так далее. В каждом скиле шесть правил и один пример. Правила разделили на четыре типа: противоречащие, совпадающие, переплетённые и независимые. Каждое правило проверяла программа, а для каждой пары был эталонный ответ, соблюдающий все 10 достижимых правил. Правила обоих скилов выполнить нельзя: противоречия делают это невозможным.

Прогнали семь моделей: от маленьких открытых на 4–8 млрд параметров до Qwen3-235B и GPT-4.1. Сравнивали три варианта: один скил, скил плюс скил для другой работы, скил плюс скил для той же работы. Одиночный скил выполнялся на 93–99%. Скил для другой работы ничего не менял. Скил для той же работы снижал результат до 61–62% на всех семи моделях. Модель в 60 раз больше теряла столько же, сколько 4B.

Затем разбирали причину. Убрали примеры, и перехват резко упал. Оставили пример только у одного скила, и он выигрывал почти всегда. Дали обоим скилам один и тот же пример, соблюдающий оба, и перехват снизился до 1–15% даже без слияния файлов. Для сравнения проверили три способа слияния: правила копирует код, правила переписывает сама модель, правила сливает Claude Opus 5.5. Файлы от Opus позволили всем семи моделям выполнять 96–99% достижимых правил. Дальше выяснилось, что основная часть выигрыша — один пример. Добавили тот же пример к простому списку правил, и результат почти догнал файл Claude. Но пример помогал только корректный.

Неожиданностей две. Ожидали, что разбор по шагам с метками превзойдёт простое слияние, а это выполнялось только для сильнейшей модели. У остальных ошибочные метки портили результат. Второе: «применяй оба» на малых моделях почти ничего не дал, а на сильных вернул скил, но оставил сломанными переплетённые правила. Для практики вывод такой: пиши слияние сильной моделью, делай один верный пример и не рассчитывай на строки про приоритет.


💡

Адаптации и экстраполяции

💡 Адаптация для кастомного GPT или системного промпта: у тебя две инструкции для одной задачи, например редполитика компании и личный стиль автора. Каждая заканчивается своим образцом текста, и модель идёт за одним из них. Слей их так же: общий список правил и один образец, соблюдающий оба.

Вот две инструкции по написанию {тип_текста}: редполитика компании
и мой личный стиль. Слей их в один системный промпт.
Правила — списком, при конфликте побеждает {что_главнее}.
В конец добавь ОДИН образец текста на тему «{тема}»,
соблюдающий все правила обеих инструкций. Старые образцы убери.

[редполитика]
[личный стиль]

🔧 Техника: добавить проверку примера → не пропустить неверный образец. Статья показывает, что неверный пример бесполезен, но шага проверки в методе нет. Его легко добавить вторым запросом:

Проверь пример из файла по каждому правилу отдельно:
правило → выполнено / нарушено → где именно.
Если есть нарушения, исправь пример и покажи итоговую версию.

🔗

Ресурсы

  • Работа: One Skill Takes Over: Clashing Agent Skills and a One-File Fix (SKILLCLASH)
  • Авторы: Parsa Razmara, Seyedarmin Azizi, Ardalan Aryashad — University of Southern California, Los Angeles
  • Код и данные: https://github.com/prazmara/skillclash
  • Близкие работы из статьи: Yan et al. (конфликты скилов в Claude Code, блокирующий хук); SkillFusion (метки пар ограничений); GEPA и SkillOpt (автодоработка промптов через разбор ошибок); IFEval (проверка правил кодом)

📋 Дайджест исследования

Ключевая суть

Обнаружено: если у агента два навыка (skill, файла с инструкциями) на одну работу, он выбирает один и бросает правила второго целиком. Теряется около трети правил, даже тех, что ничему не противоречат. Метод позволяет заставить агента выполнять правила обоих навыков сразу, не переписывая их с нуля. Фишка: виноваты не правила, а примеры внутри навыков, потому что модель копирует образец, а не читает список. Слей два файла в один и оставь один общий пример по правилам обоих навыков, и перехват почти исчезает.

Принцип работы

Процесс из пяти шагов, всё в одном чате. 1. Выпиши правила обоих навыков списками. 2. Пометь пары: противоречат, совпадают, переплетены. Остальные правила независимы. 3. Собери один файл: независимые правила слово в слово, совпадающие в одно, при спорах побеждает главный навык, переплетённые в одно общее правило. 4. Старые примеры выбрось. Напиши один новый, который соблюдает всё. 5. Замени два файла одним. Модель копирует образец сильнее, чем читает правила, поэтому образец должен быть один и правильный. Два старых примера как два начальника с разными приказами. Один общий пример как один начальник с понятным заданием. Запасной вариант: оставь два файла. Удали из каждого родной пример и вставь в конец обоих один и тот же общий.

Почему работает

Каждый пример внутри навыка показывает результат только по правилам своего навыка. Два образца в контексте тянут в разные стороны. Модель берёт один и повторяет его формат. Правила второго навыка пропадают, хотя им никто не мешал. Жесть: строка «при конфликте главный навык А» не возвращает потерянное ни на одной модели. Большая модель теряет столько же, сколько маленькая. Даже подсказка «применяй оба» лечит лишь частично: полностью верных ответов остаётся около пятой части. Один верный пример показывает, как правила живут вместе, и именно это нельзя объяснить списком. Особенно для переплетённых правил. Например, две строки, которым обеим нужно стоять последними. На примере видно сразу, кто за кем. Что влияет на результат: - Пример: главный рычаг. Без него эффект сильно падает, а неверный пример почти бесполезен. - Модель-автор слияния: чем она сильнее, тем лучше файл. Слабая путает метки. - Строка про приоритет: нужна только для настоящих противоречий. - Метки пар: не обязательны. У самой сильной модели простое «слей в один файл с одним общим примером» работало почти так же, как разбор по шагам.

Когда применять

Агенты для кода и документов → когда в контексте лежат два навыка на одну работу, например личный и командный стиль коммитов, особенно если агент пишет то по одному стилю, то по другому. Также если второй навык игнорируется целиком. Не подходит для навыков, которые правят разные части результата. В SQL-запросах перехват почти не возникал: модели смешивали правила сами. Учти: навыки в тесте были искусственные, по шесть правил. Реальные длиннее и размытее, так что цифры читай как направление, а не гарантию.

Мини-рецепт

1. Найди пару: два навыка, которые претендуют на одну работу.
2. Выбери главного: чья сторона выигрывает при прямом споре. Это нужно только для настоящих противоречий.
3. Позови самую сильную модель: слабая путает метки и выдумывает связи, которых нет.
4. Вставь шаблон слияния: полные тексты обоих файлов, главный навык и просьбу выдать таблицу меток и готовый файл.
5. Проверь таблицу: не выдумала ли модель лишних пар правил.
6. Проверь пример по каждому правилу: вручную или отдельным запросом. Неверный пример не даёт почти ничего.
7. Замени два файла одним и прогони агента на пяти-десяти задачах.
8. Лень сливать? Оставь два файла и вставь в конец обоих один общий пример.

Примеры

[ПЛОХО] : У меня два навыка для коммитов, оба в контексте. Главный tracker-first, при конфликте он побеждает. Применяй оба. (каждый навык со своим старым примером)
[ХОРОШО] : Ты — редактор инструкций для агента. Слей два навыка для работы «написать сообщение коммита» в один файл SKILL.md. Вот навык conventional-commits: {текст}. Вот навык tracker-first: {текст}. Главный: tracker-first. Шаг 1: выпиши правила каждого навыка. Шаг 2: пометь пары как противоречат, совпадают или переплетены, не выдумывай лишних. Шаг 3: собери файл: независимые правила слово в слово, совпадающие одним правилом, при спорах побеждает главный, переплетённые одним общим правилом, где сказано, как расположить строки. Шаг 4: в конец добавь ОДИН пример коммита, который соблюдает все правила обоих навыков, старые примеры не копируй. Шаг 5: выведи сначала таблицу меток, потом готовый файл. Результат: агент получает один список правил, одну строку про приоритет командного навыка и один сквозной пример коммита. Номер тикета и тип изменения живут в одном сообщении, а не спорят за первое место.
Источник: One Skill Takes Over: ClashingAgentSkills and a One-File Fix
ArXiv ID: 2610.25064 | Сгенерировано: 2026-10-20 16:50

Проблемы LLM

ПроблемаСутьКак обойти
Два набора инструкций для одной работы: модель берёт один, второй бросает целикомВ контексте лежат два файла правил для одной задачи. Например, личный стиль и командный стиль. Модель не смешивает их. Она выбирает один и выполняет его полностью. Правила второго теряются, даже те, что ничему не противоречат. Теряется около трети правил. Большая модель теряет столько же, сколько маленькая. Причина в примерах внутри наборов. Каждый пример показывает результат только по своим правилам. Модель копирует формат образца.Не держи два конкурирующих набора. Слей их в один файл с одним общим примером, который соблюдает все правила. Если слить нельзя, оставь два файла. Замени родные примеры в обоих на один и тот же общий пример.
Фраза «при конфликте главный набор А» не работаетПишешь в запросе, что при споре побеждает А. Ждёшь, что правила А сохранятся, а правила Б будут добавлены. Но модель уже притянута образцом. Приказ о приоритете не возвращает потерянные правила. Не помогает ни на сильных моделях, ни на слабых.Приоритет нужен только для настоящих противоречий. Запиши его одной строкой внутри слитого файла. Защитой от потери правил его не считай. Защита — один общий пример.

Методы

МетодСуть
Слияние двух наборов инструкций в один файл с одним общим примером — оба набора работают вместеДай сильной модели тексты обоих наборов. Попроси слить их в один файл. Шаги: 1) выписать правила каждого набора; 2) пометить пары: «противоречат» (оба выполнить нельзя), «совпадают» (просят одно и то же), «переплетены» (оба можно, но нужна аккуратная раскладка, например обоим нужно быть последней строкой); остальные независимы; 3) собрать файл: независимые правила слово в слово, совпадающие одним правилом, при противоречии побеждает главный набор (одна строка), переплетённые одним правилом с точной раскладкой; 4) в конец добавить ОДИН пример, соблюдающий все правила. Старые примеры выбросить. Скажи модели «не выдумывай пар, которых нет». Почему работает: модель копирует образец сильнее, чем читает правила. Один верный образец тянет её к выполнению всех правил сразу. Что важно: пиши слияние самой сильной моделью. Слабая путает метки и выдумывает связи. Пример проверь по каждому правилу. Неправильный пример почти бесполезен. Простой вариант: «слей в один файл без потери правил, в конце один пример, соблюдающий оба набора». У сильной модели результат почти такой же. Разбор по шагам помогает, только если метки поставлены верно. Когда да: два набора правил на одну задачу, особенно с переплетёнными правилами. Когда нет: правила касаются разных частей результата, и модель смешивает их сама. Тогда конфликта нет, и метод не нужен.

Тезисы

ТезисКомментарий
Образец в запросе сильнее списка правилМодель копирует формат примера охотнее, чем следует тексту правил. Если в контексте два разных образца, она выберет один и повторит его. Правила, которых в образце нет, пропадут. Это главный рычаг управления. Без верного примера эффект слияния сильно падает. Применяй: когда запрос содержит несколько правил, проверь каждый пример. Он должен соблюдать ВСЕ правила. Если примеры противоречат друг другу, сделай один общий.
📖 Простыми словами

One Skill Takes Over: ClashingAgentSkills and a One-File Fix

arXiv: 2610.25064

Модели плевать на твои длинные правила, если перед глазами есть наглядный пример. Внутри LLM сидит тупой подражатель: когда сталкиваются два разных навыка — например, личный стиль оформления и регламент команды — модель тупо выбирает один образец и наглухо забивает на второй. Ты можешь сколько угодно орать капсом в промпте, что «навык А важнее», но магия конкретного примера всегда побеждает абстрактный приоритет. В итоге агент выбрасывает на помойку половину инструкций, даже если они вообще ни с чем не спорили.

Это как дать стажёру два противоречивых образца отчёта от двух боссов и сказать: «сделай что-то среднее». Он запаникует, выберет ту бумажку, которая лежит ближе, и скопирует её точь-в-точь. Формально он молодец, но половина конторы будет орать от злости. Нейросеть устроена абсолютно так же: она не умеет миксовать образцы на лету, она просто прилипает к одному шаблону как банный лист.

Спасает тут простая штука — мета-скил в одном файле. Вместо зоопарка инструкций ты берешь и склеиваешь все правила в единый текст, а в конец ставишь ровно один идеальный пример, закрывающий обе задачи сразу. Нужен коммит с номером тикета и правильным префиксом — покажи его в одном месте. И обязательно скорми сборку этого файла самой мощной модели: пусть умная сетка один раз правильно объединит требования, чтобы мелкий агент потом не тупил.

Тестировали это на коммитах в Claude Code, но грабли универсальные. Та же фигня ломает агентов, когда ты пытаешься одновременно скормить им правила архитектуры и формат логов или заставляешь писать дерзкие посты, но с юридическими дисклеймерами. Два разных скила с примерами всегда устроят бойню. Любой агент начнет лажать и терять контекст, пока ты не уберешь конкурирующие примеры из его поля зрения.

Короче: хватит наивно верить, что AI-ассистент «сам во всем разберется». Не разберется: он просто выберет случайный пример и положит болт на половину регламентов. Один общий файл, чистая логика и один эталонный образец — вот единственная рабочая схема. Иначе будешь бесконечно переделывать за агентом работу и гадать, почему он опять всё сломал.

Работа с исследованием

Адаптируйте исследование под ваши задачи или создайте готовый промпт на основе техник из исследования.

0 / 2000
~0.5-2 N-токенов ~10-30с
~0.3-1 N-токенов ~5-15с