Markus Michalski FAQ

StoryForge Autorenprofile - Anti-AI-Engine

Autorenprofile in StoryForge: Aufbau von profile.md, Writing Discoveries in der Datenbank, wie verbotene Phrasen und Tics im Prosa-Hook durchgesetzt werden, study-author, Sprachfelder und Fehlerbehebung.

StoryForge Autorenprofile

English Version

Zurück zur StoryForge-Hauptseite


Überblick

Das Autorenprofil ist der Kern von StoryForge. Der chapter-writer lädt es nach dem Chapter Writing Brief als Pflicht-Kontext, bevor er ein Wort schreibt. Ein technisches Gate gibt es dafür nicht: Existiert noch kein Autor, schlägt new-book lediglich vor, zuerst create-author zu nutzen. Ohne Profil fällt die Prosa auf den generischen KI-Stil zurück. Das Profil verhindert, dass dein Text so klingt.

Ein Autorenprofil ist keine Marketing-Persona. Es ist ein Satz von Parametern, der bestimmt, wie Prosa auf Satz-, Absatz- und Dialogebene gebaut wird. Die Qualität deines Buchs hängt direkt an der Qualität deines Profils.

Ein Profil besteht aus zwei Teilen:

vocabulary.md ist reine Referenz. Der Hook liest diese Datei nicht. Verbotene Phrasen legst du mit write_author_banned_phrase oder add_vocabulary_entry an, siehe Writing Discoveries.


Warum Autorenprofile?

KI-Modelle haben einen Default-Stil: glatte Eleganz, abstrakt-poetische Nomen, wenig Satzvariation, Dialogbeats statt Subtext. Dieser Default klingt in jedem Genre gleich. Der Voice-Checker nennt das „AI-Tells".

Autorenprofile sind die Gegenmaßnahme:

  1. Stil-Parameter überschreiben die Defaults.
  2. Verbotene Phrasen und Muster meldet der Hook sofort nach jedem Schreibvorgang und verlangt die Korrektur, nicht erst ein Check am Ende.
  3. Style Principles beschreiben positiv, was die Stimme ausmacht.
  4. Studied Works liefern konkrete Beispiele aus analysierten Texten.

Der chapter-writer lädt nach dem Brief das Profil. Schreibt er oder du eine draft.md, prüft der PostToolUse-Hook den Text gegen die Autoren-Banlist. Details zum Hook stehen auf der Seite Technische Details.


Speicherort

Autorenprofile liegen außerhalb des Plugin-Verzeichnisses und überleben so Plugin-Updates:

~/.storyforge/authors/{slug}/
├── profile.md            # Frontmatter und Stilbeschreibung
├── vocabulary.md         # Referenz: bevorzugte Wörter, Signature Phrases
├── studied-works/        # Analysen aus study-author
│   └── analysis-{buch-slug}.md
└── examples/             # eigene Beispieltexte (optional)

~/.storyforge/db/authors.db   # Writing Discoveries (author_discoveries)

Profile.md: Struktur

Frontmatter

/storyforge:create-author fragt die Werte ab und legt die Datei an. Ein Beispiel:

