Chock.sh Build your plugin

Agents

Windsurf (Cascade)

Windsurf (Cascade) and chock: install methods and steps, what it can enforce, and the evidence behind it.

Install methods: sync. Agentseam tier block, grade best-effort before a tool runs.

Install methods

  • Repo hooks: chock sync --repo . --agents windsurf writes .devin/hooks.json (ask the user before running it)

What it can enforce

Tier
block
Grade before a tool runs
best-effort
Fail mode before a tool runs
open
Basis
third-party-install
Recorded
2026-08-26

Events

EventCan blockCan rewriteFail mode
prompt_submityesnoopen
pre_toolyesnoopen
post_toolnonoopen
stopnonoopen

Ask support

Answers an ask with: exit-2. Honours ask: no. Evidence: tested (tests/test_guard_fail_to_ask.py::test_a_crashed_guard_asks_rather_than_allowing).

Hook timeout

The vendor documents no default timeout.

Vendor source

Test status

  • Repo hooks: untested. A test of the plugin says nothing about repo hooks.
  • No row in the engine's list of live tests for this agent.

Known limits

Exit code 2 is the ONLY block signal: no stdout decision protocol, no machine-readable reason, no rewrite. Critically there is NO file-write event -- prompt, terminal and MCP hooks only -- so a write to a memory file is invisible to a hook on this agent. Fail mode is undocumented, so blocking rates best-effort rather than enforced. Payloads name their event in agent_action_name and carry the command, prompt and MCP fields inside tool_info (docs.devin.ai/desktop/cascade/hooks, read 2026-10-13, where the product is now Devin Desktop); the event is inferred from shape only when no name is present. The workspace file install writes, .windsurf/hooks.json, is now the legacy location: the same page says it is used only when .devin/hooks.json is absent or defines no hooks, so a repo whose .devin/hooks.json defines hooks does not run the agentseam ones.

Built from engine 5a4b6287a46e and catalog 1e60d211c1bb.