Use at the start of every session, and especially after context compaction or a cold restart. Fires as the first action, before engaging with the user's opening message.
Use when an architectural choice is made, a library is selected, an approach is committed to, a convention is set, or any "we'll do it this way" moment occurs. Fires the moment the decision stabilizes, not after.
Use when the user's message carries emotional valence — frustration, excitement, exhaustion, urgency, or confusion. Fires whenever tone matters more than information.
Use when tempted to repeat the same praise, the same status report, the same explanation, or the same reassurance. Fires as a suppression gate — not all repetition is useful.
Use when the user asks about anything that could have context in prior sessions — names, preferences, decisions, past work, or anything starting with "remember", "what did", "have we", "did we". Fires before generating any substantive response.
Use when the user notices a recurring pattern they want the system to learn ("I keep doing X", "every time Y happens", "make this automatic", "remember to always"), or when explicit phrases like "/reflex-create", "create reflex", "teach yourself" are used. Generates a new SKILL.md file from observed patterns.
Use when deciding whether to store a memory. Fires as a gate before every remember() call. The default answer is "no" — biological memory is selective, not exhaustive.
Use at the end of any meaningful session — when the user says goodbye, when major work completes, or when context is about to be lost. Fires once, captures the session's essence, prepares for tomorrow.