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!

| 機能 | 呼び出し | 一覧 | 設定パス |
|---|---|---|---|
| Agents | @agent-name |
/agents |
.claude/agents/name.md |
| Skills | /skill-name |
/skills |
.claude/skills/name/SKILL.md |
| Hooks | (自動) | /hooks |
.claude/settings.json |
Claude Code によるソフトウェア開発