Про приоритеты скиллов агента
Когда начинаешь активно настраивать скиллы, сталкиваешься с довольно бесячей проблемой. У тебя в конкретном проекте есть скиллы (project), у тебя на уровне системы есть скиллы (personal), и если они примерно про одно и то же, то агент активирует и те, и другие (опустим тот момент, что они до сих пор активируются нестабильно).
Мало того, что это в контекст мусорит, так ещё и там могут быть написаны противоречащие друг другу тезисы. Так, например, commit-скилл в проекте описывает, как принято там, а такой же личный у тебя описывает, что надо посмотреть на предыдущие коммиты и подстроиться, но вообще по умолчанию conventional commits.
И как с этим бороться — не очень понятно. Проблема нейминга человечеством всё ещё не решена.
Вообще, логично бы называть скиллы везде по-разному, например в проекте /myproject:commit и /username:commit в системе, чтобы не клэшиться ни друг с другом, ни с какими-то рандомными экспериментальными скиллами из интернетов.
В документации CC написано, что при одинаковых названиях скиллов — активируется один. То, что нам нужно, видимо.
Но, во-первых, у них абсолютно абсурдная логика приоритетов. При конфликте имён Personal важнее Project, и личные вызываются в первую очередь. Вы, когда приходите на новый проект, тоже начинаете код писать по личным предпочтениям, или всё-таки приоритет стандартам проекта отдаёте?
А во-вторых, иногда мы не контролируем название скилла в проекте (проект чужой), или у нас вообще несколько проектов, где один и тот же по своей сути скилл может называться разными именами. Для примера, в одном /commit, а в другом /git:commit. И всё, ничего не поделать.
Я думаю, что правильнее было бы при клэше имён приоритет отдавать проектным скиллам. Да и заводить для скиллов неймспейсы — это очевидно хорошая практика. Пермишны так настраивать проще, структурировать дерево скиллов проще, не конфликтуем по именам по умолчанию, опять же. Поэтому хочется иметь возможность в конкретном проекте отключать конкретные персональные скиллы.
Но пока приходится какие-то хаки городить. У меня все персональные, которые "дублируют" проектные, помечены как disable-model-invocation=true, чтобы я их мог только вручную вызывать, а агент не мог. Это делает работу во второстепенных проектах менее удобной, но хотя бы не делает её хуже в первостепенном.