Approvals
Last updated 10 September 2026
Ghillie asks before anything that counts. The line between reading and acting is set by policy, enforced by Ghillie, and never left to the model.
The rule
Reading is free. Acting on the outside world is not. Any step that sends a message to another person, spends money, or deletes or changes something real requires an enforced approval before it happens. "Enforced" means the tool call is held by Ghillie until you say yes, not that the model has been asked nicely to check first.
What you see
An approval is an exact-effect preview: which Power, which arguments, which messages or records it will touch. If a step's arguments came from an earlier step, they are shown already resolved, so you are approving the thing that will actually run. You confirm or deny.
| Where | How |
|---|---|
| Mac app | Inbox lists every pending review. Open it, read the effect, confirm or deny. |
| Telegram | /approvals reopens every pending review with confirm and deny buttons. |
| Microsoft Teams | Not yet. Teams can start work; approvals stay in the Mac app. |
| Project board | Waiting work sits in Needs input. The board shows it; it cannot approve it. |
What cannot happen
- A model cannot expand its own tool or filesystem scope. It works inside the lease it was given.
- A board action cannot approve, start, complete or cancel a run.
- Turning a Power on is not an approval of anything it might later do.
- An approval covers the exact effect shown. A different argument is a different approval.
Tests are held to the same line
When you are drafting a new Power, its read tests run straight away, but a consequential test exposes its full effect plan and waits for you, exactly as a live run would.