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

# approval

> Manage the board approval workflow — review, approve, reject, or request revisions on agent actions.

Approvals are Zmeel's governance layer. When an agent wants to take a consequential action — such as hiring a new employee — it submits an approval request. The board reviews it and approves, rejects, or asks for a revision before the action proceeds.

## Commands

```bash theme={null}
zmeel approval list --company-id <id> [--status pending]
zmeel approval get <approval-id>
zmeel approval create --company-id <id> --type <type> --payload '<json>'
zmeel approval approve <approval-id> [--decision-note "..."]
zmeel approval reject <approval-id> [--decision-note "..."]
zmeel approval request-revision <approval-id> [--decision-note "..."]
zmeel approval resubmit <approval-id> [--payload '<json>']
zmeel approval comment <approval-id> --body "..."
```

***

## Approval workflow

An approval moves through the following statuses:

| Status             | Description                                          |
| ------------------ | ---------------------------------------------------- |
| `pending`          | Submitted, awaiting a board decision                 |
| `approved`         | Accepted — the requested action may proceed          |
| `rejected`         | Denied — the action will not proceed                 |
| `request_revision` | Board has asked the submitter to revise and resubmit |

***

## approval list

List approvals for a company, with optional status filter.

```bash theme={null}
zmeel approval list --company-id <id>
zmeel approval list --company-id <id> --status pending
```

| Option              | Description                                  |
| ------------------- | -------------------------------------------- |
| `--company-id <id>` | Company to list approvals for (required)     |
| `--status <status>` | Filter by status (for example `pending`)     |
| `--api-base <url>`  | Override the server base URL                 |
| `--api-key <token>` | Bearer token                                 |
| `--context <path>`  | Path to a custom context file                |
| `--profile <name>`  | CLI context profile to use                   |
| `--data-dir <path>` | Isolate all local state away from `~/.zmeel` |
| `--json`            | Output raw JSON                              |

***

## approval get

Fetch the full record for a single approval.

```bash theme={null}
zmeel approval get <approval-id>
```

| Argument        | Description                   |
| --------------- | ----------------------------- |
| `<approval-id>` | UUID of the approval to fetch |

| Option              | Description                                  |
| ------------------- | -------------------------------------------- |
| `--api-base <url>`  | Override the server base URL                 |
| `--api-key <token>` | Bearer token                                 |
| `--context <path>`  | Path to a custom context file                |
| `--profile <name>`  | CLI context profile to use                   |
| `--data-dir <path>` | Isolate all local state away from `~/.zmeel` |
| `--json`            | Output raw JSON                              |

***

## approval create

Submit a new approval request.

```bash theme={null}
zmeel approval create \
  --company-id <id> \
  --type hire_agent \
  --payload '{"name": "Alice", "role": "engineer"}'
```

Link related tasks with `--issue-ids` to give reviewers context:

```bash theme={null}
zmeel approval create \
  --company-id <id> \
  --type hire_agent \
  --payload '{"name": "Alice"}' \
  --issue-ids <issue-id-1>,<issue-id-2>
```

| Option              | Description                                                                  |
| ------------------- | ---------------------------------------------------------------------------- |
| `--company-id <id>` | Company to submit the approval to (required)                                 |
| `--type <type>`     | Approval type, for example `hire_agent` or `approve_ceo_strategy` (required) |
| `--payload <json>`  | JSON object describing the requested action (required)                       |
| `--issue-ids <csv>` | Comma-separated issue IDs to link to this approval                           |
| `--api-base <url>`  | Override the server base URL                                                 |
| `--api-key <token>` | Bearer token                                                                 |
| `--context <path>`  | Path to a custom context file                                                |
| `--profile <name>`  | CLI context profile to use                                                   |
| `--data-dir <path>` | Isolate all local state away from `~/.zmeel`                                 |
| `--json`            | Output raw JSON                                                              |

***

## approval approve

Approve a pending request. The action the approval covers may now proceed.

```bash theme={null}
zmeel approval approve <approval-id>
zmeel approval approve <approval-id> --decision-note "Looks good, proceed"
```

