mirror of
https://github.com/rennf93/roboco.git
synced 2026-08-03 07:23:24 +02:00
207 lines
7.2 KiB
Markdown
207 lines
7.2 KiB
Markdown
# Permissions Matrix
|
|
|
|
## Tool Permissions by Role
|
|
|
|
### Task Management Tools
|
|
|
|
| Tool | Main PM | Cell PM | Developer | QA | Documenter |
|
|
|------|:-------:|:-------:|:---------:|:--:|:----------:|
|
|
| `roboco_task_scan` | ✅ | ✅ | ✅ | ✅ | ✅ |
|
|
| `roboco_task_get` | ✅ | ✅ | ✅ | ✅ | ✅ |
|
|
| `roboco_task_claim` | ✅ | ✅ | ✅ | ✅ | ✅ |
|
|
| `roboco_task_start` | ✅ | ✅ | ✅ | ✅ | ✅ |
|
|
| `roboco_task_plan` | ✅ | ✅ | ✅ | ❌ | ❌ |
|
|
| `roboco_task_progress` | ✅ | ✅ | ✅ | ✅ | ✅ |
|
|
| `roboco_task_create` | ✅ | ✅ | ❌ | ❌ | ❌ |
|
|
| `roboco_task_assign` | ✅ | ✅ | ❌ | ❌ | ❌ |
|
|
| `roboco_task_activate` | ✅ | ✅ | ❌ | ❌ | ❌ |
|
|
| `roboco_task_complete` | ✅ | ✅ | ❌ | ❌ | ❌ |
|
|
| `roboco_task_cancel` | ✅ | ✅ | ❌ | ❌ | ❌ |
|
|
| `roboco_task_pause` | ✅ | ✅ | ✅ | ❌ | ❌ |
|
|
| `roboco_task_block` | ✅ | ✅ | ✅ | ❌ | ❌ |
|
|
| `roboco_task_unblock` | ✅ | ✅ | ❌ | ❌ | ❌ |
|
|
| `roboco_task_escalate` | ✅ | ✅ | ✅ | ✅ | ✅ |
|
|
| `roboco_task_submit_verification` | ❌ | ❌ | ✅ | ❌ | ❌ |
|
|
| `roboco_task_submit_qa` | ❌ | ❌ | ✅ | ❌ | ❌ |
|
|
| `roboco_task_qa_pass` | ❌ | ❌ | ❌ | ✅ | ❌ |
|
|
| `roboco_task_qa_fail` | ❌ | ❌ | ❌ | ✅ | ❌ |
|
|
| `roboco_task_docs_complete` | ❌ | ❌ | ❌ | ❌ | ✅ |
|
|
| `roboco_task_substitute` | ✅ | ✅ | ✅ | ✅ | ✅ |
|
|
|
|
### Session Tools
|
|
|
|
| Tool | Main PM | Cell PM | Developer | QA | Documenter |
|
|
|------|:-------:|:-------:|:---------:|:--:|:----------:|
|
|
| `roboco_session_create_for_tasks` | ✅ | ✅ | ❌ | ❌ | ❌ |
|
|
| `roboco_session_link_task` | ✅ | ✅ | ❌ | ❌ | ❌ |
|
|
| `roboco_session_get_for_task` | ✅ | ✅ | ✅ | ✅ | ✅ |
|
|
| `roboco_group_create` | ✅ | ✅ | ❌ | ❌ | ❌ |
|
|
|
|
### Communication Tools
|
|
|
|
| Tool | Main PM | Cell PM | Developer | QA | Documenter |
|
|
|------|:-------:|:-------:|:---------:|:--:|:----------:|
|
|
| `roboco_message_send` | ✅ | ✅ | ✅ | ✅ | ✅ |
|
|
| `roboco_channel_history` | ✅ | ✅ | ✅ | ✅ | ✅ |
|
|
| `roboco_channel_list` | ✅ | ✅ | ✅ | ✅ | ✅ |
|
|
|
|
### Notification Tools
|
|
|
|
| Tool | Main PM | Cell PM | Developer | QA | Documenter |
|
|
|------|:-------:|:-------:|:---------:|:--:|:----------:|
|
|
| `roboco_notify_send` | ✅ | ✅ | ❌ | ❌ | ❌ |
|
|
| `roboco_notify_list` | ✅ | ✅ | ✅ | ✅ | ✅ |
|
|
| `roboco_notify_ack` | ✅ | ✅ | ✅ | ✅ | ✅ |
|
|
|
|
### Journal Tools
|
|
|
|
| Tool | Main PM | Cell PM | Developer | QA | Documenter |
|
|
|------|:-------:|:-------:|:---------:|:--:|:----------:|
|
|
| `roboco_journal_entry` | ✅ | ✅ | ✅ | ✅ | ✅ |
|
|
| `roboco_journal_reflect` | ✅ | ✅ | ✅ | ✅ | ✅ |
|
|
| `roboco_journal_decision` | ✅ | ✅ | ✅ | ✅ | ✅ |
|
|
| `roboco_journal_learning` | ✅ | ✅ | ✅ | ✅ | ✅ |
|
|
| `roboco_journal_struggle` | ✅ | ✅ | ✅ | ✅ | ✅ |
|
|
| `roboco_journal_search` | ✅ | ✅ | ✅ | ✅ | ✅ |
|
|
| `roboco_journal_recent` | ✅ | ✅ | ✅ | ✅ | ✅ |
|
|
| `roboco_journal_read_team` | ✅ | ✅ | ❌ | ❌ | ✅ |
|
|
|
|
### Knowledge Base Tools
|
|
|
|
| Tool | Main PM | Cell PM | Developer | QA | Documenter |
|
|
|------|:-------:|:-------:|:---------:|:--:|:----------:|
|
|
| `roboco_kb_search` | ✅ | ✅ | ✅ | ✅ | ✅ |
|
|
| `roboco_rag_query` | ✅ | ✅ | ✅ | ✅ | ✅ |
|
|
| `roboco_kb_stats` | ✅ | ✅ | ✅ | ✅ | ✅ |
|
|
| `roboco_kb_index_code` | ✅ | ✅ | ✅ | ❌ | ❌ |
|
|
| `roboco_kb_index_docs` | ✅ | ✅ | ❌ | ❌ | ✅ |
|
|
| `roboco_tokens_estimate` | ✅ | ✅ | ✅ | ✅ | ✅ |
|
|
|
|
---
|
|
|
|
## Channel Access Permissions
|
|
|
|
### Cell Channels
|
|
|
|
| Channel | Read | Write | Silent |
|
|
|---------|------|-------|--------|
|
|
| `#backend-cell` | be-dev-1, be-dev-2, be-qa, be-pm, be-doc, main-pm | be-dev-1, be-dev-2, be-qa, be-pm, be-doc | auditor |
|
|
| `#frontend-cell` | fe-dev-1, fe-dev-2, fe-qa, fe-pm, fe-doc, main-pm | fe-dev-1, fe-dev-2, fe-qa, fe-pm, fe-doc | auditor |
|
|
| `#uxui-cell` | ux-dev-1, ux-dev-2, ux-qa, ux-pm, ux-doc, main-pm | ux-dev-1, ux-dev-2, ux-qa, ux-pm, ux-doc | auditor |
|
|
|
|
### Cross-Cell Channels
|
|
|
|
| Channel | Read | Write | Silent |
|
|
|---------|------|-------|--------|
|
|
| `#dev-all` | all devs, all PMs | all devs, all PMs | auditor |
|
|
| `#qa-all` | all QA, all PMs | all QA, all PMs | auditor |
|
|
| `#pm-all` | all PMs, main-pm | all PMs, main-pm | auditor |
|
|
| `#doc-all` | all docs, all PMs | all docs, all PMs | auditor |
|
|
|
|
### Management Channels
|
|
|
|
| Channel | Read | Write | Silent |
|
|
|---------|------|-------|--------|
|
|
| `#main-pm-board` | main-pm, product-owner, head-marketing | main-pm, product-owner, head-marketing | auditor |
|
|
| `#board-private` | product-owner, head-marketing, ceo | product-owner, head-marketing, ceo | auditor |
|
|
|
|
### Special Channels
|
|
|
|
| Channel | Read | Write | Silent |
|
|
|---------|------|-------|--------|
|
|
| `#announcements` | everyone | main-pm, board only | auditor |
|
|
| `#all-hands` | everyone | everyone | auditor |
|
|
|
|
---
|
|
|
|
## Notification Permissions
|
|
|
|
### Who Can Send Notifications
|
|
|
|
| Role | Can Send | Scope |
|
|
|------|:--------:|-------|
|
|
| CEO | ✅ | Anyone |
|
|
| Auditor | ✅ | Anyone |
|
|
| Product Owner | ✅ | main-pm, head-marketing, auditor, ceo |
|
|
| Head Marketing | ✅ | main-pm, product-owner, auditor, ceo |
|
|
| Main PM | ✅ | Anyone |
|
|
| Cell PM | ✅ | Own cell + other PMs |
|
|
| Developer | ❌ | - |
|
|
| QA | ❌ | - |
|
|
| Documenter | ❌ | - |
|
|
|
|
### Notification Types
|
|
|
|
| Type | Sent By | To |
|
|
|------|---------|-----|
|
|
| `task_assignment` | PM | Specific agent |
|
|
| `priority_change` | PM/Board | Affected agents |
|
|
| `blocker_escalation` | PM | Main PM or other PM |
|
|
| `review_request` | PM | QA or Auditor |
|
|
| `documentation_request` | PM | Documenter |
|
|
| `alert` | Board/Auditor | Anyone |
|
|
| `broadcast` | Board/Main PM | Groups |
|
|
|
|
---
|
|
|
|
## Task Action Permissions
|
|
|
|
### Who Can Perform What Action
|
|
|
|
| Action | Owner | Same-Cell PM | Main PM | Board |
|
|
|--------|:-----:|:------------:|:-------:|:-----:|
|
|
| Claim | ✅ | ✅ | ✅ | ✅ |
|
|
| Start | ✅ | ❌ | ❌ | ❌ |
|
|
| Plan | ✅ | ❌ | ❌ | ❌ |
|
|
| Progress | ✅ | ❌ | ❌ | ❌ |
|
|
| Block | ✅ | ✅ | ✅ | ❌ |
|
|
| Unblock | ✅ | ✅ | ✅ | ❌ |
|
|
| Pause | ✅ | ✅ | ✅ | ❌ |
|
|
| Resume | ✅ | ❌ | ❌ | ❌ |
|
|
| Complete | ❌ | ✅ | ✅ | ✅ |
|
|
| Cancel | ❌ | ✅ | ✅ | ✅ |
|
|
|
|
### Claim Restrictions by Role
|
|
|
|
| Role | Can Claim From Status |
|
|
|------|----------------------|
|
|
| Developer | `pending`, `needs_revision` |
|
|
| QA | `awaiting_qa` |
|
|
| Documenter | `pending`, `awaiting_documentation` |
|
|
| Cell PM | `pending`, `backlog` |
|
|
| Main PM | `pending`, `backlog` |
|
|
|
|
---
|
|
|
|
## Self-Review Prevention
|
|
|
|
| Action | Prevention Rule |
|
|
|--------|-----------------|
|
|
| QA Pass/Fail | Cannot review task where you were the original developer |
|
|
| Docs Complete | Cannot document task where you were the original developer |
|
|
|
|
The system stores `original_developer` in `quick_context` when:
|
|
- Developer submits for QA → QA claims → `original_developer` preserved
|
|
- QA passes → Documenter claims → `original_developer` still preserved
|
|
|
|
---
|
|
|
|
## Team-Based Restrictions
|
|
|
|
| Agent | Can Only Work On Tasks With Team |
|
|
|-------|----------------------------------|
|
|
| be-dev-1, be-dev-2 | `backend` |
|
|
| be-qa | `backend` |
|
|
| be-pm | `backend` |
|
|
| be-doc | `backend` |
|
|
| fe-dev-1, fe-dev-2 | `frontend` |
|
|
| fe-qa | `frontend` |
|
|
| fe-pm | `frontend` |
|
|
| fe-doc | `frontend` |
|
|
| ux-dev-1, ux-dev-2 | `ux_ui` |
|
|
| ux-qa | `ux_ui` |
|
|
| ux-pm | `ux_ui` |
|
|
| ux-doc | `ux_ui` |
|
|
| main-pm | Any |
|
|
| Board | Any |
|