# pre-commit 設定 (setup-pre-commit)

> リポジトリに Husky の pre-commit フックを設定し、lint-staged による Prettier、型チェック、テストを組み込みます。

- カテゴリ: [コーディング規約](https://www.myskills.tools/ja/categories/code-standards/)
- 提供元: コミュニティ · Matt Pocock
- リポジトリ: https://github.com/mattpocock/skills/tree/main/skills/misc/setup-pre-commit (commit 3216582)
- SKILL.md: https://github.com/mattpocock/skills/blob/main/skills/misc/setup-pre-commit/SKILL.md
- インストールコマンド: `npx skills add mattpocock/skills --skill setup-pre-commit`
- ライセンス: MIT
- 対応ツール: Claude Code, Codex, Copilot, Gemini CLI
- 権限: read-repo ✓, write-files ✓, shell ✓, network ✓
- 状態: スキャン済み
- ルールスキャンですべてのリスクを検出できるわけではありません。インストール前にこのスキルの SKILL.md を読み、権限を確認してください。
- ⚠ 開発用依存を追加し、git の pre-commit フックを設定して変更を自動でコミットします。

## 基本ルール

フックは検出したパッケージマネージャーに合わせ、typecheck や test スクリプトがなければその行を省いてユーザーに伝えること。

## 実行フェーズ

1. **検出とインストール** — ロックファイルから npm・pnpm・yarn・bun を判別し、husky・lint-staged・prettier を devDependencies に入れます。
2. **Husky 初期化** — npx husky init を実行し、lint-staged・typecheck・test を順に走らせる .husky/pre-commit を書きます。
3. **設定ファイル作成** — .lintstagedrc で全ステージ済みファイルに prettier --ignore-unknown --write を適用し、Prettier 設定がない場合だけ .prettierrc を作ります。
4. **検証とコミット** — 各ファイルと prepare スクリプトを確認して npx lint-staged を実行し、変更をコミットして新しいフックの動作を確かめます。

## 権限の説明（SKILL.md より）

| 機能 | 必要か | 説明 |
|---|---|---|
| ファイル書き込み | 一部で必要 | .husky/pre-commit、.lintstagedrc、.prettierrc、package.json のみを作成・変更します。 |
| コマンド実行 | 一部で必要 | パッケージマネージャーのインストール、npx husky init、npx lint-staged、git のコミットを実行します。 |
| 外部通信 | 一部で必要 | 依存パッケージのインストール時にパッケージレジストリへアクセスするだけです。 |

## SKILL.md のフロントマター（YAML）

```yaml
---
name: setup-pre-commit
description: Set up Husky pre-commit hooks with lint-staged (Prettier), type checking, and tests in the current repo. Use when user wants to add pre-commit hooks, set up Husky, configure lint-staged, or add commit-time formatting/typechecking/testing.
---
```

ホーム: https://www.myskills.tools/ja/ · URL: https://www.myskills.tools/ja/skills/setup-pre-commit/
