# `jadpo acceptance`

Draft a person's acceptance.

Some changes need a person to accept them (area 18): an API break, a widening of who can do what, a new outside host, a new domain, a package from git. `new` writes acceptances/<stamp>_<purpose>.jadpo listing every such change since the default branch at its merge base that no acceptance this change adds lists yet, with no reason. A person writes the reason on a /// line above `acceptance`; until then `jadpo check` fails. An agent runs it, then stops and hands over.

```text
jadpo acceptance <action> [purpose]
```

## Arguments

- `action`: What to do
- `purpose` (optional): The decision it records, in lower_snake_case

## Flags

- `--before <ref>`: The branch or commit to compare with

## On every command

- `--json`: Print data for tools instead of text
- `--help`: Show every flag, with examples
- `--color <when>`: Choose when to use colour

`jadpo acceptance --json` writes one JSON document to standard output instead of text, with the same exit code. The document has `schemaVersion`, `command` (`"acceptance"`), `ok`, `data` (what the command produced, `null` when it failed) and `diagnostics` (each error with its `rule`, `reason`, `next` and `help`). A command that needs a terminal refuses `--json` and names the flags that do the same job.

## Examples

```text
# Draft the acceptance of an API break
jadpo acceptance new accept_the_api_break
```

## Errors

- [`cli.acceptance_arguments`](../errors/cli.acceptance_arguments.md): Acceptance command has invalid arguments
- [`acceptance.base_missing`](../errors/acceptance.base_missing.md): Base commit the change is compared with isn't in this clone
- [`toolchain.artifact_write_failed`](../errors/toolchain.artifact_write_failed.md): Generated file could not be written
- [`toolchain.project_not_found`](../errors/toolchain.project_not_found.md): Project could not be found
