## 1. Baseline And Workspace Metadata - [x] 1.1 Record the current non-integration test result and verify the existing root distribution builds before moving packages. - Baseline: `uv run pytest -m "not integration"` -> 314 passed, 6 deselected. - Baseline: `uv build` -> root sdist and wheel built successfully. - [x] 1.2 Add `[tool.uv.workspace]` membership to the root project while retaining `device-agent-runtime` as the root package. - [x] 1.3 Create `packages/cloud-platform/pyproject.toml` for the `device-cloud-platform` distribution with explicit build and package-discovery metadata. - [x] 1.4 Declare `device-agent-runtime` as a workspace source dependency of `device-cloud-platform` without adding any reverse dependency. ## 2. Cloud Package Extraction - [x] 2.1 Move the existing `cloud` package under `packages/cloud-platform` while preserving every `cloud.*` import path. - [ ] 2.2 Remove `cloud*` from the root distribution's setuptools discovery and update path-sensitive composition tests or tooling. - [ ] 2.3 Add packaging tests that identify the owning distribution for Runtime and cloud modules and reject reverse cloud dependencies. ## 3. Locking And Developer Commands - [ ] 3.1 Generate and commit the shared `uv.lock` for all workspace members. - [ ] 3.2 Verify clean `uv sync --locked` and lock consistency checks from the workspace root. - [ ] 3.3 Verify member-scoped uv commands for both `device-agent-runtime` and `device-cloud-platform`. - [ ] 3.4 Update README and relevant setup documentation with workspace synchronization, test, build, and package-selection commands while leaving console npm commands unchanged. ## 4. Build And Compatibility Verification - [ ] 4.1 Build wheels for every workspace member and inspect them to confirm the expected packages are included once. - [ ] 4.2 Install the built wheels into an isolated environment and smoke-test imports for existing Runtime and `cloud.*` modules. - [ ] 4.3 Run the complete non-integration Python test suite from the workspace root and fix packaging-only regressions without changing behavior. - [ ] 4.4 Verify the local REST and MCP factories still import and the console build remains independent of uv synchronization. ## 5. OpenSpec And Project Records - [ ] 5.1 Run OpenSpec validation for `uv-workspace-packaging` and confirm all workspace-packaging scenarios are covered by automated checks. - [ ] 5.2 Update the project index and runtime/package documentation to record the new workspace layout and canonical commands.