Acceptances
Some changes can break someone else, such as removing a field clients
read. jadpo check fails on them until a person accepts them. An
acceptance is one file per decision, listing every change it allows,
with the reason in a /// line. Each entry is subject: Kind.change,
with the subject and the change copied from the compiler's message:
// acceptances/20261020T1400_remove_todo_priority.jadpo/// Priority was never shown by any client; the mobile app stopped sending it in 3.2.acceptance { changes: { main.TodoView.priority: ApiChange.output_field_removed main.TodoSummary.priority: ApiChange.output_field_removed }}
- It counts only in the change that adds it. Acceptances already on
the before side are history, and editing one is an error.
checkfails when a change needs a person and no added acceptance lists it, when a listed entry matches nothing, or when the reason is missing. - Drafting is a command.
jadpo acceptance new <purpose>writes a file listing every change not yet accepted, with no reason. An agent may run it, then stops: the missing reason keepscheckfailing until a person writes one. - The git host is the gate.
acceptances/andapi/are owned in CODEOWNERS, so the owner's approval of the pull request is what lets a decision in, and the host records who gave it (Review and sign-off).
| Needs a person | Kind | Where it is described |
|---|---|---|
| A route removed, a required input field added, a rule tightened, an output field removed or retyped, a failure code changed | ApiChange |
The public API record |
| A column or table dropped, an entity moved to another store | DataChange |
Migrations |
| Any widening of who can do what, however it arises | PolicyChange |
Policy |
| A domain created or renamed | DomainChange |
Domains |
| A risky package change (Package upgrades) | PackageChange |
Integrations |
| A package's service: a new or changed container image, before it runs | PackageChange |
Integrations |
| Installing a third party's package from git rather than the registry (an unverified publisher) | PackageChange |
Integrations |
| A connection that receives personal data but can't erase it, with the reason the data stays | ErasureNotPossible |
Integrations, Erasure |
| A threshold raised or removed | ThresholdChange |
Monitoring thresholds |
Changes that only add need no acceptance: a new route, a new optional input field, a new output field, tightened policy. The diff still shows them.
Acceptances aren't built yet (What is built).
Markdown for agents: /docs/acceptances.md.Built from Jadpo main at a707efb.