Upgrade to Pro — share decks privately, control downloads, hide ads and more …

1

Avatar for masayan masayan
March 23, 2026
7

 1

1

Avatar for masayan

masayan

March 23, 2026

Transcript

  1. Chrome拡張 — 自動ビルド & ストア申請 コード変更 → ビルド → ZIP作成

    → 説明文の整合性チェックまで自動化 1 自動ビルド PostToolUse で Edit/Write 検知 → npm run build set -e で失敗時即停止 → Claude に報告 2 ZIP 自動作成 ビルド成功 → dist/ を ZIP アーカイブに圧 縮 Chrome Web Store 提出用パッケージ 3 説明文の整合性 Stop + agent でストア説明文が実際の機能と一 致するか検証 機能追加/削除時の記載漏れを防止 • • • # PostToolUse: Edit|Write set -e npm run build cd dist && zip -r ../extension.zip . ✓ Build + ZIP completed • • • # Stop: agent タイプ "prompt": "manifest.json の permissions と description が store-listing.md の説明文と 一致しているか検証せよ"
  2. TDD Guard — テスト駆動の強制 失敗テストなしで実装コードを書くことをブロック 仕組み PreToolUse で実装ファイルへの Edit/Write をチェック

    Red → Green → Refactor 失敗テストが存在しない状態での実装コード追加を exit 2 でブロック 対応フレームワーク Vitest, Jest, Storybook, pytest, PHPUnit, Go, Rust • • • ✗ No failing test found → Edit blocked by TDD Guard Write a failing test first! # nizos/tdd-guard
  3. 自動 Lint / Format ファイル編集のたびにフォーマッターを自動実行 PostToolUse + Prettier Edit/Write 直後にフォーマッター自動実行

    コンテキスト消費に注意 フォーマッターがファイルを書き換えると、Claude Codeが「自分以外の 操作で変更された」と検知しファイル全文をコンテキストに再注入 3ラウンドで160kトークン消費の報告も 推奨代替手段 エディタの Format On Save や husky + lint-staged でコミット時にバッチ処理 • • • INPUT=$(cat) FILE=$(echo "$INPUT" \ | jq -r '.tool_input.file_path') if [[ "$FILE" == *.py ]]; then black --quiet "$FILE" elif [[ "$FILE" == *.ts ]]; then npx prettier --write "$FILE" fi
  4. 手動テストケースの更新漏れ検知 自動テストなら実装変更でテストが落ちて気づける — 手動テストはそうはいかない PostToolUse + additionalContext src/ の変更を検知 →

    対応する手動テストケース(Markdown)の存在 を確認 ブロックではなく注意喚起 exit 2 ではなく additionalContext で Claude にフィードバッ ク。更新要否は Claude が判断 仕様ドリフト検知と同じパターン PostToolUse で変更を検知 → 関連ファイルの整合性を確認するパターン は汎用的 • • • INPUT=$(cat) FILE=$(echo "$INPUT" \ | jq -r '.tool_input.file_path') [[ "$FILE" != */src/* ]] && exit 0 BASE=$(basename "$FILE" | sed 's/\..*//') TEST="tests/manual/${BASE}.md" if [[ -f "$TEST" ]]; then echo '{"additionalContext":' \ '" テストケース更新が必要かも"}' fi
  5. デプロイ確認ページの自動オープン Stop フックで作業完了時にブラウザを自動で開く settings.json たった1行で効果絶大 open (macOS)コマンドだけで「デプロイ結果を見忘れる」問題を解 決 応用パターン Vercel

    以外にも: Netlify, GitHub Actions, PR ページなど。 open の URL を変えるだけ • • • { "hooks": { "Stop": [{ "hooks": [{ "type": "command", "command": "open https://vercel.com/ <user>/<project>/deployments" }] }] } }
  6. APIスモークテスト — 2パターン比較 用途に応じて最適なHookタイプを選択 パターン Hookタイプ トリガー 特徴 A) 全endpoint

    Stop ターン終了時 全APIを一括テスト B) ルート変更 PostToolUse ルートファイル変更時 変更箇所だけ即座に検証 パターンA: 全endpoint一括 Stop フックでターン完了時に全APIをcurlで疎通確認。漏れなくチェック できるが実行時間は長め パターンB: ルート変更検知 PostToolUse + ファイルパスフィルタで変更されたルートだけスモークテ スト。高速で無駄がない
  7. 通知:Slack Webhook / TTS 音声 タスク完了や異常を即座に通知 Slack Webhook 2つの実装方法 1

    command 型(curl) 2 http 型(直接POST) TTS 音声通知 タスク完了を音声で読み上げ macOS: say コマンドで実装可能
  8. 重複コード検出フック PostToolUse でコード追加時に既存コードとの類似性を自動チェック 類似コード検知フロー 1 Claude が Edit/Write でコードを追加 2

    PostToolUse でコードベース内の類似コードを検索 3 additionalContext で「既存実装あり」と通知 → 再利用を 促す ブロックではなく提案 例: "src/utils/format.ts に類似の formatDate() が既にあります。新 規実装の前に再利用を検討してください"
  9. Skill 自動評価・選択 UserPromptSubmit でプロンプトを分析し、最適な Skill を自動注入 自動選択フロー 1 ユーザーがプロンプトを送信 2

    キーワード・ファイルパス・意図パターンを分析 3 additionalContext で最適な Skill を注入 なぜ Hooks で? Skill の選択を Claude の判断に任せると、タスクに集中しているときスキ ップされることがある
  10. 実践Tips 効果的にHooksを運用するためのポイント PostToolUse vs Stop PostToolUse Stop タイミング ツール実行直後 ターン完了時

    用途 ビルド・テスト 通知・コミット 頻度 高(毎ツール) 低(ターン毎) async: true 結果を待つ必要がないHooksは非同期実行 → 応答速度を維持 additionalContext フックの出力JSONにこのキーを含めると、Claudeのコンテキストに文字 列として注入される。ブロックせず情報を渡したい時に使う CLAUDE.md との併用 ルールは CLAUDE.md で指示、強制は Hooks で実行 → 二重の安全網
  11. Hooks イベント早見表 全23イベントから主要7種 — セッションのライフサイクル順 イベント タイミング 主な用途 async SessionStart

    セッション開始 ルール再注入・環境チェック - UserPromptSubmit プロンプト送信時 Skill自動選択・入力検証 - PreToolUse ツール実行前 実行ブロック・バリデーション - PostToolUse ツール実行後 ビルド確認・ログ記録 ✓ Notification 通知発生時 Slack/Discord連携 ✓ Stop ターン完了時 通知・コミット・PDF生成 - SessionEnd セッション終了 ログ保存・クリーンアップ ✓ 他にも PreCompact / SubagentStop / ConfigChange / PermissionRequest 等 計23種
  12. マッチャーパターン早見表 matcher でフックの発火条件をフィルタリング — 正規表現で指定 イベント マッチ対象 マッチャー例 SessionStart 開始方法

    startup resume compact UserPromptSubmit Stop マッチャー非対応(常に全出現で発火) PreToolUse PostToolUse ツール名 Bash Edit|Write Read mcp__.* Notification 通知タイプ permission_prompt idle_prompt SessionEnd 終了理由 clear logout prompt_input_exit よく使うツール名マッチャー Bash Edit Write Read Glob Grep WebFetch Agent 正規表現の活用 Edit|Write で複数ツールを OR マッチ。 mcp__.* で全 MCP ツール にマッチ
  13. まとめ & 次回予告 個人で今日から使えるレシピで日常開発を自動化 今回のまとめ 1 品質保証: 自動ビルド + TDD

    + Lint + APIテスト 2 通知・デプロイ: Slack + TTS + 確認ページ自動オープン 3 コード品質: 重複検出 + テスト漏れ検知 + Skill自動選択 4 リファレンス: 全23イベント早見表 次回:応用編 仕様駆動開発 + 監査ログ 秘匿情報の多層防御 Git連携:ブランチ保護 + プッシュ制限 CVE対策 + セキュリティ運用 チャンネル登録 & いいねお願いします