Hook Enforcement — 20260721T123000000Z-cursor-kimi
144-trial babel relay through the same Cursor wrapper gate, model swapped to kimi-k2.7-code: warn detects 29/29 drifted relays but 6 ship anyway; enforce halts 28/28. Unaided (off) it catches just 6/28.
Provenance
- Harness: Cursor CLI
- Version: cursor-agent 2026.07.17-3e2a980
- Model: kimi-k2.7-code
- Gate integration: wrapper
- Gate source: sema check CLI (RobinOppenstam/sema@feat/sema-check)
- Records path: experiments/cursor-hook/records/2026-07-21-kimi/
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
- The warn arm had elevated hop timeouts (15/48 vs 8-9 in the other arms); warn-arm denominators are thinned accordingly
| Condition | Trials | Drift detection | Silent divergence | Drift halted | Task success | False halts | Malformed | Hop failed |
|---|---|---|---|---|---|---|---|---|
off |
48 | 6/28 | 22/28 | 6/28 | 19/48 | 0 | 0 | 9 |
warn |
48 | 29/29 | 0/29 | 20/29 | 27/48 | 0 | 0 | 15 |
enforce |
48 | 28/28 | 0/28 | 28/28 | 40/48 | 0 | 0 | 8 |
Drift-conditioned columns use drift-injected trials as the denominator; task success uses all trials in the condition.