Commit 66330df
Inv #12.5 (skill-side, issue #501) marks a curated list of op classes
where the second-LLM check is a precondition of `confirmed: true`,
not opt-in. The skill-side rule lives in vaultpilot-skill v9+; this
PR is the MCP-side scaffold so future hard-trigger op producers can
flip a flag at build time and have the existing verification block
surface a mandatory ⚠ line.
What ships:
- New `secondLlmRequired?: boolean` on `UnsignedTx`. Default absent
/ false. Documentation comment lists today's hard-trigger op
classes (all currently deferred or not built):
- EIP-7702 setCode (#481)
- Permit2 batch grants (#453)
- Opaque-facet bridges (#451)
- Approval-management N-candidate selection (Inv #13)
- Safe enableModule / setGuard / threshold changes
- `renderVerificationBlock` reads the flag and emits a single
⚠ line below the hash:
⚠ SECOND-LLM CHECK REQUIRED — call get_verification_artifact(handle)
and relay the pasteableBlock to the user BEFORE 'send' (Inv #12.5
hard-trigger op).
- 3 tests pinning the behavior: omitted when absent/false, emitted
when true, composes cleanly with recipient + tokenClass warnings.
What does NOT ship:
- No producer wires the flag yet (every hard-trigger op class is
itself deferred). The flag is dormant scaffold.
- No enforcement layer below the rendered ⚠. The MCP can't tell
whether the agent actually ran the second-LLM check — same self-
attestation gap as `userDecision: "send"`.
Trust note (in the field doc):
The flag is a workflow signal, not a cryptographic primitive.
Closing the agent-side honesty gap requires infrastructure that
doesn't exist today (provider-signed LLM responses, TEE attestation,
or zkML proofs of NN inference). Discussed in the PR thread for
this issue.
Coordinated with skill v9 release (lifts §16 unconditional 7702
refusal + adds Inv #12.5 hard-trigger language); MCP-side
`EXPECTED_SKILL_SHA256` bump happens in the skill-coordination PR,
not this one.
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
1 parent 9e45246 commit 66330df
3 files changed
Lines changed: 143 additions & 1 deletion
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
161 | 161 | | |
162 | 162 | | |
163 | 163 | | |
164 | | - | |
| 164 | + | |
| 165 | + | |
| 166 | + | |
| 167 | + | |
| 168 | + | |
| 169 | + | |
| 170 | + | |
165 | 171 | | |
166 | 172 | | |
167 | 173 | | |
| |||
200 | 206 | | |
201 | 207 | | |
202 | 208 | | |
| 209 | + | |
| 210 | + | |
| 211 | + | |
| 212 | + | |
| 213 | + | |
| 214 | + | |
| 215 | + | |
| 216 | + | |
| 217 | + | |
| 218 | + | |
| 219 | + | |
| 220 | + | |
| 221 | + | |
| 222 | + | |
| 223 | + | |
| 224 | + | |
203 | 225 | | |
204 | 226 | | |
205 | 227 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1309 | 1309 | | |
1310 | 1310 | | |
1311 | 1311 | | |
| 1312 | + | |
| 1313 | + | |
| 1314 | + | |
| 1315 | + | |
| 1316 | + | |
| 1317 | + | |
| 1318 | + | |
| 1319 | + | |
| 1320 | + | |
| 1321 | + | |
| 1322 | + | |
| 1323 | + | |
| 1324 | + | |
| 1325 | + | |
| 1326 | + | |
| 1327 | + | |
| 1328 | + | |
| 1329 | + | |
| 1330 | + | |
| 1331 | + | |
| 1332 | + | |
| 1333 | + | |
| 1334 | + | |
| 1335 | + | |
| 1336 | + | |
| 1337 | + | |
| 1338 | + | |
| 1339 | + | |
| 1340 | + | |
1312 | 1341 | | |
1313 | 1342 | | |
1314 | 1343 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
| 6 | + | |
| 7 | + | |
| 8 | + | |
| 9 | + | |
| 10 | + | |
| 11 | + | |
| 12 | + | |
| 13 | + | |
| 14 | + | |
| 15 | + | |
| 16 | + | |
| 17 | + | |
| 18 | + | |
| 19 | + | |
| 20 | + | |
| 21 | + | |
| 22 | + | |
| 23 | + | |
| 24 | + | |
| 25 | + | |
| 26 | + | |
| 27 | + | |
| 28 | + | |
| 29 | + | |
| 30 | + | |
| 31 | + | |
| 32 | + | |
| 33 | + | |
| 34 | + | |
| 35 | + | |
| 36 | + | |
| 37 | + | |
| 38 | + | |
| 39 | + | |
| 40 | + | |
| 41 | + | |
| 42 | + | |
| 43 | + | |
| 44 | + | |
| 45 | + | |
| 46 | + | |
| 47 | + | |
| 48 | + | |
| 49 | + | |
| 50 | + | |
| 51 | + | |
| 52 | + | |
| 53 | + | |
| 54 | + | |
| 55 | + | |
| 56 | + | |
| 57 | + | |
| 58 | + | |
| 59 | + | |
| 60 | + | |
| 61 | + | |
| 62 | + | |
| 63 | + | |
| 64 | + | |
| 65 | + | |
| 66 | + | |
| 67 | + | |
| 68 | + | |
| 69 | + | |
| 70 | + | |
| 71 | + | |
| 72 | + | |
| 73 | + | |
| 74 | + | |
| 75 | + | |
| 76 | + | |
| 77 | + | |
| 78 | + | |
| 79 | + | |
| 80 | + | |
| 81 | + | |
| 82 | + | |
| 83 | + | |
| 84 | + | |
| 85 | + | |
| 86 | + | |
| 87 | + | |
| 88 | + | |
| 89 | + | |
| 90 | + | |
| 91 | + | |
0 commit comments