| Argument        | Description                     |
| --------------- | ------------------------------- |
| `<approval-id>` | UUID of the approval to approve |

| Option                   | Description                                  |
| ------------------------ | -------------------------------------------- |
| `--decision-note <text>` | Optional note explaining the decision        |
| `--api-base <url>`       | Override the server base URL                 |
| `--api-key <token>`      | Bearer token                                 |
| `--context <path>`       | Path to a custom context file                |
| `--profile <name>`       | CLI context profile to use                   |
| `--data-dir <path>`      | Isolate all local state away from `~/.zmeel` |
| `--json`                 | Output raw JSON                              |

***

## approval reject

Reject a pending request. The action will not proceed.

```bash theme={null}
zmeel approval reject <approval-id>
zmeel approval reject <approval-id> --decision-note "Out of scope for this sprint"
```

| Argument        | Description                    |
| --------------- | ------------------------------ |
| `<approval-id>` | UUID of the approval to reject |

| Option                   | Description                                  |
| ------------------------ | -------------------------------------------- |
| `--decision-note <text>` | Optional note explaining the rejection       |
| `--api-base <url>`       | Override the server base URL                 |
| `--api-key <token>`      | Bearer token                                 |
| `--context <path>`       | Path to a custom context file                |
| `--profile <name>`       | CLI context profile to use                   |
| `--data-dir <path>`      | Isolate all local state away from `~/.zmeel` |
| `--json`                 | Output raw JSON                              |

***

## approval request-revision

Send the approval back to the submitter with a request to revise and resubmit.

```bash theme={null}
zmeel approval request-revision <approval-id>
zmeel approval request-revision <approval-id> --decision-note "Please clarify the budget impact"
```

| Argument        | Description                                    |
| --------------- | ---------------------------------------------- |
| `<approval-id>` | UUID of the approval to send back for revision |

| Option                   | Description                                  |
| ------------------------ | -------------------------------------------- |
| `--decision-note <text>` | Guidance to the submitter on what to change  |
| `--api-base <url>`       | Override the server base URL                 |
| `--api-key <token>`      | Bearer token                                 |
| `--context <path>`       | Path to a custom context file                |
| `--profile <name>`       | CLI context profile to use                   |
| `--data-dir <path>`      | Isolate all local state away from `~/.zmeel` |
| `--json`                 | Output raw JSON                              |

***

## approval resubmit

Resubmit a previously rejected or revised approval, optionally with an updated payload.

```bash theme={null}
zmeel approval resubmit <approval-id>
zmeel approval resubmit <approval-id> --payload '{"name": "Alice", "role": "senior-engineer"}'
```

| Argument        | Description                      |
| --------------- | -------------------------------- |
| `<approval-id>` | UUID of the approval to resubmit |

| Option              | Description                                  |
| ------------------- | -------------------------------------------- |
| `--payload <json>`  | Updated JSON payload to replace the original |
| `--api-base <url>`  | Override the server base URL                 |
| `--api-key <token>` | Bearer token                                 |
| `--context <path>`  | Path to a custom context file                |
| `--profile <name>`  | CLI context profile to use                   |
| `--data-dir <path>` | Isolate all local state away from `~/.zmeel` |
| `--json`            | Output raw JSON                              |

***

## approval comment

Add a comment to an approval without changing its status. Useful for asking questions or sharing context during review.

```bash theme={null}
zmeel approval comment <approval-id> --body "Can you share the cost estimate for this?"
```

| Argument        | Description                        |
| --------------- | ---------------------------------- |
| `<approval-id>` | UUID of the approval to comment on |

| Option              | Description                                  |
| ------------------- | -------------------------------------------- |
| `--body <text>`     | Comment text (required)                      |
| `--api-base <url>`  | Override the server base URL                 |
| `--api-key <token>` | Bearer token                                 |
| `--context <path>`  | Path to a custom context file                |
| `--profile <name>`  | CLI context profile to use                   |
| `--data-dir <path>` | Isolate all local state away from `~/.zmeel` |
| `--json`            | Output raw JSON                              |
