# TASKS ## Current ### `feat/open-core-repo-boundary` Status: in_progress Goal: - закрепить техническую границу между `crank-community`, `crank-enterprise` и `crank-cloud`. Main code areas: - `docs/commercial-boundaries.md` - `docs/module-decomposition.md` - `docs/development-rules.md` - `docs/implementation-plan.md` - release scripts / Docker manifests / future packaging files Implementation slices: 1. Определить extension seams в public code. 2. Подготовить отдельные delivery manifests для Community. 3. Убрать из Community repo assumptions о размещении private code рядом с Community logic. 4. Подготовить naming и packaging strategy для private repositories. 5. После завершения seams и capability split остановиться на управленческом gate и создать: - public repository `crank-community` - private repository `crank-enterprise` - private repository `crank-cloud` Только после этого начинать физическое вынесение commercial code из текущего monorepo. DoD: - можно объяснить, что именно публикуется как OSS, а что уходит в private delivery; - Community release path отделен от commercial release path; - документация не ссылается на удаленные review files. - момент создания `3` целевых repositories зафиксирован в плане как отдельный обязательный шаг, а не подразумевается неявно. Verification: - docs consistency pass; - release checklist review. Progress: - done: - gate for creating `3` target repositories is already documented before any physical commercial split - canonical Community deployment manifest and env template now live under `deploy/community/*`, and public deploy uses that manifest instead of the root compose file - CI, README, runtime/deploy smoke docs now point to `deploy/community/*` as the Community delivery source of truth - separate `Community` release checklist now exists and explicitly forbids treating future `Enterprise/Cloud` delivery as just another env on the same public manifest - explicit repository split map now defines what goes to `crank-community`, `crank-enterprise`, and `crank-cloud` - `Community` is now fixed as `REST-only` in product docs, capability model, backend validation, demo seed, and UI protocol expectations - pending: - remaining extension seams and packaging split still need to move from planning into concrete `crank-community` / `crank-enterprise` / `crank-cloud` manifests - next management gate is to actually create the `3` target repositories before physical split starts ## Planned ### `feat/commercial-machine-token-flow` Status: ready Goal: - реализовать короткоживущие и одноразовые машинные токены как коммерческий auth contour, а не как Community stub. Main code areas: - private `enterprise/cloud` token services - public contracts already fixed in: - `crates/crank-core` - `apps/admin-api` - `apps/mcp-server` - `docs/agent-auth-model.md` Implementation slices: 1. short-lived token issuance 2. one-time token issuance 3. replay guard / nonce coordination on top of cache layer 4. runtime verification and policy enforcement by `security_level` 5. capability-gated UI/admin flows for commercial editions DoD: - replay guard is no longer a stub abstraction and is wired into a real token flow; - `elevated/strict` machine access works end-to-end in commercial contours; - Community remains on static agent keys only. ### `feat/enterprise-access-governance` Status: ready Goal: - реализовать enterprise access layer вне Community scope. Main code areas: - private `enterprise` services and crates - public contracts in: - `docs/admin-api.md` - `docs/agent-auth-model.md` - `docs/product-editions.md` Implementation slices: 1. `SSO` 2. `2FA` 3. extended `RBAC` 4. `audit log` 5. enterprise admin flows in UI through capability gating DoD: - governance features не живут как полумеры в Community; - enterprise access model согласован с public contracts. ### `feat/cloud-metering-control-plane` Status: ready Goal: - подготовить hosted-редакцию как отдельный продуктовый контур. Main code areas: - private cloud services - usage/metering integration points - `docs/product-editions.md` - `docs/commercial-boundaries.md` Implementation slices: 1. usage metering by workspace / agent / token; 2. billing integration; 3. hosted tenant controls; 4. cloud operational tooling. DoD: - Cloud edition не зависит от ручного учета usage; - hosted product surface согласован с feature matrix. ### `feat/release-protection-distribution` Status: ready Goal: - подготовить безопасную поставку Community и коммерческих редакций. Main code areas: - CI workflows - Dockerfiles - deployment manifests - release docs Implementation slices: 1. public GitHub release flow for Community; 2. private registry flow for Enterprise; 3. signed artifacts and provenance; 4. release checklist for edition-specific packaging. DoD: - Community публикуется из `crank-community`; - Enterprise и Cloud используют private delivery path; - коммерческий код не требуется публиковать в open source ради поставки. ### `feat/live-authenticated-staging-entry` Status: ready Goal: - держать реальный staging/demo контур в состоянии, пригодном для демонстрации и регрессии. Main code areas: - `docs/demo-runbook.md` - `docs/deploy-and-staging-smoke.md` - `docs/authenticated-staging-pass.md` - deployment workflows Implementation slices: 1. актуализировать demo user flow; 2. прогнать authenticated staging pass; 3. зафиксировать regressions и manual checks; 4. синхронизировать deploy docs с реальным окружением. DoD: - staging validation не зависит от локальных фикстур; - documentation matches deployed behavior; - demo flow reproducible on real environment.