{# One primary document, everything else behind a disclosure. Six generate buttons of equal weight is not six options, it is no recommendation: the decision brief is the smallest output that answers "what would I need to review before estimating this?", and it is the one the flow leads to. #}
{% macro artifact_row(a) %}
{{ a.label }} {% if a.stale %}Needs updating {% else %}Up to date{% endif %} View Download
{% endmacro %}
{% if s.primary_artifact %} {{ artifact_row(s.primary_artifact) }} {% if s.primary_artifact.stale %}

The understanding moved after this brief was written. Regenerating rewrites it from the current understanding — nothing is regenerated on your behalf.

{% endif %} {% else %}

The decision brief is what you take into a scope review: what is confirmed, what is being assumed, the decisions on record, and what is still open.

{% if not s.readiness.ready and s.readiness.blocking_labels %}

Unresolved topics remain ({{ s.readiness.blocking_labels|join(', ') }}) — the brief will be marked Draft until they are answered.

{% endif %} {% endif %} {% if provider is defined and provider.available %}
{% include "_csrf.html" %}
Writing the brief…
{% else %}

{{ provider.reason if provider is defined else "" }}

{% endif %}
More documents
{% if s.other_artifacts %}
    {% for a in s.other_artifacts %}
  • {{ artifact_row(a) }}
  • {% endfor %}
{% endif %} {% if provider is defined and provider.available %}

Each is generated from the current understanding and recorded against it. Generate the decision brief first — it settles the decisions the others are written from.

{% for g in s.more_generatable %}
{% include "_csrf.html" %}
{% endfor %} Generating…
{% elif not s.other_artifacts %}

Nothing generated yet.

{% endif %}