У Claude Code есть одна неприятная особенность: можно навесить на агента огромную библиотеку скиллов, но в нужный момент про них нужно вспомнить самостоятельно. Чем больше скиллов, тем реже они срабатывают. Хук skill-compass решает эту задачу — он автоматически подсказывает Claude Code, какие скиллы подключить, до того как написана первая строка кода.
skill-compass — это небольшой хук на Node.js (около 200 строк), без внешних зависимостей. Его идея — «убрать необходимость вспоминать». На каждом промте хук осматривает то, что лежит перед агентом, и отдаёт короткий точный список подходящих скиллов. Ключевое слово — точный: если хуку нечего сказать, он молчит, а не вываливает простыню «на всякий случай».
| Азимут | Триггеры | Какие скиллы подключает |
|---|---|---|
| UI | react, vue, next, .tsx, components/ | frontend-design, make-interfaces-feel-better |
| API | express, fastapi, app/api/, routes/ | api-design, backend-patterns |
| БД | prisma, drizzle, sqlalchemy, *.sql | database-migrations, postgres-patterns |
| AUTH | next-auth, stripe, jwt, auth/ | security-review |
| LLM | anthropic, openai, langchain | claude-api, agent-harness-construction |
| INFRA | Dockerfile, compose.yml, k8s/ | docker-patterns, deployment-patterns |
Внутри работает принцип match → inject. Хук читает три независимых сигнала. Первый — файлы проекта: манифесты зависимостей, имена папок, расширения файлов. Например, Cargo.toml означает Rust, prisma/ и *.sql — работа с базой. Второй сигнал — текст вашего промта: хук ловит ключевые слова проекта и темы прямо в формулировке запроса. Третий — то, что агент находит по ходу дела: отдельный хук на PostToolUse смотрит результаты Bash, Grep, Glob, Read, Task. Как только инструмент выдаёт известное ключевое слово, подходящие скиллы вбрасываются рядом с этим результатом.
Он анализирует корень проекта, промт пользователя и результаты работы инструментов агента
Найденные скиллы вставляются компактной заметкой один раз на набор-сигнал за сессию, повторно — только когда состав детекта поменялся. Вся логика роутинга вынесена в directions.json. Базовый набор включает 8 сквозных направлений (азимутов) — UI, API, БД, AUTH, LLM, INFRA и другие — и 16 языковых стеков (Rust, Go, Python, TypeScript и т.д.). Каждое направление привязано к триггерам (зависимости, пути, расширения) и списку скиллов. Например, азимут UI срабатывает на react, vue, next,.tsx и подключает скиллы frontend-design и make-interfaces-feel-better. Добавить новый стек или направление можно одним объектом в directions.json, не трогая код.
Забавный мета-момент: пока автор готовил материал и грепал репозиторий по ключевым словам, хук сработал сам на результат его grep и предложил релевантные скиллы. Инструмент честно делает то, что заявлено — ловит находку инструмента на лету.

