docs: AGENTS.md 스택 명시

This commit is contained in:
2026-07-08 17:33:20 +09:00
parent 170b55f676
commit fc60c4ecf5
+18 -2
View File
@@ -2,8 +2,23 @@
## 프로젝트 정체 ## 프로젝트 정체
- Music Assistant 프론트엔드 프로젝트. - Music Assistant 클라이언트 프로젝트. 서버(Music Assistant)와 연동하는 크로스플랫폼 앱.
- 본 파일 작성 시점(초기화) 기준 저장소는 비어 있음. 구조/매니페스트/빌드 산출물이 생기면 이 파일을 해당 사실에 맞춰 갱신할 것. - 타겟 플랫폼: iOS, Android, macOS, Web (4개 환경).
- 핵심 기능: 백그라운드 재생, 잠금화면/제어센터 컨트롤, Music Assistant 서버 연동.
## 기술 스택
- Kotlin Multiplatform (KMP) + Compose Multiplatform.
- 공유 로직(Music Assistant API/WebSocket 클라이언트, 상태 관리, 데이터 레이어)은 `commonMain`에 배치.
- UI는 Compose Multiplatform으로 iOS/Android/macOS/Web을 단일 코드베이스로 커버.
- Web 타겟: Kotlin/Wasm + Compose Multiplatform Web.
- 실험→안정화 단계이므로 빌드 파이프라인과 브라우저 호환성을 별도 검증 필요.
- Web 오디오는 HTML5 Audio + Media Session API 사용. iOS Safari의 백그라운드/잠금화면 제약은 Web 타겟에 그대로 적용됨(별도 문서로 보관).
- 오디오 재생: KMP `expect/actual`로 플랫폼별 구현 분리(공통 오디오 라이브러리 없음).
- Android: Media3/ExoPlayer + MediaSession.
- iOS: AVAudioSession + AVPlayer + MPNowPlayingInfoCenter.
- macOS: AVAudioPlayer + MPNowPlayingInfoCenter.
- Web: HTML5 Audio + Media Session API.
## 진실의 원천 계약 ## 진실의 원천 계약
@@ -26,6 +41,7 @@
## 도구 환경 ## 도구 환경
- Node 24, pnpm 11, bun 1.3, git 2.53 사용 가능. - Node 24, pnpm 11, bun 1.3, git 2.53 사용 가능.
- Kotlin/Gradle 기반 KMP 프로젝트. JDK 버전과 Gradle 버전은 매니페스트 생성 시점에 확정하여 여기에 기록할 것.
- 패키지 매니페스트가 없는 초기 상태이므로 아직 빌드/테스트/린트 명령은 확정되지 않음. 매니페스트가 생성되면 여기에 정확한 명령을 기록할 것. - 패키지 매니페스트가 없는 초기 상태이므로 아직 빌드/테스트/린트 명령은 확정되지 않음. 매니페스트가 생성되면 여기에 정확한 명령을 기록할 것.
- 명령 순서가 중요해지면(예: `lint -> typecheck -> test`) 그 순서를 명시할 것. - 명령 순서가 중요해지면(예: `lint -> typecheck -> test`) 그 순서를 명시할 것.