{% 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 | Concern | Tier map | Description | Scope | {% if allow_run %}Action | {% endif %} {# A3b — kebab column for the action menu. Always rendered (no allow_run gate) since all 3 actions are non-mutating. #}|
|---|---|---|---|---|---|---|
{{ w.name }} |
{# A3a — concern pill, color-keyed off bucket-* class.
JS filter uses the row's data-concern attribute; this
pill is the per-row visual indicator. #}
{{ concerns[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 %} {# A3b — kebab trigger. workflows_kebab.js injects the menu on click; menu floats positioned via fixed coords, appended to so it escapes table overflow. #} |
No workflows are visible. Make sure attune-ai is installed in the same venv as attune-ops.