メインコンテンツまでスキップ

エージェント フックのセットアップ

AI コーディング アシスタントがライフサイクル フックをサポートしている場合は、このリポジトリに対してこれらを構成します。

推奨フック

フックコマンド目的
afterFileEditscripts/agent-hooks/format.shAI 編集後のファイルの自動フォーマット
afterFileEditscripts/agent-hooks/yarn-install.shpackage.json が変更されたときに corepack yarn install を実行します
stopscripts/agent-hooks/sync-git-branches.sh古い参照を削除し、統合された一時タスク ブランチを削除します
stopscripts/agent-hooks/verify.shハードゲートビルド、lint、タイプチェック、フォーマットチェック。 yarn npm audit の情報を保持し、依存関係/インポートが変更された場合は、勧告監査として yarn knip を個別に実行します

理由

  • 一貫したフォーマット
  • ロックファイルの同期を維持
  • ビルド/lint/type の問題を早期に検出
  • セキュリティの可視性yarn npm audit
  • 依存関係/インポート ドリフトは、ノイズの多いグローバル停止フックにならずに、yarn knip でチェックできます
  • Codex と Cursor の両方に 1 つの共有フック実装
  • 一時的なタスク ブランチはリポジトリのワークツリー ワークフローと連携した状態を維持します

フックの例スクリプト

フォーマット フック

#!/bin/bash
# AI編集後のJS/TSファイルの自動フォーマット
# フックは file_path を含む標準入力経由で JSON を受信します

input=$(cat)
file_path=$(echo "$input" | grep -o '"file_path"[[:space:]]*:[[:space:]]*"[^"]*"' | sed 's/.*:.*"\([^"]*\)"/\1/')

case "$file_path" in
*.js|*.jsx|*.ts|*.tsx|*.mjs|*.cjs|*.json|*.css) corepack yarn exec oxfmt "$file_path" 2>/dev/null ;;
esac
exit 0

検証フック

#!/bin/bash
# エージェントの終了時にビルド、lint、タイプチェック、フォーマットチェック、セキュリティ監査を実行します。

cat > /dev/null # consume stdin
status=0
corepack yarn build || status=1
corepack yarn lint || status=1
corepack yarn typecheck || status=1
corepack yarn format:check || status=1
echo "=== yarn npm audit ===" && (corepack yarn npm audit || true) # informational
exit $status

デフォルトでは、必要なチェックが失敗した場合、scripts/agent-hooks/verify.sh はゼロ以外で終了します。 AGENT_VERIFY_MODE=advisory は、フックをブロックせずに壊れたツリーからの信号が意図的に必要な場合にのみ設定します。アドバイザリー インポート/依存関係の問題でリポジトリが明示的に失敗することを決定しない限り、yarn knip をハード ゲートに入れないでください。

Yarn インストール フック

#!/bin/bash
# package.json が変更されたときに corepack Yarn install を実行する
# フックは file_path を含む標準入力経由で JSON を受信します

input=$(cat)
file_path=$(echo "$input" | grep -o '"file_path"[[:space:]]*:[[:space:]]*"[^"]*"' | sed 's/.*:.*"\([^"]*\)"/\1/')

if [ -z "$file_path" ]; then
exit 0
fi

if [ "$file_path" = "package.json" ]; then
cd "$(dirname "$0")/../.." || exit 0
echo "package.json changed - running corepack yarn install to update yarn.lock..."
corepack yarn install
fi

exit 0

エージェント ツールのドキュメント (hooks.json、同等のものなど) に従ってフックの配線を構成します。

このリポジトリでは、.codex/hooks/*.sh.cursor/hooks/*.sh は、scripts/agent-hooks/ の下の共有実装に委任するシン ラッパーとして維持する必要があります。