Наводит проект на нужные скиллы.
skill-compass читает репозиторий, понимает из чего он собран, и подсказывает Claude, какие скиллы подключить — до того, как написана первая строка.
200+ скиллов. Какой нужен прямо сейчас?
В загруженном Claude Code огромная библиотека скиллов — дизайн, API, базы, безопасность, все языковые стеки. Нужный под задачу там есть. Проблема в том, чтобы вовремя о нём вспомнить. skill-compass убирает «вспомнить»: на каждом промте он осматривает проект и отдаёт Claude короткий точный список скиллов, подходящих под то, что перед ним.
Сканирует, сопоставляет, подмешивает
Читает репозиторий
На каждом промте читает корень проекта: манифесты зависимостей, папки, расширения файлов. Ограниченная глубина, миллисекунды, кэш на сессию.
Берёт азимут
Сопоставляет найденное со стеками (Rust, Next.js, Django…) и сквозными направлениями (UI, API, БД, auth, LLM, инфра) из одного редактируемого конфига.
Маршрутизирует скиллы
Добавляет в промт компактную заметку с именами скиллов. Показывает раз на проект за сессию; повторно — только если состав проекта изменился.
Азимуты, которые он читает
| Азимут | Триггеры | Какие скиллы подключает |
|---|---|---|
| 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, *.sql | database-migrations, postgres-patterns |
| AUTH · 180° | next-auth, stripe, jwt, auth/ | security-review |
| LLM · 240° | anthropic, openai, langchain | claude-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 — новый азимут добавляется одним объектом.
Установка
Нужны 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.
Вопросы
Это замедляет каждый промт?
Нет. Он читает корень проекта на один уровень вглубь и кэширует результат на сессию. Никаких глубоких обходов дерева, сети или парсинга сверх манифестов зависимостей — единицы миллисекунд.
Он будет спамить одной и той же заметкой каждое сообщение?
Нет. Направления показываются раз на проект за сессию и повторно — только когда набор изменился, например когда ты добавил Dockerfile и появился азимут инфры.
Я работаю из папки с кучей разных проектов. Что будет?
Он промолчит. У настоящего проекта есть манифест в корне; у контейнера проектов — нет. Нет манифеста в корне → это не проект, и компас ничего не говорит, а не угадывает.
Он привязан к конкретному маркетплейсу скиллов?
Дефолтный конфиг указывает на распространённые скиллы Claude Code, но любой маппинг — это просто строка в directions.json. Наведи азимут на любое имя скилла, который у тебя установлен.
Что он куда-нибудь отправляет?
Ничего. Работает локально, читает файлы в твоём проекте и пишет заметку в твой же промт. Ноль зависимостей, ноль телеметрии, ~200 строк Node, которые читаются за один присест.