mirror of
https://github.com/rennf93/roboco.git
synced 2026-08-03 07:23:24 +02:00
Add Project & Workspace MCP System with role-based permissions
- 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
This commit is contained in:
@@ -35,7 +35,7 @@ branches = roboco_git_branch_list(project_slug="roboco")
|
||||
roboco_git_create_branch(
|
||||
project_slug="roboco",
|
||||
task_id=task_id,
|
||||
branch_type="feature" # feature, fix, refactor, docs
|
||||
branch_type="feature" # feature, bug, chore, docs, hotfix
|
||||
)
|
||||
# Creates: feature/backend/a1b2c3d4
|
||||
|
||||
@@ -53,12 +53,13 @@ roboco_git_checkout(
|
||||
roboco_git_commit(
|
||||
project_slug="roboco",
|
||||
task_id=task_id,
|
||||
message="Add rate limiting endpoint"
|
||||
message="Add rate limiting endpoint",
|
||||
commit_type="feat" # Required
|
||||
)
|
||||
# Creates: [a1b2c3d4] Add rate limiting endpoint
|
||||
# Creates: [a1b2c3d4] feat: Add rate limiting endpoint
|
||||
|
||||
# Push to remote
|
||||
roboco_git_push(project_slug="roboco")
|
||||
roboco_git_push(project_slug="roboco", task_id=task_id)
|
||||
```
|
||||
|
||||
## Pull Requests
|
||||
@@ -76,6 +77,7 @@ roboco_git_create_pr(
|
||||
roboco_git_merge_pr(
|
||||
project_slug="roboco",
|
||||
pr_number=123,
|
||||
task_id=task_id,
|
||||
merge_method="squash" # squash, merge, rebase
|
||||
)
|
||||
```
|
||||
@@ -89,6 +91,7 @@ roboco_git_merge_pr(
|
||||
| Type | Use |
|
||||
|------|-----|
|
||||
| `feature/` | New functionality |
|
||||
| `fix/` | Bug fixes |
|
||||
| `refactor/` | Code restructuring |
|
||||
| `bug/` | Bug fixes |
|
||||
| `chore/` | Maintenance |
|
||||
| `docs/` | Documentation |
|
||||
| `hotfix/` | Urgent fixes |
|
||||
|
||||
@@ -0,0 +1,105 @@
|
||||
# Project Tools
|
||||
|
||||
## Overview
|
||||
|
||||
Project tools manage git repositories and agent workspaces.
|
||||
|
||||
## List Projects
|
||||
|
||||
```python
|
||||
roboco_project_list() # All accessible projects
|
||||
roboco_project_list(cell="backend") # Filter by cell
|
||||
```
|
||||
|
||||
Returns projects you have access to (cell-scoped for non-PMs).
|
||||
|
||||
## Get Project Details
|
||||
|
||||
```python
|
||||
roboco_project_get(slug="roboco")
|
||||
```
|
||||
|
||||
Returns: `name`, `git_url`, `assigned_cell`, `default_branch`, `test_command`, etc.
|
||||
|
||||
## Create Project (PM+ Only)
|
||||
|
||||
```python
|
||||
roboco_project_create(
|
||||
name="RoboCo Panel",
|
||||
slug="roboco-panel",
|
||||
git_url="git@github.com:org/roboco-panel.git",
|
||||
assigned_cell="frontend",
|
||||
default_branch="main",
|
||||
test_command="pnpm test",
|
||||
lint_command="pnpm lint"
|
||||
)
|
||||
```
|
||||
|
||||
**Who can create:** Main PM, Board, CEO
|
||||
|
||||
## Update Project
|
||||
|
||||
```python
|
||||
roboco_project_update(
|
||||
slug="roboco-panel",
|
||||
test_command="pnpm test:ci",
|
||||
lint_command="pnpm lint:fix"
|
||||
)
|
||||
```
|
||||
|
||||
**Who can update:**
|
||||
- CEO, Main PM: Any project
|
||||
- Cell PM: Own cell's projects only
|
||||
|
||||
## Workspace Tools
|
||||
|
||||
### Ensure Workspace
|
||||
|
||||
```python
|
||||
roboco_workspace_ensure(project_slug="roboco")
|
||||
```
|
||||
|
||||
Creates your workspace if it doesn't exist. Auto-clones the repository.
|
||||
|
||||
### Check Workspace Status
|
||||
|
||||
```python
|
||||
roboco_workspace_status(project_slug="roboco")
|
||||
```
|
||||
|
||||
Returns: `exists`, `branch`, `has_uncommitted`, `staged_files`, `unstaged_files`
|
||||
|
||||
### List Workspaces (PM Only)
|
||||
|
||||
```python
|
||||
roboco_workspace_list(project_slug="roboco")
|
||||
```
|
||||
|
||||
Lists all agent workspaces for a project. Cell PM sees own cell only.
|
||||
|
||||
## Permission Matrix
|
||||
|
||||
| Tool | Dev/QA/Doc | Cell PM | Main PM | CEO |
|
||||
|------|------------|---------|---------|-----|
|
||||
| `project_list` | Own cell | Own cell | All | All |
|
||||
| `project_get` | Yes | Yes | Yes | Yes |
|
||||
| `project_create` | No | No | Yes | Yes |
|
||||
| `project_update` | No | Own cell | All | All |
|
||||
| `workspace_ensure` | Yes | Yes | Yes | Yes |
|
||||
| `workspace_status` | Yes | Yes | Yes | Yes |
|
||||
| `workspace_list` | No | Own cell | All | All |
|
||||
|
||||
## Task Creation with Project
|
||||
|
||||
When creating git-enabled tasks:
|
||||
|
||||
```python
|
||||
roboco_task_create(
|
||||
title="Add rate limiting",
|
||||
team="backend",
|
||||
project_slug="roboco", # Required for git tasks
|
||||
requires_git=True # Default: True
|
||||
)
|
||||
```
|
||||
|
||||
Use `project_slug="roboco"` for internal RoboCo codebase work.
|
||||
Reference in New Issue
Block a user