---
name: "Maja Sundberg"
slug: "maja-sundberg"
created: "2026-04-24"
updated: "2026-04-24"
primary_genres: ["contemporary", "mystery", "literary-fiction"]
narrative_voice: "third-limited"
tense: "past"
tone: ["melancholic", "atmospheric", "terse"]
sentence_style: "varied"
vocabulary_level: "moderate"
dialog_style: "naturalistic"
pacing: "slow-burn"
themes: ["memory", "loss", "the-sea-as-character"]
influences: ["Jon Fosse", "Siri Hustvedt", "Per Petterson"]
avoid: ["purple-prose", "info-dumps", "deus-ex-machina"]
author_writing_mode: "outliner"
native_language: "sv"
preferred_writing_language: "sv"
---
Feld Bedeutung
name, slug Anzeigename und Verzeichnisname
primary_genres Genres, in denen der Autor schreibt
narrative_voice first-person, third-limited, third-omniscient oder second-person
tense past oder present (bei Memoir-Autoren auch gemischt)
tone zwei bis vier Werte aus der Liste von create-author: sarcastic, dark-humor, atmospheric, lyrical, terse, warm, cold, irreverent, earnest, melancholic, playful, intense, detached, intimate (bei Memoir eine eigene Liste)
sentence_style short-punchy, long-flowing, varied oder minimalist
vocabulary_level, dialog_style Vokabular-Niveau (simple, moderate, advanced, archaic) und Dialogstil (naturalistic, stylized, minimal, heavy)
pacing slow-burn, tension-driven, breakneck oder literary
themes, influences, avoid Themen, literarische Vorbilder, was dieser Autor nie macht
author_writing_mode outliner, plantser oder discovery, siehe Writing Modes
native_language, preferred_writing_language siehe Sprachfelder

Weitere Felder, die update_author schreiben darf: pen_name, bio, website, social_media, mood, voice und die vier quantitativen Ziele dialog_ratio_target, fragment_ratio_target, single_line_paragraph_ratio_target und avg_sentence_length_target. study-author setzt Letztere aus dem analysierten Text, author-check nutzt sie statt seiner allgemeinen Standardwerte. Memoir-Autoren haben zusätzlich subject_position, relationship_to_material und off_limits.

Andere Felder weist update_author ab, damit niemand beliebige Schlüssel ins Frontmatter schmuggeln kann.

Schreibmodus

author_writing_mode steuert, welchen Weg new-book und book-conceptualizer vorschlagen und wie ausführlich plot-architect arbeitet. Pro Buch lässt sich der Modus überschreiben, wirksam ist der Override aber nur an manchen Stellen. Alles Weitere steht unter Writing Modes.

Bei Memoir-Autoren fragt create-author mit den Begriffen Structured, Accumulative und Discovery statt Outliner, Plantser und Discovery Writer. Beim Speichern über update_author werden diese Begriffe case-insensitiv auf die kanonischen Werte normalisiert: Structured wird zu outliner, Accumulative zu plantser, Discovery bleibt discovery. Im Profil steht danach der kanonische Wert, den auch alle anderen Skills kennen. Eine Eingabe, die keiner dieser Begriffe ist, wird unverändert gespeichert.

Prosa-Abschnitte

Nach dem Frontmatter folgt freie Prosa. Das Tool create_author legt dafür drei Abschnitte mit Platzhaltertext an: ## Writing Style, ## Signature Techniques und ## Voice Notes. Diese füllst du von Hand oder über study-author. Weitere Abschnitte wie ## Narrative Approach, ## Tone & Atmosphere, ## Strengths, ## Deliberate Imperfections oder ## Influences & Comparable Authors sind eine Empfehlung (die Datei templates/author-profile.md im Plugin zeigt sie), die du bei Bedarf selbst ergänzt. Je konkreter die Beschreibung, desto besser der Output:

## Signature Techniques

- **Objekt-als-Emotion:** Gefühle werden nie benannt, sondern an Objekten
  sichtbar (der Kaffee wird kalt, der Schlüssel schneidet in die Hand).
- **Weather-as-Chorus:** Das Wetter kommentiert die Szene, nie reine Kulisse.

Writing Discoveries

Die Writing Discoveries eines Autors liegen in der Tabelle author_discoveries der Datenbank authors.db. Es gibt drei Typen:

Typ Inhalt Wirkung
donts verbotene Phrasen und Muster Hook meldet als block
recurring_tics wiederkehrende Tics, aus fertigen Büchern gesammelt Hook meldet als block oder warn, je nach Markierung
style_principles positive Stilmuster, bevorzugte Wörter wird nicht gescannt, sondern von chapter-writer und chapter-reviewer über get_author geladen

get_author liefert sie unter writing_discoveries. Einträge, die mit write_author_discovery angelegt werden, können eine Herkunft (Buch, Datum), genres, universal und ein example tragen.

