Entwurf · Issue 0e0ba05

Die Reihenfolge der Arbeit ist ein Bild

Das Repository kann seine Reihenfolge sagen — eine Karte nach der anderen. Wie das Ganze aussieht, kann keine Karte sagen.

Seit 852f19b beantwortet jede Karte, worauf sie wartet und wer auf sie wartet. Was dabei unsichtbar bleibt, ist die eine Frage, die niemand pro Karte stellen kann: welche Karte mit gar nichts zusammenhängt. Eine isolierte Karte und eine, deren Nachbarn auf der nächsten Seite stehen, sehen heute identisch aus.

01Warum das Bild alles auf einmal zeigt

lib/smart-grid-request.ts begründet für das Board, warum eine Kanban-Spalte die ganze Suche bekommt und nicht ihre erste Seite: eine Spalte mit Seite eins einer Liste „looks complete, only shorter" — was fehlt, folgt der Sortierung und ist unsichtbar. Beim Graphen ist es derselbe Fehler mit schlimmerem Symptom.

Eine Karte, deren Nachbarn nicht geladen wurden, sieht aus wie eine Karte ohne Nachbarn — und genau diese Aussage ist der Grund, warum es das Bild gibt. Der Graph ist deshalb eine vierte Ansicht des Grids und nimmt den ungepagten Zweig neben board, nicht eine Seite daneben.

02Zwei Arten Kante, eine Art Ordnung

Ein needs/-Etikett ist eine Ordnung: diese Karte kann vor jener nicht beginnen. Eine Id im Fließtext ist ein Verweis — meist auf gelöste Arbeit, auf die Entscheidung, auf der die Karte aufsetzt. Eine Stichprobe von zehn Bodies fand siebzehn solcher Erwähnungen; 42218d4 nennt sechs und trägt kein einziges Etikett.

  • Der Verweis ist ungerichtet. Ein Pfeil würde eine Reihenfolge behaupten, die niemand erklärt hat, und der erste Leser hielte sie für eine.
  • Der Verweis ändert ready nicht. Eine Ordnung entsteht, indem jemand ein Etikett anhängt. Läse man einen Satz als Ordnung, würde eine Karte unaufnehmbar, weil jemand sie zitiert hat.
  • Der Verweis bewegt keine Schicht. Die Schichten kommen aus depth, und depth zählt nur erklärte Kanten — sonst stünde eine Karte auf einer Sprosse, auf die ihre Voraussetzungen sie nie gestellt haben.
  • hälteine Karte, die eine offene Karte nur im Text nennt, bleibt bereit
  • hältdieselbe Erwähnung erzeugt heute keine Kante in der Ordnung
  • hältdepth ist der Schichtindex: 0, 1, 2 über eine Kette von drei
  • hälteine Karte ohne Kante steht in beiden Richtungen leer

Alle vier sind heute grün, und alle vier sind das, was das Bild nicht brechen darf. Die zweite ist die schärfste: sie hält den Verweis aus der Ordnung heraus, auch nachdem er gezeichnet wird.

03Welche Art Verweis, und woher man das weiß

Zweiundachtzig Erwähnungen stehen in den Bodies dieses Repositories, zweiundsiebzig davon nennen eine Karte, die es gibt — und alle sagen dasselbe Nichts. Woher die Art kommt, ist die eigentliche Entscheidung: aus der Struktur des Briefs, nie aus dem Satz darum herum. Unter welcher ##-Überschrift die Id steht, und sonst nichts. Das ist ein Signal, das lib/issue-spec.ts ohnehin schon liest, also wird kein Satz gedeutet und kein Body umgeschrieben.

  • boundary ist ## Out of scope: ausdrücklich nicht die Arbeit dieser Karte.
  • grounds ist der Vorspann, ## Verify, ## Done when und ## Where: der Stand, von dem die Karte ausgeht. Ein ## Where spielt dieselbe Rolle wie ein Satz im Vorspann und kauft deshalb keine vierte Art für vier Vorkommen.
  • unknown ist jede Überschrift außerhalb der Grammatik — und bleibt das eine Grau, das heute alle tragen.

Siebzehn Ids stehen in zwei Abschnitten derselben Karte, fast immer im Vorspann erklärt und dann unter ## Out of scope begrenzt. Die bestimmtere Aussage gewinnt — eine Überschrift, die genau sagt, was sie meint, ist ein absichtlicher Satz, und anderswo zitiert zu werden nimmt ihn nicht zurück. Als unknown gelesen würde die Kollision siebzehn Erwähnungen ausgrauen, deren Struktur zweimal etwas Klares sagt.

  • hälteine Id im Vorspann ist grounds
  • hältdieselbe Id unter ## Out of scope ist boundary
  • hältunter einer Überschrift, die die Grammatik nicht kennt: unknown
  • hältund mehr Arten gibt es nicht — ein Body zeigt hier alle drei
  • hältsteht eine Id in beiden Abschnitten, gewinnt boundary
  • hältdie Art steht auf beiden Enden der Kante, denn sie gehört dem, der sie schrieb
  • hältund keine dieser Arten ist eine Ordnung geworden

Die letzte ist dieselbe Zusage wie oben, eine Stufe schärfer: boundary ist die lauteste Art und nennt hier eine offene Karte. Sickerte irgendetwas davon in readiness, wäre diese Karte blockiert, weil jemand einen Satz geschrieben hat.

04Was die Nachbarschaft einer Karte ist

Auf der Seite einer Karte steht nicht das Repository, sondern ihr Kegel: transitiv in beide Richtungen, unbegrenzt. Ein Deckel wäre eine Zahl, die niemand begründen kann, und an dem Tag, an dem er abschneidet, sähe es aus, als hörten die Nachbarn dort auf.

Unbegrenzt zu laufen heißt, den Zyklus zu beantworten statt an ihm zu hängen — der Lauf trägt die Menge der Ids, die er schon betreten hat, dieselbe Antwort, die orderIndex einer etikettierten Schleife gibt. Über eine erklärte Kante läuft er dem Pfeil nach, über einen Verweis in beide Richtungen.

05Was diese Seite nicht sehen kann

Das Kapitel liest, was der laufende Container hält. Es kann keinen Body dieses Repositories lesen, keinen Seed fragen und den Baum nicht sehen — die siebzehn Erwähnungen oben sind gezählt worden, nicht gerechnet.

  • Dass ein Body eine Kante ergibt, beweist lib/board.test.ts: eine genannte Id ergibt eine Kante, eine Nicht-Id keine, ein mehrdeutiges Präfix keine, die eigene Id keine, und eine Erwähnung, die schon als Etikett steht, keine zweite. Dieselbe Suite hält die Arten oben gegen echte Bodies — hier stehen nur Fixtures, die diese Seite selbst gebaut hat.
  • Dass der Graph die ganze Suche bekommt, beweist lib/smart-grid-request.test.ts — dieselbe Stelle, an der der ungepagte Zweig eine ganze Release lang unverdrahtet blieb.
  • Wie das Bild aussieht, beweist nichts davon. Das ist der Teil, für den jemand hinschauen muss.