How this skill is triggered — by the user, by Claude, or both
Slash command
/calab-plugin:code-qualityThis skill is limited to the following tools:
The summary Claude sees in its skill listing — used to decide when to auto-load this skill
코드 품질 규칙(줄 수 제한, 주석 필수)을 **강제로** 적용하여 일관된 코드 품질을 유지합니다.
코드 품질 규칙(줄 수 제한, 주석 필수)을 강제로 적용하여 일관된 코드 품질을 유지합니다.
출처: docs.anthropic.com - 코드 작업 전 필수 확인
⚠️ 코드 수정 전 반드시:
1. 해당 파일 먼저 읽기 (추측 금지)
2. 코드베이스 스타일/컨벤션 파악
3. 확실하지 않으면 "확인 필요" 인정
절대 금지:
모든 소스 파일은 반드시 500줄 이하로 작성
500줄 초과가 예상될 때:
모든 함수/메서드에 JSDoc 또는 Docstring 필수
복잡한 로직(조건문 3개 이상, 루프 2중 이상)에 설명 주석 필수
단계:
1. CODE_STYLE.md 규칙 확인
2. 예상 줄 수 계산
3. 500줄 초과 예상 시 → 파일 분리 계획 수립
4. 함수 목록 작성 → 각 함수에 주석 계획
규칙:
1. 함수 시작 전 → JSDoc/Docstring 먼저 작성
2. 복잡한 로직 전 → 설명 주석 작성
3. 100줄마다 → 현재 줄 수 체크
4. 200줄 도달 시 → 남은 코드 분리 검토
체크리스트:
1. 총 줄 수 확인 (500줄 이하)
2. 모든 함수에 주석 존재
3. 복잡 로직에 설명 주석 존재
4. 위반 시 즉시 수정
============================================
[CODE QUALITY] 파일 분리 필요
============================================
예상 줄 수: ~450줄
최대 허용: 500줄
분리 제안:
1. user-service.ts (인증 로직) - ~150줄
2. user-repository.ts (DB 접근) - ~120줄
3. user-types.ts (타입 정의) - ~80줄
4. user-utils.ts (유틸리티) - ~100줄
============================================
이렇게 분리해서 작성할까요?
TypeScript:
/**
* 사용자 ID로 사용자 정보를 조회합니다.
*
* @param userId - 조회할 사용자의 고유 ID
* @returns 사용자 객체 또는 존재하지 않으면 null
* @throws DatabaseError 데이터베이스 연결 실패 시
*/
async function getUserById(userId: string): Promise<User | null> {
Python:
async def get_user_by_id(user_id: str) -> Optional[User]:
"""
사용자 ID로 사용자 정보를 조회합니다.
Args:
user_id: 조회할 사용자의 고유 ID
Returns:
User 객체 또는 존재하지 않으면 None
Raises:
DatabaseError: 데이터베이스 연결 실패 시
"""
.claude/memory/CODE_STYLE.md - 상세 코드 스타일 규칙.claude/memory/PROJECT_RULES.md - 프로젝트 규칙npx claudepluginhub wondermove-inc/calab-claude-plugin --plugin calab-pluginRuns custom Python lints enforcing taste invariants like file size limits, naming conventions (snake_case Python, kebab-case YAML), function complexity, with agent-readable remediation instructions. Use when writing or reviewing code.
Enforces custom lints for file size limits, naming conventions (snake_case Python, kebab-case YAML/skills, PascalCase PowerShell), function complexity, and skill size with agent-readable remediation instructions. Use when writing, reviewing, or preparing code for PRs.
Reviews generated or changed production code against Clean Code, SOLID, DRY, KISS, YAGNI, and LLM-specific failure-mode checks. Operates in guard-pass, live, or review modes.