Stufe „Stoff auswählen“ vor der Gliederung: Auswahl und Tiefe je Thema

Neuer Agent entscheidet aus Quellen und Leitfrage, welche Themen ins Buch
kommen und wie tief (herleiten, erklären, nennen, weggelassen), mit
Begründung in buch/STOFF.md. Die Gliederung baut nur daraus, das Gewicht
folgt der Tiefe. Autoren und Prüfer halten sich an STOFF.md.
Nachgetragene Stufen gelten als fertig, wenn eine spätere schon fertig ist.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
This commit is contained in:
team3
2026-10-12 17:53:12 +02:00
parent 1edc13556a
commit 1e8a057615
9 changed files with 88 additions and 17 deletions

View File

@@ -136,6 +136,25 @@ async def st_recherche(name: str) -> None:
s["fertig"] = 1
async def st_stoff(name: str) -> None:
"""Auswahl vor der Struktur: welche Themen ins Buch kommen und wie tief (buch/STOFF.md); die Gliederung baut nur daraus."""
thema, hinweise, spez = _thema(name)
s = state.stufe(name, "stoff")
s.update(gesamt=1, fertig=0)
v = state.verzeichnis(name)
if not state.bericht_lesen(name, "stoff") or not (v / "buch" / "STOFF.md").exists():
(v / "berichte" / "stoff.md").unlink(missing_ok=True)
p = prompts.laden("stoff", thema=thema, hinweise_block=prompts.hinweise_block(hinweise),
spezialisierung_block=prompts.spezialisierung_block(spez))
r = await agenten.laufen(name, "stoff", "stoff", "Stoff auswählen", p)
if r["status"] != "fertig":
raise Abbruch("Stoffauswahl gescheitert: " + r["bericht"][:200])
if not (v / "buch" / "STOFF.md").exists():
(v / "berichte" / "stoff.md").unlink(missing_ok=True)
raise Abbruch("Stoffauswahl unvollständig: buch/STOFF.md fehlt")
s["fertig"] = 1
async def st_gliederung(name: str) -> None:
thema, hinweise, spez = _thema(name)
s = state.stufe(name, "gliederung")
@@ -242,5 +261,5 @@ async def st_montage(name: str) -> None:
s["fertig"] = 1
STUFEN_FN = {"recherche": st_recherche, "gliederung": st_gliederung, "schreiben": st_schreiben,
STUFEN_FN = {"recherche": st_recherche, "stoff": st_stoff, "gliederung": st_gliederung, "schreiben": st_schreiben,
"pruefung": st_pruefung, "lektorat": st_lektorat, "konsistenz": st_konsistenz, "montage": st_montage}