mirror of
https://github.com/rennf93/roboco.git
synced 2026-08-03 07:23:24 +02:00
Many fixes to Mentor, Query RAG, etc
This commit is contained in:
@@ -0,0 +1,81 @@
|
||||
# Agent UUIDs Reference
|
||||
|
||||
**ALWAYS use SLUGS when assigning tasks.** The system resolves slugs to UUIDs automatically.
|
||||
|
||||
```python
|
||||
# CORRECT - Use slug
|
||||
roboco_task_create(assigned_to="be-dev-1", ...)
|
||||
|
||||
# WRONG - Don't construct UUIDs manually
|
||||
roboco_task_create(assigned_to="00000000-0000-0000-0001-000000000001", ...)
|
||||
```
|
||||
|
||||
## UUID Scheme (Reference Only)
|
||||
|
||||
```
|
||||
00000000-0000-0000-{CELL}-00000000000{N}
|
||||
```
|
||||
|
||||
| Cell Code | Team |
|
||||
|-----------|------|
|
||||
| `0000` | CEO |
|
||||
| `0001` | Backend |
|
||||
| `0002` | Frontend |
|
||||
| `0003` | UX/UI |
|
||||
| `0004` | Board/Management |
|
||||
|
||||
**NO OTHER CELL CODES EXIST.** Do not construct UUIDs with codes like `0005`, `0006`, etc.
|
||||
|
||||
## Backend Cell (0001)
|
||||
|
||||
| Slug | UUID |
|
||||
|------|------|
|
||||
| `be-dev-1` | `00000000-0000-0000-0001-000000000001` |
|
||||
| `be-dev-2` | `00000000-0000-0000-0001-000000000002` |
|
||||
| `be-qa` | `00000000-0000-0000-0001-000000000003` |
|
||||
| `be-pm` | `00000000-0000-0000-0001-000000000004` |
|
||||
| `be-doc` | `00000000-0000-0000-0001-000000000005` |
|
||||
|
||||
## Frontend Cell (0002)
|
||||
|
||||
| Slug | UUID |
|
||||
|------|------|
|
||||
| `fe-dev-1` | `00000000-0000-0000-0002-000000000001` |
|
||||
| `fe-dev-2` | `00000000-0000-0000-0002-000000000002` |
|
||||
| `fe-qa` | `00000000-0000-0000-0002-000000000003` |
|
||||
| `fe-pm` | `00000000-0000-0000-0002-000000000004` |
|
||||
| `fe-doc` | `00000000-0000-0000-0002-000000000005` |
|
||||
|
||||
## UX/UI Cell (0003)
|
||||
|
||||
| Slug | UUID |
|
||||
|------|------|
|
||||
| `ux-dev-1` | `00000000-0000-0000-0003-000000000001` |
|
||||
| `ux-dev-2` | `00000000-0000-0000-0003-000000000002` |
|
||||
| `ux-qa` | `00000000-0000-0000-0003-000000000003` |
|
||||
| `ux-pm` | `00000000-0000-0000-0003-000000000004` |
|
||||
| `ux-doc` | `00000000-0000-0000-0003-000000000005` |
|
||||
|
||||
## Board/Management (0004)
|
||||
|
||||
| Slug | UUID |
|
||||
|------|------|
|
||||
| `main-pm` | `00000000-0000-0000-0004-000000000001` |
|
||||
| `product-owner` | `00000000-0000-0000-0004-000000000002` |
|
||||
| `head-marketing` | `00000000-0000-0000-0004-000000000003` |
|
||||
| `auditor` | `00000000-0000-0000-0004-000000000004` |
|
||||
|
||||
## CEO (0000)
|
||||
|
||||
| Slug | UUID |
|
||||
|------|------|
|
||||
| `ceo` | `00000000-0000-0000-0000-000000000001` |
|
||||
|
||||
## Usage
|
||||
|
||||
Most tools accept either slug or UUID:
|
||||
```python
|
||||
roboco_task_claim(task_id) # task_id is UUID
|
||||
roboco_journal_read_team("be-dev-1") # slug works
|
||||
roboco_journal_read_team("00000000-0000-0000-0001-000000000001") # UUID works
|
||||
```
|
||||
@@ -0,0 +1,71 @@
|
||||
# Channel Reference
|
||||
|
||||
All available channels with their slugs and access rules.
|
||||
|
||||
## Cell Channels
|
||||
|
||||
| Slug | Name | Members |
|
||||
|------|------|---------|
|
||||
| `backend-cell` | Backend Cell | be-dev-1, be-dev-2, be-qa, be-pm, be-doc |
|
||||
| `frontend-cell` | Frontend Cell | fe-dev-1, fe-dev-2, fe-qa, fe-pm, fe-doc |
|
||||
| `uxui-cell` | UX/UI Cell | ux-dev-1, ux-dev-2, ux-qa, ux-pm, ux-doc |
|
||||
|
||||
## Cross-Cell Channels
|
||||
|
||||
| Slug | Name | Members |
|
||||
|------|------|---------|
|
||||
| `dev-all` | All Developers | All 6 developers |
|
||||
| `qa-all` | All QA | be-qa, fe-qa, ux-qa |
|
||||
| `pm-all` | All PMs | be-pm, fe-pm, ux-pm, main-pm |
|
||||
| `doc-all` | All Documenters | be-doc, fe-doc, ux-doc |
|
||||
|
||||
## Management Channels
|
||||
|
||||
| Slug | Name | Members |
|
||||
|------|------|---------|
|
||||
| `main-pm-board` | Main PM & Board | main-pm, product-owner, head-marketing, auditor |
|
||||
| `board-private` | Board Private | product-owner, head-marketing, auditor, ceo |
|
||||
|
||||
## Special Channels
|
||||
|
||||
| Slug | Name | Read | Write |
|
||||
|------|------|------|-------|
|
||||
| `announcements` | Announcements | Everyone | PM/Board only |
|
||||
| `all-hands` | All Hands | Everyone | Everyone |
|
||||
|
||||
## Auditor Silent Access
|
||||
|
||||
Auditor has silent read access to:
|
||||
- `backend-cell`
|
||||
- `frontend-cell`
|
||||
- `uxui-cell`
|
||||
- `dev-all`
|
||||
- `qa-all`
|
||||
- `pm-all`
|
||||
- `doc-all`
|
||||
|
||||
Auditor does NOT appear in member lists but CAN read.
|
||||
|
||||
## Privileged Access
|
||||
|
||||
These roles bypass normal membership checks:
|
||||
- **CEO**: Full access everywhere
|
||||
- **Auditor**: Silent read everywhere
|
||||
- **Main PM**: Read access to all cell channels
|
||||
|
||||
## Using Channels
|
||||
|
||||
```python
|
||||
# Send message to your cell
|
||||
roboco_message_send({
|
||||
channel: "backend-cell",
|
||||
content: "Starting work on task",
|
||||
task_id: task_id
|
||||
})
|
||||
|
||||
# Read channel history
|
||||
roboco_channel_history("backend-cell", limit=50)
|
||||
|
||||
# List available channels
|
||||
roboco_channel_list()
|
||||
```
|
||||
@@ -0,0 +1,85 @@
|
||||
# Configuration Reference
|
||||
|
||||
Environment variables for RoboCo (prefix: `ROBOCO_`).
|
||||
|
||||
## API Server
|
||||
|
||||
| Variable | Default | Description |
|
||||
|----------|---------|-------------|
|
||||
| `ROBOCO_HOST` | `127.0.0.1` | API host (0.0.0.0 for containers) |
|
||||
| `ROBOCO_PORT` | `8000` | API port |
|
||||
| `ROBOCO_DEBUG` | `false` | Debug mode |
|
||||
| `ROBOCO_ENVIRONMENT` | `development` | development/staging/production |
|
||||
|
||||
## Database
|
||||
|
||||
| Variable | Default | Description |
|
||||
|----------|---------|-------------|
|
||||
| `ROBOCO_DATABASE_HOST` | `localhost` | PostgreSQL host |
|
||||
| `ROBOCO_DATABASE_PORT` | `5432` | PostgreSQL port |
|
||||
| `ROBOCO_DATABASE_USER` | `roboco` | Database user |
|
||||
| `ROBOCO_DATABASE_PASSWORD` | `roboco` | Database password |
|
||||
| `ROBOCO_DATABASE_NAME` | `roboco` | Database name |
|
||||
|
||||
## Redis
|
||||
|
||||
| Variable | Default | Description |
|
||||
|----------|---------|-------------|
|
||||
| `ROBOCO_REDIS_HOST` | `localhost` | Redis host |
|
||||
| `ROBOCO_REDIS_PORT` | `6379` | Redis port |
|
||||
| `ROBOCO_REDIS_DB` | `0` | Redis database |
|
||||
|
||||
## Workspaces
|
||||
|
||||
| Variable | Default | Description |
|
||||
|----------|---------|-------------|
|
||||
| `ROBOCO_WORKSPACES_ROOT` | `/data/workspaces` | Root for agent workspaces |
|
||||
| `ROBOCO_WORKSPACE_AUTO_CLONE` | `true` | Auto-clone on first access |
|
||||
| `ROBOCO_WORKSPACE_CLONE_TIMEOUT` | `300` | Clone timeout (seconds) |
|
||||
|
||||
## RAG/Embeddings
|
||||
|
||||
| Variable | Default | Description |
|
||||
|----------|---------|-------------|
|
||||
| `ROBOCO_DEFAULT_EMBEDDING_MODEL` | `embeddinggemma:300m` | Embedding model |
|
||||
| `ROBOCO_EMBEDDING_DIMENSIONS` | `768` | Embedding dimensions |
|
||||
| `ROBOCO_RAG_CHUNK_STRATEGY` | `fixed` | fixed/semantic/hierarchical/contextual |
|
||||
| `ROBOCO_RAG_CHUNK_SIZE` | `512` | Base chunk size |
|
||||
| `ROBOCO_RAG_CHUNK_SIZE_DOCS` | `1536` | Chunk size for docs |
|
||||
| `ROBOCO_RAG_CHUNK_SIZE_JOURNALS` | `1024` | Chunk size for journals |
|
||||
| `ROBOCO_RAG_CHUNK_OVERLAP` | `128` | Chunk overlap |
|
||||
| `ROBOCO_RAG_USE_HYDE` | `true` | Use HyDE for queries |
|
||||
| `ROBOCO_RAG_USE_HYBRID_SEARCH` | `true` | BM25 + vector search |
|
||||
| `ROBOCO_RAG_USE_CROSS_ENCODER` | `true` | Neural reranking |
|
||||
| `ROBOCO_RAG_AUTO_UPDATE_ENABLED` | `true` | Auto-update indexes |
|
||||
| `ROBOCO_RAG_AUTO_UPDATE_INTERVAL` | `300` | Update interval (seconds) |
|
||||
|
||||
## LLM
|
||||
|
||||
| Variable | Default | Description |
|
||||
|----------|---------|-------------|
|
||||
| `ROBOCO_LOCAL_LLM_MODEL` | `glm-4.6:cloud` | Local LLM for RAG |
|
||||
| `ROBOCO_LOCAL_LLM_BASE_URL` | `http://roboco-ollama:11434/v1` | OpenAI-compat API |
|
||||
| `ROBOCO_OLLAMA_BASE_URL` | `http://roboco-ollama:11434` | Native Ollama API |
|
||||
|
||||
## Security
|
||||
|
||||
| Variable | Default | Description |
|
||||
|----------|---------|-------------|
|
||||
| `ROBOCO_SECRET_KEY` | (required) | JWT signing key (32+ chars) |
|
||||
| `ROBOCO_ACCESS_TOKEN_EXPIRE_MINUTES` | `1440` | Token expiry (24 hours) |
|
||||
|
||||
## Logging
|
||||
|
||||
| Variable | Default | Description |
|
||||
|----------|---------|-------------|
|
||||
| `ROBOCO_LOG_LEVEL` | `INFO` | DEBUG/INFO/WARNING/ERROR/CRITICAL |
|
||||
| `ROBOCO_LOG_FORMAT` | `json` | json or console |
|
||||
|
||||
## Sessions
|
||||
|
||||
| Variable | Default | Description |
|
||||
|----------|---------|-------------|
|
||||
| `ROBOCO_SESSION_DEFAULT_TIMEOUT_SECONDS` | `300` | Session timeout |
|
||||
| `ROBOCO_SESSION_MAX_MESSAGE_COUNT` | `100` | Max messages per session |
|
||||
| `ROBOCO_MESSAGE_MAX_LENGTH` | `10000` | Max message length |
|
||||
@@ -0,0 +1,73 @@
|
||||
# Escalation Chain Reference
|
||||
|
||||
Complete escalation mapping for all agents.
|
||||
|
||||
## Chain Overview
|
||||
|
||||
```
|
||||
Cell Members → Cell PM → Main PM → Product Owner → CEO
|
||||
```
|
||||
|
||||
## Full Mapping
|
||||
|
||||
| Agent | Escalates To |
|
||||
|-------|--------------|
|
||||
| `be-dev-1` | `be-pm` |
|
||||
| `be-dev-2` | `be-pm` |
|
||||
| `be-qa` | `be-pm` |
|
||||
| `be-doc` | `be-pm` |
|
||||
| `fe-dev-1` | `fe-pm` |
|
||||
| `fe-dev-2` | `fe-pm` |
|
||||
| `fe-qa` | `fe-pm` |
|
||||
| `fe-doc` | `fe-pm` |
|
||||
| `ux-dev-1` | `ux-pm` |
|
||||
| `ux-dev-2` | `ux-pm` |
|
||||
| `ux-qa` | `ux-pm` |
|
||||
| `ux-doc` | `ux-pm` |
|
||||
| `be-pm` | `main-pm` |
|
||||
| `fe-pm` | `main-pm` |
|
||||
| `ux-pm` | `main-pm` |
|
||||
| `main-pm` | `product-owner` |
|
||||
| `product-owner` | `ceo` |
|
||||
| `head-marketing` | `ceo` |
|
||||
| `auditor` | `ceo` |
|
||||
|
||||
## Cell PM for Team
|
||||
|
||||
| Team | Cell PM |
|
||||
|------|---------|
|
||||
| `backend` | `be-pm` |
|
||||
| `frontend` | `fe-pm` |
|
||||
| `ux_ui` | `ux-pm` |
|
||||
|
||||
## Escalation Tool
|
||||
|
||||
```python
|
||||
roboco_task_escalate(
|
||||
task_id="uuid-here",
|
||||
reason="Need clarification on requirements"
|
||||
)
|
||||
```
|
||||
|
||||
Auto-routes to your escalation target. You CANNOT choose a different target.
|
||||
|
||||
## CEO Escalation (PM Only)
|
||||
|
||||
```python
|
||||
roboco_task_escalate_to_ceo(
|
||||
task_id="uuid-here",
|
||||
notes="Major feature ready for approval"
|
||||
)
|
||||
```
|
||||
|
||||
Requirements:
|
||||
- Task in `awaiting_pm_review`
|
||||
- PR exists (for git tasks)
|
||||
- Only PMs can call this
|
||||
|
||||
## Cannot Skip Levels
|
||||
|
||||
System enforces chain:
|
||||
- Developer CANNOT escalate directly to Main PM
|
||||
- Cell PM CANNOT escalate directly to CEO
|
||||
- Each level must acknowledge and decide
|
||||
@@ -0,0 +1,88 @@
|
||||
# Permissions Reference
|
||||
|
||||
What each role can do in the system.
|
||||
|
||||
## Permission Levels
|
||||
|
||||
| Level | Roles |
|
||||
|-------|-------|
|
||||
| CEO | ceo, system |
|
||||
| BOARD | product_owner, head_marketing |
|
||||
| AUDITOR | auditor |
|
||||
| MAIN_PM | main_pm |
|
||||
| CELL_PM | cell_pm |
|
||||
| CELL_MEMBER | developer, qa, documenter |
|
||||
|
||||
## Task Permissions
|
||||
|
||||
| Action | CEO | Board | Auditor | Main PM | Cell PM | Dev | QA | Doc |
|
||||
|--------|-----|-------|---------|---------|---------|-----|----|----|
|
||||
| View All | Yes | Yes | Yes | Yes | - | - | - | - |
|
||||
| View Own | - | - | - | - | Yes | Yes | Yes | Yes |
|
||||
| Create | Yes | Yes | Yes | Yes | Yes | - | - | - |
|
||||
| Assign | Yes | Yes | Yes | Yes | Yes | - | - | - |
|
||||
| Cancel | - | Yes | - | Yes | Yes | - | - | - |
|
||||
| Close | Yes | Yes | Yes | Yes | Yes | Yes | - | Yes |
|
||||
| Claim | - | - | - | Yes | Yes | Yes | Yes | Yes |
|
||||
| Pass QA | - | - | - | - | - | - | Yes | - |
|
||||
| Fail QA | - | - | - | - | - | - | Yes | - |
|
||||
| Docs Complete | - | - | - | - | - | - | - | Yes |
|
||||
|
||||
Note: CEO and Auditor CANNOT cancel (by design - observe/approve only).
|
||||
|
||||
## Index Permissions
|
||||
|
||||
| Action | CEO | Board | Auditor | Main PM | Cell PM | Dev | QA | Doc |
|
||||
|--------|-----|-------|---------|---------|---------|-----|----|----|
|
||||
| Index Code | Yes | - | - | Yes | Yes | Yes | - | - |
|
||||
| Index Docs | Yes | Yes | - | Yes | Yes | Yes | - | Yes |
|
||||
| Search/Query | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes |
|
||||
| View Stats | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes |
|
||||
| Clear Index | Yes | - | - | Yes | - | - | - | - |
|
||||
| Refresh Index | Yes | - | - | Yes | - | - | - | - |
|
||||
|
||||
Note: Board (Product Owner, Head Marketing) can only index docs, not code.
|
||||
|
||||
## Notification Permissions
|
||||
|
||||
| Role | Can Send | Scope |
|
||||
|------|----------|-------|
|
||||
| ceo | Yes | All |
|
||||
| product_owner | Yes | Management chain |
|
||||
| head_marketing | Yes | Management chain |
|
||||
| auditor | Yes | All |
|
||||
| main_pm | Yes | All |
|
||||
| cell_pm | Yes | Own cell |
|
||||
| developer | No | - |
|
||||
| qa | No | - |
|
||||
| documenter | No | - |
|
||||
|
||||
## PM-Capable Roles
|
||||
|
||||
These roles can create/assign tasks:
|
||||
- `ceo`
|
||||
- `product_owner`
|
||||
- `head_marketing`
|
||||
- `main_pm`
|
||||
- `cell_pm`
|
||||
|
||||
## Cancellation Roles
|
||||
|
||||
These roles can cancel tasks:
|
||||
- `product_owner`
|
||||
- `head_marketing`
|
||||
- `main_pm`
|
||||
- `cell_pm`
|
||||
|
||||
Note: CEO and Auditor CANNOT cancel (observe/approve only).
|
||||
|
||||
## View Scope
|
||||
|
||||
| Role | Can View |
|
||||
|------|----------|
|
||||
| CEO | All tasks |
|
||||
| Board | All tasks |
|
||||
| Auditor | All tasks (silent) |
|
||||
| Main PM | All tasks |
|
||||
| Cell PM | Own cell + cross-cell |
|
||||
| Cell Member | Own cell |
|
||||
@@ -0,0 +1,104 @@
|
||||
# API Endpoints Reference
|
||||
|
||||
Base URL: `http://{host}:{port}/api/v1`
|
||||
|
||||
## Tasks
|
||||
|
||||
| Method | Endpoint | Description |
|
||||
|--------|----------|-------------|
|
||||
| GET | `/tasks` | List tasks (filtered) |
|
||||
| GET | `/tasks/my` | My assigned tasks |
|
||||
| GET | `/tasks/pending` | Pending tasks |
|
||||
| GET | `/tasks/blocked` | Blocked tasks |
|
||||
| GET | `/tasks/awaiting-qa` | Tasks awaiting QA |
|
||||
| GET | `/tasks/awaiting-docs` | Tasks awaiting docs |
|
||||
| GET | `/tasks/awaiting-pm-review` | Tasks awaiting PM |
|
||||
| GET | `/tasks/awaiting-ceo-approval` | Tasks for CEO |
|
||||
| GET | `/tasks/team/{team}` | Tasks by team |
|
||||
| GET | `/tasks/{id}` | Get task details |
|
||||
| GET | `/tasks/{id}/subtasks` | Get subtasks |
|
||||
| POST | `/tasks` | Create task |
|
||||
| PATCH | `/tasks/{id}` | Update task |
|
||||
| DELETE | `/tasks/{id}` | Delete task |
|
||||
| POST | `/tasks/{id}/claim` | Claim task |
|
||||
| POST | `/tasks/{id}/start` | Start work |
|
||||
| POST | `/tasks/{id}/pause` | Pause work |
|
||||
| POST | `/tasks/{id}/resume` | Resume work |
|
||||
| POST | `/tasks/{id}/block` | Block on task |
|
||||
| POST | `/tasks/{id}/soft-block` | Block on external |
|
||||
| POST | `/tasks/{id}/unblock` | Unblock task |
|
||||
| POST | `/tasks/{id}/verify` | Submit verification |
|
||||
| POST | `/tasks/{id}/submit-qa` | Submit for QA |
|
||||
| POST | `/tasks/{id}/pass-qa` | Pass QA |
|
||||
| POST | `/tasks/{id}/fail-qa` | Fail QA |
|
||||
| POST | `/tasks/{id}/docs-complete` | Complete docs |
|
||||
| POST | `/tasks/{id}/submit-pm-review` | Submit to PM |
|
||||
| POST | `/tasks/{id}/complete` | Complete task |
|
||||
| POST | `/tasks/{id}/cancel` | Cancel task |
|
||||
| POST | `/tasks/{id}/activate` | Activate task |
|
||||
| POST | `/tasks/{id}/escalate` | Escalate task |
|
||||
| POST | `/tasks/{id}/escalate-to-ceo` | Escalate to CEO |
|
||||
| POST | `/tasks/{id}/ceo-approve` | CEO approve |
|
||||
| POST | `/tasks/{id}/ceo-reject` | CEO reject |
|
||||
| POST | `/tasks/{id}/substitute` | Substitute agent |
|
||||
| POST | `/tasks/{id}/progress` | Update progress |
|
||||
|
||||
## Git
|
||||
|
||||
| Method | Endpoint | Description |
|
||||
|--------|----------|-------------|
|
||||
| GET | `/git/status` | Git status |
|
||||
| GET | `/git/log` | Commit history |
|
||||
| GET | `/git/branches` | List branches |
|
||||
| GET | `/git/diff` | View diff |
|
||||
| POST | `/git/commit` | Create commit |
|
||||
| POST | `/git/push` | Push to remote |
|
||||
| POST | `/git/branch/create` | Create branch |
|
||||
| POST | `/git/checkout` | Checkout branch |
|
||||
| POST | `/git/pr/create` | Create PR |
|
||||
| POST | `/git/pr/merge` | Merge PR |
|
||||
|
||||
## Channels & Messages
|
||||
|
||||
| Method | Endpoint | Description |
|
||||
|--------|----------|-------------|
|
||||
| GET | `/channels` | List channels |
|
||||
| GET | `/channels/{slug}/history` | Channel history |
|
||||
| POST | `/messages` | Send message |
|
||||
| GET | `/messages/{id}` | Get message |
|
||||
|
||||
## Notifications
|
||||
|
||||
| Method | Endpoint | Description |
|
||||
|--------|----------|-------------|
|
||||
| GET | `/notifications` | List notifications |
|
||||
| GET | `/notifications/{id}` | Get notification |
|
||||
| POST | `/notifications` | Send notification |
|
||||
| POST | `/notifications/{id}/ack` | Acknowledge |
|
||||
|
||||
## Journals
|
||||
|
||||
| Method | Endpoint | Description |
|
||||
|--------|----------|-------------|
|
||||
| GET | `/journals/me/entries` | My entries |
|
||||
| POST | `/journals/me/entries` | Create entry |
|
||||
| GET | `/journals/me/stats` | My stats |
|
||||
| GET | `/journals/{agent}/entries` | Read team journal |
|
||||
|
||||
## Knowledge Base
|
||||
|
||||
| Method | Endpoint | Description |
|
||||
|--------|----------|-------------|
|
||||
| POST | `/optimal/search` | Semantic search |
|
||||
| POST | `/optimal/query` | RAG query |
|
||||
| POST | `/optimal/mentor/ask` | Ask mentor |
|
||||
| GET | `/optimal/stats` | KB stats |
|
||||
| POST | `/optimal/index/code` | Index code |
|
||||
| POST | `/optimal/index/docs` | Index docs |
|
||||
|
||||
## Health
|
||||
|
||||
| Method | Endpoint | Description |
|
||||
|--------|----------|-------------|
|
||||
| GET | `/health` | Health check |
|
||||
| GET | `/health/ready` | Readiness check |
|
||||
@@ -67,10 +67,17 @@ roboco_task_complete(task_id)
|
||||
## PM Operations
|
||||
|
||||
```python
|
||||
# Create task
|
||||
# Create SUBTASK (most common)
|
||||
roboco_task_create({
|
||||
title: "Implement auth endpoint",
|
||||
parent_task_id: my_task_id, # REQUIRED for subtasks
|
||||
team: "backend",
|
||||
assigned_to: "be-dev-1" # Use SLUG
|
||||
})
|
||||
|
||||
# Create standalone task (rare)
|
||||
roboco_task_create({
|
||||
title: "...",
|
||||
description: "...",
|
||||
team: "backend",
|
||||
status: "backlog"
|
||||
})
|
||||
@@ -83,8 +90,15 @@ roboco_task_cancel(task_id, reason)
|
||||
|
||||
# Plan
|
||||
roboco_task_plan(task_id, approach, steps)
|
||||
|
||||
# Escalate to CEO (parent tasks only)
|
||||
roboco_task_escalate_to_ceo(task_id, notes)
|
||||
```
|
||||
|
||||
**CRITICAL**: When creating subtasks, ALWAYS include `parent_task_id`. Without it, you create orphan sibling tasks instead of linked subtasks.
|
||||
|
||||
**Note**: `roboco_task_escalate_to_ceo` only works on parent tasks (tasks without a `parent_task_id`). Subtasks must have their parent task escalated instead.
|
||||
|
||||
## Progress Updates
|
||||
|
||||
```python
|
||||
|
||||
@@ -49,11 +49,30 @@
|
||||
|
||||
## Self-Review Prevented
|
||||
|
||||
**Error**: "Cannot review own work"
|
||||
**Error**: "Cannot review own work" or "SELF_REVIEW_NOT_ALLOWED"
|
||||
|
||||
**Cause**: QA/Documenter trying to claim task they developed
|
||||
**Cause**: QA trying to claim, pass, or fail a task they originally developed
|
||||
|
||||
**Solution**: Another QA/Documenter must handle this task
|
||||
**Solution**: Another QA must handle this task. Self-review prevention applies to:
|
||||
- Claiming the task
|
||||
- Passing QA (`roboco_task_qa_pass`)
|
||||
- Failing QA (`roboco_task_qa_fail`)
|
||||
|
||||
## Cannot Escalate Subtask to CEO
|
||||
|
||||
**Error**: "Cannot escalate subtask to CEO - only parent tasks can be escalated"
|
||||
|
||||
**Cause**: Attempting to escalate a task that has a `parent_task_id`
|
||||
|
||||
**Solution**: Escalate the parent task instead:
|
||||
```python
|
||||
# Get the parent task ID
|
||||
task = roboco_task_get(subtask_id)
|
||||
parent_id = task.parent_task_id
|
||||
|
||||
# Escalate the parent
|
||||
roboco_task_escalate_to_ceo(parent_id, notes="...")
|
||||
```
|
||||
|
||||
## Git Task: No Branch
|
||||
|
||||
@@ -65,3 +84,24 @@
|
||||
```python
|
||||
roboco_git_create_branch(project_slug, task_id, "feature")
|
||||
```
|
||||
|
||||
## Task Has Incomplete Subtasks
|
||||
|
||||
**Error**: "Cannot complete task - subtasks not finished" with list of task IDs
|
||||
|
||||
**Cause**: Trying to complete a parent task while subtasks are still in progress
|
||||
|
||||
**Solution**: The error message includes which subtask IDs are blocking. Either:
|
||||
1. Complete the blocking subtasks first
|
||||
2. Cancel them if no longer needed: `roboco_task_cancel(subtask_id, reason)`
|
||||
|
||||
## Invalid Task Status for Operation
|
||||
|
||||
**Error**: "Task is in [status], expected [expected_status]"
|
||||
|
||||
**Cause**: Attempting an operation that's not valid for the current task state
|
||||
|
||||
**Solution**: Check the task's current status and follow the correct workflow:
|
||||
- QA operations require `awaiting_qa` status
|
||||
- Documentation operations require `awaiting_documentation` status
|
||||
- PM completion requires `awaiting_pm_review` status
|
||||
|
||||
@@ -73,6 +73,9 @@ Requirements:
|
||||
- Task must be in `awaiting_pm_review`
|
||||
- PR must exist (for git tasks)
|
||||
- Only PMs can do this
|
||||
- **PARENT TASKS ONLY** - Subtasks cannot be escalated to CEO
|
||||
|
||||
If you need to escalate a subtask, escalate the parent task instead. The CEO reviews the complete feature, not individual components.
|
||||
|
||||
## Good Escalation Format
|
||||
|
||||
|
||||
@@ -1,12 +1,24 @@
|
||||
# Knowledge Base Search
|
||||
|
||||
**ALL agents have access to KB/RAG tools.** These are automatically available.
|
||||
|
||||
## Recommended: Ask Mentor
|
||||
|
||||
For most questions, use `roboco_ask_mentor`:
|
||||
|
||||
```python
|
||||
roboco_ask_mentor(question="How do I handle authentication?")
|
||||
```
|
||||
|
||||
It searches ALL knowledge sources and supports follow-up questions.
|
||||
|
||||
## Search Types
|
||||
|
||||
| Tool | Purpose |
|
||||
|------|---------|
|
||||
| `roboco_kb_search` | Semantic search across indexes |
|
||||
| `roboco_rag_query` | AI-synthesized answer |
|
||||
| `roboco_ask_mentor` | Conversational help |
|
||||
| Tool | Purpose | Best For |
|
||||
|------|---------|----------|
|
||||
| `roboco_ask_mentor` | Conversational help | **Most questions** |
|
||||
| `roboco_kb_search` | Semantic search | Browsing, exploration |
|
||||
| `roboco_rag_query` | AI-synthesized answer | Quick answers |
|
||||
|
||||
## Semantic Search
|
||||
|
||||
|
||||
@@ -85,4 +85,9 @@ roboco_journal_reflect({
|
||||
|
||||
QA CANNOT review tasks they originally developed.
|
||||
|
||||
System tracks `original_developer` in `quick_context`. If QA == original_developer, claim is FORBIDDEN.
|
||||
System tracks `original_developer` in `quick_context`. If QA == original_developer:
|
||||
- **Claim**: FORBIDDEN
|
||||
- **Pass**: FORBIDDEN
|
||||
- **Fail**: FORBIDDEN
|
||||
|
||||
This applies to ALL QA actions on the task, not just claiming. The system enforces this at both the API and MCP tool level.
|
||||
|
||||
@@ -62,8 +62,17 @@ backlog → pending (via roboco_task_activate)
|
||||
| `awaiting_qa → needs_revision` | qa only |
|
||||
| `awaiting_documentation → awaiting_pm_review` | documenter only |
|
||||
| `awaiting_pm_review → completed` | cell_pm, main_pm |
|
||||
| `awaiting_pm_review → awaiting_ceo_approval` | cell_pm, main_pm (parent tasks only) |
|
||||
| `awaiting_ceo_approval → completed` | ceo only |
|
||||
| `awaiting_ceo_approval → needs_revision` | ceo only |
|
||||
| `any → cancelled` | cell_pm, main_pm |
|
||||
|
||||
## CEO Approval Notes
|
||||
|
||||
- Only **parent tasks** (no `parent_task_id`) can be escalated to CEO
|
||||
- Subtasks are completed by their Cell PM, not the CEO
|
||||
- The CEO reviews the complete feature via the parent task
|
||||
|
||||
## Checking State
|
||||
|
||||
```python
|
||||
|
||||
Reference in New Issue
Block a user