{# P5-T03 cross-scan experiments index — terminal-brutalist re-skin. #} {# Filter bar (GET form, serializes to URL query params) + mono data #} {# table + pagination footer. Mirrors admin_scans.html's structure. #} {% extends "admin_layout.html" %} {% from 'partials/help_tooltip.html' import tip, tip_styles %} {% block page_title %}admin :: experiments{% endblock %} {% block breadcrumb %} admin/ experiments {% endblock %} {% macro outcome_pill(label, pill) -%} {%- if pill == 'ok' -%} {{ label }} {%- elif pill == 'danger' -%} {{ label }} {%- elif pill == 'warn' -%} {{ label }} {%- else -%} {{ label }} {%- endif -%} {%- endmacro %} {% block content %} {{ tip_styles() }}
experiments

Re-run ledger. {{ total }} rows.

Every LlmExperiment fired from the LLM Explorer's re-run panel, across every scan and every admin. Filter by model, prompt, who fired it, or scan. Each row jumps to the step it was forked from.

{# ===================== Filter bar ===================== #}
reset
{# ===================== Data table ===================== #}
results {{ experiments|length }} of {{ total }}
{% if not experiments %}
// No experiments found.
{% else %} {% for row in experiments %} {% endfor %}
when scan prompt model cost outcome fired by actions
{{ row.created_at[:19].replace('T', ' ') if row.created_at else '—' }} {% if row.scan_id %} {{ row.scan_id_short }} {% else %} orphan {% endif %} {{ row.prompt_name or '—' }} {{ row.model or '—' }} ${{ '%.4f'|format(row.cost_usd) }} {{ outcome_pill(row.outcome_label, row.outcome_pill) }} {{ row.fired_by }} view →
{% endif %}
{# ===================== Pagination footer ===================== #} {% if experiments %} {% set start = offset + 1 %} {% set end = offset + experiments|length %}
// showing {{ start }}{{ end }} of {{ total }}
{% if has_prev %} ← prev {% else %} ← prev {% endif %} {% if has_next %} next → {% else %} next → {% endif %}
{% endif %} {% endblock %}