docs(skills): Projekt-Skill kennt replaces und den Asset-Test je Ort
Behebt Befund 1 aus dem Abschluss-Review: der Skill war seit den Tribüne-Tasks veraltet - er kannte weder replaces noch die Materialzeilen je Ort in SOLID_BY_PLACE/BUMP_BY_PLACE. Ersetzt statt angehängt, an den drei Stellen, wo man danach sucht: Überblick (Ein-neuer-Ort-Liste), Schritt 2 (Stelle holen) und Schritt 8 (Tests), dazu zwei Fallstricke-Zeilen für die roten Ausgangszustände. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
1 parent
237a4ed389
commit
71011e27e2
1 file changed
+7
-5
@@ -10,9 +10,9 @@ description: Use when a model built in the three-d-stage editor (GLB export, oft
|
||||
Der Ablauf bleibt der des Hood Yard: Brainstorming mit der Lagefrage am Vergleichsbild → kurze Spec → Plan → Umsetzung mit Subagenten und Reviews → Browserprüfung → Gesamt-Review → Abschluss. Vorlage: `docs/superpowers/specs/2026-09-14-hood-yard-design.md` und `docs/superpowers/plans/2026-09-14-hood-yard.md`.
|
||||
|
||||
Neu gebaut werden muss nichts. Orte-Schicht (`src/world/places.js`), Aufbereitung (`tools/assets/places.mjs`), Bump-Erweiterung, Tests und das Vorwärmen in `main.js` gibt es schon. Ein neuer Ort besteht aus:
|
||||
- einem `PLACES`-Eintrag,
|
||||
- einem `PLACES`-Eintrag, optional mit `replaces` (Weltpunkte), wenn an der Stelle schon ein Gebäudekasten aus den Chunk-Daten steht,
|
||||
- einer aufbereiteten `.glb`,
|
||||
- Ergänzungen in den Materiallisten und Tests.
|
||||
- je einer Zeile in `SOLID_BY_PLACE` und `BUMP_BY_PLACE` (`tests/placesAsset.test.js`).
|
||||
|
||||
Die eigentliche Arbeit sind die Lage, die Materialrollen und die Prüfung im Spiel.
|
||||
|
||||
@@ -46,6 +46,7 @@ Die eigentliche Arbeit sind die Lage, die Materialrollen und die Prüfung im Spi
|
||||
node .claude/skills/placing-editor-models/scripts/site-data.mjs <x0> <x1> <y0> <y1> <scratch>/site.json
|
||||
```
|
||||
Straßenränder, Flächen und Laternen daraus ablesen.
|
||||
- **Ersetzt der Ort ein Gebäude:** Steht in `site.json` unter `buildings` ein Grundriss an der Stelle, den der Ort ersetzen soll, dessen Mitte als `replaces: [[x, y]]` in den `PLACES`-Eintrag. Der `ChunkStreamer` lässt ihn dann weg (`withoutReplacedBuildings`). Den Ort nicht um den Kasten herum verschieben, nicht `corrections.toml` vorschlagen. Vorlage: `docs/superpowers/specs/2026-09-14-tribuene-design.md`.
|
||||
3. **Satellitenbild einhängen:**
|
||||
- **Anker:** ein Punkt, der im Bild und in den Chunk-Daten eindeutig ist (Feldecke, Kreuzung), möglichst nah am Ziel. Echte Stadt und Spielkarte weichen voneinander ab.
|
||||
- **Maßstab:** Meter pro Pixel aus Autos (~4,5 m) oder Feldmarkierungen schätzen, mit ±15 % Unsicherheit rechnen.
|
||||
@@ -67,8 +68,8 @@ Die eigentliche Arbeit sind die Lage, die Materialrollen und die Prüfung im Spi
|
||||
- Browserprüfung
|
||||
7. **Aufbereiten:** `node tools/assets/places.mjs <quelle.glb> <id>`. Aus dem Bericht die `bounds` in `PLACES` übernehmen; `gpuMB` und die Dreieckszahl mit dem Nutzer abgleichen, wenn sie deutlich über dem Hood Yard liegen (231 MB, 658 000).
|
||||
8. **Tests:**
|
||||
- `tests/placesSite.test.js` prüft jeden `PLACES`-Eintrag schon von selbst.
|
||||
- `tests/placesAsset.test.js` ist auf `hood-yard` zugeschnitten. Beim zweiten Ort auf `describe.each(PLACES)` umbauen: feste Materialien **je Ort** prüfen statt ganz `SOLID_MATERIALS`, die Bump-Prüfung nur dort, wo das Modell Bump hat.
|
||||
- `tests/placesSite.test.js` prüft jeden `PLACES`-Eintrag von selbst, bei `replaces` auch, ob der ersetzte Grundriss noch an der Stelle liegt.
|
||||
- `tests/placesAsset.test.js` läuft über `describe.each(PLACES)`. Für den neuen Ort je eine Zeile ergänzen: `SOLID_BY_PLACE` (feste Materialien seiner Datei) und `BUMP_BY_PLACE` (Materialien mit Bump, sonst `[]`).
|
||||
9. **Browserprüfung** nach `browser-checks.md`:
|
||||
- Lage prüfen.
|
||||
- Kollision: Kapsel steht auf der Platte, eine Wand stoppt sie, Pflanzen sind durchlässig.
|
||||
@@ -87,7 +88,8 @@ Die eigentliche Arbeit sind die Lage, die Materialrollen und die Prüfung im Spi
|
||||
| Boden flackert im Ort | Plattenoberkante auf y 0 | `lift` für +6 cm |
|
||||
| Laterne oder Palme steht im Ort | Requisiten entstehen je Chunk, Laternen bis 16 m neben der Mittellinie, auch aus Nachbarchunks | Site-Test, Lage verschieben |
|
||||
| Ort schwebt nach einem Minimap-Sprung kurz über dem Meer | der Streamer baut einen Chunk pro Frame | hingenommen (Ruling Hood Yard) |
|
||||
| Asset-Test wird mit dem zweiten Ort rot | globaler `SOLID_MATERIALS`-Check | je Ort prüfen (Schritt 8) |
|
||||
| Asset-Test rot, „verteilt SOLID_MATERIALS …“ oder eine fehlende Zeile | Ort ohne Zeile in `SOLID_BY_PLACE`/`BUMP_BY_PLACE` | Zeile für den Ort ergänzen (Schritt 8) |
|
||||
| Site-Test „in keinem Gebäude“ rot | der Ort soll ein vorhandenes Gebäude ersetzen | `replaces` mit der Mitte des Grundrisses setzen (Schritt 2), statt den Ort zu verschieben |
|
||||
| `preview_start` findet den Server nicht | liest nur `.claude/launch.json` des Hauptordners | Nutzer fragen, Arbeitsbaum kurz verlassen, Eintrag setzen, zurück, am Ende entfernen |
|
||||
| Befehle im Arbeitsbaum verweigert | Isolationswache mag keine Variablen als Befehl oder Skriptpfade mit Leerzeichen | Pfade ausschreiben; statt `review-package` drei Befehle: `git log --oneline A..B >`, `git diff --stat A..B >>`, `git diff -U10 A..B >>` in eine Datei |
|
||||
| Draw-Call- und Dreieckszahlen zu optimistisch | `renderer.info` wird nach den Schattenstufen zurückgesetzt | `gl.finish`-Messung (`browser-checks.md` §8) |
|
||||
|
||||
Reference in new issue
Block a user