Skip to content

LLARS Nightly Tile Matrix

Version: 1.2

Stand: 3. Oktober 2026

Diese Datei ist die operative Referenz für die Nightly-Kacheltests.

Pflichtregeln

  1. Jede Home-Kachel muss in llars-frontend/src/config/home_tiles.contract.json definiert sein.
  2. Für jede Kachel muss ein gleichnamiger Playwright-Test existieren in llars-frontend/e2e/nightly/tile-regression.spec.js.
  3. Workflow-übergreifende Tests müssen in llars-frontend/e2e/nightly/workflows.spec.js stehen und mit llars-frontend/e2e/nightly/nightly_workflows.contract.json synchron sein.
  4. Deep-Interaktionsaktivitäten müssen in llars-frontend/e2e/nightly/nightly_activities.contract.json gepflegt sein und als [ACT:<ID>] in den Nightly-Tests auftauchen.
  5. Wenn Home.vue oder home_tiles.contract.json geändert wird, müssen Tests und Doku mitgeändert werden, sonst schlägt CI fehl (scripts/testing/validate_nightly_coverage.py).

Rollenreihenfolge Nightly

test_evaluator -> test_researcher -> test_chatbot_manager -> test_admin

Kachel-zu-Test-Matrix

Kachelname (Testtitel) Route Rollen Testtyp
Prompt Engineering /PromptEngineering evaluator, researcher, chatbot_manager, admin Tile Regression + Workflow
Batch Generation /generation evaluator, researcher, chatbot_manager, admin Tile Regression + Workflow
Evaluation /evaluation evaluator, researcher, admin Tile Regression
Scenario Manager /scenarios evaluator, researcher, admin Tile Regression + Workflow
Chatbot /chat evaluator, researcher, chatbot_manager, admin Tile Regression
Video /video evaluator, researcher, admin Tile Regression
Markdown Collab /MarkdownCollab evaluator, researcher, chatbot_manager, admin Tile Regression
Chatbot Arena /judge admin Tile Regression
Anonymization /Anonymize evaluator, researcher, admin Tile Regression
Anonymisierungs-Pipeline /anonymization researcher, admin Tile Regression
KAIMO /kaimo evaluator, researcher, admin Tile Regression
OnCoCo /oncoco admin Tile Regression
Admin Dashboard /admin?tab=overview admin Tile Regression
Support-Tickets /admin/tickets admin Tile Regression + Workflow
Chatbot Admin /chatbot-manager chatbot_manager, admin Tile Regression
RAG Admin /chatbot-manager?tab=rag chatbot_manager, admin Tile Regression
Conference Manager /conferences evaluator, researcher, admin Tile Regression + Workflow
Pipeline /pipeline admin Tile Regression
Studie (Test) /s/klicktest admin Tile Regression
Studie — Übersicht /s/study admin Tile Regression
Studie — Blockvorschau /s/study/preview admin Tile Regression
Meine Tickets /tickets evaluator, researcher, chatbot_manager, admin Tile Regression + Workflow
User Settings /settings evaluator, researcher, chatbot_manager, admin Tile Regression

Zu den drei Studien-Kacheln

Sie gehören zur LLM-Interaktionsstudie und sind ausschließlich für admin sichtbar.

„Studie (Test)" zeigt seit dem 2026-09-06 auf /s/klicktest und nicht mehr auf /s/study/run — also durch dieselbe öffentliche Tür, die auch die Teilnehmenden benutzen. Der Grund ist eine Lehre aus dem Ranking-Vorrat: Ein Weg, der im Alltag nie begangen wird, wird zum ersten Mal in der Erhebung begangen — und dort ist ein Fehler teuer. Der Slug wird beim Serverstart angelegt (collection_service.ensure_clicktest_link).