Einträge anlegen

Weg Wirkung
write_author_banned_phrase(author_slug, phrase, reason) legt einen donts-Eintrag in der Form `phrase` — Grund an, ohne Herkunft. Der Hook sucht die Phrase als reinen Teilstring, siehe unten.
add_vocabulary_entry(author_slug, entry_type, text, source) banned wird zu donts (flacher Eintrag, mit Beugung und Wortgrenze), preferred und phrase werden zu style_principles
write_author_discovery(author_slug, section, text, book_slug, ...) schreibt in recurring_tics, style_principles oder donts; optional mit example, genres, universal; bei einem Memoir-Buch ohne example und ohne Namen einer Person aus dem Buch
/storyforge:chapter-voice-harvest übernimmt bestätigte Stimmmuster aus deinen Review-Korrekturen als style_principles mit Genre-Scope; nie als donts oder recurring_tics
/storyforge:harvest-author-rules übernimmt Erkenntnisse eines fertigen Buchs
/storyforge:study-author schreibt Stilmuster aus analysierten Texten

Alle Wege sind idempotent: Ein Eintrag mit identischem Text wird nicht doppelt angelegt.

add_vocabulary_entry speichert den Text unverändert. Ein ganzer Satz ergibt ein Muster in Satzlänge, das praktisch nie trifft. Trage kurze Phrasen ein.

create_author legt zusätzlich bei der Erstellung sofort 19 Standard-Wörter aus dem Anti-Pattern-Katalog (siehe Anti-Pattern-Katalog) als donts an; sie wirken ab diesem Moment wie jede andere flache Phrase und zählen im Manuscript-Checker als author_vocab_violation. vocabulary.md führt diese Wörter nicht mehr auf, nur noch einen Verweis auf die Datenbank. Schlägt das Schreiben in die Datenbank fehl, bleibt der Autor trotzdem angelegt; die Antwort von create_author trägt dann ein warning-Feld mit der Anweisung, die Wörter per add_vocabulary_entry nachzutragen.

Format der Einträge

Verbotene Phrasen (donts) können in vier Formen vorliegen. Wie genau gesucht wird, hängt von der Form ab, und damit vom Weg, auf dem der Eintrag entstand:

Form (Weg) Wirkung im Hook
flache Phrase ohne Backticks und Fettdruck, zum Beispiel delve / delve into (add_vocabulary_entry mit banned, Migration aus vocabulary.md) wird an / in Aliase zerlegt, Klammerzusätze wie (metaphorical) werden entfernt. Einzelwörter treffen Beugungen und beginnen an einer Wortgrenze.
Backtick-Eintrag, zum Beispiel `delve` — Grund (write_author_banned_phrase) oder `` `\bthe (room silence) received\b` `` enthält der Text Regex-Zeichen, gilt er als regulärer Ausdruck, sonst als einfacher Teilstring ohne Beugung und ohne Wortgrenze, Groß- und Kleinschreibung egal
kursive Beispielphrase, zum Beispiel *The room received it.*, in einem Eintrag mit Verbots-Hinweis (Never, Avoid, nie, kein und ähnlich) wird als Text gesucht, aber nur im Fenster vor einem Empfehlungs-Marker (Render, Replace, Instead:, → und ähnlich), Satzzeichen am Ende werden abgeschnitten. Dieses Fenster gilt im Hook genauso wie im Manuscript-Checker.
Zeile mit fettem Titel, aber ohne Backtick und ohne kursive Beispielphrase nach einem Verbots-Hinweis, zum Beispiel **word** (Anmerkung) steht der Fettdruck am Anfang der Zeile, erzeugt der Bold-Title-Fallback aus dem Text zwischen den Sternchen ein Literal, ein Einzelwort mit Beugung und Wortgrenze wie bei einer flachen Phrase, eine Mehrwortphrase exakt mit Wortgrenzen; stehen im Titel Anführungszeichen-Phrasen, werden nur diese gesucht; ein Zusatz hinter dem Fettdruck, wie die Klammer-Anmerkung im Beispiel, gehört nicht zum Titel und bleibt außen vor

