Dynamic Context Injection — уникальная фича в скилах Claude Code
📌 TL;DR
— !command в SKILL.md выполняет shell-команды ДО отправки промпта
— Claude видит только результат, не команду
— Это фича только Claude Code, не часть стандарта Agent Skills
— Ни Codex, ни Cursor, ни Copilot не реализовали аналог в skills
— Экономит токены, убирает ручной копипаст, повышает релевантность контекста
— Есть disableSkillShellExecution для контроля
— Заслуживает стандартизации как опциональное расширение
Dynamic Context Injection (DCI) — возможность выполнять shell-команды прямо внутри SKILL.md до того, как промпт уйдёт в Claude.
🔹 Простой пример: SKILL для ревью PR
Скилл без DCI:
Выполни gh pr diff и проанализируй результат
Claude читает это → думает "ок, мне надо вызвать bash" → делает tool call → ждёт результат → анализирует. Это runtime — агент сам решает когда и что вызывать.
Скилл с DCI:
Claude читает этот восклицательный знак перед командной
— проанализируй результат гит диффа: !gh pr diff
И gh pr diff выполняется ДО отправки промпта. Claude получает промпт где вместо команды уже лежит готовый дифф. Он даже не знает что была команда. Он видит только данные. Это чистый препроцессинг.
🛠 Ещё пример как юзать
Инлайн — для однострочных команд:
Текущая ветка: !git branch --show-current
Последние коммиты: !git log --oneline -5
Статус: !git status --short
🟠 Цепочки и фоллбэки из DCI вызовов в скиле:
Docker: !docker ps 2>/dev/null || echo "Docker not running"
Тесты: !npm test 2>&1 | grep "FAIL" | head -5
Переменные окружения (обычный $VAR не работает, нужно через shell):
API URL: !echo $API_BASE_URL
😐 Стоит ли это юзать?
Сотни фич за неделю вводятся, читать уже лень, НО —
🟡 Самый главный профит
В skills без DCI (где агент сам решает, нужно ли ему запросить данные) тулюзы пропускались в 56% eval-кейсов. Агент просто не вызывал их. DCI решает эту проблему — данные уже в промпте, решать нечего.
Я ежедневно сталкиваюсь с проблемными тулюзами в скилах, где нет отслеживания прогресса через хук + progress.yaml/json.
Грамотная архитектура skills с on-demand загрузкой и препроцессингом позволяет сократить контекст на 50%+.
🧊 Сравнение с конкурентами
OpenAI Codex CLI
→ Поддерживает Agent Skills ✅
→ DCI: ❌
→ Обходной путь: ! для shell в интерактивном режиме (но это не препроцессинг skills) и pipe stdin в codex exec:
npm test 2>&1 | codex exec "summarize failing tests"
Работает, но это ad-hoc, а не часть skill-системы.
Cursor
→ Поддерживает Agent Skills ✅ (с v2.4, январь 2026)
→ DCI: ❌
→ Свой подход: вывод shell-команд пишется в файл, агент читает через tail/read по необходимости. Плюс hooks (pre/post agent actions) для lifecycle-контроля. Осознанный выбор file-based модели вместо inline injection.
Везде агент сам решает вызывать или нет тул в скиле, в существующей реальности тул может быть не вызван рандомно, чуть больше нагрузка на сервер Anthropic, Opus ленится выполнять команды и читать вывод и начинает фантазировать насчёт аутпута той или иной команды потому что ему так проще, и это не вакуум, а ежедневная боль.
🎯 Итого: Claude Code — единственный инструмент с полноценной поддержкой shell-препроцессинга в skills.
#claudecode #skills #dci #agentskills
Пост из блога Аи Помогатор