Set the contract

Describe the rules before the agent edits code.

Axiom is set through `app.ax`. The easiest first step is a plain-language outline that a human can review and a coding agent can turn into the contract.

The short path

Use `axiom define --guided` to create or update `axiom/contract-outline.md`. The outline captures purpose, users, agent actions, sensitive data, approvals, forbidden behavior, and audit needs.

axiom init --template local-private-app --agent codex
axiom define --guided

# Then ask the agent:
# Update app.ax from axiom/contract-outline.md
# Run axiom validate app.ax, axiom doctor, and axiom next.

Initial contract

For a new project, the outline helps the user describe what the app is for, what data exists, which narrow capabilities are allowed, and what must never happen.

Later updates

When `app.ax` already exists, the outline includes a current-contract summary so the user can describe only what changed.

Why not auto-merge?

Contract changes can expand what an agent or app is allowed to do. The open-source version starts with a safer workflow: human outline, agent update, deterministic validation, simulations, and generated tests.

capability issue_refund_credit
  policy:
    allow if approval_valid
      and refund_amount_within_policy

    require_approval if refund_requested

    deny if approval_missing
      or agent_approves_own_refund