iiRecord
Agentic AI Atlas · Hook Event Coverage Matrix
page:docs-agent-stack-hooks-coverage-matrixa5c.ai
II.
Page JSON

page:docs-agent-stack-hooks-coverage-matrix

Structured · live

Hook Event Coverage Matrix json

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

File · wiki/docs/agent-stack/hooks/coverage-matrix.mdCluster · wiki
Record JSON
{
  "id": "page:docs-agent-stack-hooks-coverage-matrix",
  "_kind": "Page",
  "_file": "wiki/docs/agent-stack/hooks/coverage-matrix.md",
  "_cluster": "wiki",
  "attributes": {
    "nodeKind": "Page",
    "sourcePath": "docs/agent-stack/hooks/coverage-matrix.md",
    "sourceKind": "repo-docs",
    "title": "Hook Event Coverage Matrix",
    "displayName": "Hook Event Coverage Matrix",
    "slug": "docs/agent-stack/hooks/coverage-matrix",
    "articlePath": "wiki/docs/agent-stack/hooks/coverage-matrix.md",
    "article": "\n# Hook Event Coverage Matrix\n\n30 Claude Code hook events vs. implementation status across the agent stack.\n\n## Legend\n- **atlas**: Event defined in atlas graph schema\n- **hooks-adapter**: Canonical phase exists in hooks-adapter core\n- **adapters runtime**: Native runtime hook registration/dispatch exists\n- **SDK**: SDK-emitted harness hook exists where SDK owns the source\n- **agent-core**: Session event type exists\n\n## Full Matrix\n\n| # | Event | Canonical Phase | atlas | hooks-adapter | adapters runtime | SDK | Status |\n|---|-------|----------------|-------|-----------|---------------|-----|--------|\n| 1 | SessionStart | session.start | ✅ | ✅ | ✅ | ✅ | **DONE** |\n| 2 | Setup | session.setup | ✅ | ✅ | ✅ | ❌ | **PARTIAL** |\n| 3 | SessionEnd | session.end | ✅ | ✅ | ✅ | ✅ | **DONE** |\n| 4 | UserPromptSubmit | turn.user_prompt_submitted | ✅ | ✅ | ✅ | ✅ | **DONE** |\n| 5 | UserPromptExpansion | turn.prompt_expansion | ✅ | ✅ | ✅ | ❌ | **PARTIAL** |\n| 6 | Stop | turn.stop | ✅ | ✅ | ✅ | ✅ | **DONE** |\n| 7 | StopFailure | turn.stop_failure | ✅ | ✅ | ✅ | ❌ | **PARTIAL** |\n| 8 | PreToolUse | tool.before | ✅ | ✅ | ✅ | ✅ | **DONE** |\n| 9 | PermissionRequest | tool.permission_request | ✅ | ✅ | ✅ | ✅ | **DONE** |\n| 10 | PermissionDenied | tool.permission_denied | ✅ | ✅ | ✅ | ✅ | **DONE** |\n| 11 | PostToolUse | tool.after | ✅ | ✅ | ✅ | ✅ | **DONE** |\n| 12 | PostToolUseFailure | tool.after_failure | ✅ | ✅ | ✅ | ❌ | **PARTIAL** |\n| 13 | PostToolBatch | tool.after_batch | ✅ | ✅ | ✅ | ❌ | **PARTIAL** |\n| 14 | SubagentStart | subagent.start | ✅ | ✅ | ✅ | ✅ | **DONE** |\n| 15 | SubagentStop | subagent.end | ✅ | ✅ | ✅ | ✅ | **DONE** |\n| 16 | TaskCreated | task.created | ✅ | ✅ | ✅ | ✅ | **DONE** |\n| 17 | TaskCompleted | task.completed | ✅ | ✅ | ✅ | ✅ | **DONE** |\n| 18 | TeammateIdle | team.idle | ✅ | ✅ | ❌ | ❌ | **BLOCKED** |\n| 19 | FileChanged | session.file_changed | ✅ | ✅ | ✅ | ✅ | **DONE** |\n| 20 | CwdChanged | session.cwd_changed | ✅ | ✅ | ✅ | ✅ | **DONE** |\n| 21 | ConfigChange | session.config_changed | ✅ | ✅ | ✅ | ❌ | **PARTIAL** |\n| 22 | InstructionsLoaded | session.instructions_loaded | ✅ | ✅ | ✅ | ❌ | **PARTIAL** |\n| 23 | PreCompact | session.compact.before | ✅ | ✅ | ✅ | ✅ | **DONE** |\n| 24 | PostCompact | session.compact.after | ✅ | ✅ | ✅ | ✅ | **DONE** |\n| 25 | Elicitation | mcp.elicitation | ✅ | ✅ | ✅ | ✅ | **DONE** |\n| 26 | ElicitationResult | mcp.elicitation_result | ✅ | ✅ | ✅ | ✅ | **DONE** |\n| 27 | WorktreeCreate | session.worktree_create | ✅ | ✅ | ✅ | ✅ | **DONE** |\n| 28 | WorktreeRemove | session.worktree_remove | ✅ | ✅ | ✅ | ✅ | **DONE** |\n| 29 | MessageDisplay | message.received | ✅ | ✅ | ✅ | ❌ | **PARTIAL** |\n| 30 | Notification | notification | ✅ | ✅ | ✅ | ✅ | **DONE** |\n\n## Summary\n\n| Status | Count | Percentage |\n|--------|-------|-----------|\n| DONE | 21 | 70% |\n| PARTIAL | 8 | 27% |\n| BLOCKED | 1 | 3% |\n| atlas covered | 30 | 100% |\n\n`PARTIAL` means hooks-adapter and the native adapters runtime bridge can represent/dispatch the event, but a separate SDK-owned emission point is still absent or only applies where a concrete runtime source exists. `BLOCKED` means the canonical contract exists, but the stack does not yet have a real lifecycle boundary to emit the event.\n",
    "documents": []
  },
  "outgoingEdges": [],
  "incomingEdges": [
    {
      "from": "page:docs-agent-stack-hooks",
      "to": "page:docs-agent-stack-hooks-coverage-matrix",
      "kind": "contains_page"
    }
  ]
}