ee18a1f591
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>
52 lines
1.9 KiB
Markdown
52 lines
1.9 KiB
Markdown
---
|
|
module_id: tools-context/atomic-finalize
|
|
version: 0.1.0
|
|
description: All-in-One Layer+Solution-Erzeugung via atomic_finalize_*.
|
|
max_tokens: 200
|
|
applies_to: [kreuzwort-builder, future-atomic-finalize-builders]
|
|
sources:
|
|
- personas/kreuzwort-builder.md (atomic_finalize_kreuzwort_layer als FINALER Schritt)
|
|
extracted_at: 2026-06-02
|
|
extracted_by: phase-M3
|
|
---
|
|
|
|
# Atomic-Finalize Pattern
|
|
|
|
Manche Sub-Agents nutzen ein All-in-One-Tool `atomic_finalize_<TYP>_layer(...)`,
|
|
das **Layer-Erstellung und Solution-Persistenz in EINEM atomaren Call** kombiniert.
|
|
|
|
## Wann
|
|
|
|
Wenn das Backend ein solches Tool anbietet (heute: Kreuzwort), bevorzuge es
|
|
gegenueber der getrennten `atomic_create_layer` + `atomic_set_*_solution`-Kette.
|
|
Vorteil: kein orphan-Zustand zwischen Layer-Erstellung und Solution-Set.
|
|
|
|
## Aufruf-Schema
|
|
|
|
```
|
|
atomic_finalize_<TYP>_layer({
|
|
brickZones: { [brickId_1]: "zone-1", [brickId_2]: "zone-2", ... },
|
|
correctMapping: { ... }, // Loesung in Layer-spezifischem Format
|
|
title: "...",
|
|
})
|
|
→ liefert { layerId }
|
|
```
|
|
|
|
## Regeln
|
|
|
|
- **`brickZones`** muss die **EXAKTEN** `brickId`-Werte aus den Vorgaenger-Tool-Calls
|
|
enthalten. Keine erfundenen IDs, keine `"default"`, `"layer-1"` etc.
|
|
- **`correctMapping`** hat ein Layer-Typ-spezifisches Format
|
|
(z.B. fuer Kreuzwort: `{ "row,col": "L", ... }` pro Cell).
|
|
- **Genau ein Call** — das Tool ist nicht idempotent fuer "korrigieren".
|
|
Wenn der Layer falsch ist, muss alles davor neu gebaut werden.
|
|
|
|
## Warum getrennte Tools im Sub-Agent-Skill?
|
|
|
|
Manchmal sind `atomic_create_layer` + `atomic_set_*_solution` separat in
|
|
`required_tools`, manchmal nur das `atomic_finalize_*`. Im **Kreuzwort-Skill**
|
|
ist BEWUSST nur das Finalize-Tool exponiert (siehe Kommentar in
|
|
`kreuzwort-orchestrator.js`: "`atomic_set_kreuzwort_solution` ausgefiltert"),
|
|
damit die Reihenfolge nicht durcheinander geraten kann und keine erfundenen
|
|
`layerId`s entstehen.
|