build.mjs setzt die Stufe über define ein (Standard 6, andere Ziffer 1 bis 9 aus der Umgebung, Ungültiges bricht ab), damit die Szenarien K (Pult P4) und L (Keller) weiter laufen; ein Test baut den Prüfstand mit Standard, 3 und ungültigen Werten. docs/superpowers/hustler-stufe.md erklärt Stufen, Sperren und die Schritte beim Hochsetzen. Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
4.6 KiB
Hustler-Stufe: was die Oberfläche schon zeigen darf
Der Hustler-Dienst (knso/workers-dienst) geht Stufe für Stufe live, die Oberfläche (WOMS, /hustler) ist schon fertig. Damit Mitarbeiter keine Knöpfe und Bildschirme sehen,
deren Endpunkte im Dienst noch fehlen (404 {"error":"Nicht gefunden."}), gibt es eine Stufen-Sperre mit genau einer Quelle der Wahrheit:
src/lib/hustlerStufe.js
export const HUSTLER_STUFE = stufeAus(buildWert(), 3)
Die 3 in dieser Zeile ist die Stufe der Produktion. Mehr ist zum Hochsetzen nicht zu ändern.
| Stufe | Dienst | Oberfläche |
|---|---|---|
| 1 bis 3 | P1 + P3 (state, events, settings, pause, trace, pult GET, claim, sent, discard, done, prospect) | Hochhaus, Detailansicht, Pult mit Übernehmen, Kopieren & öffnen, Als gesendet markieren, Verwerfen, Erledigt, E-Mail schreiben. Kein Keller, keine Antwort-Knöpfe. |
| 4 und 5 | zusätzlich P4: POST /pult/:id/paste, /reply, /approve-preview, /start-build |
zusätzlich im Pult-Brief: Antwort des Kunden einfügen, Als Mensch antworten / Jetzt senden, Freigeben & senden, Vorschau bauen. Kein Keller. |
| 6 bis 9 | zusätzlich P6: GET /botleads |
zusätzlich der Keller (Bot-Leads): Keller-Etage als Link, Bildschirm ?tab=botleads, Deeplinks, Spur-Links. Entspricht dem vollen Stand von 75ed38e. |
Was unterhalb von Stufe 4 gesperrt ist (P4-Aktionen)
rowModel(src/lib/workersPult.js, Parameterstufe, StandardHUSTLER_STUFE) liefertcanReply,canPaste,canApprovePreviewundcanStartBuildimmer alsfalse. Brief und Liste lesen nur diese Felder, deshalb verschwinden Knöpfe, Eingabefelder, Rückfragen und Hinweise zusammen; die Aktionsgruppe schließt sich ohne Lücke.PultListreichtstufe(StandardHUSTLER_STUFE) anrowModeldurch. P3-Aktionen bleiben unverändert.
Was unterhalb von Stufe 6 gesperrt ist (Keller)
WorkersPage:?tab=botleads(auch mit&bot=) und jeder andere unbekannte Wert zeigen das Hochhaus (pickTabnimmt den ersten erlaubten Bildschirm).BotLeadListwird nie eingehängt. Die Weiterleitungen/leadsund/workersauf/hustler(Query bleibt) gelten weiter und enden dann im Hochhaus.HochhausWelt: die Keller-Etage ist kein Link auf/hustler?tab=botleads, sondern ein Knopf wie jede andere Etage (zoomt heran, „Keller heranzoomen“).HustlerDialog: ein Spur-Link in den Keller bleibt Text. Arne ist weiter sichtbar und klickbar (Detailansicht), die Zahl „Bot-Leads“ in der Kopfzeile und am Schild im Haus bleibt.workersApi.botleadsruft unterhalb von Stufe 6 gar nichts ab (kein JWT, keine Anfrage) und liefert den Fehler 404 „Der Keller ist noch nicht freigeschaltet.“
Es gibt keine Überschreibung zur Laufzeit (kein localStorage, keine Adresse, kein Schalter in der Oberfläche).
Stufe beim Livegang hochsetzen
- Den Dienst-Stand live nehmen und prüfen, dass die Endpunkte antworten (P4: ein Pult-Eintrag lässt sich einfügen/beantworten; P6:
GET /api/workers/botleadsantwortet 200). - In
src/lib/hustlerStufe.jsdie3in der Zeileexport const HUSTLER_STUFE = stufeAus(buildWert(), 3)ändern: auf4beim Livegang von P4, auf6beim Livegang von P6 (die Kommentarzeile darüber nennt die Stufen). - Tests und Bau wie gewohnt:
node --max-old-space-size=1024 --test tests/*.test.mjs tests/unit/*.test.mjsundvite build. Kein Test hängt an der3:hustlerStufe.test.mjsliest die Stufe aus dem Quelltext, alle Stufen-Tests geben ihre Stufe (3 und 6) ausdrücklich an. Bricht nach dem Hochsetzen trotzdem ein Test, hat er die Stufe stillschweigend aus dem Standard gelesen und gehört auf eine ausdrückliche Stufe umgestellt. - Committen, pushen, deployen wie jede andere Änderung. Danach im Browser prüfen: P4 zeigt im Brief „Antwort des Kunden einfügen“ bzw. „Als Mensch antworten“; P6 zeigt die Keller-Etage mit „Keller · Bot-Leads ▸“.
Prüfstand (scripts/workers-harness)
Der Prüfstand braucht P4 und Keller für seine Szenarien K und L. build.mjs baut deshalb standardmäßig mit VITE_HUSTLER_STUFE=6:
node scripts/workers-harness/build.mjs "$(mktemp -d)" # Stufe 6, wie bisher (alle Szenarien)
VITE_HUSTLER_STUFE=3 node scripts/workers-harness/build.mjs "$(mktemp -d)" # Stand der Produktion (Szenarien ohne P4 und Keller)
VITE_HUSTLER_STUFE gilt nur zur Bauzeit und nur als Ziffer 1 bis 9; alles andere fällt auf die Stufe aus dem Quelltext zurück (Vite) bzw. bricht den Bau des Prüfstands ab.
Die Variable gehört nicht in den Produktions-Bau (nicht in .env, nicht in Build-Argumente): die Produktion richtet sich allein nach dem Quelltext.