opbox

The scheduledtask.* family (5 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.

Createscheduledtask.create

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

workspace_id from ctx; created_by_id from the acting human (rule 2).

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

Claimscheduledtask.cron.claim

PropertyValue
Capabilityworkflow.write
Risk classWrite - autonomy L1
Min. permissionAdmin
AvailabilityAdmin only (CLI/HTTP; never advertised over MCP)
IdempotentNo
EgressNone - in-box (pure Postgres, no outbound call)

Only (tick). CAS: claim iff next_run_at matches. The claim IS the idempotency/concurrency fence (the loser sees claimed=false). BEARERLESS.

Call POST /v/scheduledtask.cron.claim with a JSON body; returns JSON (or { error, code }). Not advertised over MCP (admin-only); reachable via the CLI and HTTP doors.

Deletescheduledtask.delete

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

Cascades scheduled_task_runs. Fenced by workspace_id.

Call POST /v/scheduledtask.delete with a JSON body; returns JSON (or { error, code }). Also exposed as the MCP tool scheduledtask.delete.

Createscheduledtask.run.create

PropertyValue
Capabilityworkflow.write
Risk classWrite - autonomy L1
Min. permissionAdmin
AvailabilityAdmin only (CLI/HTTP; never advertised over MCP)
IdempotentNo
EgressNone - in-box (pure Postgres, no outbound call)

Only (cron). Fence the parent scheduled_task in ctx.workspace_id; mint the run row. BEARERLESS.

Call POST /v/scheduledtask.run.create with a JSON body; returns JSON (or { error, code }). Not advertised over MCP (admin-only); reachable via the CLI and HTTP doors.

Updatescheduledtask.update

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

Partial patch fenced by workspace_id (direct column).

Call POST /v/scheduledtask.update with a JSON body; returns JSON (or { error, code }). Also exposed as the MCP tool scheduledtask.update.