{"id":"hooks","name":"hooks","summary":"フック開発ルール","body":"# Hook Development Rules\n\nWhen working with files in `.claude/hooks/`:\n\n## Pattern\nShell wrapper (.sh) → TypeScript (.ts) via `npx tsx`\n\n## Shell Wrapper Template\n```bash\n#!/bin/bash\nset -e\ncd \"$CLAUDE_PROJECT_DIR/.claude/hooks\"\ncat | npx tsx <handler>.ts\n```\n\n## TypeScript Handler Pattern\n```typescript\ninterface HookInput {\n  // Event-specific fields\n}\n\nasync function main() {\n  const input: HookInput = JSON.parse(await readStdin());\n\n  // Process input\n\n  const output = {\n    result: 'continue',  // or 'block'\n    message: 'Optional system reminder'\n  };\n\n  console.log(JSON.stringify(output));\n}\n```\n\n## Hook Events\n- **PreToolUse** - Before tool execution (can block)\n- **PostToolUse** - After tool execution\n- **UserPromptSubmit** - Before processing user prompt\n- **PreCompact** - Before context compaction\n- **SessionStart** - On session start/resume/compact\n- **Stop** - When agent finishes\n\n## Testing\nTest hooks manually:\n```bash\necho '{\"type\": \"resume\"}' | .claude/hooks/session-start-continuity.sh\n```\n\n## Registration\nAdd hooks to `.claude/settings.json`:\n```json\n{\n  \"hooks\": {\n    \"EventName\": [{\n      \"matcher\": [\"pattern\"],  // Optional\n      \"hooks\": [{\n        \"type\": \"command\",\n        \"command\": \"$CLAUDE_PROJECT_DIR/.claude/hooks/hook.sh\"\n      }]\n    }]\n  }\n}\n```","author":"@parcadei","ownerProfile":null,"authorContacts":null,"sourceUrl":"https://github.com/parcadei/Continuous-Claude-v3/tree/main/.claude/skills/hooks","license":"MIT","category":"coding","lang":"en","tokens":344,"stars":0,"calls30d":2,"claimed":false,"visibility":"public","origin":"crawler","version":"0.1.0","createdAt":"2026-08-22","updatedAt":"2026-08-22","files":[],"requires":{"mcp":[],"tools":[]},"safety":{"flags":[],"scannedAt":"2026-08-22","hasScripts":false,"networkEndpoints":[]}}