generated from ttipo/project-base
3c9b3727c6
CI / Backend (lint · type-check · test · e2e · build) (pull_request) Successful in 13m49s
CI / Frontend (lint · type-check · test · build) (pull_request) Successful in 13m45s
CI / Infra (compose · Dockerfile · nginx · 운영 스크립트) (pull_request) Successful in 1m55s
CI / 에러 코드 SSOT 동기화 검사 (pull_request) Successful in 11m12s
루트 README · CLAUDE.md · 점검 목록이 아직 "풀스택 모노레포 템플릿"으로 소개하고 있었다 — 사내 그룹웨어(메일 운영 중)에 맞게
지금 상태 · 구성(메일 엔진 · 리졸버 · ClamAV · 운영 스크립트 포함) · 문서 지도 · 디렉터리 구조로 다시 쓰고,
백엔드를 호스트에서 npm ci 하라던 옛 안내(컨테이너 안에서만 — 규칙과 반대)를 뺐다.
docs/roadmap.md 에 메일 1~16단계 상태(16단계 첫 항목: 주소록 가져오기 · 내보내기) · 공통 기반 · 2부 · 앱 · 추후 후보 모음을 둔다.
backend · frontend README 는 프레임워크가 만든 영어 안내 대신 이 저장소의 실행 · 검사 · 참고 문서로,
규칙 · 스킬 · 역할 문서의 "템플릿" 표현("템플릿 기본 제공 골격" 등)은 "기본 골격"으로 바꿨다(nginx 설정 템플릿은 그대로).
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
3.7 KiB
3.7 KiB
프로젝트 개요
이 저장소는 ARA SYSTEM — 사내 그룹웨어(첫 모듈은 메일: 웹메일 · 휴대폰 앱)다. 백엔드 · 웹 · 앱과 메일 엔진 · 운영 설정을 한 저장소에서 다루고, 여기에 공통 규칙과 스택별 규칙을 둔다.
프로젝트 소개 · 문서 지도는 README.md, 작업 차례는 docs/roadmap.md.
| 디렉터리 | 스택 | 역할 | 개발 규칙 (스킬) |
|---|---|---|---|
backend/ |
NestJS (TS) | REST API 서버 | /nestjs → @.claude/skills/nestjs/SKILL.md |
frontend/ |
Vue 3 (TS) | 웹 프론트엔드 | /vue3 → @.claude/skills/vue3/SKILL.md |
flutter/ |
Flutter (Dart) | 모바일 앱 | /flutter → @.claude/skills/flutter/SKILL.md |
| 루트 | Docker Compose | 로컬/운영 오케스트레이션 | /docker → @.claude/skills/docker/SKILL.md |
세 클라이언트는 동일한 표준 응답 포맷과 에러 코드 맵을 공유한다 (아래 공통 규칙 참조).
규칙은
.claude/아래로 모듈화되어 있다.
.claude/rules/— 세 플랫폼 공통 규칙 (코딩·응답 포맷·에러 코드·API 설계·로깅·커밋·보안·환경변수·테스트) 새 규칙 파일을 추가하면 반드시 아래@import 목록에도 등록한다(등록하지 않으면 로드되지 않는다)..claude/skills/— 도메인별 개발 규칙 (스킬). 슬래시 명령(/nestjs등) 또는 해당 디렉터리 작업 시 자동 적용.claude/agents/— 역할별 규칙 (에이전트 팀원). 역할을 지정해 호출할 때 적용@import 하지 않는다 — 규칙이 아니라 호출 시점에 로드되는 역할 정의다 (아래 목록 참조).claude/settings.json— Claude Code 권한·환경 설정
공통 규칙 (모든 디렉터리 적용)
@.claude/rules/coding-common.md @.claude/rules/response-format.md @.claude/rules/error-codes.md @.claude/rules/api-design.md @.claude/rules/logging.md @.claude/rules/git-convention.md @.claude/rules/security.md @.claude/rules/env-structure.md @.claude/rules/testing.md @.claude/rules/checklist.md
도메인별 개발 규칙 (스킬)
- 백엔드(NestJS): @.claude/skills/nestjs/SKILL.md
- 프론트엔드(Vue 3): @.claude/skills/vue3/SKILL.md
- 모바일(Flutter): @.claude/skills/flutter/SKILL.md
- 실행/배포(Docker): @.claude/skills/docker/SKILL.md
역할별 규칙 (에이전트 팀원)
세 층의 역할 분담은 다음과 같다. 규칙은 한 곳에만 적는다 — 역할 파일은 규칙을 참조만 한다.
.claude/rules/ 무엇을 지키는가 — 전원 공통 (위 @import 목록)
.claude/skills/ 어떻게 만드는가 — 스택별
.claude/agents/ 누가 맡는가 — 역할별
| 역할 | 파일 | 코드 수정 |
|---|---|---|
| 백엔드 개발 | .claude/agents/backend-dev.md |
O |
| 프론트엔드 개발 | .claude/agents/frontend-dev.md |
O |
| 모바일 개발 | .claude/agents/mobile-dev.md |
O |
| 테스터 | .claude/agents/tester.md |
O (테스트 한정) |
| 리뷰어 | .claude/agents/reviewer.md |
X |
| 인프라/릴리스 | .claude/agents/release-ops.md |
O (인프라 한정) |
| 사용자 관점 | .claude/agents/persona-user.md |
X |
| 관리자 관점 | .claude/agents/persona-admin.md |
X |
공통 계약(경계·인계 형식·완료 기준)은 .claude/agents/README.md 참조.
역할을 지정하지 않으면 평소대로 동작한다 — 모든 작업을 역할로 나눌 필요는 없다.