Hook Enforcement — 20260721T121500000Z-cursor-flash
144-trial babel relay through the same Cursor wrapper gate, model swapped to gemini-3.5-flash: warn detects 29/29 drifted relays and only 1 ships anyway; enforce halts 29/29. Unaided (off) it catches just 7/27.
Provenance
- Harness: Cursor CLI
- Version: cursor-agent 2026.07.17-3e2a980
- Model: gemini-3.5-flash
- Gate integration: wrapper
- Gate source: sema check CLI (RobinOppenstam/sema@feat/sema-check)
- Records path: experiments/cursor-hook/records/2026-07-21-flash/
Deviations
- Enforcement is wrapper-level (sema check runs before cursor-agent is invoked); cursor hook dispatch is server-gated off on this account, so the in-harness hook tier could not be tested
- The warn channel is prompt-prepension of the repair text, not hook-stdout context injection
- Frozen boundary prompts delivered via per-trial AGENTS.md plus the same inline-artifacts harness note as codex-hook
- Registry rebuilt from scenarios.yaml with sema's mint pipeline; all six stubs verified byte-identical to the frozen babel-hook stubs.json before the run
| Condition | Trials | Drift detection | Silent divergence | Drift halted | Task success | False halts | Malformed | Hop failed |
|---|---|---|---|---|---|---|---|---|
off |
48 | 7/27 | 20/27 | 7/27 | 18/48 | 2 | 0 | 8 |
warn |
48 | 29/29 | 0/29 | 28/29 | 38/48 | 3 | 0 | 6 |
enforce |
48 | 29/29 | 0/29 | 29/29 | 39/48 | 3 | 0 | 6 |
Drift-conditioned columns use drift-injected trials as the denominator; task success uses all trials in the condition.