Operator tasks move from the Inbox into Tasks with the Waits on Operator filter. Review and commit asks carry the staged diff; a file whose old or new blob holds an armour line or a detection-pattern match, or every file when no pattern loads, ships only its path, status, mode and counts. The approval binds to the staged tree id from git write-tree, the encoded request body respects the hub limit, and the hub image ships every client module signed.py loads. Committed below the bar on the operator's word 2026-11-12 (no further per-bundle tests, one gate after the merge): the full hub suite and the W1 e2e never ran, two high MEDUSA rows (sandbox_paths.py FLOOR, permission_hook.py ask POST) wait for their acceptance. 🎯 Fix: 85 % 💥 Break: 12 % 💸 Cost: 30 % ⏱️ Time: 30 % 🛡️ Security: 50 % 🏆 Score: 100 🚦 Gate: ⛔ fix 85 % < 90, break 12 % > 5; security 50 % < 100: ask the operator before the commit Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2.3 KiB
name, description
| name | description |
|---|---|
| kvb-git-diff | Approve staged commits in the Agent Orchestrator; the commit skills run it. |
The commit skills run this where they ask for the commit approval. A hub approval is the operator's word for one commit, the exact tree it names, only once the operator's pinned passkey signature over it verifies here.
-
Render the page.
<repo>is the repository's name,<branch>the branch with every/as-,<base>the branch's base and<table>a file under/tmpholding the kvb-check-score commit table:pkgmgr review --out /tmp/kvb-git-diff/<repo>-<branch>.html --max-file-lines 400 --base <base> --note <table> -
Request the review in the worktree; it ships the staged diff, every file MEDUSA's secret rules or an armour line flag by stat only, so the hub shows it on the card.
<gate>ispasswhen every gate the calling skill ran is green, elsefail;<agent>your agent name, which inline feedback is posted to:python3 ~/.local/share/kvb-orchestrator/client/approval.py request --port 8737 --title "<subject>" --page /tmp/kvb-git-diff/<repo>-<branch>.html --notes <table> --gate <gate> --score "<score line>" --agent "<agent>"Only a
passreview can be approved in bulk or by a rule. Tell the operator in one line that the review waits in the hub at theurlit prints, written out as plain text: chat links do not open for this operator. Without the script, the MCP toolreview_requesttakes the same fields without the diff. -
Call
review_waitwith itsidandtimeout_seconds240 until the status is no longerpending. -
approved: in the worktree, verify the operator's passkey signature first,<gate>being thegatefrom step 2:python3 ~/.local/share/kvb-orchestrator/client/approval.py verify --port 8737 --approvers ~/.config/kvb-orchestrator/approvers.json --replay /tmp/kvb-orchestrator-approvals/commit.json --review <id> --gate <gate>Exit 0 only: commit as the calling skill says. Any other exit,
rejected, or the tree changed: no commit; report the printed reason.
The hub is unreachable (no kvb-orchestrator tools, or a call cannot connect), or the verify step refused: ask the calling skill's normal approval question in chat instead.