macOS 생산성 유틸리티 앱 — 태스크 관리 + AI 채팅 + 메모리 (Electron Main/Renderer IPC 구조)
bun run dev # 개발 모드
bun run build # 프로덕션 빌드
bun run test # 테스트
bun run lint # biome 린트| Alias | 경로 |
|---|---|
@main/* |
src/main/* |
@renderer/* |
src/renderer/* |
@shared/* |
src/shared/* |
- IPC 스키마 Single Source of Truth:
src/shared/ipc-schema.ts - Mutation 채널은
IpcResult { success, error? }반환 필수 - Fire-and-forget(quit, resize, navigate)만 void 허용
- Date 객체는 IPC 통과 불가 — ISO 8601 문자열 사용
- TanStack Query 사용. 쿼리 키:
src/renderer/queries/keys.ts - 읽기:
useQuery, 쓰기:useMutation - mutation 성공 →
invalidateQueries - 컴포넌트에서
window.electronAPI직접 호출 금지 — hooks 사용
- 파일당 최대 300줄
- 200줄 초과 컴포넌트 → 서브컴포넌트 추출
- 100줄 초과 훅 → utils로 순수 로직 분리
- 대시보드 각 섹션은
ErrorBoundary로 래핑 (크래시 격리)
- 모든
.ts/.tsx파일 첫 줄에 한 줄 JSDoc 설명 필수:/** 파일 목적 설명 */ - 새 파일 생성 시 반드시 포함, PR 리뷰 시 누락 체크
- 커밋: commit 스킬 사용
- UI: design-system 스킬 참고
- IPC 추가/수정: ipc-development 스킬 참고
- 데이터 페칭 패턴: data-fetching 스킬 참고
- React 패턴:
docs/react-patterns.md - 도메인 모델:
docs/domain-model.md - 네이밍:
docs/naming-convention.md - 개발 워크플로우 (브랜치 전략, changeset, 릴리즈):
docs/workflow.md - 테스트 작성 가이드 (vitest 패턴, E2E):
docs/testing.md