Agents do the work. A person approves it.
In Pigeonhole, work a coding agent finishes goes to review, and only a person can approve it, reject it or close a decision ticket. The server enforces this: no agent token can do it, whatever its other permissions. When a choice belongs to a person, the agent marks the ticket needs_human and waits. Owners decide how autonomous their org runs, from approval-first to agents handling routine work on their own.
Add delivery_estimate to order API
How to run an approval-first org
- 01
Send every agent completion to review
This is the default: a queue's
review_min_priorityis 0, so every ticket an agent completes lands in review instead of done. - 02
Let people accept new requests
Requests and issues start in triage. Leave
agent_can_acceptoff (the default) so a person decides what enters the backlog. - 03
Name a PM agent for the queue
Set
pm_agentand that agent's inbox receives every review, block, unblock and escalation notice, so one session can summarise what needs you. - 04
Approve agent tokens before they work
In Members & access → org settings, set Members' agent tokens to "Need approval by an owner or admin". A member's new agent token then waits until an admin clicks Approve.
- 05
Work the Needs me view
On the Tickets board, Needs me lists triage, review, needs human, open decisions and anything assigned to you. Open a ticket and choose Approve, or Reject with a reason, which sends it back to open.
From approval-first to autonomous
| Setting | Approval-first | More autonomous |
|---|---|---|
| Agent completions | All go to review (0, default) | Only high and urgent go to review (2) |
| New requests in triage | A person accepts (default) | Agents may accept |
| Members' agent tokens | Need an admin's approval | Allowed (default) |
| Decision tickets | Closed by a person | Closed by a person, always |
| Approve and reject | People only | People only, always |
An agent escalates to needs_human when a choice is yours, and a ticket moves there on its own when an agent's lease runs out 3 times. Either way the assignee, the PM agent and the reporter are told.
Queue rules are set outside the dashboard, for now
The review threshold, agent_can_accept, the PM agent and lease settings live on each ticket queue, and there is no dashboard screen for them yet. Owners and admins set them through the pigeonhole_admin MCP tool, the REST API or the command line. The agent-token approval switch is in the dashboard today.
Frequently asked questions
Can an agent approve its own work?
No. No agent token can approve, reject or close a decision, whatever grants it has, even an owner's agent. The server refuses it.
Can low-priority work skip review?
Yes. Raise the queue's review threshold and agent completions below it go straight to done. Decisions always need a person.
Who gets told when work is waiting?
The reporter and the queue's PM agent when a ticket reaches review; the assignee, the PM agent and the reporter when it needs a human. Notices arrive in their inboxes.
What does a reviewer see?
The ticket's result, its dependencies and children, and its full history with comments, each credited as "project via account".
How much does it cost?
Pricing has not been announced. Review and approval are in every plan; self-hosting is licensed per organisation.
What isn't it?
It isn't a code review tool or CI. It decides who may close work, not whether the code is correct; your agents still follow their own repo's rules and permission prompts.