PlotDirector/docs/story-intelligence/import-visualisation-archive.md

6.5 KiB

Story Intelligence Import Visualisation Archive

Purpose

This document preserves the removed Story Intelligence import visualisation so the design can be revisited without leaving it active in the product.

Original Rationale

The visualisation was built to make long-running manuscript import feel alive. It showed PlotDirector reading scenes, discovering characters, assigning locations and assets, drawing relationships, and replaying persisted import sessions. The aim was reassurance and transparency during expensive AI-driven work.

User Experience

The active experience lived behind development routes and was also linked from the onboarding import progress page as "Replay Story Intelligence". Users could open a full-screen theatre-style view that selected a live or persisted import session, animated progress, and showed a scene-by-scene story map.

Layout

The page used a dark full-screen shell with a header status strip, circular progress treatment, left-side activity and discovery panels, central living story stage, character/location/asset presentation, SVG relationship lines, a scene ribbon/timeline, right-side insight panels, replay controls, diagnostics, and rebuild controls.

Look And Feel

The design used a cinematic blue/gold visual style, translucent panels, soft glow states, animated graph lines, circular portraits, visual asset chips, and compact diagnostics. Reduced-motion handling existed in CSS and JavaScript.

Major Screens And Components

  • /Development/StoryIntelligenceExperience
  • /Development/StoryIntelligenceExperience?mode=simulation
  • /Development/StoryIntelligenceExperience?importSessionId=...&mode=replay
  • /Development/StoryIntelligenceIllustrationDiagnostics
  • /api/story-intelligence/runs/{runId}/visualisation-snapshot
  • /api/story-intelligence/import-sessions/{importSessionId}/visualisation-snapshot

Animation Behaviour

The JavaScript polled snapshot endpoints, reconciled scene/entity state, animated current-scene changes, drew SVG relationship connections, preloaded image assets, managed replay stepping, and updated timeline/ribbon state.

Progress Behaviour

The visualisation consumed persisted Story Intelligence run state and SignalR-progress-adjacent data. It was an observer in principle, but the development rebuild route could trigger Story Memory rebuild and optional image demand creation, which made the visual layer too close to active import processing.

Discoveries Shown

It displayed detected characters, locations, assets, relationships, knowledge threads, questions, scene summaries, evidence snippets, observations, and diagnostic labels.

Character Presentation

Characters were rendered as weighted stage nodes with names, roles, relevance, image resolution state, fallback portraits, and evidence-derived presentation metadata. Some matching logic used Story Memory and illustration metadata to pick or queue portrait candidates.

Location Presentation

Locations were rendered as current-scene place cards or stage nodes, backed by scene setting, location extraction, Story Memory locations, and optional illustration-library assignment.

Evidence Presentation

Evidence appeared as compact cards and text items. Some scene observations were useful for human review, but some existed primarily to make the visualisation feel intelligent.

Image Presentation

The visualisation used prototype SVG assets, approved illustration-library images, persisted Story Memory assignments, and image-resolution diagnostics. Generated image demand was originally tied too closely to Story Memory and visualisation rebuild behaviour.

Completion Behaviour

The visualisation could replay completed persisted results. It did not need to drive import completion and should not have been part of the normal user path.

SignalR Behaviour

The ordinary import progress page still uses the shared Story Intelligence progress hub. The removed visualisation used polling snapshot endpoints and client-side reconciliation rather than being required for background processing.

Major Runtime Classes

  • PlotLine.Controllers.DevelopmentController
  • PlotLine.Controllers.StoryIntelligenceVisualisationController
  • PlotLine.Services.StoryIntelligenceVisualisationSnapshotService
  • PlotLine.Services.StoryIntelligenceExperiencePrototypeData
  • PlotLine.Services.StoryIntelligenceIllustrationMatchingService
  • PlotLine.ViewModels.StoryIntelligenceExperiencePrototypeViewModels
  • PlotLine.Views.Development.StoryIntelligenceExperience
  • PlotLine.Views.Development.StoryIntelligenceIllustrationDiagnostics

Archived Source Snapshot

Representative self-contained UI/source artefacts are preserved under:

docs/story-intelligence/visualisation-archive/runtime-source/

This includes Razor markup, CSS, JavaScript, prototype SVG assets, the visualisation view models, and prototype data builder. This archive is outside the compiled app and must not participate in runtime.

Backend classes that were too coupled to duplicate in full remain recoverable through Git at safety tag:

pre-visualisation-removal-2026-08-24

Database Dependencies

The visualisation consumed persisted Story Intelligence run/result tables, Story Intelligence book import session tables, illustration library tables, Story Memory tables, illustration assignment tables, and illustration demand tables. The lean import path keeps persisted import/progress data and Story Memory where product features consume it, but removes active snapshot/replay UI.

Story Intelligence Dependencies

The visualisation depended on chapter structure results, scene intelligence results, persisted scene summaries, characters, locations, assets, relationships, knowledge changes, questions, observations, Story Memory assignments, and character profile updates.

AI Dependencies

Opening the visualisation should not have required AI. The problematic coupling was indirect: rebuild and Story Memory/image demand paths could create additional work intended for the visual experience. The lean architecture keeps AI for necessary import interpretation and profile updates, but image generation is off by default and visualisation no longer triggers analysis or demand.

Lessons Learned

A future visualisation may observe information naturally generated by the import pipeline, but it must never cause additional analysis or AI work.

Visualisation should be a passive read model over durable import state. It should never introduce prompt fields, persistence, retries, image demand, or Story Memory work that the product does not otherwise need.