II.
HookSurface JSON
Structured · livehook-surface:opencode.on-step
on_step (OpenCode) json
Inspect the normalized record payload exactly as the atlas UI reads it.
{
"id": "hook-surface:opencode.on-step",
"_kind": "HookSurface",
"_file": "channels-hooks/hook-surfaces/native/opencode-on-step.yaml",
"_cluster": "channels-hooks",
"attributes": {
"eventName": "on_step (OpenCode)",
"displayName": "on_step (OpenCode)",
"kind": "native",
"originVendor": "OpenCode",
"direction": "post",
"blocking": false,
"family": "shell-hook",
"payloadSchema": {
"type": "object",
"required": [
"step"
],
"properties": {
"step": {
"type": "object"
}
}
},
"description": "OpenCode's per-step hook. Fires once per agent loop iteration.\nCanonicalizes to post-tool-use for cross-product policies.\n"
},
"outgoingEdges": [
{
"from": "hook-surface:opencode.on-step",
"to": "hook-surface:post-tool-use",
"kind": "canonicalized_to",
"attributes": {}
}
],
"incomingEdges": [
{
"from": "agent-runtime-impl:opencode.runtime@1.x",
"to": "hook-surface:opencode.on-step",
"kind": "exposes",
"attributes": {}
},
{
"from": "hook-mapping:opencode-on-step",
"to": "hook-surface:opencode.on-step",
"kind": "maps_hook",
"attributes": {}
}
]
}