justxor/claude-code-pro-course
Claude Code PRO — полный курс и гайд на русском: CLAUDE.md, settings, skills, subagents, hooks, MCP, плагины, CI. 8 лабораторных, библиотека промптов и готовый starter-kit.
About justxor/claude-code-pro-course
justxor/claude-code-pro-course is an open-source project on GitHub, mainly written in Shell. Claude Code PRO — полный курс и гайд на русском: CLAUDE.md, settings, skills, subagents, hooks, MCP, плагины, CI. It currently holds 183 stars and 32 forks with 0 open issues, and was last pushed on an unknown date (repository created unknown).
Project Overview
AI Homed tracks it on the Today's Trending board, currently at rank #93 with 0 new stars today.
GitHub Repository Details
README
Claude Code PRO — курс и гайд
Практический курс по работе с Claude Code на русском: от первого запуска до профессиональной настройки команды.
CLAUDE.md, settings, skills, subagents, hooks, MCP, плагины, headless-режим и CI — с лабораторными работами и готовыми шаблонами, которые можно скопировать в свой проект. 🧠 Machine learning — здесь можно найти полный список самых крутых ИИ курсво, чтобы стать гуру ИИ и множество полезных инструментов и уроками работы с ними, абсолютных мастхев!
---
Содержание
| Старт | Как это работает | Практика | Справочник | |---|---|---|---| | Быстрый старт | Агентный цикл | Продвинутые приёмы | Безопасность | | Маршрут обучения | Конфигурация | Рецепты задач | Шаблоны | | Программа | Принципы | Антипаттерны | Экономия · Проблемы |
Что внутри
| | |
|---|---|
| 📚 12 модулей | Теория с примерами: от установки до мульти-агентной работы |
| 🧪 8 лабораторных | Задания с критериями «готово» — закрепить на практике |
| 🧰 Starter kit | 8 skills, 5 субагентов, 4 hooks, правила, statusline, output style — ставится одной командой |
| 💬 Библиотека промптов | Проверенные формулировки для 13 типов задач |
| 🧩 Пример плагина | Как упаковать настройки и раздать команде |
| ⚙️ GitHub Actions | @claude в issues/PR и авто-ревью |
| 📋 Шпаргалка · FAQ | Всё важное на одной странице и решения типичных проблем |
Полезные ресурсы
- 🧠 Machine learning — ИИ-инструменты для генерации Python кода, умные-агенты и все что нужно знать из области AI.
- 🖥 Pythonl— с помощью понятных картинок и коротких видео авторы объясняют сложные концепции и учат профессиональному подходу в разработке.
- 🖥 Python Интервью — огромное количество разобранных вопросов с реальных собеседований Python разработчика.
- 📖 PythonBooks (2) — мы создали канал с книгами по Linux и залили туда наверное самую большую подборку книг.
- 💼 Python Jobs — вакансии и подработка для Python разработчиков.
- 🔝 А здесь мы собрали целый кладезь полезных Python ресурсов для прокачки.
- 🔥 Больше крутых курсов и полезных ИИ-инструментов — регулярно публикую здесь.
- 📦 Harness_ru — полный курс по Harness 2026 на русском языке: всё, что нужно знать, в одном месте.
Для кого
- Разработчики, которые уже пробовали Claude Code и хотят выжать из него максимум.
- Тимлиды, которым нужно настроить единые правила для команды.
- Все, кто хочет автоматизировать рутину: ревью, тесты, коммиты, CI.
Быстрый старт за 5 минут
# 1. Установите Claude Code
curl -fsSL https://claude.ai/install.sh | bash # macOS / Linux / WSL
или: npm install -g @anthropic-ai/claude-code
2. Поставьте starter-kit в свой проект
git clone https://github.com/justxor/claude-code-pro-course.git
bash claude-code-pro-course/install.sh ~/path/to/my-project
3. Запустите
cd ~/path/to/my-project && claude
/context # что загружено
/onboard # skill из starter-kit: обзор проекта
Маршрут обучения
flowchart LR
subgraph B["🟢 Основы"]
M0["00 Установка"] --> M1["01 Промптинг"] --> M2["02 CLAUDE.md"] --> M3["03 Настройки"]
end
subgraph W["🟡 Рабочий процесс"]
M4["04 Workflow профи"]
end
subgraph E["🟠 Расширение"]
M5["05 Skills"] --> M6["06 Subagents"] --> M7["07 Hooks"] --> M8["08 MCP"]
end
subgraph P["🔴 Масштаб"]
M9["09 Плагины"] --> M10["10 Headless и CI"] --> M11["11 Pro-приёмы"]
end
B --> W --> E --> P
Программа
| # | Модуль | Что освоите | Практика |
|---|--------|-------------|----------|
| 00 | Установка и первый запуск | Установка, логин, интерфейс, горячие клавиши | — |
| 01 | Основы работы и промптинг | Постановка задач, контекст, @-упоминания, изображения | — |
| 02 | CLAUDE.md — память проекта | Иерархия, импорты, .claude/rules/ | Лаба 1 |
| 03 | Настройки и разрешения | settings.json, allow/ask/deny, режимы, модели | Лаба 2 |
| 04 | Workflow профи | Plan mode, TDD, чекпоинты, управление контекстом | Лаба 3 |
| 05 | Skills и slash-команды | SKILL.md, аргументы, авто-вызов | Лаба 4 |
| 06 | Subagents | Изоляция контекста, специализация, параллельность | Лаба 5 |
| 07 | Hooks | Автоформат, защита файлов, уведомления | Лаба 6 |
| 08 | MCP | GitHub, браузер, БД, свои серверы | Лаба 7 |
| 09 | Плагины и маркетплейсы | Упаковка и раздача конфигурации команде | Пример |
| 10 | Headless, CI и GitHub Actions | claude -p, JSON, @claude в PR, Agent SDK | Лаба 8 |
| 11 | Продвинутые приёмы | Worktrees, мульти-агенты, экономия, безопасность | Чек-листы |
Как работает Claude Code
Claude Code — это агент, а не автодополнение: он сам решает, какие файлы прочитать и какие команды запустить, и крутит цикл «действие → проверка», пока задача не решена. Ваша работа — дать ему цель, контекст и способ проверить результат.
flowchart LR
U["👤 Задача
промпт · @файлы · скриншоты"] --> C["📥 Сбор контекста
CLAUDE.md · Read · Grep · Glob"]
C --> P["🧠 План
что менять и как проверить"]
P --> A["🛠 Действие
Edit · Write · Bash · MCP"]
A --> V{"✅ Проверка
тесты · линтер · сборка"}
V -- "ошибка" --> C
V -- "готово" --> R["📝 Результат
diff · коммит · PR"]
PM["🔐 Permissions"] -. "разрешить / спросить / запретить" .-> A
H["🪝 Hooks"] -. "до и после каждого инструмента" .-> A
Контекст — главный ресурс
Всё, что Claude «знает» в сессии, лежит в одном окне контекста. Чем оно чище, тем точнее ответы. Посмотреть, чем оно занято, — /context.
flowchart TB
subgraph CW["🪟 Окно контекста"]
direction TB
S1["Системный промпт и инструменты"]
S2["CLAUDE.md и правила"]
S3["Описания skills · agents · MCP"]
S4["История диалога"]
S5["Прочитанные файлы и вывод команд"]
end
CW --> Q{"Что дальше?"}
Q -- "новая задача" --> CL["/clear
чистый лист"]
Q -- "длинная задача" --> CO["/compact
сжать историю"]
Q -- "большое исследование" --> SA["🤖 Subagent
своё окно, вернёт только вывод"]
Как устроена конфигурация Claude Code
flowchart TB
subgraph U["👤 Пользователь — ~/.claude/"]
U1["CLAUDE.md"]
U2["settings.json"]
U3["skills/ · agents/ · output-styles/"]
end
subgraph PR["📦 Проект — в git, для команды"]
P1["CLAUDE.md · .claude/rules/"]
P2[".claude/settings.json
permissions · hooks · statusLine"]
P3[".claude/skills/ · .claude/agents/"]
P4[".mcp.json"]
end
subgraph L["🔒 Локально — не в git"]
L1["CLAUDE.local.md"]
L2[".claude/settings.local.json"]
end
PL["🧩 Плагины
skills · agents · hooks · MCP"]
U --> S(("Сессия
Claude Code"))
PR --> S
L --> S
PL --> S
Что куда класть:
| Хочу… | Инструмент |
|---|---|
| чтобы Claude знал правила проекта | CLAUDE.md, .claude/rules/ |
| не отвечать на одни и те же вопросы о разрешениях | permissions.allow в settings |
| запретить опасное | permissions.deny + hook PreToolUse |
| переиспользовать процедуру / промпт | skill |
| изолировать исследование или дать узкую роль | subagent |
| чтобы что-то происходило всегда | hook |
| подключить внешнюю систему | MCP |
| раздать всё это другим репозиториям | плагин |
| запускать без человека | claude -p, GitHub Actions, Agent SDK |
Как выбрать инструмент
flowchart TD
Q1{"Должно происходить всегда,
без исключений?"} -- да --> HK["🪝 Hook"]
Q1 -- нет --> Q2{"Нужна внешняя система
или данные?"}
Q2 -- да --> MCP["🔌 MCP-сервер"]
Q2 -- нет --> Q3{"Задача шумная,
нужен отдельный контекст?"}
Q3 -- да --> SA["🤖 Subagent"]
Q3 -- нет --> Q4{"Повторяемая процедура
или промпт?"}
Q4 -- да --> SK["🧰 Skill"]
Q4 -- нет --> CM["📄 CLAUDE.md или обычный промпт"]
Главные принципы (TL;DR)
1. Контекст — ваш главный ресурс. Чистите (/clear), сжимайте (/compact), выносите исследование в subagents.
2. Сначала план, потом код. Plan mode (Shift+Tab) для всего, что сложнее одного файла.
3. Дайте Claude способ проверить себя — тесты, линтер, скриншоты. Это самый сильный рычаг качества.
4. CLAUDE.md короткий и конкретный. Команды, стиль, запреты. Не роман.
5. Повторяется трижды — сделайте skill. Должно случаться всегда — сделайте hook.
6. Разрешения — через allowlist, а не через bypassPermissions.
Продвинутые приёмы работы с Claude Code
Режимы работы
Shift+Tab переключает режимы по кругу:
| Режим | Что делает Claude | Когда использовать | |---|---|---| | Обычный | Спрашивает разрешение на правки и команды | Незнакомый код, рискованные изменения | | Auto-accept edits | Правит файлы без подтверждения | План согласован, есть тесты и git | | Plan mode | Только читает и предлагает план | Старт любой нетривиальной задачи |
Explore → Plan → Code → Verify → Commit
Главный рабочий цикл. Не давайте Claude сразу писать код: сначала пусть разберётся и предложит план.
sequenceDiagram
actor Dev as Разработчик
participant C as Claude
participant R as Репозиторий
Dev->>C: Plan mode — изучи модуль оплаты, ничего не меняй
C->>R: Read · Grep · Glob
C-->>Dev: План — файлы, шаги, риски, как проверить
Dev->>C: Поправь шаг 3, остальное ок — реализуй
loop пока проверки не зелёные
C->>R: Edit
C->>R: Bash — тесты и линтер
end
C-->>Dev: diff и краткий итог
Dev->>C: Закоммить и открой PR
Промпты, которые работают
| ❌ Размыто | ✅ Конкретно |
|---|---|
| «Почини баг» | «При пустом email signup() падает с TypeError. Воспроизведи тестом, исправь, прогони npm test.» |
| «Добавь тесты» | «Покрой parseDate тестами: границы месяцев, таймзоны, невалидный ввод. Без моков, стиль как в utils.test.ts.» |
| «Отрефактори» | «Вынеси работу с БД из orders.ts в репозиторий. Публичный API не меняй, существующие тесты должны пройти без правок.» |
| «Сделай красиво» | «Сверстай по скриншоту, сними скриншот результата через браузерный MCP, сравни и исправь расхождения.» |
Формула: цель + где искать + ограничения + как проверить.
Контекст и память
- CLAUDE.md — память проекта.
/initсоздаёт его автоматически. Стек, команды сборки и тестов, стиль, запреты — коротко. Редактировать —/memory. - Одна задача — одна сессия.
/clearперед новой задачей,/compactдля длинной (можно с подсказкой:/compact оставь только решения по API). @для файлов —@src/api/client.tsсразу кладёт файл в контекст, без поиска.!для команд —!git statusвыполнит команду и покажет вывод Claude.- Скриншоты и логи вставляйте прямо в чат или передавайте через пайп:
cat error.log | claude. - Пусть Claude ведёт заметки. Для долгих задач попросите вести
PLAN.mdилиNOTES.md— после/clearработу легко продолжить.
Дайте Claude способ проверить себя
Без обратной связи агент угадывает, с ней — итерирует до результата:
- тесты и тайпчекер (
npm test,pytest,tsc --noEmit); - линтер и форматтер (лучше через hook — тогда всегда);
- скриншоты UI через браузерный MCP (Playwright, Chrome);
- эталонный вывод: «скрипт должен напечатать ровно это».
Hooks: гарантии вместо просьб
CLAUDE.md — это просьба, hook — это правило. Hook запускается на событии и может заблокировать действие.
sequenceDiagram
participant C as Claude
participant H as Hook
participant T as Инструмент
C->>H: PreToolUse — Bash rm -rf
alt опасная команда
H-->>C: exit 2 и причина в stderr
Note over C: вызов заблокирован, Claude видит причину
else всё в порядке
H-->>C: exit 0
C->>T: выполнить
T-->>C: результат
C->>H: PostToolUse — Edit
H-->>C: prettier и eslint --fix
end
Автоформат после каждой правки (.claude/settings.json):
{
"hooks": {
"PostToolUse": [
{
"matcher": "Edit|Write",
"hooks": [
{ "type": "command", "command": "jq -r '.tool_input.file_path' | xargs npx prettier --write" }
]
}
]
}
}
| Событие | Пример использования |
|---|---|
| SessionStart | подгрузить текущую ветку, открытые задачи |
| UserPromptSubmit | добавить контекст к каждому промпту |
| PreToolUse | запретить rm -rf, правки .env и миграций |
| PostToolUse | форматтер, линтер, тесты по изменённому файлу |
| Notification | уведомление на рабочий стол, когда Claude ждёт вас |
| Stop | финальная проверка: тесты зелёные — можно завершать |
| PreCompact | сохранить важное перед сжатием контекста |
Subagents: специалисты со своим контекстом
Субагент работает в отдельном окне контекста и возвращает только вывод — главная сессия остаётся чистой.
flowchart LR
M["🎯 Главная сессия"] --> A1["🔍 explorer
ищет по коду"]
M --> A2["🧪 test-runner
гоняет тесты"]
M --> A3["🛡 security-reviewer
ищет уязвимости"]
A1 -- "краткая сводка" --> M
A2 -- "только упавшие тесты" --> M
A3 -- "список находок" --> M
.claude/agents/reviewer.md:
---
name: reviewer
description: Ревью изменений перед коммитом. Используй после любой заметной правки.
tools: Read, Grep, Glob, Bash
model: sonnet
---
Ты строгий ревьюер. Проверь git diff на баги, пограничные случаи,
утечки секретов и нарушения стиля из CLAUDE.md.
Отвечай списком: файл:строка — проблема — как исправить.
Параллельная работа через git worktree
flowchart TB
R["📦 Репозиторий"] --> W1["../app-auth
feature/auth"]
R --> W2["../app-billing
feature/billing"]
R --> W3["../app-fix
fix/flaky-test"]
W1 --> C1["🤖 Claude 1"]
W2 --> C2["🤖 Claude 2"]
W3 --> C3["🤖 Claude 3"]
git worktree add ../app-auth -b feature/auth
cd ../app-auth && claude
Каждая сессия работает в своей папке и ветке — задачи идут параллельно и не мешают друг другу.
Writer / Reviewer: один Claude пишет код, второй в чистой сессии делает ревью, первый исправляет по замечаниям. Свежий контекст замечает то, что «замылилось».
Headless и автоматизация
# Разовый запрос в скрипте или CI
claude -p "Найди причину падения сборки" --output-format json < build.log
Ревью своего diff перед пушем
git diff main | claude -p "Сделай ревью: баги, пограничные случаи, безопасность"
Ограничить инструменты и число шагов
claude -p "Обнови CHANGELOG по последним коммитам" --allowedTools "Read,Edit,Bash(git log:*)" --max-turns 10
Массовая миграция: файл за файлом
for f in $(git ls-files 'src/**/*.js'); do
claude -p "Переведи $f на TypeScript, не меняя поведения" --allowedTools "Read,Edit,Bash(npx tsc:*)"
done
Шпаргалка по управлению
| Клавиша / команда | Что делает |
|---|---|
| Esc | прервать Claude, не теряя контекст |
| Esc Esc · /rewind | откатиться к прошлому шагу (код и диалог) |
| Shift+Tab | переключить режим: обычный → auto-accept → plan |
| @файл · !команда | добавить файл / вывод команды в контекст |
| /clear · /compact · /context | очистить, сжать, посмотреть контекст |
| /model | сменить модель |
| /permissions · /hooks · /agents · /mcp | настройка разрешений, хуков, агентов, MCP |
| claude --continue · claude --resume | продолжить последнюю / выбрать прошлую сессию |
Практические рецепты задач
Готовые промпты под частые задачи — копируйте и подставляйте своё. Больше — в библиотеке промптов.
🗺 Разобраться в незнакомом проекте
Plan mode. Изучи репозиторий и объясни: архитектуру, точки входа,
поток данных для запроса /api/orders, где тесты и как их запускать.
Ничего не меняй. В конце — 5 мест, где новичку легче всего ошибиться.
🐛 Баг по стектрейсу
@error.log Вот стектрейс из продакшена.
1) Найди корневую причину, а не место падения.
2) Напиши падающий тест, который воспроизводит баг.
3) Исправь минимальным изменением, прогони все тесты.
🧪 Фича через TDD
Фича: скидка 10% для заказов от 5000 ₽.
Сначала напиши тесты (включая границы: 4999, 5000, 0, отрицательные),
убедись, что они падают, и закоммить. Потом реализуй, не меняя тесты.
♻️ Безопасный рефакторинг
Разбей @src/services/user.ts на модули по ответственности.
Поведение и публичный API не меняй. После каждого шага — тесты и tsc.
Если тестов не хватает, сначала добавь характеризационные тесты.
🔍 Ревью своего кода
Сделай ревью git diff main как строгий senior:
баги, гонки, пограничные случаи, безопасность, производительность.
Формат: файл:строка — проблема — критичность — как исправить.
🎲 Плавающий (flaky) тест
Тест checkout.spec.ts падает примерно в 1 из 10 запусков.
Запусти его 30 раз, собери статистику, найди источник
недетерминизма (время, порядок, сеть, общий стейт) и устрани его.
⬆️ Обновление зависимости
Обнови react-router с v5 до v6. Сначала составь план миграции
по changelog и список затронутых файлов. Затем мигрируй по одному
модулю, после каждого — сборка и тесты.
🎨 Вёрстка по макету
[скриншот] Сверстай этот экран на наших компонентах из @src/ui.
После — сними скриншот через браузерный MCP, сравни с макетом
и исправь расхождения. Повтори, пока не совпадёт.
⚡ Производительность
Эндпоинт /api/report отвечает 4 секунды. Найди узкое место
(N+1, лишние запросы, тяжёлые вычисления), предложи 2–3 варианта
с оценкой выигрыша. Реализуй лучший и замерь до/после.
🛡 Аудит безопасности
Используй субагента: проверь проект на OWASP Top 10 —
инъекции, XSS, хранение секретов, авторизацию на эндпоинтах.
Верни отчёт по критичности. Ничего не исправляй без моего ок.
📝 Описание PR и changelog
По git log main..HEAD и diff напиши описание PR:
зачем, что изменилось, как проверить, риски.
Добавь запись в CHANGELOG.md в нашем формате.
🚨 Разбор инцидента
@incident.log Восстанови хронологию инцидента по логам,
найди первопричину и напиши постмортем: таймлайн, причина,
влияние, что сделать, чтобы не повторилось.
Антипаттерны и как их исправить
| ❌ Ошибка | Почему плохо | ✅ Как правильно |
|---|---|---|
| Одна бесконечная сессия на весь день | Контекст забит старым, ответы хуже | /clear между задачами, заметки в файле |
| «Сделай фичу» без плана | Claude уверенно идёт не туда | Plan mode → согласовать → реализовать |
| Нет тестов и проверок | Агент не видит своих ошибок | Тесты, линтер, скриншоты в цикле |
| CLAUDE.md на 500 строк | Важное тонет, тратится контекст | Коротко; детали — в .claude/rules/ и skills |
| Правила только словами в CLAUDE.md | Иногда игнорируются | Критичное — через hooks и permissions.deny |
| bypassPermissions «чтобы не спрашивал» | Риск удалить лишнее или слить секреты | Allowlist безопасных команд, песочница |
| Исправлять ошибку третьим сообщением подряд | Контекст засоряется неудачными попытками | Esc Esc / /rewind и переформулировать |
| Принимать diff не глядя | Тихие баги и лишние изменения | Ревью diff или субагент-ревьюер |
Безопасность и разрешения
Каждый вызов инструмента проходит через правила. Порядок проверки: deny → ask → allow, запрет всегда сильнее разрешения.
flowchart LR
T["🛠 Claude хочет
вызвать инструмент"] --> H{"🪝 PreToolUse
hook"}
H -- "exit 2" --> X["⛔ Заблокировано"]
H -- "ок" --> D{"Есть правило
deny?"}
D -- да --> X
D -- нет --> K{"Есть правило
ask?"}
K -- да --> Q["🙋 Спросить вас"]
K -- нет --> A{"Есть правило
allow?"}
A -- да --> OK["✅ Выполнить"]
A -- нет --> Q
Q -- "разрешили" --> OK
Q -- "отказали" --> X
Пример .claude/settings.json для команды:
{
"permissions": {
"allow": [
"Bash(npm run test:*)",
"Bash(npm run lint)",
"Bash(git status)",
"Bash(git diff:*)"
],
"ask": [
"Bash(git push:*)"
],
"deny": [
"Read(./.env)",
"Read(./.env.*)",
"Read(./secrets/**)",
"Bash(rm -rf:*)",
"Bash(curl:*)"
]
}
}
Чек-лист:
- секреты закрыты через
denyи не лежат в CLAUDE.md; git push, деплой и миграции — только с подтверждением;- автономные запуски (
-p, CI,--dangerously-skip-permissions) — только в контейнере или песочнице без доступа к проду; - данные из интернета и MCP — это данные, а не инструкции: следите за промпт-инъекциями;
- перед коммитом —
git diff, а не «принять всё».
Готовые шаблоны
📄 CLAUDE.md — короткий и рабочий
# Проект: магазин на Next.js + PostgreSQL
Команды
- npm run dev — запуск
- npm test — тесты (Vitest), npm run lint — линтер
- npm run db:migrate — миграции (только с подтверждения!)
Архитектура
- src/app — роуты, src/lib — бизнес-логика, src/db — доступ к БД
- Вся работа с БД только через src/db, не из компонентов
Правила
- TypeScript strict, без any
- Новый код — с тестами, баг — сначала падающий тест
- Не трогать src/legacy без явной просьбы
- Перед завершением задачи: npm test && npm run lint
🧰 Skill — повторяемая процедура
.claude/skills/release-notes/SKILL.md:
```markdown --- name: release-notes description: Готовит release notes по коммитам с последнего тега. Используй, когда просят релиз, changelog или заметки к версии. --- 1. Найди последний тег: git describe --tags --abbrev=0 2. Собери коммиты: git log <тег>..HEAD --oneline 3. Сгруппируй: ✨ Новое,