{
"mode": "macp.mode.task.v1",
"initiator": "agent://planner",
"participants": [
"agent://planner",
"agent://worker"
],
"mode_version": "1.0.0",
"configuration_version": "cfg-1",
"policy_version": "",
"ttl_ms": 60000,
"messages": [
{
"sender": "agent://worker",
"message_type": "TaskRequest",
"payload_type": "macp.modes.task.v1.TaskRequestPayload",
"payload": {
"task_id": "t1",
"title": "Build",
"instructions": "Do it",
"requested_assignee": "agent://worker",
"deadline_unix_ms": 0
},
"expect": "reject",
"expected_error_code": "FORBIDDEN"
},
{
"sender": "agent://planner",
"message_type": "TaskRequest",
"payload_type": "macp.modes.task.v1.TaskRequestPayload",
"payload": {
"task_id": "t1",
"title": "Build",
"instructions": "Do it",
"requested_assignee": "agent://worker",
"deadline_unix_ms": 0
},
"expect": "accept"
},
{
"sender": "agent://planner",
"message_type": "TaskRequest",
"payload_type": "macp.modes.task.v1.TaskRequestPayload",
"payload": {
"task_id": "t2",
"title": "Another",
"instructions": "Do more",
"requested_assignee": "agent://worker",
"deadline_unix_ms": 0
},
"expect": "reject",
"expected_error_code": "INVALID_ENVELOPE"
},
{
"sender": "agent://worker",
"message_type": "TaskAccept",
"payload_type": "macp.modes.task.v1.TaskAcceptPayload",
"payload": {
"task_id": "t1",
"assignee": "agent://worker",
"reason": "ready"
},
"expect": "accept"
},
{
"_comment": "RFC-MACP-0009 Section 4 (:31, :58) and Section 5 rule 4 (:73): TaskUpdate does not carry an explicit assignee field -- authorship is validated via the Envelope sender, which MUST match the active assignee. A non-assignee sender (here, the requester) MUST be rejected.",
"sender": "agent://planner",
"message_type": "TaskUpdate",
"payload_type": "macp.modes.task.v1.TaskUpdatePayload",
"payload": {
"task_id": "t1",
"status": "in_progress",
"progress": 0.5,
"message": "requester is not the active assignee"
},
"expect": "reject",
"expected_error_code": "FORBIDDEN"
},
{
"sender": "agent://worker",
"message_type": "TaskUpdate",
"payload_type": "macp.modes.task.v1.TaskUpdatePayload",
"payload": {
"task_id": "t1",
"status": "in_progress",
"progress": 0.5,
"message": "halfway through"
},
"expect": "accept"
}
],
"expected_final_state": "Open"
}