Skip to content

Add narrative craft course with phone/PC marks and prose exercises (LRN-29) - #20

Merged
hernstev97 merged 2 commits into
mainfrom
feat/lrn-29-narrative-craft-course
Oct 16, 2026
Merged

hernstev97 merged 2 commits into
mainfrom
feat/lrn-29-narrative-craft-course

Conversation

@hernstev97

Copy link
Copy Markdown
Owner

Für LRN-29: Steven lernt erzählerisches Handwerk für sein eigenes Spiel. Er will den Kurs im Bus auf dem Handy und zu Hause am PC durcharbeiten, und er will alles Kreative selbst machen.

Der neue Bereich /narrative („Erzählhandwerk & interaktive Entscheidungen“) lehrt Figuren, Perspektive, Szenen, Dialog, Erzählen über Umgebung und Folgen, verständliche Entscheidungen, mechanische Anreize, begrenzte Verzweigungen, Überarbeiten und Testlesen. Jedes Modul ist als „Unterwegs“ (Handy reicht) oder „Am PC“ markiert. Dafür und für Übungen mit Fließtext gibt es zwei kleine Plattformerweiterungen.

Track A der Bereichsseite: drei Module mit der Marke „Unterwegs“, die Werkstatt mit „Am PC“

Lektion auf 360 px Hinweis am Kursanfang Übung „Zeile finden“ auf 360 px Eigener Text ohne Musterlösung
Kopf des ersten Moduls auf dem Handy mit der Marke „Unterwegs“ und dem Satz, was unterwegs geht Callout „So ist dieser Kurs gebaut“ auf dem Handy: Unterwegs/PC, Offline-Grenze, KI-Regel Prosa-Übung: sechs umbrechende Zeilen, die gemeinte Zeile 5 ist markiert, Rückmeldung „Richtig“ Schreibaufgabe mit Vorlage aus leeren Feldern, Textfeld mit Rechtschreibprüfung, kein Button „Lösung zeigen“
Lektion am Desktop Werkstatt am PC: Twine/Harlowe
Lektion „Perspektive“ am Desktop: Fokalisierung als Liste, darunter Kleists erster Satz aus „Das Erdbeben in Chili“ als Zitat mit Quelle Vorhersage-Übung mit Harlowe-Code: „Deine Vorhersage: was der Spieler sieht“

Inhalt

  • 13 Module in 4 Tracks, 9 „Unterwegs“ und 4 „Am PC“:
    • Figur, Perspektive, Szene: figuren-motivation, perspektive, szenenaufbau, werkstatt-szene (PC)
    • Dialog und Welt: dialog-subtext, umgebung-erzaehlt, werkstatt-dialog (PC)
    • Interaktive Entscheidungen: spielerwissen, folgen-anreize, verzweigungen, werkstatt-entscheidung (PC)
    • Überarbeiten und Testen: ueberarbeiten, testlesen-playtest
  • 162 Übungen (practice 44, choice 32, explain 28, bug 21, gap 18, order 15, output 4). Dazu 54 Karten, 50 Glossarbegriffe, Spickzettel, Berufsseite (Narrative Design, Game Writing) und 4 Projekte. Das Abschlussprojekt ist Stevens eigene Entscheidungsszene: Ablauf mit Voraussetzungen und Folgen, Entwurf, Twine-Prototyp, Testlauf mit mindestens zwei Personen, Überarbeitung, Reflexion.
  • Unterwegs-Module: Lektionen mit 1.650–2.230 Wörtern, Schreibaufgaben mit höchstens etwa fünf Sätzen oder Stichpunkten, keine Tabellen oder Codeblöcke, die auf 360 px brechen. PC-Module (Werkstätten) haben kürzere Lektionen und 5–6 längere Schreibaufgaben.
  • Werkzeuge: Twine 2.12.1 mit Harlowe 3.3.9 für den Prototyp. ink 1.2.1/Inky 0.15.2, Yarn Spinner 3.2 (Godot nur Early Access/0.x) und Dialogue Manager 4.1 für Godot 4.6+ werden als nächste Schritte genannt.
  • Quellen: Gemeinfreie Texte wörtlich mit Quelle (Goethe, Kafka, Kleist, Hebel, Grimm, Büchner, Schnitzler, Fontane, Lessing; meist Wikisource). Ein Skript hat jede zitierte Zeile gegen die Quelltexte geprüft. Geschützte Werke und Spiele sind beschrieben und verlinkt, wörtlich nur einzelne Sätze mit Beleg. Belege für Handwerk sind Primärquellen: Living Handbook of Narratology, Ashwell, Emily Short, Jenkins, Smith/Worch (GDC), Hocking, Salen & Zimmerman, Lerman, Nielsen Norman Group u. a.

