A clear review.
A simple yes or fix.
See what your team changed. Approve it or ask for a revision. Know whose turn it is next.
Try a client review below. It is a working interface prototype; no real requests are sent.
Fictional client review · version 1
Update your support promise
Your team has changed the response time to two business days, as requested. Here is the full wording change.
Before
We reply within one business day.
After
We reply within two business days.
Version details
This example covers the wording in content/support.md only. Repository example/customer-site, pull request #42, target main.
Commit: 8c31a20f5b6879d4e620cf1375a91402b6de7a83
Happy with this version?
Interactive prototype · no account or repository access needed
For developers: execution demo, integration and current limits
01 · Review
Inspect the diff at the exact commit. The trusted reviewer tool displays the request before signing.
02 · Enforce
The service checks the signature, consumes the approval and requests the merge with an explicit head SHA.
03 · Reconcile
Keep the signed operation receipt. Check GitHub separately: accepted does not mean merged.
What happens after the customer says yes?
Try approving a change, then alter what the agent requests. Fictional repository, scripted outcomes. Nothing is signed, sent to GitHub, or saved when you leave.
1. Review the customer change
Example Studio / customer-site · PR #42 → main · squash merge
Update the support response time
Customer request: set the response-time promise to two business days.
− We reply within one business day. + We reply within two business days.
- Commit covered by this review
- 8c31a20f5b6879d4e620cf1375a91402b6de7a83
2. Try the agent’s next request
- Current PR commit in this scenario
- 8c31a20f5b6879d4e620cf1375a91402b6de7a83
Real GitHub writes: 0 · No credentials requested
Run the local proof
# From a checkout of the Toolproof repository, Node 20+ node packages/toolproof-actions/github-demo.mjs
BLOCKED approval used for a different PR BLOCKED commits added after approval ACCEPTED reviewed head · signed operation receipt CHECKED fixture merge status, separately BLOCKED replay · real GitHub writes = 0
This package is source-only and is not published to npm. The demo simulates trusted roles in one process. It demonstrates enforcement mechanics, not a production deployment.
An approval layer behind your agent
Use the Node executor inside an authenticated HTTP route or MCP tool handler. Skills can prepare a request; enforcement happens in the credential-owning service. The agent must not have a second route to the credentials or permission to modify that service.
The preview includes an interactive terminal reviewer, a GitHub adapter, signed request receipts, and optional transactional storage with approval revocation on one host. Authenticated hosted review, managed keys, signing-key revocation and distributed storage remain open work. A receipt records the executor's statement; it does not independently prove a merge.
Pilot scope and current limits
Start with one customer, one repository and one approval flow. Keep GitHub required reviews and checks. Native GitHub controls may already cover your needs; Toolproof is testing the additional customer handoff and evidence workflow.
GitHub checks the requested head commit, but base-branch and stack checks here happen before submission. They are not atomic conditions at GitHub. This preview is not ready for deployments where an untrusted actor can change those properties concurrently.
Read packages/toolproof-actions/GITHUB.md in your checkout for the reviewer command, integration contract and release gates.