docs: reflow hard-wrapped prose to one line per paragraph

Markdown and editors soft-wrap on their own, so the manual ~75-char line
breaks across the docs added nothing but noise. Join wrapped prose, list
items, and paragraphs into single lines across 67 docs — README, CLAUDE.md,
deployment, usage, the RAG knowledge base, and the agent role prompts.
Whitespace-only: code fences, tables, and blockquote alerts are byte-identical
and the change is token-verified (no content altered). Applied with a
deterministic reflow tool (committed separately).

Also lands two doc edits that were awaiting commit: the measured under-load
resource numbers in usage.md and the pr_reviewer additions to the
org-structure RAG doc.
This commit is contained in:
Renn F
2026-06-16 23:18:55 +02:00
parent 640a964b88
commit f48106cbb6
67 changed files with 504 additions and 1593 deletions
+10 -25
View File
@@ -1,8 +1,6 @@
# Messaging Tools
There is **no** `roboco_message_*`, `roboco_notify_send`, or
`roboco_session_*` tool. Messaging is a small set of **content tools** on
the `roboco-do` MCP server. They are role-scoped at spawn time.
There is **no** `roboco_message_*`, `roboco_notify_send`, or `roboco_session_*` tool. Messaging is a small set of **content tools** on the `roboco-do` MCP server. They are role-scoped at spawn time.
## Channel post — `say`
@@ -12,8 +10,7 @@ say(channel="backend-cell", text="Starting work on rate limiting", task_id=task_
- `channel` is the slug WITHOUT a leading `#`.
- `task_id` is auto-filled from your active task if omitted.
- Write access varies by role; the gateway returns `not_authorized` and
lists the channels you *can* write to.
- Write access varies by role; the gateway returns `not_authorized` and lists the channels you *can* write to.
Don't invent channel slugs. Call `channels()` first if unsure:
@@ -21,10 +18,7 @@ Don't invent channel slugs. Call `channels()` first if unsure:
channels() # -> {"writable": [...], "readable": [...]}
```
Valid slugs: cell channels (`backend-cell`, `frontend-cell`,
`uxui-cell`); cross-cell (`dev-all`, `qa-all`, `pm-all`, `doc-all`);
management (`main-pm-board`, `board-private`); broadcast
(`announcements`, `all-hands`).
Valid slugs: cell channels (`backend-cell`, `frontend-cell`, `uxui-cell`); cross-cell (`dev-all`, `qa-all`, `pm-all`, `doc-all`); management (`main-pm-board`, `board-private`); broadcast (`announcements`, `all-hands`).
## Direct message (A2A) — `dm`
@@ -34,26 +28,21 @@ dm(recipient="be-qa", text="Quick sanity check: ...", task_id=task_id)
- `recipient` is an agent slug (`be-pm`, `be-dev-1`, `ceo`, ...).
- Auto-creates the conversation; `task_id` auto-fills from your active task.
- Same-cell only. Cross-cell DM is denied by policy — route through your
Cell PM via `escalate_up(task_id, reason)`.
- Same-cell only. Cross-cell DM is denied by policy — route through your Cell PM via `escalate_up(task_id, reason)`.
## Formal notification — `notify` (PM / Board only)
`notify` creates an ack-required notification (distinct from the informal
`say`/`dm`). Only PM roles and the Board may send it; devs / QA / docs use
`say` and `dm`.
`notify` creates an ack-required notification (distinct from the informal `say`/`dm`). Only PM roles and the Board may send it; devs / QA / docs use `say` and `dm`.
```python
notify(target="be-dev-1", text="Task ready for you", priority="normal", task_id=task_id)
```
`priority` is `normal | high | urgent`. `task_id` auto-injects from the
active task when omitted.
`priority` is `normal | high | urgent`. `task_id` auto-injects from the active task when omitted.
## Receiving notifications
Every role with an inbox gets these (so `i_am_idle()` doesn't soft-block
on unread items):
Every role with an inbox gets these (so `i_am_idle()` doesn't soft-block on unread items):
```python
notify_list(unread_only=True, limit=20) # your inbox
@@ -61,14 +50,11 @@ notify_get(notification_id) # read one (marks it read)
notify_ack(notification_id) # acknowledge after handling
```
When `i_am_idle()` reports unread A2A or @mentions, list -> get -> ack,
then idle again. (The Auditor gets `notify_list`/`notify_get` for inbox
visibility but does not ack.)
When `i_am_idle()` reports unread A2A or @mentions, list -> get -> ack, then idle again. (The Auditor gets `notify_list`/`notify_get` for inbox visibility but does not ack.)
## Sessions (PM-or-up only)
Devs / QA / docs participate via channels and DMs and do **not** open
sessions. PMs and the Board link discussion threads to tasks:
Devs / QA / docs participate via channels and DMs and do **not** open sessions. PMs and the Board link discussion threads to tasks:
```python
open_session(task_id, channel="backend-cell", topic="Feature X kickoff",
@@ -76,5 +62,4 @@ open_session(task_id, channel="backend-cell", topic="Feature X kickoff",
link_session(session_id, task_id, is_primary=False)
```
`relationship_type` is `discussion | planning | review | retrospective`.
`link_session` is idempotent; you must own the task you're linking.
`relationship_type` is `discussion | planning | review | retrospective`. `link_session` is idempotent; you must own the task you're linking.