nexo/agent-ops/rules/project/domain/mattermost-app/rules.md

60 lines
3.5 KiB
Markdown

---
domain: mattermost-app
last_rule_review_commit: 8a7115d9c82e15b9f35bcfa019acb4b34962e81f
last_rule_updated_at: 2026-06-01
---
# mattermost-app
## 목적 / 책임
`apps/mattermost`는 Mattermost mobile 원본 repository clone을 담당한다. nexo 제품 앱으로 재정의하지 않고, runtime 검증과 upstream-followable snapshot 기준을 제공하는 앱 clone으로 유지한다.
## 포함 경로
- `apps/mattermost/` — Mattermost mobile repository snapshot
- `apps/mattermost/app/` — React Native app source
- `apps/mattermost/android/`, `apps/mattermost/ios/` — native mobile app projects
- `apps/mattermost/libraries/`, `apps/mattermost/share_extension/` — bundled mobile support packages and share extension
- `apps/mattermost/test/`, `apps/mattermost/detox/` — app test and e2e tooling
- `apps/mattermost/package.json` — React Native/Expo package metadata
- `apps/mattermost/UPSTREAM.md` — upstream baseline 기록
## 제외 경로
- `packages/messaging_flutter/` — nexo Flutter push plugin 책임
- `apps/flutter-test/` — plugin 검증용 Flutter test host 책임
- `services/core/` — Mattermost server/webapp runtime 책임
- `services/push-proxy/` — Mattermost push-proxy service 책임
- `docs/`, `bin/` — workspace 공통 문서와 command 책임
## 주요 구성 요소
- `apps/mattermost/package.json` — Mattermost Mobile React Native/Expo toolchain 기준
- `apps/mattermost/app/` — mobile application source
- `apps/mattermost/android/`, `apps/mattermost/ios/` — Android/iOS native project 기준
- `apps/mattermost/detox/` — mobile e2e test harness
- `apps/mattermost/UPSTREAM.md` — source repository, branch, snapshot commit 기록
## 유지할 패턴
- upstream branch는 Mattermost mobile `main` 기준으로 추적하고, snapshot commit은 `apps/mattermost/UPSTREAM.md`에 기록한다.
- 이 도메인은 원본 Mattermost 앱 clone으로 유지하며 nexo 제품 앱 UI나 business logic을 추가하지 않는다.
- runtime image 검증에서 이 앱을 사용할 때는 smoke/e2e evidence를 남기고, 앱 내부 제품 방향 변경으로 확장하지 않는다.
- upstream snapshot 반영은 서버나 push-proxy snapshot과 섞지 않고 별도 작업 단위로 다룬다.
- nexo-specific patch가 필요하면 가능한 한 snapshot 밖의 문서, wrapper, 작은 명시 patch로 둔다.
## 다른 도메인과의 경계
- **messaging-flutter**: Flutter plugin API와 native notification implementation은 `packages/messaging_flutter`가 소유하며, Mattermost mobile app의 React Native push 구현을 plugin source of truth로 옮기지 않는다.
- **client-app**: `apps/flutter-test`는 Flutter plugin 검증 host이고, `apps/mattermost`는 upstream Mattermost mobile clone이다.
- **core-service**: server/webapp runtime은 `services/core`가 소유하며, Mattermost app은 해당 runtime에 접속하는 검증 소비자 역할만 한다.
- **push-proxy-service**: push notification proxy server는 `services/push-proxy`가 소유한다.
- **workspace-ops**: workspace script와 docs가 app smoke/e2e 흐름을 호출할 수 있지만 app 내부 구조와 upstream snapshot 정책은 이 도메인이 소유한다.
## 금지 사항
- `apps/mattermost/UPSTREAM.md` baseline을 근거 없이 변경하지 않는다.
- 이 도메인을 nexo 제품 앱 또는 Flutter plugin host로 재정의하지 않는다.
- upstream-owned 파일에 대량 rename, formatting-only churn, 광범위 재배치를 작업 범위 없이 수행하지 않는다.
- generated/build/cache 산출물을 소스 변경처럼 다루지 않는다.