From abffc2b2c2a459626cb3af810436a4cdc4c86aee Mon Sep 17 00:00:00 2001 From: toki Date: Thu, 21 May 2026 18:14:34 +0900 Subject: [PATCH] =?UTF-8?q?=EB=AC=B8=EC=84=9C:=20=EB=A1=9C=EB=93=9C?= =?UTF-8?q?=EB=A7=B5=20=EB=AC=B8=EC=84=9C=EB=A5=BC=20=ED=95=9C=EA=B5=AD?= =?UTF-8?q?=EC=96=B4=EB=A1=9C=20=EC=A0=95=EB=A6=AC=ED=95=9C=EB=8B=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 프로젝트의 한국어 응답 기준에 맞춰 로드맵 컨텍스트도 같은 언어로 유지한다. --- agent-ops/roadmap/ROADMAP.md | 70 +++++++++---------- agent-ops/roadmap/current.md | 4 +- .../milestones/M01-protocol-baseline.md | 40 +++++------ .../M02-available-language-parity.md | 42 +++++------ .../milestones/M03-continuous-verification.md | 48 ++++++------- .../roadmap/milestones/M04-csharp-port.md | 44 ++++++------ .../roadmap/milestones/M05-swift-port.md | 44 ++++++------ .../milestones/M06-release-readiness.md | 38 +++++----- 8 files changed, 165 insertions(+), 165 deletions(-) diff --git a/agent-ops/roadmap/ROADMAP.md b/agent-ops/roadmap/ROADMAP.md index f789e1c..9576f3c 100644 --- a/agent-ops/roadmap/ROADMAP.md +++ b/agent-ops/roadmap/ROADMAP.md @@ -1,54 +1,54 @@ -# Proto Socket Roadmap +# Proto Socket 로드맵 -## Overall Goal +## 전체 목표 -Proto Socket aims to provide a thin, stable, protocol-first socket communication library that behaves consistently across languages and platforms. The shared contract is Protocol Buffers serialization, TCP/WebSocket binary framing, type-based routing, request-response correlation, and built-in heartbeat. +Proto Socket은 여러 언어와 플랫폼에서 일관되게 동작하는 얇고 안정적인 protocol-first 소켓 통신 라이브러리를 제공하는 것을 목표로 한다. 공유 계약은 Protocol Buffers 직렬화, TCP/WebSocket 바이너리 프레이밍, 타입 기반 라우팅, 요청-응답 상관관계, 내장 하트비트다. -The core should stay small: application semantics such as auth, sessions, chat, game rules, room logic, and agent workflow belong above this protocol layer. +코어는 작게 유지한다. 인증, 세션, 채팅, 게임 규칙, 룸 로직, 에이전트 워크플로 같은 애플리케이션 의미는 이 프로토콜 계층 위에서 다룬다. -## Current Position +## 현재 위치 -- Active Phase: Phase 2 - Verification and compatibility -- Active Milestone: M03 Continuous Verification +- Active Phase: Phase 2 - 검증과 호환성 +- Active Milestone: M03 지속 검증 - Active Milestone File: agent-ops/roadmap/milestones/M03-continuous-verification.md -## Migration Notes +## 마이그레이션 메모 -This roadmap migrates the roadmap-like planning that previously lived in top-level documentation: +이 로드맵은 기존 상위 문서에 흩어져 있던 로드맵성 계획을 분리한 것이다. -- `README.md` implementation status table: summarized in the Milestone Index as available and planned language work. -- `README.md` roadmap direction paragraph: migrated into the dependency and native-platform direction in M02, M04, and M05. -- `README.md` Jenkins planning note: migrated into M03 Continuous Verification. -- `PORTING_GUIDE.md` C# and Swift guidance: linked to planned port milestones M04 and M05. +- `README.md` 구현 상태 표: 사용 가능/계획 언어 작업으로 마일스톤 인덱스에 요약했다. +- `README.md` 로드맵 방향 문단: M02, M04, M05의 의존성 및 native platform 방향으로 옮겼다. +- `README.md` Jenkins 계획 메모: M03 지속 검증으로 옮겼다. +- `PORTING_GUIDE.md` C# 및 Swift 가이드: 계획된 포팅 마일스톤 M04, M05에 연결했다. -## Phase Overview +## Phase 개요 -| Phase | Status | Goal | +| Phase | Status | 목표 | |-------|--------|------| -| Phase 1 - Protocol foundation | Done | Define protocol version `0.1`, wire format, versioning policy, canonical proto source, and reference implementation patterns. | -| Phase 2 - Verification and compatibility | Active | Keep available implementations aligned through same-language tests, cross-language tests, proto sync checks, and continuous verification. | -| Phase 3 - Remaining native platform ports | Planned | Add C# and Swift implementations while preserving the protocol contract and native-first runtime direction. | -| Phase 4 - Release readiness | Planned | Prepare language packages, release documentation, and compatibility statements for external consumption. | +| Phase 1 - 프로토콜 기반 | Done | 프로토콜 버전 `0.1`, 와이어 포맷, 버전 정책, canonical proto 원본, 레퍼런스 구현 패턴을 정의한다. | +| Phase 2 - 검증과 호환성 | Active | 동일 언어 테스트, 크로스 언어 테스트, proto 동기화 검사, 지속 검증으로 사용 가능한 구현체들을 정렬한다. | +| Phase 3 - 남은 native platform 포팅 | Planned | 프로토콜 계약과 native-first 런타임 방향을 유지하면서 C# 및 Swift 구현을 추가한다. | +| Phase 4 - 릴리즈 준비 | Planned | 외부 사용을 위한 언어 패키지, 릴리즈 문서, 호환성 설명을 준비한다. | -## Milestone Index +## 마일스톤 인덱스 -| Milestone | Phase | Status | File | Summary | +| Milestone | Phase | Status | File | 요약 | |-----------|-------|--------|------|---------| -| M01 Protocol Baseline | Phase 1 | Done | agent-ops/roadmap/milestones/M01-protocol-baseline.md | Protocol `0.1`, canonical proto, framing, heartbeat, nonce, and versioning policy are documented. | -| M02 Available Language Parity | Phase 2 | Done | agent-ops/roadmap/milestones/M02-available-language-parity.md | Dart, Go, Kotlin, Python, and TypeScript are listed as available and have same-language and cross-language test entry points. | -| M03 Continuous Verification | Phase 2 | Active | agent-ops/roadmap/milestones/M03-continuous-verification.md | Automate the supported-language and cross-language test matrix, with Jenkins currently named as the expected external runner. | -| M04 C# Unity/.NET Port | Phase 3 | Planned | agent-ops/roadmap/milestones/M04-csharp-port.md | Add a C# implementation for Unity and .NET using native runtime patterns where possible. | -| M05 Swift Apple Platform Port | Phase 3 | Planned | agent-ops/roadmap/milestones/M05-swift-port.md | Add a Swift implementation for iOS and macOS using Swift concurrency and Apple-native transport APIs where possible. | -| M06 Release Readiness | Phase 4 | Planned | agent-ops/roadmap/milestones/M06-release-readiness.md | Prepare package publication, compatibility notes, and release checks per language. | +| M01 프로토콜 기준선 | Phase 1 | Done | agent-ops/roadmap/milestones/M01-protocol-baseline.md | 프로토콜 `0.1`, canonical proto, 프레이밍, 하트비트, nonce, 버전 정책을 문서화했다. | +| M02 사용 가능 언어 parity | Phase 2 | Done | agent-ops/roadmap/milestones/M02-available-language-parity.md | Dart, Go, Kotlin, Python, TypeScript가 사용 가능 상태이며 동일 언어 및 크로스 언어 테스트 진입점이 있다. | +| M03 지속 검증 | Phase 2 | Active | agent-ops/roadmap/milestones/M03-continuous-verification.md | 지원 언어 및 크로스 언어 테스트 매트릭스를 자동화한다. 현재 외부 실행 후보는 Jenkins다. | +| M04 C# Unity/.NET 포트 | Phase 3 | Planned | agent-ops/roadmap/milestones/M04-csharp-port.md | 가능한 곳에서는 native 런타임 패턴을 사용해 Unity와 .NET용 C# 구현을 추가한다. | +| M05 Swift Apple 플랫폼 포트 | Phase 3 | Planned | agent-ops/roadmap/milestones/M05-swift-port.md | 가능한 곳에서는 Swift concurrency와 Apple native transport API를 사용해 iOS/macOS용 Swift 구현을 추가한다. | +| M06 릴리즈 준비 | Phase 4 | Planned | agent-ops/roadmap/milestones/M06-release-readiness.md | 언어별 패키지 배포, 호환성 메모, 릴리즈 검증을 준비한다. | -## Loading Policy +## 로딩 정책 -- General implementation work should read `agent-ops/roadmap/current.md` and the Active Milestone file only. -- Read this full `ROADMAP.md` only for roadmap creation, roadmap updates, Phase transitions, Milestone additions, or Milestone restructuring. -- If a requested task conflicts with the Active Milestone Goal or Non-Goals, pause and confirm direction before implementing. +- 일반 구현 작업은 `agent-ops/roadmap/current.md`와 Active Milestone 파일만 읽는다. +- 전체 `ROADMAP.md`는 로드맵 생성/갱신, Phase 전환, Milestone 추가, Milestone 재구성 요청에서만 읽는다. +- 요청된 작업이 Active Milestone의 Goal 또는 Non-Goals와 충돌하면 구현 전에 멈추고 방향을 확인한다. -## Open Questions +## 확인 필요 -- Active Milestone is inferred from the existing README note that Jenkins is planned for full supported-language and cross-language verification. -- The order between C# and Swift may change if product priorities shift. -- Release target registries and package publishing order are not yet confirmed. +- Active Milestone은 전체 지원 언어 및 크로스 언어 검증에 Jenkins를 계획했던 기존 README 메모에서 추론했다. +- 제품 우선순위가 바뀌면 C#과 Swift의 순서는 달라질 수 있다. +- 릴리즈 대상 registry와 패키지 배포 순서는 아직 확정되지 않았다. diff --git a/agent-ops/roadmap/current.md b/agent-ops/roadmap/current.md index 8712d6a..309e79c 100644 --- a/agent-ops/roadmap/current.md +++ b/agent-ops/roadmap/current.md @@ -1,5 +1,5 @@ # Current Roadmap Context -- Active Phase: Phase 2 - Verification and compatibility -- Active Milestone: M03 Continuous Verification +- Active Phase: Phase 2 - 검증과 호환성 +- Active Milestone: M03 지속 검증 - Active Milestone File: agent-ops/roadmap/milestones/M03-continuous-verification.md diff --git a/agent-ops/roadmap/milestones/M01-protocol-baseline.md b/agent-ops/roadmap/milestones/M01-protocol-baseline.md index 0f29702..af21e10 100644 --- a/agent-ops/roadmap/milestones/M01-protocol-baseline.md +++ b/agent-ops/roadmap/milestones/M01-protocol-baseline.md @@ -1,12 +1,12 @@ -# M01 Protocol Baseline +# M01 프로토콜 기준선 ## Goal -Establish the shared Proto Socket protocol contract so every implementation can interoperate without embedding application-specific behavior into the core. +각 구현체가 애플리케이션별 동작을 코어에 넣지 않고도 상호 운용될 수 있도록 Proto Socket의 공유 프로토콜 계약을 확립한다. ## Phase -Phase 1 - Protocol foundation +Phase 1 - 프로토콜 기반 ## Status @@ -14,32 +14,32 @@ Done ## Scope -- Document TCP 4-byte big-endian length-prefixed framing. -- Document WebSocket/WSS binary-frame transport. -- Define `PacketBase`, `typeName`, `nonce`, `responseNonce`, and `HeartBeat` behavior. -- Define protocol/package version separation. -- Treat `proto/message_common.proto` as the canonical proto source. +- TCP 4바이트 빅엔디안 길이 프리픽스 프레이밍을 문서화한다. +- WebSocket/WSS 바이너리 프레임 전송을 문서화한다. +- `PacketBase`, `typeName`, `nonce`, `responseNonce`, `HeartBeat` 동작을 정의한다. +- 프로토콜 버전과 패키지 버전의 분리 정책을 정의한다. +- `proto/message_common.proto`를 canonical proto 원본으로 둔다. ## Required Features -- [x] Protocol version `0.1` documented in `PROTOCOL.md` and `VERSIONING.md`. -- [x] Canonical proto source documented as `proto/message_common.proto`. -- [x] TCP and WebSocket wire formats documented. -- [x] Heartbeat lifecycle and request-response correlation documented. -- [x] Breaking and non-breaking protocol change policy documented. +- [x] 프로토콜 버전 `0.1`을 `PROTOCOL.md`와 `VERSIONING.md`에 문서화한다. +- [x] Canonical proto 원본이 `proto/message_common.proto`임을 문서화한다. +- [x] TCP 및 WebSocket 와이어 포맷을 문서화한다. +- [x] 하트비트 생명주기와 요청-응답 상관관계를 문서화한다. +- [x] breaking / non-breaking 프로토콜 변경 정책을 문서화한다. ## Success Criteria -- Implementers can build a conforming language port from `PROTOCOL.md`, `VERSIONING.md`, and `PORTING_GUIDE.md`. -- Protocol-level changes have an explicit compatibility review path. -- Generated language proto copies can be checked against the canonical schema. +- 구현자는 `PROTOCOL.md`, `VERSIONING.md`, `PORTING_GUIDE.md`를 기준으로 호환되는 언어 포트를 만들 수 있다. +- 프로토콜 수준 변경에는 명시적인 호환성 검토 경로가 있다. +- 생성된 언어별 proto 사본은 canonical schema와 대조할 수 있다. ## Non-Goals -- Define application-level auth, session, chat, game, room, or agent workflow semantics. -- Publish language packages. -- Add new transport families beyond TCP/TLS and WebSocket/WSS. +- 애플리케이션 수준 인증, 세션, 채팅, 게임, 룸, 에이전트 워크플로 의미를 정의하지 않는다. +- 언어 패키지를 배포하지 않는다. +- TCP/TLS 및 WebSocket/WSS 외의 새 transport 계열을 추가하지 않는다. ## Context for Work -Use `PROTOCOL.md` as the wire-format source of truth and `VERSIONING.md` for compatibility policy. If proto schemas change, regenerate bindings and run `tools/check_proto_sync.sh`. +와이어 포맷의 기준 문서는 `PROTOCOL.md`, 호환성 정책의 기준 문서는 `VERSIONING.md`다. Proto schema가 바뀌면 binding을 재생성하고 `tools/check_proto_sync.sh`를 실행한다. diff --git a/agent-ops/roadmap/milestones/M02-available-language-parity.md b/agent-ops/roadmap/milestones/M02-available-language-parity.md index 1c0ff26..602f027 100644 --- a/agent-ops/roadmap/milestones/M02-available-language-parity.md +++ b/agent-ops/roadmap/milestones/M02-available-language-parity.md @@ -1,12 +1,12 @@ -# M02 Available Language Parity +# M02 사용 가능 언어 parity ## Goal -Bring the checked-in available implementations into a common protocol surface with same-language tests and cross-language test entry points. +저장소에 포함된 사용 가능 구현체들을 동일 언어 테스트와 크로스 언어 테스트 진입점을 갖춘 공통 프로토콜 표면으로 맞춘다. ## Phase -Phase 2 - Verification and compatibility +Phase 2 - 검증과 호환성 ## Status @@ -14,33 +14,33 @@ Done ## Scope -- Maintain the available implementation set listed in `README.md` and `PROTOCOL.md`. -- Keep Dart, Go, Kotlin, Python, and TypeScript aligned with protocol version `0.1`. -- Keep runtime dependencies native-first and narrowly scoped outside protobuf. -- Keep cross-language test runners available for the supported language matrix. +- `README.md`와 `PROTOCOL.md`에 표시된 사용 가능 구현체 목록을 유지한다. +- Dart, Go, Kotlin, Python, TypeScript를 프로토콜 버전 `0.1`에 맞춘다. +- protobuf 외 런타임 의존성은 native-first이며 좁은 범위로 유지한다. +- 지원 언어 매트릭스를 위한 크로스 언어 테스트 runner를 유지한다. ## Required Features -- [x] Dart implementation available under `dart/`. -- [x] Go implementation available under `go/`. -- [x] Kotlin implementation available under `kotlin/`. -- [x] Python implementation available under `python/`. -- [x] TypeScript implementation available under `typescript/`. -- [x] Cross-language test entry points exist across the available implementations. -- [x] Dependency direction documented: protobuf is the core protocol dependency; other runtime dependencies must be native-first, protocol-relevant, and minimal. +- [x] Dart 구현체가 `dart/`에 있다. +- [x] Go 구현체가 `go/`에 있다. +- [x] Kotlin 구현체가 `kotlin/`에 있다. +- [x] Python 구현체가 `python/`에 있다. +- [x] TypeScript 구현체가 `typescript/`에 있다. +- [x] 사용 가능 구현체 간 크로스 언어 테스트 진입점이 있다. +- [x] 의존성 방향을 문서화한다. protobuf는 핵심 프로토콜 의존성이며, 다른 런타임 의존성은 native-first, protocol-relevant, minimal이어야 한다. ## Success Criteria -- A maintainer can identify available and planned implementations from top-level docs. -- New language work can start from `PORTING_GUIDE.md` and the project crosstest templates. -- Available implementations preserve the documented protocol contract. +- 유지보수자는 상위 문서에서 사용 가능 구현체와 계획 구현체를 식별할 수 있다. +- 새 언어 작업은 `PORTING_GUIDE.md`와 프로젝트 crosstest 템플릿에서 시작할 수 있다. +- 사용 가능 구현체들은 문서화된 프로토콜 계약을 유지한다. ## Non-Goals -- Mark C# or Swift as available before implementation, same-language tests, and cross-language tests pass. -- Introduce broad frameworks or runtime layers only to cover narrow protocol needs. -- Expand protocol semantics beyond the transport-level contract. +- 구현, 동일 언어 테스트, 크로스 언어 테스트가 통과하기 전에 C# 또는 Swift를 Available로 표시하지 않는다. +- 좁은 프로토콜 요구를 처리하기 위해 넓은 framework나 runtime layer를 도입하지 않는다. +- transport-level 계약을 넘어 프로토콜 의미를 확장하지 않는다. ## Context for Work -When adding or changing language implementations, use `PORTING_GUIDE.md` and the project skill `agent-ops/skills/project/add-proto-socket-crosstest-language/SKILL.md`. Before changing protocol files, read the protocol domain rule. +언어 구현을 추가하거나 변경할 때는 `PORTING_GUIDE.md`와 프로젝트 스킬 `agent-ops/skills/project/add-proto-socket-crosstest-language/SKILL.md`를 사용한다. 프로토콜 파일을 변경하기 전에는 protocol domain rule을 읽는다. diff --git a/agent-ops/roadmap/milestones/M03-continuous-verification.md b/agent-ops/roadmap/milestones/M03-continuous-verification.md index 0695982..d4ca06e 100644 --- a/agent-ops/roadmap/milestones/M03-continuous-verification.md +++ b/agent-ops/roadmap/milestones/M03-continuous-verification.md @@ -1,12 +1,12 @@ -# M03 Continuous Verification +# M03 지속 검증 ## Goal -Automate confidence for all available implementations by running same-language tests, cross-language tests, and proto sync checks in an external CI runner. +외부 CI runner에서 동일 언어 테스트, 크로스 언어 테스트, proto 동기화 검사를 실행해 모든 사용 가능 구현체에 대한 신뢰도를 자동화한다. ## Phase -Phase 2 - Verification and compatibility +Phase 2 - 검증과 호환성 ## Status @@ -14,36 +14,36 @@ Active ## Scope -- Turn the README test command matrix into a repeatable CI workflow. -- Include Dart, Go, Kotlin, Python, and TypeScript same-language tests. -- Include the available cross-language test runners. -- Include proto synchronization checks when proto files change. -- Keep the workflow aligned with the existing local commands and project test-matrix skill. +- README의 테스트 명령 매트릭스를 반복 가능한 CI workflow로 만든다. +- Dart, Go, Kotlin, Python, TypeScript 동일 언어 테스트를 포함한다. +- 사용 가능한 크로스 언어 테스트 runner를 포함한다. +- proto 파일 변경 시 proto 동기화 검사를 포함한다. +- 기존 로컬 명령 및 프로젝트 test-matrix 스킬과 workflow를 맞춘다. ## Required Features -- [ ] Confirm the external CI entry point. The migrated roadmap context keeps Jenkins as the current candidate until changed. -- [ ] Run Dart unit tests. -- [ ] Run Go unit tests. -- [ ] Run Kotlin unit tests. -- [ ] Run Python unit tests. -- [ ] Run TypeScript checks and unit tests. -- [ ] Run available cross-language checks across Dart, Go, Kotlin, Python, and TypeScript. -- [ ] Run `tools/check_proto_sync.sh` when proto bindings may be affected. -- [ ] Document how to inspect failures and rerun the matrix locally. +- [ ] 외부 CI 진입점을 확정한다. 변경 전까지는 마이그레이션된 로드맵 맥락상 Jenkins를 현재 후보로 유지한다. +- [ ] Dart unit test를 실행한다. +- [ ] Go unit test를 실행한다. +- [ ] Kotlin unit test를 실행한다. +- [ ] Python unit test를 실행한다. +- [ ] TypeScript check와 unit test를 실행한다. +- [ ] Dart, Go, Kotlin, Python, TypeScript 간 사용 가능한 크로스 언어 검사를 실행한다. +- [ ] Proto binding에 영향이 있을 때 `tools/check_proto_sync.sh`를 실행한다. +- [ ] 실패를 확인하고 매트릭스를 로컬에서 다시 실행하는 방법을 문서화한다. ## Success Criteria -- A single CI job or pipeline can validate the full supported-language and cross-language matrix. -- CI failures identify the failing language pair or same-language package clearly. -- The local commands in `README.md` remain consistent with the automated workflow. +- 단일 CI job 또는 pipeline이 전체 지원 언어 및 크로스 언어 매트릭스를 검증할 수 있다. +- CI 실패가 실패한 언어 쌍 또는 동일 언어 package를 명확히 식별한다. +- `README.md`의 로컬 명령이 자동화 workflow와 일치한다. ## Non-Goals -- Add C# or Swift implementation work in this milestone. -- Change protocol behavior or package APIs for the sake of CI convenience. -- Require every normal development task to read the full roadmap. +- 이 마일스톤에서 C# 또는 Swift 구현 작업을 추가하지 않는다. +- CI 편의를 위해 프로토콜 동작이나 package API를 변경하지 않는다. +- 모든 일반 개발 작업에서 전체 로드맵을 읽도록 요구하지 않는다. ## Context for Work -Use `agent-ops/skills/project/run-proto-socket-test-matrix/SKILL.md` and `agent-ops/skills/project/run-proto-socket-test-matrix/scripts/run_matrix.sh` as the closest existing automation context. Treat Jenkins as the current documented candidate unless the user chooses another runner. +가장 가까운 기존 자동화 맥락으로 `agent-ops/skills/project/run-proto-socket-test-matrix/SKILL.md`와 `agent-ops/skills/project/run-proto-socket-test-matrix/scripts/run_matrix.sh`를 사용한다. 사용자가 다른 runner를 선택하기 전까지 Jenkins를 현재 문서화된 후보로 본다. diff --git a/agent-ops/roadmap/milestones/M04-csharp-port.md b/agent-ops/roadmap/milestones/M04-csharp-port.md index 4eec293..cad5185 100644 --- a/agent-ops/roadmap/milestones/M04-csharp-port.md +++ b/agent-ops/roadmap/milestones/M04-csharp-port.md @@ -1,12 +1,12 @@ -# M04 C# Unity/.NET Port +# M04 C# Unity/.NET 포트 ## Goal -Add a C# implementation that supports Unity and .NET consumers while preserving the protocol `0.1` contract and native-first runtime direction. +프로토콜 `0.1` 계약과 native-first 런타임 방향을 유지하면서 Unity 및 .NET 소비자를 지원하는 C# 구현을 추가한다. ## Phase -Phase 3 - Remaining native platform ports +Phase 3 - 남은 native platform 포팅 ## Status @@ -14,34 +14,34 @@ Planned ## Scope -- Implement the core transport abstraction, communicator, nonce handling, request-response correlation, heartbeat, and close-once behavior. -- Implement TCP/TLS and WebSocket/WSS support where practical for the target runtime. -- Add same-language tests and cross-language tests before marking the implementation available. -- Document any non-protobuf runtime dependency and why native APIs are insufficient. +- 핵심 transport 추상화, communicator, nonce 처리, 요청-응답 상관관계, 하트비트, close-once 동작을 구현한다. +- 대상 런타임에서 실용적인 범위로 TCP/TLS 및 WebSocket/WSS 지원을 구현한다. +- 구현체를 Available로 표시하기 전에 동일 언어 테스트와 크로스 언어 테스트를 추가한다. +- protobuf 외 런타임 의존성이 있다면 native API가 충분하지 않은 이유를 문서화한다. ## Required Features -- [ ] Choose supported .NET and Unity version targets. -- [ ] Generate or maintain C# protobuf bindings from the canonical schema. -- [ ] Implement `ITransport` and communicator core. -- [ ] Implement TCP/TLS client and server support. -- [ ] Implement WebSocket/WSS support with a focused dependency only if native support is insufficient. -- [ ] Add same-language tests. -- [ ] Add cross-language test runners. -- [ ] Update top-level implementation status only after tests pass. +- [ ] 지원할 .NET 및 Unity version target을 선택한다. +- [ ] Canonical schema에서 C# protobuf binding을 생성하거나 유지한다. +- [ ] `ITransport`와 communicator core를 구현한다. +- [ ] TCP/TLS client와 server 지원을 구현한다. +- [ ] Native 지원이 충분하지 않은 경우에만 focused dependency로 WebSocket/WSS 지원을 구현한다. +- [ ] 동일 언어 테스트를 추가한다. +- [ ] 크로스 언어 테스트 runner를 추가한다. +- [ ] 테스트 통과 후에만 상위 구현 상태를 갱신한다. ## Success Criteria -- C# peers interoperate with at least one available implementation through the documented protocol. -- C# implementation follows `PORTING_GUIDE.md` and keeps Unity main-thread concerns outside the protocol core. -- Runtime dependency choices are documented and protocol-relevant. +- C# peer가 문서화된 프로토콜을 통해 최소 하나의 사용 가능 구현체와 상호 운용된다. +- C# 구현체는 `PORTING_GUIDE.md`를 따르며 Unity main-thread concern을 프로토콜 core 밖에 둔다. +- 런타임 의존성 선택은 문서화되어 있고 protocol-relevant하다. ## Non-Goals -- Add Unity-specific gameplay, room, auth, session, or chat semantics. -- Change the protocol to accommodate C#-specific APIs. -- Mark C# as available without passing same-language and cross-language checks. +- Unity 전용 gameplay, room, auth, session, chat 의미를 추가하지 않는다. +- C# 전용 API에 맞추기 위해 프로토콜을 변경하지 않는다. +- 동일 언어 및 크로스 언어 검사를 통과하지 않은 상태에서 C#을 Available로 표시하지 않는다. ## Context for Work -Use the C# section of `PORTING_GUIDE.md` before implementation. Reference Go for concurrency and close-once patterns, and Dart for public API shape and parser map examples. +구현 전 `PORTING_GUIDE.md`의 C# 섹션을 사용한다. 동시성과 close-once 패턴은 Go를, public API 형태와 parser map 예시는 Dart를 참고한다. diff --git a/agent-ops/roadmap/milestones/M05-swift-port.md b/agent-ops/roadmap/milestones/M05-swift-port.md index bc96493..2d85cdd 100644 --- a/agent-ops/roadmap/milestones/M05-swift-port.md +++ b/agent-ops/roadmap/milestones/M05-swift-port.md @@ -1,12 +1,12 @@ -# M05 Swift Apple Platform Port +# M05 Swift Apple 플랫폼 포트 ## Goal -Add a Swift implementation for iOS and macOS while preserving the protocol `0.1` contract and Apple-native runtime direction. +프로토콜 `0.1` 계약과 Apple-native 런타임 방향을 유지하면서 iOS 및 macOS용 Swift 구현을 추가한다. ## Phase -Phase 3 - Remaining native platform ports +Phase 3 - 남은 native platform 포팅 ## Status @@ -14,34 +14,34 @@ Planned ## Scope -- Implement the core transport abstraction, communicator, nonce handling, request-response correlation, heartbeat, and close-once behavior. -- Use Swift concurrency, actors, `URLSessionWebSocketTask`, and Apple platform APIs where practical. -- Add same-language tests and cross-language tests before marking the implementation available. -- Document any non-protobuf runtime dependency and why native APIs are insufficient. +- 핵심 transport 추상화, communicator, nonce 처리, 요청-응답 상관관계, 하트비트, close-once 동작을 구현한다. +- 실용적인 곳에서는 Swift concurrency, actor, `URLSessionWebSocketTask`, Apple platform API를 사용한다. +- 구현체를 Available로 표시하기 전에 동일 언어 테스트와 크로스 언어 테스트를 추가한다. +- protobuf 외 런타임 의존성이 있다면 native API가 충분하지 않은 이유를 문서화한다. ## Required Features -- [ ] Choose supported Swift and Apple platform targets. -- [ ] Generate Swift protobuf bindings from the canonical schema. -- [ ] Implement transport and communicator core. -- [ ] Implement TCP/TLS support. -- [ ] Implement WebSocket/WSS support. -- [ ] Add same-language tests. -- [ ] Add cross-language test runners. -- [ ] Update top-level implementation status only after tests pass. +- [ ] 지원할 Swift 및 Apple platform target을 선택한다. +- [ ] Canonical schema에서 Swift protobuf binding을 생성한다. +- [ ] Transport와 communicator core를 구현한다. +- [ ] TCP/TLS 지원을 구현한다. +- [ ] WebSocket/WSS 지원을 구현한다. +- [ ] 동일 언어 테스트를 추가한다. +- [ ] 크로스 언어 테스트 runner를 추가한다. +- [ ] 테스트 통과 후에만 상위 구현 상태를 갱신한다. ## Success Criteria -- Swift peers interoperate with at least one available implementation through the documented protocol. -- Swift implementation follows `PORTING_GUIDE.md` and keeps platform UI/threading concerns outside the protocol core. -- Runtime dependency choices are documented and protocol-relevant. +- Swift peer가 문서화된 프로토콜을 통해 최소 하나의 사용 가능 구현체와 상호 운용된다. +- Swift 구현체는 `PORTING_GUIDE.md`를 따르며 platform UI/threading concern을 프로토콜 core 밖에 둔다. +- 런타임 의존성 선택은 문서화되어 있고 protocol-relevant하다. ## Non-Goals -- Add app-specific auth, session, chat, game, or Apple UI abstractions. -- Change the protocol to accommodate Swift-specific APIs. -- Mark Swift as available without passing same-language and cross-language checks. +- 앱 전용 auth, session, chat, game, Apple UI abstraction을 추가하지 않는다. +- Swift 전용 API에 맞추기 위해 프로토콜을 변경하지 않는다. +- 동일 언어 및 크로스 언어 검사를 통과하지 않은 상태에서 Swift를 Available로 표시하지 않는다. ## Context for Work -Use the Swift section of `PORTING_GUIDE.md` before implementation. Prefer actor isolation and Swift concurrency for shared state and cancellation behavior where it fits the protocol core. +구현 전 `PORTING_GUIDE.md`의 Swift 섹션을 사용한다. 공유 상태와 cancellation 동작이 프로토콜 core에 맞는 곳에서는 actor isolation과 Swift concurrency를 우선한다. diff --git a/agent-ops/roadmap/milestones/M06-release-readiness.md b/agent-ops/roadmap/milestones/M06-release-readiness.md index 712e1ca..54ef2fb 100644 --- a/agent-ops/roadmap/milestones/M06-release-readiness.md +++ b/agent-ops/roadmap/milestones/M06-release-readiness.md @@ -1,12 +1,12 @@ -# M06 Release Readiness +# M06 릴리즈 준비 ## Goal -Prepare the project for repeatable external consumption with clear package versions, protocol compatibility statements, and release checks per available language. +명확한 package version, 프로토콜 호환성 설명, 언어별 릴리즈 검사를 갖춰 프로젝트를 반복 가능한 외부 사용 상태로 준비한다. ## Phase -Phase 4 - Release readiness +Phase 4 - 릴리즈 준비 ## Status @@ -14,31 +14,31 @@ Planned ## Scope -- Clarify package publication targets and release order per language. -- Ensure each published package states the protocol version it implements. -- Keep package versions independent from protocol compatibility versioning. -- Document release checks and compatibility notes. +- 언어별 package publication target과 릴리즈 순서를 명확히 한다. +- 배포된 각 package가 구현하는 프로토콜 version을 명시하게 한다. +- Package version은 프로토콜 호환성 version과 독립적으로 유지한다. +- 릴리즈 검사와 호환성 메모를 문서화한다. ## Required Features -- [ ] Confirm package registry targets for each available language. -- [ ] Define release checklist per language. -- [ ] Ensure package docs state protocol version support. -- [ ] Keep changelog or release notes aligned with `VERSIONING.md`. -- [ ] Verify same-language and cross-language tests before release. +- [ ] 사용 가능 언어별 package registry target을 확정한다. +- [ ] 언어별 릴리즈 checklist를 정의한다. +- [ ] Package 문서가 지원 프로토콜 version을 명시하게 한다. +- [ ] Changelog 또는 release notes를 `VERSIONING.md`와 맞춘다. +- [ ] 릴리즈 전 동일 언어 및 크로스 언어 테스트를 검증한다. ## Success Criteria -- A maintainer can release a language package without guessing the compatibility checklist. -- Package releases communicate protocol version support separately from package version changes. -- Release documentation does not imply a protocol bump unless wire format or required behavior changes. +- 유지보수자는 호환성 checklist를 추측하지 않고 언어 package를 릴리즈할 수 있다. +- Package release는 package version 변경과 별도로 protocol version 지원을 전달한다. +- 릴리즈 문서는 wire format 또는 required behavior가 바뀌지 않는 한 protocol bump를 암시하지 않는다. ## Non-Goals -- Change protocol compatibility policy. -- Add new language implementations. -- Publish packages without the verification milestone being complete. +- 프로토콜 호환성 정책을 변경하지 않는다. +- 새 언어 구현을 추가하지 않는다. +- 검증 마일스톤이 완료되지 않은 상태에서 package를 배포하지 않는다. ## Context for Work -Use `VERSIONING.md` as the release compatibility source of truth. README currently notes that checked-in implementations must preserve the documented protocol contract even before packages are published. +릴리즈 호환성 기준 문서는 `VERSIONING.md`다. README는 package가 아직 배포되지 않았더라도 저장소에 포함된 구현체가 문서화된 프로토콜 계약을 유지해야 한다고 설명한다.