Page 93 of the Kinect for Windows Human Interface Guidelines describes an example of implementing an engagement philosophy. The example applications it is referring to is "Control Basics-WPF" and "Interaction Gallery-WPF" (SDK 1.7); or the older "Basic Interactions" example (SDK 1.6). You can run the examples to see them in action and examine the code to see how it is implemented.
Are we supposed to do all this by hand?
Microsoft provides then EngagementStateManager
in Microsoft.Samples.Kinect.InteractionGallery.Utilities
, which is demonstrated in the "Interaction Gallery-WPF" example. It will provide you with the engagement logic defined by Microsoft. If you wish to have a different engagement model, you need to write your own.