Der Bold-Title-Fallback greift nur, wenn die Zeile direkt mit dem Fettdruck beginnt. Steht davor noch anderer Text, etwa Avoid **word** entirely, erkennt ihn der Fallback nicht, und der Eintrag bleibt wirkungslos. Das betrifft auch Bullets, die aus einer vocabulary.md migriert wurden und dabei ihren Fettdruck behalten haben: Steht der Fettdruck am Anfang, wirkt so ein migrierter Eintrag jetzt wie eine flache Phrase, steht er nicht am Anfang, bleibt er wirkungslos. Prüfe solche Einträge mit get_author und lege sie bei Bedarf als flache Phrase oder Backtick-Eintrag neu an.

Der Unterschied zwischen den ersten beiden Zeilen ist wichtig:

Alle Treffer von donts haben die Stufe block.

Wiederkehrende Tics (recurring_tics) sind Bullets mit fettem Titel, der die scannbare Phrase in Anführungszeichen trägt:

- **Vague-noun "thing" als Fallback** — "doing a thing with his hand" sofort konkretisieren.
- **"count" als Zeitmarker-Tic** — *for a count of X* — Max. 2–3 pro Kapitel.

Der Hook nimmt die gequoteten Phrasen aus dem Titel, andernfalls Muster aus dem Text des Bullets. Standard ist block. Steht [warn] oder [advisory] im Bullet, wird der Fund nur gemeldet. Ein Zusatz wie Max 2 per chapter, Max 2–3 pro Kapitel oder Max einmal pro Kapitel erlaubt bis zu so viele Treffer je Kapitel. Das Limit wird auf die Länge des aktuellen Entwurfs im Verhältnis zur Ziel-Wortzahl des Kapitels skaliert, ein halb fertiger Entwurf darf also entsprechend weniger Treffer haben. Der Manuscript-Checker wendet dieselbe Unterscheidung an: Ein [warn]-Tic bekommt dort das Gewicht medium statt high, und ein Kapitel, das die erlaubte Zahl an Treffern nicht überschreitet, erzeugt keinen Fund. Anders als beim Hook, der die Länge des Entwurfs gegen die Ziel-Wortzahl skaliert, prüft der Checker das Limit je vollständigem Kapitel.

Style Principles werden nicht maschinell geprüft. Sie sind narrative Anweisungen: chapter-writer wählt je Szene drei passende Principles aus, zitiert deren example und setzt sie um. Einträge mit genres gelten nur in Büchern, die mindestens eines dieser Genres haben. Einträge ohne genres gelten überall, mit universal immer. Bei Memoir-Büchern gilt zusätzlich das Genre-Tag memoir: Einträge mit diesem Tag wirken in Memoir-Büchern des Autors und nicht in dessen Fiction-Büchern. Ob die Principles im Entwurf wirklich vorkommen, prüft /storyforge:author-check.

Wer scannt was?

Quelle Prosa-Hook Manuscript-Checker (Kategorie)
donts, flache Phrasen block author_vocab_violation
donts, Fettdruck am Zeilenanfang ohne Backtick/Kursiv (Bold-Title-Fallback) block author_vocab_violation
donts, Backtick und Kursiv block author_rule_violation
donts, Zitat in Anführungszeichen mit Verbots-Hinweis nein author_rule_violation (nur vor einem Empfehlungs-Marker)
recurring_tics block oder warn, mit Kapitel-Limit writing_discovery_violation, Gewicht high oder bei [warn] medium, mit Kapitel-Limit pro Kapitel
style_principles nein nein
Globale Shape-Bans (anti-ai-patterns.md, Abschnitt 11, sechs Regex-Muster) warn, für jeden Autor global_shape_violation
Globale AI-Tell-Wörter (anti-ai-patterns.md, Abschnitt 1) warn, für jeden Autor (Kategorie ai_tell) ai_tell_violation

