- Rename mobile app directory to client throughout the project - Restructure client app code into feature-based organization - Move code to src/features/workspaces/domain/presentation - Move services to src/integrations/ (mattermost, workspace, proto_socket) - Add app bootstrap and main entry point - Add push notification integration (Mattermost push client/host/plugin) - Add proto socket integration for real-time communication - Add integration tests for push and socket components - Archive old milestone: client-integration-standardization.md - Add new workflow core milestone: roadmap-driven-agent-ops-automation.md - Update agent-ops rules (project, core, mobile, contracts, workspace-ops) - Update roadmap files (ROADMAP.md, current.md, phase PHASE.md files) - Update bin scripts (build, dev, lint, test) - Add test environments documentation - Update contracts notes for Flutter Core API
45 lines
1.8 KiB
Markdown
45 lines
1.8 KiB
Markdown
---
|
|
domain: contracts
|
|
last_rule_review_commit: e3b5dae725db62dd7a47c563abcce557e0557551
|
|
last_rule_updated_at: 2026-05-21
|
|
---
|
|
|
|
# contracts
|
|
|
|
## 목적 / 책임
|
|
|
|
NomadCode 런타임 사이의 공유 계약 도메인이다. API schema, event schema, generated client boundary, compatibility note를 관리한다.
|
|
|
|
## 포함 경로
|
|
|
|
- `packages/contracts/` — OpenAPI/protobuf/schema, generated clients, fixtures, compatibility notes.
|
|
|
|
## 제외 경로
|
|
|
|
- `services/core/internal/http/` — API implementation은 core 도메인이다.
|
|
- `apps/client/lib/` — Flutter client/service code는 mobile 도메인이다.
|
|
- `apps/web/` — [Legacy/Retired] 이전 React/Vite web scaffold 경로는 완전히 제거되어 제외 대상입니다.
|
|
|
|
## 주요 구성 요소
|
|
|
|
- `packages/contracts/README.md` — 현재 contracts 도메인의 역할과 사용 방향.
|
|
|
|
## 유지할 패턴
|
|
|
|
- 계약 변경은 additive를 우선한다.
|
|
- breaking change는 core와 Flutter 앱 반영을 같은 branch에서 조율한다.
|
|
- schema가 추가되면 sample payload나 compatibility note를 함께 둔다.
|
|
- generated client가 생기면 생성 명령과 source schema를 문서화한다.
|
|
|
|
## 다른 도메인과의 경계
|
|
|
|
- **core**: contracts는 API shape의 source-of-truth이고 core는 이를 구현한다.
|
|
- **mobile**: mobile은 contracts를 소비하되 platform behavior는 mobile 도메인에서 다룬다.
|
|
- **web**: [Legacy/Retired] React web 도메인은 완전히 제거되었습니다.
|
|
- **workspace-ops**: contracts 생성/검증 명령이 root script가 되면 workspace-ops와 함께 갱신한다.
|
|
|
|
## 금지 사항
|
|
|
|
- 구현 코드의 임시 type을 contracts로 승격하지 않는다.
|
|
- 실제 소비자가 없는 schema를 과도하게 선행 설계하지 않는다.
|
|
- generated output만 수정하고 source schema를 누락하지 않는다.
|