nexo/agent-ops/rules/project/rules.md
2026-05-26 16:26:07 +09:00

3 KiB

nexo 프로젝트 규칙

응답 언어

  • 기본 응답은 한국어로 작성한다.
  • 파일명, 명령어, 패키지명, API 이름, 코드 식별자는 원문 그대로 유지한다.

프로젝트 개요

nexo는 메시징 서버, Flutter 클라이언트, Flutter 푸시 알림 패키지를 한 워크스페이스에서 함께 관리하는 프로젝트다.

주요 경계는 다음과 같다.

  • services/core/ — nexo 메시징 서버 코어, 웹앱, API 문서, compose 환경
  • packages/messaging_flutter/ — nexo 메시징/알림 Flutter 플러그인
  • apps/client/ — 플러그인을 검증하는 Flutter 클라이언트와 통합 테스트 호스트
  • docs/, bin/ — 워크스페이스 공통 문서와 helper entrypoint

기술 스택

  • Flutter / Dart sdk: ^3.11.3
  • Android native plugin: Kotlin, Java, Gradle
  • iOS / macOS plugin scaffold: Swift
  • Server core: Go 1.24.13, messaging server module
  • Webapp / API tooling: Node.js, npm workspaces, TypeScript, Redocly
  • Local runtime: Docker Compose under services/core/compose/

작업 원칙

  • services/core/는 upstream 계승 구조가 크므로 제품 특화 변경은 작고 비교 가능하게 유지한다.
  • services/core/UPSTREAM.md의 baseline 정보를 임의로 바꾸지 않는다.
  • Flutter 플러그인의 public package/import/native identifier는 nexo 계열 이름으로 전환한다. 전환은 소비 앱과 native 등록 지점을 함께 다루는 계획 작업으로 진행한다.
  • 푸시 알림 처리 책임은 packages/messaging_flutter/에 두고, apps/client/에는 검증과 host integration만 둔다.
  • apps/client/는 독립 소비 앱 역할을 하므로 플러그인 내부 동작을 복제하지 않는다.
  • build/, .dart_tool/, Android/iOS/macOS 생성물, upstream bulk 파일은 요청 범위 밖이면 건드리지 않는다.
  • 모듈별 README가 있는 경우 해당 모듈 안의 설명을 우선한다.

검증 명령

  • 전체 기본 검증: bin/test
  • 전체 lint: bin/lint
  • 전체 build: bin/build
  • 서버 Go test: NEXO_CORE_GO_TEST=1 bin/test
  • 서버 Go vet: NEXO_CORE_GO_LINT=1 bin/lint
  • 서버 Go build: NEXO_CORE_GO_BUILD=1 bin/build

bin/* 명령은 로컬 도구가 없으면 일부 검증을 skip할 수 있다. skip 출력이 있으면 최종 보고에 명시한다.

도메인 매핑

경로 패턴 도메인 rules.md
services/core/** core-service agent-ops/rules/project/domain/core-service/rules.md
packages/messaging_flutter/** messaging-flutter agent-ops/rules/project/domain/messaging-flutter/rules.md
apps/client/** client-app agent-ops/rules/project/domain/client-app/rules.md
docs/**, bin/**, root docs/config workspace-ops agent-ops/rules/project/domain/workspace-ops/rules.md

스킬 라우팅

현재 프로젝트 전용 skill은 없다. 반복 작업이 안정적으로 드러나면 agent-ops/skills/project/<skill-name>/SKILL.md로 추가한다.