Symptom: Die Befehle /storyforge:... fehlen, oder Skills melden, dass keine MCP-Tools erreichbar sind.
claude plugin list.~/.storyforge/venv/bin/python3 (Windows: %USERPROFILE%\.storyforge\venv\Scripts\python.exe)./storyforge:setup
Das Setup legt die virtuelle Umgebung neu an, installiert Abhängigkeiten und testet den MCP-Import. Starte Claude Code danach neu.
Das ist meist der Platzhalter des Microsoft Stores (Exit-Code 49 ohne Ausgabe). /storyforge:setup probiert deshalb py -3 und bekannte Installationspfade. Siehe Installation.
Ursache: Der Hook läuft nach dem Schreiben. Bei einem Fund der Stufe block beendet er sich mit Exit-Code 2 und gibt die Meldung an Claude zurück, das den Text korrigieren muss. Die Meldung nennt Datei, Zeile und Quelle. Blocker kommen aus vier Quellen:
list_book_rules, ändern oder löschen mit update_book_rule.delete_discovery entfernst du den Eintrag.Ch 5, callback, as established und ähnliche). Formuliere den Satz um.plot/tone.md. Ändere oder entferne das Muster dort.Bei einem Buchregel-Treffer mit Limit (max N per chapter) meldet der Hook die Zahl der Treffer und das skalierte Limit für die aktuelle Entwurfslänge. Kürze die Stelle oder warte, bis der Entwurf länger ist.
Notfall: Setze linter_mode: warn im Frontmatter der CLAUDE.md des Buchs. Dann werden Blocker nur noch gemeldet. Siehe Konfiguration.
Symptom: Ein Don't oder ein wiederkehrender Tic aus dem Autorenprofil blockiert beim Schreiben nicht, obwohl er in der Datenbank steht.
Ursache: Der Hook findet keinen Autor für das Buch. Er sucht zuerst die Zeile - **Author:** Name im Abschnitt Book Facts der CLAUDE.md, danach das Feld author: im YAML-Frontmatter der README.md. Bei Büchern, die über /storyforge:new-book angelegt wurden, schreibt create_book_structure dieses Feld immer — eine fehlende CLAUDE.md-Zeile ist dort allein kein Problem mehr. Prüfe stattdessen, ob das Feld author: in der README selbst fehlt oder leer ist, zum Beispiel bei sehr alten Büchern oder nach einer manuellen Bearbeitung der README. Ohne auflösbaren Autor-Slug liefert der Hook stillschweigend keine Funde.
Trage den Autor-Slug in der README nach (oder die Zeile in der CLAUDE.md), dann greift die Banlist beim nächsten Schreibvorgang.
Die Warnung erscheint bei jeder relativen Zeitphrase (yesterday, tomorrow, an hour ago) und nennt das daraus folgende Datum. Sie ist eine Prüfliste und blockiert nie. Stimmt das genannte Datum, ignoriere sie. Einzelne Warnungen lassen sich nicht abschalten.
Fehlt der Abschnitt ## Chapter Timeline in der Kapitel-README, gibt es keine Zeitanker-Prüfung.
Der Hook warnt, wenn Fachvokabular eines Gebiets vorkommt, das für die POV-Figur none oder layperson ist.
knowledge-Block der Figur zu competent oder expert.knowledge-Block, dann wird diese Figur nicht geprüft.reference/craft/knowledge-domains/ an. Der Dateiname ist der Gebietsname.Mögliche Ursachen: Es gibt kein oder nur ein dünnes Autorenprofil, die Banlist des Autors ist leer, oder es wurden keine eigenen Werke analysiert.
/storyforge:create-author
/storyforge:study-author ~/mein-vorheriges-buch.epub
/storyforge:chapter-humanizer mein-buch kapitel-01
/storyforge:voice-checker mein-buch kapitel-01
study-author leitet den Stil aus deinen Texten ab. chapter-humanizer sucht AI-Konstruktionen im Kapitel und schlägt Alternativen vor. voice-checker bewertet den Text über sieben Dimensionen (im Memoir acht) und vergleicht ihn mit dem Autorenprofil.
Ursache: Canon-Fakten oder Timeline sind nicht gepflegt.
/storyforge:continuity-checker mein-buch
Das Skill lädt über get_continuity_brief Kalender, Travel Matrix, Canon und alle Kapitel-Zeitraster und listet die Widersprüche. Neue Fakten hältst du mit add_canon_fact fest.
Ursache: Die Regel wurde nicht über einen der Wege registriert, die sie dauerhaft speichern.
Schreibe sie mit Präfix, zum Beispiel:
Regel: Keine Rückblenden vor Kapitel 5.
Der PreCompact-Hook speichert vor der Komprimierung Zeilen mit Regel: (auch Rule:), Workflow: und Callback:. Dabei gilt:
CLAUDE.md existiert.Alternativ nutzt du /storyforge:register-callback oder append_book_rule. Kontrolle: list_book_rules(book_slug).
Symptom: list_books liefert nichts, obwohl Projekte existieren, oder ein Status passt nicht.
Rufe das Tool rebuild_state auf (zum Beispiel mit der Bitte „baue den State-Cache neu auf"). Es liest alle Bücher und Autoren aus dem Dateisystem neu ein. Prüfe außerdem, ob paths.content_root in der Config auf das richtige Verzeichnis zeigt.
| Meldung | Behebung |
|---|---|
| Gate „All chapters Final" schlägt fehl | Alle Kapitel auf Final setzen, oder mit --arc einen ARC exportieren. |
Front Matter fehlt oder enthält [Author Name] |
export/front-matter.md ausfüllen, Feld author setzen. |
| Review-Kommentare im Entwurf | Zeilen mit {review_handle}: auflösen oder löschen. |
Memoir: consent_status: refused |
Passage umschreiben, Person anonymisieren oder Einwilligung klären, dann /storyforge:memoir-ethics-checker ausführen. |
pandoc oder ebook-convert nicht gefunden |
Programm installieren und in den PATH aufnehmen. |
create_book_structure lehnt den Buch-Slug abSymptom: Beim Anlegen eines Serienbands mit series_slug kommt die Meldung Book slug '{slug}' already exists at {path}. Choose a different title or resolve the collision first.
Ursache: Unter projects/{slug} oder in einer anderen Serie unter series/{serie}/{slug} liegt bereits ein Buch mit demselben Titel-Slug wie der neue Serienband. Ohne diese Ablehnung würde ein späterer Aufruf von add_book_to_series das falsche, schon bestehende Buch finden und dessen README überschreiben.
Prüfen: Der Pfad steht in der Meldung. Alternativ suchst du projects/{slug} und series/*/{slug} im content_root. Liegt dort ein Buch, das nicht zum neuen Serienband gehört, ist das die Kollision.
Lösung: Wähle einen anderen Titel für den neuen Serienband, oder räume die Kollision vorher auf, etwa indem du das bestehende Buch umbenennst oder selbst in die Serie überführst.
analyze_plot_logic meldet Chekhov-Elemente ohne EinlösungUrsache: Die ## Promises-Abschnitte der Kapitel sind unvollständig oder fehlen. Führe /storyforge:backfill-promises <buch-slug> einmal aus und starte die Prüfung neu.
Ursache: Der globale AI-Tell-Katalog (reference/craft/anti-ai-patterns.md) gilt nur für Bücher, deren Sprache (Feld language im README-Frontmatter) Englisch ist. Bei jeder anderen Sprache liefern scan_chapter_ai_tells und check_replacement_text eine Warnung statt Katalog-Treffern, weil es für diese Sprache keinen Katalog gibt.
Buchregeln, Autoren-Verbote (donts, recurring_tics) und die Tonregeln aus plot/tone.md wirken davon unabhängig weiter. Mehr dazu: Technische Details.
Symptom: /storyforge:chapter-voice-harvest meldet in einer Zeile, dass nichts zu ernten ist, und beendet sich.
Ursache: Das Protokoll (review_feedback) ist leer oder enthält keine einordenbaren Kandidaten. Einträge entstehen erst durch geprüfte Entscheidungen von Writer, Reviewer, Fixer und Rewriter, dazu auf Zuruf deine eigenen Änderungen über get_self_edit_hunks. Humanizer- und Proofreader-Entscheidungen werden zwar protokolliert, fließen aber erst beim nächsten Kapitel-Durchlauf in die Kandidatenbildung ein. Bei Memoir-Büchern braucht ein Eintrag schon beim Protokollieren eine Einordnung (Dimension, Richtung, eine Regel); ohne sie entsteht kein Kandidat.
get_self_edit_hunks meldet keine VergleichsfassungStatus no_baseline oder stale: Für dieses Kapitel gibt es keine verlässliche Vergleichsfassung. Die Baseline entsteht erst durch Claudes eigene Schreibvorgänge bei aktivem Plugin und gilt pro Rechner — ein Text, der auf einem anderen Rechner, per Shell-Befehl oder per Git geändert wurde, erscheint sonst fälschlich als deine eigene Änderung. Rufe refresh_draft_baseline(book_slug, chapter_slug) auf, um die aktuelle Fassung als neue Baseline zu setzen; Änderungen von davor lassen sich danach nicht mehr zuordnen.
Status memoir_unsupported: Für Memoir-Kapitel gibt es keine Vergleichsfassung, das Tool liefert deshalb nie Treffer.
get_chapter_writing_brief meldet Fehler in einzelnen KomponentenDas ist kein Absturz. Der Brief kommt mit den übrigen Daten an, die fehlerhaften Teile stehen im Feld errors. Häufigste Ursache: world/setting.md oder plot/timeline.md existiert noch nicht.