State existed in the lifecycle table and the enum but no verb, route,
or service path ever set it. Removing dead state. If we need
problem-task isolation later we'll add it explicitly with a verb.
- Add roboco_project_* tools (list, get, create, update) with CEO bypass
- Add roboco_workspace_* tools (ensure, status, list) for workspace management
- Add project_slug and requires_git fields to TaskCreateInput schema
- Validate project exists and cell matches when creating git-enabled tasks
- Register project MCP server in orchestrator with proper permissions
Workspace permissions by role:
- Developer: Write to own workspace only
- QA: Read-only access to all cell workspaces
- Documenter: Write to all cell workspaces (add docs to dev branches)
- Cell PM: Write to own workspace, project_update for own cell
- Main PM: Full project access (create, update all, workspace_list all)
- CEO: Full bypass on all permission checks
Also includes:
- Git templates for commits, branches, PRs (separation of concerns)
- Updated blueprints with project/workspace tools documentation
- Updated RAG docs with project tools reference
Phase 2 - A2A Protocol:
- Add A2A models (AgentCard, Task, Message)
- Add A2A service layer
- Add A2A routes with SSE streaming
- Add agent discovery endpoints
Phase 3 - Kubernetes:
- Add deploy/ directory with Kustomize structure
- PostgreSQL StatefulSet with pgvector
- Redis Deployment with persistence
- API and Orchestrator Deployments
- RBAC for orchestrator to manage Jobs
- ArgoCD Application manifest
- Development and production overlays
- K8s Jobs API support in orchestrator