ADR-005: Husky + lint-staged で pre-commit 品質チェックを実施する¶
コミット前に Gradle check を自動実行し、品質基準を満たさないコードのコミットを防止する。
日付: 2026-04-04
ステータス¶
承認済み
コンテキスト¶
コード品質を維持するため、コミット前に自動的な品質チェックを実行する仕組みが必要である。
- Java ソースファイルが変更された場合のみ Gradle check を実行したい
- チーム全員に同じチェックを適用したい
- Node.js ベースの Gulp タスクランナーが既に導入されている
決定¶
Husky + lint-staged を導入し、Java ファイルの変更時に ./gradlew check を自動実行する。
変更箇所¶
package.jsonにhusky、lint-staged、prepareスクリプトを追加.husky/pre-commitでnpx lint-stagedを実行ops/scripts/pre_commit_gradle_check.mjsでapps/cargo-trackerの./gradlew checkを実行package.jsonのlint-staged設定でapps/cargo-tracker/src/**/*.javaをトリガーに指定
代替案¶
| 代替案 | 却下理由 |
|---|---|
| Git hooks を手動設定 | チームメンバー間で設定が異なるリスク |
| CI のみでチェック | プッシュ後に失敗が判明し手戻りが発生する |
| pre-push フック | コミット単位での品質担保ができない |
影響¶
ポジティブ¶
- 品質基準を満たさないコードがリポジトリに入ることを防止できる
npm installで自動セットアップされるため、手動設定が不要
ネガティブ¶
- Java ファイル変更時のコミットに数十秒かかる(Gradle check の実行時間)
- 緊急時は
--no-verifyでスキップ可能だが非推奨
コンプライアンス¶
- Java ファイルを変更してコミットした際に Gradle check が自動実行されること
- check 失敗時にコミットがブロックされること
備考¶
- 関連コミット:
0eec9a8