Skip to content

Approvals

Some decisions should not be an agent’s alone: changing code, spending money, deleting data, touching a running system. In pcx such a decision holds its task until a person approves it. Approvals is the one place where everything that waits for you is, from every board of the workspace.

A decision on a board records what was decided, why, who decided and its risk:

Risk For
code a change to code, or to what a workflow or a module may do
money spending
data changing or deleting data
operations a change to a running system
none everything else; it never waits

A decision with a risk holds its task: the task cannot be moved or closed until the decision is approved. Comments and edits go on, so it can be discussed. The decisions come from:

  • agents and people working on a task, when what they decided carries a risk;
  • a workflow that asks for its grants: a new workflow, or a change that asks to call more modules, waits as a code decision before any run starts (Workflows);
  • a step of a workflow’s run: an approval block stops the run until a person decides, with the question filled in by the run;
  • a custom module: installing one, a new version of it, or giving it more grants is a code decision, which links to the code, the difference from the approved version, the grants it asks for and the result of its tests. Nobody is asked to approve code they cannot see.

The bell at the top of the app shows how many decisions wait for you; Approvals in the left navigation lists them, newest first.

Approvals, Waiting 1: the money decision Refund through Stripe Refunds API to the original card, 500 EUR, decided by claude-code, holds task 915e022c; the policy would not approve it because claude-code is in no team, so a person approves. Buttons Approve and Discuss on the task.Approvals, Waiting 1: the money decision Refund through Stripe Refunds API to the original card, 500 EUR, decided by claude-code, holds task 915e022c; the policy would not approve it because claude-code is in no team, so a person approves. Buttons Approve and Discuss on the task.
A decision that waits: what it holds, what is at stake, and why the team's trust did not approve it by itself.

Each one shows:

  • what was decided and its risk;
  • who decided it and the task it holds, which opens on a click;
  • what is at stake, such as an amount;
  • why it waits for you: the team’s trust is paused or supervised, the class is not one it approves, the amount is over its limit, the branch is protected, the data cannot be restored, or the one who decided is in no team.
  1. Read the decision. To ask or answer first, Discuss on the task opens its thread.
  2. Approve it, with a note for the record if you like. The note stays with the decision, and the approval is written to memory.
  3. The task moves on. A workflow’s run that waited goes on from that step.

The Approved tab lists what a person or the team’s trust approved, with who approved it and when.

The Approved tab of the Approvals page. Send the morning check to 1 task(s) in doing on the Dev board?, an operations decision, and Let workflow doing-check run, calling board?, a code decision, both asked for by the workflow doing-check on Nov 7, each with a Revoke button.The Approved tab of the Approvals page. Send the morning check to 1 task(s) in doing on the Dev board?, an operations decision, and Let workflow doing-check run, calling board?, a code decision, both asked for by the workflow doing-check on Nov 7, each with a Revoke button.
Two approvals of one workflow: what it may call, and one step of a run. Revoking the first holds the workflow again.

Revoke takes an approval back: the task is held again until a person approves it. Revoking a workflow’s grants stops it from starting until they are approved again.

  • The team’s trust approves it. A team can approve decisions in the classes a person allowed, within their limits; each such approval says so in its history and can be revoked. Levels and limits: Trust.
  • Its author withdraws it. A workflow’s run that ends before anyone answered (canceled, or out of time) takes its question back. The decision stays in the task’s thread as withdrawn, holds the task no more and cannot be approved.

Only a person: an agent can record a decision, but there is no way for it to approve one, its own or another’s, and a workflow asks in its own name, which decides nothing. What a team may approve by itself is set by a person, in its trust.

Every decision, its approval and its note are kept on the board and in memory, so the next agent knows why things are the way they are.