Automatischer Push: 45 Datei(en) geändert

- .claude/agents/planer.md
- .claude/agents/quorum-stimme.md
- .claude/skills/bookstack-upload/SKILL.md
- .claude/skills/bookstack-upload/scripts/bookstack/archiv.py
- .claude/skills/bookstack-upload/scripts/bookstack/auswahl.py
- .claude/skills/bookstack-upload/scripts/bookstack/beschreibung.py
- .claude/skills/bookstack-upload/scripts/bookstack/bilder.py
- .claude/skills/bookstack-upload/scripts/bookstack/ergebnis.py
- .claude/skills/bookstack-upload/scripts/bookstack/hochladen.py
- .claude/skills/bookstack-upload/scripts/bookstack/konvertierung.py
- .claude/skills/bookstack-upload/scripts/bookstack/struktur.py
- .claude/skills/bookstack-upload/scripts/bookstack/verweise.py
- … und 33 weitere

Erzeugt vom PostToolUse-Hook .vault-tools/auto-push/auto_push.py.

Co-Authored-By: Claude Opus 5 <[email protected]>
This commit is contained in:
Pascal MichelandClaude Opus 5 committed 2026-10-01 04:00:02 +02:00
1 parent e8472409e9
commit eb48f8822d
45 files changed
+8645 -262

No files matched your search

@@ -0,0 +1,69 @@
"""Ergebnistypen eines Laufs: Berichtszeile samt dem Stand, den die Verweisrunde braucht.
Ersteller: Pascal Michel
Erstellt: 2026-09-30
Doku: docs/code/ergebnis.md · Version und Änderungen: CHANGELOG.md
"""
from __future__ import annotations
from dataclasses import dataclass
from pathlib import Path
from bookstack.struktur import Ziel
# Aktionen, deren Datei danach archiviert wird und deren Seite in den Endindex kommt.
ARCHIVIERBAR = ("ANLEGEN", "AKTUALISIEREN", "ÜBERSPRUNGEN")
@dataclass
class Seitenstand:
"""Was Durchgang 1 über eine Seite weiß; Eingang der Verweisrunde."""
titel: str
rumpf: str # ohne Titelüberschrift, Eingang für konvertiere
ziel: Ziel
seiten_id: int | None # None nur bei ANLEGEN im Probelauf
prioritaet: int | None
markdown: str # bildfrei, Verweise nach Index aus Durchgang 1
aufgeloeste_verweise: dict[str, str]
offene_verweise: list[str]
bildnamen: list[str]
bilder: dict[str, str] | None # Tabelle des letzten PUT in Durchgang 1; None = kein PUT
@dataclass
class Beschreibungsstand:
"""Was Durchgang 1 über eine Buch- oder Kapitelbeschreibung weiß."""
art: str # "buch" | "kapitel"
ziel_id: int
vorspann: str
html: str
aufgeloeste_verweise: dict[str, str]
@dataclass
class Ergebnis:
"""Eine Berichtszeile; seite und beschreibung tragen nur Zeilen aus Durchgang 1."""
pfad: Path
aktion: str
text: str
seite: Seitenstand | None = None
beschreibung: Beschreibungsstand | None = None
def seiten_nutzlast(
titel: str, ziel: Ziel, markdown: str, prioritaet: int | None = None
) -> dict[str, object]:
"""name, markdown, chapter_id (wenn ziel.kapitel_id) sonst book_id, priority wenn nicht None."""
daten: dict[str, object] = {"name": titel, "markdown": markdown}
# Bewusst wahr/falsch statt is None: Die Platzhalter-ID 0 geht nie als chapter_id hinaus.
if ziel.kapitel_id:
daten["chapter_id"] = ziel.kapitel_id
else:
daten["book_id"] = ziel.buch_id
if prioritaet is not None:
daten["priority"] = prioritaet
return daten