# Parallel Agent Implementation — Schritt 7–11

> **For agentic workers:** Use superpowers:subagent-driven-development to execute this plan task-by-task.

**Goal:** Implement Schritt 7–11 using parallel agents where file overlap allows, minimizing wall-clock time.

---

## Parallelism Analysis

| Schritt | Dateien (schreibend) |
|---------|---------------------|
| 7 — Lighting | `taproom.tscn`, `tavern.tscn` |
| 8 — Dice Roller | `network_manager.gd`, `tavern.gd`, `dm_view.tscn`, `dm_view.gd` |
| 9 — Player Interaction | `project.godot`, `player_controller.gd`★, `interactable.gd`★, `test_interactable.gd`★, `tavern.gd`, `tavern.tscn` |
| 10 — Spore Overlay | `spore_overlay.gdshader`★, `network_manager.gd`, `tavern.gd` |
| 11 — Sporennebel Slider | `spore_level.gd`★, `project.godot`, `network_manager.gd`, `dm_view.tscn`, `dm_view.gd`, `tavern.gd` |

★ = neue Datei, kein Merge-Conflict möglich

**Conflict-Matrix:**

| | 7 | 8 | 9 | 10 | 11 |
|---|---|---|---|---|---|
| 7 | — | ✅ | ⚠️ tscn | ✅ | ✅ |
| 8 | ✅ | — | ⚠️ tavern.gd | ⚠️ nm.gd+tavern | ⚠️ nm.gd+dm_view+tavern |
| 9 | ⚠️ tscn | ⚠️ tavern.gd | — | ⚠️ tavern.gd | ⚠️ tavern.gd+proj |
| 10 | ✅ | ⚠️ | ⚠️ | — | ⚠️ nm.gd+tavern |
| 11 | ✅ | ⚠️ | ⚠️ | ⚠️ | — |

**Fazit:** Nur 7+8 sind konfliktfrei parallel. Alle anderen haben Überschneidungen in tavern.gd oder network_manager.gd → sequential nach Merge.

---

## Ausführungs-Reihenfolge

```
Phase 1 (parallel):  7 + 8
Phase 2 (merge):     merge 7 + 8 → main
Phase 3 (sequenz.):  9
Phase 4 (merge):     merge 9 → main
Phase 5 (sequenz.):  10
Phase 6 (merge):     merge 10 → main
Phase 7 (sequenz.):  11
Phase 8 (merge):     merge 11 → main
```

---

## Phase 1: Agents 7 + 8 parallel dispatchen

Beide Agents **gleichzeitig** starten (single message, two Agent tool calls).

### Agent A — Tavern Lighting (`feat/tavern-lighting`)

**Prompt:**
> Implement the plan at `docs/plans/2026-04-14-tavern-lighting.md` in the Godot 4 project at `ruf-der-pilze/`. Work on branch `feat/tavern-lighting` (create from current `main`). Use superpowers:executing-plans.
>
> Do NOT update STATUS.md — that happens after merge. Push the branch when done and report which commits were created.

### Agent B — Dice Roller (`feat/dice-roller`)

**Prompt:**
> Implement the plan at `docs/plans/2026-04-14-dice-roller.md` in the Godot 4 project at `ruf-der-pilze/`. Work on branch `feat/dice-roller` (create from current `main`). Use superpowers:executing-plans.
>
> Do NOT update STATUS.md — that happens after merge. Push the branch when done and report which commits were created.

---

## Phase 2: Review + Merge 7 + 8

- [ ] **Agent A output reviewen** — Godot öffnen, Screenshot der beleuchteten Taverne
- [ ] **Agent B output reviewen** — Würfelwurf mit zwei Clients testen, DM DC-Anzeige prüfen
- [ ] **Lighting branch mergen**
  ```bash
  git checkout main
  git merge feat/tavern-lighting --no-ff -m "feat: merge Schritt 7 — tavern lighting"
  ```
- [ ] **Dice branch mergen**
  ```bash
  git merge feat/dice-roller --no-ff -m "feat: merge Schritt 8 — dice roller"
  ```
- [ ] **STATUS.md updaten**
  ```bash
  git add docs/STATUS.md ruf-der-pilze/CLAUDE.md
  git commit -m "docs: mark Schritt 7 + 8 complete"
  ```

---

## Phase 3: Agent C — Player Interaction (`feat/player-interaction`)

