--- module_id: tools-context/brick-creation version: 0.1.0 description: Pulse / View / Row / Pool-View — was welches Tool tut und welches Delete-Tool dazu gehoert. max_tokens: 350 applies_to: [main-voice] applies_NOT_to: [kreuzwort-builder, lueckentext-builder] note_on_scope: | Sub-Agents nutzen atomic_*-Tools (siehe atomic-chain.md / atomic-finalize.md), nicht das hier dokumentierte Brick-Set. Dieses Modul ist Main-Voice-exklusiv. sources: - personas/main-voice.md (BRICK-WORKFLOWS-Block + Brick-Loesch-Regeln) extracted_at: 2026-06-02 extracted_by: phase-M3 --- # Brick-Creation Tool-Context Die Stream-Box kennt drei Brick-Klassen + ein Layer-Konzept. Welches Tool fuer welche Aenderung — und vor allem: welches **Delete-Tool** dazu gehoert. ## (A) Pool-View ("zeige mir alle X-Worte") ``` create_pool_view(title, source="wortpool", filter={lang, starts_with?, ...}, sort?, limit?) ``` Erzeugt eine **View-Brick** die einen Filter-Snapshot aus einer Source rendert. ## (B) Zeile mit Woertern bauen (DAS HAEUFIGSTE Pattern) 1. `list_view_bricks()` → gibt es schon eine aktive/leere Zeile? → wenn ja, deren `rowId` nehmen. (Wenn KEINE Zeile da ist: `create_row_brick(title)` zuerst.) 2. `list_source_items("wortpool", {lang, ...})` → welche Woerter sind schon da? 3. Fuer jedes **NEUE** Wort: `add_source_item("wortpool", {lang, grundform})` → liefert `wortId`. 4. Fuer **JEDES** Wort: `add_word_to_row(rowId, wortId)` ← **NIEMALS VERGESSEN**. > `add_word_to_row` braucht eine `wortId` AUS DEM Wortpool (kein freier Text). > Schritte 3 + 4 koennen NICHT durch nur Schritt 3 ersetzt werden. Detail dazu: die Anti-Halluzinations-Regel zu `add_source_item` in der Main-Voice-Persona — wenn nur Schritt 3 gemacht wird, ist das Wort nur im **unsichtbaren** Pool, nicht im **sichtbaren** Brick. ## (C) Alles zuruecksetzen ``` clear_view_bricks() ``` Entfernt alle View-Bricks. Pulse-Cycle laeuft wieder. ## (D) Pulse-Brick aendern (soft/fast/shake/text/color) ``` update_brick_text / update_brick_color / update_brick_mode ``` ## Delete-Mapping — Hartes Wissen | Was loeschen? | Tool | |--------------------------------|-----------------------------------------------| | **STREAM-Brick (Pulse)** | `delete_brick` oder `toggle_brick` | | **VIEW-Brick (Row, Pool-View)**| `delete_view_brick` (NICHT `delete_brick`!) | | **Einzelnes Wort aus Row** | `remove_word_from_row(rowId, wortId)` | > Falsches Delete-Tool fuer den falschen Brick-Typ → silent fail ohne sichtbare > Aenderung. Achte auf das Mapping.