프로젝트에서 일관된 AI 에이전트(Gemini, Claude, Cursor 등) 활용 및 운영을 위해 공통 스킬, 도메인 규칙, 관련 무시(ignore) 파일 등 agent-ops 기반 프레임워크 초기 환경을 구성함.
2.3 KiB
2.3 KiB
backend-integration
목적 / 책임
nomadcode-core와 기타 NomadCode 인프라의 API 경계를 담당한다. API base URL, health check, task 호출, settings/integration snapshot을 관리하며 현재 일부는 placeholder 상태다.
포함 경로
src/api/client.ts: API base URL, URL builder, fetch wrapper, health checksrc/api/tasks.ts: task 타입, list API, create/enqueue placeholdersrc/api/settings.ts: settings snapshot과 integration status placeholdersrc/routes/SettingsPage.tsx: server/integration 상태 화면src/components/settings/: integration status와 settings section UI.env.example: Vite API base URL 예시
제외 경로
src/api/projects.ts: project inventory mock은 project-workspacesrc/stores/agentStore.ts,src/components/agent/: agent-workspacesrc/app/router.tsx,src/layout/: ui-shell
주요 구성 요소
getApiBaseUrl:VITE_NOMADCODE_API_BASE_URLfallback 처리apiFetch: JSON API fetch wrappergetServerHealth: core health 상태 확인listTasks:/api/tasks조회getSettingsSnapshot: server/integration 화면용 snapshotIntegrationStatus: integration row action과 status 표시
유지할 패턴
- API URL은
buildApiUrl또는apiFetch를 통해 생성한다. - 새 서버 호출은 응답 타입을 먼저 정의하고 TanStack Query에서 사용할 수 있는 Promise API로 노출한다.
- 실제 인증이 추가되면
apiFetch에 header 주입 경계를 만들고 각 호출에 하드코딩하지 않는다. - placeholder를 실제 API로 바꿀 때 loading, error, staleTime, retry 정책을 화면에서 점검한다.
다른 도메인과의 경계
- agent-workspace: agent/task 실행 화면은 backend-integration의 task API 함수를 호출한다.
- project-workspace: project action에서 task를 만들 때 backend-integration의 task 경계를 사용한다.
- ui-shell: top bar health badge는 health API를 표시하지만 fetch 구현은 backend-integration에 둔다.
금지 사항
- API base URL을 컴포넌트에 직접 문자열로 흩어놓지 않는다.
- settings 화면의 mock 값을 실제 연결 완료 상태로 단정하지 않는다.
- fetch 실패를 조용히 삼키고 성공 UI로 표시하지 않는다.