Für den Nightly-Test heißt das: Die Kachel führt auf eine Seite, die selbst weiterleitet. Ist der Klicktest-Link abgeschaltet oder seine Sammlung archiviert, landet der Test auf der Fehlerseite — das ist dann kein Testfehler, sondern ein Betriebszustand, und die Verwaltungsansicht /s/study sagt warum — der Reiter der Sammlung führt ihre Einladelinks.

„Studie — Übersicht" (bis 2026-09-08 „Studie — Monitor", zusammen mit „Studie — Einladelinks") zeigt eine Sammlung je Reiter: Puffer, Ranking-Vorrat, Antwortzeit, Verlauf und Einladelinks. Ein Link zeigt auf genau eine Sammlung — er gehört in ihren Reiter, und die zweite Kachel war der Seitenwechsel, den das abschafft.

Sie schreibt, aber nur auf ausdrücklichen Klick — archivieren, Datenschnitt, Sammlung eröffnen, Einladelink anlegen oder abschalten. Die Zusage ist nicht mehr „sie fasst nichts an", sondern „sie fasst nichts an, WEIL sie offen steht": Sie wird während laufender Durchläufe offen gehalten, und von allein passiert dabei nichts.

Für den Nightly-Test heißt das: maxButtons: 0 ist ab jetzt eine Sicherung und keine Sparmaßnahme. Ein Knopf-Sweep auf dieser Kachel würde eine Erhebung archivieren. Wer die Zahl hochsetzt, muss vorher wissen, was die Knöpfe tun.

„Studie — Blockvorschau" (seit 2026-09-08) springt in einen einzelnen Block, ohne dass etwas entsteht. Sie ist die Antwort auf ein Problem, das der Nightly-Test selbst hat: Um Block 17 anzusehen, musste man bis dahin einen Klicktest starten und sich zwanzig Minuten dorthin durchklicken — samt Gespräch mit dem Modell und einer Teilnahmezeile in der Datenbank.

Für den Sweep heißt das: Die Seite ist eine Tabelle mit einem „Ansehen"-Knopf je Block, also rund zwanzig Knöpfe (maxButtons: 24). Keiner davon zerstört etwas, und keiner schreibt: installPreviewGuard in runKey.js weist jeden Aufruf an /api/study/ zurück, solange die Vorschau läuft. Ein Sweep auf Staging erzeugt hier also keine Datensätze — anders als bei „Studie (Test)", die genau deshalb maxButtons: 0 hat.

Zur Kachel „Support-Tickets"

Seit 2026-10-02. Die Kachel führt auf das Ticket-Board des Support-Teams (/admin/tickets, Ansichten Liste · Kanban · Karten) und ist nur mit feature:tickets:manage sichtbar, also für admin. Alle anderen Rollen dürfen Tickets anlegen (feature:tickets:view, Knopf in der App-Bar) und sehen ihre eigenen unter /tickets. Genau diese Grenze prüft der Negativ-Check: /admin/tickets ist für evaluator, researcher und chatbot_manager gesperrt.

maxButtons: 0 ist eine Sicherung. Das Board arbeitet auf echten Tickets der Staging-Datenbank; seine Knöpfe öffnen Menüs mit „Mir zuweisen" und „Status setzen". Ein blinder Sweep könnte fremde Tickets umhängen. Abgedeckt wird die Seite stattdessen gezielt im Workflow „Support Ticket Roundtrip" mit einem eigenen Run-Ticket.

Aufräumen ohne Löschen: Tickets lassen sich bewusst nicht löschen. Jedes Nightly-Ticket trägt den Run-Tag im Titel ([E2E nightly-<Pipeline-ID>] …) und wird am Ende des Workflows vom Admin auf rejected mit Kommentar „E2E" gesetzt.

Zur Kachel „Meine Tickets"

Seit 2026-10-03 führt die Kachel mit feature:tickets:view alle vier Nightly-Rollen auf /tickets. T-9/T-11 zeigten, dass Nutzer den bisherigen Menüeintrag nicht fanden. Der Workflow „Support Ticket Roundtrip" prüft den Weg über die Kachel sowie den Link im Erstellen-Dialog. Der Button-Sweep bleibt bei maxButtons: 0, weil er sonst den Erstellen-Dialog und die Seitenaufnahme auslösen könnte.

