Two sovereigns

The running jobjob_7Hq2 · waiting · on approval · $49.00 held

The member's no and the client's yes. A member's decline can't be overridden, and a client's decision on their own merits can't be undone. The gate holds both, against the brand, a reseller, the buyer and the AI.

Two people in a job hold something no one else can take from them. The member's judgment on their own act is theirs: they may say no. The client's decisions on their own affairs are theirs: only they say yes. A Service doesn't ask its brand to keep to this. The gate holds it, the same way for AI, your code, the buyer, a reseller and you.

A member may decline any Task on its merits, with a memo only the client reads; a conflict is a step aside instead (decline or step aside?). The decline is paid, never scored, and final. From that moment the gate's direction check refuses every other way forward. The owner can't approve past it:

Call
→ POST /owner/matters/job_7Hq2/approve   # the owner console
magic values: none
← 409 needs_direction: A signer declined, and only the client's direction moves the matter on.

The buyer can't cancel it, and the owner can't hand the Task to someone else. Only the client's direction moves the job, to another member they name or to an end, and they can't name the member who declined. Declines and direction walks it.

Merits are the client's alone: the values that decide the outcome for them, such as the least they will settle for. A Service declares one with binds: 'merits', and the gate takes it only from the client. The brand, at its own console, is refused:

Call
→ POST /owner/jobs/job_7Hq2/policy {"policy":{"match":0.7}}
403 · magic values: none
{
  "type": "BLOCKED",
  "category": "blocked",
  "code": "merits_not_yours",
  "reason": "match binds the merits, and only the client sets them.",
  "param": "policy.match",
  "next": {
    "do": "get",
    "arguments": {
      "id": "job_7Hq2"
    },
    "tool": "get_job",
    "http": "GET http://localhost:8787/jobs/job_7Hq2?wait=50"
  },
  "doc_url": "http://localhost:8787/docs/errors/merits_not_yours",
  "request_id": "req_yvQQ1S",
  "simulated": true
}

A rules row with client: true makes an act the client's decision alone. Whether to settle a demand, and for how much, is one:

Run
npx services.dev check   # each Service's bounds line
magic values: none
  bounds  reserved sign to bar admission where the client is · the attorney sells the fee · open send and courier · the client decides settle, alone · refused litigate

The step is an ask to the client. No guard, policy, reseller, escalation or fill rung may perform it or block it, and check fails client_decision_gated on a Service whose step isn't one. Once the client decides, no mechanics change undoes it.

AI delivers by default, and people come in where you want them or the work needs them. When they do, their part has to be real. A credentialed person who can be overridden isn't performing the act, and a client whose decision can be undone isn't deciding. So neither is a setting: both are checks the gate runs before it commits anything, and both refuse with the same answer shape as every other refusal. Propose, then the gate commits has the checks in order.