@model StoryIntelligenceDiagnosticsViewModel @{ ViewData["Title"] = "Story Intelligence Diagnostics"; }

Admin utility

Story Intelligence Diagnostics

Build and configuration checks only. This page does not make a live OpenAI request.

@if (!string.IsNullOrWhiteSpace(Model.ErrorMessage)) {
@Model.ErrorMessage
}

OpenAI configuration

Model

@Model.Model

API key

@StatusText(Model.ApiKeyConfigured)

Client

@StatusText(Model.ClientConstructed)

Max output tokens
@Model.MaxOutputTokens.ToString("N0")
Chapter Structure model
@Model.ChapterStructureModel
Scene Intelligence model
@Model.SceneIntelligenceModel
Timeout
@Model.TimeoutSeconds seconds
Live API status
@Model.ConnectionStatus

Prompt repository

Repository

@StatusText(Model.PromptRepositoryHealthy)

Scene prompt

@StatusText(Model.ScenePromptLoaded)

Prompt version

@Model.PromptVersion

Substitution

@StatusText(Model.RuntimeSubstitutionWorks)

Prompt file
@Model.PromptFileName
Prompt length
@Model.ScenePromptLength.ToString("N0") characters

Manual dry run

This admin-only tool performs live API verification by loading the prompt, substituting test scene data and making one OpenAI request with extraction-focused settings. It does not save data.

Open dry run Open chapter structure test Open combined pipeline test
@functions { private static string StatusText(bool value) => value ? "Configured" : "Missing"; }