Workflow-Matrix

Workflow-Testtitel Zweck Kritisch
Szenario Wizard Uebergang aus Batch Generation Richtung Szenariofluss Ja
Prompt Engineering Collaboration Prompt-Testen, Import/Export, Sharing + Cross-User-Sichtbarkeit Ja
Scenario Manager Role Assignment Rollen-/Einladungslogik inkl. Evaluator-Annahme und Evaluation-Sprung Ja
Conference Manager Access Request Access-Request senden, sichtbar machen, genehmigen, Mitgliedschaft pruefen Nein
Conference Manager Tab Navigation Alle 5 Tabs durchklicken (Conferences, Papers, Calendar, Timeline, Kanban) Ja
User Settings Navigation Settings-Sidebar-Tabs durchklicken + Theme-Toggle Ja
Anonymization Pipeline View Pipeline-Manager oeffnen + View-Toggle (Cards/List) Nein
Chatbot Manager Access chatbot_manager-Rolle oeffnet dedizierte Seite + Tab-Navigation Ja
Markdown Collab Navigation Home oeffnen + Workspace oeffnen falls vorhanden Nein
Infrastructure Health MkDocs + Matomo erreichbar, MkDocs-Suche funktioniert Ja
Support Ticket Roundtrip Ticket per App-Bar melden, über Home-Kachel und Dialog-Link zu Meine Tickets, im Admin-Board bearbeiten + beantworten, Antwort als Ersteller lesen Ja

Cross-Tile Interaktionen (Nightly)

Interaktion Rollen Nightly Workflow
Prompt teilen -> anderer User sieht Prompt test_researcher -> test_evaluator Prompt Engineering Collaboration
Szenario einladen -> Einladung annehmen -> Evaluation oeffnen test_admin -> test_evaluator Scenario Manager Role Assignment
Forschungsgruppe anfragen -> Request sichten -> genehmigen -> Mitglied pruefen test_researcher -> test_admin Conference Manager Access Request
Batch Generation -> Szenario Wizard Handoff test_researcher Szenario Wizard
Conference Manager alle Tabs navigieren test_researcher Conference Manager Tab Navigation
User Settings Sidebar-Tabs + Theme test_researcher User Settings Navigation
Anonymisierungs-Pipeline View-Toggle test_researcher Anonymization Pipeline View
Chatbot-Manager Tab-Navigation test_chatbot_manager Chatbot Manager Access
Markdown Collab Workspace oeffnen test_researcher Markdown Collab Navigation
Ticket melden -> Home-Kachel und Dialog-Link öffnen Meine Tickets -> Admin antwortet -> Ersteller liest Antwort test_evaluator -> test_admin -> test_evaluator Support Ticket Roundtrip

Activity-Katalog (Pflicht-IDs)

