A permitting department wants every agent session to begin with the current fee schedule and the list of suspended permit types already in context, without relying on the operator to paste them. Which hook event is designed for this?
Select an answer to reveal the explanation.
Short Explanation
SessionStart is the briefing packet already sitting on the desk when the agent sits down. The fee schedule and suspended-permit list belong there, not pasted in by whoever remembers.
Full Explanation
Context that must hold for every turn should be established before any turn runs. A permitting department's current fee schedule and suspended-permit list are session-scoped facts, not per-message ones, and depending on an operator to paste them makes correctness a function of human memory.
SessionStart fires at the beginning of a session and its output can be injected into the agent's context before the first turn. That makes it the natural home for standing reference material—fee tables, suspended permit types, environment details, or pointers to authoritative files—and moving it into hook configuration makes the context version-controlled and reliable rather than dependent on operator discipline.
UserPromptSubmit fires on every user message rather than once at the start, so using it for standing context both mistimes the injection and repeats it on each prompt; PreToolUse fires before tool calls, meaning the material would be absent during any turn preceding the first tool use and re-evaluated repeatedly afterward; SubagentStop fires as a delegated unit of work completes, which is an ending rather than a beginning and has nothing to do with seeding reference material.
Exam caveat: session-scoped injection can go stale during a long shift—if the fee schedule is amended mid-session, SessionStart will not know. Operational check: open a fresh session, ask for a fee that appears nowhere in the prompt, and confirm the agent answers from injected context with no operator paste.