{% extends "base.html" %} {% block title %}Specs{% endblock %} {% block content %}

Specs

{{ specs|length }} spec{{ '' if specs|length == 1 else 's' }} across {{ roots|length }} root{{ '' if roots|length == 1 else 's' }}. {% if allow_run %} Click a status chip to flip it. {% else %} Read-only mode — restart without --read-only to edit statuses. {% endif %}

{% if roots %}

Reading from {% for root in roots %} {{ root }}{% if not loop.last %}, {% endif %} {% endfor %}

{% endif %} {% if specs %} {% for phase_name in ("decisions", "requirements", "design", "tasks") %} {% endfor %} {% for s in specs %} {% for phase in s.phases %} {% endfor %} {% endfor %}
Slug{{ phase_name|capitalize }}
{{ s.slug }} {% if not phase.exists %} {% else %} {% set st = (phase.status or '')|lower %} {% if st in ('approved', 'complete', 'completed', 'done') %} {% set chip_cls = 'chip-ok' %} {% elif st in ('in-review', 'review') %} {% set chip_cls = 'chip-warn' %} {% elif st == 'draft' %} {% set chip_cls = 'chip-muted' %} {% else %} {% set chip_cls = 'chip' %} {% endif %} {% if allow_run %} {% else %} {{ phase.status or '(no status)' }} {% endif %} {% endif %}
{% else %}

No specs found. Configure a roots directory with attune ops --specs-root <dir>, or place spec folders under docs/specs/.

{% endif %} {% endblock %} {% block scripts %} {% if allow_run %} {% endif %} {% endblock %}