Hustler-Stufe: Doku trennt Keller begehbar (3) und Bot-Leads abrufbar (6)
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
This commit is contained in:
1 parent
1ab760be0c
commit
5c3248ae8f
1 file changed
+35
-9
@@ -10,11 +10,23 @@ export const HUSTLER_STUFE = stufeAus(buildWert(), 3)
|
|||||||
|
|
||||||
Die `3` in dieser Zeile ist die Stufe der Produktion. Mehr ist zum Hochsetzen nicht zu ändern.
|
Die `3` in dieser Zeile ist die Stufe der Produktion. Mehr ist zum Hochsetzen nicht zu ändern.
|
||||||
|
|
||||||
|
Es gibt drei Schwellen (alle in `src/lib/hustlerStufe.js`, mit je einer Funktion, die Bausteine und Tests fragen):
|
||||||
|
|
||||||
|
| Konstante | Wert | Funktion | Was sie freigibt |
|
||||||
|
|---|---|---|---|
|
||||||
|
| `KELLER_BEGEHBAR_AB` | 3 | `kellerBegehbar(stufe)` | der Keller als Bildschirm: Keller-Etage als Link, `?tab=botleads` (auch mit `&bot=`), Spur-Links in den Keller |
|
||||||
|
| `STUFE_ANTWORTEN` | 4 | `antwortenOffen(stufe)` | die Antwort-Knöpfe im Pult (Dienst P4) |
|
||||||
|
| `BOTLEADS_AB` | 6 | `botleadsAbrufbar(stufe)` | der Abruf `GET /api/workers/botleads` (Dienst P6): nur dann holt der Keller Daten |
|
||||||
|
|
||||||
|
**Keller begehbar** und **Bot-Leads abrufbar** sind getrennt: Ab Stufe 3 öffnet der Keller seine Szene (Arne, Regale, Register-Buch, Reiter, Suche), auch wenn der Dienst die Bot-Leads noch nicht liefert.
|
||||||
|
Dann steht das Register leer da (siehe unten) und es geht keine Anfrage hinaus.
|
||||||
|
|
||||||
| Stufe | Dienst | Oberfläche |
|
| 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.** |
|
| 1 und 2 | vor P3 (kein Produktionswert, nur für Tests des geschlossenen Kellers) | wie Stufe 3, nur der Keller ist zu: Keller-Etage zoomt, `?tab=botleads` fällt aufs Hochhaus, Spur-Links in den Keller sind Text. 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. |
|
| 3 | P1 + P3 (zusätzlich pult GET, claim, sent, discard, done, prospect) | Hochhaus, Detailansicht, Pult mit Übernehmen, Kopieren & öffnen, Als gesendet markieren, Verwerfen, Erledigt, E-Mail schreiben. **Keller begehbar, aber leer** (kein Abruf der Bot-Leads). Keine Antwort-Knöpfe. Das ist die Produktion. |
|
||||||
| 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`. |
|
| 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. Keller wie bei Stufe 3 (leer). |
|
||||||
|
| 6 bis 9 | zusätzlich P6: `GET /botleads` | der Keller holt die Bot-Leads (Live-Daten): Register mit Zeilen, Suche, Raum-Reiter, Seiten, Akte. Entspricht dem vollen Stand von `75ed38e`. |
|
||||||
|
|
||||||
## Was unterhalb von Stufe 4 gesperrt ist (P4-Aktionen)
|
## Was unterhalb von Stufe 4 gesperrt ist (P4-Aktionen)
|
||||||
|
|
||||||
@@ -22,13 +34,27 @@ Die `3` in dieser Zeile ist die Stufe der Produktion. Mehr ist zum Hochsetzen ni
|
|||||||
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.
|
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.
|
||||||
- `PultList` reicht `stufe` (Standard `HUSTLER_STUFE`) an `rowModel` durch. P3-Aktionen bleiben unverändert.
|
- `PultList` reicht `stufe` (Standard `HUSTLER_STUFE`) an `rowModel` durch. P3-Aktionen bleiben unverändert.
|
||||||
|
|
||||||
## Was unterhalb von Stufe 6 gesperrt ist (Keller)
|
## Keller: begehbar ab Stufe 3, Bot-Leads erst ab Stufe 6
|
||||||
|
|
||||||
|
Unterhalb von Stufe 3 (`kellerBegehbar` false) ist der Keller zu:
|
||||||
|
|
||||||
- `WorkersPage`: `?tab=botleads` (auch mit `&bot=`) und jeder andere unbekannte Wert zeigen das Hochhaus (`pickTab` nimmt den ersten erlaubten Bildschirm). `BotLeadList` wird nie eingehängt.
|
- `WorkersPage`: `?tab=botleads` (auch mit `&bot=`) und jeder andere unbekannte Wert zeigen das Hochhaus (`pickTab` nimmt den ersten erlaubten Bildschirm). `BotLeadList` wird nie eingehängt.
|
||||||
Die Weiterleitungen `/leads` und `/workers` auf `/hustler` (Query bleibt) gelten weiter und enden dann im Hochhaus.
|
Die Weiterleitungen `/leads` und `/workers` auf `/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“).
|
- `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.
|
- `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.botleads` ruft unterhalb von Stufe 6 gar nichts ab (kein JWT, keine Anfrage) und liefert den Fehler 404 „Der Keller ist noch nicht freigeschaltet.“
|
|
||||||
|
Ab Stufe 3 sind alle drei Punkte offen (Etage ist ein Link, `?tab=botleads` gilt, Spur-Links führen hinein). Die Kennzahl „Bot-Leads“ in der Kopfzeile ist Text und bleibt es (sie führt auch ab Stufe 6 nirgends hin).
|
||||||
|
|
||||||
|
Unterhalb von Stufe 6 (`botleadsAbrufbar` false) gibt es `GET /botleads` im Dienst noch nicht. Darum:
|
||||||
|
|
||||||
|
- `BotLeadList` (Prop `stufe`, Standard `HUSTLER_STUFE`, von `WorkersPage` durchgereicht) ruft `api.botleads` gar nicht erst auf: kein JWT, keine Anfrage, keine Ladeanzeige, kein Fehlerzustand, kein „Erneut versuchen“.
|
||||||
|
- Der Keller zeigt seine normale Szene (Arne nach seinem Status, Regale, Register-Buch, Raum-Reiter, Suche) im Leer-Zustand mit ehrlichem Text (`RegisterBuch`, Prop `ohneDienst`):
|
||||||
|
**„Noch keine Bot-Leads.“** und darunter „Hier legt Arne Betriebe ohne Website ab, die Bea nicht für eine Mail ausgewählt hat. Die Branchen-Räume (Ärzte, Handwerk, Selbstständige, Läden) suchen noch nicht.“
|
||||||
|
Dieser Text gilt auch mit gewähltem Raum, getippter Suche und in der Einzelansicht (`&bot=`); „Keine Treffer.“ und die Zahl am Reiter gibt es ohne Dienst nicht.
|
||||||
|
- Reiter, Suche, „Register zuklappen“ und „Alle anzeigen“ bleiben bedienbar und ändern nur die Anzeige; sie lösen nie einen Abruf aus und nehmen keinen Fokus weg.
|
||||||
|
- `workersApi.botleads` bleibt unterhalb von Stufe 6 zusätzlich hart gesperrt (zweite Sicherung, falls ein Aufrufer die Stufe nicht prüft): kein JWT, keine Anfrage, Fehler 404 „Die Bot-Leads sind noch nicht freigeschaltet.“ (`BOTLEADS_GESPERRT_TEXT`).
|
||||||
|
|
||||||
|
Ab Stufe 6 gilt das Verhalten mit Live-Daten unverändert (Abruf, Suche mit Verzögerung, Seiten, Akte, Leer-Text „Betriebe, die nicht angeschrieben werden, erscheinen hier mit ihrem Grund.“).
|
||||||
|
|
||||||
Es gibt keine Überschreibung zur Laufzeit (kein localStorage, keine Adresse, kein Schalter in der Oberfläche).
|
Es gibt keine Überschreibung zur Laufzeit (kein localStorage, keine Adresse, kein Schalter in der Oberfläche).
|
||||||
|
|
||||||
@@ -36,19 +62,19 @@ Es gibt keine Überschreibung zur Laufzeit (kein localStorage, keine Adresse, ke
|
|||||||
|
|
||||||
1. 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/botleads` antwortet 200).
|
1. 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/botleads` antwortet 200).
|
||||||
2. In `src/lib/hustlerStufe.js` die `3` in der Zeile `export const HUSTLER_STUFE = stufeAus(buildWert(), 3)` ändern: auf `4` beim Livegang von P4, auf `6` beim Livegang von P6
|
2. In `src/lib/hustlerStufe.js` die `3` in der Zeile `export const HUSTLER_STUFE = stufeAus(buildWert(), 3)` ändern: auf `4` beim Livegang von P4, auf `6` beim Livegang von P6
|
||||||
(die Kommentarzeile darüber nennt die Stufen).
|
(die Kommentarzeile darüber nennt die Stufen). Der Keller selbst ist schon mit `3` offen; die `6` schaltet nur seinen Datenabruf ein.
|
||||||
3. Tests und Bau wie gewohnt: `node --max-old-space-size=1024 --test tests/*.test.mjs tests/unit/*.test.mjs` und `vite build`.
|
3. Tests und Bau wie gewohnt: `node --max-old-space-size=1024 --test tests/*.test.mjs tests/unit/*.test.mjs` und `vite build`.
|
||||||
Kein Test hängt an der `3`: `hustlerStufe.test.mjs` liest die Stufe aus dem Quelltext, alle Stufen-Tests geben ihre Stufe (3 und 6) ausdrücklich an. Bricht nach dem Hochsetzen
|
Kein Test hängt an der `3`: `hustlerStufe.test.mjs` liest 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.
|
trotzdem ein Test, hat er die Stufe stillschweigend aus dem Standard gelesen und gehört auf eine ausdrückliche Stufe umgestellt.
|
||||||
4. 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 ▸“.
|
4. 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 im Keller das Register mit den Bot-Leads (statt „Noch keine Bot-Leads. Hier legt Arne …“). Die Keller-Etage „Keller · Bot-Leads ▸“ ist schon ab `3` ein Link.
|
||||||
|
|
||||||
## Prüfstand (`scripts/workers-harness`)
|
## 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`:
|
Der Prüfstand braucht P4 und die Bot-Leads (Live-Daten im 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)
|
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=3 node scripts/workers-harness/build.mjs "$(mktemp -d)" # Stand der Produktion (Szenarien ohne P4; der Keller zeigt sein leeres Register)
|
||||||
```
|
```
|
||||||
|
|
||||||
`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.
|
`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.
|
||||||
|
|||||||
Reference in new issue
Block a user