# adapters ## 목적 / 책임 Plane, Mattermost 등 외부 서비스와의 통합 경계를 담당한다. 현재는 stub 단계다. ## 포함 경로 - `internal/adapters/` — 외부 시스템별 client/stub ## 제외 경로 - `internal/workflow/` — task 업무 흐름 - `internal/notification/` — 내부 알림 서비스 - `internal/http/` — 외부 API가 아닌 서버 API ## 주요 구성 요소 - `plane.Client` — Plane issue/comment/status 연동 stub - `mattermost.Client` — Mattermost message/task notification 연동 stub ## 유지할 패턴 - 외부 서비스별 config와 client를 하위 패키지에 격리한다. - 실제 API 호출을 추가할 때 context, timeout, 인증 실패, 재시도 정책을 명시적으로 다룬다. ## 다른 도메인과의 경계 - **workflow**: 외부 시스템 세부사항을 workflow 모델에 직접 섞지 않는다. - **scheduler/notification**: 알림 발생 시점은 scheduler/notification에서 결정하고, 전송 구현은 adapters가 맡는다. ## 금지 사항 - token, URL 같은 민감 설정을 코드에 하드코딩하지 않는다. - stub에서 실제 API 호출로 전환할 때 조용히 에러를 무시하지 않는다.