← knowledge.oriz.in

Hook parity across fleet — CC-native, OpenCode/Kilo hookless (accepted, not fleet-parity gap)

decision hooksfleetclaude-codeopencodekiloparitydecision

Hook parity assessment 2026-07-03

Current state

Claude Code fires 6 lifecycle events via ~/.claude/settings.json:

Event Purpose Fleet-portable?
SessionStart Memory-pull, okf-lookup warm, cavemem load, skills-sync Partial — okf-lookup is a plain node script; the rest depend on CC internals
UserPromptSubmit okf-prompt-lookup surfaces top-3 concept files as system message Yes — pure node script + stdin prompt
PreToolUse RTK Bash-tool token compression + env-var injection (cargo, tauri) Partial — RTK is transparent shim, env injection is CC tool-invocation shape
PostToolUse Cavemem event record, RTK stats emit No — cavemem is CC-specific; RTK stats are per-invocation
Stop Cavemem flush, memory-push Partial — memory-push is a node script; cavemem is CC-specific
SessionEnd Cavemem close, session-scoped cleanup No — session boundary is a CC concept

OpenCode and Kilo have zero hooks configured. Neither publishes a lifecycle-hook surface CC's config shape maps onto:

Decision

Keep hooks CC-only. Remove hook parity from the fleet-parity claim.

The fleet-parity invariant applies to:

Why not build OpenCode/Kilo equivalents

What this changes

  1. Update agent-fleet-parity rule to explicitly scope-limit: "hooks are CC-only; rules + skills + MCP + SOFA identity apply to all 3."
  2. okf-lookup-before-acting rule already documents the manual fallback for OpenCode/Kilo. No change needed.
  3. Future CC-hook additions do NOT need a matching OpenCode/Kilo plan — CC is the primary, hooks live there, other agents run the same scripts on-demand.

When to revisit

Cross-refs