line-limitlisted
Install: claude install-skill aiskillstore/marketplace
# Line Limit Enforcement
**코드 구현 파일**에 대한 라인 수 제한을 강제하는 스킬입니다.
## Scope
> **이 스킬은 코드 구현 파일에만 적용됩니다.**
### ✅ 적용 대상
| 파일 유형 | 확장자 |
|----------|--------|
| JavaScript/TypeScript | `.js`, `.ts`, `.jsx`, `.tsx` |
| Python | `.py` |
| Go | `.go` |
| Rust | `.rs` |
| Java/Kotlin | `.java`, `.kt` |
| C/C++ | `.c`, `.cpp`, `.h` |
| 기타 실행 코드 | 언어별 소스 파일 |
### 🚫 예외 (적용 제외)
| 파일 유형 | 확장자/위치 | 사유 |
|----------|------------|------|
| Jupyter Notebook | `.ipynb` | 셀 기반 구조, 출력 포함 |
| 스킬 파일 | `SKILL.md` | 문서/가이드 (500줄까지 허용) |
| 문서 파일 | `.md`, `.mdx` | 문서는 길어도 무방 |
| 설정 파일 | `.json`, `.yaml`, `.toml` | 구조적 데이터 |
| 테스트 픽스처 | `fixtures/`, `__mocks__/` | 테스트 데이터 |
| 자동 생성 파일 | `*.generated.*`, `*.g.*` | 수동 관리 X |
| 타입 정의 | `.d.ts` | 선언 파일 |
| CSS/스타일 | `.css`, `.scss` | 스타일시트 |
## Rules
| 상태 | 라인 수 | 조치 |
|------|---------|------|
| ✅ OK | 0-200 | 정상 |
| ⚠️ WARNING | 201-300 | 권장 리팩토링 |
| 🔴 VIOLATION | 301+ | **필수 분리** |
## When This Skill Activates
- 새 파일 작성 시 라인 수 체크
- 코드 리뷰 요청 시
- "파일이 너무 길어", "모듈화 해줘" 등 요청 시
- 300줄 초과 파일 발견 시
## Enforcement Workflow
### 1. 라인 수 체크
```bash
wc -l <file>
```
### 2. 상태 판정
```
if lines <= 200: ✅ OK
elif lines <= 300: ⚠️ WARNING - 리팩토링 권장
else: 🔴 VIOLATION - 분리 필수
```
### 3. 위반 시 조치
**🔴 300줄 초과 파일 발견 시 반드시:**
1. 파일 구조 분석 (함수/클래스/섹션 파악)
2. 분리 가능한 단위 식별:
- 유틸리티 함수 → `utils/` 또는 `helpers/`
- 타입 정의 → `types/` 또는 `*.types.ts`
- 상수/설정 → `constants/` 또는 `config/`
- 하위 컴포넌트 → `components/`
- 훅 → `hooks/`
3. 분리 계획 제시
4. 사용자 승인 후 리팩토링 실행