{% extends "base.html" %}
{% block title %}Workflows{% endblock %}
{% block content %}
{{ workflows|length }} registered.
{% if allow_run %}
Click Run to execute one. Output streams below.
{% else %}
Read-only mode — restart without Workflows
--read-only to run from the dashboard.
{% endif %}
Now running across actors
0
| Name | Tier map | Description | Scope | {% if allow_run %}Action | {% endif %}
|---|---|---|---|---|
{{ w.name }} |
{# Chip text: humanized stage name + friendly tier descriptor.
- Stage names like ``agent-review`` strip the ``agent-`` prefix
and title-case for readability (``Review``).
- Tier names like ``capable`` map through TIER_LABEL to
``Standard``; the underlying Claude model class is
surfaced in the tooltip via TIER_TOOLTIP so the chip stays
compact while the hover affordance carries the detail. #}
{% for stage, tier in w.tier_map.items() %} {% set stage_label = stage.replace('agent-', '').replace('-', ' ').replace('_', ' ').title() %} {{ stage_label }} {{ tier_label.get(tier|lower, tier) }} {% endfor %} {% if not w.tier_map %} — {% endif %} |
{{ w.description }}
{% if w.name == "discovery-sweep" %}
{# Phase 3 chips. Server-rendered for first paint; runner.js
refreshes them on scope-picker change via
/api/workflows/discovery-sweep/chips. Anchor hrefs link to
the scope-keyed detail page filtered by bucket. #}
queue: {{ sweep_chips.queue }}
questions: {{ sweep_chips.questions }}
rejected: {{ sweep_chips.rejected }}
{% if sweep_chips.has_result %}latest result{% else %}no sweep recorded for this scope yet{% endif %}
{% endif %}
|
{# Scope cell renders in both run and read-only modes (AC-6).
In read-only mode the picker still pre-selects the saved
scope so the choice persists for when the user enables
runs; only the Action column hides. #}
{% if supports_path[w.name] %} {% else %} n/a {% endif %} | {% if allow_run %}{% endif %} |
No workflows are visible. Make sure attune-ai is installed in the same venv as attune-ops.