anchor.diff:    const openPredictionDialog = (handler) => {
       const html = '<div>' + tcrInput() + tcrInfo() + '</div>';
       const $node = $(html);
  -    if (cd.trafficLightsCount(['red','amber','green']) > 0) {
  -      $('.tcr', $node).show();
  -    }
  +    $('.tcr', $node).show();
       setupRagClick(handler, $node, 'red');
       setupRagClick(handler, $node, 'amber');
       setupRagClick(handler, $node, 'green');
  
positive.code:     $(`div#predict-${colour}`, $node).click(() => {
        $node.remove();
        predicted.val(colour);
        const srcIndex = $lastTrafficLight().data('index');
        handler(() => complete(colour, srcIndex));
      });
    };
  
  
negative.code:     $(`.predict-blurb.${colour}`, $node).click(() => {
        $node.remove();
        predicted.val(colour);
        const $oldLast = $lastTrafficLight();
        handler(() => complete(colour, $oldLast));
      });
    };
  
    //- - - - - - - - - - - - - - - - - - - - - - - - -
    const complete = (predictedColour, $oldLast) => {
      const $newLast = $lastTrafficLight();
      const actualColour = $newLast.data('colour');
      const predictedWrong = (actualColour != predictedColour);
      const revertOn = tcr[predictedColour];
      const lightToRevertTo = ($oldLast != undefined);
      if (predictedWrong && revertOn && lightToRevertTo) {
        const srcIndex = $oldLast.data('index');
        cd.checkout({ src_id:cd.kataId(), src_index:srcIndex });
      }
    };
  