KI-Regel (Stevens Festlegung vom 16.10.2026)

Der Kurs lehrt allgemeines Handwerk an veröffentlichten Beispielen. Übungen lassen die kreative Lösung offen: keine der 44 Schreibaufgaben hat eine Musterlösung, nur eine Checkliste mit prüfbaren Kriterien. Nichts im Kurs schlägt Geschichten, Plotideen, Figuren oder Dialoge für sein Spiel vor. Eigene Lehrbeispiele spielen in neutralen Alltagssituationen (Umzug, Bahnhof, Küche, Büro), weit weg von Wald, Dorf, heiligem Wesen und Töten oder Verschonen. Veröffentlichte Spiele mit ähnlichen Motiven (Undertale, BioShock, Pentiment) werden nur analysiert. Erlaubt ist, was der Kurs auch so nennt: Struktur, Checklisten, Rechtschreibung oder Grammatik auf Wunsch.

Plattform

  • place: unterwegs | pc im Modul (optional). Die Marke erscheint in der Modulliste (auch auf dem Handy, wo Level und Minuten ausgeblendet sind), im Kopf der Lektion mit einem Satz dazu und auf der Übungsseite. content:check lehnt andere Werte ab.
  • lang: prose für Übungen mit Fließtext (choice, order, gap, bug, explain, practice): Zeilen brechen um statt seitlich zu scrollen, Proportionalschrift, Beschriftungen für Text statt Code („Lückentext“, „Deine Analyse“, „Eine mögliche Analyse“). Lücken vergleichen nur Wörter, ohne Groß-/Kleinschreibung und Satzzeichen, auch beim Tippen. practice mit Prosa hat ein mitwachsendes Textfeld mit Rechtschreibprüfung und keine Musterlösung (solution ist dort verboten, ohne sie gibt es keinen Button „Lösung zeigen“).
  • lang: harlowe und lang: ablauf für Abläufe, die man durchspielt: output fragt dann „was der Spieler sieht“ statt nach einer Terminalausgabe.
  • „Weiterlernen“ zeigt bei Prosa-Lücken „Lückentext“ (lang steht dafür nur bei Prosa-Übungen in der Modulübersicht).
  • Fingerprints aller bestehenden Übungen sind unverändert (alle 1.952 vor und nach dem Plattform-Commit verglichen).
  • Beispielbereich um das Modul texte erweitert (jede Übungsart mit Prosa, place), HANDBUCH ergänzt: place, prose/harlowe/ablauf, Abschnitt „Kurse ohne Code“ (welche Richtwerte dort sinngemäß gelten), Farbe #F4A3FF vergeben, neue freie Kandidaten.

Prüfung

  • pnpm content:check: alle Bereiche OK. Im neuen Bereich bleiben 11 bewusst akzeptierte Hinweise „keine Vorhersage-Übung (output)“; das HANDBUCH begründet das unter „Kurse ohne Code“.
  • pnpm verify narrative: 162 Übungen ohne ausführbare Prüfung (Fließtext). Den Harlowe-Code (alle Lückenvarianten, die Vorhersage, den Fehler) hat ein Autor in der echten Harlowe-3.3.9-Laufzeit aus Twine 2.12.1 durchgespielt.
  • pnpm test (326), pnpm lint, pnpm typecheck, pnpm build, pnpm bear:check grün.
  • pnpm test:e2e lokal (gegen einen eigenen Dev-Server, siehe unten): 55 von 57 im Gesamtlauf mit vier Workern. Die zwei anderen sind Ladezeiten unter Last: Ein pytest-Block im Testing-Kurs besteht einzeln. Im Viewport-Test lud eine einzige Seite (/postgres/relationales-modell, 1440 px) nicht innerhalb von 5 s, alle Seiten des neuen Bereichs bestanden; ein Worktree mit parallelen Tests lief auf derselben Maschine. Die CI ist hier maßgeblich. Neu: Marken und Prosa-Übungen im Beispielbereich auf 360 px. Die bestehenden Tests laufen automatisch über den neuen Bereich (jede Lektion, jede Übungsart gelöst, 360/768/1440 px ohne Überlauf).
  • pnpm links narrative: 139 URLs, 0 Probleme (HarperCollins blockt automatische Abrufe).
  • Im Browser durchgeklickt auf 360 px und 1280 px: Bereichsseite, Lektionen, jede Übungsart, Werkstatt mit Harlowe.
  • Unabhängiges Review: ein Code-Review und zwei Fachreviews über alle 13 Module und Begleitdateien. Gefunden und behoben: ein hart kodierter Zähler im E2E-Test, Teilantworten in Prosa-Lücken, ein nicht wachsendes Textfeld, eine falsche Textaussage zu Kafka, mehrere nicht eindeutig lösbare Übungen, Behauptungen ohne Beleg auf der Berufsseite, Material, das in mehreren Modulen gleich analysiert wurde (Woyzeck, Rotkäppchen, Hebel, Oxenfree). Gegen die KI-Regel verstieß keine Datei.

