MMX Beta WBS & Milestone
- 문서 성격: 베타 버전 전체 WBS, 마일스톤, 담당 구분의 기준 문서
- 작성자: Codex PM
- 최초 작성: 2026-05-25
- 문서 상태: V0.1
- 운영 원칙: 작은 수정은 댓글과 이 문서 갱신으로 처리하고, 큰 범위 변경만 새 버전 문서로 분기한다.
1. 용어 기준
| 용어 |
의미 |
mmx_player |
mmx_player_PC와 mmx_player_Flutter를 합쳐 부르는 상위 개념 |
mmx_player_PC |
PC/웹 기반 플레이어. 현재 웹 mockup, 검토 화면, 일부 PC 플레이 흐름을 포함 |
mmx_player_Flutter |
Flutter 기반 앱 플레이어. Android/Windows 우선, 이후 확장 |
mmxStudio |
작가가 텍스트, 마우스 조작, 보조 자산 CRUD로 시나리오를 만드는 도구 |
scenarioReader |
텍스트 시나리오 파일을 읽어 JSON/workflow로 변환하고 흐름 검토 화면에 넘기는 기능 |
scenarioPlayer |
JSON 시나리오를 플레이 가능한 상태로 import하고 진행하는 기능 |
scenarioMaker |
mmxStudio에서 시나리오 텍스트 포맷을 생성하는 기능 |
scenarioAssetManager |
단서, 증거, HO, 장소, 캐릭터 등 시나리오 보조 자산 CRUD |
scenarioAsset API |
플레이어와 Studio가 시나리오 자산을 활용하기 위한 API |
수다방 |
텍스트 채팅과 음성 채팅을 합친 플레이 중 커뮤니케이션 기능 |
2. 역할 구분
| 역할 |
담당 |
| Owner |
최종 우선순위, scope 확정, secret/API key 제공, 수동 E2E 판정 |
| Codex PM |
전체 WBS, 기술 검수, backend/player 핵심 흐름, 문서화, 배포 판단 |
| Dex PM |
디자인, mockup, 화면 흐름 제안. 현재 mockup은 https://www.playmmx.com/ 에서 확인 |
| Claude Code |
단일 목적 backend/테스트/리팩터링 작업. 결과는 Codex PM이 검수 후 반영 |
| Cursor |
단일 파일 또는 좁은 UI 구현. 결과는 Codex PM이 검수 후 반영 |
3. 상태 정의
| 상태 |
의미 |
Not Started |
아직 착수하지 않음 |
In Progress |
구현 또는 문서 작업 중 |
Needs Review |
구현은 되었으나 PM 검수 필요 |
Needs Manual Test |
자동 테스트는 통과했으나 owner/실기기/브라우저 확인 필요 |
Blocked |
secret, 환경, 정책, 선행 기능 부족으로 진행 불가 |
Done |
구현, 검증, 문서 반영까지 완료 |
4. 베타 마일스톤
M0 - 한 번 돌아가는 최소 베타
목표: 시나리오를 텍스트로 작성하고, JSON/workflow로 변환하고, 플레이어에서 텍스트 기반으로 완주한다. 수다방은 먼저 텍스트 채팅을 닫고 음성은 뒤따른다.
| WBS |
항목 |
산출물 |
상태 |
담당 |
검증 |
| M0-01 |
scenarioReader |
텍스트 파일 -> JSON/workflow 변환, React Flow 검토 화면 |
In Progress |
Codex PM |
샘플 시나리오 1개 이상 workflow 표시 |
| M0-02 |
workflow review UI |
한국어 시나리오 검토 화면, 노드 상세 패널 |
In Progress |
Codex PM + Dex PM |
분기/엔딩/마치며 흐름 확인 |
| M0-03 |
scenarioPlayer text loop |
JSON import 후 텍스트 기반 플레이 완주 |
In Progress |
Codex PM |
성공/실패 엔딩 도달 테스트 |
| M0-04 |
수다방 텍스트 채팅 |
방 생성/입장/메시지/퇴장/polling |
Needs Manual Test |
Codex PM |
사용자 A/B 수동 E2E |
| M0-05 |
scenarioEditor 최소 루프 |
텍스트 입력/수정 후 workflowViewer로 재검토 |
In Progress |
Codex PM |
수정 -> 다시 파싱 -> 흐름도 반영 |
| M0-06 |
mmx_player 용어/구조 정리 |
PC/Flutter 경계 문서화 |
In Progress |
Codex PM |
WBS 반영 |
| M0-07 |
beta project_document 운영 |
WBS, 업무 대시보드, Task 문서 연결 |
In Progress |
Codex PM |
랜딩에서 접근 가능 |
| M0-08 |
홈페이지 -> Flutter 앱 진입 계약 |
준비중인 방 클릭 시 방 참가, 시나리오 클릭 시 방 만들기 화면 진입 |
Not Started |
Codex PM |
웹/Flutter가 같은 room participant count 표시 |
M1 - 핵심 제작/플레이 검증
목표: 작가 도구와 플레이어가 같은 시나리오 포맷을 공유하고, 보조 자산을 활용한 플레이가 가능해진다.
| WBS |
항목 |
산출물 |
상태 |
담당 |
검증 |
| M1-01 |
scenarioMaker |
텍스트 입력과 마우스 조작으로 시나리오 텍스트 생성 |
Not Started |
Codex PM + Dex PM |
샘플 시나리오 재생성 |
| M1-02 |
scenarioAssetManager |
캐릭터, HO, 단서, 증거, 장소 CRUD |
Not Started |
Codex PM + Dex PM |
자산 등록/수정/삭제 |
| M1-03 |
scenarioAsset API |
플레이어/Studio 공용 asset API |
Not Started |
Codex PM |
API 테스트 |
| M1-04 |
mmx_player_Flutter asset play |
Flutter에서 asset 포함 플레이 |
Not Started |
Codex PM |
단서/HO 화면 확인 |
| M1-05 |
수다방 음성 1차 |
Agora token, Windows RTC, mute/leave |
Blocked |
Codex PM |
secret 제공 후 실기기 테스트 |
| M1-06 |
디자인 시스템 1차 |
mockup 기반 주요 화면 가이드 |
In Progress |
Dex PM |
https://www.playmmx.com/ 기준 검토 |
M2 - 서비스 베타
목표: 회원, 방 운영, Studio 저장, 배포 안정화가 연결된 베타 서비스 형태로 만든다.
| WBS |
항목 |
산출물 |
상태 |
담당 |
검증 |
| M2-01 |
회원/로그인 정책 |
계정, 닉네임, 권한 정책 |
Not Started |
Codex PM |
회원 기반 E2E |
| M2-02 |
방/플레이 세션 정책 |
room/session/player lifecycle |
Not Started |
Codex PM |
끊김/재입장 테스트 |
| M2-03 |
Studio 저장/불러오기 |
시나리오 저장소 |
Not Started |
Codex PM |
작성 후 재열기 |
| M2-04 |
운영/관리자 |
신고, 공지, 운영 관리 |
Not Started |
Dex PM + Codex PM |
admin flow |
| M2-05 |
배포/모니터링 |
Cloud Run, release, error log |
In Progress |
Codex PM |
release history |
5. 현재 최우선 순위
- 수다방 텍스트 채팅 수동 E2E 완료
- scenarioEditor + workflowViewer 왕복 루프를 M0 최소 기능으로 구현
- scenarioReader/workflow review UI를 실제 MMX 시나리오 포맷 기준으로 안정화
- scenarioPlayer가 텍스트 기반으로 한 시나리오를 완주
- mmxStudio는 scenarioMaker보다 assetManager/포맷 합의가 먼저 필요한지 재판정
- Dex PM mockup을 WBS 항목과 연결
- 홈페이지의 준비중인 방/시나리오 리스트에서 Flutter 앱으로 넘어가는 launch 계약과 room count 동기화 누락 방지
7. M0 scenarioEditor 결정
2026-05-25 owner 협의로 아래 결정을 M0 기준으로 확정한다.
scenarioEditor는 M0 필수다.
- M0의 editor는 완성형 작가툴이 아니라 텍스트 입력/수정이 가능한 최소 editor다.
- 최소 루프는
scenarioEditor -> parse -> workflowViewer -> 수정 -> 재검토다.
- 도움말 패널은 M1이 기본이나, M0에서는 우측 또는 하단에 간단한 작성 규칙/오류 표시 패널을 둘 수 있다.
- workflowViewer에서 잘못된 흐름을 찾고 다시 scenarioEditor에서 수정/보완하는 기능은 M0 필수다.
8. 2026-05-25 진행 반영
- Claude Code에는 수다방 텍스트 채팅의 host 퇴장/방 종료 UX 보강을 지시했다.
- Codex PM은
studioPOC/workflows 화면에 M0용 scenarioEditor 최소 루프를 추가했다.
- 현재 editor 루프는 원문 textarea, 다시 파싱 버튼, 간단 도움말, workflowViewer 반영으로 구성된다.
- 저장, 버전관리, 자동완성, 본격 도움말 패널은 M0 이후로 둔다.
9. 홈페이지 -> Flutter 앱 진입 계약
2026-05-25 owner 지시로 아래 항목을 M0 누락 방지 대상으로 추가한다.
- 홈페이지에는
A: 시나리오 플레이 준비중인 방과 B: 시나리오 리스트가 표시된다.
- 로그인 사용자가 A를 클릭하면 Flutter 앱이 열리고 해당 방 참가 화면으로 바로 이동해야 한다.
- 로그인 사용자가 B를 클릭하면 Flutter 앱이 열리고 해당 시나리오의 방 만들기 화면으로 이동해야 한다.
- 특히 A의 경우 웹페이지와 Flutter 앱의 방 참가 인원은 같은 서버 room/session participant 상태를 기준으로 동기화되어야 한다.
- 관련 결정 문서:
/project_document/view/decisions/APP_LAUNCH_AND_ROOM_SYNC_001.md
6. Owner가 직접 관리하는 방법
- 이 문서에 댓글로 우선순위 변경, 보류, 완료 판정을 남긴다.
- 상태 변경이 크면 Codex PM이 표를 갱신한다.
- 작은 의견은 댓글로 유지하고, 문서 본문은 기준이 바뀔 때만 수정한다.
- Task가 실제로 끝났다고 보려면
구현, 검증, project_document 반영이 모두 있어야 한다.