setup-pre-commit について
Husky と lint-staged を使い、JavaScript プロジェクトにコミット時の品質チェックを設定するスキルです。フォーマット、型チェック、テストの導入と検証を案内します。
主な機能
- 01Husky フックの設定
- 02lint-staged による整形
- 03任意の型チェック
- 04任意のテスト実行
- 05コミットフックの検証
活用シーン
- 01新規プロジェクトへの品質ゲート追加
- 02既存プロジェクトへの整形チェック追加
- 03チームのコミットチェック標準化
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ akillness/ jeo-skills --skill setup-pre-commitインストール後、Claude Code で/setup-pre-commitを入力して読み込まれたか確認します。
詳細
Pre-Commit のセットアップ
Husky と lint-staged を使用して、コミット時にコード品質チェックを自動実行するよう設定します。
このスキルを使用する場面
- 新しいプロジェクトにコミット時の品質ゲートを設定する
- 既存のプロジェクトにフォーマットと型チェックを追加する
- チーム全体で pre-commit の動作を標準化する
このスキルを使用しない場面
- CI パイプラインのセットアップ →
deployment-automationを使用します - Git ワークフロー戦略 →
git-workflowを使用します - テスト戦略全般 →
testing-strategiesを使用します
インストール手順
ステップ 1 — パッケージマネージャーを検出する
# Check for lockfiles in order of precedence
ls package-lock.json # npm
ls yarn.lock # yarn
ls pnpm-lock.yaml # pnpm
ls bun.lockb # bun
ステップ 2 — 依存関係をインストールする
# npm
npm install --save-dev husky lint-staged prettier
# pnpm
pnpm add -D husky lint-staged prettier
# yarn
yarn add -D husky lint-staged prettier
ステップ 3 — Husky を初期化する
npx husky init
.husky/ ディレクトリが作成され、package.json に prepare スクリプトが追加されます。
ステップ 4 — pre-commit フックを作成する
.husky/pre-commit を作成します:
npx lint-staged
npm run typecheck # omit if script doesn't exist
npm test # omit if script doesn't exist
注:Husky v9+ では、フックファイルに shebang は不要です。
ステップ 5 — lint-staged を設定する
.lintstagedrc を作成します:
{
"**/*": "prettier --write --ignore-unknown"
}
ステップ 6 — Prettier を設定する(未設定の場合)
存在しない場合に限り、.prettierrc を作成します:
{
"tabWidth": 2,
"printWidth": 80,
"singleQuote": false,
"trailingComma": "es5",
"semi": true,
"arrowParens": "always"
}
ステップ 7 — 検証する
git add -A
git commit -m "test: verify pre-commit hooks"
確認事項:lint-staged によるフォーマット、型チェックの成功、テストの成功。
実行順序
lint-staged を最初に実行します(高速で、ステージング済みファイルのみが対象)→ 型チェック(プロジェクト全体)→ テスト(テストスイート全体)
package.json に typecheck または test スクリプトがない場合は、pre-commit フックから該当する行を削除します。
手順
- タスクのトリガーと期待される出力を特定します。
- このスキルのワークフロー手順を上から順に実行します。
- 次のステップに進む前に、出力を検証します。
- 手順が失敗した場合は、障害要因と代替手段を記録します。
例
- 例:まず小さな範囲にこのスキルを適用し、検証に成功してから全体に拡大します。
ベストプラクティス
- 出力の再現性を保ち、監査可能にします。
- 広範囲でリスクの高い変更よりも、小規模で元に戻しやすい変更を優先します。
- 前提条件を明示的に記録します。
参考資料
- プロジェクト標準:
.agent-skills/skill-standardization/SKILL.md - バリデータースクリプト:
.agent-skills/skill-standardization/scripts/validate_skill.sh
コメント
Markdown 対応