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.

Did you find any more info or workarounds here? The docs are indeed very light.

the checkpoints do seem like a remarkably crude “goto” condition. I think the rasa concept is instead to create hundreds of alternate possible paths through the stories by using training and test conversations. This will quickly generate domain files and conversation visualizations that are completely impossible to parse… it would be nice to have some higher level constructs to the initial authoring of these conversation “backbones”