- tools/anissia_client.py: Anissia API 클라이언트 (편성표/자막) - tools/nyaa_client.py: Nyaa.si RSS 토렌트 검색 - tools/qbit_client.py: qBittorrent Web API 클라이언트 - tools/subtitle_downloader.py: Google Drive/Tistory/Naver 자막 파서 - tools/title_matcher.py: 제목 매칭 + NAS 폴더명 생성 - tools/anime_pipeline.py: 전체 파이프라인 오케스트레이터 - tools/nas_scanner.py: NAS 폴더/파일 스캔 - prompts/unified.md: anime 모드 추가 (AI 평문 의도 분류) - api/discord_bot.py: AI 평문 anime 핸들러 + /anime 슬래시 커맨드 - config.py: qBittorrent/NAS 설정 추가 - .agents/: agent_guide 워크플로우 통합 - docs/devlog: 세션 기록
1.1 KiB
1.1 KiB
Coding Conventions
AI 에이전트는 코드를 작성하기 전 이 컨벤션을 확인합니다.
네이밍
| 대상 | 규칙 | 예시 |
|---|---|---|
| 변수/함수 | camelCase | getUserData() |
| 클래스 | PascalCase | UserService |
| 상수 | UPPER_SNAKE_CASE | MAX_RETRY_COUNT |
| 파일명 | kebab-case | user-service.js |
| CSS 클래스 | kebab-case | .nav-header |
코드 스타일
- 들여쓰기: (2 spaces / 4 spaces / tab)
- 세미콜론: (사용 / 미사용)
- 따옴표: (single / double)
- 줄바꿈: LF (Unix style)
커밋 메시지
<type>(<scope>): <description>
type: feat|fix|refactor|test|docs|chore|ci|infra
scope: (선택)
예시:
feat(server): add WebSocket reconnection logicfix(frontend): resolve button overlap on mobiledocs: update API documentation
주석
- 한국어/영어 혼용 가능
- TODO 주석:
// TODO: 설명형식 - 복잡한 로직에는 반드시 WHY(왜) 주석 추가
테스트
- 테스트 파일 위치: (예:
__tests__/또는*.test.js) - 테스트 네이밍:
should [expected behavior] when [condition]