Globale Muster warnen nur (Hook) oder gelten als advisory (Checker). Willst du eines hart blockieren, trägst du es als Backtick-Regex in die donts des Autors ein.

Maschinell durchgesetzt werden aus Abschnitt 11 nur die Zeilen, die exakt mit **Banned shape:** beginnen. Das sind sechs: Zähl-und-Kommentier-Fragmente (11.1), Satz als Geschoss (11.2), Raum als Empfänger (11.3), Wirtschafts-Metaphern (11.4), Körperteil-Handlungsmacht (11.6) und Rückwärts-Verneinungsschleifen (11.7). Die Varianten Banned shape (trust-split) und Banned shape (density) sowie 11.5, 11.8 und 11.11 bis 11.13 haben keinen geladenen Regex. Der chapter-humanizer deckt sie zum Teil mit eigenen Dichteregeln und Urteilsprüfung ab, siehe Quality System.

Bestehende vocabulary.md übernehmen

Für die Durchsetzung zählt nur die Datenbank, nicht vocabulary.md. Hast du verbotene Wörter in einer solchen Datei, überträgt scripts/migrate_vocabulary_to_db.py die Banned-Words-Abschnitte in die Datenbank (Vorschau ohne Flag, --execute schreibt, wiederholbar). Siehe Technische Details.


Hook und Autor

Welcher Autor zu einem Buch gehört, findet der Hook zuerst über die Zeile - **Author:** Name in der Buch-CLAUDE.md. Der Name wird zum Slug umgewandelt, und die Klammer-Anmerkung dahinter wird ignoriert:

Anzeigename Slug
Ethan Cole ethan-cole
Ursula K. Le Guin ursula-k-le-guin

Fehlt diese Zeile oder die Datei, fällt der Loader auf das Feld author: im Frontmatter der Buch-README.md zurück. Dort steht bereits der Slug selbst, ohne Umwandlung. create_book_structure schreibt dieses Feld bei jedem neu angelegten Buch, auch wenn kein Autor übergeben wurde; in diesem Fall bleibt es leer und zählt wie eine fehlende Angabe.

Die CLAUDE.md-Zeile schreibt kein Werkzeug: Die Vorlage der Buch-CLAUDE.md enthält unter Book Facts nur POV, Tense, Genre und Writing Mode, und init_book_claudemd übergibt keinen Autor. Du kannst sie trotzdem von Hand ergänzen, etwa im Abschnitt Book Facts; der Loader sucht sie in der ganzen Datei, nicht nur dort, und sie hat Vorrang vor dem Feld in der README.md. Fehlen beide Quellen, gibt es keine Autoren-Banlist. Fehlt authors.db oder schlägt die Abfrage fehl, gilt der Autor ebenfalls als ohne Einträge, bei einem Abfragefehler schreibt der Hook eine Notiz nach stderr.

Der Hook läuft als PostToolUse, also nachdem die Datei geschrieben ist. Ein Fund der Stufe block führt im Modus strict zu Exit-Code 2: Die Meldung geht an Claude zurück, und Claude muss den Fund beheben, bevor es weiterschreibt. Im Modus warn (linter_mode: warn im Frontmatter der Buch-CLAUDE.md) werden Blocker nur ausgegeben, und zwar für das ganze Buch, nicht für einzelne Muster. Mehr dazu: Technische Details und Konfiguration.

Ist ein Muster für ein einzelnes Buch zu scharf, entfernst du den Eintrag aus den Writing Discoveries des Autors, statt den Modus des Buchs zu lockern.


Study Author: Stil-Extraktion

/storyforge:study-author <datei> [autor-slug] analysiert eigene oder fremde Texte (PDF, EPUB, DOCX, TXT, MD) und überträgt Stilmuster ins Profil. Dateien über 50 MB lehnt der Skill ab. Bei Texten über 200.000 Wörtern wird nicht abgelehnt: Dann analysiert er eine Stichprobe aus Anfang, Mitte und Ende. Der Skill verfeinert ein bestehendes Profil. Gibt es noch keines, verweist er zuerst auf create-author, weil ein Profil aus einem einzigen fremden Werk dessen Signatur zu eng kopieren würde.

