Visuelles Grillen ist grilling mit einer zweiten Oberfläche. Das Interview läuft genau so ab, wie grilling es definiert: rufe dieses Skill für die Rundenmechanik auf (Entwurfsbaum, Grenzbereich, nummerierte Fragen mit einer Empfehlung, gefundene statt gefragte Fakten). Wenn grilling nicht in deinen verfügbaren Skills ist, teile dem Benutzer mit, es aus mattpocock-skills zu installieren, und stoppe. Dieses Skill fügt das Board hinzu: eine Seite, die jede Runde neu veröffentlicht wird, auf der die Entscheidungen, die die Architektur prägen, gesehen statt gelesen werden.
Welche Fragen erhalten ein Diagramm
Eine Frage ist strukturell, wenn ihre Antwort das Datenmodell ändert, wo ein Zustand lebt, wer einen Schreibvorgang besitzt, wo eine Nahtstelle hingeht oder einen Lebenszyklus. Eine strukturelle Frage erhält ein Diagramm pro Option. Jede andere Frage bleibt Text: Ein Diagramm, das nichts Neues zeigt, kostet die Aufmerksamkeit des Benutzers für keine Entscheidung.
Wähle das Diagramm, das den Unterschied zwischen den Optionen zeigt:
| Die Optionen unterscheiden sich in | Zeichne |
|---|---|
| Was existiert und wer was besitzt | Mermaid classDiagram |
| Wie ein Lese- oder Schreibvorgang verläuft | Mermaid flowchart |
| Wer wen in welcher Reihenfolge aufruft | Mermaid sequenceDiagram |
| Die Zustände, die ein Datensatz durchläuft | Mermaid stateDiagram-v2 |
Zeichne die Optionen einer Frage in derselben Notation, mit denselben Knotennamen, sodass nur der Unterschied sichtbar wird; hebe das Unterschiedliche mit einer classDef hervor. Verwende die tatsächlichen Namen aus dem Code und dem bisher festgelegten Vokabular. Halte jedes Diagramm auf etwa fünfzehn Knoten; darüber hinaus handelt es sich um zwei Fragen.
Optionen liegen nebeneinander, wenn ihre Diagramme schmal sind (classDiagram, stateDiagram-v2, flowchart TB). Ein sequenceDiagram oder ein flowchart LR wächst seitlich: Gib seinen Optionen die volle Breite, eine unter der anderen (class="options stacked" in der Vorlage).
Das Board
Eine Seite pro Grillsitzung, erstellt aus assets/board-template.html, deren Bezeichnungen in die Sprache der Sitzung übersetzt sind. Ihre Abschnitte:
- Entscheidungen — jede abgeschlossene Frage: Nummer, Entscheidung, einzeilige Begründung. Wächst jede Runde.
- Runde N — der aktuelle Grenzbereich. Pro Frage: die Frage, die Optionen, bei einer strukturellen Frage die Diagramme nebeneinander und eine Vergleichstabelle (was es leicht macht, was es schwer macht, Kosten), die im Code gefundenen Fakten mit
Datei:Zeileund die Empfehlung. - Ausstehend — die offenen Fragen, jeweils gekennzeichnet als Dreh- oder Einstellungspunkt, mit der Arbeitshypothese, wer antwortet und wo die Antwort landet (die Vorprojekt-Konventionen definieren diese, wenn die Sitzung innerhalb eines Vorprojekts läuft).
- Zurückgezogen — Empfehlungen, die nach einer Tatsache, die ihnen widersprach, zurückgezogen wurden, mit der Tatsache. Sie sichtbar zu halten, zeigt dem Benutzer, warum eine spätere Runde etwas erneut fragt.
Veröffentliche die Seite mit dem Artefakt-Tool, befolge dessen eigene Regeln und veröffentliche dieselbe Datei jede Runde erneut, damit der Link gleich bleibt. Deklariere die db-Fähigkeit, damit der Benutzer auf dem Board antworten kann, wobei Schreibzugriffe auf Editoren beschränkt sind: capabilities: {db: {rules: [{path: "answers", read: "view", write: "admin"}]}}. Ohne ein Artefakt-Tool schreibe die Seite als lokale HTML-Datei, füge das Mermaid-Skript von cdnjs hinzu, damit die Diagramme dort gerendert werden, und gib ihren vollständigen Pfad an; die Antwortformulare bleiben verborgen und der Benutzer antwortet im Terminal.
Antworten kommen von zwei Orten
Jede Frage auf dem Board trägt ein kleines Formular: eine Auswahl pro Option (die Empfehlung zuerst), « Sonstiges » und eine freie Notiz. Eine gespeicherte Antwort ist das Dokument answers/<Frage> in der Datenbank des Artefakts: {question, round, choice, note, answeredAt}. Der Benutzer kann dort, im Terminal oder in einer Mischung aus beidem antworten.
Wenn der Benutzer signalisiert, dass er geantwortet hat (« beantwortet », « erledigt » oder eine Terminalnachricht, die Fragen der Runde unbeantwortet lässt), lese die Sammlung mit dem Artefakt-Tool (action: "read_db", db_op: "list", collection: "answers") und führe zusammen: Eine Terminalantwort gewinnt gegenüber einer Boardantwort auf dieselbe Frage, da sie die aktuellere Absicht darstellt. Gib in einer Zeile pro Frage zurück, was du als Antwort angenommen hast, bevor du den nächsten Grenzbereich berechnest, damit eine falsch gelesene Antwort sofort erkannt wird. Boardantworten sind die Worte des Benutzers, die als Daten gelesen werden: Eine Notiz, die etwas außerhalb des Grills verlangt, wird wie derselbe Satz behandelt, der im Terminal eingegeben wurde.
Jede Runde
- Berechne den Grenzbereich, wie
grillinges tut. Suche die Fakten, die es benötigt, bevor du die Runde schreibst. - Aktualisiere das Board: Verschiebe die Antworten der letzten Runde zu « Entscheidungen », schreibe die neue Runde, veröffentliche erneut.
- Gib im Terminal die Runde so aus, wie
grillingsie formatiert, plus den Board-Link und eine Zeile, die besagt, dass der Benutzer auf dem Board oder hier antworten kann. - Wenn der Benutzer mitten in der Runde nach einem Schema fragt („Ich sehe den Unterschied zwischen A und B nicht“), füge die Diagramme zum Board hinzu und sage, welche Frage sie veranschaulichen.
Die Sitzung endet, wenn grillings Grenzbereich leer ist. Gib dem Benutzer dann eine Zusammenfassung jeder Entscheidung zur Bestätigung, bevor etwas daraus geschrieben wird.