iiRecord
Agentic AI Atlas · on_step (OpenCode)
hook-surface:opencode.on-stepa5c.ai
II.
HookSurface JSON

hook-surface:opencode.on-step

Structured · live

on_step (OpenCode) json

Inspect the normalized record payload exactly as the atlas UI reads it.

File · channels-hooks/hook-surfaces/native/opencode-on-step.yamlCluster · channels-hooks
Record JSON
{
  "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": {}
    }
  ]
}