Zurück zur StoryForge-Hauptseite
StoryForge prüft Texte in drei Schichten:
| Schicht | Wann | Mechanik | Wer reagiert |
|---|---|---|---|
| Vor dem Schreiben | beim Start eines Kapitels oder einer Szene | MCP-Tools liefern strukturierte JSON-Briefs und Vorprüfungen | chapter-writer, rolling-planner, die Prüf-Skills |
| Beim Speichern (Hook) | bei jedem Write, Edit und MultiEdit auf draft.md und auf Figuren- und Personendateien |
Exit-Code 2 meldet den Fund nach dem Schreiben an das Modell zurück, das ihn beheben muss | PostToolUse-Hooks validate_chapter und validate_character |
| Nach dem Entwurf (Skills) | von dir aufgerufen | Markdown-Reports und interaktive Korrekturen | du entscheidest |
Die Prüfungen sind kein Beiwerk. Ein starkes Autorenprofil allein hält Bücher nicht frei von KI-Mustern. Die Gates sind die zweite Schutzschicht.
| Gate | Schicht | Skill oder Tool |
|---|---|---|
| Chapter Writing Brief | vor dem Schreiben | get_chapter_writing_brief |
| Tactical Setup Verifier | vor dem Schreiben | verify_tactical_setup |
| Pre-Scene Logic Audit | vor jeder Szene | chapter-writer, chapter-writer-memoir |
| Recent Chapter Timelines | vor dem Schreiben | get_recent_chapter_timelines |
| Review Brief | vor dem Review | get_review_brief |
| Continuity Brief | vor dem Continuity-Check | get_continuity_brief |
| Prosa-Hook | beim Speichern | hooks/validate_chapter.py, Tool validate_chapter |
| Figuren-Hook | beim Speichern | hooks/validate_character.py, siehe Charakter-Anatomie |
| Chapter Reviewer (33 Punkte, Kapitel 1 mit 13 Zusatzpunkten) | nach dem Entwurf | chapter-reviewer, chapter-reviewer-memoir |
| Author Check | nach dem Entwurf | author-check |
| Chapter Voice Harvest | nach dem Review | chapter-voice-harvest |
| Chapter Humanizer | nach dem Voice Harvest | chapter-humanizer |
| Chapter Proofreader | nach dem Humanizer | chapter-proofreader |
| Chapter Fixer | bei Bedarf | chapter-fixer |
| Voice Checker (optional) | nach dem Entwurf | voice-checker |
| Manuscript Checker | ganzes Buch | manuscript-checker, manuscript-checker-memoir |
| Timeline-Validator | ganzes Buch | validate_timeline_consistency |
| Continuity Checker | ganzes Buch | continuity-checker |
| Emotional Truth Pass | Memoir-Kapitel, vor dem Review | emotional-truth-prompt |
| Memoir Ethics Gate | Memoir, vor dem Export | memoir-ethics-checker, Tool check_memoir_consent |
| Rules-Audit | bei Bedarf | rules-audit |
Eine Sammel-Prüfung bieten run_quality_gates(book_slug) (alle verfügbaren Checker eines Buchs in einem Ergebnis), validate_book_structure und run_pre_export_gates (siehe Technische Details).
Checker-Tools geben ein einheitliches Ergebnis zurück, meist unter dem Schlüssel gate:
| Feld | Inhalt |
|---|---|
status |
PASS, WARN oder FAIL |
reasons |
lesbare Begründungen |
findings |
strukturierte Funde mit code, message, severity und location |
metadata |
Zähler, Pfade und anderes Checker-spezifisches |
Beim Zusammenfassen mehrerer Gates gilt: FAIL schlägt WARN schlägt PASS.
Statt vieler einzelner Lese-Schritte liefert ein MCP-Tool die Daten für ein Kapitel als JSON. Hinter der Idee steht ein Grundsatz: Daten kommen als Brief, nicht als Prompt-Anweisung.
get_chapter_writing_brief(book_slug, chapter_slug) ist die Hauptquelle von chapter-writer. Der Brief enthält unter anderem Kapitel und POV-Figur, den Story-Zeitanker, die Zeitraster der letzten Kapitel, die Schlussabsätze der letzten Entwürfe, die anwesenden Figuren mit Profil, knowledge und tactical, Inventar und Zustand der POV-Figur, Buchregeln, Callbacks, verbotene Phrasen, die Vergleichs-Zahlen der letzten Kapitel und die Litmus-Fragen aus plot/tone.md. Die Tonvorgaben aus plot/tone.md umfassen dabei neben den Litmus-Fragen auch die Verbotsmuster (tone_banned_patterns), getrennt nach durchsetzbaren Mustern und reinen Hinweisen. Die vollständige Liste und die Fehlerbehandlung stehen unter Technische Details.
Jede Komponente wird einzeln abgesichert. Fällt eine aus, steht sie in errors, und der Brief kommt mit den übrigen Daten trotzdem an.
Serien-Kontext: Gehört das Buch zu einer Serie, trägt jede Figur im Brief ein Feld series_evolution mit dem Stand des Serien-Trackers (Endzustand im Vorgängerband, Plan für den aktuellen Band, Entwicklung der Beziehungen). Das Feld ist immer vorhanden und null, wenn es keinen Serien-Kontext gibt. Mehr: Series-Workflow.
verify_tactical_setup prüft Kampf- und Reiseszenen gegen den optionalen Block tactical im Frontmatter der Figuren. Er warnt, wenn eine geschützte Figur am Ende oder an der Spitze der Gruppe steht, wenn kein Beschützer positioniert ist oder die Spitzenposition nicht zu movement_lead passt. Er liefert immer Fragen an den Autor als Checkliste. Die Regeln und das Schema stehen unter Technische Details.
Vor jeder Szene gibt chapter-writer im Szenenmodus einen Audit-Block in den Chat aus, bevor Prosa in draft.md landet (im Kapitelmodus einmal vor dem Kapitel). Er ist das Gegengewicht zu Erfindungen unter Kontextdruck: Zu jeder Kategorie nennt das Modell die Quelle in einem Satz. Ist die Quelle stumm, wird die Lücke benannt und nachgefragt, nicht überbrückt.
| Kategorie | Quelle |
|---|---|
| Inventar der POV-Figur | pov_character_inventory im Brief |
| Geografie | Travel Matrix in world/setting.md (Memoir: research/sources.md), plot/timeline.md, letzte Zeitraster |
| Biografie und Beziehungen | Figurendatei (Memoir: Personendatei), Canon-Brief |
| Stimmen bei Ensemble-Szenen | wörtliche Voice-Beispiele aus der Figurendatei (Memoir: ## Memory anchors) |
| Verbotene Phrasen und Tics | banned_phrases im Brief, recurring_tics und donts des Autors |
| Style Principles | drei passende Principles des Autors, mit Beispiel |
| Sinnliche Plausibilität | pov_character_state im Brief (Kleidung, Verletzungen, veränderte Zustände, Wahrnehmungs-Dämpfer) |
| Szenenbogen | Ziel der Szene im ## Scene Plan |
get_recent_chapter_timelines(book_slug, n) liefert die Zeitraster der letzten N Kapitel, die mindestens auf Revision-Stufe stehen. So wird der Kontext an etablierten Zeiten verankert und nicht an Entwürfen. Der Continuity Brief enthält dagegen die Raster aller Kapitel.
Beim Abschluss eines Kapitels auf Review oder Final extrahiert chapter-writer den Endzustand der POV-Figur (Inventar, Kleidung, Verletzungen, veränderte Zustände, Wahrnehmungs-Dämpfer), schlägt ihn vor und speichert ihn nach deiner Bestätigung mit update_character_snapshot in der Datenbank der Serie (Tabelle character_snapshots). Die Figurendatei bleibt unverändert. Folge-Briefs lesen den Snapshot als verlässlichste Quelle, sonst fallen sie auf Timeline- und Entwurfs-Heuristiken zurück.
get_review_brief(book_slug, chapter_slug) bündelt für chapter-reviewer unter anderem das Zeitraster des Kapitels und des Vorgängers, die kanonischen Kalendereinträge, die Travel Matrix, die Canon-Fakten samt geänderten Fakten, Tonregeln aus plot/tone.md, aktive Buchregeln und offene Callbacks. Verbotsmuster ohne Backticks kommen dabei als nicht prüfbare Hinweise (banned_prose_unenforced) mit und zählen nie als bestanden. Bei Memoir kommen Einwilligungs-Warnungen dazu. Der Kapitelentwurf selbst ist bewusst nicht enthalten, er ist der zu prüfende Inhalt.
get_continuity_brief(book_slug) bündelt für continuity-checker den kanonischen Kalender, die Travel Matrix, die Canon-Fakten, den Figurenindex und die Zeitraster aller Kapitel. Bei großen Büchern werden Canon-Fakten, Kalender und Raster nach Größe gekappt. Die Felder *_truncated zeigen, ob etwas fehlt, und der Checker meldet das im Report.
Zwei PostToolUse-Hooks laufen nach jedem Write, Edit und MultiEdit, ein dritter Hook sichert beim PreCompact Regeln aus dem Chat. Daneben hält ein Hook snapshot_draft beim Schreiben und Bearbeiten still Fassungen von Fiction-Entwürfen fest; er ist kein Prüfer und blockiert nie. Aufbau, Stufen, Beispiel-Meldungen, linter_mode und die Snapshot-Mechanik sind unter Technische Details beschrieben. Hier der Überblick:
| Hook | Gegenstand | Stufe |
|---|---|---|
Prosa (validate_chapter) |
Buchregeln und Tonregeln (plot/tone.md) in Backticks |
block |
| Autoren-Banlist (verbotene Phrasen, Tics, Don'ts) | block oder warn | |
Meta-Narrative (zum Beispiel Ch 5, callback, foreshadow) |
block | |
| relative Zeitphrasen gegen den Story-Zeitanker | warn | |
| AI-Tells und globale Shape-Muster | warn | |
| Satzlängen-Varianz | warn | |
| POV-Grenze (Fachvokabular, das die POV-Figur nicht kennt) | warn | |
Figuren (validate_character) |
Frontmatter, Pflichtfelder (bei Memoir-Personendateien entfällt role), empfohlene Abschnitte |
block und warn |
Im Modus strict (Standard) meldet ein block-Fund des Prosa-Hooks mit Exit-Code 2 den Fund nach dem Schreiben an das Modell zurück, das ihn beheben muss. Im Modus warn werden Funde nur ausgegeben. Der Modus gilt je Buch und steht als linter_mode im Frontmatter der Buch-CLAUDE.md. Er wirkt nur auf den Prosa-Hook: Der Figuren-Hook liest linter_mode nicht und beendet sich bei Frontmatter-Blockern immer mit Exit-Code 2.
Für den Hook zählt nur, was in den Regeln des Buchs in Backticks steht:
| Schreibweise | Bedeutung | Wer reagiert |
|---|---|---|
`phrase` |
hartes Muster | Prosa-Hook (block) und Manuscript-Checker |
*phrase* und "phrase" |
Beispiele, Ersatzvorschläge, Hinweise | Manuscript-Checker liest Zitate nach einem Verbots-Hinweis mit, der Hook nicht |
Der Manuscript-Checker ist bei Buchregeln bewusst toleranter als der Hook: Weiche Funde vertragen Fehlalarme, weil du entscheidest, harte Blocker nicht.
Buchregeln stehen in der Datenbank. Damit sie wirklich greifen, gibt es eine Prüfschicht aus Tools und einem Skill:
| Tool | Zweck |
|---|---|
list_book_rules(book_slug) |
Inventar aller Regeln mit den Mustern, die der Scanner extrahiert |
lint_book_rules(book_slug) |
Sammelprüfung aller Regeln |
update_book_rule(book_slug, rule_match, new_text, validate) |
Regel ändern oder löschen, mit erneuter Prüfung |
append_book_rule(book_slug, text, validate) |
neue Regel anlegen, mit Prüfung |
Die Prüfung nutzt denselben Muster-Extraktor wie der Manuscript-Checker. Was sie meldet, würde der Scanner auch stillschweigend verlieren:
| Code | Wann |
|---|---|
italic_examples_with_ban_cue |
Verbots-Hinweis plus Beispiele in Kursiv, die der Scanner nicht sieht. Backticks nutzen. |
mixed_positive_negative_quotes |
Verbots-Hinweis plus mehrere Zitate, der Scanner behandelt alle als Verbote |
bracket_placeholder |
Platzhalter wie [noun] im Backtick-Text, der als Zeichenklasse gelesen wird. \w+ nutzen. |
scanner_extracts_nothing |
Verbots-Hinweis ohne Backticks und ohne Zitat, die Regel ist tot |
Dieselbe Idee gilt für Autoren-Erkenntnisse: write_author_discovery hängt mit validate=True Warnungen und die extrahierten Muster an die Antwort. Dort gibt es zusätzlich mixed_positive_negative_italics und bold_title_unscannable. Style Principles erzeugen bewusst keine Lücken-Warnungen, weil sie nicht gescannt werden. Die Prüfung blockt nie, sie macht nur sichtbar.
/storyforge:rules-audit [book-slug] führt das interaktiv durch: Scan, Tabelle der Funde, Entscheidung je Fund (Vorschlag anwenden, manuell ändern, als narrativ markieren, überspringen), Anwenden mit erneuter Prüfung und ein Report. Der Skill ändert nie eine Regel ohne deine Bestätigung. Bei Büchern mit Anführungszeichen statt Backticks läuft zuerst die Migration (siehe Technische Details), danach rules-audit für die übrigen Formprobleme.
/storyforge:chapter-reviewer <buch> <kapitel> prüft ein Kapitel gegen 33 nummerierte Punkte und neun Unterpunkte. Die Daten kommen aus dem Review Brief. Für Memoir gibt es chapter-reviewer-memoir.
| Kategorie | Punkte | Inhalt |
|---|---|---|
| Structure | 1 bis 5 | Opening Hook, Scene-Sequel, Kapitelbogen, Ende, Tempo |
| Craft | 6 bis 10 | Show don't tell, Sinne, konkrete Details, Dialog, Konflikt |
| Voice | 11 bis 15 | Autorenstimme, Ton, Vokabular, Satzrhythmus, Dialogstimmen |
| Continuity | 16 bis 20 | Canon, Timeline, Reisezeiten, veraltete Verweise, Figurenfakten |
| Tonal Consistency | 21 bis 25 | nur wenn plot/tone.md existiert: Hauptmodus, Warnzeichen, unverhandelbare Regeln, Litmus-Test, verbotene Muster |
| Intra-Day Timeline | 26 bis 28 | Zeitanker, interne Konsistenz, Konsistenz mit dem Vorkapitel |
| Anti-AI | 29 bis 33 | AI-Vokabular, uniforme Struktur, generische Beschreibungen, benannte Gefühle, zu saubere Auflösung |
Dazu kommen diese Unterpunkte:
| Unterpunkt | Prüft |
|---|---|
| 9b | Fragen im Dialog, die mit Punkt statt Fragezeichen enden (harte Regel, jeder Treffer ist FAIL, außer bewusst markierte flache Betonung) |
| 10b | Simile Discipline: Zwei-Fragen-Test für jeden Vergleich, markiert werden unlogische, dekorative, gestapelte und tote Vergleiche. Bei Autoren mit vergleichsreichem Stil wird milder bewertet. |
| 14b | Phrase Micro-Echo: Wiederholung von Inhaltswörtern in einem Fenster von drei Sätzen ohne rhetorische Absicht |
| 20a | POV-Wissensgrenze: drei Optionen: in Dialog verlagern, als Laien-Beobachtung umformulieren oder streichen |
| 20b bis 20f | Plot-Logik: Informationsleck, Motivationsbruch, Kausalitäts-Inversion, Weltregel-Verstoß, Kapitel-Promises |
Die Plot-Logik beruht auf analyze_plot_logic, siehe Technische Details. Für 20f braucht das Kapitel einen Abschnitt ## Promises in der README. chapter-writer füllt ihn beim Übergang auf Review. Bei älteren Büchern holt /storyforge:backfill-promises ihn nach.
Bei Kapitel 1 läuft vorher eine Liste mit 13 Punkten in drei Gruppen:
Tragende Punkte sind 4, 5, 9, 10 und 13. Ein FAIL dort macht das Gesamturteil zu FAIL.
Das Urteil lautet PASS, WARN oder FAIL:
Der Report nennt Stärken, Funde nach Gewicht (Critical, Recommended, Minor) und einen Vorschlag für den nächsten Schritt, in der Regel chapter-fixer. Mit dem Lauf wird reviewer_pass_done in chapter.yaml gesetzt, damit next-step den Fortschritt kennt.
/storyforge:author-check <buch> <kapitel> ist das positive Gegenstück zu Reviewer und Manuscript Checker, die nur Negatives melden. Der Skill prüft, ob die Style Principles des Autors, die zu den Genres des Buchs passen, im Entwurf tatsächlich vorkommen, und vergleicht Dialoganteil, Fragment-Anteil, Einzelsatz-Absätze und Satzlänge mit den quantitativen Zielen im Profil (sonst mit allgemeinen Standardwerten). Die Funde sind Hinweise und blocken nichts. Die Principles stammen aus study-author und backfill-style-principles, siehe Autorenprofile.
/storyforge:chapter-voice-harvest <book-slug> [chapter-slug] wertet die protokollierten Review-Entscheidungen aus deinen Korrekturen aus und übernimmt bestätigte Stimmmuster als Style Principles ins Autorenprofil. Er läuft nach dem Review (und nach Fixer oder Scene Rewriter), vor dem Humanizer, für Fiction und Memoir. Es ist ein empfohlener, aber sich selbst überspringender Schritt: Sind keine offenen Rückmeldungen protokolliert, meldet er das in einer Zeile und endet.
Protokollierung: chapter-writer, chapter-reviewer, chapter-fixer, chapter-scene-rewriter, chapter-humanizer und chapter-proofreader protokollieren geprüfte Entscheidungen mit log_review_feedback. Der Reviewer protokolliert dabei nur, was er selbst ausführt, nicht, was er an den Fixer übergibt. Der Humanizer protokolliert umgearbeitete und verworfene oder bewusst behaltene Funde, nicht einfach übernommene Ersetzungen. Der Proofreader protokolliert nur Stellen, die du ausdrücklich als gewollt bestätigst. Doppelte Einträge werden ignoriert.
Einordnung: Vor der Übernahme wird jeder offene Eintrag nach einem geschlossenen Vokabular aus Dimensionen und Richtungen eingeordnet (reference/craft/voice-dimensions.md); zwei Dimensionen gelten ausschließlich für Memoir. Das ist nicht die 7/8-Dimensionen-Bewertung des voice-checker — die bleibt unverändert und unabhängig davon bestehen.
Kandidaten: get_voice_candidates verlangt gewichtete Evidenz von mindestens 3 aus mindestens 2 Kapiteln, mit diesen Gewichten:
source_skill |
Gewicht | Wann protokolliert |
|---|---|---|
self_edit (deine eigene Änderung) |
1,5 | nur auf Zuruf |
| Writer, Reviewer, Fixer, Rewriter | 1 | geprüfte Entscheidung |
| Humanizer | 0,5 | umgearbeiteter oder verworfener Fund |
| Proofreader | 0,25 | ausdrücklich bestätigte Stelle |
Gegensätzliche Richtungen mit überlappendem Geltungsbereich werden als Konflikt gemeldet, nicht als Kandidat. Der Geltungsbereich ist die Schnittmenge der Genres der Belege, leer bedeutet universell.
Entscheidung: Für jeden Kandidaten antwortest du ausdrücklich: Promote, Edit and promote, Already in profile, Keep watching oder Discard. Erst danach schreibt der Skill mit write_author_discovery(section="style_principles") und Genre-Scope. Nie in donts oder recurring_tics, die speisen die durchgesetzte Banlist. Ausnahme: donts nur, wenn du eine konkrete Phrase nennst, und nur bei Fiction.
Memoir: Memoir speichert nie Rohtext, sondern nur die Einordnung (Dimension, Richtung) und eine Regel in einem Satz (höchstens 240 Zeichen), ohne Namen realer Personen aus dem Buch. Memoir-Rückmeldungen müssen beim Protokollieren bereits eingeordnet sein. Style Principles aus Memoir-Büchern erhalten genres="memoir" und kein Beispiel; sie gelten nur in Memoir-Büchern des Autors, nicht in dessen Fiction-Büchern.
Eigene Änderungen: Nur auf Zuruf („Ich habe den Text geändert") liest get_self_edit_hunks deine Änderungen an draft.md gegenüber der Baseline aus, nie automatisch. Das gilt nur für Fiction, die Baseline ist pro Rechner gültig.
Technische Details zu den einzelnen Tools stehen unter MCP-Tools.
/storyforge:chapter-humanizer <buch> <kapitel> ist der chirurgische Entferner von AI-Mustern. Er steht im Standardweg nach chapter-reviewer und vor chapter-proofreader. Er macht pro Fund einen Vorschlag in der Autorenstimme und schreibt nur nach deiner Freigabe in draft.md.
Vorlauf: Das Tool scan_chapter_ai_tells sucht maschinell nach Katalog-Mustern, markiertem Vokabular und Autoren-Verboten, wendet die Dichteregeln je Szene an und misst Gedankenstrich-Dichte, wiederholte Satzanfänge (erst ab sechs in Folge), unsichtbare Zeichen und Rhythmus. Das Ergebnis ist eine Kandidatenliste, kein Urteil. Der Skill liest den Entwurf zusätzlich selbst, denn Urteils-Muster und wörtliche gegen übertragene Verwendung erkennt das Tool nicht.
Pass 1: Elegant-Abstraction-Muster aus Abschnitt 11 von anti-ai-patterns.md, unter anderem:
One word.)the words landed)the silence held)the word cost him)did not quite become, ab dem zweiten Treffer je Szene)trust his face)It wasn't X. It was Y.)Pass 2: markiertes Vokabular aus Abschnitt 1 desselben Katalogs, nur in übertragener Verwendung, plus die donts des Autors.
Gedankenstriche im Erzähltext sind erst bei hoher Dichte ein Tell. Der Humanizer bringt das Kapitel unter die Grenze (einstellbar mit em_dash_per_1k_limit im Profil) und streut die Ersatzformen: Komma, Doppelpunkt, umgebauter Satz, Streichung, nur zu höchstens einem Drittel ein Punkt. Klammern sind als Ersatz ausgeschlossen.
Ablauf:
apply 1, 2 / skip 3 / 4: kürzer. Ohne ausdrückliche Entscheidung wird nichts geschrieben.check_replacement_text gegen die Verbote geprüft und darf keine Fakten ändern.humanizer_pass_done in chapter.yaml gesetzt.Der Katalog-Vorlauf (Pass 1 und Pass 2) gilt nur für Bücher auf Englisch; bei anderer Buchsprache liefert er nur eine Warnung, Autoren-Verbote und Tonregeln werden trotzdem geprüft. Umgearbeitete und verworfene Funde fließen als Rückmeldung in den Voice Harvest ein, einfach übernommene Ersetzungen nicht.
| voice-checker | chapter-humanizer | |
|---|---|---|
| Modus | Diagnose und Score | chirurgisch und interaktiv |
| Ausgabe | Score 0 bis 100, Dimensionen | nummerierte Trefferliste mit Fixes |
Schreibt in draft.md |
nein | ja, nach Freigabe |
| Im Standardweg | nein, optional | ja |
/storyforge:chapter-proofreader prüft Rechtschreibung, Grammatik und Zeichensetzung in der Sprache des Buchs und erklärt in der Muttersprache des Autors (native_language). Er läuft nach dem Humanizer, für Fiction und Memoir. Nur Stellen, die du ausdrücklich als gewollt bestätigst, werden als Rückmeldung protokolliert.
/storyforge:voice-checker <buch> [kapitel] liefert einen Authentizitäts-Score von 0 bis 100. Er ist kein Pflichtschritt, sondern ein Gesamtcheck, etwa vor dem Export oder für kritische Kapitel.
Zuerst läuft der Vokabular-Scan als harte Schranke: Trifft ein Wort aus der AI-Tell-Liste in der markierten Bedeutung, stoppt der Skill und gibt nur die Trefferliste mit WARN (isolierte Treffer) oder FAIL (dichte Treffer) aus. Erst nach dem Umschreiben und einem sauberen Scan folgt der volle Report.
Der volle Report bewertet sieben Dimensionen, bei Memoir acht:
Das Urteil: PASS bei einem Score ab 70, WARN von 50 bis 69, FAIL unter 50 oder bei systemischen Mustern, die einen Umbau verlangen.
/storyforge:chapter-fixer schließt die Lücke zwischen „ein Checker hat etwas gefunden" und „es ist behoben". chapter-writer arbeitet nur anfügend und würde einen vorhandenen Entwurf beschädigen. Der Fixer liest die markierte Stelle und ersetzt genau diese mit dem Edit-Tool.
Regeln:
chapter-scene-rewriter vor.rules-audit gegen eine Regel verstößt.anonymization_leak ist ein Pre-Publication-Blocker und von der Sammel-Freigabe ausgenommen, ebenso book_rule_violation./storyforge:manuscript-checker <buch> [--interactive] scannt das ganze Buch auf Probleme, die erst beim Lesen vom Anfang bis zum Ende auffallen. Er läuft am Ende der Revision, nachdem jedes Kapitel durch Reviewer, Humanizer und Proofreader gegangen ist. Für Memoir gibt es manuscript-checker-memoir; jede Variante verweist bei falscher Buchkategorie auf die andere.
Das Tool scan_manuscript(book_slug) schreibt den Report nach research/manuscript-report.md und liefert ein Gate: FAIL, wenn es einen Fund book_rule_violation gibt, dessen Regel keine eigene Ausnahme dokumentiert. WARN bei allen anderen Funden, PASS ohne Funde.
| Kategorie | Erfasst |
|---|---|
book_rule_violation |
Verstöße gegen die Buchregeln |
author_rule_violation |
Verstöße gegen die donts des Autors |
author_vocab_violation |
Treffer der flachen verbotenen Phrasen des Autors |
writing_discovery_violation |
Treffer der wiederkehrenden Tics des Autors; ein als [warn] markierter Tic zählt als medium statt high, ein Kapitel bis zum deklarierten Max N per chapter erzeugt keinen Fund |
global_shape_violation |
Katalog-Muster aus Abschnitt 11 (advisory, für jeden Autor) |
ai_tell_violation |
Katalog-Vokabular aus Abschnitt 1 (advisory, für jeden Autor) |
plot_hole |
Kausalitäts-Inversionen und nie eingelöste Promises |
cliche |
kuratierte abgedroschene Phrasen |
question_as_statement |
Fragewort-Dialog mit Punkt statt Fragezeichen |
filter_word |
POV-distanzierende Verben je 1.000 Wörter |
adverb_density |
-ly-Adverbien je 1.000 Wörter |
sentence_repetition |
Wiederkehrende Phrasen von 8 bis 15 Wörtern über Kapitel hinweg |
snapshot |
Statische Beschreibungsblöcke ohne Handlung und Dialog (Schwelle fünf Sätze, je Buch einstellbar mit snapshot_threshold unter ## Linter Config) |
callback_dropped, callback_deferred |
Registrierte Callbacks, die nie oder lange nicht aufgegriffen wurden |
simile, character_tell, blocking_tic, sensory, structural, signature_phrase |
Kapitelübergreifende Wiederholungen |
book_rules_unreadable, callbacks_unreadable |
Meta-Fund: Regeln oder Callbacks ließen sich nicht lesen, die Kategorie wurde also nicht geprüft |
Die Reihenfolge im Report: zuerst die Meta-Funde book_rules_unreadable und callbacks_unreadable, dann Buchregeln, dann die Autoren-Verbote (author_rule_violation, author_vocab_violation, writing_discovery_violation), dann die Katalog-Stufe (global_shape_violation, ai_tell_violation), dann Anonymisierungs-Lecks, Plot-Löcher, Klischees, dann der Rest nach Gewicht. Ein Fund, den ein harter Autoren-Treffer schon abdeckt, erzeugt keine zusätzliche Katalog-Warnung auf derselben Zeile.
Die Schwellen für Dichte-Kategorien (zum Beispiel Filterwörter und Adverbien) sind im Code festgelegt, die Details stehen im Report.
Nur im manuscript-checker-memoir:
| Kategorie | Erfasst |
|---|---|
anonymization_leak |
Klarname im Text, obwohl das Profil die Person als anonymisiert führt (Pre-Publication-Blocker) |
tidy_lesson_ending |
Kapitelende mit Moral-Zusammenfassung statt Moment |
reflective_platitude |
Dichte rückblickender Floskeln |
timeline_ambiguity |
Dichte zeitlicher Verschleierung |
real_people_consistency |
Uneinheitliche Namensform derselben Person |
anonymization_leak hebt das Gate allein auf WARN, nicht FAIL, wird aber in der Überschrift als Datenschutz-Blocker markiert. Bei Memoir läuft plot_hole nur mit causality_inversion.
Mit --interactive geht der Skill die schweren Funde einzeln durch, zeigt Treffer mit Kontext, schlägt Ersatz vor und fragt: alle übernehmen, einzeln anpassen, überspringen oder beenden. Der Skill beachtet dabei die Style Principles und Tics des Autors, damit gewollte Eigenheiten nicht „korrigiert" werden. Fragen mit Punkt ("Wer.") sind eine legitime Stilentscheidung in kleiner Dosis. Pro Treffer gibt es zwei Optionen: in ein Fragezeichen umwandeln (Standard) oder den Punkt behalten und mit einem Erzähl-Beat koppeln.
Callbacks legst du mit /storyforge:register-callback an. Für nur den Callback-Status gibt es verify_callbacks(book_slug), ohne den ganzen Scan.
validate_timeline_consistency(book_slug) gleicht die Zeitanker der Kapitel und relative Zeitphrasen im Text mit dem Event-Kalender in plot/timeline.md ab. Er ist das Batch-Gegenstück zum Zeitanker-Hook, sinnvoll nach mehreren Kapiteln und vor der Revision, besonders bei Discovery Writing.
Je Kapitel mit parsebarem ## Chapter Timeline leitet er für Phrasen wie yesterday, tomorrow, last week, last night, this morning, tonight oder an hour ago das Datum ab und vergleicht es mit dem Event des Kapitels. Abweichungen von mehr als null Tagen werden gemeldet. Kapitel ohne parsebaren Block stehen unter missing_anchors. Fehlt plot/timeline.md, ist calendar_built false und es gibt keine Funde. Das Ergebnis liegt zusätzlich unter {buch}/reports/timeline-validation.json.
/storyforge:continuity-checker <buch> prüft das ganze Buch gegen:
plot/timeline.md): zeitliche Konsistenzworld/setting.md): räumliche Konsistenz. Bei Memoir gibt es keine Matrix, räumliche Angaben werden auf reale Plausibilität geprüft.add_canon_fact): Fakten-Konsistenz, mit besonderem Blick auf geänderte Fakten und Kapitel, die noch die alte Fassung nennenTypische Funde: ein Wochentag, der zur Timeline nicht passt; eine Reisezeit, die kürzer ist als in der Matrix; ein Alter, das vom Canon abweicht; eine Ortsbeschreibung, die zwischen Kapiteln driftet. Der Report liegt unter research/continuity-report.md.
Rekonstruktion: Fehlen Timeline oder Travel Matrix, schlägt der Skill sie aus den Entwürfen vor und schreibt sie mit der Markierung [RECONSTRUCTED] in plot/timeline.md und world/setting.md, damit du sie prüfen kannst. Das ist der häufigste Einsatz bei Discovery Writern. Sind Einträge im Kalender vorhanden, aber wegen der Größenkappung abgeschnitten, rekonstruiert der Skill nicht, um keine Duplikate zu erzeugen.
Das Tool get_current_story_anchor(book_slug, chapter_slug) liefert die Zuordnung relativer Phrasen zu Daten direkt, siehe Technische Details.
Memoir-Bücher haben zwei Prüfungen, die es für Fiction nicht gibt.
/storyforge:emotional-truth-prompt prüft einen Kapitelentwurf auf Lücken im gefühlten Erleben, also Stellen, an denen der Text glatt ist, aber die Erfahrung fehlt. Er läuft nach dem Entwurf und vor chapter-reviewer-memoir. Der Skill arbeitet sieben Dimensionen ab und liefert Fragen und Revisions-Hinweise, nie umgeschriebene Prosa:
| Dimension | Prüft |
|---|---|
| ET1 Implizites Gefühl | Gefühle, die der Erzähler nicht ausspricht |
| ET2 Rückblick-Drift | Wissen der heutigen Erzählerin sickert in die Szene |
| ET3 Erinnerungs-Widerspruch | verdächtig saubere Erinnerung |
| ET4 Vermeidungs-Hedge | vage Verweise, unbenannte Verweigerungen |
| ET5 Gründlichkeitsfalle | Detail ohne Bezug zum Gefühl |
| ET6 Szene-oder-Zusammenfassung-Fehler | Angelpunkte zusammengefasst, Übergänge dramatisiert |
| ET7 „Ich lag falsch" | Buße als Schaustück, ordentliche Erlösung |
Urteile: PASS (weiter zum Review), DEEPEN (markierte Dimensionen bearbeiten, dann zweiter Durchlauf) und REWRITE (strukturelle Überarbeitung). Bei Fiction-Büchern verweist der Skill auf chapter-reviewer.
/storyforge:memoir-ethics-checker hat zwei Durchläufe.
Einwilligung: Das Tool check_memoir_consent bewertet jede Person in people/ nach consent_status und person_category:
consent_status |
Urteil |
|---|---|
confirmed-consent |
PASS |
not-required (öffentliche Person, verstorben, vollständig anonymisiert) |
PASS |
pending |
WARN |
not-asking |
WARN |
| fehlender oder unbekannter Wert | WARN |
refused |
FAIL |
Eine fehlende oder unbekannte person_category macht aus PASS ein WARN. Gültig sind public-figure, private-living-person, deceased und anonymized-or-composite.
Verleumdungsrisiko im Text: Der Skill liest die Entwürfe und sucht zu jeder Person (unabhängig vom Einwilligungsstatus) vier Muster:
| Muster | Inhalt |
|---|---|
| D1 | zeitlich unbegrenzte Behauptung über Verhalten oder Zustand („He drank too much.") |
| D2 | rekonstruierter, belastender Dialog, der als Tatsache auftritt |
| D3 | Gedanken der Person als Tatsache statt als Eindruck („She hated me.") |
| D4 | Unterstellung von Straftat, Inkompetenz oder sexuellem Fehlverhalten ohne Beleg |
Das Urteil des Skills: EXPORT BLOCKED bei einer verweigerten Einwilligung oder einem D4-Fund, RESOLVE BEFORE EXPORT bei WARN oder D1 bis D3, sonst EXPORT CLEAR.
export-engineer ruft bei Memoir vor dem Export check_memoir_consent auf. Bei FAIL bricht er ab, bei WARN fragt er nach. Der Verleumdungs-Scan gehört zum Skill memoir-ethics-checker und läuft nicht automatisch mit.
chapter-writer lädt den Chapter Writing Brief und gibt den Pre-Scene Logic Audit aus. Bei Kampf- oder Reiseszenen läuft verify_tactical_setup.
Der Prosa-Hook läuft bei jedem Write und Edit automatisch.
/storyforge:chapter-reviewer (Memoir: vorher emotional-truth-prompt)/storyforge:chapter-fixer/storyforge:author-check/storyforge:chapter-voice-harvest (nach Review und Fixes, vor dem Humanizer)/storyforge:chapter-humanizer/storyforge:chapter-proofreader/storyforge:voice-checker für kritische Kapitelvalidate_timeline_consistency/storyforge:continuity-checker/storyforge:manuscript-checker --interactive (Memoir: manuscript-checker-memoir)/storyforge:sensitivity-reader bei sensiblen Themen/storyforge:memoir-ethics-checkerFinal/storyforge:export-engineerUrsachen: Die Phrase steht als Backtick-Muster in den Buchregeln oder in den donts oder Tics des Autors. Entferne oder ändere den Eintrag. Als Notfall setzt du linter_mode: warn im Frontmatter der Buch-CLAUDE.md. Das gilt für das ganze Buch und lässt sich nicht pro Muster einstellen. Siehe auch Autorenprofile.
Das Fachgebiet steht im knowledge-Block der Figur als none oder layperson, sollte aber competent sein. Verschiebe es dort oder entferne den knowledge-Block, dann wird die Figur nicht geprüft. Eigene Gebiete lassen sich als Datei unter reference/craft/knowledge-domains/ anlegen.
Meist ist das Autorenprofil zu vage, es gibt keine Verbote in den Writing Discoveries, es wurde nicht szenenweise geschrieben oder es wurde kein Werk mit study-author analysiert. Schärfe das Profil, siehe Autorenprofile.
Das ist bei Discovery-Büchern nach dem ersten Entwurf und bei langen Büchern normal. Konzentriere dich auf die schweren Funde und lasse die mittleren im ersten Durchgang liegen.
Die Warnung ist eine Prüfliste, kein Blocker: Stimmt das abgeleitete Datum, ignorierst du sie. linter_mode: warn schaltet sie nicht ab, denn dieser Modus senkt nur Blocker auf Hinweise, und der Hook gibt auch im Modus warn die Funde aus (bis zu 10 Zeilen). Die Warnungen verschwinden nur, wenn die Kapitel-README keinen parsebaren Abschnitt ## Chapter Timeline mit Startzeit hat oder im Text keine relativen Zeitphrasen vorkommen.
Ein Beispiel: Das Kapitel sagt „drei Tage später", die Timeline „zwei Tage später". Prüfe, ob ein Tag intra-day gerechnet wurde. Halte die Semantik fest, etwa mit /storyforge:register-callback und einer Regel („Timeline-Tage sind Kalendertage, keine 24-Stunden-Blöcke"), damit sie in den Buchregeln steht.
Das Protokoll ist leer. Einträge entstehen erst durch geprüfte Entscheidungen in Review, Fixer, Rewriter oder Writer, und auf Zuruf durch deine eigenen Änderungen. Schreibe erst ein paar Kapitel durch die Review-Runde, bevor du den Voice Harvest erwartest.
Der globale AI-Tell-Katalog (anti-ai-patterns.md) gilt nur für Bücher auf Englisch, siehe Technische Details. Buchregeln, Autoren-Verbote, Tics und Tonregeln wirken davon unabhängig weiter.