Хук Claude Code

Наводит проект на нужные скиллы.

skill-compass читает репозиторий, понимает из чего он собран, и подсказывает Claude, какие скиллы подключить — до того, как написана первая строка.

Наведи на азимут — стрелка встанет и покажет скиллы.
// 01

200+ скиллов. Какой нужен прямо сейчас?

В загруженном Claude Code огромная библиотека скиллов — дизайн, API, базы, безопасность, все языковые стеки. Нужный под задачу там есть. Проблема в том, чтобы вовремя о нём вспомнить. skill-compass убирает «вспомнить»: на каждом промте он осматривает проект и отдаёт Claude короткий точный список скиллов, подходящих под то, что перед ним.

// 02

Сканирует, сопоставляет, подмешивает

SCAN

Читает репозиторий

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

MATCH

Берёт азимут

Сопоставляет найденное со стеками (Rust, Next.js, Django…) и сквозными направлениями (UI, API, БД, auth, LLM, инфра) из одного редактируемого конфига.

INJECT

Маршрутизирует скиллы

Добавляет в промт компактную заметку с именами скиллов. Показывает раз на проект за сессию; повторно — только если состав проекта изменился.

// 03

Азимуты, которые он читает

АзимутТриггерыКакие скиллы подключает
UI · 000°react, vue, next, .tsx, components/frontend-design, make-interfaces-feel-better
API · 060°express, fastapi, app/api/, routes/api-design, backend-patterns
БД · 120°prisma, drizzle, sqlalchemy, *.sqldatabase-migrations, postgres-patterns
AUTH · 180°next-auth, stripe, jwt, auth/security-review
LLM · 240°anthropic, openai, langchainclaude-api, agent-harness-construction
INFRA · 300°Dockerfile, compose.yml, k8s/docker-patterns, deployment-patterns

Плюс 16 языковых стеков (Rust, Go, Python, TypeScript, Java, Kotlin, Swift, Dart, PHP, C#, C/C++ …). Каждая строка живёт в directions.json — новый азимут добавляется одним объектом.

// 04

Установка

Нужны Node.js и Claude Code. Установщик кладёт два файла и регистрирует два хука — UserPromptSubmit (промт + проект) и PostToolUse (находки инструментов во время работы).

# склонировать и запустить установщик (macOS / Linux / Windows)
git clone https://github.com/by-sonic/skill-compass
node skill-compass/install.js

…или вручную — добавь в ~/.claude/settings.json:

"UserPromptSubmit": [{
  "matcher": "",
  "hooks": [{ "type": "command",
    "command": "node \"~/.claude/skill-compass/compass.js\"" }]
}],
"PostToolUse": [{
  "matcher": "Bash|Grep|Glob|Read|Task",
  "hooks": [{ "type": "command",
    "command": "node \"~/.claude/skill-compass/compass.js\" --post" }]
}]

Выключить в любой момент — SKILL_COMPASS=off. Проверить детекцию — node compass.js --self-test.

// 05

Вопросы

Это замедляет каждый промт?

Нет. Он читает корень проекта на один уровень вглубь и кэширует результат на сессию. Никаких глубоких обходов дерева, сети или парсинга сверх манифестов зависимостей — единицы миллисекунд.

Он будет спамить одной и той же заметкой каждое сообщение?

Нет. Направления показываются раз на проект за сессию и повторно — только когда набор изменился, например когда ты добавил Dockerfile и появился азимут инфры.

Я работаю из папки с кучей разных проектов. Что будет?

Он промолчит. У настоящего проекта есть манифест в корне; у контейнера проектов — нет. Нет манифеста в корне → это не проект, и компас ничего не говорит, а не угадывает.

Он привязан к конкретному маркетплейсу скиллов?

Дефолтный конфиг указывает на распространённые скиллы Claude Code, но любой маппинг — это просто строка в directions.json. Наведи азимут на любое имя скилла, который у тебя установлен.

Что он куда-нибудь отправляет?

Ничего. Работает локально, читает файлы в твоём проекте и пишет заметку в твой же промт. Ноль зависимостей, ноль телеметрии, ~200 строк Node, которые читаются за один присест.