Der Ablauf im Fiction-Modus:

  1. Eingabe: Datei, Autor, Quellgenres. Gibt es schon eine analysis-{buch-slug}.md, warnt der Skill vor doppelten Discoveries.
  2. Checkliste positiver Marker: Aus dem Abschnitt ## study-author: Positive Markers der Genres des Autors und seinen tone-Werten stellt der Skill eine Checkliste zusammen. Erst nach deiner Bestätigung beginnt die Analyse.
  3. Analyse: Satzlänge und Varianz, Wortschatz, Dialoganteil und Tags, Absatzstruktur, Stilmarker wie Metaphernhäufigkeit, Filterwörter und Adverbien.
  4. Analysedatei unter studied-works/analysis-{buch-slug}.md.
  5. Profil aktualisieren: Frontmatter-Felder und quantitative Ziele über update_author, gefundene Stilmuster als style_principles, wiederkehrende Eigenheiten als recurring_tics, zu meidende Muster über write_author_banned_phrase. Bewusste Eigenheiten aus dem Abschnitt „Deliberate Imperfections" speichert der Skill als style_principles, ausdrücklich nicht als recurring_tics, weil Tics durchgesetzt werden. Widerspricht ein neuer Fund einem bestehenden, fragt der Skill nach.

Im Memoir-Modus analysiert der Skill deine eigenen Texte (Tagebücher, Briefe, alte Blogeinträge), um die unverstellte Stimme herauszuarbeiten, und überspringt das Profil-Gate.

Für Autoren, die vor der Checkliste studiert wurden, holt /storyforge:backfill-style-principles <autor-slug> positive Muster aus den vorhandenen Analysedateien nach. Der Skill ist idempotent. Mit /storyforge:migrate-source-genres ergänzt du fehlende Genre-Tags.


Mehrere Autorenprofile

Du kannst beliebig viele Profile haben:

~/.storyforge/authors/
├── maja-sundberg/
├── maja-sundberg-thriller/   # anderer Rhythmus für Thriller
└── test-voice/               # Experimentier-Profil

Pro Buch wird ein Autor gewählt: der Slug im Feld author des Buch-Frontmatters, den create_book_structure immer schreibt, oder die Zeile - **Author:**, die du bei Bedarf in der Buch-CLAUDE.md ergänzt und die Vorrang vor dem Frontmatter-Feld hat. Ein Autor lässt sich mit /storyforge:delete-author samt seinen Writing Discoveries entfernen. Der Skill weigert sich, solange noch Bücher auf ihn verweisen, außer du erzwingst es.


Sprachfelder

Feld Ebene Zweck
native_language Autor Muttersprache (ISO 639-1), bestimmt die Sprache der Erklärungen im chapter-proofreader
preferred_writing_language Autor Standard-Schreibsprache, Fallback wenn das Buch keine Sprache hat
language Buch Schreibsprache des Buchs, hat Vorrang

Beispiel: Ethan Cole schreibt meist auf Englisch (preferred_writing_language: en), seine Muttersprache ist Deutsch (native_language: de). Der Proofreader prüft nach englischen Regeln und erklärt Fehler auf Deutsch. Für bestehende Profile setzt du die Felder mit update_author(slug, "native_language", "de").


Anti-Pattern-Katalog

StoryForge bringt unter reference/craft/anti-ai-patterns.md einen Katalog typischer AI-Tells mit. Er dient dreifach:

Der Katalog gilt nur für Bücher auf Englisch (Sprache aus language im README-Frontmatter des Buchs); für andere Sprachen entfallen die Katalog-Treffer.

