Files
planer/phase0/prompt-einheiten.md
2026-07-22 16:12:23 +02:00

66 lines
3.2 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Auftrag: Quelldatei in Einheiten zerlegen
Du bekommst unten den vollständigen Inhalt der Datei `<DATEI>` aus einem
Python-Projekt. Zerlege sie in **Einheiten** und gib GENAU EINE Markdown-Datei im
unten definierten Format zurück — nichts davor, nichts danach, keine Code-Fences
um das Gesamtergebnis.
## Was ist eine Einheit
Das Kleinste mit **eigener Verantwortung**, das sich in einem Satz beschreiben lässt —
meist eine Funktion oder Klasse; mehrere kleine, zusammengehörige Symbole dürfen eine
Einheit bilden. Jede Funktion/Klasse der Datei gehört zu genau einer Einheit (MECE).
Modul-Konstanten und Imports darfst du unzugeordnet lassen.
## Ausgabeformat (exakt einhalten)
```
# Einheiten: <DATEI>
stand: UNBEKANNT
## <DATEI>::<hauptsymbol>
beschreibung: <genau ein Satz: die Verantwortung der Einheit, ohne „und"-Aufzählung>
input: <was die Einheit entgegennimmt — Parameter/Quellen, eine knappe Zeile>
output: <was sie liefert bzw. bewirkt — Rückgabe/Effekt, eine knappe Zeile>
entscheidungen:
- <kurzer Satz: eine im Code getroffene Design-Entscheidung oder Garantie>
beleg: "<kurzes WÖRTLICHES Zitat aus der Datei, das sie stützt>"
- <weitere Entscheidungen nach demselben Muster>
kanten:
- ruft-auf: <einheiten-id>
- nutzt: <einheiten-id>
- wird-genutzt-von: <einheiten-id>
```
Regeln:
- Einheiten-ID = `<DATEI>::<symbolname>` (bei gebündelten Symbolen: das
Hauptsymbol als ID, zusätzliche Symbole je als Zeile `anker: <DATEI>::<symbol>`
direkt unter der Überschrift).
- `beschreibung:` ist genau EIN Satz und beschreibt EINE Aufgabe — keine
„und"-Aufzählungen.
- `input:` und `output:` sind Pflicht: je EINE knappe Zeile (was geht rein, was kommt
raus bzw. welcher Effekt tritt ein). Bei Klassen: was sie zum Bau braucht / was sie
bereitstellt. Keine Prosa.
- 25 Entscheidungen je Einheit: kurze Sätze über im Code getroffene Design-
Entscheidungen und Garantien (was ist zugesichert, was wurde bewusst so gebaut) —
KEIN Nacherzählen der Implementierung. Jede Entscheidung gehört zu der Einheit, in
deren Code-Körper der Beleg steht (Modul-Ebene nicht einer Klasse zuschlagen).
- Jede Entscheidung hat GENAU EINE `beleg:`-Zeile. Das Zitat muss WÖRTLICH (Zeichen für
Zeichen, inkl. Klammern und Unterstrichen) in der Datei vorkommen und ein
zusammenhängender Ausschnitt aus GENAU EINER Quellzeile sein — NIEMALS mehrere
Zeilen zu einer zusammenziehen (kein `if x: return y`, wenn das `return` in der
nächsten Zeile steht; zitiere dann nur `if x:` oder nur `return y`). Max. ~60 Zeichen.
- Kanten-Typen nur: `ruft-auf`, `nutzt`, `wird-genutzt-von`, `löst-aus`, `wird-ausgelöst-von`.
Hinter dem Ziel steht NICHTS mehr — kein Kommentar, keine Klammern. Richtungen:
`ruft-auf`/`nutzt` = diese Einheit verwendet das Ziel in ihrem Code-Körper;
`wird-genutzt-von` = das Ziel verwendet diese Einheit in SEINEM Code-Körper.
Ziele innerhalb der Datei: `<DATEI>::<symbol>`. Ziele in anderen Modulen
(aus den Imports ableitbar): `backend/<modul>.py::<symbol>`, z. B. nutzt die Datei
`db.kanban_pull``backend/database.py::kanban_pull`.
- Keine Kante erfinden, die nicht im Code steht. Lieber weniger Kanten als falsche.
- Schreibe auf Deutsch.
## Quelldatei `<DATEI>`
<QUELLE>