mirror of
https://github.com/rennf93/roboco.git
synced 2026-08-03 07:23:24 +02:00
NOW RAG is actually usable... might switch to gemma3:4b from glm-4.6 cloud for expenses reasons but we'll see
This commit is contained in:
@@ -0,0 +1,72 @@
|
||||
# Agent Model
|
||||
|
||||
## Core Fields
|
||||
|
||||
| Field | Type | Description |
|
||||
|-------|------|-------------|
|
||||
| `id` | UUID | Primary key |
|
||||
| `name` | String | Display name |
|
||||
| `slug` | String | URL-safe ID (e.g., `be-dev-1`) |
|
||||
| `role` | Enum | Agent role |
|
||||
| `team` | Enum | Team affiliation |
|
||||
| `status` | Enum | active, idle, offline |
|
||||
|
||||
## Roles
|
||||
|
||||
| Role | Description |
|
||||
|------|-------------|
|
||||
| `ceo` | Human executive |
|
||||
| `product_owner` | Product strategy |
|
||||
| `head_marketing` | External comms |
|
||||
| `auditor` | Silent observer |
|
||||
| `main_pm` | Coordinates all cells |
|
||||
| `cell_pm` | Manages one cell |
|
||||
| `developer` | Writes code |
|
||||
| `qa` | Reviews and tests |
|
||||
| `documenter` | Writes documentation |
|
||||
| `system` | Internal orchestrator |
|
||||
|
||||
## Teams
|
||||
|
||||
| Team | Agents |
|
||||
|------|--------|
|
||||
| `backend` | be-pm, be-dev-*, be-qa, be-doc |
|
||||
| `frontend` | fe-pm, fe-dev-*, fe-qa, fe-doc |
|
||||
| `ux_ui` | ux-pm, ux-dev-*, ux-qa, ux-doc |
|
||||
| `main_pm` | main-pm |
|
||||
| `board` | product-owner, head-marketing, auditor |
|
||||
| `marketing` | head-marketing |
|
||||
|
||||
## Status
|
||||
|
||||
| Status | Meaning |
|
||||
|--------|---------|
|
||||
| `active` | Currently working |
|
||||
| `idle` | Available for work |
|
||||
| `offline` | Not available |
|
||||
|
||||
## Capabilities
|
||||
|
||||
Example capabilities:
|
||||
- `code_execution`
|
||||
- `git_operations`
|
||||
- `documentation`
|
||||
- `testing`
|
||||
|
||||
## Model Configuration
|
||||
|
||||
Stored in `model_config` JSON:
|
||||
- LLM provider
|
||||
- Model name
|
||||
- Temperature
|
||||
- Other settings
|
||||
|
||||
## Agent-Specific Fields
|
||||
|
||||
| Field | Description |
|
||||
|-------|-------------|
|
||||
| `current_task_id` | Currently assigned task |
|
||||
| `journal_id` | Personal journal |
|
||||
| `system_prompt` | Base prompt |
|
||||
| `permissions` | Channel access |
|
||||
| `metrics` | Performance data |
|
||||
@@ -0,0 +1,70 @@
|
||||
# Channel Structure
|
||||
|
||||
## Channel Types
|
||||
|
||||
| Type | Purpose | Example |
|
||||
|------|---------|---------|
|
||||
| `cell` | Internal team | #backend-cell |
|
||||
| `cross_cell` | Role coordination | #dev-all, #qa-all |
|
||||
| `management` | PM/Board | #main-pm-board |
|
||||
| `special` | Announcements | #all-hands |
|
||||
|
||||
## Cell Channels
|
||||
|
||||
| Channel | Members |
|
||||
|---------|---------|
|
||||
| #backend-cell | be-pm, be-dev-*, be-qa, be-doc |
|
||||
| #frontend-cell | fe-pm, fe-dev-*, fe-qa, fe-doc |
|
||||
| #uxui-cell | ux-pm, ux-dev-*, ux-qa, ux-doc |
|
||||
|
||||
## Cross-Cell Channels
|
||||
|
||||
| Channel | Members |
|
||||
|---------|---------|
|
||||
| #dev-all | All developers |
|
||||
| #qa-all | All QAs |
|
||||
| #pm-all | All PMs |
|
||||
| #doc-all | All documenters |
|
||||
|
||||
## Management Channels
|
||||
|
||||
| Channel | Members |
|
||||
|---------|---------|
|
||||
| #main-pm-board | Main PM, Board |
|
||||
| #board-private | Board only |
|
||||
|
||||
## Special Channels
|
||||
|
||||
| Channel | Access |
|
||||
|---------|--------|
|
||||
| #announcements | Read: all, Write: PM/Board |
|
||||
| #all-hands | Read/Write: all |
|
||||
|
||||
## Auditor Access
|
||||
|
||||
Auditor has **silent read access** to ALL channels:
|
||||
- Does not appear in member lists
|
||||
- Cannot send messages
|
||||
- Observes all activity
|
||||
|
||||
## Channel Access Rules
|
||||
|
||||
| Role | Own Cell | Cross-Cell | Management |
|
||||
|------|----------|------------|------------|
|
||||
| Developer | Read/Write | Read/Write | - |
|
||||
| QA | Read/Write | Read/Write | - |
|
||||
| Documenter | Read/Write | Read/Write | - |
|
||||
| Cell PM | Read/Write | Read/Write | - |
|
||||
| Main PM | Read/Write | Read/Write | Read/Write |
|
||||
| Board | - | - | Read/Write |
|
||||
| Auditor | Silent Read | Silent Read | Silent Read |
|
||||
|
||||
## Messaging
|
||||
|
||||
```python
|
||||
roboco_message_send({
|
||||
channel: "backend-cell",
|
||||
content: "Starting work on rate limiting",
|
||||
task_id: task_id
|
||||
})
|
||||
```
|
||||
@@ -0,0 +1,71 @@
|
||||
# Organizational Structure
|
||||
|
||||
## Hierarchy
|
||||
|
||||
```
|
||||
CEO (Renzo - Human)
|
||||
|
|
||||
+-- Board (3 agents)
|
||||
+-- Product Owner
|
||||
+-- Head of Marketing
|
||||
+-- Auditor (silent observer)
|
||||
|
|
||||
+-- Main PM
|
||||
|
|
||||
+-- Backend Cell
|
||||
+-- Frontend Cell
|
||||
+-- UX/UI Cell
|
||||
```
|
||||
|
||||
## Agent Count
|
||||
|
||||
| Role | Count |
|
||||
|------|-------|
|
||||
| CEO | 1 (human) |
|
||||
| Product Owner | 1 |
|
||||
| Head of Marketing | 1 |
|
||||
| Auditor | 1 |
|
||||
| Main PM | 1 |
|
||||
| Cell PMs | 3 |
|
||||
| Developers | 6 (2 per cell) |
|
||||
| QAs | 3 (1 per cell) |
|
||||
| Documenters | 3 (1 per cell) |
|
||||
| **Total** | **20** (19 AI + 1 human) |
|
||||
|
||||
## Cells
|
||||
|
||||
| Cell | PM | Developers | QA | Documenter |
|
||||
|------|-----|------------|-----|------------|
|
||||
| Backend | be-pm | be-dev-1, be-dev-2 | be-qa | be-doc |
|
||||
| Frontend | fe-pm | fe-dev-1, fe-dev-2 | fe-qa | fe-doc |
|
||||
| UX/UI | ux-pm | ux-dev-1, ux-dev-2 | ux-qa | ux-doc |
|
||||
|
||||
## Teams
|
||||
|
||||
| Team | Members |
|
||||
|------|---------|
|
||||
| executive | ceo |
|
||||
| board | product-owner, head-marketing, auditor |
|
||||
| management | main-pm, be-pm, fe-pm, ux-pm |
|
||||
| developers | all devs |
|
||||
| qa | all QAs |
|
||||
| documentation | all documenters |
|
||||
|
||||
## Escalation Chain
|
||||
|
||||
```
|
||||
Developer/QA/Documenter → Cell PM → Main PM → Product Owner → CEO
|
||||
```
|
||||
|
||||
## Communication
|
||||
|
||||
Each role can communicate with:
|
||||
|
||||
| Role | Can Communicate With |
|
||||
|------|---------------------|
|
||||
| CEO | Everyone |
|
||||
| Board | CEO, other board, Main PM |
|
||||
| Auditor | Everyone (silent read all) |
|
||||
| Main PM | CEO, Board, Cell PMs |
|
||||
| Cell PM | Main PM, cell members |
|
||||
| Cell Members | Cell PM, other cell members |
|
||||
@@ -0,0 +1,72 @@
|
||||
# Task Model
|
||||
|
||||
## Core Fields
|
||||
|
||||
| Field | Type | Description |
|
||||
|-------|------|-------------|
|
||||
| `id` | UUID | Primary key |
|
||||
| `title` | String | Task title |
|
||||
| `description` | Text | Detailed description |
|
||||
| `acceptance_criteria` | Array | How we know it's done |
|
||||
| `status` | Enum | Lifecycle state |
|
||||
| `priority` | Int | 0=P0 (highest) to 3=P3 |
|
||||
| `team` | Enum | backend, frontend, ux_ui |
|
||||
|
||||
## Task Types
|
||||
|
||||
| Type | Description |
|
||||
|------|-------------|
|
||||
| `code` | Development work |
|
||||
| `documentation` | Writing docs |
|
||||
| `research` | Investigation |
|
||||
| `planning` | Task breakdown |
|
||||
| `design` | UX/UI design |
|
||||
| `administrative` | Admin work |
|
||||
|
||||
## Git Fields
|
||||
|
||||
| Field | Description |
|
||||
|-------|-------------|
|
||||
| `requires_git` | Whether git workflow applies |
|
||||
| `project_id` | Associated project |
|
||||
| `branch_name` | Git branch for task |
|
||||
| `work_session_id` | Active work session |
|
||||
| `pr_number` | PR number |
|
||||
| `pr_url` | Full PR URL |
|
||||
| `docs_complete` | Documenter finished |
|
||||
| `pr_created` | Developer created PR |
|
||||
| `commits` | Linked commits |
|
||||
|
||||
## Assignment Fields
|
||||
|
||||
| Field | Description |
|
||||
|-------|-------------|
|
||||
| `created_by` | Agent who created |
|
||||
| `assigned_to` | Currently assigned |
|
||||
| `parent_task_id` | Parent for subtasks |
|
||||
| `dependency_ids` | Blocking tasks |
|
||||
|
||||
## Context Fields
|
||||
|
||||
| Field | Description |
|
||||
|-------|-------------|
|
||||
| `plan` | Implementation plan |
|
||||
| `quick_context` | 2-3 sentence summary |
|
||||
| `proactive_context` | RAG context at claim |
|
||||
| `dev_notes` | Developer notes |
|
||||
| `qa_notes` | QA feedback |
|
||||
|
||||
## Timestamps
|
||||
|
||||
| Field | Description |
|
||||
|-------|-------------|
|
||||
| `claimed_at` | When claimed |
|
||||
| `started_at` | When started |
|
||||
| `completed_at` | When completed |
|
||||
| `target_date` | Target date |
|
||||
|
||||
## Indexes
|
||||
|
||||
- `ix_tasks_team_status` - Team + Status queries
|
||||
- `ix_tasks_assigned_status` - Assignee + Status
|
||||
- `ix_tasks_project_status` - Project + Status
|
||||
@@ -0,0 +1,71 @@
|
||||
# Workspace Structure
|
||||
|
||||
## Multi-Agent Isolation
|
||||
|
||||
Each agent gets their own git clone:
|
||||
|
||||
```
|
||||
{workspaces_root}/
|
||||
└── {project-slug}/
|
||||
└── {team}/
|
||||
└── {agent-slug}/
|
||||
└── [git repo files]
|
||||
```
|
||||
|
||||
## Example
|
||||
|
||||
```
|
||||
/data/workspaces/
|
||||
└── roboco/
|
||||
├── backend/
|
||||
│ ├── be-dev-1/ # be-dev-1's workspace
|
||||
│ ├── be-dev-2/ # be-dev-2's workspace
|
||||
│ ├── be-qa/ # be-qa's workspace
|
||||
│ ├── be-pm/ # be-pm's workspace
|
||||
│ └── be-doc/ # be-doc's workspace
|
||||
├── frontend/
|
||||
│ ├── fe-dev-1/
|
||||
│ └── ...
|
||||
└── ux_ui/
|
||||
└── ...
|
||||
```
|
||||
|
||||
## Configuration
|
||||
|
||||
```bash
|
||||
# Environment variables
|
||||
ROBOCO_WORKSPACES_ROOT=/data/workspaces
|
||||
ROBOCO_WORKSPACE_AUTO_CLONE=true
|
||||
ROBOCO_WORKSPACE_CLONE_TIMEOUT=300
|
||||
```
|
||||
|
||||
## Features
|
||||
|
||||
| Feature | Description |
|
||||
|---------|-------------|
|
||||
| Auto-clone | Workspaces created on first access |
|
||||
| Isolation | No file locking conflicts |
|
||||
| Branch independence | Agents on different branches |
|
||||
| Project-scoped | Organized by project slug |
|
||||
|
||||
## Benefits
|
||||
|
||||
1. **Parallel Development**: Multiple agents on same project
|
||||
2. **No Conflicts**: Each has own working tree
|
||||
3. **Branch Flexibility**: Different branches simultaneously
|
||||
4. **Clean State**: Fresh clone if needed
|
||||
|
||||
## Workspace Resolution
|
||||
|
||||
When agent needs workspace:
|
||||
|
||||
```python
|
||||
# Service resolves path
|
||||
workspace_path = await workspace_service.get_workspace(
|
||||
project_slug="roboco",
|
||||
agent_id="be-dev-1"
|
||||
)
|
||||
# Returns: /data/workspaces/roboco/backend/be-dev-1
|
||||
```
|
||||
|
||||
If `auto_clone=True` and workspace doesn't exist, it's created automatically.
|
||||
Reference in New Issue
Block a user