Plaene: Werkzeug-Vertrag nach P0-Review (Ausschluss per !, feste Uhr, missing-asset, bad-text)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
1 parent
18e8f3bda5
commit
74e70c654f
3 files changed
+12
-2
No files matched your search
@@ -54,7 +54,7 @@ Diese Regeln gelten für jede Aufgabe aller Pakete.
|
|||||||
- Jede Bash-Ausführung beginnt mit `source /root/reports/ticketsystem-design-2026-10-04/werkzeug/env.sh`. Das Skript (aus P0) setzt:
|
- Jede Bash-Ausführung beginnt mit `source /root/reports/ticketsystem-design-2026-10-04/werkzeug/env.sh`. Das Skript (aus P0) setzt:
|
||||||
- `WT=/home/webklar/apps/ticket.webklar.com/dev-design`
|
- `WT=/home/webklar/apps/ticket.webklar.com/dev-design`
|
||||||
- `W=/root/reports/ticketsystem-design-2026-10-04/werkzeug`
|
- `W=/root/reports/ticketsystem-design-2026-10-04/werkzeug`
|
||||||
- `TMPDIR` auf den Scratchpad-Ordner der Sitzung (sonst `$W/tmp`)
|
- `TMPDIR=$W/tmp`
|
||||||
- `set -o pipefail`
|
- `set -o pipefail`
|
||||||
- `cd "$WT"`
|
- `cd "$WT"`
|
||||||
|
|
||||||
@@ -228,7 +228,12 @@ Zu `shots.sh`:
|
|||||||
|
|
||||||
**`$W/gates.mjs`**
|
**`$W/gates.mjs`**
|
||||||
- Format: `GATES: { p<N>: { checks: string[], views: '*' | string[], scoped?: { [check]: { views: string[], ignore?: string[] } } } }`.
|
- Format: `GATES: { p<N>: { checks: string[], views: '*' | string[], scoped?: { [check]: { views: string[], ignore?: string[] } } } }`.
|
||||||
- `checks` gilt für `views`. Einträge in `views` dürfen mit `*` enden und gelten dann als Präfix (z. B. `'tickets-*'`).
|
- `checks` gilt für `views`. Einträge in `views` dürfen mit `*` enden und gelten dann als Präfix (z. B. `'tickets-*'`). Einträge mit führendem `!` schließen aus (nach den Einschlüssen). Ein Muster, das keine Ansicht trifft, eine leere Liste oder ein unbekannter Prüfname beenden den Lauf mit Exit 2.
|
||||||
|
- Immer aktiv sind zusätzlich `unhandled-request`, `backend-error` und `missing-asset` (fehlende statische Datei im Build).
|
||||||
|
- `bad-text` meldet sichtbare Texte wie „Invalid Date“, „NaN“, „undefined“, „[object Object]“ und das Wort „null“. Ab P2 ist die Prüfung im Gate scharf.
|
||||||
|
- Alle Läufe nutzen die feste Uhr `FIXTURE_TODAY=2026-10-05` (überschreibbar per Umgebungsvariable). So sind Bilder verschiedener Tage vergleichbar.
|
||||||
|
- Gate `p1` prüft `overflow-x` mit `['*', '!admin', '!admin-neu']`, weil die Admin-Seite heute schon waagerecht scrollt. P8 behebt das und nimmt die Ausnahme heraus.
|
||||||
|
- Das Werkzeug ist ein eigenes Git-Repo unter `$W`. Wer es ändert, committet dort. Selbsttests: `node selftest.mjs` und `"$W/run-browser.sh" "$W/checks-selftest.mjs"`.
|
||||||
- `scoped` schaltet eine weitere Prüfung nur für die genannten Ansichten ein. Beispiel: `icon-svg` für die Ansichten des Pakets, `ignore` mit Selektoren, die bis zu einem späteren Paket ausgenommen bleiben.
|
- `scoped` schaltet eine weitere Prüfung nur für die genannten Ansichten ein. Beispiel: `icon-svg` für die Ansichten des Pakets, `ignore` mit Selektoren, die bis zu einem späteren Paket ausgenommen bleiben.
|
||||||
- `step-failed`, `external-request` und `console-error` sind in jedem Gate aktiv.
|
- `step-failed`, `external-request` und `console-error` sind in jedem Gate aktiv.
|
||||||
- Paket N legt `p<N>` als `{ ...GATES['p<N-1>'], scoped: { ...vorherige, 'icon-svg': { views: [… Ansichten von N und allen früheren Paketen] } } }` an.
|
- Paket N legt `p<N>` als `{ ...GATES['p<N-1>'], scoped: { ...vorherige, 'icon-svg': { views: [… Ansichten von N und allen früheren Paketen] } } }` an.
|
||||||
|
|||||||
@@ -605,6 +605,8 @@ Ohne `challengeId` erscheint stattdessen „Code senden“ bzw. „Sende…“ u
|
|||||||
|
|
||||||
- [ ] **Step 2: `LetterGlitch` löschen und prüfen**
|
- [ ] **Step 2: `LetterGlitch` löschen und prüfen**
|
||||||
|
|
||||||
|
Zusätzlich entfällt im Werkzeug die Ausnahme `knownPageError` für LetterGlitch in `$W/shots.mjs` (eigener Commit im Werkzeug-Repo).
|
||||||
|
|
||||||
Run: `source /root/reports/ticketsystem-design-2026-10-04/werkzeug/env.sh && git rm -q src/components/LetterGlitch.jsx && ! rg -n "LetterGlitch" src && "$W/build.sh" "$WT" p1 && "$W/shots.sh" p1 "$W/shots/p1-t8" --only login,login-code,login-code-senden --gate p1`
|
Run: `source /root/reports/ticketsystem-design-2026-10-04/werkzeug/env.sh && git rm -q src/components/LetterGlitch.jsx && ! rg -n "LetterGlitch" src && "$W/build.sh" "$WT" p1 && "$W/shots.sh" p1 "$W/shots/p1-t8" --only login,login-code,login-code-senden --gate p1`
|
||||||
Expected: Exit 0. Im Bild `login-code-senden` steht der Knopf „Code senden“.
|
Expected: Exit 0. Im Bild `login-code-senden` steht der Knopf „Code senden“.
|
||||||
|
|
||||||
|
|||||||
@@ -42,6 +42,9 @@ Zusätzlich gilt: Das Seiten-Banner der Admin-Seite bleibt für Erfolg und Lösc
|
|||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
|
|
||||||
|
> **Nachtrag aus P0 (Gate):** Gate `p1` und alle folgenden Gates schließen `admin` und `admin-neu` von `overflow-x` aus (`['*', '!admin', '!admin-neu']`). P8 macht die Admin-Seite bei 390 px ohne waagerechtes Scrollen und entfernt die beiden Ausschlüsse aus allen Gates ab `p8` (ein Schritt im Abschluss-Task, geprüft mit `"$W/shots.sh" … --only admin,admin-neu --gate p8`).
|
||||||
|
|
||||||
### Task 1: Paketstart und Ausgangswerte
|
### Task 1: Paketstart und Ausgangswerte
|
||||||
|
|
||||||
**Files:** keine Änderung.
|
**Files:** keine Änderung.
|
||||||
|
|||||||
Reference in new issue
Block a user