Communityコーディング&開発github.com

mattpocock/setup-pre-commit

現在のリポジトリにHuskyプリコミットフックとlint-staged(Prettier)、型チェック、テストを設定します。プリコミットフックの追加、Huskyのセットアップ、lint-stagedの設定、コミット時のフォーマット/型チェック/テストを行いたい場合に使用します。

setup-pre-commit とは?

このスキルは、開発者がGitリポジトリにプリコミットフックを迅速に設定するためのものです。Huskyとlint-stagedを組み合わせることで、コミット前にPrettierによるコードフォーマット、TypeScriptの型チェック、テストの自動実行を実現します。これにより、コードベースの品質を維持し、バグの早期発見や一貫したスタイルを強制できます。対応プラットフォームは主にCLIベースのAIエージェント(Claude CodeやCursorなど)で、npmパッケージを利用した標準的なNode.jsプロジェクトのセットアップ手順に従います。SKILL.mdには、依存関係のインストール、設定ファイルの作成、package.jsonへのスクリプト追加といった具体的な手順が含まれており、ユーザーは数分で実装を完了できます。

対応~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/mattpocock/skills/tree/main/skills/setup-pre-commit

Installed? Explore more コーディング&開発 skills: steipete/bluebubbles, steipete/eightctl, steipete/blucli · View all 6 →

お気に入りのAIに質問する

このエージェントスキルを事前に読み込んだ状態で新しいチャットを開きます。

ドキュメント

setup-pre-commit は何をしますか?

現在のリポジトリにHuskyプリコミットフックとlint-staged(Prettier)、型チェック、テストを設定します。プリコミットフックの追加、Huskyのセットアップ、lint-stagedの設定、コミット時のフォーマット/型チェック/テストを行いたい場合に使用します。

手順

  1. 必要な依存関係をインストールします:
npm install --save-dev husky lint-staged prettier
  1. Huskyを初期化します:
npx husky init
  1. .husky/pre-commitフックファイルを編集して、以下の内容に置き換えます:
npx lint-staged
  1. package.jsonにlint-staged設定を追加します:
{
  "lint-staged": {
    "*.{js,jsx,ts,tsx,json,css,md}": [
      "prettier --write"
    ]
  }
}
  1. 必要に応じて、package.jsonにtypecheckとtestスクリプトを追加します(まだない場合):
{
  "scripts": {
    "typecheck": "tsc --noEmit",
    "test": "jest"
  }
}
  1. .husky/pre-commitフックファイルを更新して、型チェックとテストも実行するようにします:
npx lint-staged
npm run typecheck
npm run test

注意事項

  • この設定は、プロジェクトで既にTypeScript(tsconfig.json)とテストランナー(Jest、Vitestなど)が設定されていることを前提としています。
  • お使いのテストランナーに合わせて、npm run testコマンドを適宜調整してください。
  • 必要に応じて、lint-stagedの設定でより多くのファイルパターンやコマンドを追加できます。

元のスキル

mattpocock/setup-pre-commit

Individual skills in this repo

This repo contains 20 individual skills — each has its own dedicated page.

mattpocock/ask-matt

Ask which skill or flow fits your situation. A router over the skills in this repo.

mattpocock/caveman

Ultra-compressed communication mode. Cuts token usage ~75% by dropping filler, articles, and pleasantries while keeping full technical accuracy. Use when user says "caveman mode", "talk like caveman", "use caveman", "less tokens", "be brief", or invokes /caveman.

mattpocock/claude-handoff

Hand the current conversation off to a fresh background agent that picks up the work immediately.

mattpocock/codebase-design

Shared vocabulary for designing deep modules. Use when the user wants to design or improve a module's interface, find deepening opportunities, decide where a seam goes, make code more testable or AI-navigable, or when another skill needs the deep-module vocabulary.

mattpocock/design-an-interface

Generate multiple radically different interface designs for a module using parallel sub-agents. Use when user wants to design an API, explore interface options, compare module shapes, or mentions "design it twice".

mattpocock/diagnose

Disciplined diagnosis loop for hard bugs and performance regressions. Reproduce → minimise → hypothesise → instrument → fix → regression-test. Use when user says "diagnose this" / "debug this", reports a bug, says something is broken/throwing/failing, or describes a performance regression.

mattpocock/diagnosing-bugs

Diagnosis loop for hard bugs and performance regressions. Use when the user says "diagnose"/"debug this", or reports something broken/throwing/failing/slow.

mattpocock/domain-modeling

Build and sharpen a project's domain model. Use when the user wants to pin down domain terminology or a ubiquitous language, record an architectural decision, or when another skill needs to maintain the domain model.

mattpocock/edit-article

Edit and improve articles by restructuring sections, improving clarity, and tightening prose. Use when user wants to edit, revise, or improve an article draft.

mattpocock/git-guardrails-claude-code

Set up Claude Code hooks to block dangerous git commands (push, reset --hard, clean, branch -D, etc.) before they execute. Use when user wants to prevent destructive git operations, add git safety hooks, or block git push/reset in Claude Code.

mattpocock/grilling

Grill the user relentlessly about a plan or design. Use when the user wants to stress-test a plan before building, or uses any 'grill' trigger phrases.

mattpocock/grill-me

Interview the user relentlessly about a plan or design until reaching shared understanding, resolving each branch of the decision tree. Use when user wants to stress-test a plan, get grilled on their design, or mentions "grill me".

mattpocock/grill-with-docs

Grilling session that challenges your plan against the existing domain model, sharpens terminology, and updates documentation (CONTEXT.md, ADRs) inline as decisions crystallise. Use when user wants to stress-test a plan against their project's language and documented decisions.

mattpocock/handoff

Compact the current conversation into a handoff document for another agent to pick up.

mattpocock/implement

Implement a piece of work based on a PRD or set of issues.

mattpocock/implement-spec

Implement a specification in code.

mattpocock/improve-codebase-architecture

Scan a codebase for deepening opportunities, present them as a visual HTML report, then grill through whichever one you pick.

mattpocock/loop-me

Grill me about specs for the workflows I want to build, within this workspace.

mattpocock/migrate-to-shoehorn

Migrate test files from `as` type assertions to @total-typescript/shoehorn. Use when user mentions shoehorn, wants to replace `as` in tests, or needs partial test data.

mattpocock/obsidian-vault

Search, create, and manage notes in the Obsidian vault with wikilinks and index notes. Use when user wants to find, create, or organize notes in Obsidian.

関連スキル