@model StoryIntelligenceProgressViewModel @{ ViewData["Title"] = "Review knowledge"; const int previewLimit = 25; var knowledgeCandidates = Model.KnowledgeReview.Candidates.Take(previewLimit).ToList(); var hiddenCandidateCount = Math.Max(0, Model.KnowledgeReview.PendingCandidateCount - knowledgeCandidates.Count); }

Story Intelligence

Review Knowledge

Review facts, discoveries, beliefs, and suspicions that need an author decision.

@if (TempData["OnboardingStoryIntelligenceError"] is string error) {
@error
} @if (TempData["OnboardingStoryIntelligenceMessage"] is string message) {
@message
}
@if (Model.KnowledgeReview.Candidates.Count == 0) {
No knowledge decisions are waiting.

Knowledge is already up to date, or there were no knowledge changes ready to import from the stored scene analysis.

Back to Review Centre
} else {
@if (hiddenCandidateCount > 0) { Showing @knowledgeCandidates.Count.ToString("N0") of @Model.KnowledgeReview.PendingCandidateCount.ToString("N0") pending }
@for (var i = 0; i < knowledgeCandidates.Count; i++) { var candidate = knowledgeCandidates[i];
@candidate.KnowledgeStatement @candidate.CharacterName - @candidate.KnowledgeStateName @candidate.Confidence
Character
@candidate.CharacterName
Knowledge statement
@candidate.KnowledgeStatement
First scene
@Display(candidate.FirstScene)
Existing match
@(candidate.ExistingKnowledgeLabel ?? "None")
@if (!string.IsNullOrWhiteSpace(candidate.ExampleScene)) {
Example scene

@candidate.ExampleScene

} @if (!string.IsNullOrWhiteSpace(candidate.Evidence)) {
Evidence

@candidate.Evidence

} @if (candidate.IsExistingMatch) {
Possible existing knowledge

This fact may already exist in PlotDirector. Choose whether to link it or create a separate knowledge record.

}
Decision
}
@if (hiddenCandidateCount > 0) { Save this batch to continue with @hiddenCandidateCount.ToString("N0") more knowledge decision@(hiddenCandidateCount == 1 ? string.Empty : "s"). } Back to Review Centre @if (Model.KnowledgeReview.HasPreviousPage) { Previous } @if (Model.KnowledgeReview.HasNextPage) { Next }
}
@section Scripts { } @functions { private static string Display(string? value) => string.IsNullOrWhiteSpace(value) ? "Not detected" : value; }