13
Human Review In Slack
Escalated invoices arrive in Slack with approve and reject buttons, behind the same rules as the command line.
What it measured
Tested live in a real workspace. The app refused a second approval from the person who made the first, refused and logged an unknown user, and posted nothing twice after a forced kill and restart.
Measured 2026-10-07 · the source is private, so this cannot be checked yet
Done when
The manual test checklist passes on a fresh workspace, and the source is public.
Slack shows the queue. It does not decide anything. Every button calls the same review service as the command line, so separation of duties and the audit log apply in the same way.
Messages are redacted before they leave the machine, and each post is logged with a hash of what was sent. The app asks for two scopes only, and it cannot read channel history.
The databases are the truth. If Slack and the database disagree, the next pass corrects the message in Slack. One incident shaped this: a development server left running in watch mode posted 73 cases that nobody asked for. They were deleted, the deletions were logged, and posting now requires an explicit data directory.