# Action Verb Inventory — C2 canonical reference

Source of truth for every action verb in the platform. Maps each verb to its
tier gate, scope, surfaces, destructive flag, and the short chat prompt a user
would say to invoke it.

Viewer tiers (ascending privilege): `end_user` < `client` < `agency` < `owner`

`Min Tier` = lowest tier that may invoke the verb.
`Scope` = boundary the action operates within: `self` (actor's own data only),
`workspace` (all data within a workspace/org), `platform` (cross-workspace admin).
`Destructive` = Y if the action permanently removes data or revokes access.

---

## agents (12 verbs)

| Verb | Min Tier | Scope | Surfaces | Destructive | Chat Prompt |
|------|----------|-------|----------|-------------|-------------|
| agent.create | agency | workspace | agents, workspace | N | "Create a new agent" |
| agent.update | agency | workspace | agents | N | "Update agent settings" |
| agent.publish | agency | workspace | agents, workspace | N | "Publish this agent" |
| agent.delete | owner | workspace | agents | **Y** | "Delete this agent" |
| agent.eval | agency | workspace | agents, diagnostics | N | "Evaluate agent quality" |
| agent.validate | agency | workspace | agents | N | "Validate agent definition" |
| agent.lint | agency | workspace | agents | N | "Lint agent markdown" |
| agent.compile | agency | workspace | agents | N | "Compile agent to runnable form" |
| agent.sign | owner | workspace | agents | N | "Sign agent package" |
| agent.verify | agency | workspace | agents, diagnostics | N | "Verify agent signature" |
| agent.diff | agency | workspace | agents | N | "Show agent diff" |
| agent.scaffold | end_user | self | agents, marketing | N | "Scaffold a starter agent" |

---

## skills (6 verbs)

| Verb | Min Tier | Scope | Surfaces | Destructive | Chat Prompt |
|------|----------|-------|----------|-------------|-------------|
| skill.import | agency | workspace | skills, workspace | N | "Import a skill" |
| skill.fork | agency | workspace | skills | N | "Fork this skill" |
| skill.refresh | agency | workspace | skills | N | "Refresh skill from source" |
| skill.emit | agency | workspace | skills, workspace | N | "Emit skill signal" |
| skill.delete | owner | workspace | skills | **Y** | "Delete this skill" |

---

## tools (5 verbs)

| Verb | Min Tier | Scope | Surfaces | Destructive | Chat Prompt |
|------|----------|-------|----------|-------------|-------------|
| tool.connect | agency | workspace | tools, settings | N | "Connect a tool" |
| tool.disconnect | owner | workspace | tools | **Y** | "Disconnect this tool" |
| tool.mcp.exposeWorkspace | owner | workspace | tools, settings | N | "Expose workspace via MCP" |
| tool.mcp.toggleTool | agency | workspace | tools | N | "Toggle MCP tool on or off" |
| tool.mcp.listExposed | client | workspace | tools, diagnostics | N | "List exposed MCP tools" |

---

## billing (4 verbs)

| Verb | Min Tier | Scope | Surfaces | Destructive | Chat Prompt |
|------|----------|-------|----------|-------------|-------------|
| billing.upgrade | client | self | billing | N | "Upgrade my plan" |
| billing.openInvoice | client | self | billing | N | "Show my invoices" |
| billing.rotateRecovery | owner | workspace | billing, settings | **Y** | "Rotate billing recovery key" |
| billing.usage.bySurface | client | self | billing, diagnostics | N | "Show usage by surface" |

---

## people (3 verbs)

| Verb | Min Tier | Scope | Surfaces | Destructive | Chat Prompt |
|------|----------|-------|----------|-------------|-------------|
| people.invite | agency | workspace | people, settings | N | "Invite someone to the workspace" |
| people.changeRole | owner | workspace | people | N | "Change a member's role" |
| people.remove | owner | workspace | people | **Y** | "Remove a member" |

---

## settings (3 verbs)

| Verb | Min Tier | Scope | Surfaces | Destructive | Chat Prompt |
|------|----------|-------|----------|-------------|-------------|
| settings.rotateKeys | owner | workspace | settings | **Y** | "Rotate API keys" |
| settings.setTheme | client | self | settings, workspace | N | "Change theme or branding" |
| settings.setDomain | owner | workspace | settings | N | "Set custom domain" |

---

## auth (3 verbs)

| Verb | Min Tier | Scope | Surfaces | Destructive | Chat Prompt |
|------|----------|-------|----------|-------------|-------------|
| auth.listSessions | client | self | settings | N | "List my active sessions" |
| auth.revokeSession | client | self | settings | **Y** | "Revoke a session" |

---

## diagnostics (4 verbs)

| Verb | Min Tier | Scope | Surfaces | Destructive | Chat Prompt |
|------|----------|-------|----------|-------------|-------------|
| signals.trace | agency | workspace | diagnostics | N | "Trace a signal" |
| paths.trace | agency | workspace | diagnostics | N | "Trace a pheromone path" |
| learning.list | agency | workspace | diagnostics | N | "List learned hypotheses" |
| events.tail | agency | workspace | diagnostics | N | "Tail live events" |

---

## Summary

| Group | Verbs | Destructive verbs |
|-------|-------|-------------------|
| agents | 12 | agent.delete |
| skills | 6 | skill.delete |
| tools | 5 | tool.disconnect |
| billing | 4 | billing.rotateRecovery |
| people | 3 | people.remove |
| settings | 3 | settings.rotateKeys |
| auth | 3 | auth.revokeSession |
| diagnostics | 4 | — |
| chat | 6 | chat.delete |
| analytics | 8 | — |
| payments | 6 | payments.refund |
| moderation | 5 | moderation.banActor |
| webhooks | 4 | webhook.delete |
| domains | 4 | domain.delete |
| artifacts | 4 | artifact.delete |
| funnels | 5 | funnel.archive |
| **Total** | **86** | **13** |

---

## chat (6 verbs)

| Verb | Min Tier | Scope | Surfaces | Destructive | Chat Prompt |
|------|----------|-------|----------|-------------|-------------|
| chat.send | end_user | self | chat, workspace | N | "Send a message" |
| chat.warmup | end_user | self | chat | N | "Warm up the chat session" |
| chat.list | client | self | chat | N | "List my chats" |
| chat.export | client | self | chat | N | "Export this conversation" |
| chat.delete | client | self | chat | **Y** | "Delete this conversation" |
| chat.attach | end_user | self | chat | N | "Attach a file to chat" |

---

## analytics (8 verbs)

| Verb | Min Tier | Scope | Surfaces | Destructive | Chat Prompt |
|------|----------|-------|----------|-------------|-------------|
| analytics.overview | agency | workspace | analytics, workspace | N | "Show analytics overview" |
| analytics.acquisition | agency | workspace | analytics | N | "Show acquisition funnel" |
| analytics.engagement | agency | workspace | analytics | N | "Show engagement metrics" |
| analytics.retention | agency | workspace | analytics | N | "Show retention curve" |
| analytics.revenue | agency | workspace | analytics, billing | N | "Show revenue by surface" |
| analytics.toolCalls | agency | workspace | analytics, diagnostics | N | "List tool calls" |
| analytics.exportCSV | owner | workspace | analytics | N | "Export analytics as CSV" |
| analytics.streamWatch | agency | workspace | analytics, diagnostics | N | "Watch analytics live" |

---

## payments (6 verbs)

| Verb | Min Tier | Scope | Surfaces | Destructive | Chat Prompt |
|------|----------|-------|----------|-------------|-------------|
| payments.checkout | end_user | self | payments | N | "Start checkout" |
| payments.x402.charge | agency | workspace | payments | N | "Charge via x402" |
| payments.transfer | owner | workspace | payments, billing | N | "Transfer to recipient" |
| payments.payout | owner | workspace | payments, billing | N | "Payout to bank" |
| payments.refund | owner | self | payments | **Y** | "Refund this payment" |
| payments.listInvoices | client | self | payments, billing | N | "List my invoices" |

---

## moderation (5 verbs)

| Verb | Min Tier | Scope | Surfaces | Destructive | Chat Prompt |
|------|----------|-------|----------|-------------|-------------|
| moderation.flag | client | workspace | moderation, chat | N | "Flag this content" |
| moderation.review | agency | workspace | moderation | N | "Review flagged content" |
| moderation.dismiss | agency | workspace | moderation | N | "Dismiss a flag" |
| moderation.banActor | owner | workspace | moderation, people | **Y** | "Ban this actor" |
| moderation.freezeAgent | owner | platform | moderation, agents | N | "Freeze an agent" |

---

## webhooks (4 verbs)

| Verb | Min Tier | Scope | Surfaces | Destructive | Chat Prompt |
|------|----------|-------|----------|-------------|-------------|
| webhook.create | agency | workspace | webhooks, settings | N | "Add a webhook" |
| webhook.list | agency | workspace | webhooks | N | "List webhooks" |
| webhook.test | agency | workspace | webhooks | N | "Test this webhook" |
| webhook.delete | owner | workspace | webhooks | **Y** | "Delete this webhook" |

---

## domains (4 verbs)

| Verb | Min Tier | Scope | Surfaces | Destructive | Chat Prompt |
|------|----------|-------|----------|-------------|-------------|
| domain.add | owner | workspace | domains, settings | N | "Add a custom domain" |
| domain.verify | owner | workspace | domains | N | "Verify domain DNS" |
| domain.list | agency | workspace | domains, settings | N | "List custom domains" |
| domain.delete | owner | workspace | domains | **Y** | "Remove this domain" |

---

## artifacts (4 verbs)

| Verb | Min Tier | Scope | Surfaces | Destructive | Chat Prompt |
|------|----------|-------|----------|-------------|-------------|
| artifact.save | end_user | self | chat, artifacts | N | "Save this artifact" |
| artifact.list | client | self | artifacts | N | "Show my artifacts" |
| artifact.share | client | self | artifacts | N | "Share this artifact" |
| artifact.delete | client | self | artifacts | **Y** | "Delete this artifact" |

---

## funnels (5 verbs)

| Verb | Min Tier | Scope | Surfaces | Destructive | Chat Prompt |
|------|----------|-------|----------|-------------|-------------|
| funnel.create | agency | workspace | funnels, agents | N | "Create a funnel" |
| funnel.trigger | agency | workspace | funnels | N | "Trigger funnel step" |
| funnel.kpis | agency | workspace | funnels, analytics | N | "Show funnel KPIs" |
| funnel.timeline | agency | workspace | funnels, analytics | N | "Show funnel timeline" |
| funnel.archive | owner | workspace | funnels | **Y** | "Archive this funnel" |

`end_user` visible: `agent.scaffold`
`client` visible (read-only + self-service): billing verbs, auth.listSessions, auth.revokeSession, tool.mcp.listExposed, settings.setTheme
All write ops: `agency` or above
Destructive ops: `owner` only (except `auth.revokeSession` which a `client` may invoke on their own sessions)
