{# The refinement box is unconditional, and that is the point. Questions run out — once nothing left would change the solution the engine returns none — and this form used to live inside that `if`, so reaching a resolved understanding removed the only way to say anything further about it: a correction, a constraint that arrived late, scope the client added after the fact. Answering is how the model is refined; it is not a reply to a question list, and a session that is ready for a first decision brief is not a closed one. #} {% if s.questions %}

What could change the solution

{% else %}

Anything to add?

{% endif %}
{% if s.questions %}
    {% for q in s.questions %}
  1. {{ q.q }}
    Why it matters — {{ q.why }}
    Likely impact: {{ q.label }}
  2. {% endfor %}
{% if s.more_questions %}

{{ s.more_questions|length }} further question{{ '' if s.more_questions|length == 1 else 's' }} of lower impact — see Traceability details below.

{% endif %} {% else %}

No question left that would change the solution. The understanding above is as resolved as this request can make it — which does not close it: whatever you add is folded in the same way, and the documents that rest on it are marked for updating.

{% endif %}
{% include "_csrf.html" %} {% if s.questions %} {% else %} {% endif %} {# The refusal is stated on the form, beside the field it is about, rather than as a fragment that replaces the field (#30). Both keys are optional: this partial is also rendered on the ordinary session page and after a successful turn, where neither is set. #} {% if answers_error is defined and answers_error %} {% endif %}
Working through the impact…