hook-authoringlisted
Install: claude install-skill lukacf/meerkat
# Hook Authoring
Use hooks for runtime observation and policy decisions at typed lifecycle
points. Hooks can observe, allow, or deny; they should not become hidden owners
of runtime truth.
## Hook Points
Meerkat provides 8 hook points in the agent lifecycle:
1. **RunStarted** - When the agent run begins
2. **PreLlmRequest** - Before sending to the LLM
3. **PostLlmResponse** - After receiving the LLM response
4. **PreToolExecution** - Before executing a tool call
5. **PostToolExecution** - After tool execution completes
6. **TurnBoundary** - At the boundary between turns
7. **RunCompleted** - When the agent run completes successfully
8. **RunFailed** - When the agent run fails
## Execution Modes
- Foreground hooks run in ascending priority, then registration order. A deny
short-circuits later foreground hooks at that point.
- Background hooks run concurrently and must declare `capability: observe`.
Their decisions are discarded. Use them for logging and analytics, not
policy enforcement.
- Runtime adapters are in-process handlers, commands, or HTTP endpoints. Each
entry has a typed adapter, timeout, point, mode, capability, and priority.
## Decision Semantics
Foreground hooks return one of:
- Allow: proceed normally.
- Deny: block the operation with a reason.
- Observe only: return no decision and no patches.
## Boundaries
Semantic hook patches are retired. Hooks can observe typed projections and
deny through the typed decision shape; provider parameters, as