IAS gate enforcement decisions: what rules were evaluated, what was blocked or allowed, and subagent lifecycle tracking via Claude Code hooks.
ai.claude.* (self-report) and
ai.gryph.* (system observation). Together, the three layers enable
verifiable execution certification.
A hook rule was checked against a tool call. Records the decision (allow or block) and the reason.
| Field | Type | Description |
|---|---|---|
| session_id | string | Parent session identifier |
| timestamp | string | ISO 8601 UTC |
| rule_id | string | Rule identifier (e.g., "B-001") |
| gate | string | Gate reference (e.g., "G4") |
| tool_name | string | Claude Code tool name |
| command_preview | string | First 200 chars of tool input |
| decision | string | Enforcement outcome |
Values: allow, block | ||
| reason | string | Explanation (when decision is "block") |
The SessionStart hook fired, recovering stale sessions and estimating costs for Gate 0.
| Field | Type | Description |
|---|---|---|
| session_id | string | This session's identifier |
| timestamp | string | ISO 8601 UTC |
| stale_sessions_recovered | int | Unclean sessions cleaned up |
| cost_estimate_usd | string | Estimated cost for Gate 0 reads |
The SessionEnd hook fired, finalizing cost periods and cleaning up orphaned agents.
| Field | Type | Description |
|---|---|---|
| session_id | string | This session's identifier |
| timestamp | string | ISO 8601 UTC |
| periods_closed | int | Cost periods finalized |
| total_cost_usd | string | Total estimated session cost |
| orphaned_agents | int | Subagents that started but never completed |
agent_id and agent_type
inline in every subagent tool call. Main-agent calls omit these fields. This enables direct attribution
without bracketing — validated empirically 2026-04-14.
A subagent was spawned via the Agent tool or SubagentStart hook.
| Field | Type | Description |
|---|---|---|
| session_id | string | Parent session identifier |
| timestamp | string | ISO 8601 UTC |
| subagent_id | string | Subagent identifier (from Claude Code agent_id) |
| agent_type | string | Subagent type |
Values: Explore, Plan, general-purpose, … | ||
| model | string | Model used by subagent |
| prompt_chars | int | Characters in the subagent prompt |
| parent_id | string | Parent agent ID (empty for main agent's children) |
A subagent completed its work.
| Field | Type | Description |
|---|---|---|
| session_id | string | Parent session identifier |
| timestamp | string | ISO 8601 UTC |
| subagent_id | string | Subagent identifier |
| agent_type | string | Subagent type |
| result_chars | int | Characters in the subagent result |
| duration_ms | int | Execution time in milliseconds |
| est_cost_usd | string | Estimated cost for this subagent |