record_gate_skip
Release a TruVerifAI proactive-invocation gate WITHOUT running (another) review, by logging an explicit reason. Use it when a gate fired (before a commit or a Write/Edit) and EITHER the review is genuinely unnecessary — e.g. a false positive, a trivial/test/docs-only change, or generated/vendored code — OR you ran ONE review and want to proceed on it: apply its findings and pass recommendations_applied, or pass review_deferred_to_commit to defer a batch to the commit gate. NO judgment skip reason releases a FLOOR hunk (auth/secrets/money/migrations/removed-guard/gate-self — the gate's own code — or a repo-defined custom floor from .truverifai/risk.json) — not even test_or_docs_only / generated_or_vendored_code, because the path doesn't change what the hunk IS (a real credential in a test file is still a live credential, and .github/workflows/ classifies as test/docs). The ONE exception is recommendations_applied WITH your recent review on record: after you ran a review and applied its findings, it releases the re-fired change's floor hunks too (lineage-verified, minutes-TTL, logged distinctly as 'findings applied' — never as an audited PASS). Otherwise, while a floor hunk is UNREVIEWED every skip is denied: cover the floor first — audit_coding, confirm_floor (free), synthesize_coding, or, as a last resort, ship it un-reviewed with accept_risk_no_review (a logged override + substantive pre-mortem) — and the same skip then becomes admissible and releases the change's remaining NON-floor hunks. On a MERGE commit whose branch content was already reviewed, branch_already_reviewed releases the non-floor hunks in one call (merge fires only; name where it was reviewed in reason_text). (Note: 'already reviewed' is NOT a skip — a real prior PASS releases the gate automatically.) On a non-floor change the skip releases it on retry. FREE — no credits; the reason is logged. Pass the gate_repo from the gate's message, plus the gate_context_id it printed (REQUIRED — the server verifies a gate truly fired and releases only the hunks IT recorded, so you never supply hunks yourself). There is no way to skip without it: if the gate printed no id (rare), don't skip — run audit_coding with gate_repo + gate_diff.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| score | No | Optional. The score from the gate's gate_signal line. | |
| gate_repo | Yes | The repo fingerprint from the gate's message (the gate_repo value). | |
| reason_code | Yes | Why you're releasing the gate without running (another) review. Pick the closest fit. Single-call model: after ONE panel-review call, use 'recommendations_applied' (you got findings, applied them — server-verified against that review; releases floor at both gates, and a floor hunk released at the WRITE gate is still re-audited at commit) or 'review_deferred_to_commit' (defer ALL review to the commit gate; releases the write for this session/area, the batch is re-reviewed at commit). On a FLOOR block (auth/secrets/money/migrations/removed-guard/gate-self, or a repo-defined custom floor) match the tool to your situation: a genuine floor change you want reviewed → audit_coding (a PASS releases; recommended); you believe the gate mis-fired → confirm_floor (free) or synthesize_coding (each releases only if it agrees it's not risky). 'accept_risk_no_review' is the LAST RESORT — only after the real paths above genuinely don't fit (the gate mis-fired, you're deadlocked, or you're consciously shipping un-reviewed): it ships the floor hunk UN-reviewed, needs a substantive pre-mortem reason_text, is logged as a distinct override to the human, and expires in minutes. 'other', 'disagree_with_classification', and 'accept_risk_no_review' REQUIRE reason_text (and so do the judgment codes at the write and commit gates). Note: 'prior_pass_receipt_match' is NOT a skip — a real prior audit PASS releases automatically; if the gate fired, re-review the changed hunks. | |
| reason_text | No | 1 sentence on why this skip is justified — REQUIRED for 'other' / 'disagree_with_classification', and for the judgment codes (false_positive_not_risky, trivial_change, reviewed_outside_truverifai, time_critical_hotfix) at the write and commit gates. For 'accept_risk_no_review' it must be a SUBSTANTIVE pre-mortem (assume it IS a real issue: name the failure, who it affects, why it's acceptable). No secrets, file paths, or proprietary identifiers; general terms only. LIMITS (fix A10): ordinary reasons are clipped past 500 chars; an 'accept_risk_no_review' pre-mortem gets 4000 chars (its substance IS the audit trail). Clipping never fails the call and the response says when it happened (reason_text_truncated) — don't retry to shorten. | |
| gate_context_id | No | REQUIRED. The `gate_context_id = "gc_…"` the gate's block message printed — copy it verbatim. The server verifies a gate truly fired and releases only the hunks IT recorded, so you never supply hunks yourself. There is no way to skip without it: if the message has no id (rare), don't skip — run `audit_coding` with gate_repo + gate_diff, whose PASS releases floor and non-floor hunks alike. | |
| risk_categories | No | Optional. The risk_categories from the gate's gate_signal line. | |
| classifier_version | No | Optional. The classifier_version from the gate's gate_signal line. Forwarding it (and score/risk_categories) sharpens the data that improves the classifier — no source, just the labels the gate already showed you. |