> ## Documentation Index
> Fetch the complete documentation index at: https://veryfront.com/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Orchestrate Work

> Use Work MCP tools to define business outcomes, run executions, update acceptance criteria, and record events.

Use this page when a coding agent needs to run a business process through Veryfront Work. Work gives the process a definition, an execution record, acceptance criteria, and an event timeline that the Work panel can show outside chat.

## Steps

1. Load the Veryfront skill: `load_skill({ "skillId": "veryfront" })`.
2. Treat this page as the source of truth for Work orchestration.
3. Read the Work definition with `get_work` or `get_work_source`.
4. Create or update the Work definition only when the requested process is missing or stale.
5. Create exactly one execution for the run with `create_work_execution`.
6. Keep the returned `execution_id` in the run ledger.
7. Record process transitions and handoffs with `create_work_execution_event`.
8. Update acceptance criteria as evidence changes with `update_work_execution_acceptance_criterion`.
9. Review state with `get_work_execution`, `get_work_execution_events`, or `list_work_execution_events`.
10. Finish with `update_work_execution` and a final status.

## Tool map

| Intent                | Tool                                         | Use                                                                                 |
| --------------------- | -------------------------------------------- | ----------------------------------------------------------------------------------- |
| List definitions      | `list_work`                                  | Find existing Work definitions and execution counts.                                |
| Read a definition     | `get_work` or `get_work_source`              | Get outcome, criteria, source path, and structured source.                          |
| Create a definition   | `create_work`                                | Add a new source-backed Work definition.                                            |
| Update a definition   | `update_work`                                | Change outcome or acceptance criteria.                                              |
| Start an execution    | `create_work_execution`                      | Create one execution for the current process run.                                   |
| List executions       | `get_work_executions`                        | Show recent executions for one Work definition.                                     |
| Read an execution     | `get_work_execution`                         | Read execution status, state, criteria, and events.                                 |
| Update criteria       | `update_work_execution_acceptance_criterion` | Mark one criterion as satisfied, failed, not satisfied, not applicable, or unknown. |
| Add an event          | `create_work_execution_event`                | Append a business-process event.                                                    |
| Read execution events | `get_work_execution_events`                  | Read events for one execution.                                                      |
| Read project events   | `list_work_execution_events`                 | Read the Work Events feed, optionally filtered by Work, execution, type, or actor.  |
| Finish an execution   | `update_work_execution`                      | Set status, state, or summary.                                                      |

## Work definitions

Use a Work definition for the durable business contract. Required criteria are the default. Set `optional: true` only when a criterion doesn't block completion.

Use `acceptance_criteria` in new calls. `expectations` is accepted as a compatibility alias.

```json title="create_work input" theme={null}
{
  "project_reference": "ai-operations",
  "id": "supplier-invoice-processing",
  "name": "Supplier invoice processing",
  "outcome": "Resolve all open supplier invoices.",
  "acceptance_criteria": [
    {
      "id": "invoices_discovered",
      "description": "The supplier invoice queue has been ingested once, including an empty queue result."
    },
    {
      "id": "notify_finance_team",
      "description": "Finance team has been notified when the run requires a notification.",
      "optional": true
    }
  ]
}
```

## Work executions

Create one execution before delegated agents or tools start the business process. Put the original request in `input` and current process facts in `state`.

```json title="create_work_execution input" theme={null}
{
  "project_reference": "ai-operations",
  "work_id": "supplier-invoice-processing",
  "input": {
    "request": "process supplier invoices"
  },
  "state": {
    "stage": "started"
  }
}
```

## Acceptance criteria

Update one criterion whenever new evidence changes the business state. Use `not_applicable` for an optional criterion that doesn't apply to the current run.

```json title="update_work_execution_acceptance_criterion input" theme={null}
{
  "project_reference": "ai-operations",
  "work_id": "supplier-invoice-processing",
  "execution_id": "<execution-uuid>",
  "criterion_id": "invoices_discovered",
  "status": "satisfied",
  "reason": "The ingest agent completed the supplier invoice queue pass.",
  "evidence": [
    {
      "agent_id": "ingest-invoice-agent",
      "child_run_id": "run_123"
    }
  ],
  "actor_kind": "agent",
  "actor_id": "supplier-invoice-orchestrator"
}
```

## Work events

Add events for transitions, specialist handoffs, discrepancies, and summaries. Keep event `type` values stable so the Work Events panel can filter them.

```json title="create_work_execution_event input" theme={null}
{
  "project_reference": "ai-operations",
  "work_id": "supplier-invoice-processing",
  "execution_id": "<execution-uuid>",
  "type": "work_execution.handoff.completed",
  "actor_kind": "agent",
  "actor_id": "supplier-invoice-orchestrator",
  "payload": {
    "child_agent_id": "ingest-invoice-agent",
    "child_run_id": "run_123",
    "result": "Invoice queue ingested"
  }
}
```

To review the project-level Work Events feed, call `list_work_execution_events` with optional filters.

```json title="list_work_execution_events input" theme={null}
{
  "project_reference": "ai-operations",
  "work_id": "supplier-invoice-processing",
  "type": "work_execution.handoff.completed",
  "actor_kind": "agent",
  "limit": 50
}
```

## Finish the run

Read the execution and events before finalizing. Then set the execution status and summary.

```json title="update_work_execution input" theme={null}
{
  "project_reference": "ai-operations",
  "work_id": "supplier-invoice-processing",
  "execution_id": "<execution-uuid>",
  "status": "completed",
  "state": {
    "stage": "complete"
  },
  "summary": "All ingested supplier invoices reached a final process outcome."
}
```

## Next

* [Create an agent](/agent/guides/create-agent)
* [Agent skills](/agent/skills)

## Related

* [MCP](/cloud/mcp): Connect agents to Veryfront control-plane tools.
* [Runs and events](/cloud/runs-and-events): Track execution activity across Veryfront Cloud.
