3 KiB
3 KiB
nexo 프로젝트 규칙
응답 언어
- 기본 응답은 한국어로 작성한다.
- 파일명, 명령어, 패키지명, API 이름, 코드 식별자는 원문 그대로 유지한다.
프로젝트 개요
nexo는 메시징 서버, Flutter 클라이언트, Flutter 푸시 알림 패키지를 한 워크스페이스에서 함께 관리하는 프로젝트다.
주요 경계는 다음과 같다.
services/core/— Mattermostv11.4.2기반 메시징 서버 코어, 웹앱, API 문서, compose 환경packages/messaging_flutter/— Mattermost 호환 푸시 알림 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, Mattermost server module - Webapp / API tooling: Node.js, npm workspaces, TypeScript, Redocly
- Local runtime: Docker Compose under
services/core/compose/
작업 원칙
services/core/는 Mattermost upstream fork 성격이 강하므로 제품 특화 변경은 작고 비교 가능하게 유지한다.services/core/UPSTREAM.md의 baseline 정보를 임의로 바꾸지 않는다.- Flutter 플러그인의 public package name은 현재
mattermost_push_plugin이며, 소비 앱과 호환성이 걸려 있으므로 rename은 별도 결정 없이 하지 않는다. - 푸시 알림 처리 책임은
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로 추가한다.