# Agent8 (Agent 8) Project Context > Project: agent8 > Version: 0.1.0 > Description: AI Agentic Web Platform ## Architecture Overview This project is managed by the Agent 8 Silo System. It uses Next.js 15+ (App Router), Firebase (Firestore, Functions, App Hosting), and shadcn/ui + Tailwind CSS. ## Design Philosophy - Atomic and modular components - High accessibility, robust responsive layouts - Purpose-driven logging and state management ## Project Conventions ```markdown --- name: project-conventions description: 프로젝트 컴포넌트, 폴더 구조, 및 UI UX Writing 컨벤션 규칙 가이드 --- # 프로젝트 기본 규칙 가이드 이 파트너 스킬은 안티그래비티 프로젝트 내에서 에이전트들이 파일 생성이나 수정을 제안할 때 따라야 할 기본 원칙들을 정의합니다. ## 1. 폴더 구조 및 파일 위치 ✅ **클라이언트 컴포넌트:** `src/app/` 내부 페이지 폴더 혹은 `src/components/` (공통 컴포넌트) ✅ **유틸리티 논리 모듈:** `src/lib/` 또는 특정 기능 폴더 하위의 `lib/` ✅ **스타일 파일:** 공통 인덱스 스타일은 가급적 건드리지 않되, 필요 시 CSS Modules 혹은 Tailwind를 현재 도입된 상태에 맞춰 작성. ## 2. 클라이언트 컴포넌트 제약 (`use client`) - `use client` 컴포넌트는 되도록 트리의 말단(Leaf) 노드로 분리합니다. - 복잡한 비즈니스 로직(데이터 페칭 등)은 서버 컴포넌트에서 처리하고 클라이언트는 렌더링에만 집중하도록 설계하세요. - 접근성(Accessibility) 검사를 용이하게 하기 위해 컴포넌트 내 `data-test-id`나 명확한 라벨을 포함해야 합니다 (추후 자동화 브라우저 봇을 위해 유용함). ## 3. UX Writing 컨벤션 규칙 - **명확성:** 에러 메시지나 모달창 내용은 직관적인 한국어를 사용합니다. (예: "알 수 없는 에러가 발생했습니다" ❌ -> "이메일 형식이 올바르지 않습니다" ✅) - **일관성:** 버튼 텍스트는 동작을 나타내는 동사형으로 끝맺어야 합니다 (예: "저장하기", "다음으로", "취소"). - **톤앤매너:** 사용자에게 지시하는 어조를 피하고 부드럽고 친절하게 안내합니다 ("~하세요" 보다는 "~해 보세요" 혹은 객관적 상태 설명). - **프로젝트 도메인 용어:** (예시) Agent는 '파트너', Task는 '임무' 등 프로젝트에서 약속된 용어가 있다면 이를 준수합니다. ## 4. 커밋 및 변경 내역 작성 - 기능 개발 후에는 `docs/plans/`나 스킬의 테스트 절차에 따라 테스트를 수행한 후 CI를 통과하는지 확인해야 합니다. - 불필요하게 단일 파일 내에서 수천 줄의 변경사항을 일으키지 마세요 (Bite-sized 원칙 준수). - **[언어 강제 규칙]** Github Copilot, Cursor, Gemini 등 AI 코드 어시스턴트를 활용하더라도 **Git 커밋 메시지, PR 설명 텍스트, 코드 내 주석, 각종 문서 등의 파일 기록은 무조건 100% 한국어로 작성**해야 합니다. (변수/함수명만 영어 허용) **이 스킬을 참조했다면, 향후 코드나 텍스트 수정 시 이 가이드라인이 명백하게 반영되어야 합니다.** ``` ## Instructions for AI Agents 1. **Do not hallucinate APIs**. Check functions/dt/routes or appropriate module endpoints. 2. **Follow Agent 8 Principles**. Always verify correctness before declaring a task Done. 3. **Use Living Code**. Prefer writing and updating code over maintaining stale markdown.