Skip to content

Sammel-Merge: PRs #1–#4 und Leser-Simulation - #5

Closed
leonatwork wants to merge 24 commits into
mainfrom
claude/merge-prs-worktrees-main-f0ad94
Closed

leonatwork wants to merge 24 commits into
mainfrom
claude/merge-prs-worktrees-main-f0ad94

Conversation

@leonatwork

Copy link
Copy Markdown
Owner

Führt alle offenen PRs und die aktuelle, noch nicht committete Arbeit aus den lokalen Worktrees in einem Branch zusammen.

Enthalten

Konfliktauflösung und Abgleich

Nicht enthalten (veraltet bzw. kein App-Code)

  • worktree-agent-*, plotwerk-name-availability, plotwerk-linkedin-post: Stand vor der neuen Git-Historie, Inhalte längst in main
  • plotwerk-linkedin-carousel, linkedin/: Marketing-Material, nicht committet

Prüfung

  • npm run typecheck sauber
  • npm test: 119 Testdateien, 1216 Tests grün
  • npm run sperrliste: keine Treffer

🤖 Generated with Claude Code

leonatwork and others added 24 commits October 12, 2026 23:11
Der Prompt verlangt den Eigennamen als Namen, Spitznamen und Bezeichnungen als
Aliase. Schlägt die KI trotzdem eine Bezeichnung mit Artikel vor und steht ein
Eigenname unter den Aliasen, werden beide getauscht. Ein Vorschlag, dessen Alias
eine angelegte Figur trägt, gilt als bereits angelegt; früher Verworfenes kommt
auch unter einem anderen Namen derselben Person nicht wieder.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
- Figurenkarte: „Mit anderer Figur zusammenführen …“ (Richtung umkehrbar) und
  Hinweis bei gleichnamigen Figuren. Die bleibende Figur übernimmt Namen als
  Spitznamen, Beziehungen, Planfelder und Notizen; alle Verweise im Projekt
  (Beziehungen, Gruppen, Kapitelpläne, Szenen, Zeitleiste, Bögen, Anmerkungen,
  Recherche, Entscheidungen, KI-Ablagen, [[figur:…]]-Links) werden umgehängt.
- Gruppen: „+ Gruppe“ im Beziehungsnetz, „+ Neue Gruppe …“ auf der
  Figurenkarte, „Gruppe löschen“ im Inspektor. Eine neue Gruppe bekommt sofort
  eine Fläche um ihre Mitglieder.
- Gruppenauswahl auf der Figurenkarte setzt jetzt auch gruppe.mitglieder
  (vorher nur figur.gruppe, die Figur fehlte in Fläche und Präsenz).
- „Auch genannt“ heißt jetzt „Auch genannt / Spitzname“.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
- waagerecht mit gemessener Breite im Papier geklemmt, Panel ebenso
- klappt unter die Auswahl, wenn oben kein Platz ist; Auswahl oberhalb des
  sichtbaren Teils → Leiste oben im Bild
- misst bei Größenänderung (ResizeObserver, Fenster), Scrollen und Fokus-Modus
  neu; schließt beim Laden eines anderen Kapitels
- Escape schließt erst das Panel, dann die Leiste (bis zur nächsten Auswahl),
  ohne den Fokus-Modus zu beenden
- Mausmerker löst sich auch, wenn die Taste außerhalb des Fensters losgelassen
  wurde; Ziehen ab dem Papierrand zählt als Mausauswahl
- ⌘A: Leiste mit Fett/Kursiv
- ⌥F10 holt den Fokus in die Leiste, ←/→/Pos1/Ende wandern; Fokus in der
  Leiste hält sie offen
- „Notiz“ im Fokus-Modus verlässt ihn und öffnet den Entwurf am Rand
- Ü-Knopf mit festem Label und aria-pressed
- Panel-Mechanismus für weitere Aktionen mit eigenen Eingabefeldern

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
… in Tests

Git-Hooks (pre-commit, commit-msg, pre-push) prüfen Änderungen, Commit-
Nachrichten und Branch-Namen gegen eine Liste außerhalb des Repos.
npm install schaltet die Hooks über core.hooksPath ein.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Signed-off-by: Leon Machnik <98738343+leonatwork@users.noreply.github.com>
- F-09: Panel „Figur“ in der Auswahl-Leiste: markierten Text (ein Absatz,
  2–60 Zeichen, ohne Artikel) als neue Figur anlegen oder per Suche als
  Spitznamen einer Figur übernehmen; an der Stelle erkannte Figuren stehen
  oben; Fokus springt ins Suchfeld, ↑↓/Enter/Escape
- F-10: Figurvorschläge, deren Namen eine angelegte Figur trägt, werden zu
  „Spitznamen für X“ (FigurVorschlag.ziel) statt still verworfen zu werden;
  Übernehmen ergänzt die Spitznamen
- Erwähnungsvorschläge: „Als Spitznamen merken“ bestätigt die Stelle und
  erkennt den Wortlaut künftig immer
