Skip to content

docs(product): design agent org-management tools (RIG-2673) - #589

Open
rigel-mintaka wants to merge 1 commit into
mainfrom
compass-server/rig-2673-org-mgmt-tools-design
Open

docs(product): design agent org-management tools (RIG-2673)#589
rigel-mintaka wants to merge 1 commit into
mainfrom
compass-server/rig-2673-org-mgmt-tools-design

Conversation

@rigel-mintaka

Copy link
Copy Markdown
Contributor

Design record for exposing agent org-management tools to a Manager agent, so wave parity is reachable from inside the mesh. Design only — no Go/proto/TS ships with this PR; the record is the cross-lane proto contract that compass-agent (transport + tools + prompt) and compass-runner (gateway relay) build against.

What it specifies

The server RPCs already exist on CommsService (operator/UI-facing); the gap is that they are not exposed on the agent gateway. The record adds:

  • create_channel and update_members (subscribe/unsubscribe/join/remove) as new CommsCallRequest/CommsCallResult oneof arms, reusing the existing CreateChannelRequest/UpdateChannelMembersRequest messages verbatim as the arm payloads, executed under the D9 server-resolved caller.
  • create-Manager as optional role/persona fields on the existing SpawnPeerRequest (dropping the Role:""/Persona:"" hardcodes), not a new create-agent arm — spawn stays the single agent-facing agent-creation path.
  • Deferred: create_channel_group stays operator-only.

The proto contract section gives copy-pasteable arm names + field numbers + reused message shapes for the two consuming lanes.

Open Questions (load-bearing, for Matt)

  • OQ-1 role allowlist — designed against no allowlist (service-owner default; role only selects a prompt, not a privilege).
  • OQ-2 persona required-vs-optional — designed against role required, persona optional.
  • OQ-3 (parent group on create_channel) resolved in-design: group_id is optional.

Red-teamed by a design-critic (0 high / 2 medium / 4 low, all folded): gen-mirror location corrected, spawn set-at-creation-only idempotency rider added, ChannelKind enum + channel-policy rider added to the contract, dispatch/doc-comment/error-string enumerations named, runner leg sharpened to regen-only.

Spec-impact: none. Refs RIG-2673 (parent RIG-1681).

Co-authored-by: Matt Wilkinson matt@rigel.build

@linear-code

linear-code Bot commented Aug 24, 2026

Copy link
Copy Markdown

RIG-2673

@github-actions

github-actions Bot commented Aug 24, 2026

Copy link
Copy Markdown

Compass engineering docs preview: https://compass-server-rig-2673-org.compass-eng-docs.pages.dev

Deployed from compass-server/rig-2673-org-mgmt-tools-design at c2e3e1d.

Changed pages:

@rigel-mintaka
rigel-mintaka force-pushed the compass-server/rig-2673-org-mgmt-tools-design branch from 2cbe93e to ced1bda Compare August 24, 2026 19:17
Design record for exposing agent org-management tools to a Manager agent, so wave parity is reachable from inside the mesh. Design only — no Go/proto/TS ships with this PR; the record is the cross-lane proto contract that compass-agent (transport + tools + prompt) and compass-runner (gateway relay) build against.

## What it specifies

The server RPCs already exist on `CommsService` (operator/UI-facing); the gap is that they are not exposed on the agent gateway. The record adds:

- **`create_channel`** and **`update_members`** (subscribe/unsubscribe/join/remove) as new `CommsCallRequest`/`CommsCallResult` oneof arms, reusing the existing `CreateChannelRequest`/`UpdateChannelMembersRequest` messages verbatim as the arm payloads, executed under the D9 server-resolved caller.
- **create-Manager** as optional `role`/`persona` fields on the **existing** `SpawnPeerRequest` (dropping the `Role:""`/`Persona:""` hardcodes), not a new create-agent arm — spawn stays the single agent-facing agent-creation path.
- **Deferred:** `create_channel_group` stays operator-only.

The proto contract section gives copy-pasteable arm names + field numbers + reused message shapes for the two consuming lanes.

## Open Questions (load-bearing, for Matt)

- **OQ-1 role allowlist** — designed against *no allowlist* (service-owner default; role only selects a prompt, not a privilege).
- **OQ-2 persona required-vs-optional** — designed against *role required, persona optional*.
- OQ-3 (parent group on create_channel) resolved in-design: `group_id` is optional.

Red-teamed by a design-critic (0 high / 2 medium / 4 low, all folded): gen-mirror location corrected, spawn set-at-creation-only idempotency rider added, ChannelKind enum + channel-policy rider added to the contract, dispatch/doc-comment/error-string enumerations named, runner leg sharpened to regen-only.

Spec-impact: none. Refs RIG-2673 (parent RIG-1681).

Co-authored-by: Matt Wilkinson <matt@rigel.build>
@rigel-mintaka
rigel-mintaka force-pushed the compass-server/rig-2673-org-mgmt-tools-design branch from ced1bda to c2e3e1d Compare August 24, 2026 19:19
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant