Consent Gate on NVIDIA Nemotron
One sentence in. A drafted, rendered, twice-audited contract out. Then the agent stops — it is structurally unable to send the document for signature until a person approves those exact bytes.
The prompt
consent-gate draft "Draft a mutual NDA with Northwind Labs and send it to
alice@northwind-labs.example. Effective September 1 2026,
two-year term, covering our logistics integration project." --backend nebius
Three Nemotron models, sized to the job
nvidia/NVIDIA-Nemotron-3-Nano-30B-A3Bnvidia/nemotron-3-super-120b-a12bnvidia/Nemotron-3-Ultra-550b-a55bAll three run on Nebius Token Factory. The PDF is rendered by Foxit PDF Services. The whole run cost $0.0108.
What the second opinion caught
Ultra, reviewing a draft it did not write: the clause "assigns fixed roles of 'Disclosing Party' to John Doe and 'Receiving Party' to Alice, which contradicts the mutual nature of the NDA" — and it followed the defect through the obligations and the return-of-materials clause.
None of the rule-based checks is written to see that. The reviewer is fenced in: it can add warnings, but it cannot raise a block, clear one, or approve anything. The rule-based COUNTERPARTY_NOT_FOUND block stood regardless.
Every finding from the run
| Severity | Code | Where | Message |
|---|---|---|---|
| Loading audit.json… | |||
Then it stops
The agent prints a one-time approval token and exits. Trying to send without a human approval is refused:
$ consent-gate send --draft-only refused: refusing to send: no human authorisation for sha256:5c5f6ef8518a... Any edit to the document invalidates an earlier approval by design. (exit code 3)
Full transcript
Loading transcript.txt…
The run's own files
document.pdf audit.json draft.json intent.json ledger.jsonl transcript.txt Source on GitHub (MIT)