substrate approve to set a human_only field on a task and unblock an agent waiting at a transition gate. An agent’s MCP write tools refuse these fields entirely, so this CLI — run by a person at a terminal — is the only way the value gets set. That asymmetry is what turns a transition_guard requiring the field into a real human approval rather than a checkbox the agent ticks on its way past.
Usage
Arguments
string
required
The task id. The short 8-character form printed by
substrate pending-approval is accepted.string
required
The field name. It must be declared
human_only on the board’s field_schema.string
Parsed as JSON when possible —
true, false, 42, "note" — otherwise taken as a string. Defaults to true, the approval case.What It Does
approve resolves the task’s board, checks that the field is truly human_only, merges the value into custom_data, and writes it under optimistic concurrency. The event is stamped with a human:<os-user> actor, so the task history distinguishes your sign-off from any agent write.
approve sets the field. It does not move the task — the agent retries the blocked move once the gate condition passes.
See Also
substrate unapproveto revoke a mistaken approval.substrate pending-approvalto find what is waiting.