Activity ID Aktion Erwartung
PE-CREATE-001 Prompt anlegen Prompt erscheint und Detailseite ist erreichbar
PE-BLOCK-001 Block anlegen + Text schreiben Block sichtbar und Inhalt gespeichert
PE-EXPORT-001 Export-Button im Prompt Engineering klicken Datei wird zum Download angeboten
PE-TEST-001 Test-Button im Prompt Engineering klicken Antwort/Resultat wird angezeigt
PE-IMPORT-001 Import aus JSON Importierter Block ist sichtbar
PE-SHARE-001 / PE-SHARED-VISIBLE-001 / PE-UNSHARE-001 User hinzufuegen / als anderer User sehen / entfernen Share-Liste und Cross-User-Sichtbarkeit funktionieren
BG-WIZ-ENTRY-001 Batch-Wizard oeffnen Wizard-UI ist stabil erreichbar
BG-WIZ-HANDOFF-001 Uebergang Richtung Szenario Wizard Handoff-Aktion/Detailflow ist erreichbar
SCN-ASSIGN-INVITE-001 Evaluator/Viewer zu Szenario hinzufuegen Zuweisung wird angezeigt
SCN-ASSIGN-ROLE-001 Rolle aendern Rollenwechsel wird uebernommen
SCN-ASSIGN-VISIBLE-001 Einladung als Evaluator sehen und annehmen Invite-Card sichtbar und annehmbar
SCN-ASSIGN-EVAL-001 Als Evaluator in Evaluation springen Evaluation-relevante Route erreichbar
CONF-REQ-SUBMIT-001 Zugang zu Forschungsgruppe anfragen Anfrage wird als gesendet angezeigt
CONF-REQ-VISIBLE-001 Anfrage bei Gruppenmitglied pruefen Anfrage ist in Members sichtbar
CONF-REQ-APPROVE-001 Anfrage genehmigen Pending-Anfrage verschwindet
CONF-REQ-MEMBER-001 Antragsteller als Mitglied pruefen User ist in Mitgliederliste sichtbar
CONF-TABS-001 Conference Manager Tabs navigieren Alle 5 Tabs zeigen Content
SETTINGS-NAV-001 Settings-Seite oeffnen Sidebar sichtbar
SETTINGS-TABS-001 Settings-Tabs durchklicken Jeder Tab zeigt Content
SETTINGS-THEME-001 Theme-Toggle pruefen Toggle vorhanden und klickbar
ANON-VIEW-001 Pipeline-Manager oeffnen Seite laedt ohne Fehler
ANON-TOGGLE-001 View-Toggle umschalten Darstellung wechselt
CBM-ACCESS-001 Chatbot-Manager Seite oeffnen Seite sichtbar
CBM-TABS-001 Chatbot-Manager Tabs durchklicken Tab-Inhalte sichtbar
MD-NAV-001 Markdown Collab Home oeffnen Workspace-Liste oder Empty-State
MD-WORKSPACE-001 Workspace oeffnen Editor-Bereich sichtbar
INFRA-MKDOCS-001 MkDocs Dokumentation oeffnen HTTP 200, Content sichtbar
INFRA-MATOMO-001 Matomo Analytics oeffnen HTTP < 500, Login oder Dashboard
INFRA-MKDOCS-SEARCH-001 MkDocs Suche testen Suchergebnisse bei Eingabe
TICKET-CREATE-001 Ticket per App-Bar-Knopf erstellen (Run-Tag im Titel) POST /api/tickets antwortet 201, Dialog schließt
TICKET-MY-002 Meine Tickets über Home-Kachel (/tickets) öffnen Neues Ticket steht in der Liste
TICKET-LINK-005 Erstellen-Dialog öffnen und „Meine Tickets" wählen Dialog schließt und die Ticketliste öffnet sich
TICKET-ADMIN-003 Board /admin/tickets (Liste) öffnen, Ticket öffnen, „In Arbeit" setzen, kommentieren Status in_progress laut API, Kommentar im Verlauf
TICKET-REPLY-004 Ticket-Detail als Ersteller öffnen Admin-Kommentar sichtbar

Änderungsvorgehen bei neuer/angepasster Kachel

  1. Kachel in Home.vue ändern.
  2. home_tiles.contract.json synchron ändern.
  3. Passenden gleichnamigen Test in tile-regression.spec.js ergänzen/anpassen.
  4. Falls Cross-Feature-Betroffenheit vorliegt, nightly_workflows.contract.json und workflows.spec.js ergänzen.
  5. Diese Datei (NIGHTLY_TILE_MATRIX.md) aktualisieren.
  6. CLAUDE.md und ggf. docs/testing/CICD_SETUP.md aktualisieren.
  7. Lokal prüfen: python3 scripts/testing/validate_nightly_coverage.py.