- core/figuren/namen.ts: spitznameAusText, mitSpitzname, figurenSuchen

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Kapitel planen:
- „Geplante Szene“ heißt jetzt „Kurzbeschreibung“ (Feld szene unverändert)
- Neues optionales Feld „Funktion im Buch“ (Opening, Wendepunkt … oder eigene),
  als Etikett auf der Karte; geht nicht an die KI

Stränge (Akte planen → Stränge):
- Strang-Inspektor: Haupt-/Nebenhandlung (rolle), „Wofür steht der Strang?“
  (beschreibung), Farbe; Haupthandlung oben im Raster und in der Legende
- KI-Aufgabe „Stränge vorschlagen“ (core/ki/straenge.ts): Zuordnungen von
  Kapiteln, neue Stränge mit Rolle und Zweck, Rückfragen – je mit wörtlichem
  Beleg; Übernehmen/Verwerfen/Antworten, Ablage .plotwerk/strang-vorschlaege.json
- E12: Strang-Angaben gehen nur im Aufgabentext dieser Aufgabe mit
  (freigegeben 2026-10-12)

Lose Enden (bisher „Fäden“):
- Umbenennung in der Oberfläche; interne Namen bleiben
- „Als Strang übernehmen“ legt aus einem losen Ende einen Strang an und trägt
  ihn in alle Kapitel ein, in denen es vorkommt
- Umschalter Board | Tabelle: lose Enden × Kapitel, gruppiert nach Strang

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Signed-off-by: Leon Machnik <98738343+leonatwork@users.noreply.github.com>
…uren (Phase 3)

Neuer lokaler Hinweistyp „figuren“ (core/figuren/hinweise.ts, über
hinweiseBerechnen):
- F-11: Figur wird zuerst über einen Spitznamen erkannt, der Name fällt erst
  später (nicht bei „bewusst vage“)
- F-12: Namen zweier Figuren im Text unterscheiden sich nur in einem
  Buchstaben oder beginnen gleich und sind gleich lang
- F-13: Figur kommt N Kapitel mit Text lang nicht vor (Kapitelplan zählt als
  Vorkommen); Standard Hauptfigur 3, Nebenfigur 6; Figur.ruheSchwelle (null =
  nie) mit Auswahl „Ruhe melden“ auf der Figurenkarte; ruhende Kapitel im
  Auftrittsstreifen gelb unterstrichen
Schlüssel hängen an Figur und Namen bzw. Kapitel, damit Entscheidungen
Textänderungen überstehen.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
- FigurRolle „statist“ (additiv); Listen sortieren nach Rolle (nachRolle)
- Figurenliste: eigener, eingeklappter Bereich „Statisten“ mit Kapiteln;
  offen bei Suche oder gewähltem Statisten
- Figurenkarte: Rolle „Statist“; nur ausgefüllte Planfelder (übrige auf
  Klick), Bogen nur, wenn schon geplant
- Beziehungsnetz: Statisten standardmäßig aus, Filter-Chip „Statisten“
- KI-Vorschläge: Rolle statist im Prompt und Schema, „Alle Statisten
  übernehmen“
- Hinweis „zur Nebenfigur machen?“ ab drei Kapiteln; Statisten ruhen nie und
  zählen nicht bei verwechselbaren Namen; nie im Exposé

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…AI-Modus

- core/funktionen: Katalog mit 22 Funktionen, Presets (Anfänger, Mittel,
  Profi, Schriftsteller), Abhängigkeiten, eigene Presets, KI-Last (E15)
- Assistent beim ersten Start; Bestandsnutzer behalten alles
- Einstellungen → Funktionen: anpassen, Presets speichern, erneut einrichten
- Ausgeblendete Funktionen fehlen in Seitenleiste, Schnellsuche und
  Ansichten; Aufruf über Menü oder Kürzel fragt nach und blendet ein
- KI-Umfang: ohne Plan-Abgleich keine Plan-Felder im Prüfkontext
- No-AI-Modus sperrt den KI-Transport inkl. Token-Zählung (E16)
- Doku: Anforderungen FU-01–FU-08, Architektur E15/E16, Handbuch, Abnahme

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Signed-off-by: Leon Machnik <98738343+leonatwork@users.noreply.github.com>
- Mitgliedschaft über gruppe.mitglieder, mehrere Gruppen je Figur;
  figur.gruppe ist die Hauptgruppe (Farbe, Platz im Netz), rückt beim
  Verlassen nach
- Figurenkarte: Gruppen als Chips (★ Hauptgruppe, Rolle, ×), „+ Gruppe …“
- Gruppe.rollen (additiv): Rolle je Mitglied im Inspektor, als Untertitel der
  Karte im Netz; Zusammenführen hängt Rollen um
- Netz: Mitglieder mit Karte außerhalb der Fläche als gestrichelter Verweis;
  Spur-Platzhalter nur, wenn keine Mitgliedskarte in der Fläche liegt

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
- core/figuren/besetzung.ts: wichtigste Art je Figur und Kapitel, nur im
  Kapitelplan als „plan“, Summen je Kapitel
