コーディングエージェントのフックを汎用フックランナーに移行する
AIエージェントツール固有のフック機構に品質ゲートを載せていたが、標準的なGitフックランナー(lefthook)に統一した。ツール依存を減らし、チーム全員が同じルールで開発できるようにする。
Before(手動 / ツール固有):
エージェントツールの設定ファイル(settings.json)にフックを定義。エージェント経由の操作にしか品質ゲートが効かず、通常の git commit や CI では素通りしていた。
After(自動 / lefthook):
# lefthook.yml
pre-commit:
commands:
lint:
run: npx biome check --write . && git add -u
type-check:
run: npx tsc --noEmit
pre-push:
commands:
test:
run: npx vitest run
ポイント:
段階的に移行する — 一度に全フックを切り替えず、pre-commit → pre-push の順に移行し、各段階でCIと挙動が一致することを確認する
既存のガードスクリプトを再利用する — フックランナー側からシェルスクリプトを呼ぶだけにして、ロジックの重複を避ける
エージェント固有フックは参照専用に残す — 完全削除ではなく、エージェントが特別な事前チェック(設定ファイル保護等)を行う場合のみ残す