Checkpoints in story

What do checkpoints do and how to use them corretly? The docs don’t actually explain them, just how to insert them.

  1. After the user says hello, will the ‘first story’ blocked form being activated again?

  2. Can the same checkpoint be used several times within the same story?

  3. Can checkpoints be used as go-to from one story to another?

  4. Is ‘user affirms question’ and ‘user denies question’ blocked from being active until ‘first story’ has been active?

  5. Can I reset a checkpoint?

     ## first story
     * hello
        - action_ask_user_question
     > check_asked_question
     ## user affirms question
     > check_asked_question
     * affirm
       - action_handle_affirmation
     ## user denies question
     > check_asked_question
     * deny
       - action_handle_denial

I’d rather not use checkpoints, but I see no other options to make my stories strict. The user can break the flow by giving an intent that is not expected. E.g.

## questionnaire
 * hello
    - action_ask_user_question1
 * user_name
    - action_ask_user_question2
 * user_quest
    - action_ask_user_question3
 * user_favourite_color
    - action_surprise

If the user says hello two times then the flow breaks and the bot gets unpredictable. I’ve seen no “strict-mode” options or default events/actions for the bot to repeat a question when the wrong intent is given.

Is there a disadvantage to using checkpoints? I want to try and find a way of generating stories using checkpoints.