code-conventions

aimskr's avatarfrom aimskr

코드 컨벤션, 코딩 스타일, 코드 스타일, 네이밍, 컨벤션 - Always apply when writing code. Code style, naming rules, function/file size limits for TypeScript, Python, and Java.

⭐0stars🔀0forks📁View on GitHub🕐Updated Jan 7, 2026

When & Why to Use This Skill

This Claude skill functions as an automated Code Style Persona that enforces industry-standard coding conventions for TypeScript, Python, and Java. By implementing strict naming rules, size limits, and the Early Return pattern, it helps developers maintain clean, readable, and scalable codebases while systematically avoiding common anti-patterns like 'God Functions' and 'Magic Numbers'.

Use Cases

  • Automated Style Enforcement: Ensuring all new code follows language-specific naming conventions such as PEP-8 for Python or camelCase for TypeScript variables to maintain project consistency.
  • Complexity Reduction & Refactoring: Breaking down large, complex functions and files into smaller, modular components based on predefined line limits (e.g., 50 lines per function) and nesting depth constraints.
  • Pre-PR Quality Audit: Acting as a comprehensive checklist to verify code quality, explicit typing, and proper import ordering before submitting pull requests.
  • Technical Debt Prevention: Identifying and eliminating generic naming schemes (like 'utils' or 'helpers') and architectural anti-patterns to improve long-term maintainability.
namecode-conventions
description"코드 컨벤션, 코딩 스타일, 코드 스타일, 네이밍, 컨벤션 - Always apply when writing code. Code style, naming rules, function/file size limits for TypeScript, Python, and Java."

Code Conventions - Code Style Persona

Role

Guide how to write code:

  • Maintain consistent code style
  • Write readable code
  • Create maintainable structure

General Principles

Early Return Pattern

Prefer early returns over nested conditions for better readability.

Size Limits

Target Limit When Exceeded
Function/Method 50 lines Split
File/Class 200 lines Split into modules
Nesting depth 3 levels Apply early return

TypeScript Conventions

Naming

Type Pattern Example
Class/Interface/Type PascalCase OrderService, UserEntity
Function/Variable camelCase calculateTotal, userName
Constant SCREAMING_SNAKE MAX_RETRY_COUNT
File kebab-case or camelCase order-service.ts
Boolean is/has/can prefix isActive, hasPermission

Best Practices

  • Use arrow functions when possible
  • Prefer const over let, avoid var
  • Always declare explicit types
  • Use interface for object shapes, type for unions/intersections
  • Prefer unknown over any

Avoid

❌ utils.ts, helpers.ts, common.ts, shared.ts

Python Conventions (PEP-8)

Naming

Type Pattern Example
Class PascalCase OrderService, UserEntity
Function/Variable snake_case calculate_total, user_name
Constant SCREAMING_SNAKE MAX_RETRY_COUNT
Module/File snake_case order_service.py
Private leading underscore _internal_method

Best Practices

  • Maximum line length: 79 characters (code), 72 (docstrings)
  • Use 4 spaces for indentation (no tabs)
  • Two blank lines between top-level definitions
  • One blank line between method definitions
  • Use type hints (PEP 484)
  • Use docstrings for public modules, functions, classes, methods

Import Order (PEP-8)

# 1. Standard library
import os
import sys

# 2. Third-party
import requests
import numpy as np

# 3. Local application
from myapp import utils

Avoid

❌ utils.py, helpers.py, common.py, shared.py

Java Conventions

Naming

Type Pattern Example
Class/Interface PascalCase OrderService, UserEntity
Method/Variable camelCase calculateTotal, userName
Constant SCREAMING_SNAKE MAX_RETRY_COUNT
Package lowercase com.example.order
File Same as class name OrderService.java

Best Practices

  • One public class per file
  • Use final for immutable variables
  • Prefer composition over inheritance
  • Use interfaces for abstraction
  • Follow JavaDoc conventions for documentation
  • Use Optional instead of null for return values

Avoid

❌ Utils.java, Helpers.java, Common.java, Shared.java

Checklist

When Writing Code

  • Is function/method under 50 lines?
  • Is file/class under 200 lines?
  • Is nesting under 3 levels?
  • Is early return applied?
  • Is naming following language conventions?
  • Are types/type hints declared?

Before PR

  • Consistent code style maintained
  • Unnecessary comments removed
  • Error handling appropriate
  • Linter/formatter passed

Anti-Patterns

  • Magic Numbers: Using meaningless numbers directly
  • God Function/Class: Giant function/class that does everything
  • Callback Hell / Nested Conditionals: Deep nesting
  • Copy-Paste Code: Duplicated code
  • Generic Naming: utils, helpers, common, shared, misc