---
name: skill-disable-model-invocation-gotcha
description: "SKILL.md с disable-model-invocation: true нельзя вызвать программно через Skill tool изнутри другого скилла/агента — только явным /slash от пользователя в чате"
metadata:
  node_type: memory
  type: feedback
  originSessionId: b4bea8e5-1798-4937-a956-763a8361c395
  modified: 2026-07-30T10:19:28.344Z
---

**Правило:** если у скилла в frontmatter стоит `disable-model-invocation: true`,
вызов `Skill({skill: "имя"})` изнутри другого скилла/агента падает с ошибкой
`cannot be used with Skill tool due to disable-model-invocation` — скилл
исполняется ТОЛЬКО когда пользователь сам явно набирает `/имя-скилла` в чате.

**Почему это важно:** при проектировании скилла-оркестратора (см. [[autoceh_orchestrator]])
нельзя закладывать в инструкции «если установлен скилл X — вызови его» как шаг
пайплайна, если X помечен так. Обнаружено эмпирически на mattpocock/skills
(`to-spec`, `to-tickets`, `implement`, `grilling`, `setup-matt-pocock-skills`
— все с этим флагом), 2026-07-30: попытка вызвать `to-spec` из `autoceh`
кинула именно эту ошибку.

**Как чинить/проектировать:** оркестратор должен реализовывать логику шага
сам (по своему шаблону), а не полагаться на программный вызов чужого
disable-model-invocation-скилла. Опционально — предложить пользователю
самому вызвать `/имя-скилла`, если нужна именно та версия.

**Как искать похожее:** перед тем как один скилл в инструкциях планирует
«вызвать» другой — grep `disable-model-invocation` в `SKILL.md` целевого
скилла (`grep -l disable-model-invocation ~/.claude/skills/*/SKILL.md`).