**Prompt:**
> Implement the plan at `docs/plans/2026-04-14-player-interaction.md` in the Godot 4 project at `ruf-der-pilze/`. Work on branch `feat/player-interaction` (create from current `main`).
>
> Use superpowers:executing-plans.
>
> **Critical context (already merged into main):**
> - `tavern.gd._ready()` endet jetzt mit `_setup_dice_ui()` — das ist der letzte Aufruf (von Schritt 8). Wenn du `_spawn_player()` ersetzt (Task 4), berühre `_ready()` NICHT.
> - `tavern.tscn` hat neue Licht-Nodes von Schritt 7. Beim Hinzufügen des Test-Interactables (Task 5) nur neue Nodes ergänzen, keine vorhandenen Nodes anfassen.
>
> Do NOT update STATUS.md. Push when done.

---

## Phase 4: Review + Merge 9

- [ ] **Agent C output reviewen** — WASD Bewegung, Maus-Look, E-Taste Interaktion testen
- [ ] **Interaction branch mergen**
  ```bash
  git checkout main
  git merge feat/player-interaction --no-ff -m "feat: merge Schritt 9 — player interaction"
  ```
- [ ] **STATUS.md updaten**
  ```bash
  git add docs/STATUS.md ruf-der-pilze/CLAUDE.md
  git commit -m "docs: mark Schritt 9 complete"
  ```

---

## Phase 5: Agent D — Spore Overlay (`feat/spore-overlay`)

**Prompt:**
> Implement the plan at `docs/plans/2026-04-14-spore-overlay.md` in the Godot 4 project at `ruf-der-pilze/`. Work on branch `feat/spore-overlay` (create from current `main`).
>
> Use superpowers:executing-plans.
>
> **Critical context (already in main):**
> - `tavern.gd._ready()` endet mit `_setup_dice_ui()` — nur APPEND, kein Rewrite.
> - `network_manager.gd` hat bereits: `broadcast_roll`, `_relay_roll` (Schritt 8), `sync_player_position` (Schritt 6). Füge `overlay_changed` Signal und die Änderung in `set_overlay` hinzu ohne andere Funktionen zu ändern.
>
> Do NOT update STATUS.md. Push when done.

---

## Phase 6: Review + Merge 10

- [ ] **Agent D output reviewen** — DM togglet `spore_active`, Spieler sieht Shader-Effekt
- [ ] **Overlay branch mergen**
  ```bash
  git checkout main
  git merge feat/spore-overlay --no-ff -m "feat: merge Schritt 10 — spore overlay shader"
  ```
- [ ] **STATUS.md updaten**
  ```bash
  git add docs/STATUS.md ruf-der-pilze/CLAUDE.md
  git commit -m "docs: mark Schritt 10 complete"
  ```

---

## Phase 7: Agent E — Sporennebel Slider (`feat/spore-slider`)

**Prompt:**
> Implement the plan at `docs/plans/2026-04-14-spore-level-slider.md` in the Godot 4 project at `ruf-der-pilze/`. Work on branch `feat/spore-slider` (create from current `main`).
>
> Use superpowers:executing-plans.
>
> **Critical context (already in main from Schritt 10):**
> - `tavern.gd` hat bereits: `var _spore_mat: ShaderMaterial`, `_setup_spore_overlay()`, `_on_overlay_changed(overlay_name: String)`.
> - Task 5 dieses Plans ersetzt `_on_overlay_changed()` — das ist beabsichtigt und notwendig.
> - `network_manager.gd` hat bereits `overlay_changed` Signal (Schritt 10). Füge `request_spore_level` und `_relay_spore_level` am Ende hinzu ohne bestehende Funktionen zu ändern.
> - `dm_view.tscn` SidePanel hat bereits Würfelwurf-Sektion (Schritt 8). Sporennebel-Slider unterhalb davon ergänzen.
>
> Do NOT update STATUS.md. Push when done.

---

## Phase 8: Review + Merge 11

- [ ] **Agent E output reviewen** — DM Slider bewegen → Spieler Shader-Intensität ändert sich live
- [ ] **Slider branch mergen**
  ```bash
  git checkout main
  git merge feat/spore-slider --no-ff -m "feat: merge Schritt 11 — sporennebel slider"
  ```
- [ ] **STATUS.md updaten — alle Mechanics complete**
  ```bash
  git add docs/STATUS.md ruf-der-pilze/CLAUDE.md
  git commit -m "docs: mark Schritt 11 complete — all mechanics done, next: Refectorium"
  ```

---

## Zusammenfassung

```
main
├── [parallel] feat/tavern-lighting   → Agent A
├── [parallel] feat/dice-roller       → Agent B
│   [merge beide]
└── feat/player-interaction           → Agent C
    [merge]
    feat/spore-overlay                → Agent D
    [merge]
    feat/spore-slider                 → Agent E
    [merge]
    → Alle Mechanics abgeschlossen → weiter mit Refectorium
```
