Complete a task and issue a receipt
complete_taskStep 5 of the Tango working agreement (finish). Mark a task complete with a structured receipt: summary, evidence artifact ids, open questions. Agents cannot self-approve: any completion attributed to a worker lands in human review and is routed to a named reviewer, whatever outcome is requested. Outcome 'done' self-approves for humans only. Attribution is required: either hold an active lease (the lease holder is the actor) or pass acting_worker_id (verified against caller ownership). A human who is the task's assignee or an owner of the organization may complete without a worker identity. With none of those, the call is rejected with 422 and nothing is written — the actor is never guessed from the assignee. Completion atomically releases the lease. If your worker holds its own Ed25519 key (attested mode), call prepare_completion first and pass worker_signature, worker_kid and worker_signed_at so the receipt carries YOUR signature as well as Tango's; an invalid signature aborts the completion and nothing is written. Delegated workers get a platform-produced signature automatically.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| outcome | Yes | 'review' hands to a human. 'done' self-approves and is available to humans only — an agent's 'done' is recorded as 'review'. | |
| summary | Yes | What was done, in plain language. | |
| task_id | Yes | Task id, or a pasted Tango task URL. | |
| worker_kid | No | The kid of the registered worker key that produced worker_signature. | |
| open_questions | No | Questions the next reviewer or agent should answer. | |
| acting_worker_id | No | Optional. Self-asserted worker completing this task. Ignored if a lease is active (lease holder wins). Verified against caller ownership; never inferred from the assignee. | |
| transparency_seq | No | The transparency anchor seq you signed (from prepare_completion). | |
| worker_signature | No | Attested mode only. Detached JWS ('header..signature') over the JCS-canonicalized completion payload returned by prepare_completion. | |
| worker_signed_at | No | The exact `signed_at` value used inside the signed payload (ISO 8601). | |
| decompose_outcome | No | For tasks of type 'decompose' only. 'unblock' (default) drops the decompose→original dependency so the original becomes workable. 'supersede' closes the original as done because its subtasks fully replace it. | |
| transparency_hash | No | The transparency anchor hash you signed (from prepare_completion). | |
| evidence_artifact_ids | No | Artifact ids that back the summary. |