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
| Property | Value |
|---|---|
| Capability | workflow.write |
| Risk class | Write - autonomy L1 |
| Min. permission | Member |
| Availability | On demand (MCP tier 2) |
| Idempotent | No |
| Egress | None - 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
| Property | Value |
|---|---|
| Capability | workflow.write |
| Risk class | Write - autonomy L1 |
| Min. permission | Admin |
| Availability | Admin only (CLI/HTTP; never advertised over MCP) |
| Idempotent | No |
| Egress | None - 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
| Property | Value |
|---|---|
| Capability | workflow.write |
| Risk class | Sensitive - autonomy L2 |
| Min. permission | Member |
| Availability | On demand (MCP tier 2) |
| Idempotent | Yes |
| Egress | None - 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
| Property | Value |
|---|---|
| Capability | workflow.write |
| Risk class | Write - autonomy L1 |
| Min. permission | Admin |
| Availability | Admin only (CLI/HTTP; never advertised over MCP) |
| Idempotent | No |
| Egress | None - 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
| Property | Value |
|---|---|
| Capability | workflow.write |
| Risk class | Write - autonomy L1 |
| Min. permission | Member |
| Availability | On demand (MCP tier 2) |
| Idempotent | No |
| Egress | None - 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.