# pre-commit 설정 (setup-pre-commit)

> 현재 저장소에 Husky pre-commit 훅을 설정해 lint-staged로 Prettier를 실행하고 타입 검사와 테스트를 추가합니다.

- 카테고리: [코드 규약](https://www.myskills.tools/ko/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/ko/ · URL: https://www.myskills.tools/ko/skills/setup-pre-commit/
