opbox

The cross-workspace-task.* family (4 verbs). Every verb enters through the one front door: it is capability-checked, permission-checked, scope-checked and audited before it runs (see Security & permissions). Each entry below lists its capability, risk class (which fixes the minimum autonomy level), the minimum caller permission, its availability tier, whether it is idempotent, and any outbound egress.

cross-workspace-task.create

PropertyValue
Capabilityoversight.write
Risk classSensitive - autonomy L2
Min. permissionMember
AvailabilityOn demand (MCP tier 2)
IdempotentNo
EgressNone - in-box (pure Postgres, no outbound call)

(DEFERRED). Mint an EXTERNAL_SIGNOFF task. RLS scope = origin_org_id = ctx.workspace_id; target_org_id is a plain column (the cross-workspace counterpart).

Call POST /v/cross-workspace-task.create with a JSON body; returns JSON (or { error, code }). Also exposed as the MCP tool cross-workspace-task.create.

cross-workspace-task.resolve

PropertyValue
Capabilityoversight.write
Risk classWrite - autonomy L1
Min. permissionMember
AvailabilityOn demand (MCP tier 2)
IdempotentYes
EgressNone - in-box (pure Postgres, no outbound call)

(DEFERRED). The POST-COMMIT MIRROR of the signoff outcome. (PENDING|VIEWED) -> (APPROVED|REJECTED), fenced origin_org_id = ctx.workspace_id. Idempotent on re-run. { taskId, status (APPROVED|REJECTED), actionedById?, actionNote? }.

Call POST /v/cross-workspace-task.resolve with a JSON body; returns JSON (or { error, code }). Also exposed as the MCP tool cross-workspace-task.resolve.

cross-workspace-task.set-token

PropertyValue
Capabilityoversight.write
Risk classSensitive - autonomy L2
Min. permissionMember
AvailabilityOn demand (MCP tier 2)
IdempotentNo
EgressNone - in-box (pure Postgres, no outbound call)

(DEFERRED). Store the re-signed JWT (which embeds the now-minted task id) after create. Fenced origin_org_id = ctx.workspace_id. { taskId, accessToken, accessTokenExpiresAt? }.

Call POST /v/cross-workspace-task.set-token with a JSON body; returns JSON (or { error, code }). Also exposed as the MCP tool cross-workspace-task.set-token.

cross-workspace-task.view

PropertyValue
Capabilityoversight.write
Risk classWrite - autonomy L1
Min. permissionExternal (portal / signer token)
AvailabilityOn demand (MCP tier 2)
IdempotentYes
EgressNone - in-box (pure Postgres, no outbound call)

(DEFERRED). The TARGET side marks PENDING -> VIEWED. Fenced target_org_id = ctx.workspace_id (reached via a target-workspace seat). Idempotent. { taskId }.

Call POST /v/cross-workspace-task.view with a JSON body; returns JSON (or { error, code }). Also exposed as the MCP tool cross-workspace-task.view.