Agent skill
line-limit
Enforce file line count limits (200 recommended, 300 max) for CODE IMPLEMENTATION files only. Use this when reviewing code, creating files, or when files exceed line limits and need modularization.
Install this agent skill to your Project
npx add-skill https://github.com/aiskillstore/marketplace/tree/main/skills/doyajin174/line-limit
Metadata
Additional technical details for this skill
- author
- antigravity-team
- version
- 1.0
SKILL.md
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. 라인 수 체크
wc -l <file>
2. 상태 판정
if lines <= 200: ✅ OK
elif lines <= 300: ⚠️ WARNING - 리팩토링 권장
else: 🔴 VIOLATION - 분리 필수
3. 위반 시 조치
🔴 300줄 초과 파일 발견 시 반드시:
- 파일 구조 분석 (함수/클래스/섹션 파악)
- 분리 가능한 단위 식별:
- 유틸리티 함수 →
utils/또는helpers/ - 타입 정의 →
types/또는*.types.ts - 상수/설정 →
constants/또는config/ - 하위 컴포넌트 →
components/ - 훅 →
hooks/
- 유틸리티 함수 →
- 분리 계획 제시
- 사용자 승인 후 리팩토링 실행
Modularization Patterns
React/TypeScript
# Before (500 lines)
src/components/Dashboard.tsx
# After
src/components/Dashboard/
├── index.tsx # Main component (< 200 lines)
├── DashboardHeader.tsx
├── DashboardStats.tsx
├── DashboardChart.tsx
├── hooks/
│ └── useDashboardData.ts
├── types.ts
└── constants.ts
General Functions
# Before (400 lines)
src/utils/helpers.ts
# After
src/utils/
├── index.ts # Re-exports
├── string.utils.ts
├── date.utils.ts
├── array.utils.ts
└── validation.utils.ts
Examples
Example 1: 코드 리뷰 시
User: 이 파일 리뷰해줘 - src/services/api.ts
Claude: [파일 읽기 후]
📊 라인 수 체크: 342 lines
🔴 VIOLATION: 300줄 초과 - 모듈화 필요
분석 결과:
- API 엔드포인트 함수: 15개 (240 lines)
- 타입 정의: 12개 (45 lines)
- 헬퍼 함수: 5개 (57 lines)
권장 분리:
1. api/endpoints/ - 엔드포인트별 분리
2. api/types.ts - 타입 정의 추출
3. api/helpers.ts - 헬퍼 함수 추출
분리를 진행할까요?
Example 2: 새 파일 작성 시
User: 대시보드 컴포넌트 만들어줘
Claude: [작성 중 200줄 도달 시]
⚠️ WARNING: 200줄 도달 - 분리 권장
현재 구조:
- DashboardHeader (40 lines)
- DashboardStats (60 lines)
- DashboardChart (80 lines)
- hooks (20 lines)
각 섹션을 별도 파일로 분리하면서 계속 진행할까요?
Example 3: 모듈화 요청
User: 이 파일 너무 길어, 정리해줘
Claude: [line-limit 스킬 활성화]
📊 현재: 456 lines
🔴 VIOLATION: 156줄 초과
[분석 및 분리 계획 제시...]
References
상세 모듈화 가이드: references/modularization-guide.md
Recommended Agent Skills
Expand your agent's capabilities with these related and highly-rated skills.
perigon-backend
Perigon ASP.NET Core + EF Core + Aspire conventions
perigon-agent
Pointers for Copilot/agents to apply Perigon conventions
perigon-angular
Angular 21+ standalone/Material/signal conventions for Perigon WebApp
fastapi-mastery
Comprehensive FastAPI development skill covering REST API creation, routing, request/response handling, validation, authentication, database integration, middleware, and deployment. Use when working with FastAPI projects, building APIs, implementing CRUD operations, setting up authentication/authorization, integrating databases (SQL/NoSQL), adding middleware, handling WebSockets, or deploying FastAPI applications. Triggered by requests involving .py files with FastAPI code, API endpoint creation, Pydantic models, or FastAPI-specific features.
context7-efficient
Token-efficient library documentation fetcher using Context7 MCP with 86.8% token savings through intelligent shell pipeline filtering. Fetches code examples, API references, and best practices for JavaScript, Python, Go, Rust, and other libraries. Use when users ask about library documentation, need code examples, want API usage patterns, are learning a new framework, need syntax reference, or troubleshooting with library-specific information. Triggers include questions like "Show me React hooks", "How do I use Prisma", "What's the Next.js routing syntax", or any request for library/framework documentation.
browser-use
Browser automation using Playwright MCP. Navigate websites, fill forms, click elements, take screenshots, and extract data. Use when tasks require web browsing, form submission, web scraping, UI testing, or any browser interaction.
Didn't find tool you were looking for?