67 lines
4 KiB
Markdown
67 lines
4 KiB
Markdown
---
|
|
domain: workspace-ops
|
|
last_rule_review_commit: 8a7115d9c82e15b9f35bcfa019acb4b34962e81f
|
|
last_rule_updated_at: 2026-06-01
|
|
---
|
|
|
|
# workspace-ops
|
|
|
|
## 목적 / 책임
|
|
|
|
워크스페이스 공통 문서, helper command, 루트 수준 설정을 담당한다. 여러 모듈에 걸친 작업 흐름을 연결하되 각 모듈의 내부 책임을 침범하지 않는다.
|
|
|
|
## 포함 경로
|
|
|
|
- `bin/` — root helper entrypoints: `dev`, `test`, `lint`, `build`
|
|
- `docs/` — 여러 모듈에 걸친 제품, migration, 운영 문서
|
|
- `README.md` — workspace overview
|
|
- root `.gitignore`와 루트 수준 설정 파일
|
|
- `agent-roadmap/` — 프로젝트 로드맵의 활성 Phase/Milestone 문서
|
|
- `agent-test/local/` — local 검증 규칙과 도메인별 smoke 시나리오
|
|
- `agent-ops/rules/project/**` — 프로젝트 전용 agent-ops 규칙
|
|
|
|
## 제외 경로
|
|
|
|
- `services/core/` — Mattermost 서버 repository clone 책임
|
|
- `packages/messaging_flutter/` — Flutter push plugin 구현 책임
|
|
- `apps/flutter-test/` — plugin 검증용 테스트 앱 책임
|
|
- `apps/mattermost/` — 원래 Mattermost 앱 repository clone 책임
|
|
- `services/push-proxy/` — Mattermost push-proxy repository clone 책임
|
|
- `agent-ops/rules/common/**`, `agent-ops/skills/common/**` — 공통 framework 파일이며 프로젝트에서 직접 수정하지 않는다.
|
|
- `agent-roadmap/archive/**` — 일반 작업에서는 읽지 않는 과거 완료/폐기 기록
|
|
|
|
## 주요 구성 요소
|
|
|
|
- `bin/test` — Flutter tests와 선택적 Go test 실행
|
|
- `bin/lint` — Flutter analyze와 선택적 Go vet 실행
|
|
- `bin/build` — Flutter web build와 선택적 Go build 실행
|
|
- `bin/dev` — 개발 entrypoint 안내
|
|
- `bin/sync-upstream` — ignored `.upstream/mattermost/` 원본 clone 생성과 fast-forward 갱신
|
|
- `bin/publish-runtime-images` — nexo-owned runtime image build/publish wrapper
|
|
- `docs/runtime-image-validation.md` — runtime image registry, tag, digest evidence 문서
|
|
- `agent-roadmap/current.md` — 활성 Phase와 Milestone 후보 목록
|
|
- `agent-test/local/rules.md` — local 검증 환경의 공통 실행 규칙
|
|
|
|
## 유지할 패턴
|
|
|
|
- root helper script는 모듈별 command를 얇게 묶는 역할로 유지한다.
|
|
- upstream staging helper는 `.upstream/mattermost/` clone 갱신만 담당하고, tracked snapshot target으로 자동 복사하지 않는다.
|
|
- runtime image publish wrapper는 core/push-proxy build와 registry publish를 orchestration하되, 각 서비스의 내부 소스 책임을 가져오지 않는다.
|
|
- 로컬 도구가 없을 때 skip하는 기존 동작을 보존하고, skip된 검증은 작업 보고에 명시한다.
|
|
- 여러 모듈에 걸친 문서는 `docs/`에 두고, 모듈 내부만 해당하는 설명은 해당 모듈 README나 docs에 둔다.
|
|
- 프로젝트 전용 agent-ops 규칙만 수정하고 common 파일은 원본 framework에서 동기화한다.
|
|
- 로드맵과 테스트 규칙 갱신은 공통 skill/router 규칙을 따른다.
|
|
|
|
## 다른 도메인과의 경계
|
|
|
|
- **core-service**: workspace script가 core 검증을 호출할 수 있지만 core 내부 명령 선택은 core 규칙을 따른다.
|
|
- **messaging-flutter**: plugin 검증은 workspace script로 실행할 수 있으나 API/플랫폼 계약은 plugin 도메인이 소유한다.
|
|
- **client-app**: `flutter-test` 검증 앱은 workspace script로 실행할 수 있으나 host behavior는 client 도메인이 소유한다.
|
|
- **mattermost-app**: workspace 문서가 upstream snapshot과 smoke/e2e evidence를 연결할 수 있지만 app 내부 구조와 React Native 앱 정책은 mattermost-app 도메인이 소유한다.
|
|
- **push-proxy-service**: workspace wrapper가 image publish를 호출할 수 있지만 push-proxy server 구현과 Dockerfile 기준은 push-proxy-service 도메인이 소유한다.
|
|
|
|
## 금지 사항
|
|
|
|
- root helper에 모듈 내부 business logic을 넣지 않는다.
|
|
- module-specific 문서를 이유 없이 root docs로 끌어올리지 않는다.
|
|
- `agent-ops` common 파일을 타겟 프로젝트에서 직접 편집하지 않는다.
|