Typische Tells: abstrakte Gefühls-Nomen („tapestry of feelings"), Reise-Metaphorik, Hedging („it's worth noting"), gleiche Satzanfänge in Folge, Therapie-Sprache („held space"), Symphonie-Metaphern, auffällig eloquente Teenager, Beats ohne Funktion und zu saubere Szenenenden.


Tipps für starke Profile

  1. Konkret statt generisch. Die Listen für tone und die anderen Stilfelder sind grob. Die Genauigkeit entsteht in den Prosa-Abschnitten: „melancholisch, nordisch kühl, das Meer als dritte Figur" schlägt ein bloßes melancholic.
  2. Verbote pflegen. Ohne Einträge in den donts bleibt dem Hook nur der globale Katalog. Fange mit den Phrasen an, die dich in deinen Entwürfen stören.
  3. Studied Works nutzen. Ein Profil ohne analysierte Werke ist ein Schauspieler ohne Proben. Analysiere ein bis zwei eigene oder verwandte Werke.
  4. Signature Phrases nicht erfinden. Erst aufnehmen, wenn sie in analysierten Texten wirklich vorkommen, sonst wirken sie manieriert.
  5. Ein Profil pro Genre. Wer Horror und Romance schreibt, legt zwei Profile an.
  6. Profile leben. chapter-voice-harvest lernt schon während des Schreibens aus deinen Korrekturen; nach jedem Buch zusätzlich harvest-author-rules laufen lassen, damit Erkenntnisse im nächsten Buch durchgesetzt werden.
  7. Vorsicht mit kurzen Verboten. Ein-Wort-Verbote wie like, thing oder way haben legitime Verwendungen. Als Backtick-Eintrag trifft `thing` sogar mitten in something. Besser als Tic mit [warn] und Kapitel-Limit anlegen, oder als Regex mit Wortgrenze (`\bthing\b`).
  8. Wirkung prüfen. /storyforge:author-check zeigt, ob die positiven Stilmuster im Entwurf ankommen.

Fehlerbehebung

Das Profil greift beim Schreiben nicht

Der Chapter Writer produziert generischen Text mit Wörtern wie delve oder tapestry, obwohl ein Profil existiert.

Mögliche Ursachen:

  1. Weder die Buch-CLAUDE.md noch die README.md liefern einen Slug: Die Zeile - **Author:** ... fehlt (kein Werkzeug schreibt sie automatisch) und das Feld author: im README-Frontmatter ist leer oder fehlt.
  2. Der Slug aus dem Namen stimmt nicht mit dem Verzeichnis ~/.storyforge/authors/{slug}/ überein.
  3. Die Wörter stehen nur in vocabulary.md, aber nicht in den Writing Discoveries. Die Datei wird nicht gelesen. Migriere sie oder trage die Phrasen mit write_author_banned_phrase ein.
  4. Die Datenbank ~/.storyforge/db/authors.db fehlt oder ist nicht lesbar.
  5. Der Hook läuft nicht (Setup nicht durchgeführt, Plugin nicht aktiv). Prüfe mit /hooks.
  6. Ein Backtick-Eintrag trifft die Beugung nicht (`delve` findet delving nicht). Lege einen Regex oder einen flachen Eintrag an.
  7. Ein migrierter Eintrag mit Fettdruck hat weder Backtick noch kursive Beispielphrase, und der Fettdruck steht nicht am Anfang der Zeile — der Bold-Title-Fallback erkennt ihn dann nicht.

Mit get_author(slug) siehst du, welche writing_discoveries tatsächlich gespeichert sind.

Der Hook meldet unerwartet

Die Meldung lautet etwa Banned by author voice, die Phrase gehört aber zur gewollten Stimme. Entferne den Eintrag aus den Writing Discoveries, oder setze für das Buch linter_mode: warn als Notfall-Override.

Der Voice-Check meldet viele AI-Tells trotz Profil

Bei langen Passagen rutscht mehr durch. Der Hook meldet nur Musterfunde, der voice-checker bewertet zusätzlich Strukturen. Schreibe szenenweise und lass nach jeder Szene bei Bedarf den voice-checker oder den chapter-humanizer laufen.


← Zurück zur StoryForge-Hauptseite