# Coding Conventions — Gravity Web

> AI 에이전트는 코드를 작성하기 전 이 컨벤션을 확인합니다.

## 네이밍

| 대상 | 규칙 | 예시 |
|------|------|------|
| 변수/함수 | camelCase | `getUserData()` |
| 클래스 | PascalCase | `SessionManager` |
| 상수 | UPPER_SNAKE_CASE | `CDP_POLL_INTERVAL` |
| 파일명 | kebab-case | `cdp-client.js`, `session-panel.js` |
| CSS 클래스 | kebab-case | `.session-card`, `.chat-bubble` |

## 커밋 메시지

```
<type>(<scope>): <description>

type: feat|fix|refactor|test|docs|chore|ci|infra
scope: server|frontend|cdp|infra (선택)
```

**예시:**
- `feat(server): add WebSocket reconnection logic`
- `fix(cdp): handle disconnection timeout`
- `docs: update Architecture wiki`

## Vikunja 태깅 규칙

- **영역 라벨 (필수, 1개 이상):** `Backend` / `Frontend` / `Infra` / `Test`
- **우선순위 라벨 (필수, 1개):** `Priority:High` / `Priority:Mid` / `Priority:Low`

## 주석

- 한국어/영어 혼용 가능
- TODO 주석: `// TODO: 설명`
- 복잡한 로직: WHY(왜) 주석 필수
