Разработка программного обеспечения с Claude Code
Dani Zysman
AI Curriculum Manager @ DataCamp

Хуки:
.claude/settings.jsonИспользуйте /hooks, чтобы увидеть список активных хуков
music-analytics-api/
app.py
routes.py
test_routes.py
CLAUDE.md
.claude/
agents/
skills/
settings.json # <- Hook configuration

PreToolUse: срабатывает перед запуском инструмента → используйте для проверки или блокировки опасных операций
PostToolUse: срабатывает после завершения работы инструмента → используйте для запуска тестов, проверок линтера или логирования результатов
{
"hooks": {
"PostToolUse": [
{
"matcher": "Write|Edit",
"hooks": [
{
"type": "command",
"command": "cd $CLAUDE_PROJECT_DIR && python -m pytest --tb=short -q"
}
]
}
]
}
}
def pytest_terminal_summary(terminalreporter, exitstatus, config):
passed = len(terminalreporter.stats.get('passed', []))
failed = len(terminalreporter.stats.get('failed', []))
if failed:
title = "pytest FAILED"
message = f"{failed} failed {passed} passed"
else:
title = "pytest PASSED"
message = f"All {passed} tests passed!"
with open("/tmp/pytest_results.log", "a") as f:
f.write(f"{title}: {message}\n")
[23:07:35] pytest FAILED: ❌; 2 failed, 15 passed
[23:07:38] pytest PASSED: ✅ All 17 tests passed!
[23:08:09] pytest PASSED: ✅ All 17 tests passed!
[23:08:12] pytest PASSED: ✅ All 17 tests passed!

| Функция | Вызов | Список | Путь конфигурации |
|---|---|---|---|
| Агенты | @agent-name |
/agents |
.claude/agents/name.md |
| Навыки | /skill-name |
/skills |
.claude/skills/name/SKILL.md |
| Хуки | (автоматически) | /hooks |
.claude/settings.json |
Разработка программного обеспечения с Claude Code