The example bundle, browsed
This table is real compiled output, not prose someone wrote by hand. Anvil’s
compiler ran over
examples/payments
— its openapi.yaml plus the anvil.yaml manifest that fills in what the spec
left out — via node scripts/gen-docs-data.mjs. A test,
packages/generators/src/docs-data.test.ts, recompiles the example on every run
and fails if this page ever stops matching what the compiler produces. If you
can read it here, the toolchain agrees with it.
Each row is one operation. The CLI command, the MCP tool, and the skill that describes them are all generated from the same entry in the shared model — which is why they can’t disagree about what the operation does.
| Operation | CLI command | MCP tool | Effect | Risk | Safety posture | State |
|---|---|---|---|---|---|---|
| payments.customers.get Get a customer | payments customers get | payments_get_customer | read | read | retry-safe | approved |
| payments.payments.get Get a payment | payments payments get | payments_get_payment | read | read | retry-safe | approved |
| payments.refunds.create Create a refund | payments refunds create | payments_create_refund | mutation | financial· irreversible | confirm requiredidempotency keyretry-safe | approved |
| payments.capture.create Capture a payment | payments capture create | payments_capture_payment | mutation | financial· irreversible | confirm requiredretry-safe | approved |
Reading the safety columns
Section titled “Reading the safety columns”- Effect / risk — the classifier’s verdict on what the operation does. Reads
are low-stakes; the two
financialmutations can’t be undone, which is why they’re gated more tightly. - Confirm required — the tools refuse the call until an explicit
--confirm(CLI) orconfirm: true(MCP). Human approval is the stricter tier: the model can’t confirm its own way past it — a person has to. - Idempotency key — the operation demands
--idempotency-key, so a repeated call can’t double-refund a customer. - Retry-safe — whether the runtime may auto-retry a transient failure. An operation that isn’t safe to repeat is never auto-retried.
Approved vs. review required
Section titled “Approved vs. review required”The state column is the approval gate. Only approved operations reach the
generated CLI, MCP server, and skill. A review_required operation still exists
in the model but is left out of every generated tool until a human approves it
— usually after a manifest fills in the missing facts (that it’s safe to repeat,
say, or how risky it is).
Every operation above is already approved, because the example’s anvil.yaml
manifest did that work up front. To see how an operation moves from
review_required to approved, read
the enrich → approve workflow.