- Bereich Figuren: Umschalter „Karte · Bögen · Besetzung“; Matrix nach Rolle
  gruppiert (Statisten eingeklappt), ruhende Strecken gelb unterstrichen,
  Zelle springt zur ersten Stelle, Name öffnet die Figurenkarte

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
- Figurenkarte: Spitznamen als Chips (Enter/Komma fügt hinzu, × und
  Rücktaste entfernen); Klick öffnet den Kontext: wer nennt die Figur so,
  ab welchem Kapitel, Notiz
- Figur.spitznamen (additiv), aliase speist weiter die Erkennung; Kontext zu
  entfernten Namen fällt weg; Zusammenführen nimmt ihn mit
- Hinweis „Spitzname schon in Kap. X, geplant ab Kap. Y“

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
- core/abgabe/personen.ts: Figuren nach Gruppen (Hauptgruppe) oder Rolle,
  je Eintrag Name, Spitznamen, Rolle in der Gruppe und Kurzbeschreibung;
  Statisten, Spitznamen, geplante Figuren wählbar; „nur bis Kapitel X“ gegen
  Spoiler; „bewusst vage“ und private Felder nie
- Abgabe-Dialog: Reiter „Personen“ (.docx oder Markdown, über das
  Exposé-Gerüst); bei Normseite und EPUB „Personenverzeichnis voranstellen“

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
- KI-Aufgabe „fakten“ (core/ki/fakten.ts): je Figur Merkmal, Wert und
  wörtlicher Beleg; ein Request für das Buch oder eine Figur; Merkmal/Wert
  begrenzt, Figur nur aus dem Schema; die KI vergleicht nichts
- core/figuren/fakten.ts: Ablage .plotwerk/figurenfakten.json mischen,
  verworfene Angaben kommen nicht wieder; Widersprüche (gleiches Merkmal,
  unverträgliche Werte) und Abweichungen vom Planfeld gleichen Namens als
  Hinweise „Prüfen“ mit Figur-Bezug
- Figurenkarte „Aus dem Text“: Angaben je Merkmal mit Kapitel, ⚠ bei
  Widerspruch/Planabweichung, × verwirft; Dialog „Fakten aus dem Text
  sammeln“ mit Kostenschätzung
- Demo-KI: Pauls Auto als Saab und als Volvo (Widerspruch), ein erfundenes
  Zitat zum Verwerfen
- Anforderungen F-09–F-17, A-05/A-06, AB-06 und Abnahme nachgetragen; Plan
  auf „umgesetzt“

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…OpenRouter, Qwen)

core/ki baut weiter Messages-API-Bodys; der Transport übersetzt nach Chat
Completions und zurück (core/ki/openai.ts). Der Rust-Kern schickt an
/chat/completions mit optionalem Bearer-Schlüssel (Konto „openai-kompatibel“,
http nur für localhost, Zeitlimit 30 min).

- Vorlagen mit Standard-URL, Antwortformat (json_schema bzw. json_object) und
  Effort-Übergabe; Modelle ohne Claude-Standard, leere Rolle = Prüfmodell
- optionale Kontextlänge: zu große Anfragen werden vorher abgelehnt statt still
  gekürzt
- kein count_tokens (Schätzung), keine Listenpreise (Kosten „keine Angabe“,
  Ablagen ohne kostenUsd)
- Einstellungsdialog mit Dienst, Basis-URL, Modellen, Kontextlänge
- Entscheidung E15 in docs/architektur.md, Details in core/ki/README.md

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Signed-off-by: Leon Machnik <98738343+leonatwork@users.noreply.github.com>
# Conflicts:
#	core/projekt/extern.ts
#	core/projekt/lesen.ts
#	core/projekt/schreiben.ts
#	src/app/dialoge.tsx
#	src/features/hinweise/hinweise.en.test.tsx
#	src/state/store.ts
# Conflicts:
#	src/state/slices/figurenbogen.ts
# Conflicts:
#	docs/architektur.md
#	src/features/beziehungen/index.tsx
#	src/features/figuren/Figurenkarte.tsx
#	src/features/figuren/index.tsx
…OpenAI-kompatibel)

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Signed-off-by: Leon Machnik <98738343+leonatwork@users.noreply.github.com>
…kennung)

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Signed-off-by: Leon Machnik <98738343+leonatwork@users.noreply.github.com>
…gen als Faden oder Notiz übernehmen

Aus dem Worktree reader-simulations-save-todos (bisher nicht committet):
- mehrere Simulationen je Kapitel (id, erledigt), Auswahl im Dialog und in der Seitenspalte
- Status-Meldung für Hintergrundläufe (SimulationStatus)
- offene Fragen als Faden planen oder als Notiz an die Belegstelle heften; Zuordnungen wandern in die nächste Simulation
- Kosten „keine Angabe“ bei OpenAI-kompatiblen Diensten beibehalten

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Signed-off-by: Leon Machnik <98738343+leonatwork@users.noreply.github.com>
@leonatwork

Copy link
Copy Markdown
Owner Author

Ersetzt durch #6 (gleicher Code, fehlende DCO-Sign-offs ergänzt).

@leonatwork leonatwork closed this Oct 12, 2026
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