From 1db34dd8eabb53f28fe99ce3c6a27b39d0357921 Mon Sep 17 00:00:00 2001 From: Claude-51124 Date: Sat, 6 Dec 2025 17:43:19 +0900 Subject: [PATCH] =?UTF-8?q?docs:=20guidelines=EC=97=90=EC=84=9C=20?= =?UTF-8?q?=EA=B5=AC=EC=B2=B4=EC=A0=81=20=EA=B0=92=20=EC=A0=9C=EA=B1=B0,?= =?UTF-8?q?=20=EC=9B=90=EC=B9=99=EB=A7=8C=20=EC=9C=A0=EC=A7=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - constants.md: 스킬 레벨/스탯 요구사항 구체적 값 제거, 구조 원칙만 유지 - deployment_patterns.md: 구체적 배포 플로우/SSH Secrets 이름 제거, 패턴 원칙만 유지 - logging_rules.md: 구체적 경로/주소 제거, 원칙만 유지 - naming_conventions.md: 구체적 예시 제거, 원칙만 유지 - 실제 값은 각 서비스 README 참조로 변경 --- book/300_architecture/guidelines/constants.md | 33 ++++--------- .../guidelines/deployment_patterns.md | 47 +++++++++---------- .../guidelines/logging_rules.md | 44 +++++------------ .../guidelines/naming_conventions.md | 6 ++- 4 files changed, 47 insertions(+), 83 deletions(-) diff --git a/book/300_architecture/guidelines/constants.md b/book/300_architecture/guidelines/constants.md index bb9839b..3015e6a 100644 --- a/book/300_architecture/guidelines/constants.md +++ b/book/300_architecture/guidelines/constants.md @@ -5,23 +5,14 @@ --- -## 스킬 레벨 구조 +## 스킬 레벨 구조 원칙 -| 레벨 | 스킬 | 설명 | -|------|------|------| -| 1 | 기본 대화 | 기본 채팅 | -| 2 | 이메일 읽기 | Gmail 읽기 | -| 3 | Slack 대화 | Slack 연동 | -| 4 | 이메일 전송 | Gmail 전송 | -| 5 | 데일리 브리핑 | 뉴스 요약 | -| 7 | 일정 관리 | 캘린더 | -| 11 | 문서 작성/편집 | 문서 작업 | -| 13 | 데이터 분석/차트 | 분석 | -| 17 | 프로젝트 관리 | 프로젝트 | -| 19 | AI 인사이트/예측 | 인사이트 | -| 23 | 자동화 워크플로우 | 자동화 | +- 레벨은 점진적으로 증가하는 구조 +- 낮은 레벨: 기본 기능 +- 높은 레벨: 고급 기능 +- 레벨 간격은 의미 있는 기능 차이를 반영 -**참고**: `DOCS/journey/troubleshooting/250830_skill_level_system_restructure.md:45-57` +**참고**: 실제 레벨 값은 코드/README 참조, `DOCS/journey/troubleshooting/250830_skill_level_system_restructure.md` --- @@ -56,15 +47,11 @@ --- -## 스탯 요구사항 구조 +## 스탯 요구사항 구조 원칙 -| 스킬 | Memory | React | Compute | Empathy | -|------|--------|-------|---------|---------| -| EMAIL | 10 | 5 | 5 | 5 | -| NEWS | - | 10 | 5 | - | -| SLACK | 15 | - | - | 10 | -| ANALYSIS | 15 | - | 20 | - | -| LLM | - | - | 15 | 10 | +- 각 스킬은 Memory, React, Compute, Empathy 중 필요한 스탯만 요구 +- 스탯 요구사항은 스킬의 특성에 맞게 설계 +- 실제 값은 코드에서 관리 **참고**: `rb8001/app/services/brain/decision_engine.py:560-565` diff --git a/book/300_architecture/guidelines/deployment_patterns.md b/book/300_architecture/guidelines/deployment_patterns.md index c22523e..0d7443b 100644 --- a/book/300_architecture/guidelines/deployment_patterns.md +++ b/book/300_architecture/guidelines/deployment_patterns.md @@ -5,38 +5,34 @@ --- -## 배포 패턴 구조 +## 배포 패턴 원칙 -### 자동 배포 패턴 -``` -로컬 개발 → Gitea 푸시 → Actions (51123) → SSH (51124) → git pull → docker 재시작 -``` +### 자동 배포 원칙 +- 로컬 개발 → Git 푸시 → CI/CD 실행 → 서버 배포 → 컨테이너 재시작 +- 자동화된 배포는 일관성과 효율성 제공 -**참고**: `AGENTS.md:83-85` +### 수동 배포 원칙 +- 서버 접속 → 코드 업데이트 → 컨테이너 재시작 +- 자동 배포가 불가능한 경우에만 사용 -### 수동 배포 패턴 -``` -서버 접속 → git pull → docker compose down && docker compose up -d --build -``` - -**참고**: `AGENTS.md:32` +**참고**: `AGENTS.md:83-85,32` --- -## 워크플로우 파일 구조 +## 워크플로우 파일 구조 원칙 ### 위치 -- 경로: `.gitea/workflows/*.yml` -- 예시: `rb8001/.gitea/workflows/cicd.yml` +- CI/CD 워크플로우 파일은 표준 경로 사용 +- 각 서비스별로 독립적인 워크플로우 관리 ### 공통 패턴 -1. SSH 키 설정 +1. 인증 설정 2. 서버 접속 -3. git pull -4. docker 재시작 -5. 헬스체크 +3. 코드 업데이트 +4. 서비스 재시작 +5. 검증 -**참고**: 각 서비스 `.gitea/workflows/` 디렉토리 +**참고**: 각 서비스 CI/CD 설정 참조 --- @@ -53,13 +49,12 @@ --- -## SSH Secrets 구조 +## 인증 Secrets 구조 원칙 -| Secret 이름 | 설명 | 사용 위치 | -|------------|------|-----------| -| `SSH_PRIVATE_KEY_51124` | 51124 서버 SSH 키 | Gitea Actions | -| `SSH_HOST_51124` | 51124 서버 IP | Gitea Actions | -| `SSH_USER_51124` | SSH 사용자 | Gitea Actions | +- SSH 키: 서버 접속 인증 +- 호스트 정보: 배포 대상 서버 +- 사용자 정보: 서버 접속 사용자 +- 실제 Secret 이름은 CI/CD 설정 참조 **참고**: `DOCS/journey/plans/251206_skill_calendar_자동배포_구성.md` diff --git a/book/300_architecture/guidelines/logging_rules.md b/book/300_architecture/guidelines/logging_rules.md index 2576bd3..0cb4153 100644 --- a/book/300_architecture/guidelines/logging_rules.md +++ b/book/300_architecture/guidelines/logging_rules.md @@ -37,51 +37,31 @@ logger.info(f"User {user_id} authenticated", extra={ --- -## 로그 위치 +## 로그 위치 원칙 -### 컨테이너 내부 -- 경로: `/code/logs/[서비스명].log` -- 예시: `/code/logs/rb8001.log` - -### 호스트 (백업) -- 경로: `/mnt/51123logs/[서비스명]/` -- 백업 시간: 매일 03:00 +- 컨테이너 내부: 서비스별 로그 파일 분리 +- 호스트 백업: 정기적 백업 (일별 스케줄) +- 실제 경로는 각 서비스 README 참조 **참고**: `AGENTS.md:133-137` --- -## 로그 확인 방법 +## 로그 확인 원칙 -### 실시간 로그 -```bash -docker logs [컨테이너명] --tail 100 -``` - -### 파일 로그 -```bash -tail -f /code/logs/[서비스명].log -``` - -### 에러 필터링 -```bash -docker logs [컨테이너명] | grep -iE "error|warn|fail" -``` +- 실시간 로그: Docker 로그 명령어 사용 +- 파일 로그: 로그 파일 직접 확인 +- 에러 필터링: grep으로 에러/경고 필터링 **참고**: `AGENTS.md:133-137` --- -## 로그 보관 +## 로그 보관 원칙 -### Docker JSON 로그 -- 위치: `/var/lib/docker/containers/*/json.log` -- 권한: sudo 필요 - -### OpenSearch -- 주소: http://192.168.219.45:9200 -- 인덱스: `dataprepper-static` (서비스 로그) -- 일별 인덱스: `dataprepper-YYYY.MM.DD` (fluent-bit 로그) +- Docker JSON 로그: 컨테이너별 자동 생성 +- 중앙 집중 로그: OpenSearch 등 외부 시스템 활용 +- 실제 주소/인덱스는 각 서비스 README 참조 **참고**: `AGENTS.md:137-142` diff --git a/book/300_architecture/guidelines/naming_conventions.md b/book/300_architecture/guidelines/naming_conventions.md index c9204a3..bebc4cb 100644 --- a/book/300_architecture/guidelines/naming_conventions.md +++ b/book/300_architecture/guidelines/naming_conventions.md @@ -81,10 +81,12 @@ MAX_RETRIES = 3 # 상수 ## 서비스명 ### 컨테이너명 -- **kebab-case**: 소문자, 하이픈 (예: `skill-slack`, `robeing-monitor`) +- **kebab-case**: 소문자, 하이픈 사용 +- 실제 이름은 각 서비스 README 참조 ### 서비스 ID -- **소문자**: `rb8001`, `skill-email` +- **소문자**: 일관된 형식 유지 +- 실제 ID는 각 서비스 README 참조 **참고**: `AGENTS.md:78-81`