The alarm that never rang

OrchestKit has a SessionStart hook whose job is to say "your Claude Code is below the supported floor" or "you are ahead of what we have adopted". It read one environment variable that Claude Code does not set in a hook, and returned silent success when it was missing. So the only outcome it could ever produce was silence. Pick a source below and follow the resolution chain.

Which sources can answer "what CC version is running?"

The corroborating measurement

3542 / 3542
rows in the local sessions.db where cc_version is NULL.

Written by session-registrar, a different hook reading the same variable. Every session ever registered on this machine recorded no version. That is what turns "the variable might be unset sometimes" into "it is never set".

The second bug, hidden behind the first

Once a version finally resolved, the nudge still would not have arrived. The adoption branch used outputPromptContext, which hardcodes:

hookEventName: "UserPromptSubmit"

On a SessionStart hook the runner strips that as an unknown response (#1794). Nobody had ever seen it, because nothing downstream of the unset variable ever executed.

Fixed by using outputSessionStartContext, which the sibling SessionStart hook already used.