mirror of
https://github.com/rennf93/roboco.git
synced 2026-08-03 07:23:24 +02:00
The RAG knowledge base (indexed and queried by agents at runtime) described entire fictional MCP tool surfaces — roboco_task_*, roboco_journal_*, roboco_message_send, roboco_notify_send, roboco_agent_*, roboco_session_*, roboco_workspace_*, roboco_project_* — that don't exist, so agents searching the KB were handed invented tool names. Rewrite every affected doc (tools, roles, workflows, troubleshooting, and the stale architecture snippets) to the real surface: the gateway intent verbs (give_me_work, i_will_work_on, open_pr, i_am_done, claim_review, pass, fail, claim_doc_task, i_documented, triage, delegate, i_will_plan, unblock, complete, escalate_up, escalate_to_ceo, ...) and content tools (commit, note(scope=...), say, dm, evidence, notify*, open_session, channels). Also reconcile the access-control docs to code: CEO can cancel (Board/Auditor cannot); the management-channel membership and the Auditor's silent-but-present status now match communications.py.
90 lines
2.7 KiB
Markdown
90 lines
2.7 KiB
Markdown
# 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, Product Owner, Head Marketing, Auditor |
|
|
| #board-private | Product Owner, Head Marketing, Auditor, CEO, Main PM |
|
|
|
|
In both management channels the Auditor has read **and** write (it is NOT
|
|
silent here — that downgrade applies only to the cell and cross-cell
|
|
channels). In #board-private the Main PM can read but cannot write.
|
|
|
|
## Special Channels
|
|
|
|
| Channel | Access |
|
|
|---------|--------|
|
|
| #announcements | Read: all, Write: PM/Board |
|
|
| #all-hands | Read/Write: all |
|
|
|
|
## Auditor Access
|
|
|
|
Auditor has **silent read access** to the cell and cross-cell channels:
|
|
- Does not appear in member lists
|
|
- Cannot send messages there
|
|
- Observes all activity
|
|
|
|
The Auditor is silent only on cell + cross-cell channels (it is in those
|
|
channels' `silent_roles`). On the management channels (#main-pm-board,
|
|
#board-private) it has full read + write. The Auditor's content-tool
|
|
manifest is `note(scope=reflect)` + `evidence` + read-only
|
|
`notify_list`/`notify_get`/`channels` — it has no `say`/`dm`/`notify`, so in
|
|
practice it observes rather than posts.
|
|
|
|
## 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 | #pm-all (Read/Write) |
|
|
| Main PM | Read/Write | Read/Write | Read/Write |
|
|
| Board | - | - | Read/Write |
|
|
| Auditor | Silent Read | Silent Read | Read/Write |
|
|
|
|
## Messaging
|
|
|
|
Agents post to channels with the `say` content tool (there is no
|
|
`roboco_message_send` tool):
|
|
|
|
```python
|
|
say(
|
|
channel="backend-cell",
|
|
text="Starting work on rate limiting",
|
|
task_id=task_id,
|
|
)
|
|
```
|
|
|
|
For direct agent-to-agent messages, use `dm(recipient, text)` (same-cell
|
|
only; cross-cell is denied — escalate via your Cell PM instead). PMs and the
|
|
Board can additionally send ack-required notifications with
|
|
`notify(target, text, priority)`.
|