M3.10: tools-context/* — drei Tool-Context-Module + drop gitkeep
Drei Module, klar nach Persona-Scope getrennt: - brick-creation.md: Pulse / View / Row / Pool-View-Tools + die haerteste Stolperfalle (delete_brick vs delete_view_brick vs remove_word_from_row). Main-Voice-exklusiv. - atomic-chain.md: Strikt-lineares Pattern fuer Sub-Agents ohne All-in-One-Finalize (Lueckentext). Drei Regeln: Reihenfolge, IDs aus Vorgaenger, bei Fehlschlag-Run beenden statt aufraeumen. - atomic-finalize.md: All-in-One-Pattern fuer Sub-Agents MIT Finalize (Kreuzwort). Kombiniert Layer-Erstellung + Solution-Set atomar — vermeidet orphan-Zustaende. atomic-chain und atomic-finalize zeigen explizit zueinander: wenn ein Finalize-Tool existiert, bevorzuge es. atomic-chain ist Fallback wenn das Backend nur die getrennten Tools anbietet. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -0,0 +1,68 @@
|
||||
---
|
||||
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.
|
||||
Reference in New Issue
Block a user