Skip to content

09 Konfiguration

Asterios Raptis edited this page Mar 11, 2026 · 2 revisions

Konfiguration

manuscript-tools lässt sich über [tool.manuscript-tools] in der pyproject.toml des Buchprojekts konfigurieren. Ohne Konfiguration greifen die Defaults.

Vollständiges Beispiel

[tool.manuscript-tools]
rules = ["max-sentence-length"]
disable = ["passive-voice-de"]
max-sentence-words = 30
flesch-target = [65, 80]
filler-words-extra = ["definitiv", "absolut", "total"]

Optionen im Detail

rules

Zusätzliche Regeln, die mit den Defaults zusammengeführt werden.

rules = ["max-sentence-length", "filler-words-de"]

Die angegebenen Regeln werden zur aktiven Default-Liste hinzugefügt (Union). Bereits aktive Regeln werden nicht doppelt aufgenommen. Unbekannte Regelnamen erzeugen eine Warnung.

Verfügbare Regelnamen:

Name Gruppe Beschreibung
no-dashes Core Gedankenstriche
no-invisible-chars Core Unsichtbare Unicode-Zeichen
no-repeated-words Core Wiederholte Wörter
no-double-spaces Core Doppelte Leerzeichen
non-german-quotes Core Nicht-deutsche Anführungszeichen
broken-formatting Core Gebrochene Bold/Italic-Marker
max-sentence-length Prosa Sätze über Schwellenwert
filler-words-de Prosa Deutsche Füllwörter
passive-voice-de Prosa Passivkonstruktionen

disable

Regeln, die aus dem aktiven Set entfernt werden.

disable = ["passive-voice-de", "filler-words-de"]

disable hat immer Vorrang. Wenn eine Regel sowohl in rules als auch in disable steht, wird sie deaktiviert und eine Warnung ausgegeben:

CONFIG: Regel 'passive-voice-de' ist in 'rules' und 'disable' gleichzeitig
definiert. 'disable' hat Vorrang, Regel wird deaktiviert.

max-sentence-words

Schwellenwert für die Regel max-sentence-length. Positive Ganzzahl.

max-sentence-words = 30  # Default: 40

Sätze mit mehr Wörtern als dem Schwellenwert werden gemeldet. Der Wert wird nur angewandt wenn max-sentence-length in der aktiven Regelliste ist.

flesch-target

Zielbereich für den Flesch-DE-Lesbarkeitsindex. Liste mit zwei Werten [min, max].

flesch-target = [65, 80]

ms-validate prüft den Gesamtwert des Manuskripts gegen diesen Bereich und warnt, wenn der Score ausserhalb liegt. Ohne Konfiguration findet keine Bereichsprüfung statt.

Richtwerte nach Genre:

Genre Empfohlener Bereich
Kinderbuch [80, 100]
Unterhaltungsroman [65, 80]
Sachbuch [50, 65]
Fachbuch [30, 50]

filler-words-extra

Zusätzliche Füllwörter, die zur eingebauten Liste hinzugefügt werden. Die eingebaute Liste enthält ca. 30 deutsche Füllwörter.

filler-words-extra = ["definitiv", "absolut", "total", "mega"]

Gross-/Kleinschreibung wird ignoriert. Der Wert wird nur angewandt wenn filler-words-de in der aktiven Regelliste ist.

Auflösungslogik

Die Regelauflösung folgt einer festen Reihenfolge:

1. Defaults laden
   ├── ms-check:          Core-Regeln (6)
   └── ms-check --strict
       oder ms-validate:  Alle Regeln (9)

2. rules mergen
   └── Validieren → unbekannte Namen warnen → neue zur Liste hinzufügen

3. disable anwenden
   └── Validieren → Overlap mit rules warnen → aus Liste entfernen

4. Schwellenwerte anwenden
   ├── max-sentence-words → Factory erstellt konfigurierte Regel
   └── filler-words-extra → Factory erstellt erweiterte Regel

5. flesch-target speichern
   └── ms-validate prüft Gesamtscore gegen Bereich

Beispielkonfigurationen

Kinderbuch (streng, einfache Sprache)

[tool.manuscript-tools]
rules = ["max-sentence-length", "filler-words-de"]
max-sentence-words = 15
flesch-target = [75, 100]

Sachbuch (moderate Prosa-Checks)

[tool.manuscript-tools]
rules = ["max-sentence-length"]
disable = ["passive-voice-de"]
max-sentence-words = 35
flesch-target = [50, 70]

Roman (nur technische Checks, keine Prosa-Einschränkungen)

[tool.manuscript-tools]
disable = ["filler-words-de", "passive-voice-de", "max-sentence-length"]
flesch-target = [55, 85]

Fachbuch (alles aktiv, hohe Toleranz)

[tool.manuscript-tools]
rules = ["max-sentence-length", "filler-words-de", "passive-voice-de"]
max-sentence-words = 50
flesch-target = [25, 55]
filler-words-extra = ["grundsätzlich", "prinzipiell"]

Wo die Konfiguration gesucht wird

manuscript-tools sucht die pyproject.toml ab dem aktuellen Verzeichnis aufwärts bis zum Filesystem-Root. Die erste gefundene Datei mit einem [tool.manuscript-tools]-Abschnitt wird verwendet. Das bedeutet: die Konfiguration liegt typischerweise im Root des Buchprojekts, genau dort wo auch pyproject.toml für Poetry liegt.

Fehlerbehandlung

Ungültige Werte erzeugen Warnungen auf stderr, brechen den Lauf aber nicht ab. Stattdessen wird der Default verwendet:

CONFIG: 'max-sentence-words' muss eine positive Ganzzahl sein, erhalten: -5. Verwende Default (40).
CONFIG: Unbekannte Regel in 'rules': 'nonexistent'. Verfügbar: filler-words-de, max-sentence-length, ...

Zurück: Quick Start | Home

Clone this wiki locally