iiRecord
Agentic AI Atlas · PostToolBatch (Claude Code)
hook-surface:claude.post-tool-batcha5c.ai
II.
HookSurface JSON

hook-surface:claude.post-tool-batch

Structured · live

PostToolBatch (Claude Code) json

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

File · channels-hooks/hook-surfaces/native/claude-code-extended-hooks.yamlCluster · channels-hooks
Record JSON
{
  "id": "hook-surface:claude.post-tool-batch",
  "_kind": "HookSurface",
  "_file": "channels-hooks/hook-surfaces/native/claude-code-extended-hooks.yaml",
  "_cluster": "channels-hooks",
  "attributes": {
    "eventName": "PostToolBatch (Claude Code)",
    "displayName": "PostToolBatch (Claude Code)",
    "kind": "native",
    "originVendor": "Anthropic",
    "direction": "post",
    "blocking": true,
    "family": "in-process",
    "payloadSchema": {
      "type": "object",
      "required": [
        "hook_event_name",
        "tool_results"
      ],
      "properties": {
        "hook_event_name": {
          "type": "string",
          "const": "PostToolBatch"
        },
        "tool_results": {
          "type": "array",
          "items": {
            "type": "object",
            "required": [
              "tool_name",
              "tool_input",
              "tool_use_id"
            ],
            "properties": {
              "tool_name": {
                "type": "string"
              },
              "tool_input": {
                "type": "object"
              },
              "tool_use_id": {
                "type": "string"
              },
              "tool_result": {
                "type": [
                  "string",
                  "null"
                ]
              },
              "error_message": {
                "type": [
                  "string",
                  "null"
                ]
              }
            }
          }
        }
      }
    },
    "description": "Fires once after a parallel batch of tool calls fully resolves, before\nthe next model call. The single hook receives all tool results in one\narray — convenient for cross-tool reasoning. Subscribers can block the\nnext model call via decision: \"block\".\n"
  },
  "outgoingEdges": [],
  "incomingEdges": [
    {
      "from": "agent-runtime-impl:claude-code.runtime@1.x",
      "to": "hook-surface:claude.post-tool-batch",
      "kind": "exposes",
      "attributes": {}
    },
    {
      "from": "hook-mapping:claude-post-tool-batch",
      "to": "hook-surface:claude.post-tool-batch",
      "kind": "maps_hook",
      "attributes": {}
    }
  ]
}