{% import "macros.html" as m %} {% if not view.ok %} {{ m.absence(view) }} {% elif view.ready or view.blocked %}

Most valuable next, with the why. {{ m.derived() }} ranking over reported facts: score = (impact_w × 2) + unblocks − (effort_w − 1), weights impact {low:1,med:2,high:3} · effort {XS/S:1,M:2,L:3,XL:4}. A priority floats an item to the top of its readiness class.

{% if view.ready %}

Ready — do next

{% for r in view.ready %}
{{ r.score }}score
{{ m.derived() }}
{{ r.why }}{% if r.priority %} · priority {{ r.priority }}{% endif %}
{{ m.task_card(r.task) }}
{% endfor %}
{% endif %} {% if view.blocked %}

Highest-value, but blocked by deps

Listed (never dropped), but not “to do next” — each waits on unfinished work. {{ m.derived() }}

{% for r in view.blocked %}
waiting on
{{ r.blocked_on|join(', ') }}
{{ r.why }}{% if r.priority %} · priority {{ r.priority }}{% endif %}
{{ m.task_card(r.task) }}
{% endfor %}
{% endif %} {% else %} {{ m.empty_inline(view.empty_title, view.empty_reason) }} {% endif %}