Überschneidungen

Grenzen und offene Punkte

  • Offline-Start: Wer die App ohne Netz startet („Offline weiterlesen“), verliert Geschriebenes beim Neuladen. Der Kurs sagt das im ersten Modul. Das Sichern solcher Texte steht als Vorschlag in LRN-30.
  • Tabellen auf dem Handy: In allen Bereichen brechen schmale Tabellenspalten auf 360 px mitten im Wort (overflow-wrap: anywhere in .prose). Eine globale Änderung hätte 40 Tabellen anderer Kurse seitlich scrollen lassen; deshalb nutzt dieser Kurs Listen statt Tabellen, und die Plattform bleibt unverändert.
  • Suchindex: wächst mit dem Kurs auf 4,1 MB unkomprimiert, über Vites Warnschwelle. Er lädt erst beim ersten Öffnen der Suche.
  • AI-Tutor (LRN-6): Ein künftiger Tutor muss für narrative die KI-Regel einhalten (keine inhaltlichen Vorschläge, keine Umarbeitung, keine Bewertung der Wirkung). Steht im geschärften LRN-29.
  • E2E lokal: Parallele Worktrees teilen sich Port 5181; Playwright verwendet dann den Server des anderen Worktrees. Ich habe lokal gegen einen eigenen Server getestet (PLAYWRIGHT_BASE_URL).

🤖 Generated with Claude Code

hernstev97 and others added 2 commits October 16, 2026 23:37
Modules can say where they work: `place: unterwegs` (a phone is enough) or
`place: pc` (longer writing or a tool). The area's module list, the lesson
head and the exercise page show it as a mark; on a phone the mark stays
visible where level and minutes are hidden.

Exercises with `lang: prose` show running text instead of code: lines wrap
at 360 px, the font is proportional, and labels talk about text
("Lückentext", "Deine Analyse"). Cloze answers compare words only, without
case or punctuation, also while typing. `practice` with prose has a
spell-checked text field that grows with the text and no model answer:
`solution` is rejected there, so there is no "Lösung zeigen". "Weiterlernen"
labels prose clozes correctly, because module summaries carry `lang` for
prose exercises.

`lang: harlowe` (Twine code) and `lang: ablauf` (a flow notation explained
in the prompt) make `output` ask what the player sees instead of a terminal
output.

Fingerprints of all existing exercises are unchanged. The fixture area gains
a prose module, the e2e suite tests marks and prose on a phone, and the
HANDBUCH documents the fields plus what the guidelines mean for courses
without code.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
New area `/narrative` ("Erzählhandwerk & interaktive Entscheidungen"):
13 modules in four tracks (figure, perspective and scene; dialogue and
world; interactive decisions; revising and testing), 162 exercises, 54
cards, 50 glossary terms, cheat sheet, career page and four projects. The
capstone is the learner's own decision scene with flow, draft, Twine
prototype, a test with at least two people, revision and reflection.

Nine modules are marked "Unterwegs" and work on a 360 px phone with short
writing tasks; four workshop modules are "Am PC" and hold the longer
writing and the Twine/Harlowe prototype (Twine 2.12.1, Harlowe 3.3.9).

The course teaches general craft with published examples. Public-domain
texts (Goethe, Kafka, Kleist, Hebel, Grimm, Büchner, Schnitzler, Fontane,
Lessing) are quoted verbatim with sources and were checked line by line
against the source texts; protected works and games are described and
linked. None of the 44 writing tasks has a model answer, and nothing
suggests stories, plots, characters or dialogue for the learner's own game.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@coderabbitai

coderabbitai Bot commented Oct 16, 2026

Copy link
Copy Markdown

Important

  • 🔍 Trigger review

This repository does not receive automatic reviews because it has fewer than 10 stars.

⚙️ Run configuration
  • Configuration used: defaults
  • Review profile: CHILL
  • Plan: Advanced
  • Run ID: 414b6df3-f69d-4e4d-b2e5-cbc72140bba1
  • Autofix · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@hernstev97
hernstev97 merged commit dc8d28e into main Oct 16, 2026
16 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant