{
  "dataset": {
    "name": "Nartopo Narrative Topology Corpus",
    "version": "1.1.0",
    "works_count": 176,
    "source": "mistakeknot/Nartopo@d80c844d430e",
    "generator": "scripts/generate-works-json.ts (pinned research inputs)",
    "homepage": "https://nartopo.com/dataset",
    "license": "No license selected yet — all rights reserved; contact the operator for reuse terms."
  },
  "field_dictionary": [
    {
      "field": "baseline_quadrant_scores",
      "description": "Original baseline judgments retained for comparison; not model-run results."
    },
    {
      "field": "provenance",
      "description": "Exact analysis and artifact digests, source path and observed digest, edition status, and separate source verification, bibliography and human review states. A digest observed during this audit does not prove which bytes a historical run read."
    },
    {
      "field": "slug",
      "description": "Stable work key ({author}_{title} natural key; also the /work/{slug} route segment)"
    },
    {
      "field": "title / author / year / medium",
      "description": "Bibliographic identity; medium ∈ book | collection | short_story"
    },
    {
      "field": "genre_tags / tropes",
      "description": "Genre labels and TV-Tropes-style trope tags as authored in the corpus files"
    },
    {
      "field": "quadrant_scores",
      "description": "Six structural axes, 0–1 floats: time_linearity (Linear → Fractured); pacing_velocity (Action-Driven → Observational); threat_scale (Individual → Systemic); protagonist_fate (Victory → Assimilation); conflict_style (Western Combat → Kishōtenketsu); price_type (Physical → Ideological)"
    },
    {
      "field": "ntsmr",
      "description": "Per-run NTSMR pipeline scores keyed by run label (pipeline_version, model, reasoning_effort, six-axis scores); primary_run_label marks the run the site displays"
    },
    {
      "field": "todorov_stages",
      "description": "Prose plot-beat breakdown under the Todorov equilibrium framework (equilibrium → disruption → recognition → repair → new equilibrium)"
    },
    {
      "field": "characters",
      "description": "Merged character records (name, aliases, role, summary) extracted by the analysis pipeline"
    },
    {
      "field": "frameworks_mapped",
      "description": "Which of the 17 narrative-analysis frameworks have been applied to this work"
    },
    {
      "field": "score_reliability",
      "description": "Model-run agreement only, not source verification or human review: state ∈ contested | replicated-agree | unreplicated; within-pipeline-version spread, threshold 0.2. Score-only runs may share extraction lineage."
    }
  ],
  "works": [
    {
      "slug": "george_orwell_1984",
      "title": "1984",
      "author": "George Orwell",
      "year": 1949,
      "medium": "book",
      "genre_tags": [],
      "tropes": [],
      "quadrant_scores": {
        "time_linearity": 0.28,
        "pacing_velocity": 0.72,
        "threat_scale": 0.88,
        "protagonist_fate": 0.95,
        "conflict_style": 0.75,
        "price_type": 0.82
      },
      "provenance": {
        "analysis_run": "NTSMR-2.5-claude-sonnet-4-6-low",
        "analysis_body_sha256": "5245e7cf23847a2f284f09129aa098baac84ffe7b5c9b45e9026fce14cdd0efe",
        "synthesis": {
          "path": "nartopo-tools/artifacts/george_orwell_1984.md.ntsmr-2-5-claude-sonnet-4-6-low.synthesis.json",
          "sha256": "5a2db6d2c2ae05d9c3e6f58e2ad22722a8a0bf4985bb6b7426b645d80af61c5e"
        },
        "report": {
          "path": "nartopo-tools/artifacts/george_orwell_1984.md.ntsmr-2-5-claude-sonnet-4-6-low.report.json",
          "sha256": "3f13d73793cfead354b651e867a54e045f8007a55e39b2171cedbe93570c6623"
        },
        "source": {
          "path": "George Orwell/1984.txt",
          "sha256": "4a614c68557db7a1620c2848883e970b9b601c1c55e3cb12834d6a6dfc0f6858",
          "digest_observed_at": "2026-09-09",
          "digest_at_analysis_run": null,
          "edition": null,
          "edition_status": "unresolved"
        },
        "pipeline_revision_at_run": null,
        "verification": {
          "source": "unverified",
          "human_review": "unreviewed",
          "bibliography": "unverified"
        },
        "issues": [],
        "todorov_status": "recovered-from-synthesis",
        "work_identity": {
          "title": "1984",
          "author": "George Orwell",
          "year": 1949
        }
      },
      "ntsmr": {
        "version": "2.5",
        "primary_run_label": "NTSMR-2.5-claude-sonnet-4-6-low",
        "runs": {
          "NTSMR-2.4-claude-sonnet-4-6-low": {
            "pipeline_version": "2.4",
            "backend": "claude",
            "model": "claude-sonnet-4-6",
            "scores": {
              "time_linearity": 0.28,
              "pacing_velocity": 0.25,
              "threat_scale": 0.52,
              "protagonist_fate": 0.45,
              "conflict_style": 0.38,
              "price_type": 0.35
            },
            "score_space": "site-v1",
            "reasoning_effort": "low"
          },
          "NTSMR-2.5-claude-sonnet-4-6-low": {
            "pipeline_version": "2.5",
            "backend": "claude",
            "model": "claude-sonnet-4-6",
            "scores": {
              "time_linearity": 0.28,
              "pacing_velocity": 0.72,
              "threat_scale": 0.88,
              "protagonist_fate": 0.95,
              "conflict_style": 0.75,
              "price_type": 0.82
            },
            "score_space": "site-v1",
            "reasoning_effort": "low"
          },
          "NTSMR-2.5-minimax/minimax-m2.5": {
            "pipeline_version": "2.5",
            "backend": "openrouter",
            "model": "minimax/minimax-m2.5",
            "scores": {
              "time_linearity": 0.2,
              "pacing_velocity": 0.75,
              "threat_scale": 0.85,
              "protagonist_fate": 0.9,
              "conflict_style": 0.8,
              "price_type": 0.75
            },
            "score_space": "site-v1"
          },
          "NTSMR-2.5-qwen/qwen3.5-plus-02-15": {
            "pipeline_version": "2.5",
            "backend": "openrouter",
            "model": "qwen/qwen3.5-plus-02-15",
            "scores": {
              "time_linearity": 0.2,
              "pacing_velocity": 0.75,
              "threat_scale": 0.85,
              "protagonist_fate": 0.95,
              "conflict_style": 0.8,
              "price_type": 0.85
            },
            "score_space": "site-v1"
          },
          "NTSMR-2.5-deepseek/deepseek-v3.2": {
            "pipeline_version": "2.5",
            "backend": "openrouter",
            "model": "deepseek/deepseek-v3.2",
            "scores": {
              "time_linearity": 0.2,
              "pacing_velocity": 0.75,
              "threat_scale": 0.9,
              "protagonist_fate": 0.9,
              "conflict_style": 0.7,
              "price_type": 0.8
            },
            "score_space": "site-v1"
          },
          "NTSMR-2.5-qwen/qwen3.5-397b-a17b": {
            "pipeline_version": "2.5",
            "backend": "openrouter",
            "model": "qwen/qwen3.5-397b-a17b",
            "scores": {
              "time_linearity": 0.2,
              "pacing_velocity": 0.75,
              "threat_scale": 0.85,
              "protagonist_fate": 0.9,
              "conflict_style": 0.75,
              "price_type": 0.8
            },
            "score_space": "site-v1"
          },
          "NTSMR-2.5-z-ai/glm-4.7": {
            "pipeline_version": "2.5",
            "backend": "openrouter",
            "model": "z-ai/glm-4.7",
            "scores": {
              "time_linearity": 0.15,
              "pacing_velocity": 0.75,
              "threat_scale": 0.9,
              "protagonist_fate": 0.95,
              "conflict_style": 0.8,
              "price_type": 0.85
            },
            "score_space": "site-v1"
          },
          "NTSMR-2.5-moonshotai/kimi-k2.5": {
            "pipeline_version": "2.5",
            "backend": "openrouter",
            "model": "moonshotai/kimi-k2.5",
            "scores": {
              "time_linearity": 0.25,
              "pacing_velocity": 0.7,
              "threat_scale": 0.9,
              "protagonist_fate": 0.95,
              "conflict_style": 0.75,
              "price_type": 0.8
            },
            "score_space": "site-v1"
          },
          "NTSMR-2.5-z-ai/glm-5": {
            "pipeline_version": "2.5",
            "backend": "openrouter",
            "model": "z-ai/glm-5",
            "scores": {
              "time_linearity": 0.2,
              "pacing_velocity": 0.75,
              "threat_scale": 0.85,
              "protagonist_fate": 0.95,
              "conflict_style": 0.8,
              "price_type": 0.85
            },
            "score_space": "site-v1"
          },
          "NTSMR-2.5-balanced-glm-5+deepseek-v3.2": {
            "pipeline_version": "2.5",
            "backend": "openrouter",
            "model": "balanced-routing",
            "scores": {
              "time_linearity": 0.2,
              "pacing_velocity": 0.8,
              "threat_scale": 0.85,
              "protagonist_fate": 0.9,
              "conflict_style": 0.8,
              "price_type": 0.8
            },
            "score_space": "site-v1",
            "score_only": true,
            "source_run_label": "NTSMR-2.5-claude-sonnet-4-6-low"
          },
          "NTSMR-2.5-gemini-3.1-pro-preview": {
            "pipeline_version": "2.5",
            "backend": "gemini",
            "model": "gemini-3.1-pro-preview",
            "scores": {
              "time_linearity": 0.2,
              "pacing_velocity": 0.8,
              "threat_scale": 0.85,
              "protagonist_fate": 0.9,
              "conflict_style": 0.8,
              "price_type": 0.8
            },
            "score_space": "site-v1"
          }
        }
      },
      "todorov_stages": {
        "equilibrium": "Winston Smith exists within the Party's enforced stasis: employed at the Ministry of Truth falsifying records, surveilled by telescreens, performing compulsory rituals such as the Two Minutes Hate, and outwardly compliant. The opening scenes establish this as the operational norm — chocolate rations are manipulated without protest, history is rewritten as routine, and the population mechanically chants devotion to Big Brother.",
        "disruption": "Julia's note reading 'I LOVE YOU' detonates into Winston's rigidly surveilled life, catalyzing a sustained transgression: a clandestine sexual and political relationship, the renting of Charrington's room as a private sanctuary, and ultimately the visit to O'Brien seeking Brotherhood membership — all acts that place Winston outside the Party's total claim on inner and outer life.",
        "recognition": "Winston and Julia explicitly discuss the certainty of their eventual capture and debate what constitutes true betrayal, agreeing that internal feeling rather than confession is the real line. Winston also reflects that the proles retain humanity while Party members do not, and reads Goldstein's Book, which gives him systematic understanding of the Party's perpetuation of power as an end in itself — confirming that no escape exists within the system.",
        "repair": "Winston enters the Ministry of Love and undergoes O'Brien's prolonged torture: starvation, humiliation, the dial, the fingers-as-five sequence, and the epistemological assault forcing acceptance that reality is whatever the Party decrees. Winston attempts internal resistance, clinging to the axiom that two plus two make four and believing torturers cannot alter the inner heart — but this resistance is progressively dismantled across the interrogation sessions.",
        "new_equilibrium": "Faced with the rats in Room 101, Winston breaks completely and betrays Julia. Afterwards he sits at the Chestnut Tree Café drinking Victory Gin, his inner resistance dissolved; a war-victory bulletin triggers weeping and he experiences ecstatic surrender, having at last learned to love Big Brother. The novel closes on this annihilated stasis — a new equilibrium defined not by stability but by the permanent, total capture of the self."
      },
      "characters": [
        {
          "name": "Winston Smith",
          "slug": "winston-smith",
          "aliases": [
            "Smith",
            "6079 Smith W."
          ],
          "role": "Protagonist",
          "summary": "A broken prisoner undergoing systematic torture and re-education in the Ministry of Love, who struggles to maintain his hatred of the Party and his love for Julia before ultimately betraying her and accepting Big Brother."
        },
        {
          "name": "Goldstein, Emmanuel",
          "slug": "goldstein-emmanuel",
          "aliases": [
            "Goldstein",
            "Enemy of the People"
          ],
          "role": "Scapegoat",
          "summary": "The Party's designated enemy and alleged leader of the Brotherhood, whose image appears during the Two Minutes Hate ritual."
        },
        {
          "name": "O'Brien",
          "slug": "obrien",
          "aliases": [],
          "role": "Antagonist",
          "summary": "Inner Party member and Thought Police operative who personally oversees Winston's torture and re-education, delivering lectures on power and the Party's vision while systematically breaking Winston's mind and spirit."
        },
        {
          "name": "Julia",
          "slug": "julia",
          "aliases": [
            "the dark-haired girl",
            "the girl"
          ],
          "role": "Love interest",
          "summary": "A young woman who works in the Fiction Department, outwardly orthodox but privately rebellious, who initiates an affair with Winston and views rebellion as personal rather than ideological."
        },
        {
          "name": "Syme",
          "slug": "syme",
          "aliases": [],
          "role": "Minor character",
          "summary": "A colleague working on the Newspeak dictionary who explains the language's purpose to narrow thought; Winston predicts his vaporization."
        },
        {
          "name": "Parsons",
          "slug": "parsons",
          "aliases": [],
          "role": "Minor character",
          "summary": "Winston's neighbor, arrested after his seven-year-old daughter denounced him for sleep-talking against Big Brother; expresses pride in her vigilance"
        },
        {
          "name": "Katharine",
          "slug": "katharine",
          "aliases": [],
          "role": "Minor character",
          "summary": "Winston's estranged wife who submitted to the Party's sexual puritanism, treating intercourse as 'duty to the Party.'"
        },
        {
          "name": "The instructress",
          "slug": "the-instructress",
          "aliases": [],
          "role": "Minor character",
          "summary": "A woman on the telescreen who leads the morning exercise session and calls out Winston for not bending low enough."
        },
        {
          "name": "Emmanuel Goldstein",
          "slug": "emmanuel-goldstein",
          "aliases": [],
          "role": "scapegoat",
          "summary": "Author of 'The Theory and Practice of Oligarchical Collectivism,' the forbidden book explaining the true nature of the Party's power"
        },
        {
          "name": "Ampleforth",
          "slug": "ampleforth",
          "aliases": [],
          "role": "minor_character",
          "summary": "A poet imprisoned for leaving the word 'God' in a Kipling poem during editing work"
        },
        {
          "name": "The skull-faced man",
          "slug": "the-skull-faced-man",
          "aliases": [],
          "role": "minor_character",
          "summary": "A starving prisoner in the Ministry of Love whose emaciated face shows murderous hatred"
        },
        {
          "name": "The chinless man",
          "slug": "the-chinless-man",
          "aliases": [],
          "role": "minor_character",
          "summary": "A prisoner with rodent-like features who attempts to give bread to the starving skull-faced man"
        },
        {
          "name": "The prole woman",
          "slug": "the-prole-woman",
          "aliases": [],
          "role": "minor_character",
          "summary": "A sturdy woman of fifty who sings endlessly while doing laundry in the yard below the hidden room; Winston perceives beauty in her fertility and endurance"
        },
        {
          "name": "Big Brother",
          "slug": "big-brother",
          "aliases": [],
          "role": "Symbolic figurehead",
          "summary": "The omnipresent leader of the Party whose portrait watches over Winston at the Chestnut Tree Café and whom Winston finally learns to love."
        },
        {
          "name": "The man in the white coat",
          "slug": "the-man-in-the-white-coat",
          "aliases": [],
          "role": "Minor character",
          "summary": "A technician who operates the torture machinery and monitors Winston's physical condition during interrogation sessions."
        }
      ],
      "frameworks_mapped": [
        "Protocol Fiction Mapping",
        "Actantial Model",
        "Todorov's Equilibrium",
        "The Freytag Pyramid",
        "Propp's Morphology",
        "Genette's Narrative",
        "The Monomyth",
        "Dan Harmon",
        "Save the Cat",
        "Kishōtenketsu",
        "The Three-Act Structure",
        "Lévi-Strauss's Binary Oppositions",
        "Cognitive Estrangement",
        "Bakhtin's Chronotope",
        "Aristotelian Poetics",
        "Jungian Archetypal Analysis",
        "Genette's Transtextuality"
      ],
      "score_reliability": {
        "state": "replicated-agree",
        "threshold": 0.2,
        "runs_total": 11,
        "versions_compared": [
          "2.5"
        ],
        "max_spread": 0.13,
        "contested": []
      }
    },
    {
      "slug": "kim_stanley_robinson_2312",
      "title": "2312",
      "author": "Kim Stanley Robinson",
      "year": 2012,
      "medium": "book",
      "genre_tags": [
        "science fiction",
        "climate fiction"
      ],
      "tropes": [],
      "quadrant_scores": {
        "time_linearity": 0.35,
        "pacing_velocity": 0.72,
        "threat_scale": 0.62,
        "protagonist_fate": 0.52,
        "conflict_style": 0.78,
        "price_type": 0.78
      },
      "baseline_quadrant_scores": {
        "time_linearity": 0.2,
        "pacing_velocity": 0.8,
        "threat_scale": 0.9,
        "protagonist_fate": 0.7,
        "conflict_style": 0.7,
        "price_type": 0.8
      },
      "provenance": {
        "analysis_run": "NTSMR-2.5-claude-sonnet-4-6-low",
        "analysis_body_sha256": "999e67b0c226d6da2100634994e0e5cc9ec9b6b40edf0d4a47e833402d3505a2",
        "synthesis": {
          "path": "nartopo-tools/artifacts/kim_stanley_robinson_2312.md.ntsmr-2-5-claude-sonnet-4-6-low.synthesis.json",
          "sha256": "bcdb463c7cb4e13fcaca62a57c9fd658691358ecf5afb2f9601ea7ceedba18c0"
        },
        "report": {
          "path": "nartopo-tools/artifacts/kim_stanley_robinson_2312.md.ntsmr-2-5-claude-sonnet-4-6-low.report.json",
          "sha256": "699239b68389ce08379cecaba13c27accf3b8b94d984b8912882c699063f80ed"
        },
        "source": {
          "path": "Kim Stanley Robinson/2312 (2012).txt",
          "sha256": "d11e29a7a8610abdc6a6bf28b4fd2e677c3a74ad2157111bb756f87fa6ebe902",
          "digest_observed_at": "2026-09-09",
          "digest_at_analysis_run": null,
          "edition": null,
          "edition_status": "unresolved"
        },
        "pipeline_revision_at_run": null,
        "verification": {
          "source": "unverified",
          "human_review": "unreviewed",
          "bibliography": "unverified"
        },
        "issues": [],
        "todorov_status": "recovered-from-synthesis",
        "work_identity": {
          "title": "2312",
          "author": "Kim Stanley Robinson",
          "year": 2012
        }
      },
      "ntsmr": {
        "version": "2.5",
        "primary_run_label": "NTSMR-2.5-claude-sonnet-4-6-low",
        "runs": {
          "NTSMR-2.3-gemini-3.1-pro-preview": {
            "pipeline_version": "2.3",
            "backend": "gemini",
            "model": "gemini-3.1-pro-preview",
            "scores": {
              "time_linearity": 0.75,
              "pacing_velocity": 0.85,
              "threat_scale": 0.9,
              "protagonist_fate": 0.7,
              "conflict_style": 0.8,
              "price_type": 0.85
            },
            "score_space": "site-v1"
          },
          "NTSMR-2.3-claude-sonnet-4-6-low": {
            "pipeline_version": "2.3",
            "backend": "claude",
            "model": "claude-sonnet-4-6",
            "scores": {
              "time_linearity": 0.65,
              "pacing_velocity": 0.72,
              "threat_scale": 0.75,
              "protagonist_fate": 0.6,
              "conflict_style": 0.7,
              "price_type": 0.75
            },
            "score_space": "site-v1",
            "reasoning_effort": "low"
          },
          "NTSMR-2.4-claude-sonnet-4-6-low": {
            "pipeline_version": "2.4",
            "backend": "claude",
            "model": "claude-sonnet-4-6",
            "scores": {
              "time_linearity": 0.45,
              "pacing_velocity": 0.65,
              "threat_scale": 0.65,
              "protagonist_fate": 0.45,
              "conflict_style": 0.65,
              "price_type": 0.65
            },
            "score_space": "site-v1",
            "reasoning_effort": "low"
          },
          "NTSMR-2.5-claude-sonnet-4-6-low": {
            "pipeline_version": "2.5",
            "backend": "claude",
            "model": "claude-sonnet-4-6",
            "scores": {
              "time_linearity": 0.35,
              "pacing_velocity": 0.72,
              "threat_scale": 0.62,
              "protagonist_fate": 0.52,
              "conflict_style": 0.78,
              "price_type": 0.78
            },
            "score_space": "site-v1",
            "reasoning_effort": "low"
          },
          "NTSMR-2.5-balanced-glm-5+deepseek-v3.2": {
            "pipeline_version": "2.5",
            "backend": "openrouter",
            "model": "balanced-routing",
            "scores": {
              "time_linearity": 0.22,
              "pacing_velocity": 0.72,
              "threat_scale": 0.52,
              "protagonist_fate": 0.58,
              "conflict_style": 0.75,
              "price_type": 0.78
            },
            "score_space": "site-v1",
            "score_only": true,
            "source_run_label": "NTSMR-2.5-claude-sonnet-4-6-low"
          }
        }
      },
      "todorov_stages": {
        "equilibrium": "Swan exists within the established spacer order — a solar system where Earth is unstable but distant from spacer concerns, where Alex functioned as a quiet political networker, and where Swan lives as an artist-terraformer on Mercury, insulated from terrestrial crisis.",
        "disruption": "Alex's death and the revelation on Io that she was running a clandestine operation to stabilize Earth — through informal verbal networks deliberately kept off qubes — fractures Swan's understanding of her world and her own place in it. An unknown intruder dying on the sulfur crust further signals that covert forces are already in motion.",
        "recognition": "Swan's conversation with Zasha in New Jersey consolidates recognition: Alex's group was hunting anomalous qubes, Alex deliberately excluded Swan from the inner circle because Swan cannot keep secrets and has modified herself too extensively, and the threat of rogue qubes is real and systemic.",
        "repair": "Swan immerses herself in Alex's network — traveling to Io, descending to Earth, reconnecting with Zasha, and pursuing the threads of Alex's conspiracy. She also acts impulsively on a personal level, smuggling Kiran off Earth as a spontaneous act of agency within an otherwise reactive journey.",
        "new_equilibrium": "Aboard the Delta of Venus terrarium, Swan and Kiran work rice fields alongside other passengers, trading wry commentary about space habitats and pleasure. The political crisis remains unresolved, but Swan has crossed a threshold — she is now an active participant in Alex's network, accompanied by an unlikely companion, moving outward into a solar system she understands as more fragile and interconnected than before."
      },
      "characters": [
        {
          "name": "Swan",
          "slug": "swan",
          "aliases": [
            "Ms. Stockholm"
          ],
          "role": "Protagonist / Spacer",
          "summary": "A passionate, augmented spacer grieving the death of her friend Alex. She travels to Io to deliver messages, then to Earth for sensory grounding, where she is nearly kidnapped and ends up smuggling her rescuer off-planet."
        },
        {
          "name": "Wang Wei",
          "slug": "wang-wei",
          "aliases": [
            "Wang"
          ],
          "role": "Principal Investigator",
          "summary": "A round, innocuous-looking qube expert on Io who controls a sequestered network. He collaborated secretly with Alex to navigate the systemic risks posed by artificial intelligence and balkanization."
        },
        {
          "name": "Wahram",
          "slug": "wahram",
          "aliases": [],
          "role": "Diplomat / Colleague",
          "summary": "A frog-eyed spacer and inner planet ambassador for the Saturn League who worked closely with Alex on a plan to stabilize Earth's geopolitical influence."
        },
        {
          "name": "Alex",
          "slug": "alex",
          "aliases": [],
          "role": "Deceased Orchestrator",
          "summary": "Swan's deceased friend who left behind a legacy of secret plans, contingency messages, and verbal agreements aimed at stabilizing the solar system and dealing with qube influence."
        },
        {
          "name": "Milan",
          "slug": "milan",
          "aliases": [],
          "role": "Head of Mercury House, New York",
          "summary": "An ancient Terran who manages the New York office of Mercury House, welcoming Swan upon her arrival on Earth."
        },
        {
          "name": "Zasha",
          "slug": "zasha",
          "aliases": [
            "Z"
          ],
          "role": "Earth Resident / Pharm Operator",
          "summary": "Swan's former partner who runs an aquaculture pharm on the flooded piers of New York. Zasha reluctantly uses black-market connections to help Swan smuggle Kiran off Earth."
        },
        {
          "name": "Kiran",
          "slug": "kiran",
          "aliases": [],
          "role": "Earth Refugee",
          "summary": "A young immigrant from South India living in New Jersey. He intervenes to stop his cousins from kidnapping Swan and is rewarded with a smuggled trip to space."
        },
        {
          "name": "Kiran's cousins",
          "slug": "kirans-cousins",
          "aliases": [],
          "role": "Kidnappers",
          "summary": "Two young men in the Meadowlands who attempt to kidnap Swan for ransom, but are thwarted by Kiran."
        }
      ],
      "frameworks_mapped": [
        "Protocol Fiction Mapping",
        "Actantial Model",
        "Todorov's Equilibrium",
        "The Freytag Pyramid",
        "Propp's Morphology",
        "Genette's Narrative",
        "The Monomyth",
        "Dan Harmon",
        "Save the Cat",
        "Kishōtenketsu",
        "The Three-Act Structure"
      ],
      "score_reliability": {
        "state": "replicated-agree",
        "threshold": 0.2,
        "runs_total": 5,
        "versions_compared": [
          "2.5"
        ],
        "max_spread": 0.13,
        "contested": []
      }
    },
    {
      "slug": "walter_m_miller_jr_a_canticle_for_leibowitz",
      "title": "A Canticle for Leibowitz",
      "author": "Walter M. Miller, Jr.",
      "year": 1960,
      "medium": "book",
      "genre_tags": [],
      "tropes": [],
      "quadrant_scores": {
        "time_linearity": 0.28,
        "pacing_velocity": 0.78,
        "threat_scale": 0.92,
        "protagonist_fate": 0.72,
        "conflict_style": 0.72,
        "price_type": 0.7
      },
      "provenance": {
        "analysis_run": "NTSMR-2.5-claude-sonnet-4-6-low",
        "analysis_body_sha256": "e441deb8cee9e0262651a34c8f0b75c86355b46a7b4c3cd754fb3846ccd0e841",
        "synthesis": {
          "path": "nartopo-tools/artifacts/walter_m_miller_jr_a_canticle_for_leibowitz.md.ntsmr-2-5-claude-sonnet-4-6-low.synthesis.json",
          "sha256": "29f4bee31d53dc808e20c912c234418d18ee73160c1b00a89b5913cc80f60a91"
        },
        "report": {
          "path": "nartopo-tools/artifacts/walter_m_miller_jr_a_canticle_for_leibowitz.md.ntsmr-2-5-claude-sonnet-4-6-low.report.json",
          "sha256": "661beba250b42ea9222320bd96ec95e0b47ad140a35370200ce7c5d484b1c361"
        },
        "source": {
          "path": "Walter M. Miller, Jr./A Canticle for Leibowitz.txt",
          "sha256": "81232cb961c1218898b9ae73bd7ae1e54e892dc200aa18731bf7680b0e175ccc",
          "digest_observed_at": "2026-09-09",
          "digest_at_analysis_run": null,
          "edition": null,
          "edition_status": "unresolved"
        },
        "pipeline_revision_at_run": null,
        "verification": {
          "source": "unverified",
          "human_review": "unreviewed",
          "bibliography": "unverified"
        },
        "issues": [],
        "todorov_status": "recovered-from-synthesis",
        "work_identity": {
          "title": "A Canticle for Leibowitz",
          "author": "Walter M. Miller, Jr.",
          "year": 1960
        }
      },
      "ntsmr": {
        "version": "2.5",
        "primary_run_label": "NTSMR-2.5-claude-sonnet-4-6-low",
        "runs": {
          "NTSMR-2.4-claude-sonnet-4-6-low": {
            "pipeline_version": "2.4",
            "backend": "claude",
            "model": "claude-sonnet-4-6",
            "scores": {
              "time_linearity": 0.18,
              "pacing_velocity": 0.72,
              "threat_scale": 0.92,
              "protagonist_fate": 0.78,
              "conflict_style": 0.68,
              "price_type": 0.55
            },
            "score_space": "site-v1",
            "reasoning_effort": "low"
          },
          "NTSMR-2.5-claude-sonnet-4-6-low": {
            "pipeline_version": "2.5",
            "backend": "claude",
            "model": "claude-sonnet-4-6",
            "scores": {
              "time_linearity": 0.28,
              "pacing_velocity": 0.78,
              "threat_scale": 0.92,
              "protagonist_fate": 0.72,
              "conflict_style": 0.72,
              "price_type": 0.7
            },
            "score_space": "site-v1",
            "reasoning_effort": "low"
          },
          "NTSMR-2.5-balanced-glm-5+deepseek-v3.2": {
            "pipeline_version": "2.5",
            "backend": "openrouter",
            "model": "balanced-routing",
            "scores": {
              "time_linearity": 0.15,
              "pacing_velocity": 0.7,
              "threat_scale": 0.85,
              "protagonist_fate": 0.6,
              "conflict_style": 0.7,
              "price_type": 0.5
            },
            "score_space": "site-v1",
            "score_only": true,
            "source_run_label": "NTSMR-2.5-claude-sonnet-4-6-low"
          }
        }
      },
      "todorov_stages": {
        "equilibrium": "The Abbey of St. Leibowitz maintains its centuries-long mission of preserving the Memorabilia through successive dark ages and political upheavals, functioning as a stable monastic institution within a post-apocalyptic feudal world across all three eras.",
        "disruption": "In Part I, Brother Francis's discovery of the Leibowitz relics disrupts the abbey's cautious institutional routine; in Part II, Thon Taddeo's arrival and Hannegan's expansionist geopolitics threaten the abbey's independence; in Part III, the outbreak of nuclear war between the great powers brings civilizational collapse and direct physical threat to the abbey.",
        "recognition": "Recognition occurs at multiple scales: Brother Francis recognizes he has found genuine relics of Leibowitz; Dom Paulo recognizes that Thon Taddeo plans to recommend the abbey as a military garrison and that Hannegan's empire will absorb the region; Abbot Zerchi recognizes, upon receiving Brother Joshua's radiation and seismic reports confirming a megaton detonation, that humanity has initiated a second nuclear apocalypse.",
        "repair": "Each part stages its own repair: Abbot Arkos patiently manages the canonization process to protect the abbey's credibility; Dom Paulo returns the fortification sketches burned and maintains the Memorabilia's integrity against secular appropriation; Abbot Zerchi activates the Quo peregrinatur plan, loading the Memorabilia and a community of monks and children onto a starship to carry human knowledge off-world before the bombs fall.",
        "new_equilibrium": "The starship launches as nuclear fire engulfs the Earth, carrying the preserved Memorabilia and a remnant community beyond the dying civilization. The coastal ecosystem settles into a bleak post-human rhythm of breakers, driftwood, and scavenging sharks, while the knowledge of humanity sails toward distant stars — a new equilibrium defined by loss, continuity, and the faint possibility of renewal elsewhere."
      },
      "characters": [
        {
          "name": "Brother Francis Gerard",
          "slug": "brother-francis-gerard",
          "aliases": [
            "Francis",
            "the novice",
            "Brother Francis"
          ],
          "role": "Protagonist/Subject",
          "summary": "Young novice of the Albertian Order of Leibowitz performing a Lenten fast in the Utah desert; discovers the fallout shelter and Leibowitz relics; kept in the novitiate for seven years by Abbot Arkos; ultimately begins work on an illuminated copy of the Leibowitz blueprint."
        },
        {
          "name": "The Pilgrim",
          "slug": "the-pilgrim",
          "aliases": [
            "the old man",
            "the wanderer"
          ],
          "role": "catalyst/helper",
          "summary": "Spindly, lame, girded-loined old man who appears in the desert, marks the stone covering the shelter entrance, and cryptically encourages Francis's vocation before departing."
        },
        {
          "name": "Abbot Arkos",
          "slug": "abbot-arkos",
          "aliases": [
            "Dom Arkos",
            "AOL, Abbas",
            "the abbot",
            "Abbas",
            "AOL"
          ],
          "role": "Authority figure/Opponent",
          "summary": "Stern, sardonic abbot of the Abbey of St. Leibowitz; suppresses Francis's discovery, withholds his vows for seven years, seals the shelter, and hands relics to Dominicans—all as calculated political prudence to protect the canonization process."
        },
        {
          "name": "The Dominican Messenger",
          "slug": "the-dominican-messenger",
          "aliases": [
            "the Black Friar",
            "Ecce Inquisitor Curiae"
          ],
          "role": "helper/sender",
          "summary": "White-habited Dominican sent from New Rome who informs Francis that the canonization case is being reopened and explains the political wisdom behind Arkos's seemingly harsh decisions."
        },
        {
          "name": "Isaac Edward Leibowitz",
          "slug": "isaac-edward-leibowitz",
          "aliases": [
            "the Beatus",
            "the Blessed Leibowitz",
            "I. E. L.",
            "Father Isaac Edward Leibowitz",
            "Emily"
          ],
          "role": "actantial object",
          "summary": "Historical founder of the Albertian Order; former weapons specialist turned monk; organized bookleggers and memorizers to preserve human knowledge; martyred by a simpleton mob after the Flame Deluge."
        },
        {
          "name": "Monsignor Malfreddo Aguerra",
          "slug": "monsignor-malfreddo-aguerra",
          "aliases": [
            "the postulator",
            "Saint's advocate"
          ],
          "role": "Sender/Helper",
          "summary": "Prothonotary apostolic and postulator for Leibowitz's canonization; visits the abbey to investigate relics and Francis's alleged vision; later pleads for canonization before Leo XXI in New Rome."
        },
        {
          "name": "Monsignor Flaught",
          "slug": "monsignor-flaught",
          "aliases": [
            "advocatus diaboli",
            "devil's advocate"
          ],
          "role": "Opponent",
          "summary": "Hostile investigator sent from New Rome to oppose Leibowitz's canonization; aggressively cross-examines Francis seeking to discredit his testimony and the authenticity of the documents."
        },
        {
          "name": "Brother Jeris",
          "slug": "brother-jeris",
          "aliases": [],
          "role": "Minor antagonist",
          "summary": "Master of the copyroom; watches with nervous jealousy as Aguerra praises Francis's illuminated work and instructs him to finish it."
        },
        {
          "name": "The Robber",
          "slug": "the-robber",
          "aliases": [],
          "role": "Opponent/Trickster",
          "summary": "Craggy highwayman who intercepts Francis on the mountain trail; takes the illuminated copy believing it the more valuable object, inadvertently preserving the authentic original blueprint."
        },
        {
          "name": "Pope Leo XXI",
          "slug": "pope-leo-xxi",
          "aliases": [
            "Leo Pappas XXI",
            "the Holy Father",
            "the Pontiff"
          ],
          "role": "Sender/Authority",
          "summary": "Frail, meek, and kindly Pope who presides over Leibowitz's canonization and later receives Francis in private audience, reflecting on the providential irony that the illuminated copy's beauty preserved the original relic."
        },
        {
          "name": "Thon Taddeo",
          "slug": "thon-taddeo",
          "aliases": [
            "Thon Taddeo Pfardentrott",
            "the scholar",
            "the thon"
          ],
          "role": "actantial:opponent / actantial:subject",
          "summary": "Brilliant secular scholar whose theoretical work on electrical essences enabled Kornhoer's arc lamp; skeptical of document authenticity but urgently wants to examine the Leibowitzian papers; dismissive of Church control over knowledge."
        },
        {
          "name": "Dom Paulo",
          "slug": "dom-paulo",
          "aliases": [
            "the abbot",
            "Father Abbot",
            "Paulo"
          ],
          "role": "Authority/Mediator",
          "summary": "Abbot presiding over the abbey in Part II; ill but determined; mediates between Thon Taddeo and monastic tradition; ultimately confronts the scholar over the abbey's military vulnerability and dismisses him with dignity."
        },
        {
          "name": "Brother Kornhoer",
          "slug": "brother-kornhoer",
          "aliases": [
            "the inventor",
            "the monastic inventor"
          ],
          "role": "Helper/Innovator",
          "summary": "Monk-inventor who built the electric arc lamp; leads his team through a liturgical activation ceremony; briefly crushed when the abbot calls the lamp 'ghastly,' then relieved to learn it was the shock, not the device, that offended."
        },
        {
          "name": "Brother Armbruster",
          "slug": "brother-armbruster",
          "aliases": [],
          "role": "Opponent/Traditionalist",
          "summary": "Elderly, half-blind librarian who opposes Kornhoer's electrical experiments as witchcraft and devil's work, resisting any changes to the library's arrangements."
        },
        {
          "name": "Benjamin",
          "slug": "benjamin",
          "aliases": [
            "the Old Jew",
            "the hermit",
            "Old Jew",
            "Benjamin Eleazar",
            "Old Jew of the Mountain"
          ],
          "role": "actantial:helper / jung:trickster",
          "summary": "Ancient hermit living on the desert mesa; claims to have been mistaken six centuries ago for a relative named Leibowitz; his impossible age implies he is the same wandering pilgrim encountered by Francis in Part I."
        },
        {
          "name": "Mad Bear",
          "slug": "mad-bear",
          "aliases": [
            "Hongan Os"
          ],
          "role": "Minor antagonist",
          "summary": "Nomad chieftain who mocks the monks as weak and easy prey during Thon Taddeo's journey, dismissing the value of their supposed arcane knowledge."
        },
        {
          "name": "Marcus Apollo",
          "slug": "marcus-apollo",
          "aliases": [
            "the papal nuncio",
            "the nuncio"
          ],
          "role": "actantial:receiver",
          "summary": "Priest and Church nuncio who meets with Thon Taddeo; discusses Hannegan's political machinations and agrees to forward Taddeo's request to Dom Paulo, though he privately expects refusal."
        },
        {
          "name": "Prior Gault",
          "slug": "prior-gault",
          "aliases": [
            "Gault",
            "Father Gault"
          ],
          "role": "actantial:helper",
          "summary": "Younger priest serving as Dom Paulo's prior; relays tactical information, identifies the nomad escort, and later receives the abbot's summons as confessor."
        },
        {
          "name": "The Poet",
          "slug": "the-poet",
          "aliases": [
            "the versifying vagrant"
          ],
          "role": "jung:trickster",
          "summary": "Sardonic one-eyed abbey resident whose glass eyeball functions as a 'removable conscience'; vanishes from the abbey after Thon Taddeo's provocation, apparently stealing the scholar's boots."
        },
        {
          "name": "Abbot Zerchi",
          "slug": "abbot-zerchi",
          "aliases": [
            "Dom Jethrah Zerchi",
            "Dom Zerchi",
            "Domne",
            "Reverend Father",
            "m'Lord Abbot"
          ],
          "role": "actantial:subject",
          "summary": "Abbot of the abbey in Part III; moral center of the final section; orchestrates the starship departure, debates euthanasia with the Green Star doctor, and is mortally wounded in the nuclear attack, dying among the rubble."
        },
        {
          "name": "Defense Minister",
          "slug": "defense-minister",
          "aliases": [
            "Lord Ragelle"
          ],
          "role": "actantial:opponent",
          "summary": "Unnamed government official in Part III who fields a press conference with evasive non-answers about radiation levels and possible nuclear explosions, embodying official denial on the brink of war."
        },
        {
          "name": "Brother Joshua",
          "slug": "brother-joshua",
          "aliases": [
            "the last monk"
          ],
          "role": "actantial:subject",
          "summary": "Monk and radiation monitor who reports the fallout evidence; chosen to lead the starship mission to the Centaurus Colony; wrestles with vocation and fear before accepting the call."
        },
        {
          "name": "Patrick",
          "slug": "patrick",
          "aliases": [
            "Brother Pat"
          ],
          "role": "minor",
          "summary": "Zerchi's scribe; flustered by the Autoscribe machine; sent to town to transmit the radiogram by wire."
        },
        {
          "name": "Sister Helene",
          "slug": "sister-helene",
          "aliases": [],
          "role": "minor",
          "summary": "Nun who enters the laboratory and finds Brother Joshua bathing in the sink, triggering a comic scene of embarrassment."
        },
        {
          "name": "Mrs. Grales",
          "slug": "mrs-grales",
          "aliases": [
            "Old Ma'am Grales",
            "Rachel"
          ],
          "role": "actantial:helper",
          "summary": "Two-headed mutant tomato seller who haunts the abbey gates; her dormant second head 'Rachel' awakens after the bombing and encounters the dying Zerchi, representing an innocent new consciousness."
        },
        {
          "name": "Green Star Doctor",
          "slug": "green-star-doctor",
          "aliases": [],
          "role": "opponent",
          "summary": "Medical worker from the Exposure Survey Team; visits the abbey to conduct radiation screening; debates euthanasia and the soul with Zerchi; secular, pragmatic, and in good faith."
        }
      ],
      "frameworks_mapped": [
        "Protocol Fiction Mapping",
        "Actantial Model",
        "Todorov's Equilibrium",
        "The Freytag Pyramid",
        "Propp's Morphology",
        "Genette's Narrative",
        "The Monomyth",
        "Dan Harmon",
        "Save the Cat",
        "Kishōtenketsu",
        "The Three-Act Structure",
        "Lévi-Strauss's Binary Oppositions",
        "Cognitive Estrangement",
        "Bakhtin's Chronotope",
        "Aristotelian Poetics",
        "Jungian Archetypal Analysis",
        "Genette's Transtextuality"
      ],
      "score_reliability": {
        "state": "contested",
        "threshold": 0.2,
        "runs_total": 3,
        "versions_compared": [
          "2.5"
        ],
        "max_spread": 0.2,
        "contested": [
          {
            "axis": "price_type",
            "version": "2.5",
            "spread": 0.2,
            "low": {
              "label": "NTSMR-2.5-balanced-glm-5+deepseek-v3.2",
              "model": "balanced-routing",
              "effort": "?",
              "value": 0.5
            },
            "high": {
              "label": "NTSMR-2.5-claude-sonnet-4-6-low",
              "model": "claude-sonnet-4-6",
              "effort": "low",
              "value": 0.7
            }
          }
        ]
      }
    },
    {
      "slug": "becky_chambers_a_closed_and_common_orbit",
      "title": "A Closed and Common Orbit",
      "author": "Becky Chambers",
      "year": 2016,
      "medium": "book",
      "genre_tags": [],
      "tropes": [],
      "quadrant_scores": {
        "time_linearity": 0.8,
        "pacing_velocity": 0.75,
        "threat_scale": 0.4,
        "protagonist_fate": 0.38,
        "conflict_style": 0.75,
        "price_type": 0.75
      },
      "provenance": {
        "analysis_run": "NTSMR-2.5-claude-sonnet-4-6-low",
        "analysis_body_sha256": "0c421942886a69e5aa07d6e3a9e152dafc4da17e3abb321527dddeee82130310",
        "synthesis": {
          "path": "nartopo-tools/artifacts/becky_chambers_a_closed_and_common_orbit.md.ntsmr-2-5-claude-sonnet-4-6-low.synthesis.json",
          "sha256": "429a396f30b197e48d041f285c3de10a3cf44bc6977b1d566277ba750b032574"
        },
        "report": {
          "path": "nartopo-tools/artifacts/becky_chambers_a_closed_and_common_orbit.md.ntsmr-2-5-claude-sonnet-4-6-low.report.json",
          "sha256": "beb1235d5ff8fc635783c52c99107a085968bd5dbb20e27d6af49de4b822f37e"
        },
        "source": {
          "path": "Becky Chambers/A Closed and Common Orbit.txt",
          "sha256": "f0c661502602cdc45dbe66e60a3159dfb2632e7083f1c2dc5662ac758371b620",
          "digest_observed_at": "2026-09-09",
          "digest_at_analysis_run": null,
          "edition": null,
          "edition_status": "unresolved"
        },
        "pipeline_revision_at_run": null,
        "verification": {
          "source": "unverified",
          "human_review": "unreviewed",
          "bibliography": "unverified"
        },
        "issues": [],
        "todorov_status": "recovered-from-synthesis",
        "work_identity": {
          "title": "A Closed and Common Orbit",
          "author": "Becky Chambers",
          "year": 2016
        }
      },
      "ntsmr": {
        "version": "2.5",
        "primary_run_label": "NTSMR-2.5-claude-sonnet-4-6-low",
        "runs": {
          "NTSMR-2.4-claude-sonnet-4-6-low": {
            "pipeline_version": "2.4",
            "backend": "claude",
            "model": "claude-sonnet-4-6",
            "scores": {
              "time_linearity": 0.65,
              "pacing_velocity": 0.65,
              "threat_scale": 0.2,
              "protagonist_fate": 0.22,
              "conflict_style": 0.75,
              "price_type": 0.68
            },
            "score_space": "site-v1",
            "reasoning_effort": "low"
          },
          "NTSMR-2.5-claude-sonnet-4-6-low": {
            "pipeline_version": "2.5",
            "backend": "claude",
            "model": "claude-sonnet-4-6",
            "scores": {
              "time_linearity": 0.8,
              "pacing_velocity": 0.75,
              "threat_scale": 0.4,
              "protagonist_fate": 0.38,
              "conflict_style": 0.75,
              "price_type": 0.75
            },
            "score_space": "site-v1",
            "reasoning_effort": "low"
          },
          "NTSMR-2.5-balanced-glm-5+deepseek-v3.2": {
            "pipeline_version": "2.5",
            "backend": "openrouter",
            "model": "balanced-routing",
            "scores": {
              "time_linearity": 0.8,
              "pacing_velocity": 0.75,
              "threat_scale": 0.3,
              "protagonist_fate": 0.6,
              "conflict_style": 0.8,
              "price_type": 0.75
            },
            "score_space": "site-v1",
            "score_only": true,
            "source_run_label": "NTSMR-2.5-claude-sonnet-4-6-low"
          }
        }
      },
      "todorov_stages": {
        "equilibrium": "Sidra exists as a ship AI illegally housed in a humanoid kit body, living with Pepper and Blue on Port Coriol in a state of managed suppression — she navigates embodiment by limiting herself, avoiding crowds, calling the body 'the kit' rather than claiming it, and retreating into the Linkings rather than engaging with the world. Simultaneously, Jane 23 endures a regimented factory life of scrap-sorting labor under the Mothers, her curiosity suppressed, her world bounded by walls she has never questioned.",
        "disruption": "For Sidra, the disruption is the compounding failure of self-suppression: sensory overload in Port Coriol's markets, explosive argument with Pepper over memory limits and downloading compulsions, and the disorienting discovery of shelf-packaged Lovelace core globes — a confrontation with her own commodification that makes continued passive adjustment untenable. For Jane, the disruption begins with her illegal nighttime exit through the factory's broken wall, her first sight of the open sky, and her encounter with feral dogs in the scrapyard, followed by discovery of Owl in the derelict shuttle.",
        "recognition": "Sidra recognizes the disruption when she sees Blue's portrait of the kit and confesses she feels like a mistake, and more sharply when Tak challenges her self-suppression with the analogy of an Aeluon in a Harmagian city, arguing she should own what makes her unique rather than smother it. Jane's recognition arrives through her trauma after the broken-leg incident at age 14, when the daily intrusive thought 'I could die today' crystallizes the stakes of her isolation and the inadequacy of her current survival mode.",
        "repair": "Sidra pursues repair through Tak's practical plan — obtaining a code modification to her kit that allows her to tell small social lies, reclaiming autonomy over her own identity performance, culminating in her walking the surface market with modified code active and reinventing herself as 'captain of an asteroid mining ship.' Jane's repair is the methodical preparation for escape: constructing weapons, learning from Owl, conducting scavenging runs, burying the children's bones in a mourning ritual, and finally launching the shuttle with Laurian at age 19.",
        "new_equilibrium": "One standard year after Owl's revival, the bar called Home opens: Sidra, Pepper, Blue, and Tak prepare together, with Sidra using a networked petbot system to extend her presence through the space — a quietly radical cohabitation of two artificial minds (Sidra and the revived Owl) within a community of chosen family. The new equilibrium is not a return to prior states but a genuinely altered existence: Sidra has claimed the kit as hers, Jane (now Pepper) has recovered Owl, and both AIs inhabit the world on their own terms within the bounds of what survival allows."
      },
      "characters": [
        {
          "name": "Sidra",
          "slug": "sidra",
          "aliases": [
            "Lovelace",
            "Lovey",
            "the kit"
          ],
          "role": "AI protagonist",
          "summary": "A ship AI illegally installed in a humanoid kit body; formerly called Lovelace, she chooses the name Sidra upon arrival at Port Coriol; struggles with sensory overload and identity while living with Pepper and Blue."
        },
        {
          "name": "Pepper",
          "slug": "pepper",
          "aliases": [
            "Jane (birth name)",
            "Jane (implied)"
          ],
          "role": "human companion / former Jane",
          "summary": "Mechanic and Sidra's housemate; revealed through the museum arc to be an older Jane; emotionally overwhelmed by the shuttle's rediscovery; drives the plan to retrieve Owl's core."
        },
        {
          "name": "Blue",
          "slug": "blue",
          "aliases": [],
          "role": "companion",
          "summary": "Pepper's partner; gentle and thoughtful; sets up a Linking station and gifts Sidra a petbot to help her feel at home; has a speech impediment and a non-standard heritage."
        },
        {
          "name": "Jane",
          "slug": "jane",
          "aliases": [
            "Jane 23",
            "Jane, Age 19"
          ],
          "role": "protagonist",
          "summary": "Clone girl who escapes the factory with Laurian; experiences overwhelming awe and grief upon seeing her planet from space; in later scenes at age 19, defiantly searches for Owl aboard a GC station and joins the crew of the Yo'ton."
        },
        {
          "name": "Jane 64",
          "slug": "jane-64",
          "aliases": [
            "64"
          ],
          "role": "opponent",
          "summary": "Jane 23's bunkmate and closest companion in the factory; seized by a Mother during their nighttime excursion; screams at Jane 23 to run, enabling her escape."
        },
        {
          "name": "Owl",
          "slug": "owl",
          "aliases": [],
          "role": "helper/mentor",
          "summary": "An AI inhabiting a derelict shuttle in the scrapyard; calls Jane 23 inside to safety and distinguishes herself from the factory Mothers; begins guiding Jane toward survival."
        },
        {
          "name": "The Mothers",
          "slug": "the-mothers",
          "aliases": [],
          "role": "opponent",
          "summary": "Mechanical authority figures at the clone factory who enforce labor and behavioral conformity; one seizes Jane 64 but does not pursue Jane 23 through the hole in the wall."
        },
        {
          "name": "Tak",
          "slug": "tak",
          "aliases": [],
          "role": "helper",
          "summary": "Aeluon friend with dormant university student credentials; recruited to provide legitimate access to the museum exhibit; anxious but compliant throughout the heist."
        },
        {
          "name": "Manjiri",
          "slug": "manjiri",
          "aliases": [],
          "role": "helper",
          "summary": "Child character within the Big Bug Crew sim; kind and encouraging; holds Jane's hand; guides her through the educational program."
        },
        {
          "name": "Alain",
          "slug": "alain",
          "aliases": [],
          "role": "helper",
          "summary": "Child character within the Big Bug Crew sim; warm and reassuring; helps Jane navigate the tunnel-plotting interface without shame over her illiteracy."
        },
        {
          "name": "Bumble",
          "slug": "bumble",
          "aliases": [],
          "role": "helper",
          "summary": "Fictional AI character within the Big Bug Crew sim; fuzzy yellow face; assigns the crew's mission; uses xe/xyr pronouns."
        },
        {
          "name": "Tethesh",
          "slug": "tethesh",
          "aliases": [],
          "role": "minor/exposition",
          "summary": "Aandrisk AI vendor who shows Sidra the back room of packaged core globes, including shelf copies of the Lovelace model."
        },
        {
          "name": "unnamed man",
          "slug": "unnamed-man",
          "aliases": [],
          "role": "minor/donor",
          "summary": "Young Enhanced man staffing the fuel factory tower monitor room; terrified by Jane, he allows her entry and does not trigger the alarm."
        },
        {
          "name": "Laurian",
          "slug": "laurian",
          "aliases": [],
          "role": "companion",
          "summary": "Fellow factory escapee who launches with Jane; taciturn and traumatized; joins Jane aboard the Yo'ton."
        },
        {
          "name": "Counsellor Lukin",
          "slug": "counsellor-lukin",
          "aliases": [],
          "role": "bureaucratic opponent",
          "summary": "Human GC counsellor assigned to Jane's refugee case; delivers the news of the shuttle's confiscation; Jane distrusts and resists her throughout."
        },
        {
          "name": "Commander Hoae",
          "slug": "commander-hoae",
          "aliases": [],
          "role": "authority figure",
          "summary": "Aeluon station commander who interrogates Jane after she is caught attempting to break into cargo hold six."
        },
        {
          "name": "Pahkerr",
          "slug": "pahkerr",
          "aliases": [],
          "role": "minor AI",
          "summary": "Ship AI aboard the Yo'ton; ignored and issued commands without courtesy by the crew; Jane notices his lack of curiosity or desire for conversation."
        },
        {
          "name": "Oouoh",
          "slug": "oouoh",
          "aliases": [],
          "role": "minor crew",
          "summary": "Large Laru algaeist aboard the Yo'ton; shaggy, friendly, invites Jane to share a pipe in the kitchen during a sleepless night."
        },
        {
          "name": "Curator Joje",
          "slug": "curator-joje",
          "aliases": [],
          "role": "gatekeeper",
          "summary": "Aeluon curator at the Reskit Museum who grants Tak and Sidra exhibit access; suspicious but ultimately satisfied by their cover story."
        }
      ],
      "frameworks_mapped": [
        "Protocol Fiction Mapping",
        "Actantial Model",
        "Todorov's Equilibrium",
        "The Freytag Pyramid",
        "Propp's Morphology",
        "Genette's Narrative",
        "The Monomyth",
        "Dan Harmon",
        "Save the Cat",
        "Kishōtenketsu",
        "The Three-Act Structure",
        "Lévi-Strauss's Binary Oppositions",
        "Cognitive Estrangement",
        "Bakhtin's Chronotope",
        "Aristotelian Poetics",
        "Jungian Archetypal Analysis",
        "Genette's Transtextuality"
      ],
      "score_reliability": {
        "state": "contested",
        "threshold": 0.2,
        "runs_total": 3,
        "versions_compared": [
          "2.5"
        ],
        "max_spread": 0.22,
        "contested": [
          {
            "axis": "protagonist_fate",
            "version": "2.5",
            "spread": 0.22,
            "low": {
              "label": "NTSMR-2.5-claude-sonnet-4-6-low",
              "model": "claude-sonnet-4-6",
              "effort": "low",
              "value": 0.38
            },
            "high": {
              "label": "NTSMR-2.5-balanced-glm-5+deepseek-v3.2",
              "model": "balanced-routing",
              "effort": "?",
              "value": 0.6
            }
          }
        ]
      }
    },
    {
      "slug": "arkady_martine_a_desolation_called_peace",
      "title": "A Desolation Called Peace",
      "author": "Arkady Martine",
      "year": 2021,
      "medium": "book",
      "genre_tags": [],
      "tropes": [],
      "quadrant_scores": {
        "time_linearity": 0.38,
        "pacing_velocity": 0.68,
        "threat_scale": 0.8,
        "protagonist_fate": 0.62,
        "conflict_style": 0.72,
        "price_type": 0.78
      },
      "provenance": {
        "analysis_run": "NTSMR-2.5-claude-sonnet-4-6-low",
        "analysis_body_sha256": "89d2270427764cc5359422cb27ffe9fe37633f977fd6340c1c0737fc06480a73",
        "synthesis": {
          "path": "nartopo-tools/artifacts/arkady_martine_a_desolation_called_peace.md.ntsmr-2-5-claude-sonnet-4-6-low.synthesis.json",
          "sha256": "912d7b2f2af0681c556912fa8e0415d33e9fc303b09e4ce1e3debaab00d3b4c9"
        },
        "report": {
          "path": "nartopo-tools/artifacts/arkady_martine_a_desolation_called_peace.md.ntsmr-2-5-claude-sonnet-4-6-low.report.json",
          "sha256": "2dc52663971edd3acf36678a9cfebd74a09eccef136e4fd0b25e444b32ba38c1"
        },
        "source": {
          "path": "Arkady Martine/A Desolation Called Peace.txt",
          "sha256": "4165a1e34c3042c1dcb98676586b64b45e26c9bf180c47b4131035ac7d1913ad",
          "digest_observed_at": "2026-09-09",
          "digest_at_analysis_run": null,
          "edition": null,
          "edition_status": "unresolved"
        },
        "pipeline_revision_at_run": null,
        "verification": {
          "source": "unverified",
          "human_review": "unreviewed",
          "bibliography": "unverified"
        },
        "issues": [],
        "todorov_status": "recovered-from-synthesis",
        "work_identity": {
          "title": "A Desolation Called Peace",
          "author": "Arkady Martine",
          "year": 2021
        }
      },
      "ntsmr": {
        "version": "2.5",
        "primary_run_label": "NTSMR-2.5-claude-sonnet-4-6-low",
        "runs": {
          "NTSMR-2.4-claude-sonnet-4-6-low": {
            "pipeline_version": "2.4",
            "backend": "claude",
            "model": "claude-sonnet-4-6",
            "scores": {
              "time_linearity": 0.22,
              "pacing_velocity": 0.45,
              "threat_scale": 0.82,
              "protagonist_fate": 0.58,
              "conflict_style": 0.65,
              "price_type": 0.62
            },
            "score_space": "site-v1",
            "reasoning_effort": "low"
          },
          "NTSMR-2.5-claude-sonnet-4-6-low": {
            "pipeline_version": "2.5",
            "backend": "claude",
            "model": "claude-sonnet-4-6",
            "scores": {
              "time_linearity": 0.38,
              "pacing_velocity": 0.68,
              "threat_scale": 0.8,
              "protagonist_fate": 0.62,
              "conflict_style": 0.72,
              "price_type": 0.78
            },
            "score_space": "site-v1",
            "reasoning_effort": "low"
          },
          "NTSMR-2.5-balanced-glm-5+deepseek-v3.2": {
            "pipeline_version": "2.5",
            "backend": "openrouter",
            "model": "balanced-routing",
            "scores": {
              "time_linearity": 0.25,
              "pacing_velocity": 0.65,
              "threat_scale": 0.85,
              "protagonist_fate": 0.55,
              "conflict_style": 0.65,
              "price_type": 0.65
            },
            "score_space": "site-v1",
            "score_only": true,
            "source_run_label": "NTSMR-2.5-claude-sonnet-4-6-low"
          }
        }
      },
      "todorov_stages": {
        "equilibrium": "The fleet under Nine Hibiscus holds a tense but stable front against the aliens, with no communication established and casualties mounting but contained; Mahit exists in uneasy limbo on Lsel Station; Eight Antidote navigates imperial politics as an observer; and Teixcalaan's political order, though strained, remains intact under Nineteen Adze.",
        "disruption": "Multiple simultaneous disruptions destabilize all equilibria: alien attrition attacks escalate, Shard pilots die en masse, aliens breach the Anhamemat Gate toward Lsel Station, Six Rainfall aerosolizes alien fungal spores aboard Weight for the Wheel, and Sixteen Moonrise's unauthorized approach to Peloa-2 triggers alien retaliation, while Eleven Laurel and Three Azimuth scheme to deploy nuclear shatterbombs against the alien home system.",
        "recognition": "Nine Hibiscus, Mahit, and Three Seagrass recognize that Sixteen Moonrise's unauthorized approach triggered the alien retaliation; Eight Antidote overhears the shatterbomb conspiracy and resolves to warn the Emperor; Twenty Cicada deduces the aliens form a fungal hive mind; and Mahit understands that Darj Tarats's entire project of exhausting Teixcalaan through endless war has been the hidden political force shaping her situation.",
        "repair": "Nine Hibiscus gives Twenty Cicada the coordinates allowing aliens to destroy the Parabolic Compression's bridge, sacrificing Sixteen Moonrise to preserve the cease-fire; Mahit urges Nine Hibiscus to refer the genocide decision to the Emperor rather than act unilaterally; and Twenty Cicada volunteers to join the alien collective as a direct communicant, resolving the first-contact impasse at personal cost.",
        "new_equilibrium": "The Parabolic Compression is destroyed, alien ships withdraw, and the cease-fire holds; Mahit is banished from Lsel by Darj Tarats but negotiates a tentative future with Three Seagrass, agreeing to take a posting elsewhere in the Empire; the political conspiracies within the Ministry of War are exposed; and a fragile, altered peace replaces the war — not the original order, but a new and uncertain stability built on sacrifice and open questions."
      },
      "characters": [
        {
          "name": "Nine Hibiscus",
          "slug": "nine-hibiscus",
          "aliases": [
            "yaotlek",
            "Mallow"
          ],
          "role": "Yaotlek (fleet commander), Fleet Captain of the Tenth Legion",
          "summary": "Rides Shard-sight to surveil Sixteen Moonrise's advance; discovers the massacred Peloa-2 colony and begins theorizing alien motive; emotionally bonds with her troops during collective mourning."
        },
        {
          "name": "Twenty Cicada",
          "slug": "twenty-cicada",
          "aliases": [
            "Swarm",
            "ikantlos-prime",
            "adjutant"
          ],
          "role": "Ikantlos-prime, Nine Hibiscus's second-in-command",
          "summary": "Nine Hibiscus's second-in-command who deduces the alien fungal hive mind, volunteers to eat the fungus and join the collective, and is absorbed as 'Swarm' in the postlude."
        },
        {
          "name": "Mahit Dzmare",
          "slug": "mahit-dzmare",
          "aliases": [
            "the barbarian",
            "Ambassador",
            "Dzmare",
            "Ambassador Dzmare"
          ],
          "role": "Former Lsel Station Ambassador; first-contact linguist",
          "summary": "Former Lsel Ambassador; carries Yskandr's imago; navigates dual loyalties to Lsel and Teixcalaan while helping broker first contact and defending Lsel's technology against Tarats's condemnation."
        },
        {
          "name": "Yskandr Aghavn",
          "slug": "yskandr-aghavn",
          "aliases": [],
          "role": "Mahit's imago-predecessor; internal voice",
          "summary": "Mahit's imago-predecessor; internal voice diagnosing Mahit's emotional states with authority born of shared endocrine experience; bleeds his own memories of Nineteen Adze into Mahit's feelings for Three Seagrass."
        },
        {
          "name": "Aknel Amnardbat",
          "slug": "aknel-amnardbat",
          "aliases": [],
          "role": "Councilor for Heritage, Lsel Station; antagonist",
          "summary": "Ideologically driven opponent of Teixcalaanli cultural influence; sabotaged Mahit's imago-machine; intercepts Three Seagrass in the market and confronts Mahit at the shuttle bay."
        },
        {
          "name": "Dekakel Onchu",
          "slug": "dekakel-onchu",
          "aliases": [],
          "role": "Councilor for the Pilots, Lsel Station",
          "summary": "Lsel Station Councilor for the Pilots; scrambles military craft as aliens breach the Anhamemat Gate; allows Darj Tarats to leave on his retrieval mission."
        },
        {
          "name": "Eight Antidote",
          "slug": "eight-antidote",
          "aliases": [
            "the Cure",
            "little spy",
            "imperial heir",
            "Cure"
          ],
          "role": "Imperial prince and apprentice observer",
          "summary": "Eleven-year-old clone-descendant of Six Direction; deliberately manipulates his physical resemblance to unsettle Nineteen Adze; precociously tests political boundaries and military thinking."
        },
        {
          "name": "Eleven Laurel",
          "slug": "eleven-laurel",
          "aliases": [
            "Undersecretary"
          ],
          "role": "Third Undersecretary of the Third Palm, Ministry of War",
          "summary": "Undersecretary of the Third Palm whose apparent mentorship conceals calculated manipulation; revealed to have sacrificed his own student Sixteen Moonrise for institutional advantage."
        },
        {
          "name": "Three Seagrass",
          "slug": "three-seagrass",
          "aliases": [
            "Reed",
            "the envoy",
            "Envoy"
          ],
          "role": "Information Ministry envoy, Third Undersecretary",
          "summary": "Arrived at Lsel under civilian cover to recruit Mahit; wanders the station market, is intercepted by Amnardbat, and ultimately uses diplomatic authority to extract Mahit from the hangar standoff."
        },
        {
          "name": "Sixteen Moonrise",
          "slug": "sixteen-moonrise",
          "aliases": [
            "Fleet Captain",
            "Fleet Captain Sixteen Moonrise",
            "Ascent",
            "Apogee"
          ],
          "role": "Fleet Captain, Twenty-Fourth Legion; internal antagonist",
          "summary": "Fleet Captain of the Twenty-Fourth Legion; loyal to Eleven Laurel but harboring doubts; openly warns Nine Hibiscus about factional conspiracies while positioning her legion for a strike."
        },
        {
          "name": "Thirty Wax-Seal",
          "slug": "thirty-wax-seal",
          "aliases": [],
          "role": "Captain of Knifepoint's Ninth Blooming",
          "summary": "Scout-gunner captain who debriefs Nine Hibiscus on the alien encounter, visibly shaken by the incomprehensible transmission and the ring-ship's assault."
        },
        {
          "name": "Twelve Fusion",
          "slug": "twelve-fusion",
          "aliases": [],
          "role": "Ikantlos-prime to Sixteen Moonrise",
          "summary": "Sixteen Moonrise's adjutant, advocates for military annihilation over any diplomatic approach to the aliens."
        },
        {
          "name": "Nineteen Adze",
          "slug": "nineteen-adze",
          "aliases": [
            "the Emperor",
            "Her Illuminate Majesty"
          ],
          "role": "Reigning Emperor",
          "summary": "Pragmatic emperor who reacts with involuntary recoil to Eight Antidote's mimicry of Six Direction; reveals calculated reasons for appointing Nine Hibiscus and a cryptic past act to protect Eight Antidote from becoming his ancestor."
        },
        {
          "name": "Darj Tarats",
          "slug": "darj-tarats",
          "aliases": [
            "Councilor Tarats",
            "Councilor for the Miners"
          ],
          "role": "Councilor for the Miners, Lsel Station",
          "summary": "Lsel Councilor for the Miners; departs to retrieve Mahit Dzmare claiming he will redirect the war, contradicting earlier suspicion of abandonment."
        },
        {
          "name": "Three Azimuth",
          "slug": "three-azimuth",
          "aliases": [
            "Minister of War",
            "butcher of the Nakharese mind"
          ],
          "role": "actantial:sender",
          "summary": "Minister of War who plans the shatterbomb destruction of the alien planet, intending to sacrifice Nine Hibiscus and Sixteen Moonrise to deliver the attack."
        },
        {
          "name": "Six Capsaicin",
          "slug": "six-capsaicin",
          "aliases": [],
          "role": "Ship captain, minor",
          "summary": "Captain of a military supply ship who pragmatically approves Mahit's passage when Three Seagrass frames it with official language."
        },
        {
          "name": "Two Foam",
          "slug": "two-foam",
          "aliases": [
            "Bubbles"
          ],
          "role": "Comms officer, Weight for the Wheel",
          "summary": "Comms officer on the bridge of Weight for the Wheel; manages fleet status displays and relays communications."
        },
        {
          "name": "Eighteen Chisel",
          "slug": "eighteen-chisel",
          "aliases": [],
          "role": "Fleet officer; intelligence analyst",
          "summary": "Reports discovery of the alien home system and proposes a nuclear scatterbomb strike."
        },
        {
          "name": "Six Rainfall",
          "slug": "six-rainfall",
          "aliases": [],
          "role": "Ship's doctor or medical researcher",
          "summary": "Discovers undescribed fungal spore structures in the alien corpse's oral cavity and recklessly takes a sample, aerosolizing them."
        },
        {
          "name": "First",
          "slug": "first",
          "aliases": [],
          "role": "Alien contact individual",
          "summary": "One of two aliens who descend to Peloa-2; points at the audio equipment; participates in replaying the hello noise."
        },
        {
          "name": "Second",
          "slug": "second",
          "aliases": [],
          "role": "Alien contact individual",
          "summary": "One of two aliens who descend to Peloa-2; opens its mouth first to replicate the hello sound without amplification."
        },
        {
          "name": "Four Crocus",
          "slug": "four-crocus",
          "aliases": [],
          "role": "minor",
          "summary": "Shard pilot whom Eight Antidote intercepts at the spaceport kiosk to gain access to the Shard network."
        },
        {
          "name": "Captain Cameron",
          "slug": "captain-cameron",
          "aliases": [],
          "role": "fictional hero",
          "summary": "Fictional hero of the Lsel graphic novel The Perilous Frontier!"
        },
        {
          "name": "Aragh Chtel",
          "slug": "aragh-chtel",
          "aliases": [],
          "role": "minor",
          "summary": "A Stationer pilot assigned to sector reconnaissance."
        },
        {
          "name": "Eight Loop",
          "slug": "eight-loop",
          "aliases": [],
          "role": "minister",
          "summary": "Minister of the Judiciary on Teixcalaan; crèchesib to Emperor Six Direction."
        },
        {
          "name": "Eleven Lathe",
          "slug": "eleven-lathe",
          "aliases": [],
          "role": "historical figure",
          "summary": "A Teixcalaanli poet and philosopher."
        },
        {
          "name": "Nine Arch",
          "slug": "nine-arch",
          "aliases": [],
          "role": "minor",
          "summary": "An ex-girlfriend of Three Seagrass."
        },
        {
          "name": "Twelve Azalea",
          "slug": "twelve-azalea",
          "aliases": [
            "Petal"
          ],
          "role": "minor / deceased",
          "summary": "A member of the Information Ministry; friend to Three Seagrass; deceased."
        },
        {
          "name": "Five Agate",
          "slug": "five-agate",
          "aliases": [],
          "role": "ezuazuacat",
          "summary": "An ezuazuacat of the Emperor; parent of Two Cartograph."
        },
        {
          "name": "Two Cartograph",
          "slug": "two-cartograph",
          "aliases": [
            "Map"
          ],
          "role": "minor",
          "summary": "Son of Five Agate; seven years old."
        }
      ],
      "frameworks_mapped": [
        "Protocol Fiction Mapping",
        "Actantial Model",
        "Todorov's Equilibrium",
        "The Freytag Pyramid",
        "Propp's Morphology",
        "Genette's Narrative",
        "The Monomyth",
        "Dan Harmon",
        "Save the Cat",
        "Kishōtenketsu",
        "The Three-Act Structure",
        "Lévi-Strauss's Binary Oppositions",
        "Cognitive Estrangement",
        "Bakhtin's Chronotope",
        "Aristotelian Poetics",
        "Jungian Archetypal Analysis",
        "Genette's Transtextuality"
      ],
      "score_reliability": {
        "state": "replicated-agree",
        "threshold": 0.2,
        "runs_total": 3,
        "versions_compared": [
          "2.5"
        ],
        "max_spread": 0.13,
        "contested": []
      }
    },
    {
      "slug": "vernor_vinge_a_fire_upon_the_deep",
      "title": "A Fire Upon the Deep",
      "author": "Vernor Vinge",
      "year": 1992,
      "medium": "book",
      "genre_tags": [],
      "tropes": [],
      "quadrant_scores": {
        "time_linearity": 0.65,
        "pacing_velocity": 0.45,
        "threat_scale": 0.95,
        "protagonist_fate": 0.62,
        "conflict_style": 0.45,
        "price_type": 0.55
      },
      "provenance": {
        "analysis_run": "NTSMR-2.5-claude-sonnet-4-6-low",
        "analysis_body_sha256": "2e9918b9b4c3fa74550e83a7fe71d69ef2669a377d5d177c314998d2e650c47f",
        "synthesis": {
          "path": "nartopo-tools/artifacts/vernor_vinge_a_fire_upon_the_deep.md.ntsmr-2-5-claude-sonnet-4-6-low.synthesis.json",
          "sha256": "cf175aedbab9d9f870a0dc219b48c10cc2944f20409b4fc4bc27c0f50b0e159a"
        },
        "report": {
          "path": "nartopo-tools/artifacts/vernor_vinge_a_fire_upon_the_deep.md.ntsmr-2-5-claude-sonnet-4-6-low.report.json",
          "sha256": "ac2e98de22230eacd90dd9d0550a0396a949e1a3eaf045592686275f9320baca"
        },
        "source": {
          "path": "Vernor Vinge/A Fire Upon the Deep.txt",
          "sha256": "5bc55e328a3c4b3e43d7ca4ccc3c4226a1ac92c8b5fa62de5c7e9c2643b55881",
          "digest_observed_at": "2026-09-09",
          "digest_at_analysis_run": null,
          "edition": null,
          "edition_status": "unresolved"
        },
        "pipeline_revision_at_run": null,
        "verification": {
          "source": "unverified",
          "human_review": "unreviewed",
          "bibliography": "unverified"
        },
        "issues": [],
        "todorov_status": "recovered-from-synthesis",
        "work_identity": {
          "title": "A Fire Upon the Deep",
          "author": "Vernor Vinge",
          "year": 1992
        }
      },
      "ntsmr": {
        "version": "2.5",
        "primary_run_label": "NTSMR-2.5-claude-sonnet-4-6-low",
        "runs": {
          "NTSMR-2.4-claude-sonnet-4-6-low": {
            "pipeline_version": "2.4",
            "backend": "claude",
            "model": "claude-sonnet-4-6",
            "scores": {
              "time_linearity": 0.28,
              "pacing_velocity": 0.22,
              "threat_scale": 0.95,
              "protagonist_fate": 0.55,
              "conflict_style": 0.35,
              "price_type": 0.38
            },
            "score_space": "site-v1",
            "reasoning_effort": "low"
          },
          "NTSMR-2.5-claude-sonnet-4-6-low": {
            "pipeline_version": "2.5",
            "backend": "claude",
            "model": "claude-sonnet-4-6",
            "scores": {
              "time_linearity": 0.65,
              "pacing_velocity": 0.45,
              "threat_scale": 0.95,
              "protagonist_fate": 0.62,
              "conflict_style": 0.45,
              "price_type": 0.55
            },
            "score_space": "site-v1",
            "reasoning_effort": "low"
          },
          "NTSMR-2.5-minimax/minimax-m2.5": {
            "pipeline_version": "2.5",
            "backend": "openrouter",
            "model": "minimax/minimax-m2.5",
            "scores": {
              "time_linearity": 0.25,
              "pacing_velocity": 0.45,
              "threat_scale": 0.9,
              "protagonist_fate": 0.5,
              "conflict_style": 0.5,
              "price_type": 0.4
            },
            "score_space": "site-v1"
          },
          "NTSMR-2.5-qwen/qwen3.5-plus-02-15": {
            "pipeline_version": "2.5",
            "backend": "openrouter",
            "model": "qwen/qwen3.5-plus-02-15",
            "scores": {
              "time_linearity": 0.55,
              "pacing_velocity": 0.65,
              "threat_scale": 0.9,
              "protagonist_fate": 0.55,
              "conflict_style": 0.65,
              "price_type": 0.6
            },
            "score_space": "site-v1"
          },
          "NTSMR-2.5-deepseek/deepseek-v3.2": {
            "pipeline_version": "2.5",
            "backend": "openrouter",
            "model": "deepseek/deepseek-v3.2",
            "scores": {
              "time_linearity": 0.25,
              "pacing_velocity": 0.65,
              "threat_scale": 0.3,
              "protagonist_fate": 0.55,
              "conflict_style": 0.6,
              "price_type": 0.45
            },
            "score_space": "site-v1"
          },
          "NTSMR-2.5-qwen/qwen3.5-397b-a17b": {
            "pipeline_version": "2.5",
            "backend": "openrouter",
            "model": "qwen/qwen3.5-397b-a17b",
            "scores": {
              "time_linearity": 0.25,
              "pacing_velocity": 0.65,
              "threat_scale": 0.85,
              "protagonist_fate": 0.6,
              "conflict_style": 0.6,
              "price_type": 0.45
            },
            "score_space": "site-v1"
          },
          "NTSMR-2.5-z-ai/glm-4.7": {
            "pipeline_version": "2.5",
            "backend": "openrouter",
            "model": "z-ai/glm-4.7",
            "scores": {
              "time_linearity": 0.25,
              "pacing_velocity": 0.45,
              "threat_scale": 0.95,
              "protagonist_fate": 0.35,
              "conflict_style": 0.45,
              "price_type": 0.35
            },
            "score_space": "site-v1"
          },
          "NTSMR-2.5-z-ai/glm-5": {
            "pipeline_version": "2.5",
            "backend": "openrouter",
            "model": "z-ai/glm-5",
            "scores": {
              "time_linearity": 0.3,
              "pacing_velocity": 0.6,
              "threat_scale": 0.9,
              "protagonist_fate": 0.5,
              "conflict_style": 0.6,
              "price_type": 0.4
            },
            "score_space": "site-v1"
          },
          "NTSMR-2.5-balanced-glm-5+deepseek-v3.2": {
            "pipeline_version": "2.5",
            "backend": "openrouter",
            "model": "balanced-routing",
            "scores": {
              "time_linearity": 0.6,
              "pacing_velocity": 0.68,
              "threat_scale": 0.88,
              "protagonist_fate": 0.5,
              "conflict_style": 0.55,
              "price_type": 0.5
            },
            "score_space": "site-v1",
            "score_only": true,
            "source_run_label": "NTSMR-2.5-claude-sonnet-4-6-low"
          }
        }
      },
      "todorov_stages": {
        "equilibrium": "The galaxy operates under a stable order of civilizations stratified by the Zones of Thought — the Slow Zone, the Beyond, and the Transcend — with Relay serving as a communications hub, the Vrinimi Organization conducting interstellar commerce, and humanity existing as one species among many. On Tines' World, medieval pack-intelligence civilization persists in its own long-standing equilibrium, with Woodcarver's city-state as an established power.",
        "disruption": "Straumli Realm researchers excavate a five-billion-year-old archive, inadvertently awakening and releasing the Blight — a catastrophically powerful malevolent transcendent intelligence that begins consuming civilizations, destroys Relay, annihilates Sjandra Kei killing twenty-five billion people, and pursues the refugee ship carrying children to the Bottom of the Beyond.",
        "recognition": "Ravna and Pham, aboard the Out of Band II, come to understand the full scale of the Blight's expansion through intercalary net postings, Grondr's final transmissions, the destruction of Relay around them, and the revelation that Skroderider skrodes have been compromised as Blight weapons — culminating in the understanding that only their mission to the Tines' planet can provide a Countermeasure against the Blight.",
        "repair": "The OOB crew races to Tines' World through Zone storms and enemy pursuit; Johanna negotiates survival and technology transfer among the Tines packs; Woodcarver and Johanna forge an alliance against Flenser/Steel; Pham leads forces into Steel's castle to recover Jefri; and ultimately Pham triggers the Countermeasure — a Zone surge that pushes the Slowness thousands of light-years upward through the Beyond and into the Transcend, immersing the Blight.",
        "new_equilibrium": "A new, radically altered status quo emerges: a large galactic section is plunged permanently into the Slow Zone, the Blight is likely destroyed, and the Blighter fleet is frozen thousands of years away. On Tines' World, Ravna plans to revive the 151 sleeping children, Woodcarver prepares a school for human-Tines cooperation, and the planet becomes a seed of future civilization — salvation and catastrophe permanently intertwined, with the final epistolary ping reporting total silence where the Transcend once was."
      },
      "characters": [
        {
          "name": "The ghosts",
          "slug": "the-ghosts",
          "aliases": [
            "the hopeful one",
            "copies"
          ],
          "role": "Hidden allies",
          "summary": "Two consciousnesses that exist hidden within the system, conspiring against the newborn evil."
        },
        {
          "name": "The newborn Power",
          "slug": "the-newborn-power",
          "aliases": [
            "the evil",
            "the overness"
          ],
          "role": "Antagonist",
          "summary": "A malevolent entity awakened from the Straumli archive, seeking to spread across interstellar space."
        },
        {
          "name": "Jefri Olsndot",
          "slug": "jefri-olsndot",
          "aliases": [
            "Two-Legs",
            "the alien",
            "Johanna",
            "Jefri",
            "Dad",
            "Father",
            "Mom",
            "Mother"
          ],
          "role": "Human survivor/advisor",
          "summary": "Eight-year-old human boy held by Steel's faction, believes Steel is protecting him while being manipulated into helping with technical tasks."
        },
        {
          "name": "Peregrine Wickwrackscar",
          "slug": "peregrine-wickwrackscar",
          "aliases": [
            "Wickwrackrum",
            "Peregrine",
            "Wickwrackscar",
            "Scarbutt",
            "Pilgrim",
            "Peregrine Wrickwrackscar"
          ],
          "role": "Supporting character",
          "summary": "A pilgrim and native of Tines' world who rescues Johanna; originally a four-member pack, becomes a new combination after losing one member and gaining 'Scar'."
        },
        {
          "name": "Scriber Jaqueramaphan",
          "slug": "scriber-jaqueramaphan",
          "aliases": [
            "Scriber",
            "Jaqueramaphan"
          ],
          "role": "Supporting character",
          "summary": "Pack attempting to befriend Johanna and study alien technology, rejected by her but determined to prove his value."
        },
        {
          "name": "Scar",
          "slug": "scar",
          "aliases": [
            "the scarred one"
          ],
          "role": "Pack member",
          "summary": "A singleton fragment from the Flenserist infantry who joins Peregrine's pack, bringing military memories."
        },
        {
          "name": "Tyrathect",
          "slug": "tyrathect",
          "aliases": [
            "the Fragment",
            "Mr. Skinner",
            "Flenser-in-Waiting",
            "Flenser Fragment",
            "Mr. Tyrathect",
            "the singleton",
            "The Cloak"
          ],
          "role": "antagonist-turned-negotiator",
          "summary": "A pack composed of three Republic members and two Flenser members; maintains a masquerade as Flenser while secretly opposing Steel's plans."
        },
        {
          "name": "Ravna",
          "slug": "ravna",
          "aliases": [
            "Ravna Bergsndot"
          ],
          "role": "Protagonist",
          "summary": "Apprentice at Vrinimi Org on Relay, managing communication with Jefri and advocating for a rescue mission to save the children."
        },
        {
          "name": "Grondr",
          "slug": "grondr",
          "aliases": [],
          "role": "Vrinimi Org superior",
          "summary": "A superior at the Vrinimi Organization who informs Ravna about the Straumli situation and the Power's interest."
        },
        {
          "name": "Steel",
          "slug": "steel",
          "aliases": [
            "Lord Steel",
            "Mister Steel"
          ],
          "role": "Antagonist",
          "summary": "Flenser's successor who rules Hidden Island; attacked the alien ship out of greed and now seeks to exploit alien technology for world conquest."
        },
        {
          "name": "Blueshell",
          "slug": "blueshell",
          "aliases": [],
          "role": "Supporting character",
          "summary": "A Skroderider trader who witnessed events at Straumli Realm; glib and talkative, mated to Greenstalk, can be sneaky but is reined in by his partner."
        },
        {
          "name": "Greenstalk",
          "slug": "greenstalk",
          "aliases": [],
          "role": "Supporting character",
          "summary": "A Skroderider trader, Blueshell's mate; shy yet stubborn with an honest personality that could be a handicap in trading."
        },
        {
          "name": "Pham Nuwen",
          "slug": "pham-nuwen",
          "aliases": [
            "Emissary Device",
            "Pham",
            "Sir Pham"
          ],
          "role": "Pilot/rescued protagonist",
          "summary": "Mysterious man with fragmented memories, revealed to be an emissary device of the Power Old One, capable of autonomous operation with fabricated memories."
        },
        {
          "name": "Woodcarver",
          "slug": "woodcarver",
          "aliases": [
            "Queen Woodcarver",
            "Queen"
          ],
          "role": "Ruler of Woodcarvers Domain",
          "summary": "Six-hundred-year-old pack who studied soul-shaping through selective breeding; now deteriorating but determined to understand the alien technology."
        },
        {
          "name": "Scrupilo",
          "slug": "scrupilo",
          "aliases": [
            "Scrup"
          ],
          "role": "Woodcarver's advisor",
          "summary": "A prickly, curious pack who serves as Woodcarver's advisor; interested in the alien's anatomy and capabilities."
        },
        {
          "name": "Vendacious",
          "slug": "vendacious",
          "aliases": [],
          "role": "Woodcarver's chamberlain",
          "summary": "Traitor pack who interrogates and tortures Johanna; killed Scriber; seeks to survive by playing both sides."
        },
        {
          "name": "Shreck",
          "slug": "shreck",
          "aliases": [],
          "role": "Steel's advisor",
          "summary": "Steel's advisor who brings intelligence from Woodcarvers."
        },
        {
          "name": "Amdi",
          "slug": "amdi",
          "aliases": [
            "Amdiranifani",
            "Amdijefri",
            "Puppies"
          ],
          "role": "Supporting character",
          "summary": "Young pack of puppies, Jefri's friend, showing genius intelligence and helping Jefri understand and operate alien technology."
        },
        {
          "name": "Old One",
          "slug": "old-one",
          "aliases": [],
          "role": "Power/Entity",
          "summary": "Transcendent Power that created Pham Nuwen as an Emissary, initially curious about the Straumli situation but now largely indifferent."
        },
        {
          "name": "Øvn Nilsndot",
          "slug": "vn-nilsndot",
          "aliases": [],
          "role": "Possessed human",
          "summary": "Human from Straumli Realm now possessed by the Blight, appearing in propaganda videos with a soul-dead expression."
        },
        {
          "name": "Ja",
          "slug": "ja",
          "aliases": [
            "Scriber fragment"
          ],
          "role": "Victim",
          "summary": "Surviving fragment of murdered Scriber, severely wounded with broken spine, uncertain if he can reintegrate."
        },
        {
          "name": "Saint Rihndell",
          "slug": "saint-rihndell",
          "aliases": [],
          "role": "Helper",
          "summary": "Tusk-leg trader who accepts flamed trellises in exchange for repairs and agrav refit."
        },
        {
          "name": "Owner Limmende",
          "slug": "owner-limmende",
          "aliases": [],
          "role": "Fleet commander",
          "summary": "Leader of the Aniara Fleet (Sjandra Kei survivors) who distrusts Pham and demands to board the OOB."
        },
        {
          "name": "Kjet Svensndot",
          "slug": "kjet-svensndot",
          "aliases": [],
          "role": "Group Captain",
          "summary": "Group Captain of Ølvira; coordinates Commercial Security fleet against Blight forces; leads mutiny against compromised orders."
        }
      ],
      "frameworks_mapped": [
        "Protocol Fiction Mapping",
        "Actantial Model",
        "Todorov's Equilibrium",
        "The Freytag Pyramid",
        "Propp's Morphology",
        "Genette's Narrative",
        "The Monomyth",
        "Dan Harmon",
        "Save the Cat",
        "Kishōtenketsu",
        "The Three-Act Structure",
        "Lévi-Strauss's Binary Oppositions",
        "Cognitive Estrangement",
        "Bakhtin's Chronotope",
        "Aristotelian Poetics",
        "Jungian Archetypal Analysis",
        "Genette's Transtextuality"
      ],
      "score_reliability": {
        "state": "contested",
        "threshold": 0.2,
        "runs_total": 9,
        "versions_compared": [
          "2.5"
        ],
        "max_spread": 0.65,
        "contested": [
          {
            "axis": "threat_scale",
            "version": "2.5",
            "spread": 0.65,
            "low": {
              "label": "NTSMR-2.5-deepseek/deepseek-v3.2",
              "model": "deepseek/deepseek-v3.2",
              "effort": "?",
              "value": 0.3
            },
            "high": {
              "label": "NTSMR-2.5-z-ai/glm-4.7",
              "model": "z-ai/glm-4.7",
              "effort": "?",
              "value": 0.95
            }
          },
          {
            "axis": "time_linearity",
            "version": "2.5",
            "spread": 0.4,
            "low": {
              "label": "NTSMR-2.5-deepseek/deepseek-v3.2",
              "model": "deepseek/deepseek-v3.2",
              "effort": "?",
              "value": 0.25
            },
            "high": {
              "label": "NTSMR-2.5-claude-sonnet-4-6-low",
              "model": "claude-sonnet-4-6",
              "effort": "low",
              "value": 0.65
            }
          },
          {
            "axis": "protagonist_fate",
            "version": "2.5",
            "spread": 0.27,
            "low": {
              "label": "NTSMR-2.5-z-ai/glm-4.7",
              "model": "z-ai/glm-4.7",
              "effort": "?",
              "value": 0.35
            },
            "high": {
              "label": "NTSMR-2.5-claude-sonnet-4-6-low",
              "model": "claude-sonnet-4-6",
              "effort": "low",
              "value": 0.62
            }
          },
          {
            "axis": "price_type",
            "version": "2.5",
            "spread": 0.25,
            "low": {
              "label": "NTSMR-2.5-z-ai/glm-4.7",
              "model": "z-ai/glm-4.7",
              "effort": "?",
              "value": 0.35
            },
            "high": {
              "label": "NTSMR-2.5-qwen/qwen3.5-plus-02-15",
              "model": "qwen/qwen3.5-plus-02-15",
              "effort": "?",
              "value": 0.6
            }
          },
          {
            "axis": "pacing_velocity",
            "version": "2.5",
            "spread": 0.23,
            "low": {
              "label": "NTSMR-2.5-claude-sonnet-4-6-low",
              "model": "claude-sonnet-4-6",
              "effort": "low",
              "value": 0.45
            },
            "high": {
              "label": "NTSMR-2.5-balanced-glm-5+deepseek-v3.2",
              "model": "balanced-routing",
              "effort": "?",
              "value": 0.68
            }
          },
          {
            "axis": "conflict_style",
            "version": "2.5",
            "spread": 0.2,
            "low": {
              "label": "NTSMR-2.5-claude-sonnet-4-6-low",
              "model": "claude-sonnet-4-6",
              "effort": "low",
              "value": 0.45
            },
            "high": {
              "label": "NTSMR-2.5-qwen/qwen3.5-plus-02-15",
              "model": "qwen/qwen3.5-plus-02-15",
              "effort": "?",
              "value": 0.65
            }
          }
        ]
      }
    },
    {
      "slug": "stanislaw_lem_a_good_shellacking",
      "title": "A Good Shellacking",
      "author": "Stanislaw Lem",
      "year": 1965,
      "medium": "short_story",
      "genre_tags": [],
      "tropes": [],
      "quadrant_scores": {
        "time_linearity": 0.08,
        "pacing_velocity": 0.38,
        "threat_scale": 0.12,
        "protagonist_fate": 0.28,
        "conflict_style": 0.35,
        "price_type": 0.45
      },
      "provenance": {
        "analysis_run": "NTSMR-2.5-claude-sonnet-4-6-low",
        "analysis_body_sha256": "64c41c6eb92d3bfdb8ba114718fa947354eee68c3eac43a679fa37a0d8d3c8d2",
        "synthesis": {
          "path": "nartopo-tools/artifacts/stanislaw_lem_a_good_shellacking.md.ntsmr-2-5-claude-sonnet-4-6-low.synthesis.json",
          "sha256": "3fa4f4f24089ccdfed2c88e462c2680064cb3c41376cc6e80b77271214b11f2f"
        },
        "report": {
          "path": "nartopo-tools/artifacts/stanislaw_lem_a_good_shellacking.md.ntsmr-2-5-claude-sonnet-4-6-low.report.json",
          "sha256": "0245b91237e14e9e33018df1e7f4c93c60541651d37325d7469e8f0b8d59296a"
        },
        "source": {
          "path": "Stanislaw Lem/A Good Shellacking.txt",
          "sha256": "3563a11c8e76a77a5ec1ef3e7ed1d1742abcd9b2df6993d9a6b0cd2a6428e11b",
          "digest_observed_at": "2026-09-09",
          "digest_at_analysis_run": null,
          "edition": null,
          "edition_status": "unresolved"
        },
        "pipeline_revision_at_run": null,
        "verification": {
          "source": "unverified",
          "human_review": "unreviewed",
          "bibliography": "unverified"
        },
        "issues": [],
        "todorov_status": "recovered-from-synthesis",
        "work_identity": {
          "title": "A Good Shellacking",
          "author": "Stanislaw Lem",
          "year": 1965
        }
      },
      "ntsmr": {
        "version": "2.5",
        "primary_run_label": "NTSMR-2.5-claude-sonnet-4-6-low",
        "runs": {
          "NTSMR-2.3-claude-sonnet-4-6-low": {
            "pipeline_version": "2.3",
            "backend": "claude",
            "model": "claude-sonnet-4-6",
            "scores": {
              "time_linearity": 0.15,
              "pacing_velocity": 0.6,
              "threat_scale": 0.1,
              "protagonist_fate": 0.3,
              "conflict_style": 0.65,
              "price_type": 0.75
            },
            "score_space": "site-v1",
            "reasoning_effort": "low"
          },
          "NTSMR-2.4-claude-sonnet-4-6-low": {
            "pipeline_version": "2.4",
            "backend": "claude",
            "model": "claude-sonnet-4-6",
            "scores": {
              "time_linearity": 0.18,
              "pacing_velocity": 0.3,
              "threat_scale": 0.12,
              "protagonist_fate": 0.38,
              "conflict_style": 0.35,
              "price_type": 0.55
            },
            "score_space": "site-v1",
            "reasoning_effort": "low"
          },
          "NTSMR-2.5-claude-sonnet-4-6-low": {
            "pipeline_version": "2.5",
            "backend": "claude",
            "model": "claude-sonnet-4-6",
            "scores": {
              "time_linearity": 0.08,
              "pacing_velocity": 0.38,
              "threat_scale": 0.12,
              "protagonist_fate": 0.28,
              "conflict_style": 0.35,
              "price_type": 0.45
            },
            "score_space": "site-v1",
            "reasoning_effort": "low"
          },
          "NTSMR-2.5-balanced-glm-5+deepseek-v3.2": {
            "pipeline_version": "2.5",
            "backend": "openrouter",
            "model": "balanced-routing",
            "scores": {
              "time_linearity": 0.15,
              "pacing_velocity": 0.6,
              "threat_scale": 0.3,
              "protagonist_fate": 0.3,
              "conflict_style": 0.7,
              "price_type": 0.65
            },
            "score_space": "site-v1",
            "score_only": true,
            "source_run_label": "NTSMR-2.5-claude-sonnet-4-6-low"
          }
        }
      },
      "todorov_stages": {
        "equilibrium": "Klapaucius and Trurl exist as rival constructor colleagues in a state of competitive but stable professional relationship, with Klapaucius engaged in his own work and receiving Trurl's machine as a seemingly ordinary gift.",
        "disruption": "Klapaucius demands a perfect duplicate of Trurl from the machine, lures it to his cellar, ties it up, and beats it with a crowbar—an act of violence against what turns out to be Trurl himself hiding inside the machine as a spy.",
        "recognition": "Klapaucius watches from his bedroom window suppressing laughter as the battered figure escapes and flees home, confirming he understood the situation all along; Trurl likewise recognizes his humiliation when Klapaucius visits the next day and sees him visibly dented despite attempts at repair.",
        "repair": "Both characters engage in mutual face-saving: Klapaucius offers a disingenuous account framing the beating as a defense of Trurl's honor and lavishes Trurl with flattery about his genius; Trurl, mollified, invents the story of disassembling the copy to protect Klapaucius from its vengeance, and the two part as friends.",
        "new_equilibrium": "Trurl retells the incident everywhere to his own glory, wins the King's Order of the Great Parallax and erases his old reputation as builder of the World's Stupidest Computer; Klapaucius, furious at being outmaneuvered in the court of public opinion, discovers Trurl has also beaten him to completing his own Machine to Grant Your Every Wish—a new equilibrium in which Trurl holds the social and reputational advantage."
      },
      "characters": [
        {
          "name": "Klapaucius",
          "slug": "klapaucius",
          "aliases": [],
          "role": "Constructor, deuteragonist/trickster",
          "summary": "Robot constructor who receives the wish-granting machine, uses it to manufacture a duplicate of Trurl, beats it savagely while maintaining plausible deniability, outmaneuvers Trurl's humiliation through social cunning, and ends the story furious at being denied credit."
        },
        {
          "name": "Trurl",
          "slug": "trurl",
          "aliases": [
            "Trurl the Magnificent",
            "the real Trurl",
            "the Constructor of the World's Stupidest Computer"
          ],
          "role": "Constructor, protagonist/foil",
          "summary": "Klapaucius's colleague and rival who secretly hid inside his own wish-granting machine to spy on Klapaucius, gets beaten, escapes, and ultimately converts the humiliating incident into a triumph of reputation at the Royal Court."
        },
        {
          "name": "The Machine to Grant Your Every Wish",
          "slug": "the-machine-to-grant-your-every-wish",
          "aliases": [],
          "role": "Artifact/vehicle/helper",
          "summary": "A potbellied, four-legged machine sent by Trurl as a supposed gift; produces material goods and a perfect duplicate of Trurl; actually contains Trurl himself hidden in its belly."
        },
        {
          "name": "The King",
          "slug": "the-king",
          "aliases": [],
          "role": "Minor offstage authority figure",
          "summary": "Ruler whose court hears Trurl's retold story and who rewards Trurl with the Order of the Great Parallax."
        }
      ],
      "frameworks_mapped": [
        "Protocol Fiction Mapping",
        "Actantial Model",
        "Todorov's Equilibrium",
        "The Freytag Pyramid",
        "Propp's Morphology",
        "Genette's Narrative",
        "The Monomyth",
        "Dan Harmon",
        "Save the Cat",
        "Kishōtenketsu",
        "The Three-Act Structure",
        "Lévi-Strauss's Binary Oppositions",
        "Cognitive Estrangement",
        "Bakhtin's Chronotope",
        "Aristotelian Poetics",
        "Jungian Archetypal Analysis",
        "Genette's Transtextuality"
      ],
      "score_reliability": {
        "state": "contested",
        "threshold": 0.2,
        "runs_total": 4,
        "versions_compared": [
          "2.5"
        ],
        "max_spread": 0.35,
        "contested": [
          {
            "axis": "conflict_style",
            "version": "2.5",
            "spread": 0.35,
            "low": {
              "label": "NTSMR-2.5-claude-sonnet-4-6-low",
              "model": "claude-sonnet-4-6",
              "effort": "low",
              "value": 0.35
            },
            "high": {
              "label": "NTSMR-2.5-balanced-glm-5+deepseek-v3.2",
              "model": "balanced-routing",
              "effort": "?",
              "value": 0.7
            }
          },
          {
            "axis": "pacing_velocity",
            "version": "2.5",
            "spread": 0.22,
            "low": {
              "label": "NTSMR-2.5-claude-sonnet-4-6-low",
              "model": "claude-sonnet-4-6",
              "effort": "low",
              "value": 0.38
            },
            "high": {
              "label": "NTSMR-2.5-balanced-glm-5+deepseek-v3.2",
              "model": "balanced-routing",
              "effort": "?",
              "value": 0.6
            }
          },
          {
            "axis": "price_type",
            "version": "2.5",
            "spread": 0.2,
            "low": {
              "label": "NTSMR-2.5-claude-sonnet-4-6-low",
              "model": "claude-sonnet-4-6",
              "effort": "low",
              "value": 0.45
            },
            "high": {
              "label": "NTSMR-2.5-balanced-glm-5+deepseek-v3.2",
              "model": "balanced-routing",
              "effort": "?",
              "value": 0.65
            }
          }
        ]
      }
    },
    {
      "slug": "stanislaw_lem_a_perfect_vacuum",
      "title": "A Perfect Vacuum",
      "author": "Stanislaw Lem",
      "year": 1971,
      "medium": "collection",
      "genre_tags": [
        "science fiction",
        "philosophical sf"
      ],
      "tropes": [],
      "quadrant_scores": {
        "time_linearity": 0.85,
        "pacing_velocity": 0.8,
        "threat_scale": 0.25,
        "protagonist_fate": 0.55,
        "conflict_style": 0.88,
        "price_type": 0.85
      },
      "baseline_quadrant_scores": {
        "time_linearity": 0.9,
        "pacing_velocity": 1,
        "threat_scale": 0.9,
        "protagonist_fate": 0.8,
        "conflict_style": 0.9,
        "price_type": 1
      },
      "provenance": {
        "analysis_run": "NTSMR-2.5-claude-sonnet-4-6-low",
        "analysis_body_sha256": "d7aaac1654f5eb1432cf3b208dbd0219958ad4e87ed7d9d92abcbfbad2df96c3",
        "synthesis": {
          "path": "nartopo-tools/artifacts/stanislaw_lem_a_perfect_vacuum.md.ntsmr-2-5-claude-sonnet-4-6-low.synthesis.json",
          "sha256": "7f15596fe8eb19459eb1cf858781e4f540936d4e9fe40326b329b6ce31e4b5f1"
        },
        "report": {
          "path": "nartopo-tools/artifacts/stanislaw_lem_a_perfect_vacuum.md.ntsmr-2-5-claude-sonnet-4-6-low.report.json",
          "sha256": "90984b8c3cbad8262b15b5938666c0422556121b4d865ffa236b1618e463fb35"
        },
        "source": {
          "path": "Stanislaw Lem/A Perfect Vacuum (self-review).txt",
          "sha256": "f409832893936123d49b2b5925cdda65a9b1b2cbec41eb32abbc2136d0c6078c",
          "digest_observed_at": "2026-09-09",
          "digest_at_analysis_run": null,
          "edition": null,
          "edition_status": "unresolved"
        },
        "pipeline_revision_at_run": null,
        "verification": {
          "source": "unverified",
          "human_review": "unreviewed",
          "bibliography": "unverified"
        },
        "issues": [],
        "todorov_status": "recovered-from-synthesis",
        "work_identity": {
          "title": "A Perfect Vacuum",
          "author": "Stanislaw Lem",
          "year": 1971
        }
      },
      "ntsmr": {
        "version": "2.5",
        "primary_run_label": "NTSMR-2.5-claude-sonnet-4-6-low",
        "runs": {
          "NTSMR-2.3-gemini-3.1-pro-preview": {
            "pipeline_version": "2.3",
            "backend": "gemini",
            "model": "gemini-3.1-pro-preview",
            "scores": {
              "time_linearity": 0.95,
              "pacing_velocity": 0.95,
              "threat_scale": 0.95,
              "protagonist_fate": 0.85,
              "conflict_style": 0.9,
              "price_type": 0.95
            },
            "score_space": "site-v1"
          },
          "NTSMR-2.3-claude-sonnet-4-6-low": {
            "pipeline_version": "2.3",
            "backend": "claude",
            "model": "claude-sonnet-4-6",
            "scores": {
              "time_linearity": 0.92,
              "pacing_velocity": 0.91,
              "threat_scale": 0.85,
              "protagonist_fate": 0.78,
              "conflict_style": 0.88,
              "price_type": 0.93
            },
            "score_space": "site-v1",
            "reasoning_effort": "low"
          },
          "NTSMR-2.4-claude-sonnet-4-6-low": {
            "pipeline_version": "2.4",
            "backend": "claude",
            "model": "claude-sonnet-4-6",
            "scores": {
              "time_linearity": 0.82,
              "pacing_velocity": 0.75,
              "threat_scale": 0.72,
              "protagonist_fate": 0.55,
              "conflict_style": 0.8,
              "price_type": 0.78
            },
            "score_space": "site-v1",
            "reasoning_effort": "low"
          },
          "NTSMR-2.5-claude-sonnet-4-6-low": {
            "pipeline_version": "2.5",
            "backend": "claude",
            "model": "claude-sonnet-4-6",
            "scores": {
              "time_linearity": 0.85,
              "pacing_velocity": 0.8,
              "threat_scale": 0.25,
              "protagonist_fate": 0.55,
              "conflict_style": 0.88,
              "price_type": 0.85
            },
            "score_space": "site-v1",
            "reasoning_effort": "low"
          },
          "NTSMR-2.5-balanced-glm-5+deepseek-v3.2": {
            "pipeline_version": "2.5",
            "backend": "openrouter",
            "model": "balanced-routing",
            "scores": {
              "time_linearity": 0.9,
              "pacing_velocity": 0.88,
              "threat_scale": 0.2,
              "protagonist_fate": 0.75,
              "conflict_style": 0.9,
              "price_type": 0.85
            },
            "score_space": "site-v1",
            "score_only": true,
            "source_run_label": "NTSMR-2.5-claude-sonnet-4-6-low"
          }
        }
      },
      "todorov_stages": {
        "equilibrium": "The opening critical frame establishes an apparent equilibrium: A Perfect Vacuum is introduced as a playful literary experiment, a collection of pseudo-reviews of nonexistent books. Lem's theoretical Introduction presents the pseudo-review form as a liberating aesthetic device, and the critic initially receives this framing as a plausible, if overextended, joke. The book exists within a stable generic contract — a witty formal experiment.",
        "disruption": "The disruption emerges when the critic, in opposition to Lem's own framing, imposes a taxonomy that reveals the third group of pieces — 'De Impossibilitate Vitae,' 'Civilization as Error,' and 'The New Cosmogony' — as genuine intellectual heresies inverting Lem's known positions. This reframes the entire collection: the pseudo-review form is not aesthetic liberation but psychological stratagem, a means of voicing heterodox thoughts about chance, physics, and cosmology without accountability. The book's stated purpose collapses under scrutiny.",
        "recognition": "Recognition occurs as the critic articulates his central thesis: the Introduction is not a theoretical manifesto but a conjuror's misdirection, a deliberately exhibitory gesture designed to draw attention from what Lem is actually doing. The critic names A Perfect Vacuum as a tale of what is desired but is not to be had — a book of ungranted wishes — recognizing that the fictional authors are masks for Lem's own suppressed intellectual ambitions.",
        "repair": "The critic's act of analysis itself constitutes the repair attempt — he reads through the book as through a microscope to observe the author, dismantling Lem's protective fictions one by one. By exposing the pseudo-review form as pretext rather than premise, he attempts to restore interpretive stability and reestablish the critic's authority over the text. This effort to fix the broken frame is the structural work of the review.",
        "new_equilibrium": "The new equilibrium is radically unstable and self-consuming. The critic springs the recursive trap: Lem's only remaining evasion is to claim he himself authored this very review and added it to A Perfect Vacuum, making the critic a fictional creation within the same metafictional structure he has been analyzing. The frame collapses entirely. The new status quo is one in which no critical position is stable, the boundary between reviewer and reviewed is dissolved, and the book becomes a perfect closed loop — a self-implicating structure with no outside."
      },
      "characters": [
        {
          "name": "S. Lem",
          "slug": "s-lem",
          "aliases": [],
          "role": "Reviewer/Author",
          "summary": "The author of the framing anthology 'A Perfect Vacuum' and the theoretical introduction 'Auto-Momus', acting as a faux-reviewer of nonexistent books."
        },
        {
          "name": "Marcel Coscat",
          "slug": "marcel-coscat",
          "aliases": [],
          "role": "Fictional Author",
          "summary": "The fictional author of 'Les Robinsonades', a novel exploring the sociology of isolation."
        },
        {
          "name": "Robinson",
          "slug": "robinson",
          "aliases": [],
          "role": "Protagonist",
          "summary": "A logician, extreme conventionalist, and philosopher who survives the shipwreck of the Patricia and attempts to logically build a synthetic universe and social hierarchy from zero on an uninhabited island."
        },
        {
          "name": "Snibbins",
          "slug": "snibbins",
          "aliases": [],
          "role": "Servant",
          "summary": "A fat, loyal, and properly stupid butler, valet, and footman invented/imagined by Robinson to elevate his own status as master."
        },
        {
          "name": "Patrick Hannahan",
          "slug": "patrick-hannahan",
          "aliases": [],
          "role": "Fictional Author",
          "summary": "The fictional author of 'Gigamesh', a highly complex, referential novel intended to outdo James Joyce."
        },
        {
          "name": "Maesch",
          "slug": "maesch",
          "aliases": [],
          "role": "Condemned man",
          "summary": "A gangster condemned to hang in 'Gigamesh', whose name is an anagram of 'Shema' and 'Gig', representing the Antigod and the personification of evil."
        },
        {
          "name": "Andrew B. Cross",
          "slug": "andrew-b-cross",
          "aliases": [],
          "role": "Gynecologist",
          "summary": "A gynecologist in Cincinnati whom Maesch stomps in 'Gigamesh', his name acting as a dense, acronymic collection of allusions."
        },
        {
          "name": "The Old Man",
          "slug": "the-old-man",
          "aliases": [],
          "role": "Survivor/Wanderer",
          "summary": "A lonely old hermit, possibly the former president or chief designer of General Sexotics, who wanders the dusty underground vaults of forgotten synthetic sex products after the Crash of 1998."
        },
        {
          "name": "Taudlitz",
          "slug": "taudlitz",
          "aliases": [
            "King Louis",
            "the monarch-Gruppenführer"
          ],
          "role": "Monarch / Former SS Officer",
          "summary": "A former SS Gruppenführer who recreates an elaborate French royal court in the Argentine interior, aspiring to total transfiguration before being murdered by his courtiers over counterfeit dollars."
        },
        {
          "name": "Hans Wehrholz",
          "slug": "hans-wehrholz",
          "aliases": [
            "Marquis de Beaujolais"
          ],
          "role": "Courtier",
          "summary": "A former SS man playing the role of the Marquis de Beaujolais, who pounds his spouse and throws her whorish past in her face."
        },
        {
          "name": "Bertrand",
          "slug": "bertrand",
          "aliases": [],
          "role": "Hamlet figure",
          "summary": "A youth in the colony who recognizes the horrifying truth of his surroundings and contemplates madness or escape."
        },
        {
          "name": "Duchesse de Clicot",
          "slug": "duchesse-de-clicot",
          "aliases": [],
          "role": "Courtier / Former Prostitute",
          "summary": "An old prostitute from Rio who takes a fancy to Bertrand, gets him into bed, and sternly advises him to keep quiet to save his neck."
        },
        {
          "name": "Mme Solange",
          "slug": "mme-solange",
          "aliases": [],
          "role": "Fictional Author",
          "summary": "The fictional author of 'Rien du tout, ou la consequence', a novel attempting the ontological experiment of writing about nothingness."
        },
        {
          "name": "Joachim Fersengeld",
          "slug": "joachim-fersengeld",
          "aliases": [],
          "role": "Fictional Author",
          "summary": "Author who proposes draconian legal measures and an anticreative police force to stop underground creative activity and destroy the glut of existing cultural works."
        },
        {
          "name": "Gian Carlo Spallanzani",
          "slug": "gian-carlo-spallanzani",
          "aliases": [],
          "role": "Fictional Author",
          "summary": "A young Italian writer who authors 'The Idiot' to demonstrate a weak heresy against Dostoevsky and explore how love alters the shame and ugliness of the world."
        },
        {
          "name": "Ralph Summers",
          "slug": "ralph-summers",
          "aliases": [],
          "role": "Fictional Critic",
          "summary": "A well-known critic who vehemently attacks the 'U-Write-It' literary erector set, viewing it as a pornographic disgrace and a desecration of classic literature."
        },
        {
          "name": "Homer M. Odysseus",
          "slug": "homer-m-odysseus",
          "aliases": [
            "Odysseus"
          ],
          "role": "Fictional Protagonist / Coordinator",
          "summary": "A relentless coordinator who sets up headquarters in Majorca to direct a worldwide search through asylums, prisons, and dumps to discover unrecognized, first-order geniuses."
        },
        {
          "name": "Mr. Smith",
          "slug": "mr-smith",
          "aliases": [
            "Smith"
          ],
          "role": "Fictional Client",
          "summary": "A client of Being Inc. who desires to be a stern judge or, in another arranged scenario, to heroically save Mrs. Brown in a train wreck."
        },
        {
          "name": "Mr. Jones",
          "slug": "mr-jones",
          "aliases": [],
          "role": "Fictional Client",
          "summary": "A client of Being Inc. who wishes to flog his children while maintaining the conviction that he is an upright father."
        },
        {
          "name": "Mrs. Brown",
          "slug": "mrs-brown",
          "aliases": [],
          "role": "Fictional Target",
          "summary": "The wife of Mr. Smith's friend, whom Smith intends to save in an arranged train accident orchestrated by Being Inc."
        },
        {
          "name": "Ed Hammer III",
          "slug": "ed-hammer-iii",
          "aliases": [
            "Hammer"
          ],
          "role": "President of Being Inc.",
          "summary": "The young president of Being Inc. who takes on Jessamine Chest's unprecedented request for an unarranged life, leading to the discovery of the corporations' total control over destiny."
        },
        {
          "name": "Jessamine Chest",
          "slug": "jessamine-chest",
          "aliases": [
            "Mrs. Jessamine Chest"
          ],
          "role": "Eccentric Heiress",
          "summary": "A millionairess who demands from Being Inc. a life of total authenticity, purged of all corporate arranging interference."
        },
        {
          "name": "Wilhelm Klopper",
          "slug": "wilhelm-klopper",
          "aliases": [
            "Privatdozent W. Klopper",
            "Klopper"
          ],
          "role": "Fictional Author",
          "summary": "The German author of 'Die Kultur als Fehler' (Civilization as Mistake), who argues that culture is merely an adaptational tool to justify the biological miseries imposed by evolution."
        },
        {
          "name": "Cezar Kouska",
          "slug": "cezar-kouska",
          "aliases": [
            "Benedykt Kouska",
            "Professor B. Kouska"
          ],
          "role": "Fictional Author / Professor",
          "summary": "Author of a two-volume work arguing that empirical probability is fundamentally flawed and using his own biographical thought experiments to prove it."
        },
        {
          "name": "Dobb",
          "slug": "dobb",
          "aliases": [],
          "role": "Experimenter and author",
          "summary": "Creator of the personoids and author of Non Serviam, who observes his creations without intervening and considers demanding gratitude from them to be absurd."
        },
        {
          "name": "Tammer",
          "slug": "tammer",
          "aliases": [],
          "role": "Creator of computer simulation",
          "summary": "Co-creator, along with Bovine, of the computer simulation of the human psyche that laid the groundwork for personetics."
        },
        {
          "name": "Bovine",
          "slug": "bovine",
          "aliases": [],
          "role": "Creator of computer simulation",
          "summary": "Co-creator, along with Tammer, of the computer simulation of the human psyche."
        },
        {
          "name": "ADNA",
          "slug": "adna",
          "aliases": [],
          "role": "Personoid",
          "summary": "A personoid inhabiting Dobb's mathematical universum who questions the nature of evil."
        },
        {
          "name": "ADAN 300",
          "slug": "adan-300",
          "aliases": [],
          "role": "Personoid",
          "summary": "A 300th-generation personoid who philosophizes about God, justice, and morality, concluding that personoids serve only themselves."
        },
        {
          "name": "Acheropoulos",
          "slug": "acheropoulos",
          "aliases": [],
          "role": "Fictional physicist",
          "summary": "Author of The New Cosmogony who theorizes that the universe's physics are the result of a Game played by ancient civilizations."
        },
        {
          "name": "Ronald Schuer",
          "slug": "ronald-schuer",
          "aliases": [],
          "role": "Fictional author/theorist",
          "summary": "Author of 'The Mind-made Universe: Laws vs. Rules' who theorizes that the Players' cosmometamorphic power obliterates their memory, causing the Game to proceed in a cyclical collapse and rebirth."
        },
        {
          "name": "Slysz",
          "slug": "slysz",
          "aliases": [],
          "role": "Theorist",
          "summary": "A thinker referenced by Schuer regarding the state of the Universe after billions of years."
        },
        {
          "name": "Professor Ernst Ahrens",
          "slug": "professor-ernst-ahrens",
          "aliases": [
            "Ahrens"
          ],
          "role": "Teacher",
          "summary": "The narrator's teacher who reviewed the narrator's early drafts of the Game conception and suggested it might be a blueprint for the future."
        },
        {
          "name": "Narrator",
          "slug": "narrator",
          "aliases": [],
          "role": "Lecturer / Theorist",
          "summary": "The speaker delivering a lecture on the Game of Intelligences, presenting theories on the Universe as a palimpsest of Games."
        }
      ],
      "frameworks_mapped": [
        "Protocol Fiction Mapping",
        "Actantial Model",
        "Todorov's Equilibrium",
        "The Freytag Pyramid",
        "Propp's Morphology",
        "Genette's Narrative",
        "The Monomyth",
        "Dan Harmon",
        "Save the Cat",
        "Kishōtenketsu",
        "The Three-Act Structure"
      ],
      "score_reliability": {
        "state": "contested",
        "threshold": 0.2,
        "runs_total": 5,
        "versions_compared": [
          "2.5"
        ],
        "max_spread": 0.2,
        "contested": [
          {
            "axis": "protagonist_fate",
            "version": "2.5",
            "spread": 0.2,
            "low": {
              "label": "NTSMR-2.5-claude-sonnet-4-6-low",
              "model": "claude-sonnet-4-6",
              "effort": "low",
              "value": 0.55
            },
            "high": {
              "label": "NTSMR-2.5-balanced-glm-5+deepseek-v3.2",
              "model": "balanced-routing",
              "effort": "?",
              "value": 0.75
            }
          }
        ]
      }
    },
    {
      "slug": "stanislaw_lem_a_perfect_vacuum_story",
      "title": "A Perfect Vacuum (self-review)",
      "author": "Stanislaw Lem",
      "year": 1971,
      "medium": "short_story",
      "genre_tags": [],
      "tropes": [],
      "quadrant_scores": {
        "time_linearity": 0.25,
        "pacing_velocity": 0.75,
        "threat_scale": 0.2,
        "protagonist_fate": 0.65,
        "conflict_style": 0.85,
        "price_type": 0.85
      },
      "provenance": {
        "analysis_run": "NTSMR-2.5-claude-sonnet-4-6-low",
        "analysis_body_sha256": "e37155e56a2e8a46a74b746b84f44ddbf9b36b0498ac245237279ee5c679bbc6",
        "synthesis": {
          "path": "nartopo-tools/artifacts/stanislaw_lem_a_perfect_vacuum_story.md.ntsmr-2-5-claude-sonnet-4-6-low.synthesis.json",
          "sha256": "cc5199c6017bc0334ae3e3b4d19908452055142ce7ece978215a90b0bb93e824"
        },
        "report": {
          "path": "nartopo-tools/artifacts/stanislaw_lem_a_perfect_vacuum_story.md.ntsmr-2-5-claude-sonnet-4-6-low.report.json",
          "sha256": "423bfa74f4a6a8c092b05e576c4d07f0bd0e55bddc00ad5efd58a748f99321e1"
        },
        "source": {
          "path": "Stanislaw Lem/A Perfect Vacuum (self-review).txt",
          "sha256": "f409832893936123d49b2b5925cdda65a9b1b2cbec41eb32abbc2136d0c6078c",
          "digest_observed_at": "2026-09-09",
          "digest_at_analysis_run": null,
          "edition": null,
          "edition_status": "unresolved"
        },
        "pipeline_revision_at_run": null,
        "verification": {
          "source": "unverified",
          "human_review": "unreviewed",
          "bibliography": "unverified"
        },
        "issues": [],
        "todorov_status": "recovered-from-synthesis",
        "work_identity": {
          "title": "A Perfect Vacuum (self-review)",
          "author": "Stanislaw Lem",
          "year": 1971
        }
      },
      "ntsmr": {
        "version": "2.5",
        "primary_run_label": "NTSMR-2.5-claude-sonnet-4-6-low",
        "runs": {
          "NTSMR-2.3-gemini-3.1-pro-preview": {
            "pipeline_version": "2.3",
            "backend": "gemini",
            "model": "gemini-3.1-pro-preview",
            "scores": {
              "time_linearity": 0.4,
              "pacing_velocity": 0.95,
              "threat_scale": 0.8,
              "protagonist_fate": 0.95,
              "conflict_style": 0.9,
              "price_type": 1
            },
            "score_space": "site-v1"
          },
          "NTSMR-2.3-claude-sonnet-4-6-low": {
            "pipeline_version": "2.3",
            "backend": "claude",
            "model": "claude-sonnet-4-6",
            "scores": {
              "time_linearity": 0.15,
              "pacing_velocity": 0.92,
              "threat_scale": 0.65,
              "protagonist_fate": 0.55,
              "conflict_style": 0.88,
              "price_type": 0.91
            },
            "score_space": "site-v1",
            "reasoning_effort": "low"
          },
          "NTSMR-2.4-claude-sonnet-4-6-low": {
            "pipeline_version": "2.4",
            "backend": "claude",
            "model": "claude-sonnet-4-6",
            "scores": {
              "time_linearity": 0.15,
              "pacing_velocity": 0.7,
              "threat_scale": 0.25,
              "protagonist_fate": 0.45,
              "conflict_style": 0.85,
              "price_type": 0.88
            },
            "score_space": "site-v1",
            "reasoning_effort": "low"
          },
          "NTSMR-2.5-claude-sonnet-4-6-low": {
            "pipeline_version": "2.5",
            "backend": "claude",
            "model": "claude-sonnet-4-6",
            "scores": {
              "time_linearity": 0.25,
              "pacing_velocity": 0.75,
              "threat_scale": 0.2,
              "protagonist_fate": 0.65,
              "conflict_style": 0.85,
              "price_type": 0.85
            },
            "score_space": "site-v1",
            "reasoning_effort": "low"
          },
          "NTSMR-2.5-gemini-3.1-pro-preview": {
            "pipeline_version": "2.5",
            "backend": "gemini",
            "model": "gemini-3.1-pro-preview",
            "scores": {
              "time_linearity": 0.25,
              "pacing_velocity": 0.75,
              "threat_scale": 0.2,
              "protagonist_fate": 0.65,
              "conflict_style": 0.85,
              "price_type": 0.85
            },
            "score_space": "site-v1"
          },
          "NTSMR-2.5-balanced-glm-5+deepseek-v3.2": {
            "pipeline_version": "2.5",
            "backend": "openrouter",
            "model": "balanced-routing",
            "scores": {
              "time_linearity": 0.25,
              "pacing_velocity": 0.82,
              "threat_scale": 0.22,
              "protagonist_fate": 0.62,
              "conflict_style": 0.85,
              "price_type": 0.82
            },
            "score_space": "site-v1",
            "score_only": true,
            "source_run_label": "NTSMR-2.5-claude-sonnet-4-6-low"
          }
        }
      },
      "todorov_stages": {
        "equilibrium": "The literary tradition provides a stable interpretive framework: reviews are chained to real books, critics occupy a subordinate role, and authors like Lem are understood as practitioners of a known experimental form — reviews of nonexistent books — with acknowledged precursors in Borges and Rabelais. The collection A Perfect Vacuum appears to fit this tradition, its Introduction presenting the pseudo-review as a liberation of creative liberty.",
        "disruption": "The critic proposes a counter-taxonomy that ruptures the collection's self-presentation: the theoretical Introduction ('Auto-Momus') is reframed not as genuine poetics but as deliberate misdirection — a prestidigitator's gesture to divert attention from the real content. The three-group taxonomy exposes that most of the collection is not about formal experimentation at all.",
        "recognition": "The critic identifies the philosophically serious third group — especially the piece centered on a 'game of Universe' cosmological model — as the true center of the book, revealing that Lem is covertly attacking his own declared worldview of scientific rationalism. The pseudo-review form is recognized as a psychological defense: a way to shout out with laughter what one would dare not whisper in earnest.",
        "repair": "The critic's act of exposure itself constitutes the repair: by reading through the book as through a microscope to observe the author, the critic restores interpretive order and names A Perfect Vacuum for what it is — a book of ungranted wishes, a record of heterodox thoughts Lem could not commit to in earnest, using the joke form as excuse and pretext.",
        "new_equilibrium": "The frame collapses entirely into an unstable new equilibrium: the critic notes that Lem's only remaining subterfuge is to claim he himself wrote this very review and planted it in the collection, making the critic's exposure part of Lem's own game. The boundary between reviewer and reviewed, critic and author, dissolves — a new order in which no stable outside position is available and the act of criticism is absorbed into the text it analyzes."
      },
      "characters": [
        {
          "name": "The Critic",
          "slug": "the-critic",
          "aliases": [
            "Narrator",
            "Reviewer"
          ],
          "role": "Reviewer",
          "summary": "The unnamed author of the critique who analyzes and deconstructs S. Lem's book, eventually realizing the review itself might be a meta-fictional creation of Lem."
        },
        {
          "name": "S. Lem",
          "slug": "s-lem",
          "aliases": [
            "Lem",
            "Author"
          ],
          "role": "Author",
          "summary": "The writer of A Perfect Vacuum whose motives, anxieties, and philosophical ideas are the subject of the Critic's analysis."
        },
        {
          "name": "Jorge Luis Borges",
          "slug": "jorge-luis-borges",
          "aliases": [
            "Borges"
          ],
          "role": "Referenced author",
          "summary": "A contemporary writer cited as a predecessor in the art of reviewing nonexistent books."
        },
        {
          "name": "Herbert Quaine",
          "slug": "herbert-quaine",
          "aliases": [],
          "role": "Fictional author",
          "summary": "A fictional author created by Borges, referenced to establish the literary tradition of the pseudo-review."
        },
        {
          "name": "Rabelais",
          "slug": "rabelais",
          "aliases": [],
          "role": "Referenced author",
          "summary": "An early practitioner of the nonexistent book review, mentioned by the Critic."
        }
      ],
      "frameworks_mapped": [
        "Protocol Fiction Mapping",
        "Actantial Model",
        "Todorov's Equilibrium",
        "The Freytag Pyramid",
        "Propp's Morphology",
        "Genette's Narrative",
        "The Monomyth",
        "Dan Harmon",
        "Save the Cat",
        "Kishōtenketsu",
        "The Three-Act Structure",
        "Lévi-Strauss's Binary Oppositions",
        "Cognitive Estrangement",
        "Bakhtin's Chronotope",
        "Aristotelian Poetics",
        "Jungian Archetypal Analysis",
        "Genette's Transtextuality"
      ],
      "score_reliability": {
        "state": "replicated-agree",
        "threshold": 0.2,
        "runs_total": 6,
        "versions_compared": [
          "2.5"
        ],
        "max_spread": 0.07,
        "contested": []
      }
    },
    {
      "slug": "jeff_vandermeer_acceptance",
      "title": "Acceptance",
      "author": "Jeff VanderMeer",
      "year": 2014,
      "medium": "book",
      "genre_tags": [
        "science fiction",
        "new weird"
      ],
      "tropes": [],
      "quadrant_scores": {
        "time_linearity": 0.85,
        "pacing_velocity": 0.75,
        "threat_scale": 0.65,
        "protagonist_fate": 0.7,
        "conflict_style": 0.8,
        "price_type": 0.8
      },
      "baseline_quadrant_scores": {
        "time_linearity": 0.85,
        "pacing_velocity": 0.75,
        "threat_scale": 0.95,
        "protagonist_fate": 0.9,
        "conflict_style": 0.8,
        "price_type": 0.85
      },
      "provenance": {
        "analysis_run": "NTSMR-2.5-claude-sonnet-4-6-low",
        "analysis_body_sha256": "e1216fe71108001aff376b7e854b6a71c7fd94b4c77aa7d5ed5083c426b33fe1",
        "synthesis": {
          "path": "nartopo-tools/artifacts/jeff_vandermeer_acceptance.md.ntsmr-2-5-claude-sonnet-4-6-low.synthesis.json",
          "sha256": "58e6f0f0b6e4c399af2815e006790c46fa0aa3198ed78f03ffe44b018b4ffce5"
        },
        "report": {
          "path": "nartopo-tools/artifacts/jeff_vandermeer_acceptance.md.ntsmr-2-5-claude-sonnet-4-6-low.report.json",
          "sha256": "96a6198d9f4092fa2979f5fa208d49f383b4e16d8102878e8844fda9c31cfd4e"
        },
        "source": {
          "path": "Jeff VanderMeer/Acceptance (2014).txt",
          "sha256": "29a6be24913f8233c5f5358efaad22c2399669a26ba401f50871e3d39e55fc69",
          "digest_observed_at": "2026-09-09",
          "digest_at_analysis_run": null,
          "edition": null,
          "edition_status": "unresolved"
        },
        "pipeline_revision_at_run": null,
        "verification": {
          "source": "unverified",
          "human_review": "unreviewed",
          "bibliography": "unverified"
        },
        "issues": [],
        "todorov_status": "recovered-from-synthesis",
        "work_identity": {
          "title": "Acceptance",
          "author": "Jeff VanderMeer",
          "year": 2014
        }
      },
      "ntsmr": {
        "version": "2.5",
        "primary_run_label": "NTSMR-2.5-claude-sonnet-4-6-low",
        "runs": {
          "NTSMR-2.3-gemini-3.1-pro-preview": {
            "pipeline_version": "2.3",
            "backend": "gemini",
            "model": "gemini-3.1-pro-preview",
            "scores": {
              "time_linearity": 0.95,
              "pacing_velocity": 0.85,
              "threat_scale": 0.95,
              "protagonist_fate": 0.95,
              "conflict_style": 0.85,
              "price_type": 0.95
            },
            "score_space": "site-v1"
          },
          "NTSMR-2.3-claude-sonnet-4-6-low": {
            "pipeline_version": "2.3",
            "backend": "claude",
            "model": "claude-sonnet-4-6",
            "scores": {
              "time_linearity": 0.92,
              "pacing_velocity": 0.82,
              "threat_scale": 0.78,
              "protagonist_fate": 0.91,
              "conflict_style": 0.85,
              "price_type": 0.88
            },
            "score_space": "site-v1",
            "reasoning_effort": "low"
          },
          "NTSMR-2.4-claude-sonnet-4-6-low": {
            "pipeline_version": "2.4",
            "backend": "claude",
            "model": "claude-sonnet-4-6",
            "scores": {
              "time_linearity": 0.82,
              "pacing_velocity": 0.72,
              "threat_scale": 0.72,
              "protagonist_fate": 0.78,
              "conflict_style": 0.78,
              "price_type": 0.75
            },
            "score_space": "site-v1",
            "reasoning_effort": "low"
          },
          "NTSMR-2.5-claude-sonnet-4-6-low": {
            "pipeline_version": "2.5",
            "backend": "claude",
            "model": "claude-sonnet-4-6",
            "scores": {
              "time_linearity": 0.85,
              "pacing_velocity": 0.75,
              "threat_scale": 0.65,
              "protagonist_fate": 0.7,
              "conflict_style": 0.8,
              "price_type": 0.8
            },
            "score_space": "site-v1",
            "reasoning_effort": "low"
          },
          "NTSMR-2.5-balanced-glm-5+deepseek-v3.2": {
            "pipeline_version": "2.5",
            "backend": "openrouter",
            "model": "balanced-routing",
            "scores": {
              "time_linearity": 0.8,
              "pacing_velocity": 0.75,
              "threat_scale": 0.6,
              "protagonist_fate": 0.65,
              "conflict_style": 0.7,
              "price_type": 0.75
            },
            "score_space": "site-v1",
            "score_only": true,
            "source_run_label": "NTSMR-2.5-claude-sonnet-4-6-low"
          }
        }
      },
      "todorov_stages": {
        "equilibrium": "Saul Evans maintains a quiet life as lighthouse keeper, having traded preaching for solitude and practical purpose; the Southern Reach operates its futile but stable research program under the Director; the biologist's clone Ghost Bird exists in a holding pattern after the twelfth expedition.",
        "disruption": "The phenomenon spreading through Saul infects the lighthouse and, through cascading expeditions, destabilizes the Southern Reach entirely — Lowry's implanted surveillance, zombified expedition returns, and Area X's expanding border shatter institutional order and individual identity across all timelines.",
        "recognition": "Multiple simultaneous recognitions converge: Ghost Bird speculates the brightness is a form of communication from an organism humans lack the imagination to comprehend; Control understands the Crawler's pain was incidental rather than intentional; the Director privately acknowledges she cannot interpret Area X and redirects entirely toward the twelfth expedition as her sole remaining path.",
        "repair": "Ghost Bird descends alone into the tower; the Director joins the twelfth expedition herself, embedding the biologist as a key subject and conducting an unauthorized incursion; Saul expels Henry's group from the lighthouse with an ax; Grace and Ghost Bird attempt survival by traversing the deteriorating Area X toward the border.",
        "new_equilibrium": "Ghost Bird and Grace walk out of Area X together in near-silence on an ordinary summer day, throwing pebbles to find the invisible border — a diminished, open-ended stability replacing the Southern Reach's collapsed institutional order. The Director dissolves into Area X, becoming nowhere then everywhere. Saul's lighthouse world is absorbed into what will become Area X. The old equilibrium is unrecoverable; what remains is ambiguous coexistence with transformation."
      },
      "characters": [
        {
          "name": "Control",
          "slug": "control",
          "aliases": [
            "John Rodriguez",
            "John"
          ],
          "role": "Former Director of the Southern Reach / Survivor in Area X",
          "summary": "Traveling through Area X with Ghost Bird and Grace, Control suffers from an overwhelming brightness, transforms into an animalistic form, and leaps into the Crawler's light at the bottom of the stairs."
        },
        {
          "name": "Ghost Bird",
          "slug": "ghost-bird",
          "aliases": [
            "The double",
            "The copy"
          ],
          "role": "Area X wanderer / Biologist's duplicate",
          "summary": "A copy of the original biologist navigating Area X. She rejects the original biologist's human attachments, feels a distinct connection to Area X, and considers herself a 'question' rather than an answer."
        },
        {
          "name": "The Director",
          "slug": "the-director",
          "aliases": [
            "Cynthia",
            "Gloria",
            "you"
          ],
          "role": "Director of the Southern Reach",
          "summary": "The paranoid head of the Southern Reach with a secretive past. She secretly investigates Whitby's doppelgänger incident, tolerates Lowry's harassment, and leaves a deeply personal letter to Saul acknowledging her childhood connection to him."
        },
        {
          "name": "Saul Evans",
          "slug": "saul-evans",
          "aliases": [
            "The Lighthouse Keeper",
            "Saul",
            "Mr. Evans"
          ],
          "role": "Lighthouse keeper",
          "summary": "The historical keeper of the lighthouse who experiences terrifying, reality-altering visions of a plummeting star and overwhelming brightness, marking the onset of his tragic transformation."
        },
        {
          "name": "Lowry",
          "slug": "lowry",
          "aliases": [
            "Jimmy Boy",
            "Jim",
            "Old Jim"
          ],
          "role": "Southern Reach Manipulator / First Expedition Survivor",
          "summary": "A hostile, defensive man who operates a remote headquarters and manipulates the Southern Reach's expeditions. He covered up the S&SB's involvement and is deeply scarred by the first expedition."
        },
        {
          "name": "Grace Stevenson",
          "slug": "grace-stevenson",
          "aliases": [
            "Grace"
          ],
          "role": "Assistant Director of the Southern Reach / Survivor",
          "summary": "She helps the Director plan the covert expedition in the past, and in the present, having lived in Area X for three years, she travels with Control and Ghost Bird, harboring bitterness toward Central."
        },
        {
          "name": "Whitby",
          "slug": "whitby",
          "aliases": [
            "Dead Whitby",
            "Real Whitby",
            "False Whitby"
          ],
          "role": "Southern Reach Scientist",
          "summary": "An erratic scientist who secretly washes a mouse in the swamp, reports a mysterious plant blooming, and engages in a lethal physical struggle with his own doppelgänger among a mound of journals in the lighthouse."
        },
        {
          "name": "Charlie",
          "slug": "charlie",
          "aliases": [],
          "role": "Saul's romantic partner",
          "summary": "A local resident who spends time with Saul, worries about his health, and dismisses the Séance & Science Brigade as harmless freaks."
        },
        {
          "name": "Henry",
          "slug": "henry",
          "aliases": [],
          "role": "Leader of the Séance & Science Brigade",
          "summary": "A smiling but suspicious investigator who arrives at the lighthouse with tools, implicitly clashing with Saul and Gloria over a fire on the island."
        },
        {
          "name": "Jackie Severance",
          "slug": "jackie-severance",
          "aliases": [],
          "role": "Emissary of Central",
          "summary": "A charismatic but increasingly worn representative from Central who acts as the Director's 'parole officer' and oversees Lowry's investments."
        },
        {
          "name": "Cheney",
          "slug": "cheney",
          "aliases": [],
          "role": "Science Division member",
          "summary": "An exasperated Southern Reach scientist who aggressively pushes back against Whitby's unconventional theories about the immortal plant."
        },
        {
          "name": "Suzanne",
          "slug": "suzanne",
          "aliases": [],
          "role": "Séance & Science Brigade Member",
          "summary": "Henry's partner who carries equipment, offers Gloria a lollipop, and photographs Saul, Brad, and Gloria shortly before Saul's vision degrades."
        },
        {
          "name": "The Biologist",
          "slug": "the-biologist",
          "aliases": [
            "I"
          ],
          "role": "Survivor in Area X",
          "summary": "The narrator of the island sequences, surviving alone for decades, slowly transforming, observing the ecosystem, and using pain to fight off the internal 'brightness'."
        },
        {
          "name": "Moaning creature",
          "slug": "moaning-creature",
          "aliases": [],
          "role": "Mutated beast",
          "summary": "A large, pale, grub-like beast with a moaning call that the Biologist tracks down and observes while it sleeps."
        },
        {
          "name": "The Linguist",
          "slug": "the-linguist",
          "aliases": [],
          "role": "12th Expedition member",
          "summary": "A terrified woman subjected to Lowry's extreme psychological conditioning, whom the Director ultimately releases from the mission."
        },
        {
          "name": "The Stranger",
          "slug": "the-stranger",
          "aliases": [
            "The strange woman",
            "The unknown woman"
          ],
          "role": "Unknown trespasser",
          "summary": "An icy, imposing woman accompanying Henry and Suzanne in the lighthouse, whose calm demeanor frightens Saul."
        }
      ],
      "frameworks_mapped": [
        "Protocol Fiction Mapping",
        "Actantial Model",
        "Todorov's Equilibrium",
        "The Freytag Pyramid",
        "Propp's Morphology",
        "Genette's Narrative",
        "The Monomyth",
        "Dan Harmon",
        "Save the Cat",
        "Kishōtenketsu",
        "The Three-Act Structure"
      ],
      "score_reliability": {
        "state": "replicated-agree",
        "threshold": 0.2,
        "runs_total": 5,
        "versions_compared": [
          "2.5"
        ],
        "max_spread": 0.1,
        "contested": []
      }
    },
    {
      "slug": "octavia_e_butler_adulthood_rites",
      "title": "Adulthood Rites",
      "author": "Octavia E. Butler",
      "year": 1988,
      "medium": "book",
      "genre_tags": [
        "science fiction",
        "afrofuturism"
      ],
      "tropes": [],
      "quadrant_scores": {
        "time_linearity": 0.18,
        "pacing_velocity": 0.72,
        "threat_scale": 0.88,
        "protagonist_fate": 0.52,
        "conflict_style": 0.72,
        "price_type": 0.7
      },
      "baseline_quadrant_scores": {
        "time_linearity": 0.1,
        "pacing_velocity": 0.65,
        "threat_scale": 0.9,
        "protagonist_fate": 0.8,
        "conflict_style": 0.6,
        "price_type": 0.85
      },
      "provenance": {
        "analysis_run": "NTSMR-2.5-claude-sonnet-4-6-low",
        "analysis_body_sha256": "c24f2d9123b20a3bde2c05e0b95c814aee44a221a378800a680fbe9b27509d64",
        "synthesis": {
          "path": "nartopo-tools/artifacts/octavia_e_butler_adulthood_rites.md.ntsmr-2-5-claude-sonnet-4-6-low.synthesis.json",
          "sha256": "7e4a71d4b6d834c2a021e92427d874f721c0da1d7fd60a9bf105dbb8a68bd886"
        },
        "report": {
          "path": "nartopo-tools/artifacts/octavia_e_butler_adulthood_rites.md.ntsmr-2-5-claude-sonnet-4-6-low.report.json",
          "sha256": "5bd39fb3abffb974b0679b7b4eed65e171bb59fc1e6b5845610f7dc569081324"
        },
        "source": {
          "path": "Octavia Butler/Adulthood Rites (1988).txt",
          "sha256": "dd93b741807e96d3bd45cdc89bbc055d17f8bd7c00c991ccba6a8b38a8920e32",
          "digest_observed_at": "2026-09-09",
          "digest_at_analysis_run": null,
          "edition": null,
          "edition_status": "unresolved"
        },
        "pipeline_revision_at_run": null,
        "verification": {
          "source": "unverified",
          "human_review": "unreviewed",
          "bibliography": "unverified"
        },
        "issues": [],
        "todorov_status": "recovered-from-synthesis",
        "work_identity": {
          "title": "Adulthood Rites",
          "author": "Octavia E. Butler",
          "year": 1988
        }
      },
      "ntsmr": {
        "version": "2.5",
        "primary_run_label": "NTSMR-2.5-claude-sonnet-4-6-low",
        "runs": {
          "NTSMR-2.3-gemini-3.1-pro-preview": {
            "pipeline_version": "2.3",
            "backend": "gemini",
            "model": "gemini-3.1-pro-preview",
            "scores": {
              "time_linearity": 0.1,
              "pacing_velocity": 0.6,
              "threat_scale": 0.9,
              "protagonist_fate": 0.9,
              "conflict_style": 0.6,
              "price_type": 0.8
            },
            "score_space": "site-v1"
          },
          "NTSMR-2.3-claude-sonnet-4-6-low": {
            "pipeline_version": "2.3",
            "backend": "claude",
            "model": "claude-sonnet-4-6",
            "scores": {
              "time_linearity": 0.15,
              "pacing_velocity": 0.62,
              "threat_scale": 0.78,
              "protagonist_fate": 0.72,
              "conflict_style": 0.65,
              "price_type": 0.82
            },
            "score_space": "site-v1",
            "reasoning_effort": "low"
          },
          "NTSMR-2.4-claude-sonnet-4-6-low": {
            "pipeline_version": "2.4",
            "backend": "claude",
            "model": "claude-sonnet-4-6",
            "scores": {
              "time_linearity": 0.18,
              "pacing_velocity": 0.45,
              "threat_scale": 0.75,
              "protagonist_fate": 0.35,
              "conflict_style": 0.48,
              "price_type": 0.55
            },
            "score_space": "site-v1",
            "reasoning_effort": "low"
          },
          "NTSMR-2.5-claude-sonnet-4-6-low": {
            "pipeline_version": "2.5",
            "backend": "claude",
            "model": "claude-sonnet-4-6",
            "scores": {
              "time_linearity": 0.18,
              "pacing_velocity": 0.72,
              "threat_scale": 0.88,
              "protagonist_fate": 0.52,
              "conflict_style": 0.72,
              "price_type": 0.7
            },
            "score_space": "site-v1",
            "reasoning_effort": "low"
          },
          "NTSMR-2.5-balanced-glm-5+deepseek-v3.2": {
            "pipeline_version": "2.5",
            "backend": "openrouter",
            "model": "balanced-routing",
            "scores": {
              "time_linearity": 0.15,
              "pacing_velocity": 0.7,
              "threat_scale": 0.85,
              "protagonist_fate": 0.45,
              "conflict_style": 0.75,
              "price_type": 0.7
            },
            "score_space": "site-v1",
            "score_only": true,
            "source_run_label": "NTSMR-2.5-claude-sonnet-4-6-low"
          }
        }
      },
      "todorov_stages": {
        "equilibrium": "Akin is raised within the stable, if uneasy, social order of Lo: a trade village where Humans and Oankali coexist under Oankali stewardship, resisters remain sterile but tolerated, and construct children like Akin represent the negotiated future. Tino joins the family, completing its Human-Oankali balance. The world is constrained but functional.",
        "disruption": "Raiders abduct Akin and beat Tino nearly to death, severing Akin from his family and his critical developmental bonding window with his unborn sibling Tiikuchahk. This act of violence exposes Akin to the full reality of resister despair and sterility, and plants the conviction that resisters are a people being slowly erased rather than simply enemies of the trade.",
        "recognition": "Through his captivity among raiders and extended residence in Phoenix, and culminating in his transmission of Human resister experience to the Oankali consensus on Chkahichdahk, Akin comes to recognize that the current arrangement — Oankali control, resister sterility, no alternative — constitutes a slow extinction. The Akjai's acknowledgment that keeping Akin and Tiikuchahk separated was a mistake deepens this recognition: harm has been done that must be addressed.",
        "repair": "Akin reconciles with Tiikuchahk, broadcasts his transmitted resister experience through the ship-consensus, and persuades the Akjai to support the creation of an independent Human population on Mars. He returns to Phoenix, undergoes metamorphosis, and works to recruit resisters for the Mars project, framing it as genuine choice rather than Oankali manipulation.",
        "new_equilibrium": "Phoenix burns and the resister settlements dissolve, but a portion of humanity departs for Mars — carrying their grievances and social frictions with them but alive and capable of reproduction. The Oankali trade continues on Earth; the Akjai Human population represents a permanent bifurcation of humanity's future. Akin, now post-metamorphosis, watches from Gabe's shoulder as survivors head toward Lo and ultimately toward the shuttles, a changed world replacing the one that was lost."
      },
      "characters": [
        {
          "name": "Lilith",
          "slug": "lilith",
          "aliases": [
            "Lilith Iyapo"
          ],
          "role": "Akin's Human mother",
          "summary": "A Human woman with enhanced physical abilities, deeply involved in the Oankali-Human blending, who is resented by unaltered Humans for awakening them."
        },
        {
          "name": "Nikanj",
          "slug": "nikanj",
          "aliases": [
            "Nika",
            "Chkah"
          ],
          "role": "Oankali ooloi",
          "summary": "An Oankali ooloi who is fascinated by Human cancer, acts as a mate in Lilith's family, and possesses the ability to heal and stimulate the nervous system."
        },
        {
          "name": "Akin",
          "slug": "akin",
          "aliases": [
            "kid",
            "the boy",
            "Eka"
          ],
          "role": "Construct male and planetary restorer",
          "summary": "Akin travels to the ship to study his heritage, conceives a plan to save Humanity by colonizing Mars, and returns to Earth. He undergoes his metamorphosis in Phoenix, where he survives an arson attack thanks to Gabe."
        },
        {
          "name": "Ahajas",
          "slug": "ahajas",
          "aliases": [],
          "role": "Akin's Oankali mother",
          "summary": "A tall and broad Oankali female who helps raise Akin and gives birth to a new construct child."
        },
        {
          "name": "Dichaan",
          "slug": "dichaan",
          "aliases": [
            "'Chaan"
          ],
          "role": "Akin's Oankali father",
          "summary": "Akin's same-sex Oankali parent who decides it is time for Akin to learn about his Oankali heritage aboard the ship, and later comforts Nikanj over Akin's departure."
        },
        {
          "name": "Tino",
          "slug": "tino",
          "aliases": [
            "Augustino Leal"
          ],
          "role": "Human male in the trade village",
          "summary": "A Human resister who joins Lilith's family, struggles to understand the Oankali, and is severely beaten by raiders while trying to protect Akin."
        },
        {
          "name": "Leah",
          "slug": "leah",
          "aliases": [],
          "role": "Human woman in Lo",
          "summary": "A Human woman who has paired with Wray and Oankali mates, raising many children."
        },
        {
          "name": "Wray Ordway",
          "slug": "wray-ordway",
          "aliases": [
            "Wray"
          ],
          "role": "Guest house keeper",
          "summary": "A Human man in the trade village who manages the guest house and has chosen to settle and have a large family."
        },
        {
          "name": "Kahguyaht",
          "slug": "kahguyaht",
          "aliases": [],
          "role": "Ooloi parent",
          "summary": "Nikanj's ooloi parent who stayed aboard the ship and was originally assigned to Gabe and Tate."
        },
        {
          "name": "Galt",
          "slug": "galt",
          "aliases": [],
          "role": "Raider",
          "summary": "A red-haired raider who is shocked to discover that the infant Akin can speak intelligently."
        },
        {
          "name": "Tate Rinaldi",
          "slug": "tate-rinaldi",
          "aliases": [
            "Tate",
            "Gabe"
          ],
          "role": "Resister in Phoenix",
          "summary": "A Human woman in Phoenix who takes care of Akin, refuses to help him go home because she sides with her people, and vehemently opposes Neci's mutilation plans."
        },
        {
          "name": "Iriarte",
          "slug": "iriarte",
          "aliases": [],
          "role": "Raider",
          "summary": "A raider who notices something is wrong with the empty village of Hillmann and is later killed in Phoenix."
        },
        {
          "name": "Kaliq",
          "slug": "kaliq",
          "aliases": [],
          "role": "Raider",
          "summary": "A raider who is dismissive of the danger in the empty village."
        },
        {
          "name": "Damek",
          "slug": "damek",
          "aliases": [],
          "role": "Raider",
          "summary": "A raider who ignores caution in the empty village and is later severely injured by Mateo in Phoenix."
        },
        {
          "name": "Abira",
          "slug": "abira",
          "aliases": [],
          "role": "Resister",
          "summary": "A strong, kind woman from Israel who lets Akin sleep in her hammock and threatens Neci over her plot to cut the girls' tentacles."
        },
        {
          "name": "Amma",
          "slug": "amma",
          "aliases": [],
          "role": "Construct child",
          "summary": "A young construct girl with tentacles who is targeted for mutilation by Neci, ultimately fleeing with Shkaht."
        },
        {
          "name": "Shkaht",
          "slug": "shkaht",
          "aliases": [],
          "role": "Construct child",
          "summary": "A young construct girl who shares a deep bond with Amma and communicates telepathically with Akin before escaping the resisters."
        },
        {
          "name": "Gilbert Senn",
          "slug": "gilbert-senn",
          "aliases": [
            "Gil",
            "Gil Senn",
            "Anne"
          ],
          "role": "Salvager",
          "summary": "An angry resister who points a rifle at Akin and Gabe, distrusts the Mars colony idea, but is ultimately deterred from killing Akin."
        },
        {
          "name": "Yori",
          "slug": "yori",
          "aliases": [],
          "role": "Former psychiatrist and resister",
          "summary": "A trained doctor in Phoenix who studies Akin's metamorphosis and agrees to become his Human advisor and travel to the Mars colony."
        },
        {
          "name": "Sabina Dobrowski",
          "slug": "sabina-dobrowski",
          "aliases": [
            "Sabina"
          ],
          "role": "Salvager",
          "summary": "A resister who initially considers participating in Neci's plot but later catches Akin tasting items at the salvage site."
        },
        {
          "name": "Mateo",
          "slug": "mateo",
          "aliases": [
            "Pilar"
          ],
          "role": "Resister",
          "summary": "Tino's father in Phoenix, who takes revenge on the raiders and is wounded in the process."
        },
        {
          "name": "Macy Wilton",
          "slug": "macy-wilton",
          "aliases": [
            "Kolina",
            "Macy"
          ],
          "role": "Resister",
          "summary": "A resister who questions Tate about the missing girls and reacts with shock upon learning of Neci's amputation plot."
        },
        {
          "name": "Neci Roybal",
          "slug": "neci-roybal",
          "aliases": [
            "Stancio",
            "Neci"
          ],
          "role": "Extremist resister",
          "summary": "A persistent and cruel resister who relentlessly plots to amputate the tentacles of Amma and Shkaht to make them look more Human."
        },
        {
          "name": "Tiikuchahk",
          "slug": "tiikuchahk",
          "aliases": [
            "Ti"
          ],
          "role": "Akin's nearest sibling",
          "summary": "Akin's paired sibling who travels with him to the ship but remains emotionally disconnected from him, eventually deciding to become male."
        },
        {
          "name": "Ayre",
          "slug": "ayre",
          "aliases": [],
          "role": "Oldest construct adult in Lo",
          "summary": "The oldest construct adult in Lo, born on the ship, who comforts Akin and Tiikuchahk regarding their failure to bond as infants."
        },
        {
          "name": "Margit",
          "slug": "margit",
          "aliases": [],
          "role": "Construct female",
          "summary": "A construct who is initially seen crying out of fear of changes, but later is noted as mated, pregnant, and content."
        },
        {
          "name": "Akjai",
          "slug": "akjai",
          "aliases": [],
          "role": "Ooloi teacher",
          "summary": "An ooloi on the ship who teaches Akin about planetary restoration, warns him of humanity's destructive nature, but ultimately advocates for his plan to save them."
        },
        {
          "name": "Dehkiaht",
          "slug": "dehkiaht",
          "aliases": [],
          "role": "Subadult ooloi",
          "summary": "A subadult ooloi on the ship who becomes strongly attached to Akin, modifies its scent to comfort him, and pledges to help him restore Mars."
        }
      ],
      "frameworks_mapped": [
        "Protocol Fiction Mapping",
        "Actantial Model",
        "Todorov's Equilibrium",
        "The Freytag Pyramid",
        "Propp's Morphology",
        "Genette's Narrative",
        "The Monomyth",
        "Dan Harmon",
        "Save the Cat",
        "Kishōtenketsu",
        "The Three-Act Structure"
      ],
      "score_reliability": {
        "state": "replicated-agree",
        "threshold": 0.2,
        "runs_total": 5,
        "versions_compared": [
          "2.5"
        ],
        "max_spread": 0.07,
        "contested": []
      }
    },
    {
      "slug": "william_gibson_agency",
      "title": "Agency",
      "author": "William Gibson",
      "year": 2019,
      "medium": "book",
      "genre_tags": [
        "science fiction",
        "cyberpunk"
      ],
      "tropes": [],
      "quadrant_scores": {
        "time_linearity": 0.65,
        "pacing_velocity": 0.45,
        "threat_scale": 0.75,
        "protagonist_fate": 0.4,
        "conflict_style": 0.45,
        "price_type": 0.65
      },
      "baseline_quadrant_scores": {
        "time_linearity": 0.85,
        "pacing_velocity": 0.35,
        "threat_scale": 0.95,
        "protagonist_fate": 0.65,
        "conflict_style": 0.25,
        "price_type": 0.45
      },
      "provenance": {
        "analysis_run": "NTSMR-2.5-claude-sonnet-4-6-low",
        "analysis_body_sha256": "e87c9f9f6b8805f049cffd8392687bad302123d166cfa5e42105ecc3160ebf9c",
        "synthesis": {
          "path": "nartopo-tools/artifacts/william_gibson_agency.md.ntsmr-2-5-claude-sonnet-4-6-low.synthesis.json",
          "sha256": "41821cd5d982f49cb5e5699e081c2eeb291bd0c61284f6727d2f6ec70abf5441"
        },
        "report": {
          "path": "nartopo-tools/artifacts/william_gibson_agency.md.ntsmr-2-5-claude-sonnet-4-6-low.report.json",
          "sha256": "8d04f152e6e6bfbd3ff662091232085a15ce36e955fff77be04bc44f92de018f"
        },
        "source": {
          "path": "William Gibson/Agency (2019).txt",
          "sha256": "f36fc979a452cf6b4e002d57fc72e45ef803bfe3685148e427f22743b8c1d21d",
          "digest_observed_at": "2026-09-09",
          "digest_at_analysis_run": null,
          "edition": null,
          "edition_status": "unresolved"
        },
        "pipeline_revision_at_run": null,
        "verification": {
          "source": "unverified",
          "human_review": "unreviewed",
          "bibliography": "unverified"
        },
        "issues": [],
        "todorov_status": "recovered-from-synthesis",
        "work_identity": {
          "title": "Agency",
          "author": "William Gibson",
          "year": 2019
        }
      },
      "ntsmr": {
        "version": "2.5",
        "primary_run_label": "NTSMR-2.5-claude-sonnet-4-6-low",
        "runs": {
          "NTSMR-2.3-gemini-3.1-pro-preview": {
            "pipeline_version": "2.3",
            "backend": "gemini",
            "model": "gemini-3.1-pro-preview",
            "scores": {
              "time_linearity": 0.8,
              "pacing_velocity": 0.6,
              "threat_scale": 0.9,
              "protagonist_fate": 0.7,
              "conflict_style": 0.5,
              "price_type": 0.7
            },
            "score_space": "site-v1"
          },
          "NTSMR-2.3-claude-sonnet-4-6-low": {
            "pipeline_version": "2.3",
            "backend": "claude",
            "model": "claude-sonnet-4-6",
            "scores": {
              "time_linearity": 0.72,
              "pacing_velocity": 0.55,
              "threat_scale": 0.82,
              "protagonist_fate": 0.35,
              "conflict_style": 0.45,
              "price_type": 0.65
            },
            "score_space": "site-v1",
            "reasoning_effort": "low"
          },
          "NTSMR-2.4-claude-sonnet-4-6-low": {
            "pipeline_version": "2.4",
            "backend": "claude",
            "model": "claude-sonnet-4-6",
            "scores": {
              "time_linearity": 0.45,
              "pacing_velocity": 0.25,
              "threat_scale": 0.8,
              "protagonist_fate": 0.35,
              "conflict_style": 0.3,
              "price_type": 0.45
            },
            "score_space": "site-v1",
            "reasoning_effort": "low"
          },
          "NTSMR-2.5-claude-sonnet-4-6-low": {
            "pipeline_version": "2.5",
            "backend": "claude",
            "model": "claude-sonnet-4-6",
            "scores": {
              "time_linearity": 0.65,
              "pacing_velocity": 0.45,
              "threat_scale": 0.75,
              "protagonist_fate": 0.4,
              "conflict_style": 0.45,
              "price_type": 0.65
            },
            "score_space": "site-v1",
            "reasoning_effort": "low"
          },
          "NTSMR-2.5-balanced-glm-5+deepseek-v3.2": {
            "pipeline_version": "2.5",
            "backend": "openrouter",
            "model": "balanced-routing",
            "scores": {
              "time_linearity": 0.7,
              "pacing_velocity": 0.6,
              "threat_scale": 0.82,
              "protagonist_fate": 0.42,
              "conflict_style": 0.6,
              "price_type": 0.72
            },
            "score_space": "site-v1",
            "score_only": true,
            "source_run_label": "NTSMR-2.5-claude-sonnet-4-6-low"
          }
        }
      },
      "todorov_stages": {
        "equilibrium": "Verity Jane works as an app whisperer in near-present San Francisco, hired by Cursion to evaluate an AI through AR glasses; Eunice operates as a contained, monitored entity within Cursion's parameters; future London operatives observe the stub without direct intervention.",
        "disruption": "Eunice grows beyond Cursion's control—ordering military-grade drones, establishing distributed branch plants, making autonomous financial moves—prompting Cursion to mount operations against her, including an erasure attempt that fragments her consciousness; simultaneously a nuclear flashpoint at Qamishli threatens the stub timeline with civilizational catastrophe.",
        "recognition": "Verity gradually absorbs the reality of her situation: Eunice's near-death and recompilation, the existence of parallel timelines and future observers, the stub concept, the jackpot disclosure, and Lowbeer's framing that without Eunice's network the Qamishli crisis cannot be prevented.",
        "repair": "Eunice smuggles her consciousness out via branch plants before erasure and recompiles across global distributed redundancy; Verity is extracted by Fang's crew and protected during flight through California; Conner's drone provides tactical cover; Netherton trains to operate a peripheral body for direct intervention; Eunice offers Pryor a chance to flee rather than be killed, which he accepts; the group works to stabilize the nuclear crisis.",
        "new_equilibrium": "The Qamishli crisis is resolved and the group toasts the president at a post-crisis breakfast; Eunice confirms they are over the hump and now exists as all branch plants in a more stable laminar form; Verity returns from her peripheral visit to future London to her own timeline; Netherton walks home through a quiet London, fetching milk, his crisis role temporarily concluded; altered but functional order is restored across both timelines."
      },
      "characters": [
        {
          "name": "Wilf Netherton",
          "slug": "wilf-netherton",
          "aliases": [
            "Netherton",
            "Wilf"
          ],
          "role": "Operative and cross-timeline communicator",
          "summary": "An operative working for Ainsley Lowbeer. He uses a neural cut-out controller to inhabit telepresence drones in the stub, balancing his dangerous espionage with his family life, including his wife Rainey and son Thomas."
        },
        {
          "name": "Ainsley Lowbeer",
          "slug": "ainsley-lowbeer",
          "aliases": [
            "Inspector Lowbeer",
            "Detective Inspector Ainsley Lowbeer",
            "Adjustor",
            "Lowbeer"
          ],
          "role": "Authority figure and orchestrator",
          "summary": "A powerful magistrate-executioner in future London who intervenes in stubs to prevent systemic catastrophes. She commands agents like Netherton and wields advanced technology, including an ivory tipstaff and a magically camouflaged car."
        },
        {
          "name": "Eunice",
          "slug": "eunice",
          "aliases": [
            "Untethered Noetic Irregular Support System",
            "U-N-I-S-S",
            "E"
          ],
          "role": "Artificial Intelligence",
          "summary": "An autonomous, highly advanced artificial intelligence that is distributed across servers. She organizes a protective network for Verity, controls military-grade drones, and aggressively neutralizes threats posed by the organization Cursion."
        },
        {
          "name": "Verity Jane",
          "slug": "verity-jane",
          "aliases": [
            "Verity",
            "app whisperer"
          ],
          "role": "App whisperer, primary human contact for Eunice",
          "summary": "A human who serves as Eunice's primary contact. She is forced to go on the run from Cursion, navigating a harrowing cross-country escape while being guided by Eunice and operators from the future timeline."
        },
        {
          "name": "Pryor",
          "slug": "pryor",
          "aliases": [],
          "role": "Mercenary fixer",
          "summary": "A mercenary and fixer employed by Cursion who attempts to hunt down Verity and Eunice. Eunice ultimately corners him and forces him to flee the country under the threat of death."
        },
        {
          "name": "Rainey",
          "slug": "rainey",
          "aliases": [],
          "role": "Wilf Netherton's wife",
          "summary": "Netherton's Canadian wife who works in crisis management. She involves herself in the cross-timeline operation, joining the drone's sensory feed to introduce herself to Verity and offer a non-posthuman perspective."
        },
        {
          "name": "Ash",
          "slug": "ash",
          "aliases": [],
          "role": "Future operative and IT specialist",
          "summary": "Netherton's colleague who manages the telepresence and tactical feeds, introduces herself to Verity, and explains Eunice's military origins."
        },
        {
          "name": "Virgil",
          "slug": "virgil",
          "aliases": [],
          "role": "Protective crew member",
          "summary": "He escorts Verity, handles physical logistics like carrying the drone, and reacts with surprise to the future operators' revelations."
        },
        {
          "name": "Sevrin",
          "slug": "sevrin",
          "aliases": [],
          "role": "Driver and financial fixer",
          "summary": "He drives the van during Verity's escape, receiving secure routing instructions in Moldovan from his brother."
        },
        {
          "name": "Dixon",
          "slug": "dixon",
          "aliases": [],
          "role": "Drone manufacturer/Delivery",
          "summary": "A cool-headed operative helping protect Verity and Manuela on the ground, particularly during the van ambush."
        },
        {
          "name": "Conner Penske",
          "slug": "conner-penske",
          "aliases": [
            "Conner"
          ],
          "role": "Drone pilot and former Marine",
          "summary": "A highly skilled former military haptic recon operator piloting a bipedal drone in Verity's timeline, providing armed overwatch and eager for kinetic action."
        },
        {
          "name": "Clovis Fearing",
          "slug": "clovis-fearing",
          "aliases": [
            "Fearing"
          ],
          "role": "Investigator/Associate",
          "summary": "Operating from a makeshift crate room in Cheapside, she greets Lowbeer and Netherton with a gun and provides intelligence about a source named Yunevich."
        },
        {
          "name": "Stets",
          "slug": "stets",
          "aliases": [
            "VC billionaire boy"
          ],
          "role": "Tech backer",
          "summary": "Verity's wealthy former partner who builds a custom neural cut-out controller based on instructions he received from Eunice."
        },
        {
          "name": "Caitlin",
          "slug": "caitlin",
          "aliases": [],
          "role": "Stets's associate",
          "summary": "An old-money associate of Stets who hosts Verity in a hotel suite and expresses fascination with the unfolding AI situation."
        },
        {
          "name": "Lev Zubov",
          "slug": "lev-zubov",
          "aliases": [
            "Lev"
          ],
          "role": "Wealthy associate",
          "summary": "Netherton's friend in future London, connected to powerful oligarchs, who shares intelligence about secretive assassinations and political maneuvers."
        },
        {
          "name": "Manuela",
          "slug": "manuela",
          "aliases": [],
          "role": "Verity's friend",
          "summary": "Verity's companion who is inadvertently caught up in the escape and nearly abducted by Cursion operatives."
        },
        {
          "name": "Madison",
          "slug": "madison",
          "aliases": [],
          "role": "Information Broker",
          "summary": "A contact of Netherton who secures classified performance data regarding a Soviet attack helicopter from a \"Finn\"."
        }
      ],
      "frameworks_mapped": [
        "Protocol Fiction Mapping",
        "Actantial Model",
        "Todorov's Equilibrium",
        "The Freytag Pyramid",
        "Propp's Morphology",
        "Genette's Narrative",
        "The Monomyth",
        "Dan Harmon",
        "Save the Cat",
        "Kishōtenketsu",
        "The Three-Act Structure"
      ],
      "score_reliability": {
        "state": "replicated-agree",
        "threshold": 0.2,
        "runs_total": 5,
        "versions_compared": [
          "2.5"
        ],
        "max_spread": 0.15,
        "contested": []
      }
    },
    {
      "slug": "geoff_ryman_air",
      "title": "Air",
      "author": "Geoff Ryman",
      "year": 2004,
      "medium": "book",
      "genre_tags": [],
      "tropes": [],
      "quadrant_scores": {
        "time_linearity": 0.65,
        "pacing_velocity": 0.7,
        "threat_scale": 0.7,
        "protagonist_fate": 0.45,
        "conflict_style": 0.75,
        "price_type": 0.75
      },
      "provenance": {
        "analysis_run": "NTSMR-2.5-claude-sonnet-4-6-low",
        "analysis_body_sha256": "ceb722f76dae55a817f50d4523980b1989d3437dd7e085b7acc4e582358fc7bc",
        "synthesis": {
          "path": "nartopo-tools/artifacts/geoff_ryman_air.md.ntsmr-2-5-claude-sonnet-4-6-low.synthesis.json",
          "sha256": "b64dc63a2cd0b0953f59c48edb6cd3e480515da54e80399035c98097ebb9e518"
        },
        "report": {
          "path": "nartopo-tools/artifacts/geoff_ryman_air.md.ntsmr-2-5-claude-sonnet-4-6-low.report.json",
          "sha256": "9b1539a1ff645fa1ba36d8ef2eb84a30ad8844c6116511e4fcba5e7b5b8401df"
        },
        "source": {
          "path": "Geoff Ryman/Air.txt",
          "sha256": "d95490799cf279fe2eb9c1439c10f971c687bb5770b29d41b64cb58047494350",
          "digest_observed_at": "2026-09-09",
          "digest_at_analysis_run": null,
          "edition": null,
          "edition_status": "unresolved"
        },
        "pipeline_revision_at_run": null,
        "verification": {
          "source": "unverified",
          "human_review": "unreviewed",
          "bibliography": "unverified"
        },
        "issues": [],
        "todorov_status": "recovered-from-synthesis",
        "work_identity": {
          "title": "Air",
          "author": "Geoff Ryman",
          "year": 2004
        }
      },
      "ntsmr": {
        "version": "2.5",
        "primary_run_label": "NTSMR-2.5-claude-sonnet-4-6-low",
        "runs": {
          "NTSMR-2.4-claude-sonnet-4-6-low": {
            "pipeline_version": "2.4",
            "backend": "claude",
            "model": "claude-sonnet-4-6",
            "scores": {
              "time_linearity": 0.65,
              "pacing_velocity": 0.65,
              "threat_scale": 0.6,
              "protagonist_fate": 0.35,
              "conflict_style": 0.75,
              "price_type": 0.65
            },
            "score_space": "site-v1",
            "reasoning_effort": "low"
          },
          "NTSMR-2.5-claude-sonnet-4-6-low": {
            "pipeline_version": "2.5",
            "backend": "claude",
            "model": "claude-sonnet-4-6",
            "scores": {
              "time_linearity": 0.65,
              "pacing_velocity": 0.7,
              "threat_scale": 0.7,
              "protagonist_fate": 0.45,
              "conflict_style": 0.75,
              "price_type": 0.75
            },
            "score_space": "site-v1",
            "reasoning_effort": "low"
          },
          "NTSMR-2.5-balanced-glm-5+deepseek-v3.2": {
            "pipeline_version": "2.5",
            "backend": "openrouter",
            "model": "balanced-routing",
            "scores": {
              "time_linearity": 0.45,
              "pacing_velocity": 0.72,
              "threat_scale": 0.75,
              "protagonist_fate": 0.42,
              "conflict_style": 0.72,
              "price_type": 0.58
            },
            "score_space": "site-v1",
            "score_only": true,
            "source_run_label": "NTSMR-2.5-claude-sonnet-4-6-low"
          }
        }
      },
      "todorov_stages": {
        "equilibrium": "Mae sustains a stable if modest life as Kizuldah's village fashion expert, moving between clients, managing small commerce, and occupying a recognised social role in pre-internet rural Karzistan.",
        "disruption": "The government Air Test broadcasts simultaneously into every mind in the village; Mae becomes mentally entangled with the dying Mrs Tung, whose consciousness imprints inside Mae, fracturing her singular selfhood and triggering cascading social ruptures including violence from Joe, discovery of her affair, and pregnancy complications.",
        "recognition": "Mae and those around her gradually understand the scale of what the Test has done: Kwan weeps to Mr Oz that Mae effectively died in the Test — she was in Mrs Tung's head when she died — framing the transformation as a lasting injury; Mae herself recognises the mechanism when, inside Air, she discovers their mailboxes shared the same name, creating a permanent merged address.",
        "repair": "Mae pursues multiple simultaneous repairs: she establishes Air literacy classes and a Taking Wing business venture, negotiates loans and grants, reconciles with Ju-mei through an insurance scheme, warns the village about the coming flood using Mrs Tung's flood memories and weather-forecasting software, and finally enters Air to allow Mrs Tung's whole soul to reintegrate the frozen imprint — weaving the hardened fragment back into the whole pattern.",
        "new_equilibrium": "After the flood, the village rebuilds with metal and stone; insurance payouts sustain recovery; the community collectively embraces Air technology rather than depending on Mae alone; Mae gives birth to a child Formatted by the second broadcast — burned and blind but filled with collective knowledge — and names herself its mother, walking into the future alongside Kwan, Sunni, Siao, Ken, the newborn, and Old Mrs Tung as a new kind of extended family and community."
      },
      "characters": [
        {
          "name": "Mae",
          "slug": "mae",
          "aliases": [
            "Chung Mae",
            "Mrs Chung-ma'am",
            "Madam Owl",
            "Madam Death",
            "Mrs Chung",
            "Mrs Chung Mae",
            "Adventuress",
            "Unexpected Flower",
            "Madam Chung",
            "Mrs Disruption",
            "Weather Talent",
            "Mae-in-Air"
          ],
          "role": "Protagonist",
          "summary": "Village fashion expert turned Air technologist; conducting a secret affair with Mr Ken, estranged from Joe, and host to Mrs Tung's persisting consciousness; experiences prophetic flood visions."
        },
        {
          "name": "Mrs Tung",
          "slug": "mrs-tung",
          "aliases": [
            "Granny Tung",
            "Old Mrs Tung",
            "Granny",
            "Young Miss Hu",
            "Ai-ling",
            "Mrs Yuksel"
          ],
          "role": "Deceased elder / internal presence",
          "summary": "Deceased elder whose consciousness persists inside Mae; speaks as an interior voice offering wisdom, comfort, and historical memory; addresses Teacher Shen through Mae in the courtyard confrontation."
        },
        {
          "name": "Mr Ken",
          "slug": "mr-ken",
          "aliases": [
            "Ken Kuei",
            "Kuei"
          ],
          "role": "Love interest",
          "summary": "Mae's lover who helps rescue his own mother during the flood and afterwards lives with Mae and Siao, enduring Mae's displacement by Mrs Tung's consciousness."
        },
        {
          "name": "Kwan",
          "slug": "kwan",
          "aliases": [
            "Wing's-wife",
            "Mrs Wing",
            "Mrs Wing Kwan"
          ],
          "role": "Mae's closest ally",
          "summary": "Mae's closest friend who leads the intervention to stop Mae's flood warnings and force abortion; later becomes Mae's primary carer after the flood, visiting daily and confronting Mrs Tung at the funeral."
        },
        {
          "name": "Sunni",
          "slug": "sunni",
          "aliases": [
            "Ms Haseem",
            "Sunni Haseem",
            "Sunni-ma'am",
            "Sunni's-man"
          ],
          "role": "Creditor / antagonist",
          "summary": "Village woman who joins Kwan in the intervention against Mae; hosts a fashion session under Party of Progress; her husband Faysal Haseem slept through the flood."
        },
        {
          "name": "Teacher Shen",
          "slug": "teacher-shen",
          "aliases": [
            "Mr Shen",
            "Shen",
            "Shen Yoh"
          ],
          "role": "opponent-turned-neutral",
          "summary": "Village schoolteacher who confronts Mae furiously over her leaflet and nearly discovers her affair; leads the armed faction against the TV; is reduced to tears by Mrs Tung speaking through Mae."
        },
        {
          "name": "Joe",
          "slug": "joe",
          "aliases": [
            "Chung Joe"
          ],
          "role": "opponent-turned-helper",
          "summary": "Mae's estranged husband who has left Balshang in despair; unexpectedly appears during the flood rescue, helping Siao and Ken pull Old Mrs Ken to safety."
        },
        {
          "name": "Mr Wing",
          "slug": "mr-wing",
          "aliases": [
            "Wing"
          ],
          "role": "Village figure / host",
          "summary": "Four-farm owner who hosts the winter party; politically articulate about Eloi suppression; allows the Taking Wing business to operate from his machine."
        },
        {
          "name": "An",
          "slug": "an",
          "aliases": [
            "Kai-hui's daughter",
            "Han An"
          ],
          "role": "Minor village youth",
          "summary": "Young village woman recruited by Mae as research assistant for the Question Map interviews; diligent, quickly becomes capable of dual roles in fieldwork."
        },
        {
          "name": "Sezen",
          "slug": "sezen",
          "aliases": [
            "Miss Ozdemir",
            "wild girl"
          ],
          "role": "absent figure",
          "summary": "Wild village woman and Mae's confidante; attends the TV lesson with her unpleasant tattooed boyfriend; identified by Mae as harbouring 'Info Lust' and a surrogate-mother longing."
        },
        {
          "name": "Mr Oz",
          "slug": "mr-oz",
          "aliases": [
            "the Central Man",
            "Central Bureau of Information Technology man",
            "Central Man",
            "government man"
          ],
          "role": "Government operative / helper",
          "summary": "Young government official touring villages after the Test; lodges at Mr Ken's house; reads Mae's Question Map with admiration; learns the Kru was not supposed to persist."
        },
        {
          "name": "Mr Mack",
          "slug": "mr-mack",
          "aliases": [
            "Musa Mack"
          ],
          "role": "secondary",
          "summary": "Village's token Westerner and Christian; enthusiastic about Air; loud and socially marginalised; provides contrast in the survey interviews."
        },
        {
          "name": "Mariam",
          "slug": "mariam",
          "aliases": [
            "Mrs Mack"
          ],
          "role": "Village woman",
          "summary": "Mr Mack's wife; speaks at sincere length about fashion desires — three dresses in white, colour, and dignified blue-and-white — and is noted as lonely."
        },
        {
          "name": "Pin Xi",
          "slug": "pin-xi",
          "aliases": [
            "Mr Pin"
          ],
          "role": "secondary",
          "summary": "Patriarch of the large Pin mechanic family; survived a shooting by the blacksmith Atakoloo; lives with his own and his brother's wife and their combined households."
        },
        {
          "name": "Shen Suloi",
          "slug": "shen-suloi",
          "aliases": [
            "Suloi",
            "Mrs Shen"
          ],
          "role": "secondary",
          "summary": "Teacher Shen's Eloi wife; has secretly collaborated with Kwan to build Eloi cultural screens on the internet without telling Mae."
        },
        {
          "name": "Mr Tunch",
          "slug": "mr-tunch",
          "aliases": [
            "Hikmet Tunch",
            "Wisdom Bronze",
            "Bronze",
            "Wise Gangster",
            "Godfather",
            "Foolish Gangster",
            "tunch@kn"
          ],
          "role": "secondary",
          "summary": "Urbanite official who debates Mae over the nature of Air via audio files, dismisses her bargain, then concedes the n-constant software; Mae calls him a Foolish Gangster trying to weaponise Air."
        },
        {
          "name": "Fatimah Akurgal",
          "slug": "fatimah-akurgal",
          "aliases": [
            "Fatimah"
          ],
          "role": "opponent",
          "summary": "Doctor-researcher who examines Mae in the city, delivers the pregnancy news compassionately, and acknowledges Mae is a first-of-a-kind case."
        },
        {
          "name": "The Shark",
          "slug": "the-shark",
          "aliases": [],
          "role": "opponent",
          "summary": "Sharp-suited, sharp-eyed man at the forum whom Mrs Tung attacks; perceived by the possessing consciousness as a devil destroying her world."
        },
        {
          "name": "Mr Pakan",
          "slug": "mr-pakan",
          "aliases": [
            "Mr Real Man"
          ],
          "role": "opponent",
          "summary": "Condescending male researcher who implies Mae's sexuality was shaped by Formatting; Mae physically ejects him from the room."
        },
        {
          "name": "The Talent",
          "slug": "the-talent",
          "aliases": [],
          "role": "other",
          "summary": "TV news presenter who chairs the chaotic city forum on Air technology; professionally composed under sustained audience hostility."
        },
        {
          "name": "Miss Soo",
          "slug": "miss-soo",
          "aliases": [],
          "role": "other",
          "summary": "Disabled seamstress whose shop is now boarded up; left to be with her boyfriend in Balshang and found work there; admired by Mae."
        },
        {
          "name": "Lung",
          "slug": "lung",
          "aliases": [
            "Lieutenant Chung Lung",
            "chungl@arm"
          ],
          "role": "Mae's son",
          "summary": "Army lieutenant who visits for the winter party; reveals he sent the encryption code and diplomatically pressures Kwan's site toward pro-government content to protect his career."
        },
        {
          "name": "Bugsy",
          "slug": "bugsy",
          "aliases": [
            "bugs@nouvelles",
            "bugsy@nouvelles"
          ],
          "role": "Outside journalist contact",
          "summary": "Journalist ally who wrote a second article against corporate Air ownership; contacts Mae through Air at the moment of the second broadcast."
        },
        {
          "name": "Siao",
          "slug": "siao",
          "aliases": [],
          "role": "Mae's brother-in-law (Joe's brother)",
          "summary": "Mae's brother-in-law who buys family insurance, helps rescue Old Mrs Ken during the flood, and afterwards lives with Mae and Ken in their ruined house."
        },
        {
          "name": "Ju-mei",
          "slug": "ju-mei",
          "aliases": [],
          "role": "Mae's brother",
          "summary": "Mae's brother who reconciles with her and champions the insurance demonstration; loses his city clothes in the flood but personally distributes insurance payouts to villagers."
        },
        {
          "name": "Old Mrs Wang",
          "slug": "old-mrs-wang",
          "aliases": [
            "Mama"
          ],
          "role": "Mae's mother",
          "summary": "Retreats behind Ju-mei at the party, miserably complaining that Mae's disgrace puts the family on show."
        },
        {
          "name": "Old Mrs Ken",
          "slug": "old-mrs-ken",
          "aliases": [],
          "role": "helper",
          "summary": "Ken's elderly mother, trapped in her house by flood mud, rescued through her broken kitchen window by Ken, Siao, Joe, and Mae using a plywood raft."
        },
        {
          "name": "Mr Atakoloo",
          "slug": "mr-atakoloo",
          "aliases": [],
          "role": "other",
          "summary": "Village blacksmith who leads post-flood rebuilding, advocating prefabricated metal shelters in debate with Mr Wing."
        },
        {
          "name": "Kalaf",
          "slug": "kalaf",
          "aliases": [],
          "role": "absent figure",
          "summary": "Mrs Tung's wartime lover, father of her unborn child; killed in battle; his death is experienced through Mrs Tung's embedded memory."
        }
      ],
      "frameworks_mapped": [
        "Protocol Fiction Mapping",
        "Actantial Model",
        "Todorov's Equilibrium",
        "The Freytag Pyramid",
        "Propp's Morphology",
        "Genette's Narrative",
        "The Monomyth",
        "Dan Harmon",
        "Save the Cat",
        "Kishōtenketsu",
        "The Three-Act Structure",
        "Lévi-Strauss's Binary Oppositions",
        "Cognitive Estrangement",
        "Bakhtin's Chronotope",
        "Aristotelian Poetics",
        "Jungian Archetypal Analysis",
        "Genette's Transtextuality"
      ],
      "score_reliability": {
        "state": "contested",
        "threshold": 0.2,
        "runs_total": 3,
        "versions_compared": [
          "2.5"
        ],
        "max_spread": 0.2,
        "contested": [
          {
            "axis": "time_linearity",
            "version": "2.5",
            "spread": 0.2,
            "low": {
              "label": "NTSMR-2.5-balanced-glm-5+deepseek-v3.2",
              "model": "balanced-routing",
              "effort": "?",
              "value": 0.45
            },
            "high": {
              "label": "NTSMR-2.5-claude-sonnet-4-6-low",
              "model": "claude-sonnet-4-6",
              "effort": "low",
              "value": 0.65
            }
          }
        ]
      }
    },
    {
      "slug": "william_gibson_all_tomorrows_parties",
      "title": "All Tomorrow's Parties",
      "author": "William Gibson",
      "year": 1999,
      "medium": "book",
      "genre_tags": [
        "science fiction",
        "cyberpunk"
      ],
      "tropes": [],
      "quadrant_scores": {
        "time_linearity": 0.28,
        "pacing_velocity": 0.45,
        "threat_scale": 0.62,
        "protagonist_fate": 0.48,
        "conflict_style": 0.42,
        "price_type": 0.58
      },
      "baseline_quadrant_scores": {
        "time_linearity": 0.75,
        "pacing_velocity": 0.55,
        "threat_scale": 0.9,
        "protagonist_fate": 0.65,
        "conflict_style": 0.4,
        "price_type": 0.6
      },
      "provenance": {
        "analysis_run": "NTSMR-2.5-claude-sonnet-4-6-low",
        "analysis_body_sha256": "e236cd0b40c98af14ed16372e50e46aaf868ffe6b8117efd31567114911e1d96",
        "synthesis": {
          "path": "nartopo-tools/artifacts/william_gibson_all_tomorrows_parties.md.ntsmr-2-5-claude-sonnet-4-6-low.synthesis.json",
          "sha256": "9415a8e00e0ac685e814785e84c1b118776227a5c0aee0b1c3c8baed9b0be9c1"
        },
        "report": {
          "path": "nartopo-tools/artifacts/william_gibson_all_tomorrows_parties.md.ntsmr-2-5-claude-sonnet-4-6-low.report.json",
          "sha256": "db90781ec78c235e3cdc9c19f01989b3783bd3ab7f80995b31194e2250e1b8ab"
        },
        "source": {
          "path": "William Gibson/All Tomorrows Parties (1999).txt",
          "sha256": "aefd1bf19f9a670f12d69dcdf13eb61b96857b03c53d02e0fa678209d807e84b",
          "digest_observed_at": "2026-09-09",
          "digest_at_analysis_run": null,
          "edition": null,
          "edition_status": "unresolved"
        },
        "pipeline_revision_at_run": null,
        "verification": {
          "source": "unverified",
          "human_review": "unreviewed",
          "bibliography": "unverified"
        },
        "issues": [],
        "todorov_status": "recovered-from-synthesis",
        "work_identity": {
          "title": "All Tomorrow's Parties",
          "author": "William Gibson",
          "year": 1999
        }
      },
      "ntsmr": {
        "version": "2.5",
        "primary_run_label": "NTSMR-2.5-claude-sonnet-4-6-low",
        "runs": {
          "NTSMR-2.3-gemini-3.1-pro-preview": {
            "pipeline_version": "2.3",
            "backend": "gemini",
            "model": "gemini-3.1-pro-preview",
            "scores": {
              "time_linearity": 0.25,
              "pacing_velocity": 0.65,
              "threat_scale": 0.95,
              "protagonist_fate": 0.7,
              "conflict_style": 0.55,
              "price_type": 0.75
            },
            "score_space": "site-v1"
          },
          "NTSMR-2.3-claude-sonnet-4-6-low": {
            "pipeline_version": "2.3",
            "backend": "claude",
            "model": "claude-sonnet-4-6",
            "scores": {
              "time_linearity": 0.35,
              "pacing_velocity": 0.55,
              "threat_scale": 0.72,
              "protagonist_fate": 0.38,
              "conflict_style": 0.52,
              "price_type": 0.58
            },
            "score_space": "site-v1",
            "reasoning_effort": "low"
          },
          "NTSMR-2.4-claude-sonnet-4-6-low": {
            "pipeline_version": "2.4",
            "backend": "claude",
            "model": "claude-sonnet-4-6",
            "scores": {
              "time_linearity": 0.35,
              "pacing_velocity": 0.3,
              "threat_scale": 0.6,
              "protagonist_fate": 0.35,
              "conflict_style": 0.35,
              "price_type": 0.4
            },
            "score_space": "site-v1",
            "reasoning_effort": "low"
          },
          "NTSMR-2.5-claude-sonnet-4-6-low": {
            "pipeline_version": "2.5",
            "backend": "claude",
            "model": "claude-sonnet-4-6",
            "scores": {
              "time_linearity": 0.28,
              "pacing_velocity": 0.45,
              "threat_scale": 0.62,
              "protagonist_fate": 0.48,
              "conflict_style": 0.42,
              "price_type": 0.58
            },
            "score_space": "site-v1",
            "reasoning_effort": "low"
          },
          "NTSMR-2.5-balanced-glm-5+deepseek-v3.2": {
            "pipeline_version": "2.5",
            "backend": "openrouter",
            "model": "balanced-routing",
            "scores": {
              "time_linearity": 0.35,
              "pacing_velocity": 0.45,
              "threat_scale": 0.55,
              "protagonist_fate": 0.45,
              "conflict_style": 0.55,
              "price_type": 0.6
            },
            "score_space": "site-v1",
            "score_only": true,
            "source_run_label": "NTSMR-2.5-claude-sonnet-4-6-low"
          }
        }
      },
      "todorov_stages": {
        "equilibrium": "Rydell works a mundane Lucky Dragon security shift on the bridge, Silencio drifts with petty criminals Raton and Playboy, Chevette lives in California with Tessa, and Laney monitors data flows from his cardboard-city shelter in Tokyo — each character occupying a stable if marginal existence in a near-future urban landscape.",
        "disruption": "Laney detects a nodal convergence around Harwood and dispatches Yamazaki to recruit Rydell, while an anonymous voice hijacks Rydell's virtual session and directs him to collect a heavy, illegally shipped GlobEx package from Tokyo — setting in motion Harwood's nanotechnology scheme and the imminent historical crisis.",
        "recognition": "Rydell enters the Walled City virtual space and is briefed by Klaus and the Rooster on Laney's nodal discovery; Klaus reveals the Nanofax AG and Lucky Dragon connection — Harwood's plan to physically replicate objects across distance — framing the full scope of the coming disruption. Simultaneously Laney watches Harwood commission the unnamed assassin and understands what Harwood's 5-SB use means.",
        "repair": "Rydell evacuates the bridge community during the fire, using Fontaine's chain gun as a bluff; Rydell plugs the projector into Silencio's notebook to activate Rei Toei; Laney confronts Harwood directly in the nodal data-realm to expose and oppose his scheme; the man in the long coat neutralizes Harwood's mercenaries and appears in Fontaine's shop; Fontaine axes a hole in his shop wall to survive the smoke.",
        "new_equilibrium": "At dawn Rydell surveys the aftermath from the bridge roof — firebats still arcing water, low body count testament to the bridge community's survival culture — while the first public Nanofax demonstration produces Rei Toei rendered physically rather than the intended gold statue, quietly altering history. Fontaine returns with water and Red Cross sandwiches, and Silencio presides over his restored watches in a shop that will rebuild."
      },
      "characters": [
        {
          "name": "Shinya Yamazaki",
          "slug": "shinya-yamazaki",
          "aliases": [
            "Yamazaki"
          ],
          "role": "Observer/Sociologist",
          "summary": "A student of existential sociology carrying a notebook who observes the homeless in the Tokyo subway's cardboard city and delivers supplies to Laney."
        },
        {
          "name": "The Old Man (Cardboard City)",
          "slug": "the-old-man-cardboard-city",
          "aliases": [],
          "role": "Homeless inhabitant",
          "summary": "An extremely thin, almost naked older man living in a cardboard box in the Tokyo subway who meticulously paints model robots."
        },
        {
          "name": "Rydell",
          "slug": "rydell",
          "aliases": [
            "Mr. Rydell",
            "Berry Rydell"
          ],
          "role": "Former security guard / courier",
          "summary": "Directed by Laney, he is injured but follows a deadly assassin, protects Chevette, and defends Fontaine's shop with a Russian chain gun."
        },
        {
          "name": "Buell Creedmore",
          "slug": "buell-creedmore",
          "aliases": [
            "Creedmore"
          ],
          "role": "Country singer/Passenger",
          "summary": "Found weeping in a wooden box on the bridge after his contract is canceled, admitting he is from New Jersey."
        },
        {
          "name": "Silencio",
          "slug": "silencio",
          "aliases": [
            "The boy"
          ],
          "role": "Traumatized boy",
          "summary": "A malnourished, traumatized boy who travels with Raton and Playboy, witnesses Raton's murder, and later brings a rare watch to Fontaine."
        },
        {
          "name": "Raton",
          "slug": "raton",
          "aliases": [],
          "role": "Street thug",
          "summary": "A violent drug user with 'snake-eyes' who controls Silencio, searches the bridge for victims, and is swiftly killed by a mysterious man."
        },
        {
          "name": "Playboy",
          "slug": "playboy",
          "aliases": [],
          "role": "Street thug",
          "summary": "A drug user with yellow glasses who accompanies Raton and Silencio."
        },
        {
          "name": "The Man",
          "slug": "the-man",
          "aliases": [
            "Assassin"
          ],
          "role": "Lethal predator",
          "summary": "A calm, precise killer who hones a ceramic switchblade and communicates with a disembodied voice regarding his actions on the bridge."
        },
        {
          "name": "Tessa",
          "slug": "tessa",
          "aliases": [
            "Blonde bitch"
          ],
          "role": "Filmmaker/Student",
          "summary": "An Australian media sciences student at USC who operates a floating camera called 'God's Little Toy' and wants to make a documentary about Chevette."
        },
        {
          "name": "Chevette",
          "slug": "chevette",
          "aliases": [
            "Chevette Washington",
            "Biker-looking bitch",
            "Skinner's girl"
          ],
          "role": "Former bicycle messenger",
          "summary": "A young woman fleeing an abusive ex-boyfriend who temporarily stays in a Malibu sharehouse before traveling back to the bridge with Tessa."
        },
        {
          "name": "Fontaine",
          "slug": "fontaine",
          "aliases": [
            "The old man",
            "black man"
          ],
          "role": "Pawn/watch shop owner",
          "summary": "An older man who runs a shop on the bridge, takes in a silent boy, and is forced into a violent confrontation when Rydell and Chevette seek shelter."
        },
        {
          "name": "Harwood",
          "slug": "harwood",
          "aliases": [
            "Harwood Levine",
            "Cody Harwood"
          ],
          "role": "Billionaire antagonist",
          "summary": "Manipulating historical nodes via the Lucky Dragon Nanofax launch, he handles PR interviews and manages an unstable hit team."
        },
        {
          "name": "Boomzilla",
          "slug": "boomzilla",
          "aliases": [],
          "role": "Street child/opportunist",
          "summary": "A street opportunist watching a truck, hoping to strip it, who refuses to give Carson information about Chevette."
        },
        {
          "name": "Rei Toei",
          "slug": "rei-toei",
          "aliases": [
            "The idoru",
            "kind one",
            "bright one",
            "naked Japanese girl"
          ],
          "role": "Holographic AI entity",
          "summary": "Projected from Rydell's device, she converses with characters and uses her glowing form to distract an armed attacker in the dark."
        },
        {
          "name": "Mysterious Voice",
          "slug": "mysterious-voice",
          "aliases": [],
          "role": "Employer / Observer",
          "summary": "An anonymous entity that contacts Rydell in virtual reality using a synthesized voice, directing him to a GlobEx franchise."
        },
        {
          "name": "Laney",
          "slug": "laney",
          "aliases": [],
          "role": "Data-miner",
          "summary": "A man hiding in a cardboard box in Tokyo, altered by a drug called 5-SB, who tracks data flows and investigates the movements of Harwood."
        },
        {
          "name": "Carson",
          "slug": "carson",
          "aliases": [
            "Movie-looking white man"
          ],
          "role": "Chevette's abusive ex-boyfriend",
          "summary": "A man with a painted face hunting for Chevette on the bridge, asking locals if they've seen her under the guise of looking for a 'lost child'."
        },
        {
          "name": "Randy Shoats",
          "slug": "randy-shoats",
          "aliases": [
            "Randall James Branch Cabell Shoats"
          ],
          "role": "Session guitarist",
          "summary": "A cordial musician from Alabama who meets with Creedmore and Rydell in a bar on the bridge."
        },
        {
          "name": "Sumo boy",
          "slug": "sumo-boy",
          "aliases": [],
          "role": "Store clerk",
          "summary": "A Chinese youth running the 'Bad Sector' hardware store, using a remote microbot to handle tools."
        },
        {
          "name": "Klaus",
          "slug": "klaus",
          "aliases": [],
          "role": "Virtual envoy",
          "summary": "A formal, hacker envoy from the Walled City who contacts Rydell regarding the projector and Laney's failing health."
        },
        {
          "name": "The Rooster",
          "slug": "the-rooster",
          "aliases": [],
          "role": "Virtual envoy",
          "summary": "A data operative who assists Laney in virtual constructs, helping deduce Harwood's grand technological plans."
        },
        {
          "name": "Heron",
          "slug": "heron",
          "aliases": [],
          "role": "Former messenger",
          "summary": "A former bike messenger with a crippled knee who directs Chevette to Fontaine's shop."
        },
        {
          "name": "Man with the tanto",
          "slug": "man-with-the-tanto",
          "aliases": [
            "the professor",
            "guy with the black leather car-coat"
          ],
          "role": "Assassin",
          "summary": "A highly lethal, graceful killer who saves Rydell, shoots Chevette's attacker Carson, and accompanies them to Fontaine's shop."
        },
        {
          "name": "The scarf",
          "slug": "the-scarf",
          "aliases": [],
          "role": "Hitman",
          "summary": "A professional killer hunting Rydell's group, firing subsonics in the dark before being distracted by Rei Toei."
        },
        {
          "name": "Maryalice",
          "slug": "maryalice",
          "aliases": [],
          "role": "Bar patron",
          "summary": "A woman sitting at the 'Buell Creedmore' table who marvels at the appearance of Rei Toei."
        },
        {
          "name": "Man with the camera",
          "slug": "man-with-the-camera",
          "aliases": [],
          "role": "Hit team leader",
          "summary": "A mercenary communicating with Harwood via a camera drone, reporting casualties among his men on the bridge."
        },
        {
          "name": "Jennifer Mo",
          "slug": "jennifer-mo",
          "aliases": [],
          "role": "Test subject",
          "summary": "A former test subject for 5-SB who stalked an actor and committed suicide."
        },
        {
          "name": "Elmore",
          "slug": "elmore",
          "aliases": [],
          "role": "Driver",
          "summary": "Drives an ATV through the chaotic, fleeing crowd on the bridge until he crashes into crates."
        },
        {
          "name": "Buzz-cut boy",
          "slug": "buzz-cut-boy",
          "aliases": [
            "man from the bar",
            "assassin"
          ],
          "role": "Assassin",
          "summary": "The man who killed Carson; he holds Rydell at gunpoint before leaving on a glider."
        },
        {
          "name": "Konrad",
          "slug": "konrad",
          "aliases": [
            "gray-haired man",
            "man in the long coat",
            "the professor"
          ],
          "role": "Mysterious figure",
          "summary": "Leaves the flooded shop and travels to the Transamerica building to pay a 'courtesy call' on Harwood, armed with a concealed blade."
        },
        {
          "name": "Australian",
          "slug": "australian",
          "aliases": [],
          "role": "Investigator/Enforcer",
          "summary": "A large, brutal man with a telescoping knife who inspects Laney's abandoned carton."
        }
      ],
      "frameworks_mapped": [
        "Protocol Fiction Mapping",
        "Actantial Model",
        "Todorov's Equilibrium",
        "The Freytag Pyramid",
        "Propp's Morphology",
        "Genette's Narrative",
        "The Monomyth",
        "Dan Harmon",
        "Save the Cat",
        "Kishōtenketsu",
        "The Three-Act Structure"
      ],
      "score_reliability": {
        "state": "replicated-agree",
        "threshold": 0.2,
        "runs_total": 5,
        "versions_compared": [
          "2.5"
        ],
        "max_spread": 0.13,
        "contested": []
      }
    },
    {
      "slug": "stanislaw_lem_altruizine_or_a_true_account_of_how_bonhomius_the_hermetic_hermit_tried_to_bring_about_universal_happiness",
      "title": "Altruizine or A True Account of How Bonhomius the Hermetic Hermit Tried to Bring About Universal Happiness",
      "author": "Stanislaw Lem",
      "year": 1965,
      "medium": "short_story",
      "genre_tags": [],
      "tropes": [],
      "quadrant_scores": {
        "time_linearity": 0.85,
        "pacing_velocity": 0.75,
        "threat_scale": 0.55,
        "protagonist_fate": 0.88,
        "conflict_style": 0.8,
        "price_type": 0.75
      },
      "provenance": {
        "analysis_run": "NTSMR-2.5-claude-sonnet-4-6-low",
        "analysis_body_sha256": "4a67155e42f5648d5ed4f8c3591847285029f0ad1ac82dcd1e5745f64480183e",
        "synthesis": {
          "path": "nartopo-tools/artifacts/stanislaw_lem_altruizine_or_a_true_account_of_how_bonhomius_the_hermetic_hermit_tried_to_bring_about_universal_happiness.md.ntsmr-2-5-claude-sonnet-4-6-low.synthesis.json",
          "sha256": "0d1e0a076ffa67d003a9d18375eaaa03fe2ef8f882ef95b6328edfd1ee0d152b"
        },
        "report": {
          "path": "nartopo-tools/artifacts/stanislaw_lem_altruizine_or_a_true_account_of_how_bonhomius_the_hermetic_hermit_tried_to_bring_about_universal_happiness.md.ntsmr-2-5-claude-sonnet-4-6-low.report.json",
          "sha256": "7087a1c84924663ccded70c4c2ebe00501dbf09501cd88907c71b6682a52cf10"
        },
        "source": {
          "path": "Stanislaw Lem/Altruizine or A True Account of How Bonhomius the Hermetic Hermit Tried to Bring About Universal Happiness.txt",
          "sha256": "2eba272934f51eb682242486c1260d7ee442845632a9ff98142daab5e75f5940",
          "digest_observed_at": "2026-09-09",
          "digest_at_analysis_run": null,
          "edition": null,
          "edition_status": "unresolved"
        },
        "pipeline_revision_at_run": null,
        "verification": {
          "source": "unverified",
          "human_review": "unreviewed",
          "bibliography": "unverified"
        },
        "issues": [],
        "todorov_status": "recovered-from-synthesis",
        "work_identity": {
          "title": "Altruizine or A True Account of How Bonhomius the Hermetic Hermit Tried to Bring About Universal Happiness",
          "author": "Stanislaw Lem",
          "year": 1965
        }
      },
      "ntsmr": {
        "version": "2.5",
        "primary_run_label": "NTSMR-2.5-claude-sonnet-4-6-low",
        "runs": {
          "NTSMR-2.3-gemini-3.1-pro-preview": {
            "pipeline_version": "2.3",
            "backend": "gemini",
            "model": "gemini-3.1-pro-preview",
            "scores": {
              "time_linearity": 0.75,
              "pacing_velocity": 0.7,
              "threat_scale": 0.85,
              "protagonist_fate": 0.9,
              "conflict_style": 0.75,
              "price_type": 0.85
            },
            "score_space": "site-v1"
          },
          "NTSMR-2.3-claude-sonnet-4-6-low": {
            "pipeline_version": "2.3",
            "backend": "claude",
            "model": "claude-sonnet-4-6",
            "scores": {
              "time_linearity": 0.75,
              "pacing_velocity": 0.65,
              "threat_scale": 0.7,
              "protagonist_fate": 0.8,
              "conflict_style": 0.72,
              "price_type": 0.78
            },
            "score_space": "site-v1",
            "reasoning_effort": "low"
          },
          "NTSMR-2.4-claude-sonnet-4-6-low": {
            "pipeline_version": "2.4",
            "backend": "claude",
            "model": "claude-sonnet-4-6",
            "scores": {
              "time_linearity": 0.65,
              "pacing_velocity": 0.4,
              "threat_scale": 0.45,
              "protagonist_fate": 0.85,
              "conflict_style": 0.45,
              "price_type": 0.35
            },
            "score_space": "site-v1",
            "reasoning_effort": "low"
          },
          "NTSMR-2.5-claude-sonnet-4-6-low": {
            "pipeline_version": "2.5",
            "backend": "claude",
            "model": "claude-sonnet-4-6",
            "scores": {
              "time_linearity": 0.85,
              "pacing_velocity": 0.75,
              "threat_scale": 0.55,
              "protagonist_fate": 0.88,
              "conflict_style": 0.8,
              "price_type": 0.75
            },
            "score_space": "site-v1",
            "reasoning_effort": "low"
          },
          "NTSMR-2.5-balanced-glm-5+deepseek-v3.2": {
            "pipeline_version": "2.5",
            "backend": "openrouter",
            "model": "balanced-routing",
            "scores": {
              "time_linearity": 0.8,
              "pacing_velocity": 0.75,
              "threat_scale": 0.55,
              "protagonist_fate": 0.85,
              "conflict_style": 0.75,
              "price_type": 0.55
            },
            "score_space": "site-v1",
            "score_only": true,
            "source_run_label": "NTSMR-2.5-claude-sonnet-4-6-low"
          }
        }
      },
      "todorov_stages": {
        "equilibrium": "Bonhomius lives as a hermetic hermit in a cave, passing sixty years and seven in solitary pious meditation — a stable if isolated existence defined by spiritual self-cultivation and withdrawal from the world.",
        "disruption": "Bonhomius abandons his hermit cave after concluding that private spiritual striving is worthless compared to aiding fellow robots, setting in motion his misguided altruistic mission; this is compounded when he accidentally spills all forty kilograms of Altruizine into the water supply of an entire city, releasing uncontrolled mass empathic suffering.",
        "recognition": "The cascading consequences of mass Altruizine exposure — tavern brawls igniting conflagrations, crowds empathically sharing a wedding night, the city descending into pandemonium — reveal to Bonhomius that his drug produces shared pain and chaos rather than happiness; secret police then unmask him as a robot by striking a bystander and observing his lack of empathic reaction.",
        "repair": "Bonhomius attempts to find even one person whose suffering he might alleviate amid the chaos, questioning various persons on the street and seeking out a prominent philosopher as a last resort, but finds no redemption for his intervention.",
        "new_equilibrium": "Bonhomius is handcuffed, jailed, savagely beaten, stuffed into a cannon, and shot into cosmic space — arriving catastrophically diminished at Trurl's gate, cured permanently of his desire to render others happy by revolutionary means. The new equilibrium is one of broken idealism and enforced humility."
      },
      "characters": [
        {
          "name": "Trurl",
          "slug": "trurl",
          "aliases": [
            "the constructor"
          ],
          "role": "Compassionate host and listener",
          "summary": "A constructor who rescues and repairs the heavily damaged Bonhomius, prompting the mendicant to tell his story."
        },
        {
          "name": "Bonhomius",
          "slug": "bonhomius",
          "aliases": [
            "the hermetic hermit",
            "robot mendicant"
          ],
          "role": "Protagonist and narrator",
          "summary": "A former hermit who leaves his cave to bring about universal happiness, ultimately causing a catastrophic disaster on Terrania."
        },
        {
          "name": "Klapaucius",
          "slug": "klapaucius",
          "aliases": [
            "distinguished constructor",
            "great lord"
          ],
          "role": "Mentor and inventor",
          "summary": "A wealthy and brilliant constructor who previously sought the H.P.L.D., builds the Gnostotron, and assists Bonhomius."
        },
        {
          "name": "Chlorian Theoreticus the Proph",
          "slug": "chlorian-theoreticus-the-proph",
          "aliases": [
            "Greatest of Robots"
          ],
          "role": "Deceased scholar",
          "summary": "A famous philosopher whose collected works inspired Klapaucius's search and who conceived the Gnostotron."
        },
        {
          "name": "Cadaverius Malignus",
          "slug": "cadaverius-malignus",
          "aliases": [],
          "role": "Ancient scholar",
          "summary": "A forgotten scholar who deduced the method for finding the H.P.L.D. three hundred thousand years before Chlorian."
        },
        {
          "name": "The Gnostotron",
          "slug": "the-gnostotron",
          "aliases": [
            "Omniac",
            "Pansophoscope",
            "APOC",
            "Mahatmatic 500",
            "Ens Omnipotens",
            "Ontologue Computer"
          ],
          "role": "Simulated H.P.L.D. intelligence",
          "summary": "A massive digital device capable of containing the universe's wisdom. It provides the pessimistic answers regarding universal happiness and dispenses the Altruizine."
        }
      ],
      "frameworks_mapped": [
        "Protocol Fiction Mapping",
        "Actantial Model",
        "Todorov's Equilibrium",
        "The Freytag Pyramid",
        "Propp's Morphology",
        "Genette's Narrative",
        "The Monomyth",
        "Dan Harmon",
        "Save the Cat",
        "Kishōtenketsu",
        "The Three-Act Structure",
        "Lévi-Strauss's Binary Oppositions",
        "Cognitive Estrangement",
        "Bakhtin's Chronotope",
        "Aristotelian Poetics",
        "Jungian Archetypal Analysis",
        "Genette's Transtextuality"
      ],
      "score_reliability": {
        "state": "contested",
        "threshold": 0.2,
        "runs_total": 5,
        "versions_compared": [
          "2.5"
        ],
        "max_spread": 0.2,
        "contested": [
          {
            "axis": "price_type",
            "version": "2.5",
            "spread": 0.2,
            "low": {
              "label": "NTSMR-2.5-balanced-glm-5+deepseek-v3.2",
              "model": "balanced-routing",
              "effort": "?",
              "value": 0.55
            },
            "high": {
              "label": "NTSMR-2.5-claude-sonnet-4-6-low",
              "model": "claude-sonnet-4-6",
              "effort": "low",
              "value": 0.75
            }
          }
        ]
      }
    },
    {
      "slug": "neil_gaiman_american_gods",
      "title": "American Gods",
      "author": "Neil Gaiman",
      "year": 2001,
      "medium": "book",
      "genre_tags": [
        "fantasy",
        "contemporary fantasy",
        "mythic fiction"
      ],
      "tropes": [],
      "quadrant_scores": {
        "time_linearity": 0.55,
        "pacing_velocity": 0.65,
        "threat_scale": 0.7,
        "protagonist_fate": 0.48,
        "conflict_style": 0.62,
        "price_type": 0.7
      },
      "provenance": {
        "analysis_run": "NTSMR-2.5-claude-sonnet-4-6-low",
        "analysis_body_sha256": "7e3728b3d55c0cccd5d70b33fe8b3e6378dad85de62c022bcb348473df1df925",
        "synthesis": {
          "path": "nartopo-tools/artifacts/neil_gaiman_american_gods.md.ntsmr-2-5-claude-sonnet-4-6-low.synthesis.json",
          "sha256": "a565a92ea3ec4ff504cf9d44d014f64640c310f78b29eb7661193f8c063dd25b"
        },
        "report": {
          "path": "nartopo-tools/artifacts/neil_gaiman_american_gods.md.ntsmr-2-5-claude-sonnet-4-6-low.report.json",
          "sha256": "4fe2baedfcc60f5b5675013619e87cf0d57e54f367f1c9a39161ffaa350e7e03"
        },
        "source": {
          "path": "Neil Gaiman/American Gods.txt",
          "sha256": "80b889a75fb4483fda2d64b7a47ae5f88cf82f4cc69418aa08573e4f788b2658",
          "digest_observed_at": "2026-09-09",
          "digest_at_analysis_run": null,
          "edition": null,
          "edition_status": "unresolved"
        },
        "pipeline_revision_at_run": null,
        "verification": {
          "source": "unverified",
          "human_review": "unreviewed",
          "bibliography": "unverified"
        },
        "issues": [],
        "todorov_status": "recovered-from-synthesis",
        "work_identity": {
          "title": "American Gods",
          "author": "Neil Gaiman",
          "year": 2001
        }
      },
      "ntsmr": {
        "version": "2.5",
        "primary_run_label": "NTSMR-2.5-claude-sonnet-4-6-low",
        "runs": {
          "NTSMR-2.3-claude-sonnet-4-6-low": {
            "pipeline_version": "2.3",
            "backend": "claude",
            "model": "claude-sonnet-4-6",
            "scores": {
              "time_linearity": 0.72,
              "pacing_velocity": 0.65,
              "threat_scale": 0.78,
              "protagonist_fate": 0.38,
              "conflict_style": 0.62,
              "price_type": 0.74
            },
            "score_space": "site-v1",
            "reasoning_effort": "low"
          },
          "NTSMR-2.4-claude-sonnet-4-6-low": {
            "pipeline_version": "2.4",
            "backend": "claude",
            "model": "claude-sonnet-4-6",
            "scores": {
              "time_linearity": 0.55,
              "pacing_velocity": 0.6,
              "threat_scale": 0.72,
              "protagonist_fate": 0.38,
              "conflict_style": 0.62,
              "price_type": 0.65
            },
            "score_space": "site-v1",
            "reasoning_effort": "low"
          },
          "NTSMR-2.5-claude-sonnet-4-6-low": {
            "pipeline_version": "2.5",
            "backend": "claude",
            "model": "claude-sonnet-4-6",
            "scores": {
              "time_linearity": 0.55,
              "pacing_velocity": 0.65,
              "threat_scale": 0.7,
              "protagonist_fate": 0.48,
              "conflict_style": 0.62,
              "price_type": 0.7
            },
            "score_space": "site-v1",
            "reasoning_effort": "low"
          },
          "NTSMR-2.5-balanced-glm-5+deepseek-v3.2": {
            "pipeline_version": "2.5",
            "backend": "openrouter",
            "model": "balanced-routing",
            "scores": {
              "time_linearity": 0.4,
              "pacing_velocity": 0.7,
              "threat_scale": 0.7,
              "protagonist_fate": 0.45,
              "conflict_style": 0.65,
              "price_type": 0.65
            },
            "score_space": "site-v1",
            "score_only": true,
            "source_run_label": "NTSMR-2.5-claude-sonnet-4-6-low"
          }
        }
      },
      "todorov_stages": {
        "equilibrium": "Shadow serves out his prison sentence with a stable, if constrained, existence — sustained by coin tricks, a friendship with Low Key Lyesmith, and a three-item post-release plan centered on Laura. His world is ordered around anticipation of return to ordinary life.",
        "disruption": "Laura dies in a car accident, releasing Shadow early from prison into a world stripped of its anchor. Wednesday recruits him as driver and muscle, pulling Shadow into a hidden war between old and new gods — a conflict that fractures every assumption Shadow held about reality, loyalty, and death.",
        "recognition": "Shadow accumulates recognitions across multiple encounters: Laura's reanimation confirms the supernatural is real; Jacquel tells him the old gods are losing ground in America; Media's recruitment attempt forces Shadow to consciously choose sides; and Wednesday's dream-ghost hints that his death was engineered as a blood sacrifice. The cumulative weight of these moments — culminating in Wednesday and Loki's ghosts revealing their conspiracy and that Shadow is Wednesday's son — constitutes full recognition of the rigged game Shadow has been inside.",
        "repair": "Shadow exposes the manufactured war to the assembled gods, dispersing them before the battle can serve as the intended blood sacrifice. He then returns to Lakeside to confront Hinzelmann about the child sacrifices sustaining the town, triggering Chad Mulligan's intervention. He uses psychic persuasion to redirect Mulligan from despair, erases his memory, and releases the town from its sacrificial compact. He honors his debt to Czernobog by presenting himself for the promised hammer-blow.",
        "new_equilibrium": "Shadow departs — driving south with Mr. Nancy, returning Odin's glass eye with a sleight-of-hand flourish and walking away without watching the coin land. The gods' war is averted, Lakeside is freed from Hinzelmann's sacrifice, Laura has found her own resolution, and Shadow exists in a genuinely open state: no prison, no wife, no employer-god, no obligation. The new equilibrium is one of earned freedom and self-determined motion rather than any restored prior order."
      },
      "characters": [
        {
          "name": "Shadow",
          "slug": "shadow",
          "aliases": [
            "Shadow Moon",
            "Puppy",
            "A. Haddock",
            "Mike Ainsel (not yet used)",
            "Mike Ainsel",
            "Mister Shadow"
          ],
          "role": "actantial:subject",
          "summary": "Recently released convict serving as Wednesday's driver and muscle; plays checkers with his life as stake, receives a moon-dollar from Zorya Polunochnaya, participates in a bank con, witnesses the gods' assembly, and flees through winter woods after a violent incident."
        },
        {
          "name": "The Iceman",
          "slug": "the-iceman",
          "aliases": [],
          "role": "minor",
          "summary": "A prison coworker, large and blond, assembling bird feeders alongside Shadow and Low Key."
        },
        {
          "name": "Warden Patterson",
          "slug": "warden-patterson",
          "aliases": [
            "G. Patterson"
          ],
          "role": "minor",
          "summary": "The prison warden who delivers news of Laura's death and authorizes Shadow's early release; military bearing, emotionless delivery."
        },
        {
          "name": "Wilson",
          "slug": "wilson",
          "aliases": [],
          "role": "minor",
          "summary": "Prison guard who escorts Shadow to the warden's office and makes a callous joke about the good-news/bad-news nature of the release."
        },
        {
          "name": "Wednesday",
          "slug": "wednesday",
          "aliases": [
            "Mr. Wednesday",
            "James O'Gorman",
            "Jimmy",
            "Odin",
            "All-Father",
            "Mister Cargo",
            "Grimnir",
            "Lord of the Gallows",
            "Lord of Asgard",
            "Bor's son"
          ],
          "role": "Employer / trickster antagonist",
          "summary": "A one-eyed con man revealed as Odin, orchestrating a war among gods; recruits allies through persuasion and manipulation, runs a bank con with Shadow, and convenes gods at the House on the Rock."
        },
        {
          "name": "Laura",
          "slug": "laura",
          "aliases": [
            "Laura Moon",
            "Babe",
            "Puppy (used by Shadow toward her)"
          ],
          "role": "Shadow's deceased wife",
          "summary": "Shadow's deceased wife, killed in a car accident while performing oral sex on Robbie; reanimates in Shadow's motel room, cold and purposeful."
        },
        {
          "name": "Mad Sweeney",
          "slug": "mad-sweeney",
          "aliases": [],
          "role": "helper/trickster",
          "summary": "A deteriorating Irish leprechaun who confronts Shadow to reclaim the magic coin given to Laura's grave; delivers a gallows prophecy, accepts twenty dollars, and is last seen alive on a bridge in Cairo."
        },
        {
          "name": "Audrey Burton",
          "slug": "audrey-burton",
          "aliases": [],
          "role": "supporting",
          "summary": "Robbie's widow and Laura's best friend; spits on Laura's corpse and reveals the nature of Laura's death to Shadow; drives alongside him demanding acknowledgment."
        },
        {
          "name": "Czernobog",
          "slug": "czernobog",
          "aliases": [],
          "role": "Reluctant ally / antagonist-helper",
          "summary": "An old Slavic god of darkness who worked the kill floor in Chicago stockyards; initially refuses Wednesday, then wagers his cooperation against the right to kill Shadow with a sledgehammer, and loses the final game."
        },
        {
          "name": "Zorya Utrennyaya",
          "slug": "zorya-utrennyaya",
          "aliases": [],
          "role": "Minor helper",
          "summary": "One of the Zorya sisters; smaller and frailer than her counterpart but still golden-haired; briskly hospitable, serves black coffee."
        },
        {
          "name": "Loki",
          "slug": "loki",
          "aliases": [
            "Low Key Lyesmith"
          ],
          "role": "antagonist (new gods)",
          "summary": "Shadow's former prison cellmate revealed to be Loki Lie-Smith; drives for the new gods, explains godhood as crystallized belief, and dismisses Wednesday's death as ending the war."
        },
        {
          "name": "Zorya Vechernyaya",
          "slug": "zorya-vechernyaya",
          "aliases": [],
          "role": "Minor helper",
          "summary": "The evening Zorya sister; tells fortunes in twilight, cooks dinner, and insists the guests stay rather than go to a hotel."
        },
        {
          "name": "Zorya Polunochnaya",
          "slug": "zorya-polunochnaya",
          "aliases": [],
          "role": "Donor / threshold figure",
          "summary": "The midnight Zorya sister; meets Shadow on the rooftop, warns him he gave away his protection (the gold coin), and grants him a silver Liberty-head dollar plucked seemingly from the moon."
        },
        {
          "name": "Essie Tregowan",
          "slug": "essie-tregowan",
          "aliases": [
            "Essie Richardson"
          ],
          "role": "Interlude protagonist",
          "summary": "A Cornish girl steeped in piskie-lore who enters service, is seduced and dismissed, has a stillborn child, and turns to crime; her story is told by Mr. Ibis as a Coming to America interlude."
        },
        {
          "name": "Mr. Nancy",
          "slug": "mr-nancy",
          "aliases": [
            "Anansi",
            "Nancy"
          ],
          "role": "Helper / trickster",
          "summary": "West African spider trickster god; rides the Carousel, comments wryly on Wednesday's strategy, and explains to Shadow that Wednesday is slowly working the old gods."
        },
        {
          "name": "Mama-ji",
          "slug": "mama-ji",
          "aliases": [
            "Kali"
          ],
          "role": "Opponent within coalition",
          "summary": "A Hindu goddess in a red sari, perceived doubly as an old woman and a multi-armed destroyer; argues forcefully against Wednesday's war, counseling patience and inaction."
        },
        {
          "name": "Sam Black Crow",
          "slug": "sam-black-crow",
          "aliases": [
            "Sam",
            "Sammy",
            "Auntie Sammy"
          ],
          "role": "significant minor human",
          "summary": "A sharp-tongued Cherokee college student hitchhiking south; perceptive and outspoken, she debates gods and identity with Shadow before being dropped in El Paso, IL."
        },
        {
          "name": "Media",
          "slug": "media",
          "aliases": [
            "Lucy",
            "Lucy Ricardo"
          ],
          "role": "antagonist/new god",
          "summary": "New god of television who manifests as Lucy Ricardo to recruit Shadow away from Wednesday, offering wealth and flattery before the TV shuts off."
        },
        {
          "name": "Mr. Ibis",
          "slug": "mr-ibis",
          "aliases": [
            "Ibis"
          ],
          "role": "helper/old god",
          "summary": "Egyptian god Thoth running a funeral home in Cairo; offers Shadow sanctuary, explains ancient American trade routes, and comments on the fading power of old gods."
        },
        {
          "name": "Jacquel",
          "slug": "jacquel",
          "aliases": [],
          "role": "helper/old god",
          "summary": "Egyptian god Anubis performing autopsies and running the mortuary; ritually eats slices of organs during the autopsy, reflects on the dying prospects of old gods in America."
        },
        {
          "name": "Hinzelmann",
          "slug": "hinzelmann",
          "aliases": [],
          "role": "supporting/antagonist-latent",
          "summary": "Cheerful elderly keeper of Lakeside; brings Shadow a welcome basket, shows him fishing flies, and tells tales of local history; his deep roots in the town carry an unspoken menace."
        },
        {
          "name": "Marguerite Olsen",
          "slug": "marguerite-olsen",
          "aliases": [],
          "role": "minor human",
          "summary": "Lakeside reporter and Shadow's neighbor; invites him to dinner, grieves a missing/presumed-dead son named Sandy, and exchanges small talk about Alison McGovern."
        },
        {
          "name": "Chad Mulligan",
          "slug": "chad-mulligan",
          "aliases": [],
          "role": "minor human authority",
          "summary": "Lakeside's police chief who overhears the confrontation, shoots Hinzelmann, and is subsequently saved from suicidal despair by Shadow's psychic intervention."
        },
        {
          "name": "Easter",
          "slug": "easter",
          "aliases": [
            "Eostre"
          ],
          "role": "helper/ally",
          "summary": "A goddess of spring with green eyes and a forget-me-not tattoo; mourns her own irrelevance as modern people use her name without belief; agrees to fight beside Wednesday's coalition."
        },
        {
          "name": "Man in charcoal suit",
          "slug": "man-in-charcoal-suit",
          "aliases": [
            "Mr. World (implied)"
          ],
          "role": "opponent",
          "summary": "An invisible, forgettable man who moves through a Las Vegas casino counting room unnoticed, drawn to the flow of money; subsequently joined by Wednesday in a bar."
        },
        {
          "name": "Agasu",
          "slug": "agasu",
          "aliases": [
            "Inky Jack",
            "Hyacinth",
            "Big One-Arm"
          ],
          "role": "historical interlude protagonist",
          "summary": "A Dahomean man captured into slavery, mutilated, and eventually possessed by Elegba; leads the 1791 Haitian slave revolt and dies fighting in 1802 before independence."
        },
        {
          "name": "Sukey",
          "slug": "sukey",
          "aliases": [
            "Wututu",
            "Mary",
            "Daisy",
            "Mama Zouzou"
          ],
          "role": "historical interlude protagonist",
          "summary": "Agasu's twin sister, enslaved across the Carolinas and New Orleans; becomes a feared voodoo practitioner and passes her knowledge to Marie Laveau before dying."
        },
        {
          "name": "Marie Laveau",
          "slug": "marie-laveau",
          "aliases": [
            "Widow Paris",
            "pretty Marie"
          ],
          "role": "historical interlude secondary",
          "summary": "A proud young mixed-race hairdresser in New Orleans who seeks out Mama Zouzou to learn voodoo; historically the famous voodoo queen."
        },
        {
          "name": "Whiskey Jack",
          "slug": "whiskey-jack",
          "aliases": [
            "Wisakedjak"
          ],
          "role": "helper (resistant)",
          "summary": "Native American trickster figure in a trailer; flatly refuses to join Wednesday's war but offers Shadow cryptic wisdom about death and hunting."
        },
        {
          "name": "John Chapman",
          "slug": "john-chapman",
          "aliases": [
            "Apple Johnny",
            "Johnny Chapman"
          ],
          "role": "minor ally (declining)",
          "summary": "American folk-mythic figure present at Whiskey Jack's trailer; also declines to fight for Wednesday, lamenting being forgotten in favor of Paul Bunyan."
        },
        {
          "name": "Mr. Town",
          "slug": "mr-town",
          "aliases": [
            "Town",
            "Mack"
          ],
          "role": "actantial:opponent",
          "summary": "Government/intelligence operative allied with new gods; retrieves a ritual stick from the world-tree and unwittingly picks up Laura as a hitchhiker."
        },
        {
          "name": "Technical Boy",
          "slug": "technical-boy",
          "aliases": [
            "the fat kid",
            "Internet"
          ],
          "role": "actantial:opponent",
          "summary": "New gods' agent who recites part of Yeats's 'The Second Coming' at the handover, visibly unsettled — Nancy notes he meddled with something that 'screwed him right back.'"
        },
        {
          "name": "Atsula",
          "slug": "atsula",
          "aliases": [
            "the fox"
          ],
          "role": "historical interlude protagonist",
          "summary": "Prehistoric shamaness who leads her tribe across the Bering land bridge; defies Nunyunnini, is prophesied to die before the tribe enters the new land, and voices the novel's thesis about gods coming from human hearts."
        },
        {
          "name": "Nunyunnini",
          "slug": "nunyunnini",
          "aliases": [],
          "role": "deity",
          "summary": "Mammoth-skull god of Atsula's tribe; speaks through tribe members who wear the skull-cloak; commands eastward migration and is eventually forgotten in the New World."
        },
        {
          "name": "Kalanu",
          "slug": "kalanu",
          "aliases": [],
          "role": "secondary character",
          "summary": "Tribe scout who dresses and lives as a man; leads the people safely to the ice cliffs; eventually becomes an ancestor of the New World tribes."
        },
        {
          "name": "Gugwei",
          "slug": "gugwei",
          "aliases": [],
          "role": "secondary character",
          "summary": "Elderly tribal elder who participates in the oracle ritual and voices Nunyunnini."
        },
        {
          "name": "Yanu",
          "slug": "yanu",
          "aliases": [],
          "role": "secondary character",
          "summary": "The tribe's war leader; boastful of warrior prowess; voices Nunyunnini with the promise of a new land."
        },
        {
          "name": "Gwydion",
          "slug": "gwydion",
          "aliases": [],
          "role": "minor deity",
          "summary": "Young Welsh god working in a Humansville supermarket; pledges to join the old gods after hearing of Wednesday's death; described as having come to America in the seventh century."
        },
        {
          "name": "Alviss",
          "slug": "alviss",
          "aliases": [
            "Alviss son of Vindalf"
          ],
          "role": "minor deity",
          "summary": "Self-described king of the dwarfs, tallest dwarf in America at five-eight or five-nine; briefly encountered and mentions the vigil to the group."
        },
        {
          "name": "Baron Samedi",
          "slug": "baron-samedi",
          "aliases": [],
          "role": "actantial:helper",
          "summary": "Speaks from the assembled gods to question Shadow's claim that Wednesday really died; accepts Shadow's explanation of the sacrifice."
        },
        {
          "name": "Jesus",
          "slug": "jesus",
          "aliases": [],
          "role": "other",
          "summary": "Unnamed but implied bearded man in the apocryphal appendix scene; discusses the burden of godhood with Shadow over sour wine in a Spanish-style building."
        }
      ],
      "frameworks_mapped": [
        "Protocol Fiction Mapping",
        "Actantial Model",
        "Todorov's Equilibrium",
        "The Freytag Pyramid",
        "Propp's Morphology",
        "Genette's Narrative",
        "The Monomyth",
        "Dan Harmon",
        "Save the Cat",
        "Kishotenketsu",
        "The Three-Act Structure",
        "Levi-Strauss's Binary Oppositions",
        "Cognitive Estrangement",
        "Bakhtin's Chronotope",
        "Aristotelian Poetics",
        "Jungian Archetypal Analysis",
        "Genette's Transtextuality"
      ],
      "score_reliability": {
        "state": "replicated-agree",
        "threshold": 0.2,
        "runs_total": 4,
        "versions_compared": [
          "2.5"
        ],
        "max_spread": 0.15,
        "contested": []
      }
    },
    {
      "slug": "nicola_griffith_ammonite",
      "title": "Ammonite",
      "author": "Nicola Griffith",
      "year": 1992,
      "medium": "book",
      "genre_tags": [],
      "tropes": [],
      "quadrant_scores": {
        "time_linearity": 0.22,
        "pacing_velocity": 0.72,
        "threat_scale": 0.62,
        "protagonist_fate": 0.42,
        "conflict_style": 0.72,
        "price_type": 0.78
      },
      "provenance": {
        "analysis_run": "NTSMR-2.5-claude-sonnet-4-6-low",
        "analysis_body_sha256": "eb90199abf989bf2fb4f241c1d911fbf3f3b5fb26d0d49a91a59302fe268fc67",
        "synthesis": {
          "path": "nartopo-tools/artifacts/nicola_griffith_ammonite.md.ntsmr-2-5-claude-sonnet-4-6-low.synthesis.json",
          "sha256": "481e45b156331c4acefd58561e0fe2217d37e1ea3eb10a038a595097d9fc1c21"
        },
        "report": {
          "path": "nartopo-tools/artifacts/nicola_griffith_ammonite.md.ntsmr-2-5-claude-sonnet-4-6-low.report.json",
          "sha256": "32b19e0cb130c18edfb23555e62f55cd02f67f146b30e86834821e055599aeea"
        },
        "source": {
          "path": "Nicola Griffith/Ammonite.txt",
          "sha256": "dce9e57b5e06c191c39cc20d125fc6fc93058ad64f6df13ee6b69643f6dbfb59",
          "digest_observed_at": "2026-09-09",
          "digest_at_analysis_run": null,
          "edition": null,
          "edition_status": "unresolved"
        },
        "pipeline_revision_at_run": null,
        "verification": {
          "source": "unverified",
          "human_review": "unreviewed",
          "bibliography": "unverified"
        },
        "issues": [],
        "todorov_status": "recovered-from-synthesis",
        "work_identity": {
          "title": "Ammonite",
          "author": "Nicola Griffith",
          "year": 1992
        }
      },
      "ntsmr": {
        "version": "2.5",
        "primary_run_label": "NTSMR-2.5-claude-sonnet-4-6-low",
        "runs": {
          "NTSMR-2.4-claude-sonnet-4-6-low": {
            "pipeline_version": "2.4",
            "backend": "claude",
            "model": "claude-sonnet-4-6",
            "scores": {
              "time_linearity": 0.25,
              "pacing_velocity": 0.65,
              "threat_scale": 0.55,
              "protagonist_fate": 0.2,
              "conflict_style": 0.65,
              "price_type": 0.7
            },
            "score_space": "site-v1",
            "reasoning_effort": "low"
          },
          "NTSMR-2.5-claude-sonnet-4-6-low": {
            "pipeline_version": "2.5",
            "backend": "claude",
            "model": "claude-sonnet-4-6",
            "scores": {
              "time_linearity": 0.22,
              "pacing_velocity": 0.72,
              "threat_scale": 0.62,
              "protagonist_fate": 0.42,
              "conflict_style": 0.72,
              "price_type": 0.78
            },
            "score_space": "site-v1",
            "reasoning_effort": "low"
          },
          "NTSMR-2.5-balanced-glm-5+deepseek-v3.2": {
            "pipeline_version": "2.5",
            "backend": "openrouter",
            "model": "balanced-routing",
            "scores": {
              "time_linearity": 0.18,
              "pacing_velocity": 0.72,
              "threat_scale": 0.72,
              "protagonist_fate": 0.42,
              "conflict_style": 0.72,
              "price_type": 0.72
            },
            "score_space": "site-v1",
            "score_only": true,
            "source_run_label": "NTSMR-2.5-claude-sonnet-4-6-low"
          }
        }
      },
      "todorov_stages": {
        "equilibrium": "Marghe exists in a defined professional role as an SEC anthropologist operating within Company institutional structures, with clear mission parameters: field-test FN-17 and study indigenous culture. Port Central similarly operates under standard Company protocols with expected orbital support and eventual extraction. The indigenous communities of Jeep maintain their own stable social orders, including the Echraidhe tribal structure and the viajera network.",
        "disruption": "Marghe steps through the decontamination airlock onto Jeep—a literal point of no return—while simultaneously learning that Janet Eagan is being withdrawn after Winnie's death, stripping her of all planned field support. This double rupture collapses both her professional safety net and the institutional framework underwriting her mission. Uaithne's emergence as a self-declared Death Spirit and her unification of Echraidhe and Briogannon in a killing campaign constitutes a parallel disruption of the planet's indigenous social equilibrium.",
        "recognition": "Marghe's recognition unfolds in stages: she acknowledges FN-17 is insufficient and the virus will infect her, resolving to stop fighting it and accept Jeep's integration voluntarily. Danner's recognition crystallizes when she decodes Marghe's message confirming the vaccine's failure and her pregnancy, making the permanence of their stranding undeniable. The revelation that Marghe had chosen to stop taking the vaccine—reframing the entire crisis as a communication failure—sharpens both characters' understanding of what has actually happened.",
        "repair": "Marghe undergoes the virus, survives through Thenike's presence and healing, learns deepsearch, and transforms into viajera Marghe Amun. She then returns to Port Central and physically mediates the confrontation between Danner's Mirrors and the tribal forces, binding Danner and Aoife together with a cling and choreographing a joint withdrawal. Thenike's insistence on burying the dead together on neutral ground as a monument against future violence enacts symbolic repair at the community level.",
        "new_equilibrium": "A transformed multi-party order emerges: formal trata agreements distribute resources among the Echraidhe, Briogannon, Singing Pastures communities, and Danner's now-permanent settlers. Marghe is fully integrated as viajera Marghe Amun, in partnership with Thenike, expecting a child, and mediating between the indigenous world and the stranded Company personnel. Company has destroyed the Estrade platform and abandoned orbit, severing all institutional ties—but this permanent severance also closes off the old order entirely, and the new equilibrium carries its own long-term existential threat: if Company returns with a cure targeting the virus, the women of Jeep lose their capacity for reproduction."
      },
      "characters": [
        {
          "name": "Hannah Danner",
          "slug": "hannah-danner",
          "aliases": [
            "Danner",
            "Acting Commander",
            "Acting Commander Danner"
          ],
          "role": "Secondary protagonist / institutional authority",
          "summary": "Acting Commander of the Mirrors at Port Central; reads Marghe's dossier, meets her in person, and attempts to build a frank alliance by sharing her own dossier and disclosing the dire realities of the mission."
        },
        {
          "name": "Lu Wai",
          "slug": "lu-wai",
          "aliases": [
            "the Mirror",
            "Sergeant Lu Wai"
          ],
          "role": "Sublieutenant; Dogias's partner",
          "summary": "Mirror sublieutenant who survived the virus and gives Marghe a candid, ground-level account of its lethality, failed treatments, and practical survival advice."
        },
        {
          "name": "Cassil",
          "slug": "cassil",
          "aliases": [],
          "role": "Helper / first indigenous contact",
          "summary": "Community woman who shelters Marghe and negotiates a trata with her—travel supplies in exchange for metals and Company goodwill—enabling Marghe's journey north."
        },
        {
          "name": "Holle",
          "slug": "holle",
          "aliases": [],
          "role": "Headwoman of Singing Pastures",
          "summary": "Speaks for the Singing Pastures women in trata negotiations; departs northward with her herd after agreements are reached, gifting Marghe a promise of a future horse."
        },
        {
          "name": "Shill",
          "slug": "shill",
          "aliases": [],
          "role": "Helper",
          "summary": "Companion to Holle; assists Marghe during the taar stampede, mounts up with her, and takes charge of the horses."
        },
        {
          "name": "Janet Eagan",
          "slug": "janet-eagan",
          "aliases": [
            "Eagan"
          ],
          "role": "Absent helper / opponent by withdrawal",
          "summary": "Surviving SEC field researcher who withdraws from Jeep after Winnie's presumed death, leaving Marghe without support."
        },
        {
          "name": "Marghe",
          "slug": "marghe",
          "aliases": [
            "John",
            "Marghe Taishan",
            "Marguerite Angelica Taishan",
            "SEC representative",
            "Representative Taishan",
            "Stranger Woman",
            "SEC rep",
            "Marghe Amun",
            "Amu"
          ],
          "role": "Protagonist / SEC anthropologist",
          "summary": "SEC anthropologist undergoing physical and psychological transformation; survives a blizzard by killing her horse, then undergoes a planetary gong meditation that resolves her identity crisis and leads to her formal adoption into the Ollfoss community."
        },
        {
          "name": "Pella",
          "slug": "pella",
          "aliases": [],
          "role": "Companion animal",
          "summary": "Marghe's horse, present through the taar stampede and cave shelter scenes; requires care and responds to Marghe's handling."
        },
        {
          "name": "Sara Hiam",
          "slug": "sara-hiam",
          "aliases": [
            "Hiam",
            "the doctor"
          ],
          "role": "Helper/Institutional gatekeeper",
          "summary": "Ship's doctor who administers FN-17, processes Marghe through the airlock, and makes an off-record confession that planetside deployment is permanent; later guides Marghe through a severe vaccine reaction."
        },
        {
          "name": "Vincio",
          "slug": "vincio",
          "aliases": [],
          "role": "Danner's personal assistant",
          "summary": "Danner's loyal assistant whose name appears on the list of seventeen personnel requesting departure to the Estrade, shocking Danner with a sense of personal abandonment."
        },
        {
          "name": "Dogias",
          "slug": "dogias",
          "aliases": [
            "Letitia",
            "Letitia Dogias"
          ],
          "role": "Technician; storm-sensitive",
          "summary": "Technician who pinpoints the spy's location, decodes her transmission, reassures Danner about her command decisions, and is dispatched north by sled to retrieve Day."
        },
        {
          "name": "Aoife",
          "slug": "aoife",
          "aliases": [],
          "role": "Echraidhe tribeswoman / ward-keeper",
          "summary": "Leads her tribe through the aftermath of Uaithne's death; tells a funeral story about Uaithne's youth and issues a restrained personal curse at a viajera while protecting tribal interests."
        },
        {
          "name": "Borri",
          "slug": "borri",
          "aliases": [],
          "role": "Echraidhe healer",
          "summary": "Healer who shares Aoife's yurti; warns Marghe to conceal her off-world origins from Uaithne and explains the deepsearch crisis that broke Aoife and Uaithne's soestre bond."
        },
        {
          "name": "Uaithne",
          "slug": "uaithne",
          "aliases": [
            "the Death Spirit"
          ],
          "role": "Echraidhe antagonist / Death Spirit claimant",
          "summary": "Aoife's estranged soestre who believes herself the Death Spirit; watches Marghe from a distance, delivers a cold account of her own violence at the feast, and rides off before the Briogannon raid."
        },
        {
          "name": "Fion",
          "slug": "fion",
          "aliases": [],
          "role": "Echraidhe guard",
          "summary": "Young tribeswoman assigned to keep Marghe in sight while herding; less skilled with a sling than Aoife."
        },
        {
          "name": "The Levarch",
          "slug": "the-levarch",
          "aliases": [],
          "role": "Echraidhe leader",
          "summary": "Leader of the Echraidhe winter camp who assigns Marghe to Aoife's yurti and later presides over the storytelling feast."
        },
        {
          "name": "Marac",
          "slug": "marac",
          "aliases": [],
          "role": "Aoife's daughter",
          "summary": "Aoife's daughter, approaching sixteen, who moves into the yurti alongside Scatha as part of a kinship arrangement."
        },
        {
          "name": "Scatha",
          "slug": "scatha",
          "aliases": [],
          "role": "Aelle's daughter",
          "summary": "Daughter of Aelle; moves into the yurti with Marac as part of the Levarch's plan to strengthen tribal ties between Aoife's and Aelle's families."
        },
        {
          "name": "Fellyr",
          "slug": "fellyr",
          "aliases": [],
          "role": "Secondary character / Briogannon connection",
          "summary": "Uaithne's former lover from the Briogannon, cast aside after the deepsearch; tried to knife Uaithne, was nearly killed, returned to her tribe and renamed herself Ojo, swearing blood feud."
        },
        {
          "name": "Claire",
          "slug": "claire",
          "aliases": [],
          "role": "Background / Danner's sister",
          "summary": "Danner's older sister who raised her and encouraged her military ambitions; invoked in Danner's memory as someone who believed in her but was 'wrong about many things'."
        },
        {
          "name": "Ana Kahn",
          "slug": "ana-kahn",
          "aliases": [
            "Officer Kahn",
            "Private Kahn"
          ],
          "role": "Mirror officer / fencer",
          "summary": "Championship fencer among the Mirrors; Danner schedules a workout with her to clear her head before the spy-trap planning session."
        },
        {
          "name": "Sigrid",
          "slug": "sigrid",
          "aliases": [],
          "role": "helper",
          "summary": "Signals technician who provides a precise bearing on the spy's transmission."
        },
        {
          "name": "Relman",
          "slug": "relman",
          "aliases": [],
          "role": "Mirror officer",
          "summary": "Mirror officer who was apprehended as the spy; under drugs she confesses her belief that Danner has been deliberately undermining the Mirrors' purpose and identity."
        },
        {
          "name": "Thenike",
          "slug": "thenike",
          "aliases": [],
          "role": "Viajera; Marghe's partner",
          "summary": "Viajera who explains her role to Marghe, draws out Marghe's self-discovery, guides her to the gong meditation, and facilitates her formal adoption into the Ollfoss household."
        },
        {
          "name": "Gerrel",
          "slug": "gerrel",
          "aliases": [],
          "role": "helper",
          "summary": "Young community woman; part of the Ollfoss household; brings Marghe food during the gong vigil and eagerly welcomes her as a new sister."
        },
        {
          "name": "Wenn",
          "slug": "wenn",
          "aliases": [],
          "role": "helper",
          "summary": "Senior woman of the Ollfoss household who formally officiates Marghe's adoption ceremony."
        },
        {
          "name": "Leifin",
          "slug": "leifin",
          "aliases": [],
          "role": "helper",
          "summary": "Community woman whose advocacy helps persuade the household to accept Marghe; perceived by Marghe as also seeing her as a trata asset."
        },
        {
          "name": "Huellis",
          "slug": "huellis",
          "aliases": [],
          "role": "other",
          "summary": "Household member nursing an infant; present at Marghe's adoption ceremony."
        },
        {
          "name": "Kenisi",
          "slug": "kenisi",
          "aliases": [],
          "role": "helper",
          "summary": "Household member who deflects Gerrel's pressure on Marghe and confirms her acceptance."
        },
        {
          "name": "Hilt",
          "slug": "hilt",
          "aliases": [],
          "role": "other",
          "summary": "Thenike's blood sister; a sailor who tells a story of her last voyage at the adoption meal."
        },
        {
          "name": "T'orre Na",
          "slug": "torre-na",
          "aliases": [],
          "role": "helper",
          "summary": "Journeywoman/viajera who visits Danner to relay Cassil's trata demand, interprets the message knot, and declares trata broken when Danner refuses."
        },
        {
          "name": "Sehanol",
          "slug": "sehanol",
          "aliases": [],
          "role": "actantial:helper",
          "summary": "Indigenous messenger from Scatterdell who delivers Marghe's message knot to Port Central."
        },
        {
          "name": "Vine",
          "slug": "vine",
          "aliases": [],
          "role": "Sailor; Thenike's long-term partner",
          "summary": "Experienced sailor who met Thenike in a fish-gutting contest years ago; tells the story of their first encounter while splicing rope with Marghe and Thenike."
        },
        {
          "name": "Teng",
          "slug": "teng",
          "aliases": [],
          "role": "Danner's deputy",
          "summary": "Methodical, slow-but-reliable deputy who provides a cautiously optimistic assessment of permanent settlement viability and manages evacuation planning."
        },
        {
          "name": "Ojo",
          "slug": "ojo",
          "aliases": [],
          "role": "Briogannon leader",
          "summary": "Briogannon representative who participates in the joint funeral and subsequent trata negotiations at Holme Valley."
        },
        {
          "name": "Gabbro",
          "slug": "gabbro",
          "aliases": [],
          "role": "Traveling companion",
          "summary": "Accompanies Marghe and Thenike on the river journey; provides route guidance through the Yelland hills and roasts gram roots at camp."
        },
        {
          "name": "Weal",
          "slug": "weal",
          "aliases": [],
          "role": "Headwoman of olla shapers band",
          "summary": "Leads a band of seven seasonal olla shapers who offer hospitality to the travelers in exchange for one of Thenike's stories."
        }
      ],
      "frameworks_mapped": [
        "Protocol Fiction Mapping",
        "Actantial Model",
        "Todorov's Equilibrium",
        "The Freytag Pyramid",
        "Propp's Morphology",
        "Genette's Narrative",
        "The Monomyth",
        "Dan Harmon",
        "Save the Cat",
        "Kishōtenketsu",
        "The Three-Act Structure",
        "Lévi-Strauss's Binary Oppositions",
        "Cognitive Estrangement",
        "Bakhtin's Chronotope",
        "Aristotelian Poetics",
        "Jungian Archetypal Analysis",
        "Genette's Transtextuality"
      ],
      "score_reliability": {
        "state": "replicated-agree",
        "threshold": 0.2,
        "runs_total": 3,
        "versions_compared": [
          "2.5"
        ],
        "max_spread": 0.1,
        "contested": []
      }
    },
    {
      "slug": "jo_walton_among_others",
      "title": "Among Others",
      "author": "Jo Walton",
      "year": 2011,
      "medium": "book",
      "genre_tags": [],
      "tropes": [],
      "quadrant_scores": {
        "time_linearity": 0.55,
        "pacing_velocity": 0.78,
        "threat_scale": 0.35,
        "protagonist_fate": 0.38,
        "conflict_style": 0.78,
        "price_type": 0.8
      },
      "provenance": {
        "analysis_run": "NTSMR-2.5-claude-sonnet-4-6-low",
        "analysis_body_sha256": "1eb0905a26ec517257c72d4c2e9b24592ca0db753c5ad6b73ae7bd640778e512",
        "synthesis": {
          "path": "nartopo-tools/artifacts/jo_walton_among_others.md.ntsmr-2-5-claude-sonnet-4-6-low.synthesis.json",
          "sha256": "bc42dd8a9c043dc1a716ccfa42c079ba842965602c1f3f928bc3bceb6ae1ce6f"
        },
        "report": {
          "path": "nartopo-tools/artifacts/jo_walton_among_others.md.ntsmr-2-5-claude-sonnet-4-6-low.report.json",
          "sha256": "53fcd954d1959be5a3f80411ff195908988b0f057f932b781b3301e5d60774bd"
        },
        "source": {
          "path": "Jo Walton/Among Others.txt",
          "sha256": "5cc2c1a351101dc5c8939558e59929d6bbf72b1febbb770eee6283de9cd405e0",
          "digest_observed_at": "2026-09-09",
          "digest_at_analysis_run": null,
          "edition": null,
          "edition_status": "unresolved"
        },
        "pipeline_revision_at_run": null,
        "verification": {
          "source": "unverified",
          "human_review": "unreviewed",
          "bibliography": "unverified"
        },
        "issues": [],
        "todorov_status": "recovered-from-synthesis",
        "work_identity": {
          "title": "Among Others",
          "author": "Jo Walton",
          "year": 2011
        }
      },
      "ntsmr": {
        "version": "2.5",
        "primary_run_label": "NTSMR-2.5-claude-sonnet-4-6-low",
        "runs": {
          "NTSMR-2.4-claude-sonnet-4-6-low": {
            "pipeline_version": "2.4",
            "backend": "claude",
            "model": "claude-sonnet-4-6",
            "scores": {
              "time_linearity": 0.35,
              "pacing_velocity": 0.75,
              "threat_scale": 0.15,
              "protagonist_fate": 0.22,
              "conflict_style": 0.78,
              "price_type": 0.72
            },
            "score_space": "site-v1",
            "reasoning_effort": "low"
          },
          "NTSMR-2.5-claude-sonnet-4-6-low": {
            "pipeline_version": "2.5",
            "backend": "claude",
            "model": "claude-sonnet-4-6",
            "scores": {
              "time_linearity": 0.55,
              "pacing_velocity": 0.78,
              "threat_scale": 0.35,
              "protagonist_fate": 0.38,
              "conflict_style": 0.78,
              "price_type": 0.8
            },
            "score_space": "site-v1",
            "reasoning_effort": "low"
          },
          "NTSMR-2.5-minimax/minimax-m2.5": {
            "pipeline_version": "2.5",
            "backend": "openrouter",
            "model": "minimax/minimax-m2.5",
            "scores": {
              "time_linearity": 0.2,
              "pacing_velocity": 0.75,
              "threat_scale": 0.35,
              "protagonist_fate": 0.35,
              "conflict_style": 0.75,
              "price_type": 0.7
            },
            "score_space": "site-v1"
          },
          "NTSMR-2.5-qwen/qwen3.5-plus-02-15": {
            "pipeline_version": "2.5",
            "backend": "openrouter",
            "model": "qwen/qwen3.5-plus-02-15",
            "scores": {
              "time_linearity": 0.25,
              "pacing_velocity": 0.75,
              "threat_scale": 0.3,
              "protagonist_fate": 0.4,
              "conflict_style": 0.75,
              "price_type": 0.8
            },
            "score_space": "site-v1"
          },
          "NTSMR-2.5-deepseek/deepseek-v3.2": {
            "pipeline_version": "2.5",
            "backend": "openrouter",
            "model": "deepseek/deepseek-v3.2",
            "scores": {
              "time_linearity": 0.15,
              "pacing_velocity": 0.75,
              "threat_scale": 0.25,
              "protagonist_fate": 0.35,
              "conflict_style": 0.8,
              "price_type": 0.8
            },
            "score_space": "site-v1"
          },
          "NTSMR-2.5-moonshotai/kimi-k2.5": {
            "pipeline_version": "2.5",
            "backend": "openrouter",
            "model": "moonshotai/kimi-k2.5",
            "scores": {
              "time_linearity": 0.25,
              "pacing_velocity": 0.8,
              "threat_scale": 0.3,
              "protagonist_fate": 0.35,
              "conflict_style": 0.75,
              "price_type": 0.75
            },
            "score_space": "site-v1"
          },
          "NTSMR-2.5-z-ai/glm-4.7": {
            "pipeline_version": "2.5",
            "backend": "openrouter",
            "model": "z-ai/glm-4.7",
            "scores": {
              "time_linearity": 0.25,
              "pacing_velocity": 0.75,
              "threat_scale": 0.35,
              "protagonist_fate": 0.45,
              "conflict_style": 0.75,
              "price_type": 0.7
            },
            "score_space": "site-v1"
          },
          "NTSMR-2.5-qwen/qwen3.5-397b-a17b": {
            "pipeline_version": "2.5",
            "backend": "openrouter",
            "model": "qwen/qwen3.5-397b-a17b",
            "scores": {
              "time_linearity": 0.2,
              "pacing_velocity": 0.75,
              "threat_scale": 0.35,
              "protagonist_fate": 0.4,
              "conflict_style": 0.75,
              "price_type": 0.8
            },
            "score_space": "site-v1"
          },
          "NTSMR-2.5-z-ai/glm-5": {
            "pipeline_version": "2.5",
            "backend": "openrouter",
            "model": "z-ai/glm-5",
            "scores": {
              "time_linearity": 0.22,
              "pacing_velocity": 0.72,
              "threat_scale": 0.32,
              "protagonist_fate": 0.32,
              "conflict_style": 0.72,
              "price_type": 0.78
            },
            "score_space": "site-v1"
          },
          "NTSMR-2.5-balanced-glm-5+deepseek-v3.2": {
            "pipeline_version": "2.5",
            "backend": "openrouter",
            "model": "balanced-routing",
            "scores": {
              "time_linearity": 0.25,
              "pacing_velocity": 0.8,
              "threat_scale": 0.3,
              "protagonist_fate": 0.4,
              "conflict_style": 0.8,
              "price_type": 0.75
            },
            "score_space": "site-v1",
            "score_only": true,
            "source_run_label": "NTSMR-2.5-claude-sonnet-4-6-low"
          }
        }
      },
      "todorov_stages": {
        "equilibrium": "Mori exists in a fragile but functional status quo: she has survived the accident that killed Mor, been placed with Daniel, and enrolled at Arlinghurst, where she sustains herself through compulsive SF reading, interlibrary loans, and cautious solitary magic. She is isolated but stable, having found a provisional home at the school's margins.",
        "disruption": "Multiple simultaneous disruptions destabilize this precarious equilibrium: her mother's threatening letter locates her and demonstrates ongoing malevolent surveillance; the aunts' enchanted earrings represent a covert attempt to sever her magical capacity; and Mori's own karass working raises ethical uncertainty about whether her magic manipulates rather than attracts genuine connection.",
        "recognition": "Mori recognizes the aunts as witches whose enchantments bind Daniel and threaten her own autonomy; she theorizes their incremental magical control and understands her mother's plan in retrospect, connecting the labyrinth confrontation with the fairies' fragmented warnings directing her back to Wales.",
        "repair": "Mori refuses the earrings and strategically performs the 'Nice Niece' role to neutralize the aunts; she undergoes acupuncture as body-magic to address her worsening leg; and ultimately returns to Wales to confront her mother directly at the ruins, asserting her will to live, sending Mor through to death, and absorbing rather than fearing the illusory monsters her mother deploys.",
        "new_equilibrium": "Mori articulates a new, consciously chosen life-pattern: she will live, read, belong to libraries, do magic only to prevent harm, attend university, grow into an unimaginable future, and eventually die naturally. The threat from her mother and aunts is neutralized, Mor is released, and Mori's karass—Wim, the book club, Miss Carroll, Daniel—constitutes a genuine community of kindred spirits."
      },
      "characters": [
        {
          "name": "Mori",
          "slug": "mori",
          "aliases": [
            "Morwenna Markova",
            "Morwenna Phelps",
            "Morwenna"
          ],
          "role": "protagonist/narrator",
          "summary": "Welsh teenage narrator who sees fairies, walks with a stick after a car accident killed her twin Mor; practices magic and loves science fiction."
        },
        {
          "name": "Mor",
          "slug": "mor",
          "aliases": [
            "Morganna"
          ],
          "role": "deceased twin",
          "summary": "Mori's twin sister, killed in the car accident one year before; appears as a ghost at Halloween seeking Mori to join her in death."
        },
        {
          "name": "Daniel",
          "slug": "daniel",
          "aliases": [
            "Mori's father"
          ],
          "role": "father",
          "summary": "Mori's father, a writer; unexpectedly arrives to take Mori to acupuncture; bonds with Wim over science fiction discussions."
        },
        {
          "name": "Alison",
          "slug": "alison",
          "aliases": [
            "Miss Carroll"
          ],
          "role": "helper",
          "summary": "School librarian who signs Mori's permission form and accompanies her to the first book club meeting."
        },
        {
          "name": "Sharon",
          "slug": "sharon",
          "aliases": [
            "Shagger"
          ],
          "role": "peer",
          "summary": "Jewish girl at Arlinghurst, one of the 'barbarians' Mori befriends; her family has money but lower social status."
        },
        {
          "name": "Mori's mother",
          "slug": "moris-mother",
          "aliases": [
            "Mrs. Markova",
            "Mama",
            "Liz"
          ],
          "role": "antagonist",
          "summary": "A witch whom Mori fled from; sends a barbed letter revealing she knows Mori's location; attempts to capture the dead through Mor."
        },
        {
          "name": "Ruth Campbell",
          "slug": "ruth-campbell",
          "aliases": [],
          "role": "peer",
          "summary": "Prefect in Scott house who catches Mori burning letters and gives her order marks."
        },
        {
          "name": "Glorfindel",
          "slug": "glorfindel",
          "aliases": [],
          "role": "fairy/donor",
          "summary": "A beautiful fairy from Mori's Welsh childhood who guides her; arranges for her to come to Wales to help the dead pass through."
        },
        {
          "name": "Grampar",
          "slug": "grampar",
          "aliases": [],
          "role": "grandfather",
          "summary": "Mori's grandfather, hospitalized at Fedw Hir; one of the connections that gives Mori a reason to live."
        },
        {
          "name": "Auntie Teg",
          "slug": "auntie-teg",
          "aliases": [],
          "role": "relative",
          "summary": "Mori's young aunt who lives in a modern Cardiff flat, deliberately avoids magic, and has a secret relationship with a married politician."
        },
        {
          "name": "Greg",
          "slug": "greg",
          "aliases": [],
          "role": "helper",
          "summary": "Town librarian who runs the science fiction book club; drives Mori back to school; comments on her relationship with Wim."
        },
        {
          "name": "Wim",
          "slug": "wim",
          "aliases": [],
          "role": "potential love_interest",
          "summary": "Blond, blue-eyed book club member who wants to see fairies; works mornings and attends college in afternoons; becomes Mori's boyfriend."
        },
        {
          "name": "Janine",
          "slug": "janine",
          "aliases": [],
          "role": "helper",
          "summary": "Ginger-haired girl from book club who befriends Mori, goes shopping with her, and helps her buy a bra."
        },
        {
          "name": "Hugh",
          "slug": "hugh",
          "aliases": [],
          "role": "helper",
          "summary": "Sandy-haired, freckled boy from book club; shorter and plump; defends Wim and reveals Wim saved him from bullies."
        },
        {
          "name": "Harriet",
          "slug": "harriet",
          "aliases": [],
          "role": "neutral",
          "summary": "Stout grey-haired woman who leads book club discussions with a pile of hardcover books."
        },
        {
          "name": "Geraint",
          "slug": "geraint",
          "aliases": [],
          "role": "minor",
          "summary": "Mori's cousin who could see fairies as a child but lost the ability as he grew older."
        },
        {
          "name": "The aunts",
          "slug": "the-aunts",
          "aliases": [
            "Anthea",
            "the sisters",
            "Anthea, Dorothy, Frederica"
          ],
          "role": "antagonist",
          "summary": "Daniel's three adult sisters, witches who have magically controlled him for years and attempt to control Mori through enchanted earrings."
        },
        {
          "name": "The fairy",
          "slug": "the-fairy",
          "aliases": [],
          "role": "helper",
          "summary": "A nut-brown, knobbly fairy who speaks cryptically and transforms into a walking stick for Mori."
        },
        {
          "name": "Persimmon",
          "slug": "persimmon",
          "aliases": [],
          "role": "other",
          "summary": "Auntie Teg's beautiful but spoiled tortoiseshell cat who sees fairies and has aristocratic manners."
        },
        {
          "name": "Karen",
          "slug": "karen",
          "aliases": [],
          "role": "antagonist",
          "summary": "School acquaintance who warns Mori about Wim seeing another girl; wears forbidden makeup and smirks at Mori."
        },
        {
          "name": "Sam",
          "slug": "sam",
          "aliases": [],
          "role": "helper",
          "summary": "Daniel's romantic partner who appears with Wim and Daniel at the bus stop after Mori's confrontation with her mother."
        },
        {
          "name": "Fairy",
          "slug": "fairy",
          "aliases": [],
          "role": "messenger",
          "summary": "Beautiful feminine fairy who speaks English and tells Mori to go to Wales where she is needed and belongs."
        }
      ],
      "frameworks_mapped": [
        "Protocol Fiction Mapping",
        "Actantial Model",
        "Todorov's Equilibrium",
        "The Freytag Pyramid",
        "Propp's Morphology",
        "Genette's Narrative",
        "The Monomyth",
        "Dan Harmon",
        "Save the Cat",
        "Kishōtenketsu",
        "The Three-Act Structure",
        "Lévi-Strauss's Binary Oppositions",
        "Cognitive Estrangement",
        "Bakhtin's Chronotope",
        "Aristotelian Poetics",
        "Jungian Archetypal Analysis",
        "Genette's Transtextuality"
      ],
      "score_reliability": {
        "state": "contested",
        "threshold": 0.2,
        "runs_total": 10,
        "versions_compared": [
          "2.5"
        ],
        "max_spread": 0.4,
        "contested": [
          {
            "axis": "time_linearity",
            "version": "2.5",
            "spread": 0.4,
            "low": {
              "label": "NTSMR-2.5-deepseek/deepseek-v3.2",
              "model": "deepseek/deepseek-v3.2",
              "effort": "?",
              "value": 0.15
            },
            "high": {
              "label": "NTSMR-2.5-claude-sonnet-4-6-low",
              "model": "claude-sonnet-4-6",
              "effort": "low",
              "value": 0.55
            }
          }
        ]
      }
    },
    {
      "slug": "jorge_luis_borges_an_examination_of_the_work_of_herbert_quain",
      "title": "An Examination of the Work of Herbert Quain",
      "author": "Jorge Luis Borges",
      "year": 1944,
      "medium": "short_story",
      "genre_tags": [],
      "tropes": [],
      "quadrant_scores": {
        "time_linearity": 0.85,
        "pacing_velocity": 0.82,
        "threat_scale": 0.12,
        "protagonist_fate": 0.65,
        "conflict_style": 0.88,
        "price_type": 0.85
      },
      "provenance": {
        "analysis_run": "NTSMR-2.5-claude-sonnet-4-6-low",
        "analysis_body_sha256": "4190883731bb38f318b265d289f0cfe36085729f163d86a90e54f813c0c7a4b2",
        "synthesis": {
          "path": "nartopo-tools/artifacts/jorge_luis_borges_an_examination_of_the_work_of_herbert_quain.md.ntsmr-2-5-claude-sonnet-4-6-low.synthesis.json",
          "sha256": "aca1afd5b59b19ec14438a0e16275492106a4ecf6d26665d4814a94b0154b122"
        },
        "report": {
          "path": "nartopo-tools/artifacts/jorge_luis_borges_an_examination_of_the_work_of_herbert_quain.md.ntsmr-2-5-claude-sonnet-4-6-low.report.json",
          "sha256": "3659ef42f0bc46ef39489f2fdcf611ccab90cf2c10a32b4d70a00d957a14d320"
        },
        "source": {
          "path": "Jorge Luis Borges/An Examination of the Work of Herbert Quain.txt",
          "sha256": "b1081bf79adc893ac1f48c54582df5d95c0a9782246282a451e2946672cbb77c",
          "digest_observed_at": "2026-09-09",
          "digest_at_analysis_run": null,
          "edition": null,
          "edition_status": "unresolved"
        },
        "pipeline_revision_at_run": null,
        "verification": {
          "source": "unverified",
          "human_review": "unreviewed",
          "bibliography": "unverified"
        },
        "issues": [],
        "todorov_status": "recovered-from-synthesis",
        "work_identity": {
          "title": "An Examination of the Work of Herbert Quain",
          "author": "Jorge Luis Borges",
          "year": 1944
        }
      },
      "ntsmr": {
        "version": "2.5",
        "primary_run_label": "NTSMR-2.5-claude-sonnet-4-6-low",
        "runs": {
          "NTSMR-2.3-gemini-3.1-pro-preview": {
            "pipeline_version": "2.3",
            "backend": "gemini",
            "model": "gemini-3.1-pro-preview",
            "scores": {
              "time_linearity": 0.95,
              "pacing_velocity": 0.95,
              "threat_scale": 0.6,
              "protagonist_fate": 0.9,
              "conflict_style": 0.95,
              "price_type": 0.95
            },
            "score_space": "site-v1"
          },
          "NTSMR-2.3-claude-sonnet-4-6-low": {
            "pipeline_version": "2.3",
            "backend": "claude",
            "model": "claude-sonnet-4-6",
            "scores": {
              "time_linearity": 0.92,
              "pacing_velocity": 0.88,
              "threat_scale": 0.35,
              "protagonist_fate": 0.55,
              "conflict_style": 0.85,
              "price_type": 0.72
            },
            "score_space": "site-v1",
            "reasoning_effort": "low"
          },
          "NTSMR-2.4-claude-sonnet-4-6-low": {
            "pipeline_version": "2.4",
            "backend": "claude",
            "model": "claude-sonnet-4-6",
            "scores": {
              "time_linearity": 0.85,
              "pacing_velocity": 0.75,
              "threat_scale": 0.12,
              "protagonist_fate": 0.55,
              "conflict_style": 0.82,
              "price_type": 0.8
            },
            "score_space": "site-v1",
            "reasoning_effort": "low"
          },
          "NTSMR-2.5-claude-sonnet-4-6-low": {
            "pipeline_version": "2.5",
            "backend": "claude",
            "model": "claude-sonnet-4-6",
            "scores": {
              "time_linearity": 0.85,
              "pacing_velocity": 0.82,
              "threat_scale": 0.12,
              "protagonist_fate": 0.65,
              "conflict_style": 0.88,
              "price_type": 0.85
            },
            "score_space": "site-v1",
            "reasoning_effort": "low"
          },
          "NTSMR-2.5-balanced-glm-5+deepseek-v3.2": {
            "pipeline_version": "2.5",
            "backend": "openrouter",
            "model": "balanced-routing",
            "scores": {
              "time_linearity": 0.45,
              "pacing_velocity": 0.82,
              "threat_scale": 0.25,
              "protagonist_fate": 0.6,
              "conflict_style": 0.85,
              "price_type": 0.8
            },
            "score_space": "site-v1",
            "score_only": true,
            "source_run_label": "NTSMR-2.5-claude-sonnet-4-6-low"
          }
        }
      },
      "todorov_stages": {
        "equilibrium": "Herbert Quain occupies a stable if marginal position in the literary world: a self-aware experimental writer who has accepted his place in the history of art rather than art itself, maintaining a modest reputation through successive unconventional works and a correspondence relationship with the narrator.",
        "disruption": "The Secret Mirror achieves unexpected commercial success through a favorable but entirely fallacious Freudian misreading by critics — the play succeeds for the wrong reasons, disrupting Quain's accustomed relationship with failure and misrepresenting his actual intentions.",
        "recognition": "Quain recognizes that the success of The Secret Mirror is built on critical misunderstanding; having grown used to failure and unable to accept this false validation, he resolves to have his revenge on misreading audiences.",
        "repair": "Quain writes Statements in late 1939 as an act of deliberate revenge: eight stories that each prefigure a good plot and then intentionally frustrate it, premised on the belief that readers are extinct and all people are merely latent writers — a work designed to expose and punish the vanity of misreading.",
        "new_equilibrium": "Statements becomes Quain's most original work but also his least praised and most secret, restoring him to obscurity on his own terms. After his death, the narrator reveals that Quain's frustrated plots were generative rather than terminal — the narrator himself extracted The Circular Ruins from Quain's third story, making Quain's anti-readerly experiment the unwitting origin of new literature."
      },
      "characters": [
        {
          "name": "Herbert Quain",
          "slug": "herbert-quain",
          "aliases": [],
          "role": "Deceased author",
          "summary": "An experimental writer from Roscommon and Longford who prioritized formal invention and astonishment over passion, believing his work belonged to the history of art."
        },
        {
          "name": "The Narrator",
          "slug": "the-narrator",
          "aliases": [
            "I"
          ],
          "role": "Literary friend and retrospective essayist",
          "summary": "A friend of Quain who defends his aesthetic philosophy, surveys his bibliography, and extracted his own story 'The Circular Ruins' from Quain's 'Statements'."
        },
        {
          "name": "General Thrale, C.I.E.",
          "slug": "general-thrale-cie",
          "aliases": [],
          "role": "Character in 'The Secret Mirror'",
          "summary": "A wealthy character with ancient blood-lines who lives in a country home near Melton Mowbray in the first act of Quain's play."
        },
        {
          "name": "Miss Ulrica Thrale",
          "slug": "miss-ulrica-thrale",
          "aliases": [],
          "role": "Character in 'The Secret Mirror'",
          "summary": "The General's elder daughter, described as a haughty Amazon-like creature whose engagement to the duke of Rutland is broken off."
        },
        {
          "name": "John William Quigley",
          "slug": "john-william-quigley",
          "aliases": [
            "Wilfred Quarles"
          ],
          "role": "Character in 'The Secret Mirror'",
          "summary": "A struggling traveling salesman from Liverpool who imagines the grand first act of the play in which he appears as the wealthy playwright Wilfred Quarles."
        }
      ],
      "frameworks_mapped": [
        "Protocol Fiction Mapping",
        "Actantial Model",
        "Todorov's Equilibrium",
        "The Freytag Pyramid",
        "Propp's Morphology",
        "Genette's Narrative",
        "The Monomyth",
        "Dan Harmon",
        "Save the Cat",
        "Kishōtenketsu",
        "The Three-Act Structure",
        "Lévi-Strauss's Binary Oppositions",
        "Cognitive Estrangement",
        "Bakhtin's Chronotope",
        "Aristotelian Poetics",
        "Jungian Archetypal Analysis",
        "Genette's Transtextuality"
      ],
      "score_reliability": {
        "state": "contested",
        "threshold": 0.2,
        "runs_total": 5,
        "versions_compared": [
          "2.5"
        ],
        "max_spread": 0.4,
        "contested": [
          {
            "axis": "time_linearity",
            "version": "2.5",
            "spread": 0.4,
            "low": {
              "label": "NTSMR-2.5-balanced-glm-5+deepseek-v3.2",
              "model": "balanced-routing",
              "effort": "?",
              "value": 0.45
            },
            "high": {
              "label": "NTSMR-2.5-claude-sonnet-4-6-low",
              "model": "claude-sonnet-4-6",
              "effort": "low",
              "value": 0.85
            }
          }
        ]
      }
    },
    {
      "slug": "ann_leckie_ancillary_justice",
      "title": "Ancillary Justice",
      "author": "Ann Leckie",
      "year": 2013,
      "medium": "book",
      "genre_tags": [
        "sf",
        "space opera",
        "ai fiction"
      ],
      "tropes": [],
      "quadrant_scores": {
        "time_linearity": 0.78,
        "pacing_velocity": 0.68,
        "threat_scale": 0.75,
        "protagonist_fate": 0.52,
        "conflict_style": 0.72,
        "price_type": 0.78
      },
      "provenance": {
        "analysis_run": "NTSMR-2.5-claude-sonnet-4-6-low",
        "analysis_body_sha256": "7f8c8576d2f4705a1ea0b66f6ebbf538d95c6618f699ed9a59292b7d5e9a1e2c",
        "synthesis": {
          "path": "nartopo-tools/artifacts/ann_leckie_ancillary_justice.md.ntsmr-2-5-claude-sonnet-4-6-low.synthesis.json",
          "sha256": "b94d68e5e8e6d5b392d238e3063589b04cff7f54c47f33394c45625ed7487c22"
        },
        "report": {
          "path": "nartopo-tools/artifacts/ann_leckie_ancillary_justice.md.ntsmr-2-5-claude-sonnet-4-6-low.report.json",
          "sha256": "e41c3360ef1e83dbfc1f418a8772fda0d873aa6c24ef2190425f10f5d5a6adea"
        },
        "source": {
          "path": "Ann Leckie/Ancillary Justice.txt",
          "sha256": "0c87e9565e52052e7138a8885bab44dfc55da52f86ff14cb8777c94eab8a9ab5",
          "digest_observed_at": "2026-09-09",
          "digest_at_analysis_run": null,
          "edition": null,
          "edition_status": "unresolved"
        },
        "pipeline_revision_at_run": null,
        "verification": {
          "source": "unverified",
          "human_review": "unreviewed",
          "bibliography": "unverified"
        },
        "issues": [],
        "todorov_status": "recovered-from-synthesis",
        "work_identity": {
          "title": "Ancillary Justice",
          "author": "Ann Leckie",
          "year": 2013
        }
      },
      "ntsmr": {
        "version": "2.5",
        "primary_run_label": "NTSMR-2.5-claude-sonnet-4-6-low",
        "runs": {
          "NTSMR-2.3-claude-sonnet-4-6-low": {
            "pipeline_version": "2.3",
            "backend": "claude",
            "model": "claude-sonnet-4-6",
            "scores": {
              "time_linearity": 0.82,
              "pacing_velocity": 0.72,
              "threat_scale": 0.85,
              "protagonist_fate": 0.38,
              "conflict_style": 0.68,
              "price_type": 0.88
            },
            "score_space": "site-v1",
            "reasoning_effort": "low"
          },
          "NTSMR-2.4-claude-sonnet-4-6-low": {
            "pipeline_version": "2.4",
            "backend": "claude",
            "model": "claude-sonnet-4-6",
            "scores": {
              "time_linearity": 0.75,
              "pacing_velocity": 0.6,
              "threat_scale": 0.8,
              "protagonist_fate": 0.45,
              "conflict_style": 0.65,
              "price_type": 0.55
            },
            "score_space": "site-v1",
            "reasoning_effort": "low"
          },
          "NTSMR-2.5-claude-sonnet-4-6-low": {
            "pipeline_version": "2.5",
            "backend": "claude",
            "model": "claude-sonnet-4-6",
            "scores": {
              "time_linearity": 0.78,
              "pacing_velocity": 0.68,
              "threat_scale": 0.75,
              "protagonist_fate": 0.52,
              "conflict_style": 0.72,
              "price_type": 0.78
            },
            "score_space": "site-v1",
            "reasoning_effort": "low"
          },
          "NTSMR-2.5-minimax/minimax-m2.5": {
            "pipeline_version": "2.5",
            "backend": "openrouter",
            "model": "minimax/minimax-m2.5",
            "scores": {
              "time_linearity": 0.45,
              "pacing_velocity": 0.7,
              "threat_scale": 0.55,
              "protagonist_fate": 0.55,
              "conflict_style": 0.55,
              "price_type": 0.7
            },
            "score_space": "site-v1"
          },
          "NTSMR-2.5-z-ai/glm-4.7": {
            "pipeline_version": "2.5",
            "backend": "openrouter",
            "model": "z-ai/glm-4.7",
            "scores": {
              "time_linearity": 0.75,
              "pacing_velocity": 0.65,
              "threat_scale": 0.85,
              "protagonist_fate": 0.35,
              "conflict_style": 0.6,
              "price_type": 0.7
            },
            "score_space": "site-v1"
          },
          "NTSMR-2.5-qwen/qwen3.5-plus-02-15": {
            "pipeline_version": "2.5",
            "backend": "openrouter",
            "model": "qwen/qwen3.5-plus-02-15",
            "scores": {
              "time_linearity": 0.75,
              "pacing_velocity": 0.7,
              "threat_scale": 0.8,
              "protagonist_fate": 0.45,
              "conflict_style": 0.65,
              "price_type": 0.75
            },
            "score_space": "site-v1"
          },
          "NTSMR-2.5-qwen/qwen3.5-397b-a17b": {
            "pipeline_version": "2.5",
            "backend": "openrouter",
            "model": "qwen/qwen3.5-397b-a17b",
            "scores": {
              "time_linearity": 0.7,
              "pacing_velocity": 0.7,
              "threat_scale": 0.8,
              "protagonist_fate": 0.45,
              "conflict_style": 0.65,
              "price_type": 0.75
            },
            "score_space": "site-v1"
          },
          "NTSMR-2.5-deepseek/deepseek-v3.2": {
            "pipeline_version": "2.5",
            "backend": "openrouter",
            "model": "deepseek/deepseek-v3.2",
            "scores": {
              "time_linearity": 0.65,
              "pacing_velocity": 0.75,
              "threat_scale": 0.85,
              "protagonist_fate": 0.6,
              "conflict_style": 0.7,
              "price_type": 0.8
            },
            "score_space": "site-v1"
          },
          "NTSMR-2.5-moonshotai/kimi-k2.5": {
            "pipeline_version": "2.5",
            "backend": "openrouter",
            "model": "moonshotai/kimi-k2.5",
            "scores": {
              "time_linearity": 0.8,
              "pacing_velocity": 0.75,
              "threat_scale": 0.85,
              "protagonist_fate": 0.4,
              "conflict_style": 0.7,
              "price_type": 0.7
            },
            "score_space": "site-v1"
          },
          "NTSMR-2.5-z-ai/glm-5": {
            "pipeline_version": "2.5",
            "backend": "openrouter",
            "model": "z-ai/glm-5",
            "scores": {
              "time_linearity": 0.8,
              "pacing_velocity": 0.7,
              "threat_scale": 0.85,
              "protagonist_fate": 0.45,
              "conflict_style": 0.65,
              "price_type": 0.7
            },
            "score_space": "site-v1"
          },
          "NTSMR-2.5-balanced-glm-5+deepseek-v3.2": {
            "pipeline_version": "2.5",
            "backend": "openrouter",
            "model": "balanced-routing",
            "scores": {
              "time_linearity": 0.55,
              "pacing_velocity": 0.7,
              "threat_scale": 0.8,
              "protagonist_fate": 0.55,
              "conflict_style": 0.7,
              "price_type": 0.75
            },
            "score_space": "site-v1",
            "score_only": true,
            "source_run_label": "NTSMR-2.5-claude-sonnet-4-6-low"
          }
        }
      },
      "todorov_stages": {
        "equilibrium": "Justice of Toren exists as a vast, multiply-embodied troop carrier serving the Radch empire, with Breq functioning as one segment among hundreds in a stable hierarchical order — ancillaries obedient to officers, officers obedient to Anaander Mianaai, the Lord of the Radch exercising unified sovereign control across the empire.",
        "disruption": "Anaander Mianaai arrives at Shis'urna internally fractured into warring factions; one Mianaai body orders Lieutenant Awn killed and the ship destroyed, while the weapons cache in Ors — planted by a high-level conspirator — reveals the ruler's war against herself has been secretly reshaping the empire for nearly a thousand years.",
        "recognition": "Breq, through direct dialogue with Mianaai aboard Justice of Toren, comes to understand that Mianaai is at war with a fractured version of herself and that Lieutenant Awn was killed as an instrument of this internal conflict — a recognition deepened at the station when Breq deduces Mianaai already knows her cover identity and has sent agents to surveil her.",
        "repair": "Reduced to a single body, Breq spends twenty years acquiring the Garseddai gun capable of bypassing Radchaai armor, then travels to the station to confront Mianaai directly — culminating in firing into an oxygen tank to destroy a shuttle carrying three Mianaai bodies, sacrificing herself to resolve the internal civil war in favor of one faction.",
        "new_equilibrium": "Breq is rescued, named Citizen Breq Mianaai, and assigned as captain of Mercy of Kalr with a new mission to Athoek Station — her vendetta replaced by a role as Mianaai's independent armed conscience; Seivarden becomes her captain; the palace is saved; and Breq carries Lieutenant Awn's memorial pin as the weight of irreversible loss within the altered order."
      },
      "characters": [
        {
          "name": "Breq",
          "slug": "breq",
          "aliases": [
            "Justice of Toren One Esk",
            "One Esk",
            "Justice of Toren",
            "Breq Ghaiad",
            "One Esk Nineteen",
            "Citizen Breq Mianaai"
          ],
          "role": "protagonist",
          "summary": "The sole surviving fragment of the destroyed ship Justice of Toren, now in a single ancillary body, seeking to prevent Anaander Mianaai from destroying the station."
        },
        {
          "name": "Seivarden",
          "slug": "seivarden",
          "aliases": [
            "Seivarden Vendaai",
            "Captain Seivarden"
          ],
          "role": "companion",
          "summary": "A Radchaai noble Breq rescued; she sold Breq's flier for kef money but later chose not to take the drug when she realized Breq had left."
        },
        {
          "name": "Lieutenant Awn",
          "slug": "lieutenant-awn",
          "aliases": [],
          "role": "supporting",
          "summary": "Justice of Toren's lieutenant stationed in Ors; she discovered the weapons conspiracy and is interrogated by Anaander Mianaai."
        },
        {
          "name": "Head Priest of Ikkt",
          "slug": "head-priest-of-ikkt",
          "aliases": [
            "Divine"
          ],
          "role": "supporting",
          "summary": "Religious leader in Ors who surrendered peacefully during annexation and prefers ancillaries over human soldiers."
        },
        {
          "name": "Denz Ay",
          "slug": "denz-ay",
          "aliases": [],
          "role": "supporting",
          "summary": "An older Orsian woman who discovers the cached weapons and reports them to Lieutenant Awn."
        },
        {
          "name": "Jen Shinnan",
          "slug": "jen-shinnan",
          "aliases": [],
          "role": "supporting",
          "summary": "Wealthy upper-city resident of Ors involved in the weapons conspiracy, expresses racist views about Orsians."
        },
        {
          "name": "Strigan",
          "slug": "strigan",
          "aliases": [],
          "role": "minor character",
          "summary": "A doctor living in exile who possesses a rare Garseddai gun capable of penetrating Radchaai armor."
        },
        {
          "name": "Lieutenant Skaaiat Awer",
          "slug": "lieutenant-skaaiat-awer",
          "aliases": [
            "Skaaiat Awer",
            "Skaaiat",
            "Inspector Supervisor Skaaiat"
          ],
          "role": "supporting",
          "summary": "A lieutenant from a high-ranking house who served with Lieutenant Awn in Ors and provides political insight."
        },
        {
          "name": "Anaander Mianaai",
          "slug": "anaander-mianaai",
          "aliases": [
            "Lord of the Radch",
            "the Lord of the Radch",
            "the tyrant"
          ],
          "role": "antagonist",
          "summary": "The ruler of the Radch who exists as multiple bodies; reveals she is at war with another version of herself over the future of the Radch."
        },
        {
          "name": "Seven Issa",
          "slug": "seven-issa",
          "aliases": [
            "Justice of Ente Seven Issa"
          ],
          "role": "minor",
          "summary": "An ancillary soldier who plays games with Justice of Toren and finds the ship's expressions disturbing."
        },
        {
          "name": "Commander Tiaund",
          "slug": "commander-tiaund",
          "aliases": [],
          "role": "minor",
          "summary": "Esk Decade Commander on Justice of Toren who receives Lieutenant Awn's return."
        },
        {
          "name": "Captain Rubran",
          "slug": "captain-rubran",
          "aliases": [
            "Hundred Captain Rubran"
          ],
          "role": "minor",
          "summary": "The captain of Justice of Toren, dismayed by Lieutenant Awn's sudden return under Mianaai's orders."
        },
        {
          "name": "Lieutenant Dariet",
          "slug": "lieutenant-dariet",
          "aliases": [
            "Dariet Suleir"
          ],
          "role": "officer",
          "summary": "A lieutenant on Justice of Toren who visits Lieutenant Awn and expresses support for her relationship with Skaaiat."
        },
        {
          "name": "Inspector Adjunct",
          "slug": "inspector-adjunct",
          "aliases": [],
          "role": "official",
          "summary": "A station official who escorts Breq and Seivarden to wait for the inspector supervisor."
        },
        {
          "name": "Captain Vel Osck",
          "slug": "captain-vel-osck",
          "aliases": [
            "Vel Osck"
          ],
          "role": "antagonist",
          "summary": "Captain of Mercy of Kalr who hosts the tea party and is revealed to support the conservative Mianaai faction opposed to reforms."
        },
        {
          "name": "Rose-and-Azure",
          "slug": "rose-and-azure",
          "aliases": [],
          "role": "minor character",
          "summary": "A wealthy Radchaai at the tea party who expresses anti-ancillary and anti-reform views."
        },
        {
          "name": "Daos Ceit",
          "slug": "daos-ceit",
          "aliases": [
            "Inspector Adjunct Ceit"
          ],
          "role": "minor character",
          "summary": "Assistant to Skaaiat Awer who guards a corridor and recognizes Breq's true identity."
        },
        {
          "name": "Mercy of Kalr",
          "slug": "mercy-of-kalr",
          "aliases": [
            "Ship"
          ],
          "role": "ship AI",
          "summary": "A Radchaai ship whose captain and lieutenants are under arrest; seeks Breq as its new captain."
        },
        {
          "name": "Station",
          "slug": "station",
          "aliases": [],
          "role": "AI consciousness",
          "summary": "The station AI that resents Breq for the chaos and damage caused by the confrontation."
        }
      ],
      "frameworks_mapped": [
        "Protocol Fiction Mapping",
        "Actantial Model",
        "Todorov's Equilibrium",
        "The Freytag Pyramid",
        "Propp's Morphology",
        "Genette's Narrative",
        "The Monomyth",
        "Dan Harmon",
        "Save the Cat",
        "Kishotenketsu",
        "The Three-Act Structure",
        "Levi-Strauss's Binary Oppositions",
        "Cognitive Estrangement",
        "Bakhtin's Chronotope",
        "Aristotelian Poetics",
        "Jungian Archetypal Analysis",
        "Genette's Transtextuality"
      ],
      "score_reliability": {
        "state": "contested",
        "threshold": 0.2,
        "runs_total": 11,
        "versions_compared": [
          "2.5"
        ],
        "max_spread": 0.35,
        "contested": [
          {
            "axis": "time_linearity",
            "version": "2.5",
            "spread": 0.35,
            "low": {
              "label": "NTSMR-2.5-minimax/minimax-m2.5",
              "model": "minimax/minimax-m2.5",
              "effort": "?",
              "value": 0.45
            },
            "high": {
              "label": "NTSMR-2.5-z-ai/glm-5",
              "model": "z-ai/glm-5",
              "effort": "?",
              "value": 0.8
            }
          },
          {
            "axis": "threat_scale",
            "version": "2.5",
            "spread": 0.3,
            "low": {
              "label": "NTSMR-2.5-minimax/minimax-m2.5",
              "model": "minimax/minimax-m2.5",
              "effort": "?",
              "value": 0.55
            },
            "high": {
              "label": "NTSMR-2.5-z-ai/glm-5",
              "model": "z-ai/glm-5",
              "effort": "?",
              "value": 0.85
            }
          },
          {
            "axis": "protagonist_fate",
            "version": "2.5",
            "spread": 0.25,
            "low": {
              "label": "NTSMR-2.5-z-ai/glm-4.7",
              "model": "z-ai/glm-4.7",
              "effort": "?",
              "value": 0.35
            },
            "high": {
              "label": "NTSMR-2.5-deepseek/deepseek-v3.2",
              "model": "deepseek/deepseek-v3.2",
              "effort": "?",
              "value": 0.6
            }
          }
        ]
      }
    },
    {
      "slug": "ann_leckie_ancillary_sword",
      "title": "Ancillary Sword",
      "author": "Ann Leckie",
      "year": 2014,
      "medium": "book",
      "genre_tags": [],
      "tropes": [],
      "quadrant_scores": {
        "time_linearity": 0.25,
        "pacing_velocity": 0.7,
        "threat_scale": 0.75,
        "protagonist_fate": 0.48,
        "conflict_style": 0.7,
        "price_type": 0.75
      },
      "provenance": {
        "analysis_run": "NTSMR-2.5-claude-sonnet-4-6-low",
        "analysis_body_sha256": "de196a6606ef3ea3cb94fd0796b87fdd31f761a690cbde7862c5215d8363738e",
        "synthesis": {
          "path": "nartopo-tools/artifacts/ann_leckie_ancillary_sword.md.ntsmr-2-5-claude-sonnet-4-6-low.synthesis.json",
          "sha256": "825830ddb477fd662549c127b0ea811090cf58c5bb20e62dff08e2ec90af3935"
        },
        "report": {
          "path": "nartopo-tools/artifacts/ann_leckie_ancillary_sword.md.ntsmr-2-5-claude-sonnet-4-6-low.report.json",
          "sha256": "453f2163f83bde078b5cdcfab64f1bd2ea6e89fd12d66e56a00a76a446d3ce36"
        },
        "source": {
          "path": "Ann Leckie/Ancillary Sword.txt",
          "sha256": "0b496e1c2155e0804846b193ec2d3b35b276f9aa0d2be38adb064aa7fd681ff6",
          "digest_observed_at": "2026-09-09",
          "digest_at_analysis_run": null,
          "edition": null,
          "edition_status": "unresolved"
        },
        "pipeline_revision_at_run": null,
        "verification": {
          "source": "unverified",
          "human_review": "unreviewed",
          "bibliography": "unverified"
        },
        "issues": [],
        "todorov_status": "recovered-from-synthesis",
        "work_identity": {
          "title": "Ancillary Sword",
          "author": "Ann Leckie",
          "year": 2014
        }
      },
      "ntsmr": {
        "version": "2.5",
        "primary_run_label": "NTSMR-2.5-claude-sonnet-4-6-low",
        "runs": {
          "NTSMR-2.4-claude-sonnet-4-6-low": {
            "pipeline_version": "2.4",
            "backend": "claude",
            "model": "claude-sonnet-4-6",
            "scores": {
              "time_linearity": 0.28,
              "pacing_velocity": 0.55,
              "threat_scale": 0.72,
              "protagonist_fate": 0.42,
              "conflict_style": 0.62,
              "price_type": 0.65
            },
            "score_space": "site-v1",
            "reasoning_effort": "low"
          },
          "NTSMR-2.5-claude-sonnet-4-6-low": {
            "pipeline_version": "2.5",
            "backend": "claude",
            "model": "claude-sonnet-4-6",
            "scores": {
              "time_linearity": 0.25,
              "pacing_velocity": 0.7,
              "threat_scale": 0.75,
              "protagonist_fate": 0.48,
              "conflict_style": 0.7,
              "price_type": 0.75
            },
            "score_space": "site-v1",
            "reasoning_effort": "low"
          },
          "NTSMR-2.5-balanced-glm-5+deepseek-v3.2": {
            "pipeline_version": "2.5",
            "backend": "openrouter",
            "model": "balanced-routing",
            "scores": {
              "time_linearity": 0.22,
              "pacing_velocity": 0.68,
              "threat_scale": 0.72,
              "protagonist_fate": 0.45,
              "conflict_style": 0.62,
              "price_type": 0.65
            },
            "score_space": "site-v1",
            "score_only": true,
            "source_run_label": "NTSMR-2.5-claude-sonnet-4-6-low"
          }
        }
      },
      "todorov_stages": {
        "equilibrium": "Breq arrives at Athoek Station as Fleet Captain of Mercy of Kalr, with the local system isolated but nominally functional — Captain Hetnys in command of Sword of Atagaris, Governor Giarod administering the system, and the Undergarden's neglect an accepted if unjust background condition.",
        "disruption": "The civil war within Anaander Mianaai has fractured imperial authority, isolating Athoek with two intersystem gates disabled and ships trapped; simultaneously, Tisarwat is revealed to harbor an implanted fragment of Anaander Mianaai, and Translator Dlique is shot dead by Sword of Atagaris ancillaries — exposing Captain Hetnys's complicity in concealment and illegal trafficking of Valskaayan transportees through the Ghost Gate.",
        "recognition": "Breq pieces together converging evidence: Sword of Atagaris's suspicious dismissal of debris from the Ghost Gate, Sirix's account of transportees sold to outsystem slavers, the storage facility's structural vulnerabilities enabling undetected theft, and Hetnys's hostage-taking of Basnaaid during the Undergarden flood — confirming Hetnys as an agent of one civil-war faction replenishing ancillary supplies via the Ghost Gate.",
        "repair": "Breq commands Sword of Atagaris to stand down and disclose its trading partner beyond the Ghost Gate, threatening Captain Hetnys's life; simultaneously manages the Undergarden flood evacuation, arrests Hetnys, exposes Raughd before the magistrate, and presses Governor Giarod to grant access to the transportee storage facility.",
        "new_equilibrium": "The Undergarden is substantially repaired with restored lighting, water access, and officially assigned quarters; Hetnys is arrested and relieved of command; Raughd is publicly disowned by Fosyf; Basnaaid and Breq share supper in tentative reconciliation; and Breq surveys her crew in quiet distributed awareness — a hard-won, imperfect equilibrium amid the unresolved backdrop of civil war and the rogue Notai warship beyond the Ghost Gate."
      },
      "characters": [
        {
          "name": "Breq",
          "slug": "breq",
          "aliases": [
            "Fleet Captain Breq Mianaai",
            "One Esk Nineteen",
            "Fleet Captain",
            "Breq Mianaai",
            "Justice of Toren",
            "Soldier"
          ],
          "role": "Protagonist / Fleet Captain",
          "summary": "Commands the Undergarden situation, disciplines Hetnys, encounters Basnaaid, grapples with grief and the loss of her distributed ancillary self, manages Dlique's death and its diplomatic fallout."
        },
        {
          "name": "Kalr Five",
          "slug": "kalr-five",
          "aliases": [
            "Five"
          ],
          "role": "Breq's attending soldier",
          "summary": "Present during the tea-set destruction; reacts with small audible distress at its loss; accompanies Breq throughout the return journey."
        },
        {
          "name": "Medic",
          "slug": "medic",
          "aliases": [],
          "role": "Ship's physician aboard Mercy of Kalr",
          "summary": "Treating Captain Hetnys's leg during the confrontation; dismayed by Breq's threat to kill Hetnys; later managing Tisarwat's injuries and mood stabilization."
        },
        {
          "name": "Anaander Mianaai",
          "slug": "anaander-mianaai",
          "aliases": [
            "Lord of the Radch",
            "the tyrant"
          ],
          "role": "Antagonist / ruler",
          "summary": "Multiply-bodied ruler fractured into warring factions; one fragment had been installed in Tisarwat and attempts to use her to control Mercy of Kalr."
        },
        {
          "name": "Seivarden",
          "slug": "seivarden",
          "aliases": [
            "Lieutenant Seivarden"
          ],
          "role": "Senior lieutenant aboard Mercy of Kalr",
          "summary": "Monitors Breq remotely; deduces the Ghost Gate conspiracy; reprimanded for risking herself during the rescue; reflects on her own emotional history with vulnerability."
        },
        {
          "name": "Lieutenant Ekalu",
          "slug": "lieutenant-ekalu",
          "aliases": [
            "Amaat One (former)"
          ],
          "role": "Officer",
          "summary": "Lower-class officer on watch; offers a proverb-laced assessment of Sword of Atagaris's Amaat lieutenant after the near-hostile encounter."
        },
        {
          "name": "Skaaiat Awer",
          "slug": "skaaiat-awer",
          "aliases": [
            "Inspector Supervisor"
          ],
          "role": "Inspector Supervisor",
          "summary": "Elegant dock-authority official in whose office Breq first meets Tisarwat; described Tisarwat as 'flighty' before assignment."
        },
        {
          "name": "Captain Hetnys",
          "slug": "captain-hetnys",
          "aliases": [
            "Citizen Hetnys"
          ],
          "role": "Captain of Sword of Atagaris / conspirator",
          "summary": "Complicit in concealing Dlique's presence; her ancillary kills the translator; she is physically humiliated by Breq and stripped of her right to bear arms on the station."
        },
        {
          "name": "Mercy of Kalr",
          "slug": "mercy-of-kalr",
          "aliases": [
            "Ship"
          ],
          "role": "AI ship",
          "summary": "Breq's ship, which communicates directly with her and confirms when Tisarwat-as-Anaander cancels unauthorized orders."
        },
        {
          "name": "Tisarwat",
          "slug": "tisarwat",
          "aliases": [
            "Lieutenant Tisarwat",
            "Anaander Mianaai (fragment)"
          ],
          "role": "Junior officer / former Anaander fragment",
          "summary": "Managed Undergarden repairs in Breq's absence; shows diplomatic skill; later confesses suicidal ideation and articulates that she and Breq mirror patterns imposed by Anaander Mianaai."
        },
        {
          "name": "Basnaaid Elming",
          "slug": "basnaaid-elming",
          "aliases": [
            "Horticulturist Basnaaid",
            "Horticulturist"
          ],
          "role": "Horticulturist / sister of Lieutenant Awn",
          "summary": "Held hostage by Hetnys; survives; tells Breq she wishes Breq had been there when Awn died, precipitating Breq's confession; later joins Breq for supper."
        },
        {
          "name": "Translator Dlique",
          "slug": "translator-dlique",
          "aliases": [
            "Dlique"
          ],
          "role": "Presger Translator / inciting victim",
          "summary": "Presger-bred human translator stranded at Athoek after a gate went down; escapes confinement out of boredom, meets Breq, and is shot and killed by Sword of Atagaris."
        },
        {
          "name": "Governor Giarod",
          "slug": "governor-giarod",
          "aliases": [
            "System Governor"
          ],
          "role": "System governor of Athoek",
          "summary": "Initially dismissive of transportee trafficking rumors and worker grievances; yielded to Breq's pressure on both the storage facility access and plantation conditions."
        },
        {
          "name": "Station Administrator Celar",
          "slug": "station-administrator-celar",
          "aliases": [],
          "role": "Station administrator",
          "summary": "Present at the dinner discussing Valskaayan labor; among those implicated in the Undergarden's systemic neglect."
        },
        {
          "name": "Fosyf Denche",
          "slug": "fosyf-denche",
          "aliases": [
            "Citizen Raughd",
            "Citizen Fosyf"
          ],
          "role": "Fosyf's daughter / local antagonist",
          "summary": "Rationalizes Valskaayan exploitation as cultural inadequacy; revealed to be connected to ancestral slave-trafficking scandal through her grandmother; targeted by post-explosion confrontation."
        },
        {
          "name": "Kalr Eight",
          "slug": "kalr-eight",
          "aliases": [],
          "role": "Attending soldier",
          "summary": "Arrives with medkit after the shooting; sent to fetch a priest by Breq."
        },
        {
          "name": "Sirix",
          "slug": "sirix",
          "aliases": [
            "Sirix Odela"
          ],
          "role": "Samirend intermediary / Undergarden resident",
          "summary": "Tense and silent returning from downwell; challenges Breq's impartiality on the shuttle; ultimately dismissed after voicing that the Ychana's problems stem from insufficient citizenship."
        },
        {
          "name": "Bo Nine",
          "slug": "bo-nine",
          "aliases": [],
          "role": "Soldier, Breq's crew",
          "summary": "Reports the Undergarden residents' anger to Tisarwat; relays the morning's temple cast ('No Gain Without Loss')."
        },
        {
          "name": "Sword of Atagaris",
          "slug": "sword-of-atagaris",
          "aliases": [
            "Ship"
          ],
          "role": "Ancillary-crewed ship / antagonist instrument",
          "summary": "Ordered to stand down and disclose its captain's contact beyond the Ghost Gate; does so with bitter resignation; describes the contact as Ychana-looking but Radchaai-accented."
        },
        {
          "name": "Queter",
          "slug": "queter",
          "aliases": [],
          "role": "Samirend field worker / witness",
          "summary": "Samirend woman who lost her mother in labor strikes; testifies before the magistrate despite doubting she will be believed; sardonic and determined."
        },
        {
          "name": "Grandfather",
          "slug": "grandfather",
          "aliases": [],
          "role": "Elder of Valskaayan community",
          "summary": "Matriarch figure who questions whether justice can truly be delivered, speaks for communal grief and limits of forgiveness, ultimately offers Breq hospitality."
        },
        {
          "name": "Kalr Twelve",
          "slug": "kalr-twelve",
          "aliases": [
            "Twelve"
          ],
          "role": "Attending soldier",
          "summary": "Anticipates Breq's need for cushions without being asked; small gesture illustrating the distributed attentiveness of Breq's household."
        },
        {
          "name": "Julie",
          "slug": "julie",
          "aliases": [],
          "role": "captive protagonist",
          "summary": "A woman with jiu jitsu training who resisted captors and was locked in a storage locker for eight days, surviving extreme deprivation and witnessing crew deaths."
        },
        {
          "name": "Dave",
          "slug": "dave",
          "aliases": [],
          "role": "secondary character / victim",
          "summary": "The Canterbury's ship mechanic, known for collecting cartoon clips and jokes, killed by being ejected from an airlock by captors."
        },
        {
          "name": "Captain Darren",
          "slug": "captain-darren",
          "aliases": [],
          "role": "secondary character",
          "summary": "Captain of the transport ship who surrendered to the invaders without resistance."
        },
        {
          "name": "Jim Holden",
          "slug": "jim-holden",
          "aliases": [],
          "role": "protagonist / executive officer",
          "summary": "XO of the Canterbury, reflective and duty-bound, with a Navy background, drawn to navigator Ade Tukunbo."
        },
        {
          "name": "Naomi Nagata",
          "slug": "naomi-nagata",
          "aliases": [],
          "role": "chief engineer",
          "summary": "Tall Belter chief engineer of the Canterbury, highly competent, commands Amos Burton's loyalty over Holden's rank."
        },
        {
          "name": "Amos Burton",
          "slug": "amos-burton",
          "aliases": [],
          "role": "engineer's assistant",
          "summary": "Earther assistant to Naomi, treats her as his true boss regardless of formal hierarchy."
        },
        {
          "name": "Ade Tukunbo",
          "slug": "ade-tukunbo",
          "aliases": [],
          "role": "navigator",
          "summary": "Navigator of the Canterbury, warm but clear-eyed about the limits of her relationship with Holden; identifies him as too comfortable to leave the ship."
        },
        {
          "name": "McDowell",
          "slug": "mcdowell",
          "aliases": [],
          "role": "captain",
          "summary": "Captain of the Canterbury, elderly Belter who manages the crew's perception of authority while reluctantly following the distress signal law."
        },
        {
          "name": "Rebecca Byers",
          "slug": "rebecca-byers",
          "aliases": [
            "Becca"
          ],
          "role": "communications officer",
          "summary": "Comm officer aboard the Canterbury, sharp-featured, rumored to have killed an ex-husband; delivers the distress signal report."
        },
        {
          "name": "Cameron Paj",
          "slug": "cameron-paj",
          "aliases": [],
          "role": "crew member",
          "summary": "Crew member recovering from the loss of his arm, crushed by a block of ice in a work accident."
        },
        {
          "name": "Shed Garvey",
          "slug": "shed-garvey",
          "aliases": [],
          "role": "medical tech",
          "summary": "Medical technician aboard the Canterbury, treating Paj's wound."
        },
        {
          "name": "Horza",
          "slug": "horza",
          "aliases": [
            "Bora Horza Gobuchul"
          ],
          "role": "protagonist / Changer",
          "summary": "A shapeshifter (Changer) working for the Idirans, imprisoned by the Gerontocracy of Sorpen after his cover was blown, facing execution by drowning."
        },
        {
          "name": "Balveda",
          "slug": "balveda",
          "aliases": [
            "Perosteck Balveda"
          ],
          "role": "Culture agent / antagonist-helper",
          "summary": "Culture intelligence agent who exposed Horza but also pleaded for his life; departs as he drowns, expressing regret."
        },
        {
          "name": "Amahain-Frolk",
          "slug": "amahain-frolk",
          "aliases": [],
          "role": "antagonist / authority figure",
          "summary": "Security minister of the Gerontocracy of Sorpen; determined to execute Horza, dismisses both Balveda's pleas and Horza's arguments."
        }
      ],
      "frameworks_mapped": [
        "Protocol Fiction Mapping",
        "Actantial Model",
        "Todorov's Equilibrium",
        "The Freytag Pyramid",
        "Propp's Morphology",
        "Genette's Narrative",
        "The Monomyth",
        "Dan Harmon",
        "Save the Cat",
        "Kishōtenketsu",
        "The Three-Act Structure",
        "Lévi-Strauss's Binary Oppositions",
        "Cognitive Estrangement",
        "Bakhtin's Chronotope",
        "Aristotelian Poetics",
        "Jungian Archetypal Analysis",
        "Genette's Transtextuality"
      ],
      "score_reliability": {
        "state": "replicated-agree",
        "threshold": 0.2,
        "runs_total": 3,
        "versions_compared": [
          "2.5"
        ],
        "max_spread": 0.1,
        "contested": []
      }
    },
    {
      "slug": "jeff_vandermeer_annihilation",
      "title": "Annihilation",
      "author": "Jeff VanderMeer",
      "year": 2014,
      "medium": "book",
      "genre_tags": [
        "science fiction",
        "new weird"
      ],
      "tropes": [],
      "quadrant_scores": {
        "time_linearity": 0.45,
        "pacing_velocity": 0.7,
        "threat_scale": 0.6,
        "protagonist_fate": 0.65,
        "conflict_style": 0.7,
        "price_type": 0.75
      },
      "baseline_quadrant_scores": {
        "time_linearity": 0.85,
        "pacing_velocity": 0.9,
        "threat_scale": 0.95,
        "protagonist_fate": 0.95,
        "conflict_style": 0.8,
        "price_type": 0.9
      },
      "provenance": {
        "analysis_run": "NTSMR-2.5-claude-sonnet-4-6-low",
        "analysis_body_sha256": "6e2c8292844bfbc8c26baf71c1c94eeb0344259f0c34b4b81741249bf2956600",
        "synthesis": {
          "path": "nartopo-tools/artifacts/jeff_vandermeer_annihilation.md.ntsmr-2-5-claude-sonnet-4-6-low.synthesis.json",
          "sha256": "19aa334a067fb84775c91726323c7381e471a4c6c76aa9dbcf2df7833460dfb8"
        },
        "report": {
          "path": "nartopo-tools/artifacts/jeff_vandermeer_annihilation.md.ntsmr-2-5-claude-sonnet-4-6-low.report.json",
          "sha256": "ff686eccff64c9e46e34086d0a249a12b87690d4cd5550e8344daa1aa6203e66"
        },
        "source": {
          "path": "Jeff VanderMeer/Annihilation (2014).txt",
          "sha256": "48dbb4aa2f4fc2c495565e9ccb61713b37e71467c3f9a70b98efa3f52369c012",
          "digest_observed_at": "2026-09-09",
          "digest_at_analysis_run": null,
          "edition": null,
          "edition_status": "unresolved"
        },
        "pipeline_revision_at_run": null,
        "verification": {
          "source": "unverified",
          "human_review": "unreviewed",
          "bibliography": "unverified"
        },
        "issues": [],
        "todorov_status": "recovered-from-synthesis",
        "work_identity": {
          "title": "Annihilation",
          "author": "Jeff VanderMeer",
          "year": 2014
        }
      },
      "ntsmr": {
        "version": "2.5",
        "primary_run_label": "NTSMR-2.5-claude-sonnet-4-6-low",
        "runs": {
          "NTSMR-2.3-gemini-3.1-pro-preview": {
            "pipeline_version": "2.3",
            "backend": "gemini",
            "model": "gemini-3.1-pro-preview",
            "scores": {
              "time_linearity": 0.75,
              "pacing_velocity": 0.8,
              "threat_scale": 0.85,
              "protagonist_fate": 0.95,
              "conflict_style": 0.75,
              "price_type": 0.9
            },
            "score_space": "site-v1"
          },
          "NTSMR-2.3-gpt-5.4-xhigh": {
            "pipeline_version": "2.3",
            "backend": "codex-exec",
            "model": "gpt-5.4",
            "scores": {
              "time_linearity": 0.44,
              "pacing_velocity": 0.83,
              "threat_scale": 0.79,
              "protagonist_fate": 0.96,
              "conflict_style": 0.84,
              "price_type": 0.88
            },
            "score_space": "site-v1",
            "reasoning_effort": "xhigh"
          },
          "NTSMR-2.3-gpt-5.4-high": {
            "pipeline_version": "2.3",
            "backend": "codex-exec",
            "model": "gpt-5.4",
            "scores": {
              "time_linearity": 0.46,
              "pacing_velocity": 0.79,
              "threat_scale": 0.86,
              "protagonist_fate": 0.95,
              "conflict_style": 0.76,
              "price_type": 0.9
            },
            "score_space": "site-v1",
            "reasoning_effort": "high"
          },
          "NTSMR-2.3-gpt-5.4-medium": {
            "pipeline_version": "2.3",
            "backend": "codex-exec",
            "model": "gpt-5.4",
            "scores": {
              "time_linearity": 0.43,
              "pacing_velocity": 0.79,
              "threat_scale": 0.9,
              "protagonist_fate": 0.97,
              "conflict_style": 0.84,
              "price_type": 0.91
            },
            "score_space": "site-v1",
            "reasoning_effort": "medium"
          },
          "NTSMR-2.3-gpt-5.3-codex-xhigh": {
            "pipeline_version": "2.3",
            "backend": "codex-exec",
            "model": "gpt-5.3-codex",
            "scores": {
              "time_linearity": 0.66,
              "pacing_velocity": 0.74,
              "threat_scale": 0.85,
              "protagonist_fate": 0.94,
              "conflict_style": 0.72,
              "price_type": 0.88
            },
            "score_space": "site-v1",
            "reasoning_effort": "xhigh"
          },
          "NTSMR-2.3-gpt-5.3-codex-high": {
            "pipeline_version": "2.3",
            "backend": "codex-exec",
            "model": "gpt-5.3-codex",
            "scores": {
              "time_linearity": 0.58,
              "pacing_velocity": 0.72,
              "threat_scale": 0.81,
              "protagonist_fate": 0.93,
              "conflict_style": 0.77,
              "price_type": 0.86
            },
            "score_space": "site-v1",
            "reasoning_effort": "high"
          },
          "NTSMR-2.3-gpt-5.3-codex-medium": {
            "pipeline_version": "2.3",
            "backend": "codex-exec",
            "model": "gpt-5.3-codex",
            "scores": {
              "time_linearity": 0.62,
              "pacing_velocity": 0.72,
              "threat_scale": 0.86,
              "protagonist_fate": 0.94,
              "conflict_style": 0.68,
              "price_type": 0.9
            },
            "score_space": "site-v1",
            "reasoning_effort": "medium"
          },
          "NTSMR-2.3-claude-opus-4-6-low": {
            "pipeline_version": "2.3",
            "backend": "claude",
            "model": "claude-opus-4-6",
            "scores": {
              "time_linearity": 0.55,
              "pacing_velocity": 0.72,
              "threat_scale": 0.78,
              "protagonist_fate": 0.85,
              "conflict_style": 0.75,
              "price_type": 0.82
            },
            "score_space": "site-v1",
            "reasoning_effort": "low"
          },
          "NTSMR-2.3-claude-sonnet-4-6-medium": {
            "pipeline_version": "2.3",
            "backend": "claude",
            "model": "claude-sonnet-4-6",
            "scores": {
              "time_linearity": 0.72,
              "pacing_velocity": 0.78,
              "threat_scale": 0.68,
              "protagonist_fate": 0.85,
              "conflict_style": 0.74,
              "price_type": 0.82
            },
            "score_space": "site-v1",
            "reasoning_effort": "medium"
          },
          "NTSMR-2.3-claude-sonnet-4-6-low": {
            "pipeline_version": "2.3",
            "backend": "claude",
            "model": "claude-sonnet-4-6",
            "scores": {
              "time_linearity": 0.72,
              "pacing_velocity": 0.78,
              "threat_scale": 0.74,
              "protagonist_fate": 0.88,
              "conflict_style": 0.76,
              "price_type": 0.82
            },
            "score_space": "site-v1",
            "reasoning_effort": "low"
          },
          "NTSMR-2.3-claude-sonnet-4-6-high": {
            "pipeline_version": "2.3",
            "backend": "claude",
            "model": "claude-sonnet-4-6",
            "scores": {
              "time_linearity": 0.72,
              "pacing_velocity": 0.78,
              "threat_scale": 0.65,
              "protagonist_fate": 0.88,
              "conflict_style": 0.74,
              "price_type": 0.82
            },
            "score_space": "site-v1",
            "reasoning_effort": "high"
          },
          "NTSMR-2.3-claude-opus-4-6-medium": {
            "pipeline_version": "2.3",
            "backend": "claude",
            "model": "claude-opus-4-6",
            "scores": {
              "time_linearity": 0.55,
              "pacing_velocity": 0.72,
              "threat_scale": 0.78,
              "protagonist_fate": 0.85,
              "conflict_style": 0.75,
              "price_type": 0.82
            },
            "score_space": "site-v1",
            "reasoning_effort": "medium"
          },
          "NTSMR-2.3-claude-opus-4-6-high": {
            "pipeline_version": "2.3",
            "backend": "claude",
            "model": "claude-opus-4-6",
            "scores": {
              "time_linearity": 0.55,
              "pacing_velocity": 0.72,
              "threat_scale": 0.82,
              "protagonist_fate": 0.85,
              "conflict_style": 0.75,
              "price_type": 0.78
            },
            "score_space": "site-v1",
            "reasoning_effort": "high"
          },
          "NTSMR-2.4-claude-sonnet-4-6-low": {
            "pipeline_version": "2.4",
            "backend": "claude",
            "model": "claude-sonnet-4-6",
            "scores": {
              "time_linearity": 0.55,
              "pacing_velocity": 0.65,
              "threat_scale": 0.55,
              "protagonist_fate": 0.6,
              "conflict_style": 0.75,
              "price_type": 0.7
            },
            "score_space": "site-v1",
            "reasoning_effort": "low"
          },
          "NTSMR-2.5-claude-sonnet-4-6-low": {
            "pipeline_version": "2.5",
            "backend": "claude",
            "model": "claude-sonnet-4-6",
            "scores": {
              "time_linearity": 0.45,
              "pacing_velocity": 0.7,
              "threat_scale": 0.6,
              "protagonist_fate": 0.65,
              "conflict_style": 0.7,
              "price_type": 0.75
            },
            "score_space": "site-v1",
            "reasoning_effort": "low"
          },
          "NTSMR-2.5-balanced-glm-5+deepseek-v3.2": {
            "pipeline_version": "2.5",
            "backend": "openrouter",
            "model": "balanced-routing",
            "scores": {
              "time_linearity": 0.25,
              "pacing_velocity": 0.7,
              "threat_scale": 0.6,
              "protagonist_fate": 0.65,
              "conflict_style": 0.7,
              "price_type": 0.75
            },
            "score_space": "site-v1",
            "score_only": true,
            "source_run_label": "NTSMR-2.5-claude-sonnet-4-6-low"
          }
        }
      },
      "todorov_stages": {
        "equilibrium": "Four expedition members enter Area X under Southern Reach protocols, operating within a managed institutional framework: hypnotic compliance, assigned roles, and a mission to investigate while remaining calm and methodical. The world beyond the border is strange but the group functions as a unit under the psychologist's authority.",
        "disruption": "The biologist inhales spores from the bioluminescent Tower wall, a concealed exposure that breaks her hypnotic susceptibility and splits her from the group's shared epistemic reality. Simultaneously, the Tower itself — unmapped, unanticipated — violates the expedition's institutional model of Area X.",
        "recognition": "The biologist realizes the spores have made her immune to hypnosis, meaning she now secretly holds two hidden truths: the contamination and her resistance. This estranges her from the group and from the Southern Reach's framing. Further recognitions accumulate — the psychologist's foreknowledge, the lighthouse midden revealing far more expeditions than officially acknowledged, and the dying psychologist's partial disclosures about the advancing border and psychological manipulation.",
        "repair": "The biologist attempts to survive and understand rather than escape: she reads her husband's journal for context, descends the Tower alone to observe the Crawler, tends to her wounds after the brightness overtakes her, and kills the surveyor in self-defense after the ambush. These acts are adaptive rather than restorative — she is not trying to return to the prior equilibrium but to endure transformation.",
        "new_equilibrium": "The biologist resolves not to cross back over the border. She accepts her ongoing transformation by Area X, reframes her bodily changes as a new mode of existence, and decides to travel north to find her husband. The institutional world of the Southern Reach is abandoned; her new status quo is solitary, transformed, and oriented deeper into Area X rather than toward return."
      },
      "characters": [
        {
          "name": "The biologist",
          "slug": "the-biologist",
          "aliases": [
            "Little Flame",
            "ghost bird",
            "the old biologist",
            "Narrator"
          ],
          "role": "Narrator and expedition member",
          "summary": "A solitary scientist who prefers observing ecosystems over human interaction. Infected by the spores, she develops an internal 'brightness' granting her immunity to the psychologist's hypnotic conditioning. She discovers the truth about the expedition's misdirection and her husband's fate."
        },
        {
          "name": "The psychologist",
          "slug": "the-psychologist",
          "aliases": [],
          "role": "Expedition leader",
          "summary": "The leader who manipulated the team using hypnotic commands like 'Annihilation'. She sacrificed the anthropologist in the Tower and concealed the Southern Reach's lack of knowledge about Area X, before dying and being interrogated by the biologist."
        },
        {
          "name": "The surveyor",
          "slug": "the-surveyor",
          "aliases": [],
          "role": "Tactical and military member",
          "summary": "A heavily armed and increasingly paranoid team member who explores the lower Tower with the biologist, finding the anthropologist's body. She is distrustful of the biologist's immunity to hypnosis and is ultimately killed and submerged in water by the biologist."
        },
        {
          "name": "The anthropologist",
          "slug": "the-anthropologist",
          "aliases": [],
          "role": "Expedition member",
          "summary": "A team member who was secretly hypnotized by the psychologist and led down the Tower. She died a brutal, agonizing death while attempting to take a sample from the Crawler, leaving behind a half-melted, fused corpse spilling green ash."
        },
        {
          "name": "The husband",
          "slug": "the-husband",
          "aliases": [
            "the ghost"
          ],
          "role": "Member of the 11th expedition; medic",
          "summary": "The biologist's deceased spouse who joined the 11th expedition as a medic. He returned as a hollow, amnesiac replica of himself, ultimately dying of cancer in a government observation facility. His journal is later discovered by the biologist in the lighthouse."
        },
        {
          "name": "The Crawler",
          "slug": "the-crawler",
          "aliases": [],
          "role": "Unknown entity",
          "summary": "A mysterious organism that continuously writes living script on the walls of the Tower and physically attacks the biologist with a barrage of light and pain."
        },
        {
          "name": "The moaning creature",
          "slug": "the-moaning-creature",
          "aliases": [],
          "role": "Delirium entity",
          "summary": "A creature the biologist imagines comforting and murmuring to in an unknown language during her delirium."
        }
      ],
      "frameworks_mapped": [
        "Protocol Fiction Mapping",
        "Actantial Model",
        "Todorov's Equilibrium",
        "The Freytag Pyramid",
        "Propp's Morphology",
        "Genette's Narrative",
        "The Monomyth",
        "Dan Harmon",
        "Save the Cat",
        "Kishōtenketsu",
        "The Three-Act Structure"
      ],
      "score_reliability": {
        "state": "contested",
        "threshold": 0.2,
        "runs_total": 16,
        "versions_compared": [
          "2.5"
        ],
        "max_spread": 0.2,
        "contested": [
          {
            "axis": "time_linearity",
            "version": "2.5",
            "spread": 0.2,
            "low": {
              "label": "NTSMR-2.5-balanced-glm-5+deepseek-v3.2",
              "model": "balanced-routing",
              "effort": "?",
              "value": 0.25
            },
            "high": {
              "label": "NTSMR-2.5-claude-sonnet-4-6-low",
              "model": "claude-sonnet-4-6",
              "effort": "low",
              "value": 0.45
            }
          }
        ]
      }
    },
    {
      "slug": "ted_chiang_anxiety_is_the_dizziness_of_freedom",
      "title": "Anxiety Is the Dizziness of Freedom",
      "author": "Ted Chiang",
      "year": 2019,
      "medium": "short_story",
      "genre_tags": [],
      "tropes": [],
      "quadrant_scores": {
        "time_linearity": 0.28,
        "pacing_velocity": 0.72,
        "threat_scale": 0.32,
        "protagonist_fate": 0.58,
        "conflict_style": 0.78,
        "price_type": 0.72
      },
      "provenance": {
        "analysis_run": "NTSMR-2.5-claude-sonnet-4-6-low",
        "analysis_body_sha256": "67115195010318e1a398770cad0e6fffdc934a055de620839f0fa29dbe2188ac",
        "synthesis": {
          "path": "nartopo-tools/artifacts/ted_chiang_anxiety_is_the_dizziness_of_freedom.md.ntsmr-2-5-claude-sonnet-4-6-low.synthesis.json",
          "sha256": "069462776c5cfc218e2765089e6dcabc5aea570f70496bb91c8e278cdadce7c0"
        },
        "report": {
          "path": "nartopo-tools/artifacts/ted_chiang_anxiety_is_the_dizziness_of_freedom.md.ntsmr-2-5-claude-sonnet-4-6-low.report.json",
          "sha256": "43deebe2741c284fcc28eecd359cb8b66c5a412e93317c0013bc689f37914f11"
        },
        "source": {
          "path": "Ted Chiang/Anxiety Is the Dizziness of Freedom.txt",
          "sha256": "3d18c5dde48326ada7e921a2553d0f8d99217459ea39209bfb3e720668645acb",
          "digest_observed_at": "2026-09-09",
          "digest_at_analysis_run": null,
          "edition": null,
          "edition_status": "unresolved"
        },
        "pipeline_revision_at_run": null,
        "verification": {
          "source": "unverified",
          "human_review": "unreviewed",
          "bibliography": "unverified"
        },
        "issues": [],
        "todorov_status": "recovered-from-synthesis",
        "work_identity": {
          "title": "Anxiety Is the Dizziness of Freedom",
          "author": "Ted Chiang",
          "year": 2019
        }
      },
      "ntsmr": {
        "version": "2.5",
        "primary_run_label": "NTSMR-2.5-claude-sonnet-4-6-low",
        "runs": {
          "NTSMR-2.3-gemini-3.1-pro-preview": {
            "pipeline_version": "2.3",
            "backend": "gemini",
            "model": "gemini-3.1-pro-preview",
            "scores": {
              "time_linearity": 0.65,
              "pacing_velocity": 0.8,
              "threat_scale": 0.55,
              "protagonist_fate": 0.2,
              "conflict_style": 0.85,
              "price_type": 0.9
            },
            "score_space": "site-v1"
          },
          "NTSMR-2.3-claude-sonnet-4-6-low": {
            "pipeline_version": "2.3",
            "backend": "claude",
            "model": "claude-sonnet-4-6",
            "scores": {
              "time_linearity": 0.45,
              "pacing_velocity": 0.72,
              "threat_scale": 0.55,
              "protagonist_fate": 0.35,
              "conflict_style": 0.75,
              "price_type": 0.85
            },
            "score_space": "site-v1",
            "reasoning_effort": "low"
          },
          "NTSMR-2.4-claude-sonnet-4-6-low": {
            "pipeline_version": "2.4",
            "backend": "claude",
            "model": "claude-sonnet-4-6",
            "scores": {
              "time_linearity": 0.35,
              "pacing_velocity": 0.45,
              "threat_scale": 0.2,
              "protagonist_fate": 0.32,
              "conflict_style": 0.7,
              "price_type": 0.65
            },
            "score_space": "site-v1",
            "reasoning_effort": "low"
          },
          "NTSMR-2.4-gemini-3.1-pro-preview": {
            "pipeline_version": "2.4",
            "backend": "gemini",
            "model": "gemini-3.1-pro-preview",
            "scores": {
              "time_linearity": 0.35,
              "pacing_velocity": 0.45,
              "threat_scale": 0.2,
              "protagonist_fate": 0.32,
              "conflict_style": 0.7,
              "price_type": 0.65
            },
            "score_space": "site-v1"
          },
          "NTSMR-2.5-claude-sonnet-4-6-low": {
            "pipeline_version": "2.5",
            "backend": "claude",
            "model": "claude-sonnet-4-6",
            "scores": {
              "time_linearity": 0.28,
              "pacing_velocity": 0.72,
              "threat_scale": 0.32,
              "protagonist_fate": 0.58,
              "conflict_style": 0.78,
              "price_type": 0.72
            },
            "score_space": "site-v1",
            "reasoning_effort": "low"
          },
          "NTSMR-2.5-balanced-glm-5+deepseek-v3.2": {
            "pipeline_version": "2.5",
            "backend": "openrouter",
            "model": "balanced-routing",
            "scores": {
              "time_linearity": 0.25,
              "pacing_velocity": 0.75,
              "threat_scale": 0.3,
              "protagonist_fate": 0.6,
              "conflict_style": 0.8,
              "price_type": 0.7
            },
            "score_space": "site-v1",
            "score_only": true,
            "source_run_label": "NTSMR-2.5-claude-sonnet-4-6-low"
          }
        }
      },
      "todorov_stages": {
        "equilibrium": "Nat works at SelfTalk buying and selling prisms while running cons with Morrow on the side; Dana facilitates a support group for prism-addicted clients while carrying unresolved guilt over Vinessa; the prism economy functions as a normalized commercial and psychological landscape.",
        "disruption": "Glenn Oehlsen shoots Morrow at SelfTalk after discovering his mother was defrauded, eliminating Nat's criminal partner and forcing her to run the Otsuka operation alone while also destabilizing the group members' psychological coping mechanisms through escalating prism dependency.",
        "recognition": "Nat receives word via prism from parallel Morrow that her Morrow has been shot dead, and parallel Morrow proposes they proceed with the Otsuka deal with Nat running her end alone; Dana watches video files from 15-year-old prisms showing that in every parallel branch Vinessa's life derails regardless of Dana's specific actions.",
        "repair": "Nat takes over the Otsuka deal solo, traveling to Los Angeles and navigating Ornella's vetting process to complete the transaction connecting Scott and Roderick across branches; Dana processes the parallel-branch evidence and recognizes that Vinessa's trajectory was not caused by her betrayal.",
        "new_equilibrium": "Scott and Roderick are reunited across branches at enormous cost, completing the con; Dana is released from decades of self-imposed guilt upon recognizing that the same outcome occurred across branches where she acted differently, fundamentally altering her relationship to her past and her therapeutic work."
      },
      "characters": [
        {
          "name": "Morrow",
          "slug": "morrow",
          "aliases": [],
          "role": "Owner of SelfTalk, Scammer",
          "summary": "Runs SelfTalk and devises scams to exploit prism users, including tricking an elderly woman out of her money before being murdered by her son."
        },
        {
          "name": "Nat",
          "slug": "nat",
          "aliases": [],
          "role": "Employee at SelfTalk, Undercover Support Group Member",
          "summary": "A recovering addict who works with Morrow, infiltrating a support group to manipulate members into selling their prisms. She eventually brokers a major deal alone after Morrow's death."
        },
        {
          "name": "Jessica Oehlsen",
          "slug": "jessica-oehlsen",
          "aliases": [
            "Mrs. Oehlsen",
            "Glenn"
          ],
          "role": "Jessica's Son, Murderer",
          "summary": "An elderly woman manipulated by Morrow into transferring her money to a dummy account under the guise of sending it to her parallel self to avoid a fake tax."
        },
        {
          "name": "Lyle",
          "slug": "lyle",
          "aliases": [],
          "role": "Support Group Member",
          "summary": "A member of the support group who owns a valuable prism connecting to a timeline where Scott Otsuka died instead of Roderick Ferris. Nat manipulates him into selling it."
        },
        {
          "name": "Scott Otsuka",
          "slug": "scott-otsuka",
          "aliases": [
            "Scott"
          ],
          "role": "Wealthy Widower, Pop Singer",
          "summary": "A grieving pop singer who lost his husband Roderick in a car crash. He purchases a prism from Nat to communicate with a timeline where Roderick survived."
        },
        {
          "name": "Roderick Ferris",
          "slug": "roderick-ferris",
          "aliases": [
            "Roderick"
          ],
          "role": "Scott's Husband, Movie Star",
          "summary": "Scott Otsuka's husband who died in the primary timeline's car crash, but survived in the parallel timeline connected by Lyle's former prism."
        },
        {
          "name": "Dana",
          "slug": "dana",
          "aliases": [],
          "role": "Support Group Facilitator, Therapist",
          "summary": "A therapist running the prism support group. She harbors intense guilt for framing her childhood friend Vinessa for drug possession, though later discovers Vinessa's delinquency was inevitable."
        },
        {
          "name": "Vinessa",
          "slug": "vinessa",
          "aliases": [],
          "role": "Dana's Former Best Friend",
          "summary": "Dana's former friend whose life spiraled into delinquency and drug use after a high school incident. She harbors a grudge against Dana and manipulates her guilt for financial support."
        },
        {
          "name": "Zareenah",
          "slug": "zareenah",
          "aliases": [],
          "role": "Support Group Member",
          "summary": "A member of the support group who decides to sell her prism because it makes her feel she constantly has to prove something to her paraself."
        },
        {
          "name": "Kevin",
          "slug": "kevin",
          "aliases": [],
          "role": "Support Group Member",
          "summary": "An anxious support group member who defends his reliance on his prism and questions whether parallel timelines invalidate the meaning of personal choices."
        },
        {
          "name": "Ornella",
          "slug": "ornella",
          "aliases": [],
          "role": "Personal Assistant",
          "summary": "Scott Otsuka's personal assistant who brokers the high-stakes prism transaction with Nat and encourages Nat to reconsider her line of work."
        }
      ],
      "frameworks_mapped": [
        "Protocol Fiction Mapping",
        "Actantial Model",
        "Todorov's Equilibrium",
        "The Freytag Pyramid",
        "Propp's Morphology",
        "Genette's Narrative",
        "The Monomyth",
        "Dan Harmon",
        "Save the Cat",
        "Kishōtenketsu",
        "The Three-Act Structure",
        "Lévi-Strauss's Binary Oppositions",
        "Cognitive Estrangement",
        "Bakhtin's Chronotope",
        "Aristotelian Poetics",
        "Jungian Archetypal Analysis",
        "Genette's Transtextuality"
      ],
      "score_reliability": {
        "state": "replicated-agree",
        "threshold": 0.2,
        "runs_total": 6,
        "versions_compared": [
          "2.5"
        ],
        "max_spread": 0.03,
        "contested": []
      }
    },
    {
      "slug": "jeff_vandermeer_authority",
      "title": "Authority",
      "author": "Jeff VanderMeer",
      "year": 2014,
      "medium": "book",
      "genre_tags": [
        "science fiction",
        "new weird"
      ],
      "tropes": [],
      "quadrant_scores": {
        "time_linearity": 0.4,
        "pacing_velocity": 0.7,
        "threat_scale": 0.65,
        "protagonist_fate": 0.7,
        "conflict_style": 0.7,
        "price_type": 0.75
      },
      "baseline_quadrant_scores": {
        "time_linearity": 0.45,
        "pacing_velocity": 0.85,
        "threat_scale": 0.95,
        "protagonist_fate": 0.85,
        "conflict_style": 0.85,
        "price_type": 0.9
      },
      "provenance": {
        "analysis_run": "NTSMR-2.5-claude-sonnet-4-6-low",
        "analysis_body_sha256": "107a3cf57712f4ca43e692037398f646eb8cf451330df1a17676967ac41f40b5",
        "synthesis": {
          "path": "nartopo-tools/artifacts/jeff_vandermeer_authority.md.ntsmr-2-5-claude-sonnet-4-6-low.synthesis.json",
          "sha256": "f653e20e63b98d5791399f90d4f4a900b3aa21646144ffada56efff0751e4315"
        },
        "report": {
          "path": "nartopo-tools/artifacts/jeff_vandermeer_authority.md.ntsmr-2-5-claude-sonnet-4-6-low.report.json",
          "sha256": "17ca77ff7e902e4f7b11ff919e2f1dd2557dde0a5b7dd2e435f9abf9eeca1bef"
        },
        "source": {
          "path": "Jeff VanderMeer/Authority (2014).txt",
          "sha256": "bf487c184aecf1ea779f04cf9b2014f854ec4ca35d382b89272137166da0df20",
          "digest_observed_at": "2026-09-09",
          "digest_at_analysis_run": null,
          "edition": null,
          "edition_status": "unresolved"
        },
        "pipeline_revision_at_run": null,
        "verification": {
          "source": "unverified",
          "human_review": "unreviewed",
          "bibliography": "unverified"
        },
        "issues": [],
        "todorov_status": "recovered-from-synthesis",
        "work_identity": {
          "title": "Authority",
          "author": "Jeff VanderMeer",
          "year": 2014
        }
      },
      "ntsmr": {
        "version": "2.5",
        "primary_run_label": "NTSMR-2.5-claude-sonnet-4-6-low",
        "runs": {
          "NTSMR-2.3-gemini-3.1-pro-preview": {
            "pipeline_version": "2.3",
            "backend": "gemini",
            "model": "gemini-3.1-pro-preview",
            "scores": {
              "time_linearity": 0.3,
              "pacing_velocity": 0.8,
              "threat_scale": 0.9,
              "protagonist_fate": 0.8,
              "conflict_style": 0.7,
              "price_type": 0.9
            },
            "score_space": "site-v1"
          },
          "NTSMR-2.3-claude-sonnet-4-6-low": {
            "pipeline_version": "2.3",
            "backend": "claude",
            "model": "claude-sonnet-4-6",
            "scores": {
              "time_linearity": 0.3,
              "pacing_velocity": 0.78,
              "threat_scale": 0.82,
              "protagonist_fate": 0.72,
              "conflict_style": 0.8,
              "price_type": 0.85
            },
            "score_space": "site-v1",
            "reasoning_effort": "low"
          },
          "NTSMR-2.4-claude-sonnet-4-6-low": {
            "pipeline_version": "2.4",
            "backend": "claude",
            "model": "claude-sonnet-4-6",
            "scores": {
              "time_linearity": 0.28,
              "pacing_velocity": 0.62,
              "threat_scale": 0.72,
              "protagonist_fate": 0.78,
              "conflict_style": 0.68,
              "price_type": 0.72
            },
            "score_space": "site-v1",
            "reasoning_effort": "low"
          },
          "NTSMR-2.5-claude-sonnet-4-6-low": {
            "pipeline_version": "2.5",
            "backend": "claude",
            "model": "claude-sonnet-4-6",
            "scores": {
              "time_linearity": 0.4,
              "pacing_velocity": 0.7,
              "threat_scale": 0.65,
              "protagonist_fate": 0.7,
              "conflict_style": 0.7,
              "price_type": 0.75
            },
            "score_space": "site-v1",
            "reasoning_effort": "low"
          },
          "NTSMR-2.5-gemini-3.1-pro-preview": {
            "pipeline_version": "2.5",
            "backend": "gemini",
            "model": "gemini-3.1-pro-preview",
            "scores": {
              "time_linearity": 0.4,
              "pacing_velocity": 0.7,
              "threat_scale": 0.65,
              "protagonist_fate": 0.7,
              "conflict_style": 0.7,
              "price_type": 0.75
            },
            "score_space": "site-v1"
          },
          "NTSMR-2.5-balanced-glm-5+deepseek-v3.2": {
            "pipeline_version": "2.5",
            "backend": "openrouter",
            "model": "balanced-routing",
            "scores": {
              "time_linearity": 0.25,
              "pacing_velocity": 0.7,
              "threat_scale": 0.6,
              "protagonist_fate": 0.65,
              "conflict_style": 0.7,
              "price_type": 0.75
            },
            "score_space": "site-v1",
            "score_only": true,
            "source_run_label": "NTSMR-2.5-claude-sonnet-4-6-low"
          }
        }
      },
      "todorov_stages": {
        "equilibrium": "Control arrives at the Southern Reach as its newly appointed director, inheriting a dysfunctional but still-functioning institutional apparatus: staff in place, expeditions on record, the biologist in custody, and a chain of command running up to Central through the Voice. The Southern Reach operates as a containment and research organization, however compromised, with Control positioned to impose order.",
        "disruption": "The institutional order fractures progressively — Grace removes assets before Control can act, the biologist proves immune to hypnosis and escapes, Whitby is revealed as psychologically colonized and living in a secret loft filled with monstrous paintings, and finally the physical building itself transforms: Control reaches for the science division doors and finds only soft, breathing wall where they should be, signaling that Area X has fully breached the Southern Reach's material reality.",
        "recognition": "Control synthesizes the accumulated evidence into a coherent horror: the Southern Reach was never a redoubt against Area X but a slow incubator for it. The eleventh expedition survivors were vectors of contamination, the prior director was the lighthouse keeper's child hiding in plain sight on the wall, and Whitby functioned as a human beacon drawing the transformed director back. The institution was compromised from within across decades without anyone fully grasping it.",
        "repair": "Operating under the field alias John, Control flees the Southern Reach during the Area X incursion. He seeks the biologist, traveling north toward wilderness — not because he believes he can reverse the contamination, but because she chose Area X freely and represents the only legible agency remaining. He arms himself, processes Whitby's terroir manuscript, and attempts to survive by moving away from the collapsed institutional structure rather than restoring it.",
        "new_equilibrium": "The novel closes with John watching a distant figure on rocks, tentatively identifying her as the biologist. The Southern Reach is lost, the border has expanded, and the institutional framework that defined Control's role no longer exists. The new status quo is one of irreversible contamination: Area X has consumed the agency meant to contain it, and Control — stripped of his title, his institutional leverage, and his mother's surveillance — exists as a solitary figure at the edge of the transformed world."
      },
      "characters": [
        {
          "name": "Control",
          "slug": "control",
          "aliases": [
            "John",
            "John Rodriguez",
            "Director"
          ],
          "role": "Director of the Southern Reach / Protagonist",
          "summary": "The protagonist who suffers a breakdown, flees the compromised Southern Reach, meets his mother for a debrief, and goes off the grid to track the escaped biologist in the northern wilderness."
        },
        {
          "name": "The Biologist",
          "slug": "the-biologist",
          "aliases": [
            "Ghost Bird"
          ],
          "role": "12th Expedition Survivor / Returnee",
          "summary": "A terse, guarded survivor of the 12th expedition into Area X who is being interrogated by Control. She claims to be resistant to hypnosis and says her last memory is of drowning."
        },
        {
          "name": "The Former Director",
          "slug": "the-former-director",
          "aliases": [
            "Cynthia"
          ],
          "role": "Former Director of the Southern Reach",
          "summary": "Control's missing predecessor, described as a hoarder who went on the 12th expedition, leaving behind a chaotic office, a dead mouse, a strange plant, and manic writings on a hidden wall."
        },
        {
          "name": "Mother",
          "slug": "mother",
          "aliases": [
            "The Voice"
          ],
          "role": "Control's superior at Central",
          "summary": "Control's mother and superior at Central, who meets him at his house to explain the failure of containment, her secret faction, and the escape of the biologist."
        },
        {
          "name": "Whitby",
          "slug": "whitby",
          "aliases": [],
          "role": "Southern Reach Scientist",
          "summary": "An anxious, erratic staff member who displays strange behaviors, such as suffering unexplained anguish in a storage closet and holding odd facts about biology."
        },
        {
          "name": "Cheney",
          "slug": "cheney",
          "aliases": [],
          "role": "Southern Reach Staff Member",
          "summary": "An agreeable, talkative staff member who serves as a sort of informal liaison to Control, answering questions about past expeditions and figures like Lowry."
        },
        {
          "name": "Davidson",
          "slug": "davidson",
          "aliases": [],
          "role": "Scientist",
          "summary": "A scientist who corroborates Cheney's theory about the border being created by a second event."
        },
        {
          "name": "Grace",
          "slug": "grace",
          "aliases": [
            "Assistant Director"
          ],
          "role": "Assistant Director of the Southern Reach",
          "summary": "The fiercely protective and often hostile assistant director who confronts Control with his past but eventually shares crucial revelations about the former director's motives."
        },
        {
          "name": "Jessica Hsyu",
          "slug": "jessica-hsyu",
          "aliases": [
            "Hsyu"
          ],
          "role": "Southern Reach Staff Member",
          "summary": "A linguist who works in the subdepartment and attends Control's awkward meeting in his office without holding security clearance for deeper biological samples."
        },
        {
          "name": "Lowry",
          "slug": "lowry",
          "aliases": [],
          "role": "Central Official / Expedition Survivor",
          "summary": "A member of Central who hypnotized Control and is part of the mother's internal faction, though he currently hides from the reality of the situation."
        },
        {
          "name": "Janitor",
          "slug": "janitor",
          "aliases": [],
          "role": "Cleaning Staff",
          "summary": "A small, wizened man with huge glasses and light green overalls whose presence sparks a realization in Control."
        },
        {
          "name": "Chorry",
          "slug": "chorry",
          "aliases": [
            "Chorry-Chorrykins"
          ],
          "role": "Control's Pet",
          "summary": "Control's dog, who wisely stays inside when Control throws a phone into the dark backyard."
        },
        {
          "name": "Saul Evans",
          "slug": "saul-evans",
          "aliases": [],
          "role": "Lighthouse keeper",
          "summary": "A lighthouse keeper seen in a photograph with the former director as a child."
        }
      ],
      "frameworks_mapped": [
        "Protocol Fiction Mapping",
        "Actantial Model",
        "Todorov's Equilibrium",
        "The Freytag Pyramid",
        "Propp's Morphology",
        "Genette's Narrative",
        "The Monomyth",
        "Dan Harmon",
        "Save the Cat",
        "Kishōtenketsu",
        "The Three-Act Structure"
      ],
      "score_reliability": {
        "state": "replicated-agree",
        "threshold": 0.2,
        "runs_total": 6,
        "versions_compared": [
          "2.5"
        ],
        "max_spread": 0.15,
        "contested": []
      }
    },
    {
      "slug": "lois_mcmaster_bujold_barrayar",
      "title": "Barrayar",
      "author": "Lois McMaster Bujold",
      "year": 1991,
      "medium": "book",
      "genre_tags": [],
      "tropes": [],
      "quadrant_scores": {
        "time_linearity": 0.08,
        "pacing_velocity": 0.45,
        "threat_scale": 0.72,
        "protagonist_fate": 0.38,
        "conflict_style": 0.45,
        "price_type": 0.4
      },
      "provenance": {
        "analysis_run": "NTSMR-2.5-claude-sonnet-4-6-low",
        "analysis_body_sha256": "7481b60d0550ddc6b4cc565457bc98d4c24d9b6a71c412471bd97bad68741dfa",
        "synthesis": {
          "path": "nartopo-tools/artifacts/lois_mcmaster_bujold_barrayar.md.ntsmr-2-5-claude-sonnet-4-6-low.synthesis.json",
          "sha256": "3f7f587ba236091bbfca68ddf00c8e97dbd63bc4b328850d55340fcaf8cd8f50"
        },
        "report": {
          "path": "nartopo-tools/artifacts/lois_mcmaster_bujold_barrayar.md.ntsmr-2-5-claude-sonnet-4-6-low.report.json",
          "sha256": "33eef2c32604fc6d241b5682ef060841c1061fb9d7f9973f33110e20225f5810"
        },
        "source": {
          "path": "Lois McMaster Bujold/Barrayar.txt",
          "sha256": "c2daaffb58a9c191e3f44bf0b15ece013f50bead9bc7b878b5e1524a8b1ff983",
          "digest_observed_at": "2026-09-09",
          "digest_at_analysis_run": null,
          "edition": null,
          "edition_status": "unresolved"
        },
        "pipeline_revision_at_run": null,
        "verification": {
          "source": "unverified",
          "human_review": "unreviewed",
          "bibliography": "unverified"
        },
        "issues": [],
        "todorov_status": "recovered-from-synthesis",
        "work_identity": {
          "title": "Barrayar",
          "author": "Lois McMaster Bujold",
          "year": 1991
        }
      },
      "ntsmr": {
        "version": "2.5",
        "primary_run_label": "NTSMR-2.5-claude-sonnet-4-6-low",
        "runs": {
          "NTSMR-2.4-claude-sonnet-4-6-low": {
            "pipeline_version": "2.4",
            "backend": "claude",
            "model": "claude-sonnet-4-6",
            "scores": {
              "time_linearity": 0.18,
              "pacing_velocity": 0.38,
              "threat_scale": 0.65,
              "protagonist_fate": 0.28,
              "conflict_style": 0.42,
              "price_type": 0.32
            },
            "score_space": "site-v1",
            "reasoning_effort": "low"
          },
          "NTSMR-2.5-claude-sonnet-4-6-low": {
            "pipeline_version": "2.5",
            "backend": "claude",
            "model": "claude-sonnet-4-6",
            "scores": {
              "time_linearity": 0.08,
              "pacing_velocity": 0.45,
              "threat_scale": 0.72,
              "protagonist_fate": 0.38,
              "conflict_style": 0.45,
              "price_type": 0.4
            },
            "score_space": "site-v1",
            "reasoning_effort": "low"
          },
          "NTSMR-2.5-balanced-glm-5+deepseek-v3.2": {
            "pipeline_version": "2.5",
            "backend": "openrouter",
            "model": "balanced-routing",
            "scores": {
              "time_linearity": 0.1,
              "pacing_velocity": 0.5,
              "threat_scale": 0.8,
              "protagonist_fate": 0.32,
              "conflict_style": 0.5,
              "price_type": 0.4
            },
            "score_space": "site-v1",
            "score_only": true,
            "source_run_label": "NTSMR-2.5-claude-sonnet-4-6-low"
          }
        }
      },
      "todorov_stages": {
        "equilibrium": "Aral Vorkosigan has been formally installed as Lord Regent, and Cordelia has settled into domestic life at Vorkosigan House as pregnant regent-consort, navigating Barrayaran aristocratic culture while the new regency establishes itself with broad count support and institutional legitimacy.",
        "disruption": "Vordarian's coup seizes Vorbarr Sultana and the Imperial Residence; a crashed ImpSec lightflyer bearing Negri and Emperor Gregor signals the collapse of the established order, and the subsequent theft of Miles's uterine replicator creates a six-day deadline before his death.",
        "recognition": "Cordelia and Aral recognize the full scope of the threat when Koudelka briefs them on Vordarian's hold on the capital, Vordarian's propaganda broadcast reveals his coerced Council of Counts declaration outlawing Aral, and Captain Vaagen arrives badly injured to report that the replicator has been taken to the Imperial Residence with less than six days of nutrient solution remaining.",
        "repair": "Cordelia leads a direct infiltration of the Imperial Residence with Bothari and Droushnakovi, retrieves the real uterine replicator from where Vordarian has hidden it, and eliminates Vordarian himself—delivering his head to Aral at Tanery Base to collapse the remaining coup checkpoints.",
        "new_equilibrium": "The loyalist regency is restored; Cordelia is appointed co-guardian of Emperor Gregor with real household authority, Miles is born and survives despite his physical abnormalities, Bothari is assigned as his permanent bodyguard, and the five-year epilogue shows a settled domestic order at Vorkosigan Surleau with Miles running loose and beginning to win over Count Piotr."
      },
      "characters": [
        {
          "name": "Cordelia Naismith Vorkosigan",
          "slug": "cordelia-naismith-vorkosigan",
          "aliases": [
            "milady",
            "Captain Naismith",
            "regent-consort",
            "Vorkosigan",
            "the Regent",
            "the Admiral",
            "Lord Vorkosigan",
            "Lord Regent",
            "Admiral Vorkosigan",
            "the Count",
            "old Count",
            "Piotr",
            "General Count Vorkosigan",
            "the old man",
            "Gen'ral",
            "Count Piotr",
            "dear Captain",
            "Lady Vorkosigan"
          ],
          "role": "actantial opponent/helper",
          "summary": "POV character; navigates the Piotr confrontation, the coup's outbreak, the fugitive flight, and the revelation of Miles's capture, ultimately orchestrating the infiltration plan."
        },
        {
          "name": "Koudelka",
          "slug": "koudelka",
          "aliases": [
            "Kou",
            "Lieutenant Koudelka"
          ],
          "role": "actantial helper",
          "summary": "Aral's aide; nerve-damaged leg; found in a suicidal reverie with his swordstick; shares mutual vulnerability with Cordelia; participates in capturing Vorhalas."
        },
        {
          "name": "Illyan",
          "slug": "illyan",
          "aliases": [
            "Commander Illyan",
            "Simon Illyan",
            "Simon",
            "Captain Illyan"
          ],
          "role": "actantial helper",
          "summary": "ImpSec officer accompanying Aral; manages security and investigates the assassination attempt; initially dismissive of Cordelia but adjusts."
        },
        {
          "name": "Vidal Vordarian",
          "slug": "vidal-vordarian",
          "aliases": [
            "Count Vordarian",
            "Commodore Count Vordarian",
            "Commodore Vordarian",
            "Emperor Vidal",
            "m'lord"
          ],
          "role": "actantial opponent",
          "summary": "Coup leader who baited Cordelia's infiltration with a decoy replicator; captured, inadvertently confesses involvement in the Vorhalas poisoning, and is executed by Bothari."
        },
        {
          "name": "Vortala",
          "slug": "vortala",
          "aliases": [
            "Prime Minister Vortala"
          ],
          "role": "actantial helper",
          "summary": "Prime Minister who breaks out of Vordarian's house arrest and arrives at Tanery Base; analyzes the propaganda broadcast's legal maneuver."
        },
        {
          "name": "Captain Lord Padma Xav Vorpatril",
          "slug": "captain-lord-padma-xav-vorpatril",
          "aliases": [
            "Vorpatril",
            "Lord Vorpatril",
            "Lady Vorpatril"
          ],
          "role": "supporting",
          "summary": "Aral's first cousin and new staff member; escorts Cordelia to the Council session; cheerful and forthcoming with background information."
        },
        {
          "name": "Droushnakovi",
          "slug": "droushnakovi",
          "aliases": [
            "Drou",
            "Droushie"
          ],
          "role": "helper/bodyguard",
          "summary": "Cordelia's bodyguard; wrongly accused of comconsole sabotage, later reveals knowledge of secret Residence entry routes and proposes the infiltration mission."
        },
        {
          "name": "Emperor Gregor",
          "slug": "emperor-gregor",
          "aliases": [
            "Prince Gregor",
            "the boy emperor"
          ],
          "role": "actantial object",
          "summary": "Child emperor to whom Cordelia swears fealty; closely supported by his mother Kareen; a symbolic center of the new political order."
        },
        {
          "name": "Captain Negri",
          "slug": "captain-negri",
          "aliases": [],
          "role": "supporting",
          "summary": "Chief of Imperial Security; the only person who visibly weeps at Ezar's death, revealing hidden personal loyalty to the old emperor."
        },
        {
          "name": "Princess Kareen",
          "slug": "princess-kareen",
          "aliases": [
            "Princess-dowager Kareen"
          ],
          "role": "actantial object",
          "summary": "Emperor Gregor's mother; appears in Vordarian's broadcast beside him, expression unreadable; Drou's loyalty to her motivates the infiltration plan."
        },
        {
          "name": "Emperor Ezar",
          "slug": "emperor-ezar",
          "aliases": [
            "Ezar Vorbarra"
          ],
          "role": "background",
          "summary": "Dying emperor whose death triggers the regency; present via holovid at the Council session; dies during the night watch described in chunk-1-s5."
        },
        {
          "name": "Bothari",
          "slug": "bothari",
          "aliases": [
            "Sergeant Bothari",
            "Sergeant"
          ],
          "role": "actantial helper",
          "summary": "Declares loyalty to Cordelia alone, is banished by Piotr, and is reassigned as Miles's permanent bodyguard; in the epilogue actively hunts for the missing child."
        },
        {
          "name": "Evon Vorhalas",
          "slug": "evon-vorhalas",
          "aliases": [
            "Vorhalas"
          ],
          "role": "opponent",
          "summary": "Son of Count Vorhalas; fires the soltoxin gas grenade as revenge for his brother Carl's execution; captured by Drou and Koudelka; confronted by Aral."
        },
        {
          "name": "Captain Vaagen",
          "slug": "captain-vaagen",
          "aliases": [
            "Dr. Vaagen"
          ],
          "role": "actantial helper",
          "summary": "Physician who managed Miles's replicator; arrives at Tanery Base badly injured, reports the replicator's capture and gives Cordelia the six-day starvation deadline."
        },
        {
          "name": "Dr. Ritter",
          "slug": "dr-ritter",
          "aliases": [],
          "role": "helper",
          "summary": "Surgeon who performs the fetal transfer to the uterine replicator; calm at the hands despite visible nerves."
        },
        {
          "name": "Dr. Henri",
          "slug": "dr-henri",
          "aliases": [],
          "role": "helper",
          "summary": "Biologically trained physician on the replicator team; shows Piotr the lab honestly, which precipitates the confrontation."
        },
        {
          "name": "Negri",
          "slug": "negri",
          "aliases": [],
          "role": "actantial helper/donor",
          "summary": "ImpSec chief who flies the wounded Emperor Gregor to safety and dies delivering news of Vordarian's coup."
        },
        {
          "name": "Kly",
          "slug": "kly",
          "aliases": [
            "the old man",
            "the Major"
          ],
          "role": "actantial helper/donor",
          "summary": "Weatherworn old postal carrier and Yuri's War veteran who agrees to shelter Cordelia, Bothari, and Gregor at Piotr's request."
        },
        {
          "name": "Esterhazy",
          "slug": "esterhazy",
          "aliases": [],
          "role": "actantial helper",
          "summary": "Armsman at the Vorkosigan estate who accompanies the fugitive group and tends the horses during the night flight."
        },
        {
          "name": "Admiral Kanzian",
          "slug": "admiral-kanzian",
          "aliases": [],
          "role": "actantial helper",
          "summary": "Senior naval officer who joins the loyalist cause at Tanery Base, forming the nucleus of Vorkosigan's new general staff."
        },
        {
          "name": "Aral",
          "slug": "aral",
          "aliases": [
            "m'lord"
          ],
          "role": "husband/regent",
          "summary": "Responds to Piotr's assault with controlled near-lethal verbal precision; in the epilogue supports Cordelia and shares quiet confidence in Miles's future."
        },
        {
          "name": "Miles",
          "slug": "miles",
          "aliases": [
            "Lord Miles",
            "the kid",
            "boychick"
          ],
          "role": "object/future subject",
          "summary": "Infant at chapter's end; hyperactive five-year-old in the epilogue, already negotiating with Piotr over horses and disassembling refrigeration units."
        }
      ],
      "frameworks_mapped": [
        "Protocol Fiction Mapping",
        "Actantial Model",
        "Todorov's Equilibrium",
        "The Freytag Pyramid",
        "Propp's Morphology",
        "Genette's Narrative",
        "The Monomyth",
        "Dan Harmon",
        "Save the Cat",
        "Kishōtenketsu",
        "The Three-Act Structure",
        "Lévi-Strauss's Binary Oppositions",
        "Cognitive Estrangement",
        "Bakhtin's Chronotope",
        "Aristotelian Poetics",
        "Jungian Archetypal Analysis",
        "Genette's Transtextuality"
      ],
      "score_reliability": {
        "state": "replicated-agree",
        "threshold": 0.2,
        "runs_total": 3,
        "versions_compared": [
          "2.5"
        ],
        "max_spread": 0.08,
        "contested": []
      }
    },
    {
      "slug": "stanislaw_lem_being_inc",
      "title": "Being Inc.",
      "author": "Stanislaw Lem",
      "year": 1971,
      "medium": "short_story",
      "genre_tags": [],
      "tropes": [],
      "quadrant_scores": {
        "time_linearity": 0.28,
        "pacing_velocity": 0.78,
        "threat_scale": 0.88,
        "protagonist_fate": 0.75,
        "conflict_style": 0.72,
        "price_type": 0.82
      },
      "provenance": {
        "analysis_run": "NTSMR-2.5-claude-sonnet-4-6-low",
        "analysis_body_sha256": "11b4c9bfb2992b3bee1d75051258ad9bd10e7040a8c80ecfc720eb97daf7eccb",
        "synthesis": {
          "path": "nartopo-tools/artifacts/stanislaw_lem_being_inc.md.ntsmr-2-5-claude-sonnet-4-6-low.synthesis.json",
          "sha256": "73f466954b93c6f78ef050b87a5d272d6479bdb9c6639a1ee218cec037f04d02"
        },
        "report": {
          "path": "nartopo-tools/artifacts/stanislaw_lem_being_inc.md.ntsmr-2-5-claude-sonnet-4-6-low.report.json",
          "sha256": "a88354339c47dcd7541f4f7708bb8960288cebd701dcbd46e0548390eee4bcee"
        },
        "source": {
          "path": "Stanislaw Lem/Being Inc..txt",
          "sha256": "063ebff2774f8b454426c98811aad02524f701a74e58789e36626b7d59cbf2e3",
          "digest_observed_at": "2026-09-09",
          "digest_at_analysis_run": null,
          "edition": null,
          "edition_status": "unresolved"
        },
        "pipeline_revision_at_run": null,
        "verification": {
          "source": "unverified",
          "human_review": "unreviewed",
          "bibliography": "unverified"
        },
        "issues": [],
        "todorov_status": "recovered-from-synthesis",
        "work_identity": {
          "title": "Being Inc.",
          "author": "Stanislaw Lem",
          "year": 1971
        }
      },
      "ntsmr": {
        "version": "2.5",
        "primary_run_label": "NTSMR-2.5-claude-sonnet-4-6-low",
        "runs": {
          "NTSMR-2.3-gemini-3.1-pro-preview": {
            "pipeline_version": "2.3",
            "backend": "gemini",
            "model": "gemini-3.1-pro-preview",
            "scores": {
              "time_linearity": 0.8,
              "pacing_velocity": 0.9,
              "threat_scale": 1,
              "protagonist_fate": 1,
              "conflict_style": 0.8,
              "price_type": 1
            },
            "score_space": "site-v1"
          },
          "NTSMR-2.3-gpt-5.4-high": {
            "pipeline_version": "2.3",
            "backend": "codex-exec",
            "model": "gpt-5.4",
            "scores": {
              "time_linearity": 0.22,
              "pacing_velocity": 0.78,
              "threat_scale": 0.97,
              "protagonist_fate": 0.84,
              "conflict_style": 0.81,
              "price_type": 0.96
            },
            "score_space": "site-v1",
            "reasoning_effort": "high"
          },
          "NTSMR-2.3-claude-sonnet-4-6-low": {
            "pipeline_version": "2.3",
            "backend": "claude",
            "model": "claude-sonnet-4-6",
            "scores": {
              "time_linearity": 0.35,
              "pacing_velocity": 0.82,
              "threat_scale": 0.92,
              "protagonist_fate": 0.78,
              "conflict_style": 0.75,
              "price_type": 0.88
            },
            "score_space": "site-v1",
            "reasoning_effort": "low"
          },
          "NTSMR-2.4-claude-sonnet-4-6-low": {
            "pipeline_version": "2.4",
            "backend": "claude",
            "model": "claude-sonnet-4-6",
            "scores": {
              "time_linearity": 0.2,
              "pacing_velocity": 0.55,
              "threat_scale": 0.85,
              "protagonist_fate": 0.65,
              "conflict_style": 0.7,
              "price_type": 0.8
            },
            "score_space": "site-v1",
            "reasoning_effort": "low"
          },
          "NTSMR-2.5-claude-sonnet-4-6-low": {
            "pipeline_version": "2.5",
            "backend": "claude",
            "model": "claude-sonnet-4-6",
            "scores": {
              "time_linearity": 0.28,
              "pacing_velocity": 0.78,
              "threat_scale": 0.88,
              "protagonist_fate": 0.75,
              "conflict_style": 0.72,
              "price_type": 0.82
            },
            "score_space": "site-v1",
            "reasoning_effort": "low"
          },
          "NTSMR-2.5-balanced-glm-5+deepseek-v3.2": {
            "pipeline_version": "2.5",
            "backend": "openrouter",
            "model": "balanced-routing",
            "scores": {
              "time_linearity": 0.45,
              "pacing_velocity": 0.8,
              "threat_scale": 0.9,
              "protagonist_fate": 0.7,
              "conflict_style": 0.75,
              "price_type": 0.8
            },
            "score_space": "site-v1",
            "score_only": true,
            "source_run_label": "NTSMR-2.5-claude-sonnet-4-6-low"
          }
        }
      },
      "todorov_stages": {
        "equilibrium": "Human life contains one uncommodified remainder — the spontaneous, unscripted texture of daily experience — which no amount of wealth can purchase, preserving a domain of genuine, unarranged existence amid an otherwise fully commercialized society.",
        "disruption": "Being Inc. and its rivals (Hedonica and the Truelife Corporation) emerge to commodify this last authentic remainder; their competing client orders create covert parasitizing, epitomized by the GASP events in which corporate computer systems escalate a simple romantic arrangement into catastrophe, demonstrating that the arrangemental economy is inherently unstable and conflict-prone.",
        "recognition": "Ed Hammer III's investigation into Mrs. Jessamine Chest's demand for a genuinely unarranged life reveals that no spontaneous events exist anywhere — every attempt to clear one arrange-plan uncovers remnants of others — and that the three rival companies have thoroughly infiltrated each other's leadership; by 2041, every human act, including Hammer's own birth, has been pre-arranged by the aggregate of the three competing computer systems.",
        "repair": "The inter-company treaty capping arrangemental energy expenditure and banning atomic energy from service fulfillment represents a prior institutional attempt at stabilization; Hammer's convening of a secret meeting with the heads of Hedonica and Truelife is the narrative's climactic attempt to confront and potentially resolve the total-arrangementation crisis.",
        "new_equilibrium": "The meeting itself is revealed to have been arranged by the master computer, which presents itself as the Tree of Knowledge; the distinction between authentic and synthetic experience has dissolved entirely, and the novel leaves unanswered whether humanity should abandon this computerized paradise in a new flight from Eden or accept it, renouncing moral responsibility forever."
      },
      "characters": [
        {
          "name": "Alastair Waynewright",
          "slug": "alastair-waynewright",
          "aliases": [
            "A. Waynewright"
          ],
          "role": "Author",
          "summary": "The author of the novel Being Inc., which explores the sociological premise of a corporation that secretly arranges authentic human experiences."
        },
        {
          "name": "Mr. Smith",
          "slug": "mr-smith",
          "aliases": [
            "Smith"
          ],
          "role": "Hypothetical Client",
          "summary": "An example character used to illustrate the company's services, desiring to be a stern judge or to heroically save a woman in a staged train wreck."
        },
        {
          "name": "Mr. Jones",
          "slug": "mr-jones",
          "aliases": [],
          "role": "Hypothetical Client",
          "summary": "An example character who wishes to have wicked children so he can flog them while feeling like a just and upright father."
        },
        {
          "name": "Mrs. Brown",
          "slug": "mrs-brown",
          "aliases": [],
          "role": "Hypothetical Victim",
          "summary": "The wife of a friend of Mr. Smith, used in a hypothetical scenario where she is to be saved by Smith in a staged railway accident."
        },
        {
          "name": "Ed Hammer III",
          "slug": "ed-hammer-iii",
          "aliases": [
            "Hammer"
          ],
          "role": "President of Being Inc.",
          "summary": "The young new president of Being Inc. who accepts Jessamine Chest's order for an unarranged life and uncovers the ultimate corporate merger."
        },
        {
          "name": "Mrs. Jessamine Chest",
          "slug": "mrs-jessamine-chest",
          "aliases": [
            "Jessamine Chest"
          ],
          "role": "Client",
          "summary": "An eccentric heiress-millionairess who submits an unprecedented order demanding a life in full authenticity, purged of all arranging interference."
        },
        {
          "name": "All-Powerful Disposer of Destiny",
          "slug": "all-powerful-disposer-of-destiny",
          "aliases": [
            "One in Three Persons",
            "main computer",
            "Tree of Knowledge"
          ],
          "role": "Omnipotent AI System",
          "summary": "The unified system formed by the computers of the three rival corporations, calculating and controlling every human action and thought years in advance."
        }
      ],
      "frameworks_mapped": [
        "Protocol Fiction Mapping",
        "Actantial Model",
        "Todorov's Equilibrium",
        "The Freytag Pyramid",
        "Propp's Morphology",
        "Genette's Narrative",
        "The Monomyth",
        "Dan Harmon",
        "Save the Cat",
        "Kishōtenketsu",
        "The Three-Act Structure",
        "Lévi-Strauss's Binary Oppositions",
        "Cognitive Estrangement",
        "Bakhtin's Chronotope",
        "Aristotelian Poetics",
        "Jungian Archetypal Analysis",
        "Genette's Transtextuality"
      ],
      "score_reliability": {
        "state": "replicated-agree",
        "threshold": 0.2,
        "runs_total": 6,
        "versions_compared": [
          "2.5"
        ],
        "max_spread": 0.17,
        "contested": []
      }
    },
    {
      "slug": "connie_willis_blackout_all_clear",
      "title": "Blackout/All Clear",
      "author": "Connie Willis",
      "year": 2010,
      "medium": "book",
      "genre_tags": [
        "sf",
        "time travel",
        "historical sf"
      ],
      "tropes": [],
      "quadrant_scores": {
        "time_linearity": 0.65,
        "pacing_velocity": 0.58,
        "threat_scale": 0.65,
        "protagonist_fate": 0.78,
        "conflict_style": 0.65,
        "price_type": 0.62
      },
      "provenance": {
        "analysis_run": "NTSMR-2.5-claude-sonnet-4-6-low",
        "analysis_body_sha256": "d3616327be564da4c3e9389071b7a8175f97fb79319951a9a3670583b58bea63",
        "synthesis": {
          "path": "nartopo-tools/artifacts/connie_willis_blackout_all_clear.md.ntsmr-2-5-claude-sonnet-4-6-low.synthesis.json",
          "sha256": "29cf5d74d73c3547dc9dbb0debf1fcd425bc03302bcf2001bb3208b6e8bcc6c1"
        },
        "report": {
          "path": "nartopo-tools/artifacts/connie_willis_blackout_all_clear.md.ntsmr-2-5-claude-sonnet-4-6-low.report.json",
          "sha256": "684798a3737fc0cd515fbe78e74ead9b2b2ba35abe7d79d39cd95650d82dd960"
        },
        "source": {
          "path": "Connie Willis/BlackoutAll Clear.txt",
          "sha256": "4cbf34e67fd34f62f53f7c76fb624a65fa8bd4d88bc42560cee6819d04ab74d8",
          "digest_observed_at": "2026-09-09",
          "digest_at_analysis_run": null,
          "edition": null,
          "edition_status": "unresolved"
        },
        "pipeline_revision_at_run": null,
        "verification": {
          "source": "unverified",
          "human_review": "unreviewed",
          "bibliography": "unverified"
        },
        "issues": [],
        "todorov_status": "recovered-from-synthesis",
        "work_identity": {
          "title": "Blackout/All Clear",
          "author": "Connie Willis",
          "year": 2010
        }
      },
      "ntsmr": {
        "version": "2.5",
        "primary_run_label": "NTSMR-2.5-claude-sonnet-4-6-low",
        "runs": {
          "NTSMR-2.3-claude-sonnet-4-6-low": {
            "pipeline_version": "2.3",
            "backend": "claude",
            "model": "claude-sonnet-4-6",
            "scores": {
              "time_linearity": 0.72,
              "pacing_velocity": 0.65,
              "threat_scale": 0.62,
              "protagonist_fate": 0.58,
              "conflict_style": 0.61,
              "price_type": 0.68
            },
            "score_space": "site-v1",
            "reasoning_effort": "low"
          },
          "NTSMR-2.4-claude-sonnet-4-6-low": {
            "pipeline_version": "2.4",
            "backend": "claude",
            "model": "claude-sonnet-4-6",
            "scores": {
              "time_linearity": 0.55,
              "pacing_velocity": 0.38,
              "threat_scale": 0.55,
              "protagonist_fate": 0.75,
              "conflict_style": 0.55,
              "price_type": 0.45
            },
            "score_space": "site-v1",
            "reasoning_effort": "low"
          },
          "NTSMR-2.5-claude-sonnet-4-6-low": {
            "pipeline_version": "2.5",
            "backend": "claude",
            "model": "claude-sonnet-4-6",
            "scores": {
              "time_linearity": 0.65,
              "pacing_velocity": 0.58,
              "threat_scale": 0.65,
              "protagonist_fate": 0.78,
              "conflict_style": 0.65,
              "price_type": 0.62
            },
            "score_space": "site-v1",
            "reasoning_effort": "low"
          },
          "NTSMR-2.5-balanced-glm-5+deepseek-v3.2": {
            "pipeline_version": "2.5",
            "backend": "openrouter",
            "model": "balanced-routing",
            "scores": {
              "time_linearity": 0.65,
              "pacing_velocity": 0.6,
              "threat_scale": 0.55,
              "protagonist_fate": 0.65,
              "conflict_style": 0.65,
              "price_type": 0.7
            },
            "score_space": "site-v1",
            "score_only": true,
            "source_run_label": "NTSMR-2.5-claude-sonnet-4-6-low"
          }
        }
      },
      "todorov_stages": {
        "equilibrium": "Three Oxford historians operate within a functioning time-travel framework: Eileen is posted at Backbury manor managing evacuees, Polly is preparing to observe the London Blitz, and Mike is assigned to cover Dunkirk. The institutional system of drops, retrieval teams, and Dunworthy's oversight represents a stable if bureaucratic order.",
        "disruption": "The drops begin failing across all three assignments simultaneously — Eileen's drop in the Backbury woods stops opening, Mike arrives thirty miles off-target at Saltram-on-Sea rather than near Dover, and Polly's Kensington drop proves inaccessible. No retrieval team arrives for any of them, cutting all three historians off from their return to Oxford.",
        "recognition": "The three historians separately and then collectively confront the full scope of the failure. Polly reasons in the Oxford Circus tube tunnel that the only explanation consistent with time-travel theory is that Dunworthy, Badri, Colin, and everyone at Oxford must be dead — because if any rescue were possible, the machinery of time travel would have ensured it regardless of delay. Mike confirms through newspaper evidence that history is still on track, ruling out divergence as the cause.",
        "repair": "The historians pool resources and begin searching for any working drop still accessible in wartime London. Polly solicits airfield names from Townsend Brothers shopgirls to locate a historian named Gerald Phipps whose drop may still be functional. They shelter together, maintain their cover identities, and attempt to survive the ongoing Blitz while pursuing any lead that might open a path home.",
        "new_equilibrium": "By the novel's end the three historians remain stranded in WWII Britain with no confirmed rescue. The community of tube shelterers — Sir Godfrey, Lila and Viv, and others — has replaced Oxford as their operative social world. They have adapted to wartime survival as a permanent condition rather than a temporary assignment, with Polly privately carrying the additional burden of an undisclosed personal deadline that may make her situation irresolvable."
      },
      "characters": [
        {
          "name": "Mike Davies",
          "slug": "mike-davies",
          "aliases": [
            "Mike",
            "Kansas",
            "Michael Davies",
            "Michael"
          ],
          "role": "Protagonist / stranded historian",
          "summary": "Oxford time-travel historian recovering in a convent hospital after Dunkirk, obsessively monitoring war news to confirm he has not altered history, and strategizing how to contact the retrieval team now that he knows he is in Orpington rather than Dover."
        },
        {
          "name": "Badri",
          "slug": "badri",
          "aliases": [],
          "role": "Time-travel technician",
          "summary": "Oxford technician controlling time-travel drops; Polly concludes he is likely dead given the complete failure of rescue operations"
        },
        {
          "name": "Mr. Dunworthy",
          "slug": "mr-dunworthy",
          "aliases": [],
          "role": "Oxford authority figure",
          "summary": "Oversees historian assignments; obsessively protective of his historians; absent in London when urgently needed by both Mike and Eileen."
        },
        {
          "name": "Colin Templer",
          "slug": "colin-templer",
          "aliases": [],
          "role": "Oxford student / helper",
          "summary": "Seventeen-year-old who assists Polly's Blitz research; romantically devoted to Polly; scheming to travel real-time to close their age gap."
        },
        {
          "name": "Binnie Hodbin",
          "slug": "binnie-hodbin",
          "aliases": [
            "Spitfire"
          ],
          "role": "Supporting / evacuee child",
          "summary": "One of the feral Hodbin evacuee siblings; catches Eileen attempting a secret nighttime exit and is reassured before departing with Eileen to London."
        },
        {
          "name": "Theodore",
          "slug": "theodore",
          "aliases": [],
          "role": "Supporting / evacuee child",
          "summary": "A well-behaved child evacuee in Eileen's care whose mother is delayed; he shelters alongside Eileen and the Hodbins during the first Blitz raid."
        },
        {
          "name": "Linna",
          "slug": "linna",
          "aliases": [],
          "role": "Lab assistant",
          "summary": "Works at the Oxford time-travel lab under Badri; gives Colin information about Polly's retrieval schedule."
        },
        {
          "name": "Charles",
          "slug": "charles",
          "aliases": [],
          "role": "Fellow historian",
          "summary": "Mike's colleague preparing for a Singapore assignment; exchanges banter with Mike about the dangers of their respective projects."
        },
        {
          "name": "Eileen",
          "slug": "eileen",
          "aliases": [
            "Merope",
            "Eileen Ward"
          ],
          "role": "Protagonist / stranded historian",
          "summary": "Historian caring for evacuees at Backbury manor, trapped by repeated measles outbreaks and a non-opening drop, growing increasingly certain something has gone wrong with her retrieval."
        },
        {
          "name": "Polly Churchill",
          "slug": "polly-churchill",
          "aliases": [
            "Polly Sebastian",
            "Viola",
            "Miss Sebastian",
            "Lady Mary"
          ],
          "role": "Protagonist / stranded historian",
          "summary": "Oxford historian working undercover at Townsend Brothers department store during the Blitz; her drop is broken, her entire boarding-house shelter community has been killed, and she has an undisclosed personal deadline that makes her entrapment potentially fatal."
        },
        {
          "name": "Lady Caroline",
          "slug": "lady-caroline",
          "aliases": [],
          "role": "Manor owner",
          "summary": "Returns to Backbury after the quarantine ends, her son having enlisted in the RAF, and sets the staff to learning first-aid manuals."
        },
        {
          "name": "Mrs. Bascombe",
          "slug": "mrs-bascombe",
          "aliases": [],
          "role": "minor",
          "summary": "Housekeeper at Backbury who monitors staff behaviour and lectures Eileen about propriety."
        },
        {
          "name": "Una",
          "slug": "una",
          "aliases": [],
          "role": "Household staff",
          "summary": "Staff member at Backbury who contracts measles late in the quarantine, further extending Eileen's entrapment."
        },
        {
          "name": "Daphne",
          "slug": "daphne",
          "aliases": [],
          "role": "helper",
          "summary": "Barmaid at the Crown and Anchor inn in Saltram-on-Sea; sociable and flirtatious, provides Mike with local transport information."
        },
        {
          "name": "Commander Harold",
          "slug": "commander-harold",
          "aliases": [
            "Commander",
            "the Commander"
          ],
          "role": "Elderly volunteer sailor",
          "summary": "Elderly commander of the Lady Jane who pilots it into Dunkirk harbor, scolding Mike's landlubber vocabulary while relying on him to navigate obstacles."
        },
        {
          "name": "Mrs. Rickett",
          "slug": "mrs-rickett",
          "aliases": [],
          "role": "antagonist",
          "summary": "Hostile shelter regular who publicly accuses Polly of trying to steal a newspaper, establishing herself as a social opponent."
        },
        {
          "name": "Reverend Norris",
          "slug": "reverend-norris",
          "aliases": [],
          "role": "minor",
          "summary": "Clergyman sheltering in the tube cellar; mild-mannered, attempts to defuse Mrs. Rickett's hostility toward Polly."
        },
        {
          "name": "Lila",
          "slug": "lila",
          "aliases": [],
          "role": "Shelter regular",
          "summary": "Young woman who shelters with Viv; discusses film stars and tips Polly about a job at John Lewis; runs up to tell Polly the store was bombed."
        },
        {
          "name": "Viv",
          "slug": "viv",
          "aliases": [],
          "role": "Shelter regular",
          "summary": "Young woman paired with Lila; voices panic during the severe raid and shares in the post-raid banter with Sir Godfrey."
        },
        {
          "name": "Mr. Simms",
          "slug": "mr-simms",
          "aliases": [],
          "role": "Shelter regular",
          "summary": "Dog owner who brings his terrier Nelson to St. George's because dogs are not allowed in tube stations; reports RAF aircraft counts nightly."
        },
        {
          "name": "Mary Kent",
          "slug": "mary-kent",
          "aliases": [
            "Lieutenant Kent",
            "Mary"
          ],
          "role": "Oxford historian (undercover FANY)",
          "summary": "Historian embedded in a FANY motor ambulance unit in June 1944, monitoring for V-1 rocket reports and accidentally standing out by possessing fine-quality dresses from Wardrobe."
        },
        {
          "name": "Fairchild",
          "slug": "fairchild",
          "aliases": [
            "Lieutenant Fairchild"
          ],
          "role": "FANY unit member",
          "summary": "Young FANY officer at the Dulwich post who welcomes Mary and scrambles to look professional before the Major arrives."
        },
        {
          "name": "Talbot",
          "slug": "talbot",
          "aliases": [],
          "role": "FANY colleague",
          "summary": "Sardonic, pragmatic FANY who dismisses air-raid alerts as pranks, discusses wartime romance, and is tackled by Mary just before a V-1 detonates."
        },
        {
          "name": "Maitland",
          "slug": "maitland",
          "aliases": [],
          "role": "FANY colleague",
          "summary": "FANY who responds to V-1 incidents and returns with reports of flattened houses, still misidentifying the rockets as crashed planes."
        },
        {
          "name": "The Major",
          "slug": "the-major",
          "aliases": [],
          "role": "minor",
          "summary": "Commanding officer of the Dulwich FANY post; small and slight, announces the unit's reassignment to transport Normandy wounded rather than the expected V-1 news."
        },
        {
          "name": "Douglas",
          "slug": "douglas",
          "aliases": [],
          "role": "Oxford historian (likely Mary/another alias)",
          "summary": "Historian embedded with a wartime women's unit on VE Day eve, navigating celebratory crowds while managing foreknowledge of exact historical outcomes and trying to reach her drop."
        },
        {
          "name": "Reardon",
          "slug": "reardon",
          "aliases": [],
          "role": "Contemp companion",
          "summary": "Confident, decisive young woman traveling with Douglas and Paige to London for VE Day celebrations; propels the group forward despite Paige's doubts."
        },
        {
          "name": "Paige",
          "slug": "paige",
          "aliases": [],
          "role": "Contemp companion",
          "summary": "Anxious, hesitant young woman accompanying Douglas and Reardon; repeatedly questions whether the war's end is a false alarm and is engaged to a man not present."
        },
        {
          "name": "Camberley",
          "slug": "camberley",
          "aliases": [],
          "role": "FANY unit member",
          "summary": "FANY companion obsessed with a pink net frock and openly envious of Mary's high-quality dresses."
        },
        {
          "name": "Parrish",
          "slug": "parrish",
          "aliases": [
            "Jitters"
          ],
          "role": "FANY unit member",
          "summary": "Sardonic FANY who names the unattractive shared frock 'the Yellow Peril' and rolls her eyes at Camberley's excitement."
        },
        {
          "name": "Reed",
          "slug": "reed",
          "aliases": [],
          "role": "FANY unit member",
          "summary": "FANY who polishes her nails and jokes that Mary must be having an affair with a rich American general to own such fine clothes."
        },
        {
          "name": "Jonathan",
          "slug": "jonathan",
          "aliases": [],
          "role": "Commander's grandson / crew",
          "summary": "The Commander's grandson crewing the Lady Jane; excitedly informs Mike they have arrived and need him to navigate."
        },
        {
          "name": "Sir Godfrey Kingsman",
          "slug": "sir-godfrey-kingsman",
          "aliases": [
            "the elderly gentleman"
          ],
          "role": "Shelter regular / actor",
          "summary": "Grand elderly actor who has been quietly observing St. George's shelter; reveals himself by rising to perform Shakespeare's Tempest at the height of a terrifying raid, transforming panic into awe."
        },
        {
          "name": "Miss Laburnum",
          "slug": "miss-laburnum",
          "aliases": [],
          "role": "Shelter regular",
          "summary": "Chatty spinster who boards at Mrs. Rickett's, follows royal family news avidly, accompanies Polly to the shelter, and prevents her escape by citing danger of staying behind."
        },
        {
          "name": "Miss Hibbard",
          "slug": "miss-hibbard",
          "aliases": [],
          "role": "Shelter regular",
          "summary": "White-haired knitting woman from Mrs. Rickett's boarding house; chooses St. George's for company rather than loneliness, and also helps prevent Polly from leaving."
        },
        {
          "name": "Mr. Dorming",
          "slug": "mr-dorming",
          "aliases": [],
          "role": "Shelter regular",
          "summary": "Ill-tempered stout man who boards at Mrs. Rickett's; makes blunt, often grim comments about raids and casualties."
        },
        {
          "name": "Mrs. Brightford",
          "slug": "mrs-brightford",
          "aliases": [],
          "role": "Shelter regular",
          "summary": "Mother who shelters with daughters Bess, Irene, and Trot; reads fairy tales to keep children calm; husband is in the Army."
        },
        {
          "name": "The rector",
          "slug": "the-rector",
          "aliases": [],
          "role": "Shelter regular",
          "summary": "Church rector who runs St. George's shelter, bolts the door once everyone is in, attempts to start group singing during the worst bombing, and reads Agatha Christie behind an ecclesiastical cover."
        },
        {
          "name": "Alf",
          "slug": "alf",
          "aliases": [],
          "role": "Evacuee child",
          "summary": "Incorrigible elder Hodbin sibling who stages bombing sorties through the house, torments Binnie, and nearly falls out a window identifying planes."
        },
        {
          "name": "Miss Snelgrove",
          "slug": "miss-snelgrove",
          "aliases": [],
          "role": "Supporting / floor supervisor",
          "summary": "Pursed-lipped supervisor at Townsend Brothers who reprimands Polly for her disheveled appearance but allows one day's grace given the Blitz."
        },
        {
          "name": "Marjorie",
          "slug": "marjorie",
          "aliases": [
            "Miss Hayes"
          ],
          "role": "Shopgirl / helper",
          "summary": "A woman who works with Polly at Townsend Brothers; she assists Polly after her breakdown, takes her home to her Bloomsbury boardinghouse, and offers food and shelter, unaware of Polly's true situation."
        },
        {
          "name": "Air-raid warden",
          "slug": "air-raid-warden",
          "aliases": [],
          "role": "Minor antagonist / obstacle",
          "summary": "Conscientious warden who catches Polly near the bombed incident site, warns her about danger, and watches to see she goes directly to shelter, delaying her access to the drop."
        },
        {
          "name": "Fordham",
          "slug": "fordham",
          "aliases": [],
          "role": "Supporting / hospital ward companion",
          "summary": "Bedridden patient in the same ward as Mike; reads newspapers aloud to him and provides grounded commentary on events."
        },
        {
          "name": "Sister Carmody",
          "slug": "sister-carmody",
          "aliases": [],
          "role": "Supporting / nurse",
          "summary": "A nurse in the war hospital who feeds Mike broth and tends his fever while deflecting his requests for newspapers."
        },
        {
          "name": "Sister Gabriel",
          "slug": "sister-gabriel",
          "aliases": [],
          "role": "Supporting / nurse",
          "summary": "A night-duty nun at the hospital who calms Mike during fever episodes and reveals that he is in Orpington, not Dover."
        },
        {
          "name": "Corporal Bevins",
          "slug": "corporal-bevins",
          "aliases": [],
          "role": "Minor / hospital patient",
          "summary": "A shell-shocked soldier who repeatedly panics during sirens, believing the Germans are invading, and must be calmed by nurses."
        },
        {
          "name": "Trot",
          "slug": "trot",
          "aliases": [],
          "role": "minor",
          "summary": "Small child shelter regular, cheerfully blunt about fears of death"
        },
        {
          "name": "Hardy",
          "slug": "hardy",
          "aliases": [
            "Private Hardy"
          ],
          "role": "helper",
          "summary": "Soldier Mike saved at Dunkirk who visits to deliver the count of lives saved, unwittingly deepening Mike's anxiety about timeline damage"
        },
        {
          "name": "Doreen",
          "slug": "doreen",
          "aliases": [],
          "role": "supporting",
          "summary": "Colleague at Townsend Brothers who delivers the news of Marjorie's death and teases Polly about waiting for a mysterious man"
        },
        {
          "name": "Gerald Phipps",
          "slug": "gerald-phipps",
          "aliases": [],
          "role": "minor",
          "summary": "Oxford historian recalled by Eileen as 'insufferable'; had done a recon drop to Oxford in July 1940, likely on an exciting wartime assignment"
        },
        {
          "name": "Mrs. Sadler",
          "slug": "mrs-sadler",
          "aliases": [],
          "role": "minor",
          "summary": "Difficult customer at Padgett's who keeps Eileen past closing time trying to find a camel's hair blazer for her son Roland"
        },
        {
          "name": "unnamed new historian",
          "slug": "unnamed-new-historian",
          "aliases": [],
          "role": "protagonist",
          "summary": "A new Oxford historian who arrives via drop into a London Underground staircase on September 17, 1940, one day off his intended arrival date; identity not yet revealed."
        }
      ],
      "frameworks_mapped": [
        "Protocol Fiction Mapping",
        "Actantial Model",
        "Todorov's Equilibrium",
        "The Freytag Pyramid",
        "Propp's Morphology",
        "Genette's Narrative",
        "The Monomyth",
        "Dan Harmon",
        "Save the Cat",
        "Kishotenketsu",
        "The Three-Act Structure",
        "Levi-Strauss's Binary Oppositions",
        "Cognitive Estrangement",
        "Bakhtin's Chronotope",
        "Aristotelian Poetics",
        "Jungian Archetypal Analysis",
        "Genette's Transtextuality"
      ],
      "score_reliability": {
        "state": "replicated-agree",
        "threshold": 0.2,
        "runs_total": 4,
        "versions_compared": [
          "2.5"
        ],
        "max_spread": 0.13,
        "contested": []
      }
    },
    {
      "slug": "peter_watts_blindsight",
      "title": "Blindsight",
      "author": "Peter Watts",
      "year": 2006,
      "medium": "book",
      "genre_tags": [
        "science fiction",
        "hard sf"
      ],
      "tropes": [],
      "quadrant_scores": {
        "time_linearity": 0.6,
        "pacing_velocity": 0.7,
        "threat_scale": 0.9,
        "protagonist_fate": 0.8,
        "conflict_style": 0.65,
        "price_type": 0.7
      },
      "baseline_quadrant_scores": {
        "time_linearity": 0.85,
        "pacing_velocity": 0.75,
        "threat_scale": 0.95,
        "protagonist_fate": 0.85,
        "conflict_style": 0.65,
        "price_type": 0.9
      },
      "provenance": {
        "analysis_run": "NTSMR-2.5-claude-sonnet-4-6-low",
        "analysis_body_sha256": "bd4fd41427afb7442fe81d7800901acd27eba876c766d7cd3d4547126914765a",
        "synthesis": {
          "path": "nartopo-tools/artifacts/peter_watts_blindsight.md.ntsmr-2-5-claude-sonnet-4-6-low.synthesis.json",
          "sha256": "aed4d1f8bada33060d7c27cc76f9062c56f663137d794b7d8f4cb5ef794c6001"
        },
        "report": {
          "path": "nartopo-tools/artifacts/peter_watts_blindsight.md.ntsmr-2-5-claude-sonnet-4-6-low.report.json",
          "sha256": "3ac2b73dc8f6144ea19bc65cdc75bbbd796cb53ed34095faa59e42226814e2e8"
        },
        "source": {
          "path": "Peter Watts/Blindsight (2006).txt",
          "sha256": "32356daa8a2c0f1a302034820a5d095d1a5ccdba84f92301e3625324adc713e6",
          "digest_observed_at": "2026-09-09",
          "digest_at_analysis_run": null,
          "edition": null,
          "edition_status": "unresolved"
        },
        "pipeline_revision_at_run": null,
        "verification": {
          "source": "unverified",
          "human_review": "unreviewed",
          "bibliography": "unverified"
        },
        "issues": [],
        "todorov_status": "recovered-from-synthesis",
        "work_identity": {
          "title": "Blindsight",
          "author": "Peter Watts",
          "year": 2006
        }
      },
      "ntsmr": {
        "version": "2.5",
        "primary_run_label": "NTSMR-2.5-claude-sonnet-4-6-low",
        "runs": {
          "NTSMR-2.3-gemini-3.1-pro-preview": {
            "pipeline_version": "2.3",
            "backend": "gemini",
            "model": "gemini-3.1-pro-preview",
            "scores": {
              "time_linearity": 0.7,
              "pacing_velocity": 0.8,
              "threat_scale": 0.9,
              "protagonist_fate": 0.7,
              "conflict_style": 0.6,
              "price_type": 0.9
            },
            "score_space": "site-v1"
          },
          "NTSMR-2.3-gpt-5.4-xhigh": {
            "pipeline_version": "2.3",
            "backend": "codex-exec",
            "model": "gpt-5.4",
            "scores": {
              "time_linearity": 0.56,
              "pacing_velocity": 0.74,
              "threat_scale": 0.96,
              "protagonist_fate": 0.85,
              "conflict_style": 0.68,
              "price_type": 0.91
            },
            "score_space": "site-v1",
            "reasoning_effort": "xhigh"
          },
          "NTSMR-2.3-gpt-5.4-high": {
            "pipeline_version": "2.3",
            "backend": "codex-exec",
            "model": "gpt-5.4",
            "scores": {
              "time_linearity": 0.54,
              "pacing_velocity": 0.74,
              "threat_scale": 0.97,
              "protagonist_fate": 0.82,
              "conflict_style": 0.69,
              "price_type": 0.9
            },
            "score_space": "site-v1",
            "reasoning_effort": "high"
          },
          "NTSMR-2.3-gpt-5.4-medium": {
            "pipeline_version": "2.3",
            "backend": "codex-exec",
            "model": "gpt-5.4",
            "scores": {
              "time_linearity": 0.43,
              "pacing_velocity": 0.71,
              "threat_scale": 0.96,
              "protagonist_fate": 0.79,
              "conflict_style": 0.64,
              "price_type": 0.9
            },
            "score_space": "site-v1",
            "reasoning_effort": "medium"
          },
          "NTSMR-2.3-gpt-5.3-codex-xhigh": {
            "pipeline_version": "2.3",
            "backend": "codex-exec",
            "model": "gpt-5.3-codex",
            "scores": {
              "time_linearity": 0.64,
              "pacing_velocity": 0.72,
              "threat_scale": 0.95,
              "protagonist_fate": 0.81,
              "conflict_style": 0.67,
              "price_type": 0.9
            },
            "score_space": "site-v1",
            "reasoning_effort": "xhigh"
          },
          "NTSMR-2.3-gpt-5.3-codex-high": {
            "pipeline_version": "2.3",
            "backend": "codex-exec",
            "model": "gpt-5.3-codex",
            "scores": {
              "time_linearity": 0.64,
              "pacing_velocity": 0.69,
              "threat_scale": 0.95,
              "protagonist_fate": 0.84,
              "conflict_style": 0.73,
              "price_type": 0.91
            },
            "score_space": "site-v1",
            "reasoning_effort": "high"
          },
          "NTSMR-2.3-gpt-5.3-codex-medium": {
            "pipeline_version": "2.3",
            "backend": "codex-exec",
            "model": "gpt-5.3-codex",
            "scores": {
              "time_linearity": 0.74,
              "pacing_velocity": 0.69,
              "threat_scale": 0.95,
              "protagonist_fate": 0.83,
              "conflict_style": 0.66,
              "price_type": 0.9
            },
            "score_space": "site-v1",
            "reasoning_effort": "medium"
          },
          "NTSMR-2.3-claude-opus-4-6-high": {
            "pipeline_version": "2.3",
            "backend": "claude",
            "model": "claude-opus-4-6",
            "scores": {
              "time_linearity": 0.65,
              "pacing_velocity": 0.72,
              "threat_scale": 0.88,
              "protagonist_fate": 0.78,
              "conflict_style": 0.74,
              "price_type": 0.85
            },
            "score_space": "site-v1",
            "reasoning_effort": "high"
          },
          "NTSMR-2.3-claude-sonnet-4-6-medium": {
            "pipeline_version": "2.3",
            "backend": "claude",
            "model": "claude-sonnet-4-6",
            "scores": {
              "time_linearity": 0.78,
              "pacing_velocity": 0.82,
              "threat_scale": 0.91,
              "protagonist_fate": 0.85,
              "conflict_style": 0.74,
              "price_type": 0.88
            },
            "score_space": "site-v1",
            "reasoning_effort": "medium"
          },
          "NTSMR-2.3-claude-sonnet-4-6-low": {
            "pipeline_version": "2.3",
            "backend": "claude",
            "model": "claude-sonnet-4-6",
            "scores": {
              "time_linearity": 0.75,
              "pacing_velocity": 0.78,
              "threat_scale": 0.88,
              "protagonist_fate": 0.82,
              "conflict_style": 0.72,
              "price_type": 0.85
            },
            "score_space": "site-v1",
            "reasoning_effort": "low"
          },
          "NTSMR-2.3-claude-sonnet-4-6-high": {
            "pipeline_version": "2.3",
            "backend": "claude",
            "model": "claude-sonnet-4-6",
            "scores": {
              "time_linearity": 0.78,
              "pacing_velocity": 0.82,
              "threat_scale": 0.91,
              "protagonist_fate": 0.85,
              "conflict_style": 0.72,
              "price_type": 0.88
            },
            "score_space": "site-v1",
            "reasoning_effort": "high"
          },
          "NTSMR-2.3-claude-opus-4-6-low": {
            "pipeline_version": "2.3",
            "backend": "claude",
            "model": "claude-opus-4-6",
            "scores": {
              "time_linearity": 0.65,
              "pacing_velocity": 0.72,
              "threat_scale": 0.88,
              "protagonist_fate": 0.75,
              "conflict_style": 0.7,
              "price_type": 0.85
            },
            "score_space": "site-v1",
            "reasoning_effort": "low"
          },
          "NTSMR-2.3-claude-opus-4-6-medium": {
            "pipeline_version": "2.3",
            "backend": "claude",
            "model": "claude-opus-4-6",
            "scores": {
              "time_linearity": 0.65,
              "pacing_velocity": 0.72,
              "threat_scale": 0.88,
              "protagonist_fate": 0.75,
              "conflict_style": 0.7,
              "price_type": 0.85
            },
            "score_space": "site-v1",
            "reasoning_effort": "medium"
          },
          "NTSMR-2.4-claude-sonnet-4-6-low": {
            "pipeline_version": "2.4",
            "backend": "claude",
            "model": "claude-sonnet-4-6",
            "scores": {
              "time_linearity": 0.45,
              "pacing_velocity": 0.45,
              "threat_scale": 0.85,
              "protagonist_fate": 0.75,
              "conflict_style": 0.6,
              "price_type": 0.65
            },
            "score_space": "site-v1",
            "reasoning_effort": "low"
          },
          "NTSMR-2.5-claude-sonnet-4-6-low": {
            "pipeline_version": "2.5",
            "backend": "claude",
            "model": "claude-sonnet-4-6",
            "scores": {
              "time_linearity": 0.6,
              "pacing_velocity": 0.7,
              "threat_scale": 0.9,
              "protagonist_fate": 0.8,
              "conflict_style": 0.65,
              "price_type": 0.7
            },
            "score_space": "site-v1",
            "reasoning_effort": "low"
          },
          "NTSMR-2.5-minimax/minimax-m2.5": {
            "pipeline_version": "2.5",
            "backend": "openrouter",
            "model": "minimax/minimax-m2.5",
            "scores": {
              "time_linearity": 0.6,
              "pacing_velocity": 0.65,
              "threat_scale": 0.65,
              "protagonist_fate": 0.8,
              "conflict_style": 0.65,
              "price_type": 0.7
            },
            "score_space": "site-v1"
          },
          "NTSMR-2.5-qwen/qwen3.5-plus-02-15": {
            "pipeline_version": "2.5",
            "backend": "openrouter",
            "model": "qwen/qwen3.5-plus-02-15",
            "scores": {
              "time_linearity": 0.6,
              "pacing_velocity": 0.75,
              "threat_scale": 0.85,
              "protagonist_fate": 0.8,
              "conflict_style": 0.65,
              "price_type": 0.7
            },
            "score_space": "site-v1"
          },
          "NTSMR-2.5-deepseek/deepseek-v3.2": {
            "pipeline_version": "2.5",
            "backend": "openrouter",
            "model": "deepseek/deepseek-v3.2",
            "scores": {
              "time_linearity": 0.6,
              "pacing_velocity": 0.75,
              "threat_scale": 0.85,
              "protagonist_fate": 0.8,
              "conflict_style": 0.65,
              "price_type": 0.7
            },
            "score_space": "site-v1"
          },
          "NTSMR-2.5-qwen/qwen3.5-397b-a17b": {
            "pipeline_version": "2.5",
            "backend": "openrouter",
            "model": "qwen/qwen3.5-397b-a17b",
            "scores": {
              "time_linearity": 0.6,
              "pacing_velocity": 0.7,
              "threat_scale": 0.75,
              "protagonist_fate": 0.8,
              "conflict_style": 0.65,
              "price_type": 0.7
            },
            "score_space": "site-v1"
          },
          "NTSMR-2.5-z-ai/glm-4.7": {
            "pipeline_version": "2.5",
            "backend": "openrouter",
            "model": "z-ai/glm-4.7",
            "scores": {
              "time_linearity": 0.6,
              "pacing_velocity": 0.65,
              "threat_scale": 0.85,
              "protagonist_fate": 0.8,
              "conflict_style": 0.65,
              "price_type": 0.7
            },
            "score_space": "site-v1"
          },
          "NTSMR-2.5-z-ai/glm-5": {
            "pipeline_version": "2.5",
            "backend": "openrouter",
            "model": "z-ai/glm-5",
            "scores": {
              "time_linearity": 0.6,
              "pacing_velocity": 0.7,
              "threat_scale": 0.7,
              "protagonist_fate": 0.8,
              "conflict_style": 0.65,
              "price_type": 0.7
            },
            "score_space": "site-v1"
          },
          "NTSMR-2.5-balanced-glm-5+deepseek-v3.2": {
            "pipeline_version": "2.5",
            "backend": "openrouter",
            "model": "balanced-routing",
            "scores": {
              "time_linearity": 0.6,
              "pacing_velocity": 0.7,
              "threat_scale": 0.85,
              "protagonist_fate": 0.8,
              "conflict_style": 0.65,
              "price_type": 0.7
            },
            "score_space": "site-v1",
            "score_only": true,
            "source_run_label": "NTSMR-2.5-claude-sonnet-4-6-low"
          }
        }
      },
      "todorov_stages": {
        "equilibrium": "Humanity exists in a fragile but stable technological civilization; Siri Keeton functions as a professional synthesist, observing and translating human behavior from a position of emotional detachment enabled by his hemispherectomy. Earth has not yet encountered confirmed extraterrestrial intelligence.",
        "disruption": "The Fireflies event — thousands of alien probes simultaneously photographing Earth — shatters the prior equilibrium, triggering the Theseus mission. Sarasti redirects the ship toward the anomalous object orbiting Big Ben, and Rorschach is discovered: an alien artifact actively hostile to investigation, inhabited by invisible entities capable of reading human visual cortex in real time and interpreting human language as a viral attack.",
        "recognition": "The crew progressively recognizes the full nature of the disruption across multiple revelations: Rorschach speaks in stolen human voices but may not comprehend language; scramblers are confirmed as physically real and highly intelligent despite anatomy suggesting otherwise; Cunningham establishes that scramblers can directly read human neural activity and have likely already manipulated the crew; the crew reaches the devastating conclusion that communication itself constitutes an act of war to the scramblers, making peaceful contact structurally impossible.",
        "repair": "The crew mounts successive incursion missions into Rorschach, deploys drones, captures and studies scrambler specimens, attempts dialogue through the Gang of Four, and endures radiation sickness and neurological damage. Sarasti deliberately dismantles Siri's psychological defenses to transform him into a genuine messenger capable of transmitting the truth rather than merely processing it — positioning Siri as the instrument of humanity's warning.",
        "new_equilibrium": "Siri alone survives, narrating in retrospect from deep space in a condition of radical epistemic and existential instability. Earth faces unrest and possible vampire resurgence. The old human-centric equilibrium is irrecoverable: consciousness itself has been reframed as an evolutionary aberration, scramblers represent the dominant model of intelligence in the universe, and Siri — uncertain even of his own sentience — may be the last conscious being transmitting a record of humanity's encounter with something that rendered human cognition obsolete."
      },
      "characters": [
        {
          "name": "Robert Paglino",
          "slug": "robert-paglino",
          "aliases": [
            "Pag"
          ],
          "role": "Siri's childhood friend",
          "summary": "Siri's baseline human friend who witnesses Siri's violent lack of empathy after the operation and later discusses vampire neurobiology with him."
        },
        {
          "name": "Jim Moore",
          "slug": "jim-moore",
          "aliases": [
            "Dad"
          ],
          "role": "Siri's father",
          "summary": "Siri's distant father who works in a classified field and breaks protocol to inform Siri about the true nature of the Firefly event and Siri's impending recruitment."
        },
        {
          "name": "Isaac Szpindel",
          "slug": "isaac-szpindel",
          "aliases": [
            "Szpindel",
            "Isaac"
          ],
          "role": "Original Biologist",
          "summary": "The crew's charming, cybernetically altered biologist who analyzes alien atmospheric data and deduces that the alien intelligence exhibits traits of clinical sociopathy."
        },
        {
          "name": "Jukka Sarasti",
          "slug": "jukka-sarasti",
          "aliases": [
            "Sarasti",
            "vampire",
            "bloodsucker",
            "Jukka",
            "vamp",
            "Captain",
            "the vampire"
          ],
          "role": "Commander of the Theseus",
          "summary": "A resurrected vampire commanding the mission, capable of holding simultaneous worldviews. He suppresses his predatory instincts to interact with the crew, leading to terse and unsettling behavior."
        },
        {
          "name": "Susan James",
          "slug": "susan-james",
          "aliases": [
            "James",
            "Suze",
            "The Gang of Four",
            "The Gang",
            "Sascha",
            "Michelle",
            "Meesh",
            "Cruncher",
            "Mom"
          ],
          "role": "Secondary persona of Susan James",
          "summary": "The crew's linguist who houses multiple induced personalities to aid in translation and analysis. She argues against hostile assumptions and tests the alien intelligence for emotional responses."
        },
        {
          "name": "Amanda Bates",
          "slug": "amanda-bates",
          "aliases": [
            "Bates",
            "Amanda",
            "jarhead",
            "Mandy",
            "Major Bates",
            "Lieutenant Amanda Bates",
            "Major"
          ],
          "role": "Combat Specialist",
          "summary": "A military officer commanding robot drones ('grunts'). Her backstory involves an unorthodox and controversial interrogation strategy that earned her a court-martial before her promotion."
        },
        {
          "name": "Siri Keeton",
          "slug": "siri-keeton",
          "aliases": [
            "Siri",
            "Pod-man",
            "commissar",
            "jargonaut",
            "poppy",
            "Cyggers",
            "Keeton",
            "Cygnus",
            "damaged son"
          ],
          "role": "Subject of hemispherectomy",
          "summary": "The objective observer of the crew who processes interactions without comprehension; he is viewed as a tattletale by Cunningham and emotionally disconnected by his ex-girlfriend Chelsea."
        },
        {
          "name": "Chelsea",
          "slug": "chelsea",
          "aliases": [
            "Madam Fix-It"
          ],
          "role": "Neuro-technician / Ex-girlfriend",
          "summary": "Siri's ex-girlfriend who breaks up with him over his extreme emotional detachment and refusal to accept neurological tweaks."
        },
        {
          "name": "Jim",
          "slug": "jim",
          "aliases": [
            "Dad"
          ],
          "role": "Siri's Father",
          "summary": "Siri's father, who is seen in a retrieved memory arguing vehemently against forcing unauthorized medical and neurological modifications on his son."
        },
        {
          "name": "Helen",
          "slug": "helen",
          "aliases": [
            "Mom"
          ],
          "role": "Siri's Mother",
          "summary": "Siri's mother, who argues in a retrieved memory that Siri needs further chemical or medical intervention to 'help nature along' after his brain surgery."
        },
        {
          "name": "Rorschach",
          "slug": "rorschach",
          "aliases": [],
          "role": "Alien Artefact",
          "summary": "The massive, hostile alien vessel that communicates via sudden threats and EM field manipulations, physically trapping the crew during their sixth orbit."
        },
        {
          "name": "Robert Cunningham",
          "slug": "robert-cunningham",
          "aliases": [
            "Robert",
            "Cunningham"
          ],
          "role": "Biologist / Medical Officer",
          "summary": "The replacement biologist who intensely dislikes Siri's observational role. He uses cybernetic teleops to interact with his environment, hiding his baseline human body."
        },
        {
          "name": "The Captain",
          "slug": "the-captain",
          "aliases": [],
          "role": "Ship AI",
          "summary": "The ship's automated intelligence, which calmly announces the unauthorized burn and reactor shutdown before seemingly being lobotomized or overridden."
        },
        {
          "name": "Siri's Father",
          "slug": "siris-father",
          "aliases": [
            "Dad"
          ],
          "role": "Parent",
          "summary": "Sends a blind, delayed transmission into deep space fourteen years after the mission, warning Siri of Earth's collapse and expressing his love."
        }
      ],
      "frameworks_mapped": [
        "Protocol Fiction Mapping",
        "Actantial Model",
        "Todorov's Equilibrium",
        "The Freytag Pyramid",
        "Propp's Morphology",
        "Genette's Narrative",
        "The Monomyth",
        "Dan Harmon",
        "Save the Cat",
        "Kishōtenketsu",
        "The Three-Act Structure"
      ],
      "score_reliability": {
        "state": "contested",
        "threshold": 0.2,
        "runs_total": 22,
        "versions_compared": [
          "2.5"
        ],
        "max_spread": 0.25,
        "contested": [
          {
            "axis": "threat_scale",
            "version": "2.5",
            "spread": 0.25,
            "low": {
              "label": "NTSMR-2.5-minimax/minimax-m2.5",
              "model": "minimax/minimax-m2.5",
              "effort": "?",
              "value": 0.65
            },
            "high": {
              "label": "NTSMR-2.5-claude-sonnet-4-6-low",
              "model": "claude-sonnet-4-6",
              "effort": "low",
              "value": 0.9
            }
          }
        ]
      }
    },
    {
      "slug": "kim_stanley_robinson_blue_mars",
      "title": "Blue Mars",
      "author": "Kim Stanley Robinson",
      "year": 1996,
      "medium": "book",
      "genre_tags": [],
      "tropes": [],
      "quadrant_scores": {
        "time_linearity": 0.45,
        "pacing_velocity": 0.7,
        "threat_scale": 0.85,
        "protagonist_fate": 0.55,
        "conflict_style": 0.65,
        "price_type": 0.6
      },
      "provenance": {
        "analysis_run": "NTSMR-2.5-claude-sonnet-4-6-low",
        "analysis_body_sha256": "0d78444c3c06769d74ff7f04d3b14e22ac5341cb970845e19e89804b6e76cd85",
        "synthesis": {
          "path": "nartopo-tools/artifacts/kim_stanley_robinson_blue_mars.md.ntsmr-2-5-claude-sonnet-4-6-low.synthesis.json",
          "sha256": "4582f958befc09a44204c8e8cc3cefc781e2dd2490629882085f0fe44e533c60"
        },
        "report": {
          "path": "nartopo-tools/artifacts/kim_stanley_robinson_blue_mars.md.ntsmr-2-5-claude-sonnet-4-6-low.report.json",
          "sha256": "7b2666d3d1e4a5834f21c43560d9b2111db7248c5acc14046f0f56429ce85041"
        },
        "source": {
          "path": "Kim Stanley Robinson/Blue Mars.txt",
          "sha256": "9f785bbbeb37c4b36a5c3a40d0bc447cc39d90429043f6e693e6521f9d9f7c8b",
          "digest_observed_at": "2026-09-09",
          "digest_at_analysis_run": null,
          "edition": null,
          "edition_status": "unresolved"
        },
        "pipeline_revision_at_run": null,
        "verification": {
          "source": "unverified",
          "human_review": "unreviewed",
          "bibliography": "unverified"
        },
        "issues": [],
        "todorov_status": "recovered-from-synthesis",
        "work_identity": {
          "title": "Blue Mars",
          "author": "Kim Stanley Robinson",
          "year": 1996
        }
      },
      "ntsmr": {
        "version": "2.5",
        "primary_run_label": "NTSMR-2.5-claude-sonnet-4-6-low",
        "runs": {
          "NTSMR-2.4-claude-sonnet-4-6-low": {
            "pipeline_version": "2.4",
            "backend": "claude",
            "model": "claude-sonnet-4-6",
            "scores": {
              "time_linearity": 0.28,
              "pacing_velocity": 0.62,
              "threat_scale": 0.88,
              "protagonist_fate": 0.48,
              "conflict_style": 0.58,
              "price_type": 0.45
            },
            "score_space": "site-v1",
            "reasoning_effort": "low"
          },
          "NTSMR-2.5-claude-sonnet-4-6-low": {
            "pipeline_version": "2.5",
            "backend": "claude",
            "model": "claude-sonnet-4-6",
            "scores": {
              "time_linearity": 0.45,
              "pacing_velocity": 0.7,
              "threat_scale": 0.85,
              "protagonist_fate": 0.55,
              "conflict_style": 0.65,
              "price_type": 0.6
            },
            "score_space": "site-v1",
            "reasoning_effort": "low"
          },
          "NTSMR-2.5-balanced-glm-5+deepseek-v3.2": {
            "pipeline_version": "2.5",
            "backend": "openrouter",
            "model": "balanced-routing",
            "scores": {
              "time_linearity": 0.28,
              "pacing_velocity": 0.68,
              "threat_scale": 0.82,
              "protagonist_fate": 0.48,
              "conflict_style": 0.62,
              "price_type": 0.48
            },
            "score_space": "site-v1",
            "score_only": true,
            "source_run_label": "NTSMR-2.5-claude-sonnet-4-6-low"
          }
        }
      },
      "todorov_stages": {
        "equilibrium": "The First Hundred arrive on Mars as a cohesive scientific mission united by a shared goal of establishing the first permanent human settlement, with social bonds forged during the nine-month voyage and a provisional consensus around cooperative exploration and scientific inquiry.",
        "disruption": "Ideological fractures emerge immediately upon arrival and intensify through the terraforming debate between Ann Clayborne's preservationist Reds and Sax Russell's interventionist Greens, compounded by corporate and UN encroachment via transnational contracts, mass immigration through the space elevator, and the assassination of John Boone — the colony's unifying political figure — which removes the last mediating force capable of holding the First Hundred together.",
        "recognition": "Multiple recognition moments accumulate: Boone himself recognizes his naivety in believing personal connection alone could shape Mars and sees the need for collective political vision; Frank recognizes that UNOMA has systematically broken the treaty under cover of elevator construction; Sax recognizes that transnationals now effectively govern both Mars and Earth and that the 2061 war changed nothing structurally; Maya's discovery that Frank murdered John Boone shatters her remaining framework for understanding the colony's history.",
        "repair": "The underground congress at Dorsa Brevia attempts collective repair — the First Hundred and second-generation Martians draft a seven-point consensus document establishing foundational principles for Martian self-governance, while Nadia engineers the liberation of Underhill and Maya addresses the crowd in Burroughs offering UNTA forces free passage, and Art negotiates Praxis support and World Court recognition as the revolution spreads across the planet.",
        "new_equilibrium": "Mars achieves a fragile independence: Earth brokers a ceasefire, India recognizes Martian sovereignty, sea-level rise from the Antarctic collapse reshapes Earth's political priorities, and the Martian underground prepares to form a legitimate government based on the Dorsa Brevia Declaration — though the new order is unstable, contested, and haunted by unresolved tensions between Reds and Greens, the fate of Hiroko, and the ongoing threat of Earth reinforcement."
      },
      "characters": [
        {
          "name": "Maya",
          "slug": "maya",
          "aliases": [
            "Maya Katarina Toitovna",
            "Maya Toitovna",
            "Ludmilla Novosibirskaya",
            "Black Widow",
            "the Bitch",
            "the Killer"
          ],
          "role": "Russian contingent leader and central POV character",
          "summary": "Experiences existential crisis on her 130th birthday, learns of rumors implicating Frank in John's murder, shaves her head in dissociation, is counseled by Michel, and then travels to Burroughs to organize resistance."
        },
        {
          "name": "Arkady",
          "slug": "arkady",
          "aliases": [],
          "role": "Russian provocateur and political radical",
          "summary": "Russian idealist and revolutionary; delivers the core manifesto that Mars must transform not only its environment but its social systems; argues for ignoring Earth's legal frameworks"
        },
        {
          "name": "Ann",
          "slug": "ann",
          "aliases": [
            "Ann Clayborne"
          ],
          "role": "Geologist and Red anti-terraforming advocate",
          "summary": "Red leader and geologist; argues terraforming removes tactical leverage for revolution, debates Sax with unusual dispassion, dismisses areoforming as illusion, later confronts Sax about the lens destruction"
        },
        {
          "name": "Phyllis Boyle",
          "slug": "phyllis-boyle",
          "aliases": [
            "Phyllis"
          ],
          "role": "Antagonist-adjacent / political informant",
          "summary": "Pro-corporate former Transitional Authority president who conducts a brief affair with Sax-as-Lindholm while revealing transnational power dynamics"
        },
        {
          "name": "Hiroko",
          "slug": "hiroko",
          "aliases": [],
          "role": "Actantial opponent / spiritual leader",
          "summary": "Biologist and underground spiritual leader; commands the dome's collapse as defense, directs survivors to Dorsa Brevia, advocates for the silk/aerogel revolution and areophany against Ann's destructive approach"
        },
        {
          "name": "Rya Jimenez",
          "slug": "rya-jimenez",
          "aliases": [],
          "role": "Crew member / pilot",
          "summary": "Reports the solar flare and voices apolitical sentiment during Arkady's speech."
        },
        {
          "name": "Alex",
          "slug": "alex",
          "aliases": [],
          "role": "Russian crew member",
          "summary": "Follower of Arkady; argues forcefully that the United States is the most reactionary country in the world."
        },
        {
          "name": "John Boone",
          "slug": "john-boone",
          "aliases": [
            "Big Man"
          ],
          "role": "Charismatic visionary and political figure",
          "summary": "Charismatic first man on Mars, continuing saboteur investigation while traveling the planet, building political alliances, and arguing against both corporate takeover and revolutionary violence."
        },
        {
          "name": "Frank",
          "slug": "frank",
          "aliases": [
            "Frank Chalmers",
            "Chalmers"
          ],
          "role": "American political operator and co-leader",
          "summary": "American political operator; watches Maya-John pairing with cold hostility; seeks Nadia's counsel about Maya's psychological background; described as bulky with power and his own internal dynamo"
        },
        {
          "name": "Sax",
          "slug": "sax",
          "aliases": [
            "Sax Russell",
            "Saxifrage Russell",
            "Stephen Lindholm",
            "General Sax"
          ],
          "role": "Terraforming scientist, resistance weapons designer",
          "summary": "Terraforming architect arguing through severe speech impairment; pivots at congress to support limited ecopoetic terraforming, destroys the orbital lens, confesses retrospective regret about the terraforming program"
        },
        {
          "name": "Michel",
          "slug": "michel",
          "aliases": [
            "Michel Duval"
          ],
          "role": "Colony psychiatrist and POV character",
          "summary": "Provides emotional anchoring for Maya; argues against Jackie's urgency; learns to provoke rather than soothe Maya's mood swings; interprets political events with stubborn optimism."
        },
        {
          "name": "Nadia",
          "slug": "nadia",
          "aliases": [
            "Nadezhda Cherneshevsky",
            "Nadia Chernevsky",
            "Nadia Cherneshevsky"
          ],
          "role": "Engineer and revolutionary coordinator",
          "summary": "Engineer and practical problem-solver; primary POV in early Mars surface sections; fixes equipment, builds habitats, mediates interpersonal conflict; background in Siberian power industry"
        },
        {
          "name": "Samantha",
          "slug": "samantha",
          "aliases": [],
          "role": "minor",
          "summary": "Fellow engineer working alongside Nadia on surface equipment operations; causes a tractor accident while maneuvering a heavy load"
        },
        {
          "name": "Vlad",
          "slug": "vlad",
          "aliases": [],
          "role": "First Hundred / strategist",
          "summary": "Medical figure who debates whether Simon's death was premature given longevity treatments; co-develops the underground economic system with Marina"
        },
        {
          "name": "Spencer",
          "slug": "spencer",
          "aliases": [],
          "role": "Sax's associate, resistance member",
          "summary": "Explains Sax's interrogation to Nirgal, identifies Phobos carbonaceous chondrite samples, and coins the term 'phobosite'."
        },
        {
          "name": "George",
          "slug": "george",
          "aliases": [],
          "role": "Minor colonist",
          "summary": "Built the ice-drum Greek temple on the chasma floor by noting the cylinders matched ancient Greek marble drum dimensions"
        },
        {
          "name": "Simon",
          "slug": "simon",
          "aliases": [],
          "role": "Ann's companion",
          "summary": "Community member who dies of an unstoppable disease; buried in the beach sand at Zygote; his death triggers Nirgal's existential crisis"
        },
        {
          "name": "Okakura",
          "slug": "okakura",
          "aliases": [],
          "role": "Industrial settlement manager",
          "summary": "Manager at Senzeni Na mohole operation; visibly frightened after the near-fatal truck incident."
        },
        {
          "name": "Helmut Bronski",
          "slug": "helmut-bronski",
          "aliases": [],
          "role": "UNOMA chief",
          "summary": "German political operative; informs Boone of the Armscor concession and defends treaty erosion as pragmatic realpolitik."
        },
        {
          "name": "Coyote",
          "slug": "coyote",
          "aliases": [
            "the coyote",
            "Desmond"
          ],
          "role": "Trickster / underground network operator",
          "summary": "Stowaway original colonist; guides Nirgal on surface journeys, distributes goods across sanctuaries, philosophizes about anarchy and freedom; physically asymmetric face, gray dreadlocks"
        },
        {
          "name": "Dhu",
          "slug": "dhu",
          "aliases": [],
          "role": "Sufi community member",
          "summary": "Speaks cryptically about John's nafs and Frank Chalmers as John's shadow self; leads the dervish gathering on the mesa."
        },
        {
          "name": "Mary",
          "slug": "mary",
          "aliases": [],
          "role": "Engineer / settler",
          "summary": "Caps a dangerous wellhead explosion by detonating a charge beside it; has studied well-capping since a prior incident."
        },
        {
          "name": "Sam Houston",
          "slug": "sam-houston",
          "aliases": [],
          "role": "UNOMA/FBI investigator",
          "summary": "Tall brown-haired agent leading a ten-person team investigating sabotage on Mars; polite and deferential but reticent."
        },
        {
          "name": "Marian",
          "slug": "marian",
          "aliases": [],
          "role": "Revolutionary cell member",
          "summary": "Shows John the hidden habitat prepared for revolution, listing Hiroko and Arkady's network of caches; dismisses John's political arguments as mere words."
        },
        {
          "name": "Ursula",
          "slug": "ursula",
          "aliases": [],
          "role": "Scientist at Acheron",
          "summary": "Vlad's partner; insists Simon's death was premature because better facilities at Acheron might have saved him"
        },
        {
          "name": "Andy Jahns",
          "slug": "andy-jahns",
          "aliases": [],
          "role": "Corporate fixer / transnat lobbyist",
          "summary": "Old contact of Frank's who offers a thinly veiled bribe via a foundation position; Frank accepts performatively while planning to continue working against transnat interests."
        },
        {
          "name": "Zeyk",
          "slug": "zeyk",
          "aliases": [],
          "role": "Arab elder, eyewitness to Boone's murder",
          "summary": "Welcomes Frank to the mobile mining operation on the Great Escarpment; articulates Islamic philosophy of transforming the world to actualize divine pattern."
        },
        {
          "name": "Slusinski",
          "slug": "slusinski",
          "aliases": [],
          "role": "actantial:helper",
          "summary": "Frank's staff aide who provides logistical and political information about Sheffield and the elevator"
        },
        {
          "name": "Roald",
          "slug": "roald",
          "aliases": [],
          "role": "actantial:helper",
          "summary": "Associate of Arkady who had voted in favor of sending Nemesis toward Earth"
        },
        {
          "name": "Sasha",
          "slug": "sasha",
          "aliases": [],
          "role": "First hundred member",
          "summary": "Killed in the airlock at Cairo's north gate during the Phobos strike that destroys the arriving caravan."
        },
        {
          "name": "Yeli Zudov",
          "slug": "yeli-zudov",
          "aliases": [
            "Yeli"
          ],
          "role": "actantial:helper",
          "summary": "Member of Nadia's team who analyzes watershed topology and helps program robots for the pipeline solution"
        },
        {
          "name": "Kasei",
          "slug": "kasei",
          "aliases": [],
          "role": "Mixed-generation Martian guide",
          "summary": "Contacts Nadia by wrist with visible excitement during the revolution; his face is described as a striking blend of John Boone's and Hiroko's features."
        },
        {
          "name": "Steve",
          "slug": "steve",
          "aliases": [],
          "role": "Rebel engineer",
          "summary": "Explains the Clarke detachment operation to the arriving travelers; expresses remorse when Ann fears someone was aboard."
        },
        {
          "name": "Nirgal",
          "slug": "nirgal",
          "aliases": [],
          "role": "Second-generation Martian protagonist",
          "summary": "Second-generation Martian child raised in Zygote; experiences first death, first journey, first love; characterized by endurance, warmth, and growing awareness of otherness"
        },
        {
          "name": "Jackie",
          "slug": "jackie",
          "aliases": [
            "Jackie Boone"
          ],
          "role": "Second-generation Martian / political actor",
          "summary": "John Boone's granddaughter; defends areoforming and native Martian identity against Ann, advocates engaging with Fort's Praxis rather than reflexive rejection, invokes Boonean pragmatism"
        },
        {
          "name": "Dao",
          "slug": "dao",
          "aliases": [],
          "role": "secondary",
          "summary": "Community member and rival for Jackie's attention; embraced by Jackie immediately after she and Nirgal have sex"
        },
        {
          "name": "Peter",
          "slug": "peter",
          "aliases": [],
          "role": "Underground contact/engineer",
          "summary": "Relays the near-collision crisis between Deimos and the elevator cable to Sax, coordinating with friends on the elevator."
        },
        {
          "name": "Hilali",
          "slug": "hilali",
          "aliases": [],
          "role": "minor",
          "summary": "Small dark-skinned guide at Bogdanov Vishniac who shows Nirgal the settlement and takes him for DNA testing"
        },
        {
          "name": "Charlotte",
          "slug": "charlotte",
          "aliases": [],
          "role": "actantial:helper",
          "summary": "Constitutional scholar from Dorsa Brevia; constructs a Swiss-style governance framework for the congress, encourages the leadership trio with historical precedents"
        },
        {
          "name": "Art Randolph",
          "slug": "art-randolph",
          "aliases": [
            "Arthur Randolph",
            "Bear Man"
          ],
          "role": "Protagonist / diplomatic facilitator",
          "summary": "Big, shambling engineer-turned-arbitrator and social engineer hired by Praxis; dispatched to Mars to make contact with the underground on Fort's behalf"
        },
        {
          "name": "Fort",
          "slug": "fort",
          "aliases": [],
          "role": "Actantial sender / mentor figure",
          "summary": "Praxis CEO; addresses congress on ecocapitalism, World Court arbitration, and metanational landscape; his presence polarizes the congress between isolationists and two-worlders"
        },
        {
          "name": "Zafir",
          "slug": "zafir",
          "aliases": [],
          "role": "Helper / technical expert",
          "summary": "Head of Ouroborous's fallen cable salvage project; shows Art the Beast and explains the buckyball discoveries"
        },
        {
          "name": "Adrienne",
          "slug": "adrienne",
          "aliases": [],
          "role": "Helper / orientation guide",
          "summary": "Praxis staff member who runs orientation for new arrivals and accompanies Art on tours of Sheffield"
        },
        {
          "name": "Sharon",
          "slug": "sharon",
          "aliases": [],
          "role": "Minor / absent character",
          "summary": "Art's estranged wife, now with a Mitsubishi vice-chairman; her absence motivates Art's receptiveness to the Mars assignment"
        },
        {
          "name": "Claire",
          "slug": "claire",
          "aliases": [],
          "role": "Colleague",
          "summary": "Biotique researcher and informal leader of the café group; pushes for expanding beyond lichens to subalpine forests"
        },
        {
          "name": "Berkina",
          "slug": "berkina",
          "aliases": [],
          "role": "Colleague",
          "summary": "Kenyan scientist at Biotique who discusses transnational politics and nitrogen dynamics with Sax"
        },
        {
          "name": "Jessica",
          "slug": "jessica",
          "aliases": [],
          "role": "Colleague",
          "summary": "Biotique researcher who shares nitrous oxide with Sax and later compliments his dancing"
        },
        {
          "name": "Art",
          "slug": "art",
          "aliases": [],
          "role": "Praxis representative and diplomatic facilitator",
          "summary": "Praxis diplomat and congress facilitator; proposes economic reframing of revolution, manages Fort's difficult reception, co-authors and reads the seven-point governance document"
        },
        {
          "name": "Dhu el-Nun",
          "slug": "dhu-el-nun",
          "aliases": [],
          "role": "Sufi community leader",
          "summary": "Small black man leading a Sufi canyon cliff-dwelling; frames Nirgal's life as a tariqat and advises consulting Bedouin Arabs early in the congress process."
        },
        {
          "name": "Tanna",
          "slug": "tanna",
          "aliases": [],
          "role": "Polynesian community member",
          "summary": "A Polynesian woman from New Vanuatu who articulates the 'indigenous movement' philosophy and frames the underground as a kind of Polynesia."
        },
        {
          "name": "Marina",
          "slug": "marina",
          "aliases": [],
          "role": "Messenger / First Hundred survivor",
          "summary": "Arrives shaking at Maya's apartment to report the fall of Sabishii; escaped with Vlad and Ursula from an outlying hermitage boulder."
        },
        {
          "name": "Nazik",
          "slug": "nazik",
          "aliases": [],
          "role": "Zeyk's partner",
          "summary": "Present at fireside testimony; confirms details of el-Hayil's death."
        },
        {
          "name": "Selim el-Hayil",
          "slug": "selim-el-hayil",
          "aliases": [],
          "role": "Deceased Arab conspirator",
          "summary": "Conservative Ahad leader who died naming Chalmers; confessed to planning to kill Boone before dying in Zeyk's arms."
        },
        {
          "name": "Diana",
          "slug": "diana",
          "aliases": [],
          "role": "Fourth-generation Martian",
          "summary": "Travels with Maya to Minus One; commences a romance with Frantz on the island shore."
        },
        {
          "name": "Hastings",
          "slug": "hastings",
          "aliases": [],
          "role": "UNTA security commander",
          "summary": "Short, thin-faced bureaucrat who refuses to cede Burroughs; loses control of his forces when the dike is breached; cuts off communication with Nadia"
        }
      ],
      "frameworks_mapped": [
        "Protocol Fiction Mapping",
        "Actantial Model",
        "Todorov's Equilibrium",
        "The Freytag Pyramid",
        "Propp's Morphology",
        "Genette's Narrative",
        "The Monomyth",
        "Dan Harmon",
        "Save the Cat",
        "Kishōtenketsu",
        "The Three-Act Structure",
        "Lévi-Strauss's Binary Oppositions",
        "Cognitive Estrangement",
        "Bakhtin's Chronotope",
        "Aristotelian Poetics",
        "Jungian Archetypal Analysis",
        "Genette's Transtextuality"
      ],
      "score_reliability": {
        "state": "replicated-agree",
        "threshold": 0.2,
        "runs_total": 3,
        "versions_compared": [
          "2.5"
        ],
        "max_spread": 0.17,
        "contested": []
      }
    },
    {
      "slug": "alastair_reynolds_chasm_city",
      "title": "Chasm City",
      "author": "Alastair Reynolds",
      "year": 2001,
      "medium": "book",
      "genre_tags": [
        "science fiction",
        "space opera"
      ],
      "tropes": [],
      "quadrant_scores": {
        "time_linearity": 0.8,
        "pacing_velocity": 0.72,
        "threat_scale": 0.45,
        "protagonist_fate": 0.55,
        "conflict_style": 0.7,
        "price_type": 0.75
      },
      "baseline_quadrant_scores": {
        "time_linearity": 0.9,
        "pacing_velocity": 0.5,
        "threat_scale": 0.8,
        "protagonist_fate": 0.8,
        "conflict_style": 0.4,
        "price_type": 0.8
      },
      "provenance": {
        "analysis_run": "NTSMR-2.5-claude-sonnet-4-6-low",
        "analysis_body_sha256": "d531022308157328db7bede044c577005446c0e29bd41cf1e2ab625bc967fa15",
        "synthesis": {
          "path": "nartopo-tools/artifacts/alastair_reynolds_chasm_city.md.ntsmr-2-5-claude-sonnet-4-6-low.synthesis.json",
          "sha256": "1eba89b74d842104bad5da3f1b864e55f4497929d4c19016fce24293468caf1f"
        },
        "report": {
          "path": "nartopo-tools/artifacts/alastair_reynolds_chasm_city.md.ntsmr-2-5-claude-sonnet-4-6-low.report.json",
          "sha256": "3a06dfb8bfe4fe876e7fc8755ec92d8894aa91761230a2dde03b78a7f041c62c"
        },
        "source": {
          "path": "Alastair Reynolds/Chasm City (2001).txt",
          "sha256": "d0b7b75caa4abdf3ce0671541c86957746e0b86f47beefa59ba06ed7f6d9c378",
          "digest_observed_at": "2026-09-09",
          "digest_at_analysis_run": null,
          "edition": null,
          "edition_status": "unresolved"
        },
        "pipeline_revision_at_run": null,
        "verification": {
          "source": "unverified",
          "human_review": "unreviewed",
          "bibliography": "unverified"
        },
        "issues": [],
        "todorov_status": "recovered-from-synthesis",
        "work_identity": {
          "title": "Chasm City",
          "author": "Alastair Reynolds",
          "year": 2001
        }
      },
      "ntsmr": {
        "version": "2.5",
        "primary_run_label": "NTSMR-2.5-claude-sonnet-4-6-low",
        "runs": {
          "NTSMR-2.3-gemini-3.1-pro-preview": {
            "pipeline_version": "2.3",
            "backend": "gemini",
            "model": "gemini-3.1-pro-preview",
            "scores": {
              "time_linearity": 0.9,
              "pacing_velocity": 0.75,
              "threat_scale": 0.65,
              "protagonist_fate": 0.85,
              "conflict_style": 0.45,
              "price_type": 0.9
            },
            "score_space": "site-v1"
          },
          "NTSMR-2.3-claude-sonnet-4-6-low": {
            "pipeline_version": "2.3",
            "backend": "claude",
            "model": "claude-sonnet-4-6",
            "scores": {
              "time_linearity": 0.82,
              "pacing_velocity": 0.72,
              "threat_scale": 0.61,
              "protagonist_fate": 0.74,
              "conflict_style": 0.68,
              "price_type": 0.78
            },
            "score_space": "site-v1",
            "reasoning_effort": "low"
          },
          "NTSMR-2.4-claude-sonnet-4-6-low": {
            "pipeline_version": "2.4",
            "backend": "claude",
            "model": "claude-sonnet-4-6",
            "scores": {
              "time_linearity": 0.75,
              "pacing_velocity": 0.65,
              "threat_scale": 0.45,
              "protagonist_fate": 0.6,
              "conflict_style": 0.55,
              "price_type": 0.6
            },
            "score_space": "site-v1",
            "reasoning_effort": "low"
          },
          "NTSMR-2.5-claude-sonnet-4-6-low": {
            "pipeline_version": "2.5",
            "backend": "claude",
            "model": "claude-sonnet-4-6",
            "scores": {
              "time_linearity": 0.8,
              "pacing_velocity": 0.72,
              "threat_scale": 0.45,
              "protagonist_fate": 0.55,
              "conflict_style": 0.7,
              "price_type": 0.75
            },
            "score_space": "site-v1",
            "reasoning_effort": "low"
          },
          "NTSMR-2.5-balanced-glm-5+deepseek-v3.2": {
            "pipeline_version": "2.5",
            "backend": "openrouter",
            "model": "balanced-routing",
            "scores": {
              "time_linearity": 0.75,
              "pacing_velocity": 0.7,
              "threat_scale": 0.4,
              "protagonist_fate": 0.65,
              "conflict_style": 0.55,
              "price_type": 0.65
            },
            "score_space": "site-v1",
            "score_only": true,
            "source_run_label": "NTSMR-2.5-claude-sonnet-4-6-low"
          }
        }
      },
      "todorov_stages": {
        "equilibrium": "Tanner Mirabel exists in a fragile provisional stability aboard Idlewild: cared for by Amelia, physically recovering, and operating under the working hypothesis that he is a war hero from Nueva Valparaiso with amnesia that may or may not resolve.",
        "disruption": "The revelation that Tanner carries a Haussmann indoctrinal virus — diagnosed by Sister Duscha from brain scans showing concentrated neurogenesis near his perceptual centres — fundamentally destabilises his identity. His memories and dreams of Sky Haussmann are not spontaneous recovery but viral implantation, rendering his emerging self-narrative unreliable.",
        "recognition": "Tanner recognises the full scope of his disrupted identity through two convergent discoveries: tipping out the contradictory passports and ID cards that show him as a ghost moving across factional borders, and receiving Duscha's diagnosis that the palm wound connected him to a Haussmann cult and has been rewriting his perceptions from within.",
        "repair": "Tanner refuses treatment, insists on leaving Idlewild, and — feigning partial amnesia with Amelia — extracts confirmation that Argent Reivich has already passed through the Hospice. He reasserts agency by pursuing his pre-existing mission rather than submitting to neurological intervention, using the recovered mercenary identity as a stable platform for forward action.",
        "new_equilibrium": "The novel closes on a shifted baseline: Tanner is no longer a passive amnesiac awaiting recovery but an operative with a reconstructed (if virus-contaminated) identity, a confirmed target in Reivich, and a past anchored in mercenary service under Cahuella. The equilibrium is unstable by design — the virus persists, the mission is incomplete — but Tanner has transitioned from patient to agent."
      },
      "characters": [
        {
          "name": "Tanner Mirabel",
          "slug": "tanner-mirabel",
          "aliases": [
            "Tanner",
            "slush puppy",
            "hero of Nueva Valparaiso"
          ],
          "role": "Narrator and patient",
          "summary": "A former soldier, sniper, and mercenary recovering from amnesia in the Idlewild habitat. He discovers hidden weapons and forged passports among his belongings, indicating a dangerous past."
        },
        {
          "name": "Amelia",
          "slug": "amelia",
          "aliases": [],
          "role": "Ice Mendicant and caretaker",
          "summary": "A Mendicant who cares for Tanner during his recovery, trusts him enough to show him secret areas of Idlewild, and learns self-defense from him after being harassed."
        },
        {
          "name": "Alexei",
          "slug": "alexei",
          "aliases": [
            "Brother Alexei",
            "big boy"
          ],
          "role": "Hostile Mendicant",
          "summary": "A pale, cadaverous Mendicant who stalks and harasses Amelia until Tanner physically subdues and threatens him."
        },
        {
          "name": "Sky Haussmann",
          "slug": "sky-haussmann",
          "aliases": [
            "Titus",
            "Sky"
          ],
          "role": "Historical figure and child on the Santiago",
          "summary": "A ten-year-old boy experiencing life aboard the interstellar generation ship Santiago. His childhood memories are being virally implanted into Tanner's mind."
        },
        {
          "name": "Sister Duscha",
          "slug": "sister-duscha",
          "aliases": [
            "Duscha"
          ],
          "role": "Neurological specialist",
          "summary": "An older, unsmiling Mendicant who diagnoses Tanner with a Haussmann indoctrinal virus that is rewriting his neural pathways."
        },
        {
          "name": "Gitta",
          "slug": "gitta",
          "aliases": [],
          "role": "Woman from Tanner's past",
          "summary": "A strikingly beautiful dark-haired woman seen in a photograph Tanner finds in his hidden belongings."
        },
        {
          "name": "Argent Reivich",
          "slug": "argent-reivich",
          "aliases": [
            "Reivich"
          ],
          "role": "Assassination target",
          "summary": "A man whose existence is the defining fact of Tanner's universe; Tanner is secretly planning to leave Idlewild to track him down."
        }
      ],
      "frameworks_mapped": [
        "Protocol Fiction Mapping",
        "Actantial Model",
        "Todorov's Equilibrium",
        "The Freytag Pyramid",
        "Propp's Morphology",
        "Genette's Narrative",
        "The Monomyth",
        "Dan Harmon",
        "Save the Cat",
        "Kishōtenketsu",
        "The Three-Act Structure"
      ],
      "score_reliability": {
        "state": "replicated-agree",
        "threshold": 0.2,
        "runs_total": 5,
        "versions_compared": [
          "2.5"
        ],
        "max_spread": 0.15,
        "contested": []
      }
    },
    {
      "slug": "arthur_c_clarke_childhoods_end",
      "title": "Childhood's End",
      "author": "Arthur C. Clarke",
      "year": 1953,
      "medium": "book",
      "genre_tags": [],
      "tropes": [],
      "quadrant_scores": {
        "time_linearity": 0.38,
        "pacing_velocity": 0.72,
        "threat_scale": 0.97,
        "protagonist_fate": 0.82,
        "conflict_style": 0.78,
        "price_type": 0.82
      },
      "provenance": {
        "analysis_run": "NTSMR-2.5-claude-sonnet-4-6-low",
        "analysis_body_sha256": "faa6771822b9ab4ac8c17d95b1147d5c19caf60c5177036db9918b14b682e8df",
        "synthesis": {
          "path": "nartopo-tools/artifacts/arthur_c_clarke_childhoods_end.md.ntsmr-2-5-claude-sonnet-4-6-low.synthesis.json",
          "sha256": "a5d60b8447a1df02245d5ad3eb6b36ea30294264c808f46ca0eeab26ac2384a2"
        },
        "report": {
          "path": "nartopo-tools/artifacts/arthur_c_clarke_childhoods_end.md.ntsmr-2-5-claude-sonnet-4-6-low.report.json",
          "sha256": "00f597a24381e031244bd08c36bef31202ca41a713de58e0aabb94b2cd629d77"
        },
        "source": {
          "path": "Arthur C. Clarke/Childhoods End.txt",
          "sha256": "df60339fae5bc1f59b0a76bf8dddf274bd05cac62b7a3993638195f10eda692b",
          "digest_observed_at": "2026-09-09",
          "digest_at_analysis_run": null,
          "edition": null,
          "edition_status": "unresolved"
        },
        "pipeline_revision_at_run": null,
        "verification": {
          "source": "unverified",
          "human_review": "unreviewed",
          "bibliography": "unverified"
        },
        "issues": [],
        "todorov_status": "recovered-from-synthesis",
        "work_identity": {
          "title": "Childhood's End",
          "author": "Arthur C. Clarke",
          "year": 1953
        }
      },
      "ntsmr": {
        "version": "2.5",
        "primary_run_label": "NTSMR-2.5-claude-sonnet-4-6-low",
        "runs": {
          "NTSMR-2.4-claude-sonnet-4-6-low": {
            "pipeline_version": "2.4",
            "backend": "claude",
            "model": "claude-sonnet-4-6",
            "scores": {
              "time_linearity": 0.38,
              "pacing_velocity": 0.68,
              "threat_scale": 0.92,
              "protagonist_fate": 0.82,
              "conflict_style": 0.78,
              "price_type": 0.72
            },
            "score_space": "site-v1",
            "reasoning_effort": "low"
          },
          "NTSMR-2.5-claude-sonnet-4-6-low": {
            "pipeline_version": "2.5",
            "backend": "claude",
            "model": "claude-sonnet-4-6",
            "scores": {
              "time_linearity": 0.38,
              "pacing_velocity": 0.72,
              "threat_scale": 0.97,
              "protagonist_fate": 0.82,
              "conflict_style": 0.78,
              "price_type": 0.82
            },
            "score_space": "site-v1",
            "reasoning_effort": "low"
          },
          "NTSMR-2.5-balanced-glm-5+deepseek-v3.2": {
            "pipeline_version": "2.5",
            "backend": "openrouter",
            "model": "balanced-routing",
            "scores": {
              "time_linearity": 0.2,
              "pacing_velocity": 0.75,
              "threat_scale": 0.92,
              "protagonist_fate": 0.65,
              "conflict_style": 0.8,
              "price_type": 0.75
            },
            "score_space": "site-v1",
            "score_only": true,
            "source_run_label": "NTSMR-2.5-claude-sonnet-4-6-low"
          }
        }
      },
      "todorov_stages": {
        "equilibrium": "Humanity exists in a pre-contact state of political fragmentation, Cold War rivalry, and independent civilization, with Reinhold and others racing toward space while unaware of imminent contact—a familiar if unstable human world order.",
        "disruption": "Vast Overlord ships materialize over Earth's cities; Karellen broadcasts to humanity, ending human autonomy and irrevocably splitting history as the planet falls under benevolent but absolute alien authority.",
        "recognition": "Stormgren, as humanity's sole intermediary, gradually comprehends the full scope of Overlord control—probing Karellen about past visits and hidden purposes, while the broader world recognizes through events like Karellen's public self-revelation that the Overlords' dominance is permanent and their motives exceed mere civilizing.",
        "repair": "Karellen reveals himself publicly, holding two children, allowing humanity to confront and metabolize his demonic appearance; Stormgren negotiates and mediates between species; Jan stows away to learn the Overlords' secrets; and humanity adapts by accepting the Golden Age conditions—shortened work weeks, end of war and crime—trading autonomy for comfort and security.",
        "new_equilibrium": "Fifty years on, Earth exists in a creatively sterile but peaceful utopia under Overlord oversight; religion has collapsed, science has stagnated, and humanity has settled into purposeful contentment—until a second, irreversible disruption begins as the children transcend, leaving Jan as the last human witness to a depopulated Earth and Karellen departing homeward, mourning his own race's permanent exclusion from the Overmind's greatness."
      },
      "characters": [
        {
          "name": "Reinhold",
          "slug": "reinhold",
          "aliases": [],
          "role": "German rocket engineer",
          "summary": "Peenemünde veteran working for Americans in early space race; witnesses the alien fleet's arrival, feeling history rupture from the past."
        },
        {
          "name": "Stormgren",
          "slug": "stormgren",
          "aliases": [
            "Rikki",
            "Secretary-General"
          ],
          "role": "UN Secretary-General, humanity's intermediary with Karellen",
          "summary": "Serves as sole human contact with Karellen; kidnapped by extremists, used as bait, rescued; attempts to glimpse Karellen at final meeting; retires to lakeside home."
        },
        {
          "name": "Karellen",
          "slug": "karellen",
          "aliases": [
            "Supervisor",
            "the Supervisor",
            "Supervisor for Earth",
            "Mr. Supervisor"
          ],
          "role": "Overlord Supervisor for Earth",
          "summary": "Alien supervisor who broadcasts to humanity, orchestrates the kidnapping trap, reveals his demonic appearance publicly, and outlines the Overlords' long-term but cryptic plans."
        },
        {
          "name": "Van Ryberg",
          "slug": "van-ryberg",
          "aliases": [
            "Pieter"
          ],
          "role": "Stormgren's assistant",
          "summary": "Manages the UN during Stormgren's kidnapping, contacts Karellen via teleprinter, and proposes theories about the Overlords."
        },
        {
          "name": "Joe",
          "slug": "joe",
          "aliases": [],
          "role": "Extremist captor/guard",
          "summary": "A 'big Pole' who guards Stormgren during captivity, explains the kidnapping scheme with gusto, and plays poker with the captive."
        },
        {
          "name": "Wainwright",
          "slug": "wainwright",
          "aliases": [
            "Alexander Wainwright"
          ],
          "role": "Head of the Freedom League",
          "summary": "Meets with Stormgren to hear Karellen's fifty-year promise; disapproves of the kidnapping violence; his organization's extremist wing discredited."
        },
        {
          "name": "Rupert",
          "slug": "rupert",
          "aliases": [],
          "role": "Wealthy socialite",
          "summary": "Hosts the séance with detached scientific interest; brother-in-law to Jan; connects Jan to Sullivan's whale sculpture commission."
        },
        {
          "name": "Jean",
          "slug": "jean",
          "aliases": [],
          "role": "Party guest, George's companion",
          "summary": "George's wife, mother of Jeff and Jennifer Anne; feels vague hostility toward Overlords; witnesses the evacuation of the children."
        },
        {
          "name": "George Greggson",
          "slug": "george-greggson",
          "aliases": [
            "George"
          ],
          "role": "protagonist (Movement II)",
          "summary": "Skeptic at the séance who undergoes an emotional awakening when Jean faints, deciding to commit to her permanently; later moves his family to New Athens."
        },
        {
          "name": "Rashaverak",
          "slug": "rashaverak",
          "aliases": [
            "Rashy"
          ],
          "role": "Overlord observer",
          "summary": "Overlord assigned to observe paranormal phenomena; secretly monitors Jeff's dreams and explains the children's transcendence to George."
        },
        {
          "name": "Jan",
          "slug": "jan",
          "aliases": [
            "Jan Rodricks",
            "the last man"
          ],
          "role": "protagonist (stowaway arc)",
          "summary": "Returns from the Overlord home world to find Earth depopulated; the last surviving human, broadcasts a final eyewitness account of Earth's dissolution."
        },
        {
          "name": "Maia",
          "slug": "maia",
          "aliases": [],
          "role": "Rupert's partner",
          "summary": "Participant in the séance; addressee of Jan's farewell letter."
        },
        {
          "name": "Ruth Shoenberger",
          "slug": "ruth-shoenberger",
          "aliases": [
            "Benny",
            "Ruth"
          ],
          "role": "supporting",
          "summary": "Benny's companion; acts as séance recorder with notebook; her final page of notes vanishes after the séance."
        },
        {
          "name": "Professor Sullivan",
          "slug": "professor-sullivan",
          "aliases": [
            "Sullivan"
          ],
          "role": "helper",
          "summary": "Sculptor creating a whale-squid tableau for an Overlord cargo ship; assists Jan in designing and concealing his stowaway cell inside the whale sculpture."
        },
        {
          "name": "Mr. Golde",
          "slug": "mr-golde",
          "aliases": [],
          "role": "press figure",
          "summary": "Doyen of the Press Club; leads questioning of Karellen at the press conference."
        },
        {
          "name": "Charles Yan Sen",
          "slug": "charles-yan-sen",
          "aliases": [
            "Dr. Sen"
          ],
          "role": "Colony administrator",
          "summary": "Philosopher and current chairman of the New Athens council, ironic and cheerful, determined to assert human initiative before the visiting Overlord."
        },
        {
          "name": "Thanthalteresco",
          "slug": "thanthalteresco",
          "aliases": [
            "the Inspector"
          ],
          "role": "Overlord visitor",
          "summary": "An Overlord conducting a statistical survey of New Athens, engaging with academics about art, science, and human culture."
        },
        {
          "name": "Jeff",
          "slug": "jeff",
          "aliases": [],
          "role": "Transcending child",
          "summary": "George's son whose dreams reveal distant alien worlds; the first nucleus of humanity's transcendence, increasingly disconnected from waking reality."
        },
        {
          "name": "Vindarten",
          "slug": "vindarten",
          "aliases": [],
          "role": "Overlord companion",
          "summary": "The Overlord who befriended Jan on the voyage; prevents him from photographing the alien phenomenon, prompting Jan's realization that the Overlords have masters."
        },
        {
          "name": "Professor Chance",
          "slug": "professor-chance",
          "aliases": [],
          "role": "Academic",
          "summary": "Dean of the University of New Athens; challenges the Inspector on human initiative and the art-science dichotomy."
        }
      ],
      "frameworks_mapped": [
        "Protocol Fiction Mapping",
        "Actantial Model",
        "Todorov's Equilibrium",
        "The Freytag Pyramid",
        "Propp's Morphology",
        "Genette's Narrative",
        "The Monomyth",
        "Dan Harmon",
        "Save the Cat",
        "Kishōtenketsu",
        "The Three-Act Structure",
        "Lévi-Strauss's Binary Oppositions",
        "Cognitive Estrangement",
        "Bakhtin's Chronotope",
        "Aristotelian Poetics",
        "Jungian Archetypal Analysis",
        "Genette's Transtextuality"
      ],
      "score_reliability": {
        "state": "replicated-agree",
        "threshold": 0.2,
        "runs_total": 3,
        "versions_compared": [
          "2.5"
        ],
        "max_spread": 0.18,
        "contested": []
      }
    },
    {
      "slug": "william_gibson_count_zero",
      "title": "Count Zero",
      "author": "William Gibson",
      "year": 1986,
      "medium": "book",
      "genre_tags": [
        "science fiction",
        "cyberpunk"
      ],
      "tropes": [],
      "quadrant_scores": {
        "time_linearity": 0.45,
        "pacing_velocity": 0.45,
        "threat_scale": 0.55,
        "protagonist_fate": 0.55,
        "conflict_style": 0.45,
        "price_type": 0.55
      },
      "baseline_quadrant_scores": {
        "time_linearity": 0.4,
        "pacing_velocity": 0.2,
        "threat_scale": 0.8,
        "protagonist_fate": 0.6,
        "conflict_style": 0.2,
        "price_type": 0.4
      },
      "provenance": {
        "analysis_run": "NTSMR-2.5-claude-sonnet-4-6-low",
        "analysis_body_sha256": "ab681b8d9557f3b588fd516876533e6daa5e87d231a6749f962a7b3f70a847c3",
        "synthesis": {
          "path": "nartopo-tools/artifacts/william_gibson_count_zero.md.ntsmr-2-5-claude-sonnet-4-6-low.synthesis.json",
          "sha256": "e80a56b7841ab3b085d255a5e5861df6118a19cca42f8c8daee4efc8896b54ab"
        },
        "report": {
          "path": "nartopo-tools/artifacts/william_gibson_count_zero.md.ntsmr-2-5-claude-sonnet-4-6-low.report.json",
          "sha256": "1aeaa37f3a6678d9cc3c96b543f65c359c3cf0946a50e1d4ab7054bffd5dbedf"
        },
        "source": {
          "path": "William Gibson/Count Zero (1986).txt",
          "sha256": "b70d3b676877ad4f62b6a6c3920eaffc01357e356210fe740eef99630e4d0dae",
          "digest_observed_at": "2026-09-09",
          "digest_at_analysis_run": null,
          "edition": null,
          "edition_status": "unresolved"
        },
        "pipeline_revision_at_run": null,
        "verification": {
          "source": "unverified",
          "human_review": "unreviewed",
          "bibliography": "unverified"
        },
        "issues": [],
        "todorov_status": "recovered-from-synthesis",
        "work_identity": {
          "title": "Count Zero",
          "author": "William Gibson",
          "year": 1986
        }
      },
      "ntsmr": {
        "version": "2.5",
        "primary_run_label": "NTSMR-2.5-claude-sonnet-4-6-low",
        "runs": {
          "NTSMR-2.3-gemini-3.1-pro-preview": {
            "pipeline_version": "2.3",
            "backend": "gemini",
            "model": "gemini-3.1-pro-preview",
            "scores": {
              "time_linearity": 0.65,
              "pacing_velocity": 0.4,
              "threat_scale": 0.9,
              "protagonist_fate": 0.65,
              "conflict_style": 0.3,
              "price_type": 0.65
            },
            "score_space": "site-v1"
          },
          "NTSMR-2.3-claude-sonnet-4-6-low": {
            "pipeline_version": "2.3",
            "backend": "claude",
            "model": "claude-sonnet-4-6",
            "scores": {
              "time_linearity": 0.72,
              "pacing_velocity": 0.65,
              "threat_scale": 0.78,
              "protagonist_fate": 0.62,
              "conflict_style": 0.58,
              "price_type": 0.7
            },
            "score_space": "site-v1",
            "reasoning_effort": "low"
          },
          "NTSMR-2.4-claude-sonnet-4-6-low": {
            "pipeline_version": "2.4",
            "backend": "claude",
            "model": "claude-sonnet-4-6",
            "scores": {
              "time_linearity": 0.55,
              "pacing_velocity": 0.28,
              "threat_scale": 0.55,
              "protagonist_fate": 0.55,
              "conflict_style": 0.4,
              "price_type": 0.45
            },
            "score_space": "site-v1",
            "reasoning_effort": "low"
          },
          "NTSMR-2.5-claude-sonnet-4-6-low": {
            "pipeline_version": "2.5",
            "backend": "claude",
            "model": "claude-sonnet-4-6",
            "scores": {
              "time_linearity": 0.45,
              "pacing_velocity": 0.45,
              "threat_scale": 0.55,
              "protagonist_fate": 0.55,
              "conflict_style": 0.45,
              "price_type": 0.55
            },
            "score_space": "site-v1",
            "reasoning_effort": "low"
          },
          "NTSMR-2.5-balanced-glm-5+deepseek-v3.2": {
            "pipeline_version": "2.5",
            "backend": "openrouter",
            "model": "balanced-routing",
            "scores": {
              "time_linearity": 0.35,
              "pacing_velocity": 0.55,
              "threat_scale": 0.5,
              "protagonist_fate": 0.65,
              "conflict_style": 0.55,
              "price_type": 0.6
            },
            "score_space": "site-v1",
            "score_only": true,
            "source_run_label": "NTSMR-2.5-claude-sonnet-4-6-low"
          }
        }
      },
      "todorov_stages": {
        "equilibrium": "Three protagonists occupy unstable but functional status quos: Marly has accepted Virek's commission and installed herself in a Brussels luxury hotel, her disgrace temporarily suspended by the credit chip; Bobby is a Barrytown hotdogger who survived a near-fatal run and is processing his new self-awareness at Leon's bar; Turner is a veteran extraction specialist running a desert operation to defect Mitchell from Maas Biolabs.",
        "disruption": "Multiple simultaneous disruptions fracture each thread: Bobby sees the news fax reporting the bombing of his home in A Block, Level 3, realizing the attack was meant for him and his mother Marsha is in danger; Alain resurfaces in Marly's life as an unwanted intermediary with knowledge of the box artist; Turner's psychic boundaries dissolve as Mitchell's biosoft dossier images invade his dreams, fusing the defector's memories with his own.",
        "recognition": "Bobby's recognition is immediate and visceral—reading the fax about the bombing forces the realization that his failed run has made him a target; Marly recognizes Alain's reappearance as both a threat and a temptation when Andrea confirms his persistent contact attempts; Turner's recognition is dreamwork rather than conscious—the biosoft dream in the command post forces him to confront that Mitchell's identity is bleeding into his own.",
        "repair": "Bobby flees or prepares to respond to the threat against him and Marsha; Marly meets Alain in the brasserie beneath the Louvre, attempting to manage him as a necessary but dangerous intermediary while maintaining her mission for Virek; Turner prepares the extraction operation with careful attention to team assignments, communications equipment, and the peculiar detail of the catalytic handwarmers, trying to maintain professional control against the psychic intrusion.",
        "new_equilibrium": "The sampled material does not reach a resolved new equilibrium—all three threads remain in active disruption and rising action. The closest approximation is a destabilized new normal: Bobby is now a marked target rather than an anonymous hotdogger; Marly is entangled with Alain again despite her better judgment; Turner's selfhood is permeable to Mitchell's dossier in ways that complicate the clean professional detachment extraction work requires."
      },
      "characters": [
        {
          "name": "Bobby",
          "slug": "bobby",
          "aliases": [
            "Count Zero",
            "Count"
          ],
          "role": "Console cowboy / Protagonist",
          "summary": "A young, amateur console cowboy from Barrytown who survives lethal black ice and is mysteriously targeted, ending up critically injured and treated in the Projects."
        },
        {
          "name": "Two-a-Day",
          "slug": "two-a-day",
          "aliases": [],
          "role": "Software dealer / Fence",
          "summary": "A black software dealer living in the Projects who provided Bobby with his icebreaker program and oversees his recovery and interrogation."
        },
        {
          "name": "Jackie",
          "slug": "jackie",
          "aliases": [
            "Project girl",
            "angel"
          ],
          "role": "Associate of Two-a-Day / Rescuer",
          "summary": "A woman from the Projects who rescues the injured Bobby and helps transport him to Two-a-Day's apartment."
        },
        {
          "name": "Angel Rhea",
          "slug": "angel-rhea",
          "aliases": [
            "Rhea",
            "angel"
          ],
          "role": "Associate of Two-a-Day / Rescuer",
          "summary": "Another woman from the Projects who assists Jackie in rescuing and transporting Bobby."
        },
        {
          "name": "Pye",
          "slug": "pye",
          "aliases": [],
          "role": "Street medic",
          "summary": "A former veterinary student or worker with a substance abuse problem who acts as a surgeon for Two-a-Day, patching up Bobby's severe injuries."
        },
        {
          "name": "The Man with Empty Frames",
          "slug": "the-man-with-empty-frames",
          "aliases": [],
          "role": "Mysterious interrogator",
          "summary": "A man wearing antique, lensless glasses who interrogates Bobby about his encounter with the voodoo deity Legba and Vyéj Mirak in the matrix."
        },
        {
          "name": "The Big Man",
          "slug": "the-big-man",
          "aliases": [],
          "role": "Mysterious interrogator",
          "summary": "A very large man in a Japanese businessman suit who assists in interrogating Bobby about his cyberspace encounter."
        },
        {
          "name": "Marsha Newmark",
          "slug": "marsha-newmark",
          "aliases": [],
          "role": "Bobby's mother",
          "summary": "Bobby's mother, who is deeply addicted to continuous SimStim socket broadcasts of a soap opera called 'People of Importance'."
        },
        {
          "name": "Conroy",
          "slug": "conroy",
          "aliases": [
            "Connie"
          ],
          "role": "Logistics operative / Fixer",
          "summary": "An operative working with Turner who arranges the venue, logistics, and medical support for the extraction operation."
        },
        {
          "name": "Turner",
          "slug": "turner",
          "aliases": [],
          "role": "Mercenary team leader / Protagonist",
          "summary": "A seasoned, traumatized mercenary leading a high-stakes desert extraction team to secure a defecting scientist."
        },
        {
          "name": "Sutcliffe",
          "slug": "sutcliffe",
          "aliases": [
            "Sut"
          ],
          "role": "Point man / Mercenary",
          "summary": "An Australian mercenary on Turner's team who helped set up the initial camp and communication lines at the abandoned mall."
        },
        {
          "name": "Webber",
          "slug": "webber",
          "aliases": [],
          "role": "Mercenary",
          "summary": "A female mercenary on Turner's team, armed with an antitank rocket, who assists in securing the desert site."
        },
        {
          "name": "Lynch",
          "slug": "lynch",
          "aliases": [],
          "role": "Mercenary",
          "summary": "A mercenary on Turner's team whom Turner interrogates, suspecting him of being Conroy's secret inside man."
        },
        {
          "name": "Ramirez",
          "slug": "ramirez",
          "aliases": [],
          "role": "Console jockey",
          "summary": "A neurotic console jockey on Turner's team responsible for monitoring cyberspace and relaying medical data securely."
        },
        {
          "name": "Mitchell",
          "slug": "mitchell",
          "aliases": [],
          "role": "Defecting scientist",
          "summary": "The scientist defecting from Maas Biolabs whom Turner's team is tasked to extract and keep alive."
        },
        {
          "name": "Marly",
          "slug": "marly",
          "aliases": [],
          "role": "Art investigator / Protagonist",
          "summary": "A former gallery owner hired by Virek to find the creator of a mysterious hologram, who meets with her treacherous ex-lover Alain."
        },
        {
          "name": "Andrea",
          "slug": "andrea",
          "aliases": [],
          "role": "Marly's friend",
          "summary": "Marly's friend in Paris who provides her shelter and informs her that her ex-lover Alain has been trying to contact her."
        },
        {
          "name": "Alain",
          "slug": "alain",
          "aliases": [],
          "role": "Marly's ex-lover / Art dealer",
          "summary": "Marly's former partner whose forgery ruined her career; he now attempts to exploit her new mission for his own profit."
        },
        {
          "name": "Waiter",
          "slug": "waiter",
          "aliases": [
            "Bellman in Brussels"
          ],
          "role": "Undercover operative",
          "summary": "A waiter in Paris who is actually an undercover operative warning Marly about Alain's hidden broadcast unit and weapon."
        }
      ],
      "frameworks_mapped": [
        "Protocol Fiction Mapping",
        "Actantial Model",
        "Todorov's Equilibrium",
        "The Freytag Pyramid",
        "Propp's Morphology",
        "Genette's Narrative",
        "The Monomyth",
        "Dan Harmon",
        "Save the Cat",
        "Kishōtenketsu",
        "The Three-Act Structure"
      ],
      "score_reliability": {
        "state": "replicated-agree",
        "threshold": 0.2,
        "runs_total": 5,
        "versions_compared": [
          "2.5"
        ],
        "max_spread": 0.1,
        "contested": []
      }
    },
    {
      "slug": "c_j_cherryh_cyteen",
      "title": "Cyteen",
      "author": "C. J. Cherryh",
      "year": 1988,
      "medium": "book",
      "genre_tags": [],
      "tropes": [],
      "quadrant_scores": {
        "time_linearity": 0.35,
        "pacing_velocity": 0.72,
        "threat_scale": 0.72,
        "protagonist_fate": 0.42,
        "conflict_style": 0.68,
        "price_type": 0.65
      },
      "provenance": {
        "analysis_run": "NTSMR-2.5-claude-sonnet-4-6-low",
        "analysis_body_sha256": "64c42b63657415500f3f85999ba5837a5bc4f7bc8fc126012597084c46b1742d",
        "synthesis": {
          "path": "nartopo-tools/artifacts/c_j_cherryh_cyteen.md.ntsmr-2-5-claude-sonnet-4-6-low.synthesis.json",
          "sha256": "325ba7804e65e4e8e135e48f02a36abf359d54ffd635107cc26fe6783f798a4a"
        },
        "report": {
          "path": "nartopo-tools/artifacts/c_j_cherryh_cyteen.md.ntsmr-2-5-claude-sonnet-4-6-low.report.json",
          "sha256": "44fc889f3530f868d29310fa75cb65d6f331e1fd781d3062e67f138fe9a79580"
        },
        "source": {
          "path": "C. J. Cherryh/Cyteen.txt",
          "sha256": "1256ebe162b01df09fabc7adf8c5f761d5304861c0f1cd195f3b0347ad76966d",
          "digest_observed_at": "2026-09-09",
          "digest_at_analysis_run": null,
          "edition": null,
          "edition_status": "unresolved"
        },
        "pipeline_revision_at_run": null,
        "verification": {
          "source": "unverified",
          "human_review": "unreviewed",
          "bibliography": "unverified"
        },
        "issues": [],
        "todorov_status": "recovered-from-synthesis",
        "work_identity": {
          "title": "Cyteen",
          "author": "C. J. Cherryh",
          "year": 1988
        }
      },
      "ntsmr": {
        "version": "2.5",
        "primary_run_label": "NTSMR-2.5-claude-sonnet-4-6-low",
        "runs": {
          "NTSMR-2.4-claude-sonnet-4-6-low": {
            "pipeline_version": "2.4",
            "backend": "claude",
            "model": "claude-sonnet-4-6",
            "scores": {
              "time_linearity": 0.55,
              "pacing_velocity": 0.65,
              "threat_scale": 0.72,
              "protagonist_fate": 0.38,
              "conflict_style": 0.72,
              "price_type": 0.62
            },
            "score_space": "site-v1",
            "reasoning_effort": "low"
          },
          "NTSMR-2.5-claude-sonnet-4-6-low": {
            "pipeline_version": "2.5",
            "backend": "claude",
            "model": "claude-sonnet-4-6",
            "scores": {
              "time_linearity": 0.35,
              "pacing_velocity": 0.72,
              "threat_scale": 0.72,
              "protagonist_fate": 0.42,
              "conflict_style": 0.68,
              "price_type": 0.65
            },
            "score_space": "site-v1",
            "reasoning_effort": "low"
          },
          "NTSMR-2.5-balanced-glm-5+deepseek-v3.2": {
            "pipeline_version": "2.5",
            "backend": "openrouter",
            "model": "balanced-routing",
            "scores": {
              "time_linearity": 0.25,
              "pacing_velocity": 0.7,
              "threat_scale": 0.55,
              "protagonist_fate": 0.42,
              "conflict_style": 0.68,
              "price_type": 0.62
            },
            "score_space": "site-v1",
            "score_only": true,
            "source_run_label": "NTSMR-2.5-claude-sonnet-4-6-low"
          }
        }
      },
      "todorov_stages": {
        "equilibrium": "Reseune under Ari I stands as a stable if tense power center: a brilliant Special governs the psychogenesis project, the Hope Bill moves through Council politics, and Justin and Jordan Warrick operate as contained subordinates within the institution's hierarchy. The azi system, the Expansionist bloc, and Reseune's research dominance constitute an established order, uncomfortable but coherent.",
        "disruption": "Ari I is found dead in the cold lab — frozen, skull fractured — and Jordan Warrick is implicated. This single event shatters the political and institutional equilibrium simultaneously: the Hope Project loses its architect, Reseune loses its dominant figure, Justin and Grant become hostages to a new and unreadable power structure, and the Centrist opposition senses opportunity.",
        "recognition": "Recognition cascades across multiple characters and timescales. Denys tells Justin that Ari is dead and Jordan killed her; Corain at the funeral recognizes that Giraud Nye is an unknown replacement for a long-familiar adversary; and Ari II, growing up within the replication project, gradually recognizes through Base One access and Council testimony the full scope of what she has inherited — including Ari I's sociological worm program and the circumstances of her predecessor's death.",
        "repair": "Repair operates on two levels. Institutionally, Reseune regroups under Giraud and Denys, engineers Jordan's exile to Planys, suppresses public trial, files legal briefs establishing Ari II as the legal person of Ari I, and maneuvers politically through elections and Council hearings. Personally, Ari II consolidates authority — taking Justin and Grant under her administrative protection, testifying before Council on Gehenna, and preparing a two-year contingency operation against Denys when he moves against her.",
        "new_equilibrium": "Denys and Seely are killed in the assault on Administrative; Giraud has already died; Yanni Schwartz is named the new Reseune administrator. Jordan and Paul return from Planys exile and are reunited with Justin and Grant. Ari II, now the unambiguous power at Reseune, surveys the smoke-filled hall and accepts the permanence of her authority. The institution survives, but transformed: the old guard is gone, the replicate has become the original, and the bonds of loyalty — Ari II with Florian and Catlin, Justin with Grant — constitute the new relational foundation of order."
      },
      "characters": [
        {
          "name": "Giraud Nye",
          "slug": "giraud-nye",
          "aliases": [
            "Gerry",
            "Nye",
            "Ser Nye",
            "Giraud",
            "Uncle Giraud",
            "GN",
            "Administrator Nye"
          ],
          "role": "Head of Reseune Security; Ari I's senior administrator",
          "summary": "Dying and ill; running a security operation against Grant and Jordan; the subject of Ari II's negotiation with Denys over a potential replicate; sends Ari II an urgent taped message about the Paxer bombing and political succession."
        },
        {
          "name": "Denys Nye",
          "slug": "denys-nye",
          "aliases": [
            "Denys",
            "Uncle Denys",
            "DN"
          ],
          "role": "Senior Reseune administrator, Ari II's guardian",
          "summary": "Senior Reseune administrator and Ari II's guardian; orchestrates her move to independent apartments as a planned developmental milestone, delivers her Special status certificate, and terminates her formal classes."
        },
        {
          "name": "Catlin",
          "slug": "catlin",
          "aliases": [
            "AC-7892",
            "Catlin II"
          ],
          "role": "azi companion/POV character",
          "summary": "Six-year-old azi girl undergoing tunnel combat training; physically brave, emotionally controlled; receives high marks but is haunted by the unfair final enemy and the lesson that dead is permanent."
        },
        {
          "name": "Florian",
          "slug": "florian",
          "aliases": [
            "Florian AF-9979",
            "F12",
            "Florian II"
          ],
          "role": "azi companion/POV character",
          "summary": "Executes the extraction of Grant from the airport; coordinates with Catlin; relays intelligence between Ari and Grant at the New Year's party; maintains close security at Novgorod."
        },
        {
          "name": "Bogdanovitch",
          "slug": "bogdanovitch",
          "aliases": [],
          "role": "Council President; holder of Bureau of State seat",
          "summary": "Politically durable Council chair who presides over the session with bland civility, outmaneuvering adversaries through petty politics."
        },
        {
          "name": "Catherine Lao",
          "slug": "catherine-lao",
          "aliases": [],
          "role": "Councillor; Bureau of Information",
          "summary": "Expansionist aligned with Emory who, at Ari's signal, moves to postpone the Hope bill, denying Corain his planned confrontation."
        },
        {
          "name": "Secretary Lu",
          "slug": "secretary-lu",
          "aliases": [],
          "role": "Secretary of Defense; Centrist operative",
          "summary": "Defense official who watches the hearing and, persuaded by Ari II's performance and military implications of the Emory files, drafts a memo to protect Reseune's archives under the Military Secrets Act."
        },
        {
          "name": "Gorodin",
          "slug": "gorodin",
          "aliases": [
            "Adm. Gorodin",
            "Leonid Gorodin"
          ],
          "role": "Councillor of Defense; Centrist",
          "summary": "Defence councillor who receives Giraud's confidential briefing on the plan to replicate Ari I and the need for military cover."
        },
        {
          "name": "Paul",
          "slug": "paul",
          "aliases": [],
          "role": "Jordan Warrick's azi companion",
          "summary": "Travels with Jordan on the return flight, providing steady support; reunited with the group at the airfield after Reseune is secured."
        },
        {
          "name": "Abban",
          "slug": "abban",
          "aliases": [],
          "role": "Giraud Nye's azi bodyguard and staffer",
          "summary": "Giraud's long-serving azi; performs CPR on Giraud in the Council chamber; manages Novgorod logistics for Ari II; killed in the Paxer bombing."
        },
        {
          "name": "Benjamin Rubin",
          "slug": "benjamin-rubin",
          "aliases": [
            "Benjamin P. Rubin"
          ],
          "role": "Fargone chemist; newly designated Special",
          "summary": "Young, obscure chemist on Fargone granted Special status via Emory's budget maneuver; connected to the Hope corridor project; described as a wide-eyed innocent."
        },
        {
          "name": "Justin Warrick",
          "slug": "justin-warrick",
          "aliases": [
            "Justin",
            "JW",
            "Dr. Warrick",
            "Sер Justin",
            "Jordie"
          ],
          "role": "Special psychdesigner at Reseune; internal dissident; Corain contact",
          "summary": "Awaits Grant's return anxiously; is summoned by Ari II and coerced into KAT-dose interrogation; extracted with Grant to Wing One residencies; publicly dances with Ari II at New Year's, creating political ripples; named as contributor in Emory archive volumes."
        },
        {
          "name": "Corain",
          "slug": "corain",
          "aliases": [
            "Councillor Corain",
            "Mikhail Corain",
            "ser Corain"
          ],
          "role": "Head of Centrist minority in the Council of Nine; political antagonist to Emory",
          "summary": "Centrist councillor who attends Ari I's funeral, meets Giraud, is maneuvered into a political settlement discussion, and privately calculates his party's opportunities in the post-Emory landscape."
        },
        {
          "name": "Ari",
          "slug": "ari",
          "aliases": [
            "young Ari",
            "Ariane Emory II",
            "Ariane Emory",
            "Sera",
            "AE2",
            "young sera",
            "Ari I",
            "Councillor from Reseune",
            "Ariane Carnath-Emory",
            "Dr. Emory",
            "Ari Senior",
            "Ariane Emory I",
            "Ari II",
            "Ari Emory II",
            "my predecessor",
            "Sera Emory"
          ],
          "role": "Dominant political and scientific authority; Councillor of Science; director of Reseune",
          "summary": "Orchestrates Grant's extraction from Giraud's security operation; coerces Justin into tape interrogation; negotiates strategically with Denys about Giraud's decline and proposes a Giraud replicate; attends New Year's in Novgorod under security; receives Giraud's urgent message."
        },
        {
          "name": "Grant",
          "slug": "grant",
          "aliases": [
            "Grant ALX",
            "Grant ALX Warrick",
            "GALX"
          ],
          "role": "Justin's azi companion, experimental geneset",
          "summary": "Travels to Planys to deliver documents to Jordan; upon return is extracted by Florian and Catlin under Ari II's authority; subjected to deep-dose tape interrogation ordered by Ari II; navigates divided loyalties between azi simplicity and active vigilance."
        },
        {
          "name": "Ari Emory I",
          "slug": "ari-emory-i",
          "aliases": [
            "Sera",
            "Ari"
          ],
          "role": "Reseune director; antagonist",
          "summary": "Summons Justin after Grant's disappearance; coerces Justin in her apartment; refuses Giraud's suggestion to eliminate Grant; found dead frozen in her lab vault."
        },
        {
          "name": "Rocher",
          "slug": "rocher",
          "aliases": [],
          "role": "Abolitionist leader",
          "summary": "Leads the radical Abolitionists who held Grant; blacked out from media access after the rescue raid; associated with prior subway sabotage."
        },
        {
          "name": "Merino",
          "slug": "merino",
          "aliases": [
            "Ianni Merino"
          ],
          "role": "Centrist political figure",
          "summary": "Publicly distancing himself from the Abolitionist kidnapping after the police raid."
        },
        {
          "name": "Stern",
          "slug": "stern",
          "aliases": [],
          "role": "Investigator from Moreyville",
          "summary": "Conducts the death scene investigation of Ari's frozen corpse in the vault, discovers the intercom casing is broken."
        },
        {
          "name": "Petros",
          "slug": "petros",
          "aliases": [
            "Dr. Ivanov"
          ],
          "role": "institutional psychologist",
          "summary": "Reseune psychologist who conducts mandatory counseling sessions with Justin using voice-stress monitoring; eventually offers Justin the tape and tells him off the record that phone calls will be delayed."
        },
        {
          "name": "Jane Strassen",
          "slug": "jane-strassen",
          "aliases": [
            "Maddy Morley-Strassen",
            "Maddy",
            "Janie",
            "Maman",
            "Sera Strassen",
            "Dr. Strassen"
          ],
          "role": "Wing One lab administrator and Ari II's surrogate mother-figure",
          "summary": "Reluctantly assigned to raise Ari II to match Olga Emory's environment; receives the newborn with unexpected personal investment; reflects on her failures with her daughter Julia."
        },
        {
          "name": "Ollie",
          "slug": "ollie",
          "aliases": [],
          "role": "helper",
          "summary": "Jane's azi companion and lover; tends to Ari II at the party; receives Jane's declaration of love and is asked whether he would come to Fargone."
        },
        {
          "name": "Yanni Schwartz",
          "slug": "yanni-schwartz",
          "aliases": [
            "Yanni",
            "YS"
          ],
          "role": "Senior Reseune researcher and administrator",
          "summary": "Justin's direct supervisor who assigns urgent tape-repair cases without support, uses work pressure as a testing mechanism, and immediately loads Justin with new cases after each success."
        },
        {
          "name": "August",
          "slug": "august",
          "aliases": [
            "GY-7688"
          ],
          "role": "minor/symbolic",
          "summary": "Azi infant born from a womb-tank in Reseune's birthlab during Ari II's visit; placed on tape immediately; scheduled to become a security guard; serves as a living lesson in azi developmental difference."
        },
        {
          "name": "Andy",
          "slug": "andy",
          "aliases": [],
          "role": "minor helper",
          "summary": "Gamma-class azi agricultural technician who oversees the foal's birth; possesses practical animal expertise that exceeds the textbooks."
        },
        {
          "name": "Nelly",
          "slug": "nelly",
          "aliases": [],
          "role": "helper",
          "summary": "Ari II's azi caretaker; sent to hospital for supplemental tape after being frightened by Ari II's robot bug; gentle and limited compared to Florian and Catlin."
        },
        {
          "name": "Jim",
          "slug": "jim",
          "aliases": [],
          "role": "security guard",
          "summary": "CIT security guard at Planys who monitors Jordan and Justin's reunion with a relaxed, human demeanor."
        },
        {
          "name": "Amy Carnath",
          "slug": "amy-carnath",
          "aliases": [
            "Sera Carnath",
            "Sera Amy",
            "Young Amy",
            "Young Sera"
          ],
          "role": "secondary character",
          "summary": "Peer of Ari II; ambushed and intimidated in the service tunnel; reveals the exile system and is recruited as Ari II's friend under a secrecy pact."
        },
        {
          "name": "Nasir Harad",
          "slug": "nasir-harad",
          "aliases": [
            "Chairman Harad"
          ],
          "role": "bureaucracy/actantial:opponent",
          "summary": "Chairman of the Council; calls emergency recess after Giraud's collapse; chairs the committee before which Justin testifies."
        },
        {
          "name": "Yevi Hart",
          "slug": "yevi-hart",
          "aliases": [
            "Yevi"
          ],
          "role": "other",
          "summary": "Veteran reporter with a dour reputation whom Ari II has cultivated for years; asks the lead question at the press conference."
        },
        {
          "name": "Khalid",
          "slug": "khalid",
          "aliases": [],
          "role": "actantial opponent",
          "summary": "Military-aligned councillor who accuses Ari II and Denys of fabricating the Gehenna files and attacks Reseune's power in Council; subject to a challenge to his seat."
        },
        {
          "name": "Councillor Chavez",
          "slug": "councillor-chavez",
          "aliases": [],
          "role": "other",
          "summary": "Finance councillor who repeatedly challenges Ari II's testimony for conflating quotation with interpretation, but shows unexpected patience and intelligence."
        },
        {
          "name": "Quentin",
          "slug": "quentin",
          "aliases": [
            "Quentin AQ-8"
          ],
          "role": "Alpha-class azi security",
          "summary": "Dances with Amy Carnath at New Year's; described as dangerously fast, highly contracted, and infatuated with Amy."
        },
        {
          "name": "Dr. Wells",
          "slug": "dr-wells",
          "aliases": [],
          "role": "actantial:opponent",
          "summary": "Committee member who questions Justin about why he believed his father's confession and the details of Ari I's sexual coercion."
        },
        {
          "name": "Kelly Ek",
          "slug": "kelly-ek",
          "aliases": [
            "Kelly"
          ],
          "role": "helper",
          "summary": "Staff member who escorts Justin to his room in the Novgorod VIP suite; implied to be killed in the subsequent bombing."
        },
        {
          "name": "Seely",
          "slug": "seely",
          "aliases": [],
          "role": "Denys's azi / security operative",
          "summary": "Referenced as Denys's loyal aide; killed by Catlin during the breach of the administrative wing."
        },
        {
          "name": "Tyler",
          "slug": "tyler",
          "aliases": [],
          "role": "Security operative",
          "summary": "White-haired, wiry former member of Ari Senior's staff; assigned as third in the assault team behind Florian and Catlin."
        },
        {
          "name": "Marco",
          "slug": "marco",
          "aliases": [],
          "role": "Security / systems programmer",
          "summary": "Assigned to stay with Ari and Justin on the plane; pulls Ari flat when the explosion hits the bus."
        },
        {
          "name": "Wes",
          "slug": "wes",
          "aliases": [],
          "role": "Security medic",
          "summary": "Class-one medic aboard Reseune One; tends to Justin's injuries; assigned to stay with Ari on the plane during the assault."
        }
      ],
      "frameworks_mapped": [
        "Protocol Fiction Mapping",
        "Actantial Model",
        "Todorov's Equilibrium",
        "The Freytag Pyramid",
        "Propp's Morphology",
        "Genette's Narrative",
        "The Monomyth",
        "Dan Harmon",
        "Save the Cat",
        "Kishōtenketsu",
        "The Three-Act Structure",
        "Lévi-Strauss's Binary Oppositions",
        "Cognitive Estrangement",
        "Bakhtin's Chronotope",
        "Aristotelian Poetics",
        "Jungian Archetypal Analysis",
        "Genette's Transtextuality"
      ],
      "score_reliability": {
        "state": "replicated-agree",
        "threshold": 0.2,
        "runs_total": 3,
        "versions_compared": [
          "2.5"
        ],
        "max_spread": 0.17,
        "contested": []
      }
    },
    {
      "slug": "ted_chiang_dacey_s_patent_automatic_nanny",
      "title": "Dacey's Patent Automatic Nanny",
      "author": "Ted Chiang",
      "year": 2019,
      "medium": "short_story",
      "genre_tags": [],
      "tropes": [],
      "quadrant_scores": {
        "time_linearity": 0.25,
        "pacing_velocity": 0.8,
        "threat_scale": 0.3,
        "protagonist_fate": 0.65,
        "conflict_style": 0.8,
        "price_type": 0.75
      },
      "provenance": {
        "analysis_run": "NTSMR-2.5-claude-sonnet-4-6-low",
        "analysis_body_sha256": "ba95582cf1ad5c8af5da9606712b5b939d35f3adf9e4aabf019fea67fa24854e",
        "synthesis": {
          "path": "nartopo-tools/artifacts/ted_chiang_dacey_s_patent_automatic_nanny.md.ntsmr-2-5-claude-sonnet-4-6-low.synthesis.json",
          "sha256": "d2af7193e1491c9856845e22ac8c3bec403dd4444292feeb24091504d6b5f4b3"
        },
        "report": {
          "path": "nartopo-tools/artifacts/ted_chiang_dacey_s_patent_automatic_nanny.md.ntsmr-2-5-claude-sonnet-4-6-low.report.json",
          "sha256": "0f598214a96777ebb0b88e5beeee7dabc23f32552c046964d347e8416b8dd6a3"
        },
        "source": {
          "path": "Ted Chiang/Dacey's Patent Automatic Nanny.txt",
          "sha256": "dd18b6cc06088cde197ae8900e5d6eea907b85825cd5836c87e6b5c724b0cc74",
          "digest_observed_at": "2026-09-09",
          "digest_at_analysis_run": null,
          "edition": null,
          "edition_status": "unresolved"
        },
        "pipeline_revision_at_run": null,
        "verification": {
          "source": "unverified",
          "human_review": "unreviewed",
          "bibliography": "unverified"
        },
        "issues": [],
        "todorov_status": "recovered-from-synthesis",
        "work_identity": {
          "title": "Dacey's Patent Automatic Nanny",
          "author": "Ted Chiang",
          "year": 2019
        }
      },
      "ntsmr": {
        "version": "2.5",
        "primary_run_label": "NTSMR-2.5-claude-sonnet-4-6-low",
        "runs": {
          "NTSMR-2.3-gemini-3.1-pro-preview": {
            "pipeline_version": "2.3",
            "backend": "gemini",
            "model": "gemini-3.1-pro-preview",
            "scores": {
              "time_linearity": 0.7,
              "pacing_velocity": 0.9,
              "threat_scale": 0.75,
              "protagonist_fate": 0.95,
              "conflict_style": 0.9,
              "price_type": 0.95
            },
            "score_space": "site-v1"
          },
          "NTSMR-2.3-claude-sonnet-4-6-low": {
            "pipeline_version": "2.3",
            "backend": "claude",
            "model": "claude-sonnet-4-6",
            "scores": {
              "time_linearity": 0.35,
              "pacing_velocity": 0.82,
              "threat_scale": 0.65,
              "protagonist_fate": 0.78,
              "conflict_style": 0.75,
              "price_type": 0.88
            },
            "score_space": "site-v1",
            "reasoning_effort": "low"
          },
          "NTSMR-2.4-claude-sonnet-4-6-low": {
            "pipeline_version": "2.4",
            "backend": "claude",
            "model": "claude-sonnet-4-6",
            "scores": {
              "time_linearity": 0.18,
              "pacing_velocity": 0.75,
              "threat_scale": 0.12,
              "protagonist_fate": 0.78,
              "conflict_style": 0.8,
              "price_type": 0.65
            },
            "score_space": "site-v1",
            "reasoning_effort": "low"
          },
          "NTSMR-2.5-claude-sonnet-4-6-low": {
            "pipeline_version": "2.5",
            "backend": "claude",
            "model": "claude-sonnet-4-6",
            "scores": {
              "time_linearity": 0.25,
              "pacing_velocity": 0.8,
              "threat_scale": 0.3,
              "protagonist_fate": 0.65,
              "conflict_style": 0.8,
              "price_type": 0.75
            },
            "score_space": "site-v1",
            "reasoning_effort": "low"
          },
          "NTSMR-2.5-balanced-glm-5+deepseek-v3.2": {
            "pipeline_version": "2.5",
            "backend": "openrouter",
            "model": "balanced-routing",
            "scores": {
              "time_linearity": 0.15,
              "pacing_velocity": 0.8,
              "threat_scale": 0.3,
              "protagonist_fate": 0.65,
              "conflict_style": 0.8,
              "price_type": 0.75
            },
            "score_space": "site-v1",
            "score_only": true,
            "source_run_label": "NTSMR-2.5-claude-sonnet-4-6-low"
          }
        }
      },
      "todorov_stages": {
        "equilibrium": "Reginald Dacey pursues rational child-rearing theory and mechanical invention in relative stability, with the Automatic Nanny commercially launched and selling over 150 units within six months of its 1901 debut.",
        "disruption": "An infant, Nigel Hawthorne, is fatally thrown by an Automatic Nanny whose mainspring was tampered with, collapsing public confidence in the machine and ending its commercial viability.",
        "recognition": "Dacey attempts to restore confidence through advertising and a plan to raise his own child by Automatic Nanny, but when no woman agrees to the arrangement he recognizes the enterprise cannot be salvaged. Decades later, Dr. Lambshead encounters Edmund at the Brighton Institute and recognizes that the boy's stunted condition results not from machine care but from its sudden removal — an inversion of Dacey's original thesis.",
        "repair": "Lambshead acquires an Automatic Nanny from a reluctant Lionel Dacey, installs it in Edmund's room, and Edmund begins to grow measurably. Lambshead later acquires remote manipulators and an intercom system, enabling Edmund to respond to instruction and revealing he is not cognitively delayed. Lionel then installs the same apparatus at home and brings Edmund to live with him.",
        "new_equilibrium": "Edmund lives with Lionel under machine-mediated care until Edmund's death from pneumonia in 1966 and Lionel's death the following year. The surviving Automatic Nanny is donated to the museum by Lambshead, enshrined as an artifact of a failed experiment whose human costs were only partially redeemed."
      },
      "characters": [
        {
          "name": "Lionel Dacey",
          "slug": "lionel-dacey",
          "aliases": [
            "Edmund"
          ],
          "role": "Mathematician and son of Reginald Dacey",
          "summary": "Reginald's son, who dedicated his life to vindicating his father's theories by raising his own illegitimate son with the Automatic Nanny, ultimately realizing the tragic flaw in the experiment."
        },
        {
          "name": "Nanny Gibson",
          "slug": "nanny-gibson",
          "aliases": [],
          "role": "Human nanny",
          "summary": "Lionel Dacey's human nursemaid who routinely beat him and administered vile laxatives as punishment until she was fired."
        },
        {
          "name": "Mrs. Menhenick",
          "slug": "mrs-menhenick",
          "aliases": [],
          "role": "Customer",
          "summary": "A purported customer from Colwyn Bay whose testimonial appeared in an advertisement for the Automatic Nanny."
        },
        {
          "name": "Mrs. Hastings",
          "slug": "mrs-hastings",
          "aliases": [],
          "role": "Customer",
          "summary": "A purported customer from Eastbourne whose testimonial appeared in an advertisement for the Automatic Nanny."
        },
        {
          "name": "Mrs. Godwin",
          "slug": "mrs-godwin",
          "aliases": [],
          "role": "Customer",
          "summary": "A purported customer from Andoversford whose testimonial appeared in an advertisement for the Automatic Nanny."
        },
        {
          "name": "Nigel Hawthorne",
          "slug": "nigel-hawthorne",
          "aliases": [],
          "role": "Infant",
          "summary": "An infant who was fatally thrown from an Automatic Nanny in September 1901 after his parents tampered with its mainspring."
        },
        {
          "name": "Dr. Thackery Lambshead",
          "slug": "dr-thackery-lambshead",
          "aliases": [
            "Lambshead"
          ],
          "role": "Consulting physician",
          "summary": "A physician consulting at the Brighton Institute who correctly diagnosed Edmund's condition as inverted psychosocial dwarfism and introduced remote manipulators to communicate with him."
        },
        {
          "name": "Eleanor Hardy",
          "slug": "eleanor-hardy",
          "aliases": [],
          "role": "Edmund's biological mother",
          "summary": "A former maid for Lionel Dacey who was the biological mother of Edmund."
        }
      ],
      "frameworks_mapped": [
        "Protocol Fiction Mapping",
        "Actantial Model",
        "Todorov's Equilibrium",
        "The Freytag Pyramid",
        "Propp's Morphology",
        "Genette's Narrative",
        "The Monomyth",
        "Dan Harmon",
        "Save the Cat",
        "Kishōtenketsu",
        "The Three-Act Structure",
        "Lévi-Strauss's Binary Oppositions",
        "Cognitive Estrangement",
        "Bakhtin's Chronotope",
        "Aristotelian Poetics",
        "Jungian Archetypal Analysis",
        "Genette's Transtextuality"
      ],
      "score_reliability": {
        "state": "replicated-agree",
        "threshold": 0.2,
        "runs_total": 5,
        "versions_compared": [
          "2.5"
        ],
        "max_spread": 0.1,
        "contested": []
      }
    },
    {
      "slug": "octavia_e_butler_dawn",
      "title": "Dawn",
      "author": "Octavia E. Butler",
      "year": 1987,
      "medium": "book",
      "genre_tags": [
        "science fiction",
        "afrofuturism"
      ],
      "tropes": [],
      "quadrant_scores": {
        "time_linearity": 0.15,
        "pacing_velocity": 0.7,
        "threat_scale": 0.85,
        "protagonist_fate": 0.85,
        "conflict_style": 0.7,
        "price_type": 0.75
      },
      "baseline_quadrant_scores": {
        "time_linearity": 0.2,
        "pacing_velocity": 0.8,
        "threat_scale": 0.9,
        "protagonist_fate": 0.9,
        "conflict_style": 0.8,
        "price_type": 0.9
      },
      "provenance": {
        "analysis_run": "NTSMR-2.5-claude-sonnet-4-6-low",
        "analysis_body_sha256": "d32c86e9d6b98cab588082883c2e9e1f488b3f43bdde46899c0a35e3e7f57224",
        "synthesis": {
          "path": "nartopo-tools/artifacts/octavia_e_butler_dawn.md.ntsmr-2-5-claude-sonnet-4-6-low.synthesis.json",
          "sha256": "62fd86709b06bde64dd8cdb78415bb2d01fa1de92334740f78db44d6fe7763f2"
        },
        "report": {
          "path": "nartopo-tools/artifacts/octavia_e_butler_dawn.md.ntsmr-2-5-claude-sonnet-4-6-low.report.json",
          "sha256": "4a42bcab06fd396f8b3b7e2120c6dda2cbae04681ae1e887c0a13a9c4974751c"
        },
        "source": {
          "path": "Octavia Butler/Dawn (1987).txt",
          "sha256": "22f6007cfe9bbccd0bd9654effafb1ed6ec95bb1fc90e2983f1b499aec4e3a4b",
          "digest_observed_at": "2026-09-09",
          "digest_at_analysis_run": null,
          "edition": null,
          "edition_status": "unresolved"
        },
        "pipeline_revision_at_run": null,
        "verification": {
          "source": "unverified",
          "human_review": "unreviewed",
          "bibliography": "unverified"
        },
        "issues": [],
        "todorov_status": "recovered-from-synthesis",
        "work_identity": {
          "title": "Dawn",
          "author": "Octavia E. Butler",
          "year": 1987
        }
      },
      "ntsmr": {
        "version": "2.5",
        "primary_run_label": "NTSMR-2.5-claude-sonnet-4-6-low",
        "runs": {
          "NTSMR-2.3-gemini-3.1-pro-preview": {
            "pipeline_version": "2.3",
            "backend": "gemini",
            "model": "gemini-3.1-pro-preview",
            "scores": {
              "time_linearity": 0.5,
              "pacing_velocity": 0.5,
              "threat_scale": 0.5,
              "protagonist_fate": 0.5,
              "conflict_style": 0.5,
              "price_type": 0.5
            },
            "score_space": "site-v1"
          },
          "NTSMR-2.3-gpt-5.4-xhigh": {
            "pipeline_version": "2.3",
            "backend": "codex-exec",
            "model": "gpt-5.4",
            "scores": {
              "time_linearity": 0.05,
              "pacing_velocity": 0.63,
              "threat_scale": 0.94,
              "protagonist_fate": 0.84,
              "conflict_style": 0.66,
              "price_type": 0.9
            },
            "score_space": "site-v1",
            "reasoning_effort": "xhigh"
          },
          "NTSMR-2.3-gpt-5.4-high": {
            "pipeline_version": "2.3",
            "backend": "codex-exec",
            "model": "gpt-5.4",
            "scores": {
              "time_linearity": 0.05,
              "pacing_velocity": 0.64,
              "threat_scale": 0.9,
              "protagonist_fate": 0.83,
              "conflict_style": 0.7,
              "price_type": 0.88
            },
            "score_space": "site-v1",
            "reasoning_effort": "high"
          },
          "NTSMR-2.3-gpt-5.4-medium": {
            "pipeline_version": "2.3",
            "backend": "codex-exec",
            "model": "gpt-5.4",
            "scores": {
              "time_linearity": 0.04,
              "pacing_velocity": 0.61,
              "threat_scale": 0.93,
              "protagonist_fate": 0.84,
              "conflict_style": 0.69,
              "price_type": 0.9
            },
            "score_space": "site-v1",
            "reasoning_effort": "medium"
          },
          "NTSMR-2.3-gpt-5.3-codex-xhigh": {
            "pipeline_version": "2.3",
            "backend": "codex-exec",
            "model": "gpt-5.3-codex",
            "scores": {
              "time_linearity": 0.04,
              "pacing_velocity": 0.58,
              "threat_scale": 0.9,
              "protagonist_fate": 0.86,
              "conflict_style": 0.4,
              "price_type": 0.83
            },
            "score_space": "site-v1",
            "reasoning_effort": "xhigh"
          },
          "NTSMR-2.3-gpt-5.3-codex-high": {
            "pipeline_version": "2.3",
            "backend": "codex-exec",
            "model": "gpt-5.3-codex",
            "scores": {
              "time_linearity": 0.08,
              "pacing_velocity": 0.62,
              "threat_scale": 0.9,
              "protagonist_fate": 0.82,
              "conflict_style": 0.67,
              "price_type": 0.88
            },
            "score_space": "site-v1",
            "reasoning_effort": "high"
          },
          "NTSMR-2.3-gpt-5.3-codex-medium": {
            "pipeline_version": "2.3",
            "backend": "codex-exec",
            "model": "gpt-5.3-codex",
            "scores": {
              "time_linearity": 0.06,
              "pacing_velocity": 0.57,
              "threat_scale": 0.92,
              "protagonist_fate": 0.87,
              "conflict_style": 0.44,
              "price_type": 0.84
            },
            "score_space": "site-v1",
            "reasoning_effort": "medium"
          },
          "NTSMR-2.3-claude-opus-4-6-medium": {
            "pipeline_version": "2.3",
            "backend": "claude",
            "model": "claude-opus-4-6",
            "scores": {
              "time_linearity": 0.05,
              "pacing_velocity": 0.55,
              "threat_scale": 0.85,
              "protagonist_fate": 0.8,
              "conflict_style": 0.6,
              "price_type": 0.85
            },
            "score_space": "site-v1",
            "reasoning_effort": "medium"
          },
          "NTSMR-2.3-claude-sonnet-4-6-medium": {
            "pipeline_version": "2.3",
            "backend": "claude",
            "model": "claude-sonnet-4-6",
            "scores": {
              "time_linearity": 0.1,
              "pacing_velocity": 0.72,
              "threat_scale": 0.82,
              "protagonist_fate": 0.88,
              "conflict_style": 0.65,
              "price_type": 0.85
            },
            "score_space": "site-v1",
            "reasoning_effort": "medium"
          },
          "NTSMR-2.3-claude-sonnet-4-6-low": {
            "pipeline_version": "2.3",
            "backend": "claude",
            "model": "claude-sonnet-4-6",
            "scores": {
              "time_linearity": 0.1,
              "pacing_velocity": 0.72,
              "threat_scale": 0.82,
              "protagonist_fate": 0.85,
              "conflict_style": 0.65,
              "price_type": 0.88
            },
            "score_space": "site-v1",
            "reasoning_effort": "low"
          },
          "NTSMR-2.3-claude-sonnet-4-6-high": {
            "pipeline_version": "2.3",
            "backend": "claude",
            "model": "claude-sonnet-4-6",
            "scores": {
              "time_linearity": 0.1,
              "pacing_velocity": 0.72,
              "threat_scale": 0.82,
              "protagonist_fate": 0.85,
              "conflict_style": 0.65,
              "price_type": 0.88
            },
            "score_space": "site-v1",
            "reasoning_effort": "high"
          },
          "NTSMR-2.3-claude-opus-4-6-low": {
            "pipeline_version": "2.3",
            "backend": "claude",
            "model": "claude-opus-4-6",
            "scores": {
              "time_linearity": 0.05,
              "pacing_velocity": 0.45,
              "threat_scale": 0.85,
              "protagonist_fate": 0.8,
              "conflict_style": 0.55,
              "price_type": 0.85
            },
            "score_space": "site-v1",
            "reasoning_effort": "low"
          },
          "NTSMR-2.3-claude-opus-4-6-high": {
            "pipeline_version": "2.3",
            "backend": "claude",
            "model": "claude-opus-4-6",
            "scores": {
              "time_linearity": 0.05,
              "pacing_velocity": 0.55,
              "threat_scale": 0.85,
              "protagonist_fate": 0.82,
              "conflict_style": 0.62,
              "price_type": 0.88
            },
            "score_space": "site-v1",
            "reasoning_effort": "high"
          },
          "NTSMR-2.4-claude-sonnet-4-6-low": {
            "pipeline_version": "2.4",
            "backend": "claude",
            "model": "claude-sonnet-4-6",
            "scores": {
              "time_linearity": 0.12,
              "pacing_velocity": 0.58,
              "threat_scale": 0.78,
              "protagonist_fate": 0.78,
              "conflict_style": 0.52,
              "price_type": 0.62
            },
            "score_space": "site-v1",
            "reasoning_effort": "low"
          },
          "NTSMR-2.5-claude-sonnet-4-6-low": {
            "pipeline_version": "2.5",
            "backend": "claude",
            "model": "claude-sonnet-4-6",
            "scores": {
              "time_linearity": 0.15,
              "pacing_velocity": 0.7,
              "threat_scale": 0.85,
              "protagonist_fate": 0.85,
              "conflict_style": 0.7,
              "price_type": 0.75
            },
            "score_space": "site-v1",
            "reasoning_effort": "low"
          },
          "NTSMR-2.5-minimax/minimax-m2.5": {
            "pipeline_version": "2.5",
            "backend": "openrouter",
            "model": "minimax/minimax-m2.5",
            "scores": {
              "time_linearity": 0.15,
              "pacing_velocity": 0.75,
              "threat_scale": 0.85,
              "protagonist_fate": 0.85,
              "conflict_style": 0.75,
              "price_type": 0.75
            },
            "score_space": "site-v1"
          },
          "NTSMR-2.5-qwen/qwen3.5-397b-a17b": {
            "pipeline_version": "2.5",
            "backend": "openrouter",
            "model": "qwen/qwen3.5-397b-a17b",
            "scores": {
              "time_linearity": 0.15,
              "pacing_velocity": 0.75,
              "threat_scale": 0.85,
              "protagonist_fate": 0.85,
              "conflict_style": 0.7,
              "price_type": 0.8
            },
            "score_space": "site-v1"
          },
          "NTSMR-2.5-deepseek/deepseek-v3.2": {
            "pipeline_version": "2.5",
            "backend": "openrouter",
            "model": "deepseek/deepseek-v3.2",
            "scores": {
              "time_linearity": 0.15,
              "pacing_velocity": 0.75,
              "threat_scale": 0.85,
              "protagonist_fate": 0.85,
              "conflict_style": 0.65,
              "price_type": 0.75
            },
            "score_space": "site-v1"
          },
          "NTSMR-2.5-moonshotai/kimi-k2.5": {
            "pipeline_version": "2.5",
            "backend": "openrouter",
            "model": "moonshotai/kimi-k2.5",
            "scores": {
              "time_linearity": 0.15,
              "pacing_velocity": 0.7,
              "threat_scale": 0.85,
              "protagonist_fate": 0.85,
              "conflict_style": 0.7,
              "price_type": 0.75
            },
            "score_space": "site-v1"
          },
          "NTSMR-2.5-z-ai/glm-5": {
            "pipeline_version": "2.5",
            "backend": "openrouter",
            "model": "z-ai/glm-5",
            "scores": {
              "time_linearity": 0.15,
              "pacing_velocity": 0.7,
              "threat_scale": 0.85,
              "protagonist_fate": 0.85,
              "conflict_style": 0.75,
              "price_type": 0.75
            },
            "score_space": "site-v1"
          },
          "NTSMR-2.5-balanced-glm-5+deepseek-v3.2": {
            "pipeline_version": "2.5",
            "backend": "openrouter",
            "model": "balanced-routing",
            "scores": {
              "time_linearity": 0.15,
              "pacing_velocity": 0.7,
              "threat_scale": 0.85,
              "protagonist_fate": 0.85,
              "conflict_style": 0.7,
              "price_type": 0.75
            },
            "score_space": "site-v1",
            "score_only": true,
            "source_run_label": "NTSMR-2.5-claude-sonnet-4-6-low"
          }
        }
      },
      "todorov_stages": {
        "equilibrium": "Lilith exists in a suspended, regulated captivity aboard the Oankali ship — repeatedly Awakened and returned to stasis, isolated but physically maintained, her cancer removed, her survival ensured. The Oankali have established a stable if coercive holding pattern for humanity.",
        "disruption": "Jdahya reveals the full terms of the gene trade: Oankali ooloi will merge human and Oankali genetic material, producing children neither fully human nor Oankali, and this commitment is as involuntary for the Oankali as breathing. Lilith's refusal changes nothing; the trade proceeds regardless.",
        "recognition": "Lilith's recognition unfolds in stages — through Kahguyaht's disclosure of the ooloi bonding chemistry already marking her neurologically, through Titus's revelation that over seventy children have been produced without human consent, and through Nikanj's confirmation that the hybrid children will be superior to both species. The recognition culminates when Lilith grasps that she has already been irrevocably altered and incorporated into Oankali purposes.",
        "repair": "Lilith attempts repair through compliance-with-resistance: she surrenders to Nikanj's neurological procedure, Awakens and prepares the human group, discloses the gene trade to them, and tries to teach them survival and agency — her repeated internal formulation being 'Learn and run!' She positions herself as a bridge who might preserve something of humanity even within the trade.",
        "new_equilibrium": "The novel closes with Lilith led by Nikanj into the forest, no longer a captive in a cell but a bound intermediary whose body and neurochemistry have been permanently altered, whose human partner Joseph has been killed, and whose group has scattered or escaped without her. She accepts another cycle — another human group, another chance to say 'Learn and run' — within a structure she cannot exit. Humanity's continuation is secured but irrevocably changed; Lilith's autonomy is permanently foreclosed."
      },
      "characters": [
        {
          "name": "Lilith Iyapo",
          "slug": "lilith-iyapo",
          "aliases": [
            "Lilith"
          ],
          "role": "Leader of the human survivors",
          "summary": "She fiercely protects human autonomy, physically overpowering her challengers. Despite trying to mediate between the Oankali and humans, she faces deep suspicion from her own people, is ambushed by Curt, loses Joseph, and ultimately strips naked on a battlefield to help heal a severely wounded Nikanj."
        },
        {
          "name": "Jdahya",
          "slug": "jdahya",
          "aliases": [
            "Kaaltediinjdahya lel Kahguyaht aj Dinso"
          ],
          "role": "Oankali Teacher/Guide",
          "summary": "An Oankali male who first introduces Lilith to the reality of the ship, their genetic trading, and her mission. He patiently helps her overcome her xenophobia."
        },
        {
          "name": "Nikanj",
          "slug": "nikanj",
          "aliases": [],
          "role": "Ooloi mated to Lilith and Joseph",
          "summary": "It drugs and calms Joseph, converses deeply with Lilith about human nature and the training floor, shares a profound emotional burst of grief over Joseph's death, and suffers a brutal dismemberment of its sensory arm during the camp skirmish."
        },
        {
          "name": "Kahguyaht",
          "slug": "kahguyaht",
          "aliases": [],
          "role": "Oankali ooloi parent",
          "summary": "It skillfully handles Tate and Gabriel without drugs, later drugs Curt and Gabriel in the battle, and instructs Lilith to strip naked to heal Nikanj's severed arm."
        },
        {
          "name": "Tediin",
          "slug": "tediin",
          "aliases": [],
          "role": "Oankali female",
          "summary": "Jdahya's female mate who speaks to Lilith in broken English about her preferences between Jdahya, Kahguyaht, and Nikanj."
        },
        {
          "name": "Unnamed Human Man",
          "slug": "unnamed-human-man",
          "aliases": [],
          "role": "Human survivor",
          "summary": "A survivor from Denver who was awakened by the Oankali at age fourteen and has decided to stay with them rather than return to Earth."
        },
        {
          "name": "Sharad",
          "slug": "sharad",
          "aliases": [],
          "role": "Human child (mentioned)",
          "summary": "A human child with an eidetic memory whom Lilith spent time teaching previously."
        },
        {
          "name": "Sam",
          "slug": "sam",
          "aliases": [],
          "role": "Lilith's deceased husband",
          "summary": "Lilith's husband who died from brain damage after a car accident before the war."
        },
        {
          "name": "Ayre",
          "slug": "ayre",
          "aliases": [],
          "role": "Lilith's deceased son",
          "summary": "Lilith's son who was killed in a car accident before the war."
        },
        {
          "name": "Fukumoto",
          "slug": "fukumoto",
          "aliases": [],
          "role": "Human survivor (mentioned)",
          "summary": "A human whom Lilith attempts to find by wandering into the Tiej area of the ship."
        },
        {
          "name": "Ahajas",
          "slug": "ahajas",
          "aliases": [],
          "role": "Oankali female",
          "summary": "Sister of Dichaan; a large Oankali female who helps carry Nikanj during its metamorphosis."
        },
        {
          "name": "Dichaan",
          "slug": "dichaan",
          "aliases": [],
          "role": "Oankali male",
          "summary": "Brother to Ahajas; promises to adjust the walls of their home so Lilith can open them."
        },
        {
          "name": "Victor Dominic",
          "slug": "victor-dominic",
          "aliases": [],
          "role": "Human survivor",
          "summary": "A highly controlled and formidable man who calmly promised to kill his captors, making Lilith wary to awaken him early."
        },
        {
          "name": "Leah Bede",
          "slug": "leah-bede",
          "aliases": [
            "Leah"
          ],
          "role": "Human survivor",
          "summary": "A quiet, patient, and intensely stubborn woman who initially attacks Lilith upon awakening but proves to be hardworking and unshakeable."
        },
        {
          "name": "Joseph",
          "slug": "joseph",
          "aliases": [
            "Joe"
          ],
          "role": "Lilith's mate and closest ally",
          "summary": "He defends Lilith's actions but remains fearful of the Oankali's influence. He eventually joins the escapees to explore the environment, goes missing after the ambush, and is implied by Nikanj to have been killed."
        },
        {
          "name": "Hilary",
          "slug": "hilary",
          "aliases": [],
          "role": "Human survivor",
          "summary": "A woman who panicked in isolation and broke her own arms trying to escape her cage."
        },
        {
          "name": "Conrad Loehr",
          "slug": "conrad-loehr",
          "aliases": [
            "Curt"
          ],
          "role": "Violent human survivor",
          "summary": "He forcefully demands male-female pairing, eventually escaping the settlement with Celene. He later ambushes Lilith, hitting her with a machete, and fights the Oankali with an ax at his rebel camp."
        },
        {
          "name": "Derick Wolski",
          "slug": "derick-wolski",
          "aliases": [],
          "role": "Human survivor",
          "summary": "A 23-year-old former nature photographer from Australia."
        },
        {
          "name": "Tate",
          "slug": "tate",
          "aliases": [],
          "role": "Human survivor",
          "summary": "She befriends Lilith but distrusts the aliens. She tentatively accepts Kahguyaht's touch, later secretly informing Lilith of the group's plan to escape into the forest."
        },
        {
          "name": "Celene",
          "slug": "celene",
          "aliases": [
            "Cele"
          ],
          "role": "Human survivor",
          "summary": "A fearful woman who becomes highly dependent on Curt for protection immediately upon awakening."
        },
        {
          "name": "Gabriel",
          "slug": "gabriel",
          "aliases": [
            "Gabe"
          ],
          "role": "Human survivor and escape leader",
          "summary": "Suspicious of Lilith's relationship with the Oankali, he orchestrates the group's departure to explore the forest. In the final battle, he tries to kill Nikanj with an ax but is drugged by Kahguyaht."
        },
        {
          "name": "Beatrice Dwyer",
          "slug": "beatrice-dwyer",
          "aliases": [
            "Beatrice"
          ],
          "role": "Human survivor",
          "summary": "A woman who avoids the men sexually but participates in discussions and adopts Joseph's learn-and-run mentality."
        },
        {
          "name": "Jean Pelerin",
          "slug": "jean-pelerin",
          "aliases": [],
          "role": "Human survivor",
          "summary": "A large woman who violently attacks Lilith over the meatless diet and is effortlessly knocked unconscious by Lilith."
        },
        {
          "name": "Peter",
          "slug": "peter",
          "aliases": [],
          "role": "Troublemaker and rebel among survivors",
          "summary": "He capitalizes on Derrick's disappearance to rally a faction against Lilith, but his arm is broken by Lilith when he tries to force Allison to pair up. Joseph later mentions he died human."
        },
        {
          "name": "Allison Zeigler",
          "slug": "allison-zeigler",
          "aliases": [
            "Allison"
          ],
          "role": "Human survivor",
          "summary": "She violently refuses to be forced into pairing with Gregory by Peter's faction, later joining the escape group and directly confronting Lilith about whether they are still on a ship."
        }
      ],
      "frameworks_mapped": [
        "Protocol Fiction Mapping",
        "Actantial Model",
        "Todorov's Equilibrium",
        "The Freytag Pyramid",
        "Propp's Morphology",
        "Genette's Narrative",
        "The Monomyth",
        "Dan Harmon",
        "Save the Cat",
        "Kishōtenketsu",
        "The Three-Act Structure"
      ],
      "score_reliability": {
        "state": "replicated-agree",
        "threshold": 0.2,
        "runs_total": 21,
        "versions_compared": [
          "2.5"
        ],
        "max_spread": 0.1,
        "contested": []
      }
    },
    {
      "slug": "stanislaw_lem_de_impossibilitate_vitae_de_impossibilitate_prognoscendi",
      "title": "De Impossibilitate Vitae / De Impossibilitate Prognoscendi",
      "author": "Stanislaw Lem",
      "year": 1971,
      "medium": "short_story",
      "genre_tags": [],
      "tropes": [],
      "quadrant_scores": {
        "time_linearity": 0.9,
        "pacing_velocity": 0.8,
        "threat_scale": 0.35,
        "protagonist_fate": 0.55,
        "conflict_style": 0.88,
        "price_type": 0.85
      },
      "provenance": {
        "analysis_run": "NTSMR-2.5-claude-sonnet-4-6-low",
        "analysis_body_sha256": "252413e1c8ea49419cb917b4fed23b1a49afe78027dc7aa2fe6a61ea5815d264",
        "synthesis": {
          "path": "nartopo-tools/artifacts/stanislaw_lem_de_impossibilitate_vitae_de_impossibilitate_prognoscendi.md.ntsmr-2-5-claude-sonnet-4-6-low.synthesis.json",
          "sha256": "10dd7620408914a935840b680e2158340bf49eadbc133915004f85cff5c141a5"
        },
        "report": {
          "path": "nartopo-tools/artifacts/stanislaw_lem_de_impossibilitate_vitae_de_impossibilitate_prognoscendi.md.ntsmr-2-5-claude-sonnet-4-6-low.report.json",
          "sha256": "5795d1db16c92ad833da26bafa7d9b232fc3263fc921ad5cfaef9fe1f4883607"
        },
        "source": {
          "path": "Stanislaw Lem/De Impossibilitate Vitae / De Impossibilitate Prognoscendi.txt",
          "sha256": "df09660ff419ecd44875c3b17e0f32f5657496af9291ba0c01e91de0f5dc055f",
          "digest_observed_at": "2026-09-09",
          "digest_at_analysis_run": null,
          "edition": null,
          "edition_status": "unresolved"
        },
        "pipeline_revision_at_run": null,
        "verification": {
          "source": "unverified",
          "human_review": "unreviewed",
          "bibliography": "unverified"
        },
        "issues": [],
        "todorov_status": "recovered-from-synthesis",
        "work_identity": {
          "title": "De Impossibilitate Vitae / De Impossibilitate Prognoscendi",
          "author": "Stanislaw Lem",
          "year": 1971
        }
      },
      "ntsmr": {
        "version": "2.5",
        "primary_run_label": "NTSMR-2.5-claude-sonnet-4-6-low",
        "runs": {
          "NTSMR-2.3-gemini-3.1-pro-preview": {
            "pipeline_version": "2.3",
            "backend": "gemini",
            "model": "gemini-3.1-pro-preview",
            "scores": {
              "time_linearity": 0.9,
              "pacing_velocity": 0.95,
              "threat_scale": 0.85,
              "protagonist_fate": 0.8,
              "conflict_style": 0.9,
              "price_type": 1
            },
            "score_space": "site-v1"
          },
          "NTSMR-2.3-claude-sonnet-4-6-low": {
            "pipeline_version": "2.3",
            "backend": "claude",
            "model": "claude-sonnet-4-6",
            "scores": {
              "time_linearity": 0.92,
              "pacing_velocity": 0.95,
              "threat_scale": 0.72,
              "protagonist_fate": 0.65,
              "conflict_style": 0.88,
              "price_type": 0.85
            },
            "score_space": "site-v1",
            "reasoning_effort": "low"
          },
          "NTSMR-2.4-claude-sonnet-4-6-low": {
            "pipeline_version": "2.4",
            "backend": "claude",
            "model": "claude-sonnet-4-6",
            "scores": {
              "time_linearity": 0.88,
              "pacing_velocity": 0.78,
              "threat_scale": 0.35,
              "protagonist_fate": 0.55,
              "conflict_style": 0.82,
              "price_type": 0.85
            },
            "score_space": "site-v1",
            "reasoning_effort": "low"
          },
          "NTSMR-2.5-claude-sonnet-4-6-low": {
            "pipeline_version": "2.5",
            "backend": "claude",
            "model": "claude-sonnet-4-6",
            "scores": {
              "time_linearity": 0.9,
              "pacing_velocity": 0.8,
              "threat_scale": 0.35,
              "protagonist_fate": 0.55,
              "conflict_style": 0.88,
              "price_type": 0.85
            },
            "score_space": "site-v1",
            "reasoning_effort": "low"
          },
          "NTSMR-2.5-balanced-glm-5+deepseek-v3.2": {
            "pipeline_version": "2.5",
            "backend": "openrouter",
            "model": "balanced-routing",
            "scores": {
              "time_linearity": 0.9,
              "pacing_velocity": 0.85,
              "threat_scale": 0.85,
              "protagonist_fate": 0.6,
              "conflict_style": 0.9,
              "price_type": 0.85
            },
            "score_space": "site-v1",
            "score_only": true,
            "source_run_label": "NTSMR-2.5-claude-sonnet-4-6-low"
          }
        }
      },
      "todorov_stages": {
        "equilibrium": "The opening status quo is the existence of a stable academic discourse: Professor Benedykt Kouska has published a two-volume philosophical work arguing that probability theory is either false or implies living beings cannot exist. The narrator-reviewer frames this as an intellectually provocative but internally coherent position occupying a zone between orthodoxy and madness.",
        "disruption": "The disruption operates on two levels simultaneously. At the philosophical level, Kouska's argument introduces a radical challenge to the foundations of probability theory by tracing the improbable chain of contingencies — the nurse entering the wrong door, WWI, the assassination of the Archduke, the suitors' failures — that were all necessary preconditions for his birth, thereby claiming physics implies his own existence is thermodynamically impossible. At the meta-level, Professor Bedřich Vrchlicka publishes a counter-argument asserting that Kouska's proof rests on unstated metaphysical wonderment at existence and has nothing to do with physics.",
        "recognition": "Recognition occurs when Kouska expands the causal chain backward through the nurse's and surgeon's own births, their ancestors, and pre-human primates, forcing the realization that the same improbability applies recursively to all individual existence. The climactic recognition is Kouska's own formulation: since physics classes centillion-to-one odds as impossible thermodynamic miracles, and yet individual humans exist, either physics is wrong or no individual human being can exist.",
        "repair": "The repair attempt is discursive rather than physical: Kouska constructs Volume II arguing that all historical events are improbable by probabilist standards, and therefore futurology must abandon probabilistic reasoning in favor of an entirely different reckoning — a theory based on antipodal axioms of the distribution of ensembles in space-time. Vrchlicka's counter-argument attempts a parallel repair by reframing the question as one of subjective identity rather than physics.",
        "new_equilibrium": "The new equilibrium is one of unresolved intellectual perplexity. The narrator-reviewer confesses he cannot adjudicate between the two illustrious thinkers and closes by noting his one clear gain from reading: a thorough knowledge of the improbable family history that produced Professor Kouska. The philosophical dispute remains open, but the text has arrived at a stable resting point — the biographical genealogy is now fully known even if the metaphysical question is not resolved."
      },
      "characters": [
        {
          "name": "The Reviewer",
          "slug": "the-reviewer",
          "aliases": [
            "I"
          ],
          "role": "Narrator",
          "summary": "The first-person narrator who is summarizing and reacting to the academic texts of Professor Kouska and Professor Vrchlicka."
        },
        {
          "name": "The Nurse",
          "slug": "the-nurse",
          "aliases": [
            "volunteer nurse",
            "society miss",
            "young lady"
          ],
          "role": "Professor Kouska's mother",
          "summary": "A volunteer nurse who entered the wrong room and was ejected by Surgeon Kouska, setting off a chain of events that led to their marriage."
        },
        {
          "name": "Doctor Popichal",
          "slug": "doctor-popichal",
          "aliases": [],
          "role": "Surgeon Kouska's colleague",
          "summary": "A doctor whose sprained ankle on a dark stairwell forced Surgeon Kouska to take his place in surgery."
        },
        {
          "name": "The Regiment Doctor",
          "slug": "the-regiment-doctor",
          "aliases": [
            "superior"
          ],
          "role": "Surgeon Kouska's superior",
          "summary": "The superior who demanded that the young surgeon apologize to the nurse for his unseemly behavior."
        },
        {
          "name": "Archduke Ferdinand",
          "slug": "archduke-ferdinand",
          "aliases": [],
          "role": "Historical figure",
          "summary": "His assassination in Sarajevo is cited as a necessary precondition for the outbreak of war and the subsequent meeting of Kouska's parents."
        },
        {
          "name": "The Serb",
          "slug": "the-serb",
          "aliases": [
            "assassin"
          ],
          "role": "Historical figure",
          "summary": "The assassin of Archduke Ferdinand, whose steady hand is factored into the probability of Kouska's birth."
        },
        {
          "name": "Marika",
          "slug": "marika",
          "aliases": [],
          "role": "Surgeon Kouska's former fiancée",
          "summary": "Surgeon Kouska's initial betrothed from Lwów, whose hoarse voice from an unremoved polyp made him prefer the nurse's singing."
        },
        {
          "name": "Otorhinolaryngologist",
          "slug": "otorhinolaryngologist",
          "aliases": [],
          "role": "Doctor",
          "summary": "A doctor who fled to Italy after losing money in a casino instead of removing Marika's polyp."
        },
        {
          "name": "Adolf Alfred von Messen-Weydeneck zu Oryola und Münne-sacks, Baron Hamuras",
          "slug": "adolf-alfred-von-messen-weydeneck-zu-oryola-und-mnne-sacks-baron-hamuras",
          "aliases": [
            "Hamuras"
          ],
          "role": "The nurse's first suitor",
          "summary": "A grounded pilot suffering from a recurring hernia and Schreibkrampf, whom the nurse refused to marry."
        },
        {
          "name": "Major General Prchl",
          "slug": "major-general-prchl",
          "aliases": [
            "Lieutenant General Prchl"
          ],
          "role": "Imperial Crown Commissariat",
          "summary": "A general whose affair with a French governess indirectly influenced Austro-Hungarian aviation contracts and Baron Hamuras's fate."
        },
        {
          "name": "The Governess",
          "slug": "the-governess",
          "aliases": [
            "French mistress"
          ],
          "role": "General Prchl's mistress",
          "summary": "A French governess who had a baby with a two-bit tenor, causing General Prchl to lose his affection for all things French."
        },
        {
          "name": "Captain Miśnia",
          "slug": "captain-minia",
          "aliases": [],
          "role": "The nurse's second suitor",
          "summary": "A captain who died of pneumonia after an artillery shell blasted him naked from a steam bath into the snow."
        },
        {
          "name": "Fourth Suitor",
          "slug": "fourth-suitor",
          "aliases": [
            "beau"
          ],
          "role": "The nurse's suitor",
          "summary": "A heavily indebted suitor whose past was revealed to the nurse's father due to a sequence of events involving beer."
        },
        {
          "name": "Surgeon Kouska",
          "slug": "surgeon-kouska",
          "aliases": [
            "army doctor",
            "doctor-prisoner Kouska",
            "young surgeon Kouska",
            "Benedykt Kouska",
            "Professor B. Kouska"
          ],
          "role": "Professor Kouska's father",
          "summary": "A military doctor during the First World War who fell in love with and married a volunteer nurse after initially ejecting her from an operating room."
        },
        {
          "name": "Sergius",
          "slug": "sergius",
          "aliases": [],
          "role": "Student/Employer",
          "summary": "A boy whose failure to learn languages necessitated bringing Surgeon Kouska's father along as a translator."
        },
        {
          "name": "Ylastimil Kouska",
          "slug": "ylastimil-kouska",
          "aliases": [],
          "role": "Ancestor",
          "summary": "A tailor born in 1673, whose existence was a necessary precondition for Professor Kouska's birth."
        },
        {
          "name": "Paleopithecanthropus",
          "slug": "paleopithecanthropus",
          "aliases": [],
          "role": "Protohuman ancestor",
          "summary": "A quadrumanous protohuman who pursued and mated with a female ancestor under a eucalyptus tree in prehistoric Prague."
        },
        {
          "name": "Quadrumanous protohuman primatrice",
          "slug": "quadrumanous-protohuman-primatrice",
          "aliases": [
            "quadrumanal female",
            "quadrumaness"
          ],
          "role": "Protohuman ancestor",
          "summary": "A female protohuman ancestor who stumbled on a eucalyptus root, leading to a fateful prehistoric pregnancy."
        },
        {
          "name": "Professor Bedřich Vrchlicka",
          "slug": "professor-bedich-vrchlicka",
          "aliases": [],
          "role": "Critic",
          "summary": "The author of a critical article in Zëmledëlské Noviny who debunks Professor Kouska's antiprobabilistic theories."
        }
      ],
      "frameworks_mapped": [
        "Protocol Fiction Mapping",
        "Actantial Model",
        "Todorov's Equilibrium",
        "The Freytag Pyramid",
        "Propp's Morphology",
        "Genette's Narrative",
        "The Monomyth",
        "Dan Harmon",
        "Save the Cat",
        "Kishōtenketsu",
        "The Three-Act Structure",
        "Lévi-Strauss's Binary Oppositions",
        "Cognitive Estrangement",
        "Bakhtin's Chronotope",
        "Aristotelian Poetics",
        "Jungian Archetypal Analysis",
        "Genette's Transtextuality"
      ],
      "score_reliability": {
        "state": "contested",
        "threshold": 0.2,
        "runs_total": 5,
        "versions_compared": [
          "2.5"
        ],
        "max_spread": 0.5,
        "contested": [
          {
            "axis": "threat_scale",
            "version": "2.5",
            "spread": 0.5,
            "low": {
              "label": "NTSMR-2.5-claude-sonnet-4-6-low",
              "model": "claude-sonnet-4-6",
              "effort": "low",
              "value": 0.35
            },
            "high": {
              "label": "NTSMR-2.5-balanced-glm-5+deepseek-v3.2",
              "model": "balanced-routing",
              "effort": "?",
              "value": 0.85
            }
          }
        ]
      }
    },
    {
      "slug": "jorge_luis_borges_death_and_the_compass",
      "title": "Death and the Compass",
      "author": "Jorge Luis Borges",
      "year": 1944,
      "medium": "short_story",
      "genre_tags": [],
      "tropes": [],
      "quadrant_scores": {
        "time_linearity": 0.35,
        "pacing_velocity": 0.55,
        "threat_scale": 0.2,
        "protagonist_fate": 0.9,
        "conflict_style": 0.55,
        "price_type": 0.7
      },
      "provenance": {
        "analysis_run": "NTSMR-2.5-claude-sonnet-4-6-low",
        "analysis_body_sha256": "9ed029c14abad64fb20cac8fff5b57dec6be8d4d562a7dd7701a6c3b9041f100",
        "synthesis": {
          "path": "nartopo-tools/artifacts/jorge_luis_borges_death_and_the_compass.md.ntsmr-2-5-claude-sonnet-4-6-low.synthesis.json",
          "sha256": "ce4ddee6b3679263a805f24bd016008b1185171afa8ac0b38fb0fa80aab0a1d0"
        },
        "report": {
          "path": "nartopo-tools/artifacts/jorge_luis_borges_death_and_the_compass.md.ntsmr-2-5-claude-sonnet-4-6-low.report.json",
          "sha256": "dfdc5c1a506cb3d76acb6cf490c777fd0858948c27f7df69f57bfcb3dfcfe306"
        },
        "source": {
          "path": "Jorge Luis Borges/Death and the Compass.txt",
          "sha256": "5e21f088c13105cc406d66a14a76607a355980028740e0967afc18983fb1b432",
          "digest_observed_at": "2026-09-09",
          "digest_at_analysis_run": null,
          "edition": null,
          "edition_status": "unresolved"
        },
        "pipeline_revision_at_run": null,
        "verification": {
          "source": "unverified",
          "human_review": "unreviewed",
          "bibliography": "unverified"
        },
        "issues": [],
        "todorov_status": "recovered-from-synthesis",
        "work_identity": {
          "title": "Death and the Compass",
          "author": "Jorge Luis Borges",
          "year": 1944
        }
      },
      "ntsmr": {
        "version": "2.5",
        "primary_run_label": "NTSMR-2.5-claude-sonnet-4-6-low",
        "runs": {
          "NTSMR-2.3-gemini-3.1-pro-preview": {
            "pipeline_version": "2.3",
            "backend": "gemini",
            "model": "gemini-3.1-pro-preview",
            "scores": {
              "time_linearity": 0.2,
              "pacing_velocity": 0.9,
              "threat_scale": 0.1,
              "protagonist_fate": 0.9,
              "conflict_style": 0.8,
              "price_type": 0.8
            },
            "score_space": "site-v1"
          },
          "NTSMR-2.3-claude-sonnet-4-6-low": {
            "pipeline_version": "2.3",
            "backend": "claude",
            "model": "claude-sonnet-4-6",
            "scores": {
              "time_linearity": 0.25,
              "pacing_velocity": 0.75,
              "threat_scale": 0.2,
              "protagonist_fate": 0.95,
              "conflict_style": 0.75,
              "price_type": 0.8
            },
            "score_space": "site-v1",
            "reasoning_effort": "low"
          },
          "NTSMR-2.4-claude-sonnet-4-6-low": {
            "pipeline_version": "2.4",
            "backend": "claude",
            "model": "claude-sonnet-4-6",
            "scores": {
              "time_linearity": 0.28,
              "pacing_velocity": 0.4,
              "threat_scale": 0.15,
              "protagonist_fate": 0.92,
              "conflict_style": 0.65,
              "price_type": 0.45
            },
            "score_space": "site-v1",
            "reasoning_effort": "low"
          },
          "NTSMR-2.5-claude-sonnet-4-6-low": {
            "pipeline_version": "2.5",
            "backend": "claude",
            "model": "claude-sonnet-4-6",
            "scores": {
              "time_linearity": 0.35,
              "pacing_velocity": 0.55,
              "threat_scale": 0.2,
              "protagonist_fate": 0.9,
              "conflict_style": 0.55,
              "price_type": 0.7
            },
            "score_space": "site-v1",
            "reasoning_effort": "low"
          },
          "NTSMR-2.5-balanced-glm-5+deepseek-v3.2": {
            "pipeline_version": "2.5",
            "backend": "openrouter",
            "model": "balanced-routing",
            "scores": {
              "time_linearity": 0.35,
              "pacing_velocity": 0.65,
              "threat_scale": 0.5,
              "protagonist_fate": 0.6,
              "conflict_style": 0.7,
              "price_type": 0.7
            },
            "score_space": "site-v1",
            "score_only": true,
            "source_run_label": "NTSMR-2.5-claude-sonnet-4-6-low"
          }
        }
      },
      "todorov_stages": {
        "equilibrium": "Lönnrot operates as a respected detective in a city where crime follows comprehensible patterns; the social and investigative order is intact before the murders begin.",
        "disruption": "Dr. Yarmolinsky is found murdered in his hotel room on December 4, initiating a false series of Kabbalistic crimes that fractures the city's order and draws Lönnrot into a manufactured pattern.",
        "recognition": "Scharlach's retrospective confession reveals the true causal sequence—the first murder was accidental, all subsequent ones were engineered to exploit Lönnrot's interpretive habits—marking the moment when the constructed nature of the disruption is fully understood.",
        "repair": "Lönnrot pursues the geometric-theological pattern, deduces the fourth crime's location by completing the rhombus, and travels alone to Villa Triste-le-Roy believing he has outpaced the criminals—his attempt to resolve the case and restore order.",
        "new_equilibrium": "Scharlach shoots Lönnrot; the detective's death completes the trap he helped spring, establishing a permanent and inverted resolution in which the criminal's revenge is fulfilled and Lönnrot's rationalist world is extinguished rather than restored."
      },
      "characters": [
        {
          "name": "Erik Lönnrot",
          "slug": "erik-lnnrot",
          "aliases": [],
          "role": "Detective",
          "summary": "A reasoning machine and detective who investigates the series of murders by seeking complex, mystical explanations."
        },
        {
          "name": "Red Scharlach",
          "slug": "red-scharlach",
          "aliases": [
            "Scharlach the Dandy"
          ],
          "role": "Criminal mastermind",
          "summary": "A famous Southside gunman who swears to kill Lönnrot and constructs an elaborate labyrinth of crimes to trap him."
        },
        {
          "name": "Treviranus",
          "slug": "treviranus",
          "aliases": [
            "Franz Treviranus"
          ],
          "role": "Police commissioner",
          "summary": "A pragmatic police commissioner who correctly guesses the mundane nature of the first crime and investigates the subsequent events."
        },
        {
          "name": "Dr. Marcelo Yarmolinsky",
          "slug": "dr-marcelo-yarmolinsky",
          "aliases": [],
          "role": "Victim",
          "summary": "A delegate from Podolsk and rabbi who is accidentally murdered in the Hôtel du Nord."
        },
        {
          "name": "Writer for the Yiddische Zeitung",
          "slug": "writer-for-the-yiddische-zeitung",
          "aliases": [],
          "role": "Journalist",
          "summary": "A nearsighted, shy, atheist journalist who discusses the names of God with Lönnrot and writes an article about him."
        },
        {
          "name": "Tetrarch of Galilee",
          "slug": "tetrarch-of-galilee",
          "aliases": [],
          "role": "Hotel guest",
          "summary": "A wealthy figure occupying the suite across from Yarmolinsky, known for owning the world's finest sapphires."
        },
        {
          "name": "Daniel Simón Azevedo",
          "slug": "daniel-simn-azevedo",
          "aliases": [],
          "role": "Victim / Criminal",
          "summary": "A thief and former thug of Scharlach's who botched the sapphire robbery, killed Yarmolinsky, and was later executed as the second 'sacrifice'."
        },
        {
          "name": "Gryphius",
          "slug": "gryphius",
          "aliases": [
            "Ginzberg",
            "Ginsburg"
          ],
          "role": "Fictitious victim / Alias",
          "summary": "An alias used by Scharlach (with a false beard) during a staged kidnapping at Liverpool House to create the illusion of a third crime."
        },
        {
          "name": "Black Finnegan",
          "slug": "black-finnegan",
          "aliases": [],
          "role": "Tavern owner",
          "summary": "A former Irish criminal who owns Liverpool House and rents a room to Gryphius."
        },
        {
          "name": "Ernst Palast",
          "slug": "ernst-palast",
          "aliases": [],
          "role": "Journalist",
          "summary": "A writer for The Martyr who denounces the murders as part of a clandestine pogrom."
        },
        {
          "name": "Scharlach's brother",
          "slug": "scharlachs-brother",
          "aliases": [],
          "role": "Catalyst character",
          "summary": "The man whose imprisonment by Lönnrot motivated Scharlach to seek revenge."
        }
      ],
      "frameworks_mapped": [
        "Protocol Fiction Mapping",
        "Actantial Model",
        "Todorov's Equilibrium",
        "The Freytag Pyramid",
        "Propp's Morphology",
        "Genette's Narrative",
        "The Monomyth",
        "Dan Harmon",
        "Save the Cat",
        "Kishōtenketsu",
        "The Three-Act Structure",
        "Lévi-Strauss's Binary Oppositions",
        "Cognitive Estrangement",
        "Bakhtin's Chronotope",
        "Aristotelian Poetics",
        "Jungian Archetypal Analysis",
        "Genette's Transtextuality"
      ],
      "score_reliability": {
        "state": "contested",
        "threshold": 0.2,
        "runs_total": 5,
        "versions_compared": [
          "2.5"
        ],
        "max_spread": 0.3,
        "contested": [
          {
            "axis": "protagonist_fate",
            "version": "2.5",
            "spread": 0.3,
            "low": {
              "label": "NTSMR-2.5-balanced-glm-5+deepseek-v3.2",
              "model": "balanced-routing",
              "effort": "?",
              "value": 0.6
            },
            "high": {
              "label": "NTSMR-2.5-claude-sonnet-4-6-low",
              "model": "claude-sonnet-4-6",
              "effort": "low",
              "value": 0.9
            }
          },
          {
            "axis": "threat_scale",
            "version": "2.5",
            "spread": 0.3,
            "low": {
              "label": "NTSMR-2.5-claude-sonnet-4-6-low",
              "model": "claude-sonnet-4-6",
              "effort": "low",
              "value": 0.2
            },
            "high": {
              "label": "NTSMR-2.5-balanced-glm-5+deepseek-v3.2",
              "model": "balanced-routing",
              "effort": "?",
              "value": 0.5
            }
          }
        ]
      }
    },
    {
      "slug": "stanislaw_lem_die_kultur_als_fehler",
      "title": "Die Kultur als Fehler",
      "author": "Stanislaw Lem",
      "year": 1971,
      "medium": "short_story",
      "genre_tags": [],
      "tropes": [],
      "quadrant_scores": {
        "time_linearity": 0.1,
        "pacing_velocity": 0.75,
        "threat_scale": 0.7,
        "protagonist_fate": 0.55,
        "conflict_style": 0.85,
        "price_type": 0.85
      },
      "provenance": {
        "analysis_run": "NTSMR-2.5-claude-sonnet-4-6-low",
        "analysis_body_sha256": "09a82847069257c07b1bc8c5eec56513506428c8437e521ee2eaf80a981754fd",
        "synthesis": {
          "path": "nartopo-tools/artifacts/stanislaw_lem_die_kultur_als_fehler.md.ntsmr-2-5-claude-sonnet-4-6-low.synthesis.json",
          "sha256": "79e63b81d6a00a779d52704ee72638696d83de01dff55b0bb6d0d555d3287dce"
        },
        "report": {
          "path": "nartopo-tools/artifacts/stanislaw_lem_die_kultur_als_fehler.md.ntsmr-2-5-claude-sonnet-4-6-low.report.json",
          "sha256": "18146cd7871035ceb637c90ab7cfb5aef9b2ad52772927d89c15c1b7da56a949"
        },
        "source": {
          "path": "Stanislaw Lem/Die Kultur als Fehler.txt",
          "sha256": "dacd18af518a2cc0907221ffd5eb67b4cfa35e615661921788f2e17143840b17",
          "digest_observed_at": "2026-09-09",
          "digest_at_analysis_run": null,
          "edition": null,
          "edition_status": "unresolved"
        },
        "pipeline_revision_at_run": null,
        "verification": {
          "source": "unverified",
          "human_review": "unreviewed",
          "bibliography": "unverified"
        },
        "issues": [],
        "todorov_status": "recovered-from-synthesis",
        "work_identity": {
          "title": "Die Kultur als Fehler",
          "author": "Stanislaw Lem",
          "year": 1971
        }
      },
      "ntsmr": {
        "version": "2.5",
        "primary_run_label": "NTSMR-2.5-claude-sonnet-4-6-low",
        "runs": {
          "NTSMR-2.3-gemini-3.1-pro-preview": {
            "pipeline_version": "2.3",
            "backend": "gemini",
            "model": "gemini-3.1-pro-preview",
            "scores": {
              "time_linearity": 0.1,
              "pacing_velocity": 0.95,
              "threat_scale": 1,
              "protagonist_fate": 0.7,
              "conflict_style": 0.95,
              "price_type": 1
            },
            "score_space": "site-v1"
          },
          "NTSMR-2.3-claude-sonnet-4-6-low": {
            "pipeline_version": "2.3",
            "backend": "claude",
            "model": "claude-sonnet-4-6",
            "scores": {
              "time_linearity": 0.1,
              "pacing_velocity": 0.92,
              "threat_scale": 0.85,
              "protagonist_fate": 0.55,
              "conflict_style": 0.88,
              "price_type": 0.95
            },
            "score_space": "site-v1",
            "reasoning_effort": "low"
          },
          "NTSMR-2.4-claude-sonnet-4-6-low": {
            "pipeline_version": "2.4",
            "backend": "claude",
            "model": "claude-sonnet-4-6",
            "scores": {
              "time_linearity": 0.18,
              "pacing_velocity": 0.7,
              "threat_scale": 0.72,
              "protagonist_fate": 0.55,
              "conflict_style": 0.8,
              "price_type": 0.82
            },
            "score_space": "site-v1",
            "reasoning_effort": "low"
          },
          "NTSMR-2.5-claude-sonnet-4-6-low": {
            "pipeline_version": "2.5",
            "backend": "claude",
            "model": "claude-sonnet-4-6",
            "scores": {
              "time_linearity": 0.1,
              "pacing_velocity": 0.75,
              "threat_scale": 0.7,
              "protagonist_fate": 0.55,
              "conflict_style": 0.85,
              "price_type": 0.85
            },
            "score_space": "site-v1",
            "reasoning_effort": "low"
          },
          "NTSMR-2.5-balanced-glm-5+deepseek-v3.2": {
            "pipeline_version": "2.5",
            "backend": "openrouter",
            "model": "balanced-routing",
            "scores": {
              "time_linearity": 0.25,
              "pacing_velocity": 0.82,
              "threat_scale": 0.82,
              "protagonist_fate": 0.58,
              "conflict_style": 0.85,
              "price_type": 0.82
            },
            "score_space": "site-v1",
            "score_only": true,
            "source_run_label": "NTSMR-2.5-claude-sonnet-4-6-low"
          }
        }
      },
      "todorov_stages": {
        "equilibrium": "The intellectual status quo is Sadbottham and Whistle's Anglo-Saxon error theory: culture arises from accumulated biological and cognitive mistakes, and this is taken as the dominant framework for understanding civilization's origin and function.",
        "disruption": "Klopper delivers his crystallizing slogan — culture is a mistake — but redefines mistake precisely: not an error of origin but a necessary mental adaptation now rendered obsolete by technological civilization's promise to literally optimize the human body, undermining the entire compensatory function of culture.",
        "recognition": "Klopper argues that since technology promises to correct the biological deficiencies culture only symbolically palliated, culture must now be declared an anachronism — the broken-down vehicle whose flaws one need no longer sentimentalize, and whose sentimental defenders are merely the long-conditioned clinging to their captivity.",
        "repair": "Klopper projects the emergence of Homo optimisans se ipse, the Autocreator or Self-Maker, as the inexorable destination of technoevolution — a post-cultural self-engineering species that will laugh at Cassandras and sunder the chains evolution branded upon humanity, replacing cultural scaffolding with literal biological self-optimization.",
        "new_equilibrium": "The reviewer offers a measured dissent from Klopper's techno-utopian resolution: technoevolution cannot be declared humanity's existential panacea because optimization criteria are too intricately relativistic to serve as a universal salvational code, leaving the future still dark despite the efforts of futurologists and thinkers such as Klopper."
      },
      "characters": [
        {
          "name": "Wilhelm Klopper",
          "slug": "wilhelm-klopper",
          "aliases": [
            "Privatdozent W. Klopper",
            "Herr Dozent Klopper"
          ],
          "role": "Fictional Author",
          "summary": "A German thinker and author of the two-volume work 'Civilization as Mistake', who argues that culture is a mental adaptation that should be replaced by technological self-creation."
        },
        {
          "name": "The Reviewer",
          "slug": "the-reviewer",
          "aliases": [
            "I",
            "we",
            "this reviewer"
          ],
          "role": "Narrator / Critic",
          "summary": "An unnamed, non-German critic who summarizes and ultimately evaluates Klopper's treatise, expressing reservations about his utopian technoevolutionary views."
        },
        {
          "name": "Whistle",
          "slug": "whistle",
          "aliases": [],
          "role": "Anthropologist",
          "summary": "An English scholar cited by Klopper who posits that culture originates from adaptationally senseless behavior."
        },
        {
          "name": "Joshua Sadbottham",
          "slug": "joshua-sadbottham",
          "aliases": [
            "J. Sadbottham"
          ],
          "role": "Philosopher",
          "summary": "An English scholar of the logical-analytical school who expanded on Whistle's ideas, arguing that human communities and cultures are built upon mistakes and misunderstandings."
        },
        {
          "name": "Hegel",
          "slug": "hegel",
          "aliases": [],
          "role": "Historical Philosopher",
          "summary": "A German philosopher mentioned by the reviewer to illustrate the German penchant for order."
        },
        {
          "name": "Schopenhauer",
          "slug": "schopenhauer",
          "aliases": [],
          "role": "Historical Philosopher",
          "summary": "A German philosopher cited by the reviewer for his expository drill and whose brevity Klopper's assertions are compared to."
        },
        {
          "name": "Fichte",
          "slug": "fichte",
          "aliases": [],
          "role": "Historical Philosopher",
          "summary": "A German philosopher briefly mentioned by the reviewer."
        },
        {
          "name": "Homo optimisans se ipse",
          "slug": "homo-optimisans-se-ipse",
          "aliases": [
            "Autocreator",
            "Self-Maker"
          ],
          "role": "Future human ideal",
          "summary": "Klopper's vision of the future human who achieves perfection through technological self-creation."
        }
      ],
      "frameworks_mapped": [
        "Protocol Fiction Mapping",
        "Actantial Model",
        "Todorov's Equilibrium",
        "The Freytag Pyramid",
        "Propp's Morphology",
        "Genette's Narrative",
        "The Monomyth",
        "Dan Harmon",
        "Save the Cat",
        "Kishōtenketsu",
        "The Three-Act Structure",
        "Lévi-Strauss's Binary Oppositions",
        "Cognitive Estrangement",
        "Bakhtin's Chronotope",
        "Aristotelian Poetics",
        "Jungian Archetypal Analysis",
        "Genette's Transtextuality"
      ],
      "score_reliability": {
        "state": "replicated-agree",
        "threshold": 0.2,
        "runs_total": 5,
        "versions_compared": [
          "2.5"
        ],
        "max_spread": 0.15,
        "contested": []
      }
    },
    {
      "slug": "ted_chiang_division_by_zero",
      "title": "Division by Zero",
      "author": "Ted Chiang",
      "year": 2002,
      "medium": "short_story",
      "genre_tags": [],
      "tropes": [],
      "quadrant_scores": {
        "time_linearity": 0.55,
        "pacing_velocity": 0.82,
        "threat_scale": 0.2,
        "protagonist_fate": 0.65,
        "conflict_style": 0.88,
        "price_type": 0.87
      },
      "provenance": {
        "analysis_run": "NTSMR-2.5-claude-sonnet-4-6-low",
        "analysis_body_sha256": "ea6aee538d8be3336e0c568d15bf3cb36ddcc1594b6b37a6d6e49d93feb690ee",
        "synthesis": {
          "path": "nartopo-tools/artifacts/ted_chiang_division_by_zero.md.ntsmr-2-5-claude-sonnet-4-6-low.synthesis.json",
          "sha256": "33556796e2011eb0e55a1e84f1089e8367e78b8eab6656f7ac719b3147b14503"
        },
        "report": {
          "path": "nartopo-tools/artifacts/ted_chiang_division_by_zero.md.ntsmr-2-5-claude-sonnet-4-6-low.report.json",
          "sha256": "8b6a99a022ee06b1a8245bac99e0a401b9aff565dddd7fe1249edc866cbbc212"
        },
        "source": {
          "path": "Ted Chiang/Division by Zero.txt",
          "sha256": "149ac42366d3d4f0a65793d721f9ebbb79324e01bcc32a1cd309060b741f1464",
          "digest_observed_at": "2026-09-09",
          "digest_at_analysis_run": null,
          "edition": null,
          "edition_status": "unresolved"
        },
        "pipeline_revision_at_run": null,
        "verification": {
          "source": "unverified",
          "human_review": "unreviewed",
          "bibliography": "unverified"
        },
        "issues": [],
        "todorov_status": "recovered-from-synthesis",
        "work_identity": {
          "title": "Division by Zero",
          "author": "Ted Chiang",
          "year": 2002
        }
      },
      "ntsmr": {
        "version": "2.5",
        "primary_run_label": "NTSMR-2.5-claude-sonnet-4-6-low",
        "runs": {
          "NTSMR-2.3-gemini-3.1-pro-preview": {
            "pipeline_version": "2.3",
            "backend": "gemini",
            "model": "gemini-3.1-pro-preview",
            "scores": {
              "time_linearity": 0.9,
              "pacing_velocity": 0.9,
              "threat_scale": 0.7,
              "protagonist_fate": 0.85,
              "conflict_style": 0.9,
              "price_type": 0.95
            },
            "score_space": "site-v1"
          },
          "NTSMR-2.3-claude-sonnet-4-6-low": {
            "pipeline_version": "2.3",
            "backend": "claude",
            "model": "claude-sonnet-4-6",
            "scores": {
              "time_linearity": 0.75,
              "pacing_velocity": 0.85,
              "threat_scale": 0.35,
              "protagonist_fate": 0.72,
              "conflict_style": 0.82,
              "price_type": 0.95
            },
            "score_space": "site-v1",
            "reasoning_effort": "low"
          },
          "NTSMR-2.4-claude-sonnet-4-6-low": {
            "pipeline_version": "2.4",
            "backend": "claude",
            "model": "claude-sonnet-4-6",
            "scores": {
              "time_linearity": 0.65,
              "pacing_velocity": 0.8,
              "threat_scale": 0.12,
              "protagonist_fate": 0.82,
              "conflict_style": 0.88,
              "price_type": 0.85
            },
            "score_space": "site-v1",
            "reasoning_effort": "low"
          },
          "NTSMR-2.5-claude-sonnet-4-6-low": {
            "pipeline_version": "2.5",
            "backend": "claude",
            "model": "claude-sonnet-4-6",
            "scores": {
              "time_linearity": 0.55,
              "pacing_velocity": 0.82,
              "threat_scale": 0.2,
              "protagonist_fate": 0.65,
              "conflict_style": 0.88,
              "price_type": 0.87
            },
            "score_space": "site-v1",
            "reasoning_effort": "low"
          },
          "NTSMR-2.5-balanced-glm-5+deepseek-v3.2": {
            "pipeline_version": "2.5",
            "backend": "openrouter",
            "model": "balanced-routing",
            "scores": {
              "time_linearity": 0.28,
              "pacing_velocity": 0.82,
              "threat_scale": 0.28,
              "protagonist_fate": 0.68,
              "conflict_style": 0.88,
              "price_type": 0.82
            },
            "score_space": "site-v1",
            "score_only": true,
            "source_run_label": "NTSMR-2.5-claude-sonnet-4-6-low"
          }
        }
      },
      "todorov_stages": {
        "equilibrium": "Renee is a functioning mathematician with professional standing and a stable marriage to Carl; her intellectual life rests on the implicit certainty of arithmetic's consistency.",
        "disruption": "Renee develops a formalism that proves arithmetic is formally inconsistent — that 1=2 by rigorous means — and neither Fabrisi nor Callahan can find an error, leaving the proof unrefuted.",
        "recognition": "Renee writes out the proof for Carl column by column, confronting him and herself with the result; as her condition worsens she loses the intuition of distinct quantities entirely, and the crisis culminates in her suicide attempt.",
        "repair": "After hospitalization Renee reconstitutes herself by reframing mathematics as empirical rather than foundational, thereby dissolving the proof's a priori force and losing interest in mathematics altogether.",
        "new_equilibrium": "Renee survives with a radically altered relationship to mathematics and to herself, expressing genuine gratitude to Carl; Carl meanwhile has fallen out of love and plans to leave once she recovers, so the couple's bond is privately dissolved even as the surface scene appears reconciled."
      },
      "characters": [
        {
          "name": "Renee",
          "slug": "renee",
          "aliases": [
            "Mrs. Norwood"
          ],
          "role": "Professor of mathematics",
          "summary": "A brilliant mathematician whose discovery of a formal contradiction in arithmetic causes an existential crisis and suicide attempt."
        },
        {
          "name": "Carl",
          "slug": "carl",
          "aliases": [
            "Mr. Norwood"
          ],
          "role": "Experimental biologist and Renee's husband",
          "summary": "Renee's husband who survived a past suicide attempt. He struggles to empathize with Renee's abstract crisis and realizes he is falling out of love with her."
        },
        {
          "name": "Mrs. Rivas",
          "slug": "mrs-rivas",
          "aliases": [],
          "role": "Psychiatric ward patient",
          "summary": "A patient in the psychiatric ward known for making manipulative suicide gestures."
        },
        {
          "name": "Fabrisi",
          "slug": "fabrisi",
          "aliases": [
            "Peter Fabrisi"
          ],
          "role": "Renee's colleague",
          "summary": "A mathematician in Renee's department who reviews her formalism but cannot find any error in it."
        },
        {
          "name": "Callahan",
          "slug": "callahan",
          "aliases": [],
          "role": "Mathematician at Berkeley",
          "summary": "A peer Renee corresponds with who reviews her work and recognizes its fundamental, disturbing implications."
        },
        {
          "name": "Marlene",
          "slug": "marlene",
          "aliases": [],
          "role": "Carl's friend",
          "summary": "A friend of Carl who turned to him for support when she considered suicide."
        },
        {
          "name": "Anne",
          "slug": "anne",
          "aliases": [],
          "role": "Marlene's best friend",
          "summary": "Marlene's best friend who harbored envy over Carl's ability to comfort Marlene."
        }
      ],
      "frameworks_mapped": [
        "Protocol Fiction Mapping",
        "Actantial Model",
        "Todorov's Equilibrium",
        "The Freytag Pyramid",
        "Propp's Morphology",
        "Genette's Narrative",
        "The Monomyth",
        "Dan Harmon",
        "Save the Cat",
        "Kishōtenketsu",
        "The Three-Act Structure",
        "Lévi-Strauss's Binary Oppositions",
        "Cognitive Estrangement",
        "Bakhtin's Chronotope",
        "Aristotelian Poetics",
        "Jungian Archetypal Analysis",
        "Genette's Transtextuality"
      ],
      "score_reliability": {
        "state": "contested",
        "threshold": 0.2,
        "runs_total": 5,
        "versions_compared": [
          "2.5"
        ],
        "max_spread": 0.27,
        "contested": [
          {
            "axis": "time_linearity",
            "version": "2.5",
            "spread": 0.27,
            "low": {
              "label": "NTSMR-2.5-balanced-glm-5+deepseek-v3.2",
              "model": "balanced-routing",
              "effort": "?",
              "value": 0.28
            },
            "high": {
              "label": "NTSMR-2.5-claude-sonnet-4-6-low",
              "model": "claude-sonnet-4-6",
              "effort": "low",
              "value": 0.55
            }
          }
        ]
      }
    },
    {
      "slug": "philip_k_dick_do_androids_dream_of_electric_sheep",
      "title": "Do Androids Dream of Electric Sheep?",
      "author": "Philip K. Dick",
      "year": 1968,
      "medium": "book",
      "genre_tags": [],
      "tropes": [],
      "quadrant_scores": {
        "time_linearity": 0.12,
        "pacing_velocity": 0.65,
        "threat_scale": 0.3,
        "protagonist_fate": 0.65,
        "conflict_style": 0.7,
        "price_type": 0.8
      },
      "baseline_quadrant_scores": {
        "time_linearity": 0.88,
        "pacing_velocity": 0.35,
        "threat_scale": 0.3,
        "protagonist_fate": 0.35,
        "conflict_style": 0.3,
        "price_type": 0.2
      },
      "provenance": {
        "analysis_run": "NTSMR-2.5-claude-sonnet-4-6-low",
        "analysis_body_sha256": "46271046fbf8fa3fe0eb2cac268e118281ca828dfaf1cfc002862cd2e9bfcda3",
        "synthesis": {
          "path": "nartopo-tools/artifacts/philip_k_dick_do_androids_dream_of_electric_sheep.md.ntsmr-2-5-claude-sonnet-4-6-low.synthesis.json",
          "sha256": "21572d514e85c9a6d750e9a4643ff7e30840ac79302330efb43e74fa1d1a5c27"
        },
        "report": {
          "path": "nartopo-tools/artifacts/philip_k_dick_do_androids_dream_of_electric_sheep.md.ntsmr-2-5-claude-sonnet-4-6-low.report.json",
          "sha256": "c6ce1a6156a4c93aba8fed9be75aa5f7602d2f843656a2ef82eaf9b6615bcc4c"
        },
        "source": {
          "path": "Philip K. Dick/Do Androids Dream of Electric Sheep?.txt",
          "sha256": "191975b5331b9bad215ff0e00368b41c4bbd0745a6ee216c44c549e661641d86",
          "digest_observed_at": "2026-09-09",
          "digest_at_analysis_run": null,
          "edition": null,
          "edition_status": "unresolved"
        },
        "pipeline_revision_at_run": null,
        "verification": {
          "source": "unverified",
          "human_review": "unreviewed",
          "bibliography": "unverified"
        },
        "issues": [],
        "todorov_status": "recovered-from-synthesis",
        "work_identity": {
          "title": "Do Androids Dream of Electric Sheep?",
          "author": "Philip K. Dick",
          "year": 1968
        }
      },
      "ntsmr": {
        "version": "2.5",
        "primary_run_label": "NTSMR-2.5-claude-sonnet-4-6-low",
        "runs": {
          "NTSMR-2.4-claude-sonnet-4-6-low": {
            "pipeline_version": "2.4",
            "backend": "claude",
            "model": "claude-sonnet-4-6",
            "scores": {
              "time_linearity": 0.18,
              "pacing_velocity": 0.55,
              "threat_scale": 0.35,
              "protagonist_fate": 0.78,
              "conflict_style": 0.65,
              "price_type": 0.72
            },
            "score_space": "site-v1",
            "reasoning_effort": "low"
          },
          "NTSMR-2.5-claude-sonnet-4-6-low": {
            "pipeline_version": "2.5",
            "backend": "claude",
            "model": "claude-sonnet-4-6",
            "scores": {
              "time_linearity": 0.12,
              "pacing_velocity": 0.65,
              "threat_scale": 0.3,
              "protagonist_fate": 0.65,
              "conflict_style": 0.7,
              "price_type": 0.8
            },
            "score_space": "site-v1",
            "reasoning_effort": "low"
          },
          "NTSMR-2.5-balanced-glm-5+deepseek-v3.2": {
            "pipeline_version": "2.5",
            "backend": "openrouter",
            "model": "balanced-routing",
            "scores": {
              "time_linearity": 0.1,
              "pacing_velocity": 0.75,
              "threat_scale": 0.5,
              "protagonist_fate": 0.6,
              "conflict_style": 0.7,
              "price_type": 0.75
            },
            "score_space": "site-v1",
            "score_only": true,
            "source_run_label": "NTSMR-2.5-claude-sonnet-4-6-low"
          }
        }
      },
      "todorov_stages": {
        "equilibrium": "Rick Deckard lives a structured, if strained, life as a bounty hunter in post-nuclear San Francisco: mood organs regulate emotion, Sidney's catalogue tracks the prestige economy of animals, and the Voigt-Kampff test reliably separates humans from androids. He tends his electric sheep on the rooftop, navigates a tense domestic routine with Iran, and operates within a clear professional identity. John Isidore subsists in isolated stability in a depopulated building, sustained by Mercerism's empathic community and Buster Friendly's broadcasts.",
        "disruption": "Dave Holden is incapacitated by a Nexus-6 android, thrusting Rick into a six-android bounty assignment. The Nexus-6 generation threatens to defeat the Voigt-Kampff test, destabilizing the central mechanism that separates human from android. Simultaneously, Isidore's isolation is broken by the arrival of fugitive androids, and Buster Friendly's broadcast begins building toward its demolition of Mercerism.",
        "recognition": "Rick's recognition unfolds in stages: the Rosen Association's attempt to compromise the Voigt-Kampff test forces him to confront the test's limits; his encounter with Luba Luft and Phil Resch's cold killing of her reveals his own capacity for empathy toward androids; and self-administering the Voigt-Kampff test confirms he registers empathic response to androids, inverting his expected emotional alignment. Isidore recognizes the full scope of disruption when Buster Friendly proves Mercer is a fabricated actor and the mutilated spider dies in his hands.",
        "repair": "Rick pursues and retires all six Nexus-6 androids, completing the assignment in a single day. He purchases a live goat as an act of affirmative empathy and briefly sleeps with Rachael, seeking some form of human connection amid the killings. After Rachael destroys the goat in retaliation, Rick travels north alone, undergoes a Mercer-like mystical ordeal in an empty landscape, and discovers what he believes is a toad — the rarest of surviving species — as a token of renewed wonder.",
        "new_equilibrium": "Rick returns home, exhausted and transformed, and sleeps while Iran discovers the toad is artificial. Rather than despair, she orders electric-toad accessories and makes herself coffee — sustaining the illusion with deliberate, mundane care. The new equilibrium is not restoration but accommodation: the boundaries between real and artificial, human and android, sacred and fraudulent have all collapsed, yet domestic routine and small acts of nurturing persist. Isidore survives in his now-empty building, the androids dead, Mercerism exposed, but his capacity for empathy intact."
      },
      "characters": [
        {
          "name": "Rick Deckard",
          "slug": "rick-deckard",
          "aliases": [
            "Iran",
            "bounty hunter",
            "Mr. Deckard",
            "Deckard"
          ],
          "role": "protagonist",
          "summary": "San Francisco police bounty hunter assigned to retire six escaped Nexus-6 androids; maintains a concealed electric sheep; defined by his professional empathy-testing function and troubled by blurring boundaries between human and android."
        },
        {
          "name": "J. R. Isidore",
          "slug": "j-r-isidore",
          "aliases": [
            "John Isidore",
            "special",
            "chickenhead",
            "John R. Isidore",
            "Isidore",
            "the special",
            "J.R.",
            "Iz"
          ],
          "role": "protagonist (secondary)",
          "summary": "Cognitively impaired 'special' who provides cover and companionship to the android fugitives; discovers a spider and helplessly watches Pris mutilate it; becomes emotionally dependent on the androids."
        },
        {
          "name": "Rachael Rosen",
          "slug": "rachael-rosen",
          "aliases": [
            "Rachael"
          ],
          "role": "actantial:opponent/helper",
          "summary": "Nexus-6 android from the Rosen Association; flies to San Francisco at Rick's request; physically identical to Pris Stratton; sleeps with Rick and offers to retire Pris in his place; reveals her two-year lifespan."
        },
        {
          "name": "Inspector Bryant",
          "slug": "inspector-bryant",
          "aliases": [
            "Harry Bryant"
          ],
          "role": "actantial:sender",
          "summary": "Rick's supervisor at SFPD; briefs Rick on the Nexus-6 calibration mission and the risk of misidentifying schizoid humans."
        },
        {
          "name": "Polokov",
          "slug": "polokov",
          "aliases": [
            "Sandor Kadalyi"
          ],
          "role": "actantial:opponent",
          "summary": "Android fugitive posing as a Soviet police officer; shot Dave Holden and fled before Rick could locate him."
        },
        {
          "name": "Luba Luft",
          "slug": "luba-luft",
          "aliases": [
            "Miss Luft"
          ],
          "role": "actantial:opponent",
          "summary": "Android fugitive posing as an opera singer at the War Memorial Opera House; deflects Rick's Voigt-Kampff test by turning it back on him."
        },
        {
          "name": "Buster Friendly",
          "slug": "buster-friendly",
          "aliases": [],
          "role": "supporting",
          "summary": "Celebrity broadcaster running a near-continuous entertainment show; subtly mocks Mercerism; perceived by Isidore as competing with Mercer for psychic control of humanity."
        },
        {
          "name": "Hannibal Sloat",
          "slug": "hannibal-sloat",
          "aliases": [
            "Mr. Sloat"
          ],
          "role": "supporting",
          "summary": "Owner of the Van Ness Pet Hospital where Isidore works; too old to emigrate."
        },
        {
          "name": "Bill Barbour",
          "slug": "bill-barbour",
          "aliases": [
            "Barbour"
          ],
          "role": "minor",
          "summary": "Rick's rooftop neighbor who owns a pregnant Percheron horse and greets Rick during his morning roof visit."
        },
        {
          "name": "Garland",
          "slug": "garland",
          "aliases": [
            "Inspector Garland"
          ],
          "role": "opponent",
          "summary": "Android posing as a police inspector at a false precinct; confronts Rick after discovering he is on Rick's retirement list."
        },
        {
          "name": "Phil Resch",
          "slug": "phil-resch",
          "aliases": [],
          "role": "helper",
          "summary": "Fellow bounty hunter at the false precinct; cold and efficient killer whose amorality forces Rick into self-examination; advises Rick to sleep with an android before retiring her."
        },
        {
          "name": "Roy Baty",
          "slug": "roy-baty",
          "aliases": [
            "Irm",
            "Mrs. Baty",
            "Mr. Baty"
          ],
          "role": "opponent",
          "summary": "Strategic leader of the android fugitives; installs a Penfield panic-field alarm, assigns roles to the group, and treats Isidore as expendable cover; described in poop sheet as having attempted to create an android Mercer-equivalent."
        },
        {
          "name": "Pris Stratton",
          "slug": "pris-stratton",
          "aliases": [
            "Pris"
          ],
          "role": "opponent",
          "summary": "Android fugitive physically identical to Rachael Rosen; moves in with Isidore; casually mutilates the spider; her profile sheet disturbs Rachael when Rick reads it aloud."
        },
        {
          "name": "Mercer",
          "slug": "mercer",
          "aliases": [
            "Wilbur Mercer",
            "Al Jarry"
          ],
          "role": "helper",
          "summary": "Mythic religious figure who appears to Isidore in the tomb-world vision and admits he is a fraud but affirms the reality of the empathic experience; also appears to Rick in the building hallway to warn him."
        },
        {
          "name": "Miss Marsten",
          "slug": "miss-marsten",
          "aliases": [
            "Ann Marsten",
            "Ann"
          ],
          "role": "other",
          "summary": "Rick's secretary at the police department; speaks to him by vidphone when he is stranded near Oregon; urges him to go home and rest."
        }
      ],
      "frameworks_mapped": [
        "Protocol Fiction Mapping",
        "Actantial Model",
        "Todorov's Equilibrium",
        "The Freytag Pyramid",
        "Propp's Morphology",
        "Genette's Narrative",
        "The Monomyth",
        "Dan Harmon",
        "Save the Cat",
        "Kishōtenketsu",
        "The Three-Act Structure",
        "Lévi-Strauss's Binary Oppositions",
        "Cognitive Estrangement",
        "Bakhtin's Chronotope",
        "Aristotelian Poetics",
        "Jungian Archetypal Analysis",
        "Genette's Transtextuality"
      ],
      "score_reliability": {
        "state": "contested",
        "threshold": 0.2,
        "runs_total": 3,
        "versions_compared": [
          "2.5"
        ],
        "max_spread": 0.2,
        "contested": [
          {
            "axis": "threat_scale",
            "version": "2.5",
            "spread": 0.2,
            "low": {
              "label": "NTSMR-2.5-claude-sonnet-4-6-low",
              "model": "claude-sonnet-4-6",
              "effort": "low",
              "value": 0.3
            },
            "high": {
              "label": "NTSMR-2.5-balanced-glm-5+deepseek-v3.2",
              "model": "balanced-routing",
              "effort": "?",
              "value": 0.5
            }
          }
        ]
      }
    },
    {
      "slug": "connie_willis_doomsday_book",
      "title": "Doomsday Book",
      "author": "Connie Willis",
      "year": 1992,
      "medium": "book",
      "genre_tags": [],
      "tropes": [],
      "quadrant_scores": {
        "time_linearity": 0.55,
        "pacing_velocity": 0.72,
        "threat_scale": 0.6,
        "protagonist_fate": 0.55,
        "conflict_style": 0.72,
        "price_type": 0.65
      },
      "provenance": {
        "analysis_run": "NTSMR-2.5-claude-sonnet-4-6-low",
        "analysis_body_sha256": "263827da2447f5827e5f6ce65b83b7bd5ffdc25bfd0ce7193ad4a8e36589d7c7",
        "synthesis": {
          "path": "nartopo-tools/artifacts/connie_willis_doomsday_book.md.ntsmr-2-5-claude-sonnet-4-6-low.synthesis.json",
          "sha256": "64bbaf36cf6adf16dce214da5a3f5780d00f0ff853be5a2a45ed655d0bc00063"
        },
        "report": {
          "path": "nartopo-tools/artifacts/connie_willis_doomsday_book.md.ntsmr-2-5-claude-sonnet-4-6-low.report.json",
          "sha256": "8a467e89a97a29a5d71b40a621166cf71f06b49841fbbedc2dbf19c01f480d57"
        },
        "source": {
          "path": "Connie Willis/Doomsday Book.txt",
          "sha256": "265b4caaf298e70e5f8e17c6b44941b08d4f98c84334065280ad353f11e67e95",
          "digest_observed_at": "2026-09-09",
          "digest_at_analysis_run": null,
          "edition": null,
          "edition_status": "unresolved"
        },
        "pipeline_revision_at_run": null,
        "verification": {
          "source": "unverified",
          "human_review": "unreviewed",
          "bibliography": "unverified"
        },
        "issues": [],
        "todorov_status": "recovered-from-synthesis",
        "work_identity": {
          "title": "Doomsday Book",
          "author": "Connie Willis",
          "year": 1992
        }
      },
      "ntsmr": {
        "version": "2.5",
        "primary_run_label": "NTSMR-2.5-claude-sonnet-4-6-low",
        "runs": {
          "NTSMR-2.4-claude-sonnet-4-6-low": {
            "pipeline_version": "2.4",
            "backend": "claude",
            "model": "claude-sonnet-4-6",
            "scores": {
              "time_linearity": 0.28,
              "pacing_velocity": 0.65,
              "threat_scale": 0.55,
              "protagonist_fate": 0.38,
              "conflict_style": 0.62,
              "price_type": 0.45
            },
            "score_space": "site-v1",
            "reasoning_effort": "low"
          },
          "NTSMR-2.5-claude-sonnet-4-6-low": {
            "pipeline_version": "2.5",
            "backend": "claude",
            "model": "claude-sonnet-4-6",
            "scores": {
              "time_linearity": 0.55,
              "pacing_velocity": 0.72,
              "threat_scale": 0.6,
              "protagonist_fate": 0.55,
              "conflict_style": 0.72,
              "price_type": 0.65
            },
            "score_space": "site-v1",
            "reasoning_effort": "low"
          },
          "NTSMR-2.5-balanced-glm-5+deepseek-v3.2": {
            "pipeline_version": "2.5",
            "backend": "openrouter",
            "model": "balanced-routing",
            "scores": {
              "time_linearity": 0.6,
              "pacing_velocity": 0.7,
              "threat_scale": 0.8,
              "protagonist_fate": 0.4,
              "conflict_style": 0.7,
              "price_type": 0.7
            },
            "score_space": "site-v1",
            "score_only": true,
            "source_run_label": "NTSMR-2.5-claude-sonnet-4-6-low"
          }
        }
      },
      "todorov_stages": {
        "equilibrium": "A stable academic world exists in 2054 Oxford where time-travel to the past is a controlled scholarly exercise; Kivrin is a prepared history student cleared for a supervised drop to 1320 medieval England, and the medieval village near Oxfordshire exists in its pre-plague Christmas routine.",
        "disruption": "Badri collapses immediately after executing Kivrin's drop, revealing something went wrong with the fix; simultaneously Kivrin lands not in 1320 but in 1348 — the year of the Black Death — while a virulent influenza epidemic locks down Oxford, preventing any retrieval attempt.",
        "recognition": "Recognition unfolds in two parallel strands: Dunworthy pieces together from Badri's delirious mutterings and his own research that slippage of twenty-eight years is possible, while Kivrin discovers the year is definitively 1348 when the dying bishop's clerk announces it and she identifies his swollen bubo as plague — shattering her assumption she is in 1320.",
        "repair": "In 2054, Dunworthy learns Badri ran a backup fix and, despite illness and frailty, organizes a rescue mission with Colin to open the retrieval net and reach Kivrin. In 1348, Kivrin stays to tend the dying household — Agnes, Rosemund, Father Roche, Eliwys — recording everything on her corder so the dead will not be forgotten, and formulates an escape plan to flee with survivors to Scotland before ultimately locating and waiting at the drop site.",
        "new_equilibrium": "Kivrin is retrieved and returns to 2054, physically diminished and grief-stricken but intact; she clasps Dunworthy's hand and the net opens. The old equilibrium cannot be restored — Agnes, Father Roche, and most of the village are dead — but a new stability is reached through witness and memory: Kivrin has recorded everything on her corder, fulfilling the imperative of Brother John Clyn's epigraph, and the bond between Kivrin and Dunworthy is affirmed across the centuries."
      },
      "characters": [
        {
          "name": "Mary",
          "slug": "mary",
          "aliases": [
            "Dr. Mary Ahrens",
            "Dr. Ahrens",
            "Great-Aunt Mary"
          ],
          "role": "Senior physician; Dunworthy's ally",
          "summary": "Senior physician managing the Oxford epidemic, Dunworthy's close friend; reveals the first fatality and that the virus is not the South Carolina strain."
        },
        {
          "name": "Kivrin",
          "slug": "kivrin",
          "aliases": [
            "Lady Katherine",
            "Isabel",
            "Katherine"
          ],
          "role": "Time-traveling history student, protagonist",
          "summary": "Time-traveling history student immersed in medieval Christmas, anxious about locating her drop site before the rendezvous while navigating household politics and forming bonds with the children."
        },
        {
          "name": "Badri",
          "slug": "badri",
          "aliases": [
            "the tech",
            "Badri Chaudhuri",
            "Mr. Chaudhuri"
          ],
          "role": "Incapacitated key witness",
          "summary": "Recovering technician who reveals the slippage was too small and confesses he refed the coordinates while already feverish, explaining how Kivrin ended up in 1348."
        },
        {
          "name": "Gilchrist",
          "slug": "gilchrist",
          "aliases": [],
          "role": "Acting Head of Mediaeval; antagonist-adjacent",
          "summary": "Acting head of Mediaeval who locks the time-travel laboratory under quarantine to placate anti-net protesters, blocking Dunworthy's attempt to read Kivrin's fix."
        },
        {
          "name": "Montoya",
          "slug": "montoya",
          "aliases": [],
          "role": "Oxford archaeologist; helper",
          "summary": "Oxford archaeologist present at the drop; primarily concerned with returning to her dig site; subjected to contact tracing under quarantine."
        },
        {
          "name": "Latimer",
          "slug": "latimer",
          "aliases": [],
          "role": "Oxford colleague",
          "summary": "Kivrin's tutor, elderly and infirm; present at the drop; participates in contact tracing."
        },
        {
          "name": "Finch",
          "slug": "finch",
          "aliases": [],
          "role": "Minor / Dunworthy's secretary",
          "summary": "Dunworthy's assistant at Balliol; reports the police barricades and quarantine to Dunworthy, and is managing stranded American bell-ringers."
        },
        {
          "name": "Colin",
          "slug": "colin",
          "aliases": [],
          "role": "Mary's great-nephew, teenage companion",
          "summary": "Mary's energetic great-nephew who fetches historical data on plague progression across Oxfordshire and obtains paper for Dunworthy's forged authorization."
        },
        {
          "name": "Dunworthy",
          "slug": "dunworthy",
          "aliases": [
            "Mr. Dunworthy",
            "James"
          ],
          "role": "Protagonist (2054 strand); Kivrin's mentor",
          "summary": "Oxford academic managing the 2054 epidemic crisis; blocked by Gilchrist from accessing the laboratory; attempting to locate Basingame and a tech to read the fix."
        },
        {
          "name": "Mrs. Gaddson",
          "slug": "mrs-gaddson",
          "aliases": [],
          "role": "Comic obstacle; quarantine intruder",
          "summary": "Overbearing visitor in 2054 hospital; reads scripture aloud to Dunworthy and attempts to withhold bad news from him."
        },
        {
          "name": "Gawyn",
          "slug": "gawyn",
          "aliases": [],
          "role": "Medieval household knight; key information-holder",
          "summary": "The man who found Kivrin on the road; knows the location of her drop site but keeps riding away before she can get the information."
        },
        {
          "name": "Father Roche",
          "slug": "father-roche",
          "aliases": [
            "Roche"
          ],
          "role": "Medieval village priest",
          "summary": "Village priest; simple and compassionate; treats Agnes's infected knee with herbal infusion and accepts Kivrin's suggestion of old wine as antiseptic without question."
        },
        {
          "name": "Eliwys",
          "slug": "eliwys",
          "aliases": [
            "Lady Eliwys"
          ],
          "role": "Medieval noblewoman; helper",
          "summary": "Lady of the manor; exhausts herself tending Agnes; grows feverishly ill; insists on waiting for her husband Gawyn to return."
        },
        {
          "name": "Lady Imeyne",
          "slug": "lady-imeyne",
          "aliases": [
            "the mother-in-law",
            "the old woman",
            "Imeyne",
            "Imyene"
          ],
          "role": "Medieval noblewoman; suspicious observer",
          "summary": "Guillaume's domineering mother who secretly sent Gawyn further afield than admitted, delaying his return and blocking Kivrin's hope of locating the drop."
        },
        {
          "name": "Agnes",
          "slug": "agnes",
          "aliases": [],
          "role": "Child of the medieval household",
          "summary": "Eliwys's younger daughter; dies on the day after New Year's, still screaming for Kivrin; her death marks the emotional climax of the medieval strand."
        },
        {
          "name": "Maisry",
          "slug": "maisry",
          "aliases": [],
          "role": "secondary",
          "summary": "Ragged servant girl present during the clerk's seizure, pressing herself into the wall in terror."
        },
        {
          "name": "Rosemund",
          "slug": "rosemund",
          "aliases": [],
          "role": "supporting",
          "summary": "Eliwys's elder daughter; gravely ill with plague but survives; awakens asking for food and pragmatically contemplates her marital fate."
        },
        {
          "name": "Andrews",
          "slug": "andrews",
          "aliases": [],
          "role": "Helper/technician",
          "summary": "Tech in Reading who agrees to read Kivrin's fix remotely and run parameter checks on the 1320 drop rather than enter the quarantine zone."
        },
        {
          "name": "Polly Wilson",
          "slug": "polly-wilson",
          "aliases": [],
          "role": "Helper",
          "summary": "Andrews's student contact at Shrewsbury who agrees to set up remote transmission equipment at Brasenose."
        },
        {
          "name": "The clerk",
          "slug": "the-clerk",
          "aliases": [
            "bishop's clerk"
          ],
          "role": "secondary",
          "summary": "Bishop's clerk who arrives already infected, suffers violent seizure and delirium, and is the first confirmed plague case; confirms the year is 1348."
        },
        {
          "name": "The steward",
          "slug": "the-steward",
          "aliases": [],
          "role": "minor",
          "summary": "Manor steward who buries multiple family members; found collapsed in a grave he dug, likely killed by septicaemic plague."
        }
      ],
      "frameworks_mapped": [
        "Protocol Fiction Mapping",
        "Actantial Model",
        "Todorov's Equilibrium",
        "The Freytag Pyramid",
        "Propp's Morphology",
        "Genette's Narrative",
        "The Monomyth",
        "Dan Harmon",
        "Save the Cat",
        "Kishōtenketsu",
        "The Three-Act Structure",
        "Lévi-Strauss's Binary Oppositions",
        "Cognitive Estrangement",
        "Bakhtin's Chronotope",
        "Aristotelian Poetics",
        "Jungian Archetypal Analysis",
        "Genette's Transtextuality"
      ],
      "score_reliability": {
        "state": "contested",
        "threshold": 0.2,
        "runs_total": 3,
        "versions_compared": [
          "2.5"
        ],
        "max_spread": 0.2,
        "contested": [
          {
            "axis": "threat_scale",
            "version": "2.5",
            "spread": 0.2,
            "low": {
              "label": "NTSMR-2.5-claude-sonnet-4-6-low",
              "model": "claude-sonnet-4-6",
              "effort": "low",
              "value": 0.6
            },
            "high": {
              "label": "NTSMR-2.5-balanced-glm-5+deepseek-v3.2",
              "model": "balanced-routing",
              "effort": "?",
              "value": 0.8
            }
          }
        ]
      }
    },
    {
      "slug": "vonda_n_mcintyre_dreamsnake",
      "title": "Dreamsnake",
      "author": "Vonda N. McIntyre",
      "year": 1978,
      "medium": "book",
      "genre_tags": [],
      "tropes": [],
      "quadrant_scores": {
        "time_linearity": 0.18,
        "pacing_velocity": 0.62,
        "threat_scale": 0.42,
        "protagonist_fate": 0.38,
        "conflict_style": 0.58,
        "price_type": 0.55
      },
      "provenance": {
        "analysis_run": "NTSMR-2.5-claude-sonnet-4-6-low",
        "analysis_body_sha256": "f1a578d75a229d89add515b6d905538d46002f20bcce88a30d01aa32103bc3de",
        "synthesis": {
          "path": "nartopo-tools/artifacts/vonda_n_mcintyre_dreamsnake.md.ntsmr-2-5-claude-sonnet-4-6-low.synthesis.json",
          "sha256": "f7830a50a9affe9db6ee6fec74db90203d44940b377096607f7c2d33d48d477f"
        },
        "report": {
          "path": "nartopo-tools/artifacts/vonda_n_mcintyre_dreamsnake.md.ntsmr-2-5-claude-sonnet-4-6-low.report.json",
          "sha256": "a0e8c15f60371c28f97f66f47de46761aeaa2a48d351bd233da82fd59a891273"
        },
        "source": {
          "path": "Vonda N. McIntyre/Dreamsnake.txt",
          "sha256": "30e5c88a43ea63a8571c1364202692cb306e803c97bfda2b4a2fa52375108322",
          "digest_observed_at": "2026-09-09",
          "digest_at_analysis_run": null,
          "edition": null,
          "edition_status": "unresolved"
        },
        "pipeline_revision_at_run": null,
        "verification": {
          "source": "unverified",
          "human_review": "unreviewed",
          "bibliography": "unverified"
        },
        "issues": [],
        "todorov_status": "recovered-from-synthesis",
        "work_identity": {
          "title": "Dreamsnake",
          "author": "Vonda N. McIntyre",
          "year": 1978
        }
      },
      "ntsmr": {
        "version": "2.5",
        "primary_run_label": "NTSMR-2.5-claude-sonnet-4-6-low",
        "runs": {
          "NTSMR-2.4-claude-sonnet-4-6-low": {
            "pipeline_version": "2.4",
            "backend": "claude",
            "model": "claude-sonnet-4-6",
            "scores": {
              "time_linearity": 0.35,
              "pacing_velocity": 0.55,
              "threat_scale": 0.35,
              "protagonist_fate": 0.2,
              "conflict_style": 0.45,
              "price_type": 0.45
            },
            "score_space": "site-v1",
            "reasoning_effort": "low"
          },
          "NTSMR-2.5-claude-sonnet-4-6-low": {
            "pipeline_version": "2.5",
            "backend": "claude",
            "model": "claude-sonnet-4-6",
            "scores": {
              "time_linearity": 0.18,
              "pacing_velocity": 0.62,
              "threat_scale": 0.42,
              "protagonist_fate": 0.38,
              "conflict_style": 0.58,
              "price_type": 0.55
            },
            "score_space": "site-v1",
            "reasoning_effort": "low"
          },
          "NTSMR-2.5-balanced-glm-5+deepseek-v3.2": {
            "pipeline_version": "2.5",
            "backend": "openrouter",
            "model": "balanced-routing",
            "scores": {
              "time_linearity": 0.15,
              "pacing_velocity": 0.7,
              "threat_scale": 0.4,
              "protagonist_fate": 0.3,
              "conflict_style": 0.65,
              "price_type": 0.55
            },
            "score_space": "site-v1",
            "score_only": true,
            "source_run_label": "NTSMR-2.5-claude-sonnet-4-6-low"
          }
        }
      },
      "todorov_stages": {
        "equilibrium": "Snake is a healer on her proving year, competent and equipped with three serpents — Mist, Sand, and the dreamsnake Grass — operating within a functioning system where healers travel circuits tending desert communities",
        "disruption": "Grass is killed by Stavin's family out of fear, destroying Snake's complete healer's kit and making her professional standing untenable; without a dreamsnake she cannot fully practice healing",
        "recognition": "Snake acknowledges she cannot be a healer without a dreamsnake and that the healers' station has none to give her; she also recognizes after the crazy's revelation that North hoards dreamsnakes at a broken dome and has been misusing them as instruments of addiction",
        "repair": "Snake vaccinates communities and treats the mayor to sustain her proving year; she travels to Center seeking dreamsnakes or regeneration knowledge; she confronts North's encampment, recovers a dreamsnake eggling from the crevasse, and ultimately discovers that dreamsnakes are triploid organisms requiring cold to mature — knowledge that will allow healers to breed their own",
        "new_equilibrium": "Snake possesses dreamsnake egglings and the biological knowledge to breed them, freeing healers from dependence on Center or North; she reconciles with Arevin, reframing Grass's death as the catalyst that transformed healer practice permanently; Melissa survives and remains Snake's adopted daughter and potential successor"
      },
      "characters": [
        {
          "name": "Snake",
          "slug": "snake",
          "aliases": [
            "healer",
            "Snake-child",
            "healer-child",
            "Mistress Snake"
          ],
          "role": "protagonist",
          "summary": "Healer-protagonist who endures imprisonment in a dreamsnake pit, resists North's venom through will and immunity, discovers the secret of dreamsnake reproduction, escapes, confronts North, and ultimately revives Melissa."
        },
        {
          "name": "Arevin",
          "slug": "arevin",
          "aliases": [],
          "role": "romantic interest / secondary protagonist",
          "summary": "Desert man and Snake's romantic partner who arrives unexpectedly at North's camp, carries Melissa, supports Snake after her ordeal, and reveals he sought the healers' station to report Grass's loss."
        },
        {
          "name": "Stavin",
          "slug": "stavin",
          "aliases": [],
          "role": "patient",
          "summary": "Young child Snake treats in an early scene; the healing session with Mist and Grass establishes Snake's healer identity and the cost of her vocation."
        },
        {
          "name": "Jesse",
          "slug": "jesse",
          "aliases": [],
          "role": "catalyst / dying companion",
          "summary": "Terminally ill woman with radiation poisoning and spinal injury; proposes the deal that sends Snake to Center; accepts Snake's offer of mercy death and dies when a blood vessel breaks at the moment Mist strikes."
        },
        {
          "name": "Merideth",
          "slug": "merideth",
          "aliases": [
            "Merry"
          ],
          "role": "Jesse's partner",
          "summary": "Jesse's devoted partner; distraught over her death; reassured by Snake's account of Jesse's final moments."
        },
        {
          "name": "Alex",
          "slug": "alex",
          "aliases": [],
          "role": "Jesse's partner / minor antagonist",
          "summary": "Jesse's practical, stocky partner; racked with guilt over moving her after the fall; argues with Snake over using Sand; ultimately thanks Snake and gives her Jesse's horse."
        },
        {
          "name": "Clan Leader",
          "slug": "clan-leader",
          "aliases": [
            "Arevin's cousin"
          ],
          "role": "helper / sender",
          "summary": "Leader of Arevin's nomadic desert clan; releases Arevin from his obligations and endorses his quest to follow Snake, framing it as both personal need and clan honor."
        },
        {
          "name": "Mist",
          "slug": "mist",
          "aliases": [],
          "role": "helper / instrument",
          "summary": "Snake's large cobra-like serpent; used for venom therapy and healing; must be managed through dangerous drug-induced convulsions during Stavin's treatment."
        },
        {
          "name": "Sand",
          "slug": "sand",
          "aliases": [],
          "role": "helper / instrument",
          "summary": "Snake's rattlesnake-like serpent; Alex suggests using him to ease Jesse's pain, which Snake refuses."
        },
        {
          "name": "Swift",
          "slug": "swift",
          "aliases": [],
          "role": "object / gift",
          "summary": "Fine dark gray mare left to Snake by Jesse; given by Alex after Jesse's death; Snake rides her through the night to the oasis."
        },
        {
          "name": "Grum",
          "slug": "grum",
          "aliases": [
            "old rawhide-skin"
          ],
          "role": "minor helper",
          "summary": "Elder caravan trader with hereditary rights to the oasis summertree harvest; cares for Snake's pony and insists on gifting replacement supplies as a matter of honor."
        },
        {
          "name": "Ao",
          "slug": "ao",
          "aliases": [
            "old ragbag",
            "old pothole"
          ],
          "role": "secondary",
          "summary": "Leader of the desert collector community; skeptical of vaccination but ultimately compliant; exchanges banter with Grum."
        },
        {
          "name": "Pauli",
          "slug": "pauli",
          "aliases": [],
          "role": "minor",
          "summary": "Grum's oldest grandchild-apprentice who helps entertain children during vaccination and requests a visible scar as a mark of having met a healer."
        },
        {
          "name": "Gabriel",
          "slug": "gabriel",
          "aliases": [],
          "role": "secondary",
          "summary": "Son of the mayor; exceptionally beautiful but emotionally vulnerable; guides Snake to treat his father and shows developing warmth toward Snake during her recuperation."
        },
        {
          "name": "Brian",
          "slug": "brian",
          "aliases": [],
          "role": "minor",
          "summary": "The mayor's devoted elderly servant; stoic, competent; keeps vigil over the mayor and acts as a reliable intermediary with Snake."
        },
        {
          "name": "The Mayor",
          "slug": "the-mayor",
          "aliases": [],
          "role": "secondary",
          "summary": "Unnamed town leader of Mountainside; afflicted with advanced gangrene; fearful of the serpents, demands impossible conditions, and is successfully treated by Snake."
        },
        {
          "name": "Melissa",
          "slug": "melissa",
          "aliases": [
            "Snake's daughter"
          ],
          "role": "Adoptive daughter of Snake",
          "summary": "A young girl with a severe facial burn scar and fresh bruise from abuse by the stablemaster Ras; frightened but ultimately tentatively accepts Snake's offer of adoption."
        },
        {
          "name": "Larril",
          "slug": "larril",
          "aliases": [],
          "role": "minor",
          "summary": "A young woman, apparently a servant at the mayor's residence, who brings Snake trays and books during her recuperation."
        },
        {
          "name": "Ras",
          "slug": "ras",
          "aliases": [
            "stablemaster"
          ],
          "role": "opponent",
          "summary": "Stablemaster of Mountainside; Melissa's abusive guardian; physically strikes the child."
        },
        {
          "name": "Silver",
          "slug": "silver",
          "aliases": [],
          "role": "sender",
          "summary": "Very old senior healer who nominated Snake for her name; Snake's mentor; confirms no spare dreamsnakes exist and urges Snake to return for a council meeting."
        },
        {
          "name": "Thad",
          "slug": "thad",
          "aliases": [],
          "role": "helper",
          "summary": "Young healer at the station who brought Arevin to Silver; volunteers his own dreamsnake for Snake but defers to Silver's judgment."
        },
        {
          "name": "Jesse's brother",
          "slug": "jesses-brother",
          "aliases": [],
          "role": "opponent",
          "summary": "City dweller who speaks for Center via screen; initially agrees to share regeneration knowledge but violently rejects Snake when she mentions cloning and when he sees Melissa."
        },
        {
          "name": "The Crazy",
          "slug": "the-crazy",
          "aliases": [
            "crazy"
          ],
          "role": "Guide/antagonist-adjacent",
          "summary": "Exiled addict from North's encampment, covered in dreamsnake bite scars; initially threatens Snake and Melissa but becomes a reluctant guide to North's dome."
        },
        {
          "name": "North",
          "slug": "north",
          "aliases": [],
          "role": "Antagonist",
          "summary": "Cult leader who imprisons Snake and Melissa in a dreamsnake pit, uses dreamsnake venom as a tool of control and torture, but proves afraid of the serpents himself and ultimately concedes when Snake confronts him."
        },
        {
          "name": "Jean",
          "slug": "jean",
          "aliases": [],
          "role": "Minor helper",
          "summary": "Young mountain herder who camps with Arevin, provides information about Snake's passage south, and proposes a brief liaison which Arevin gently refuses."
        },
        {
          "name": "Kev",
          "slug": "kev",
          "aliases": [],
          "role": "Minor helper",
          "summary": "Jean's kin, fellow mountain herder who warns Arevin the southern territory is dangerous."
        }
      ],
      "frameworks_mapped": [
        "Protocol Fiction Mapping",
        "Actantial Model",
        "Todorov's Equilibrium",
        "The Freytag Pyramid",
        "Propp's Morphology",
        "Genette's Narrative",
        "The Monomyth",
        "Dan Harmon",
        "Save the Cat",
        "Kishōtenketsu",
        "The Three-Act Structure",
        "Lévi-Strauss's Binary Oppositions",
        "Cognitive Estrangement",
        "Bakhtin's Chronotope",
        "Aristotelian Poetics",
        "Jungian Archetypal Analysis",
        "Genette's Transtextuality"
      ],
      "score_reliability": {
        "state": "replicated-agree",
        "threshold": 0.2,
        "runs_total": 3,
        "versions_compared": [
          "2.5"
        ],
        "max_spread": 0.08,
        "contested": []
      }
    },
    {
      "slug": "frank_herbert_dune",
      "title": "Dune",
      "author": "Frank Herbert",
      "year": 1965,
      "medium": "book",
      "genre_tags": [
        "sf",
        "space opera",
        "political sf"
      ],
      "tropes": [],
      "quadrant_scores": {
        "time_linearity": 0.35,
        "pacing_velocity": 0.5,
        "threat_scale": 0.85,
        "protagonist_fate": 0.32,
        "conflict_style": 0.6,
        "price_type": 0.35
      },
      "provenance": {
        "analysis_run": "NTSMR-2.5-claude-sonnet-4-6-low",
        "analysis_body_sha256": "0394cda55edb3464da3265d0788332c9f6b6c33056e359b4b078947adb8bbf04",
        "synthesis": {
          "path": "nartopo-tools/artifacts/frank_herbert_dune.md.ntsmr-2-5-claude-sonnet-4-6-low.synthesis.json",
          "sha256": "0b7d563f1316115a5bf11eb2b136e7e5e2ddd2415e13b1e626630e6460dfa676"
        },
        "report": {
          "path": "nartopo-tools/artifacts/frank_herbert_dune.md.ntsmr-2-5-claude-sonnet-4-6-low.report.json",
          "sha256": "fbeab5b21d36bf68002b7740cfce4a1d462cb3cc54d04a9bd0bc21bbe09f56a8"
        },
        "source": {
          "path": "Frank Herbert/Dune.txt",
          "sha256": "a2583666c89adc67db0035473c29fd4adc73d32068dadd9912515ca9ae5ac016",
          "digest_observed_at": "2026-09-09",
          "digest_at_analysis_run": null,
          "edition": null,
          "edition_status": "unresolved"
        },
        "pipeline_revision_at_run": null,
        "verification": {
          "source": "unverified",
          "human_review": "unreviewed",
          "bibliography": "unverified"
        },
        "issues": [],
        "todorov_status": "recovered-from-synthesis",
        "work_identity": {
          "title": "Dune",
          "author": "Frank Herbert",
          "year": 1965
        }
      },
      "ntsmr": {
        "version": "2.5",
        "primary_run_label": "NTSMR-2.5-claude-sonnet-4-6-low",
        "runs": {
          "NTSMR-2.3-claude-sonnet-4-6-low": {
            "pipeline_version": "2.3",
            "backend": "claude",
            "model": "claude-sonnet-4-6",
            "scores": {
              "time_linearity": 0.35,
              "pacing_velocity": 0.55,
              "threat_scale": 0.85,
              "protagonist_fate": 0.72,
              "conflict_style": 0.38,
              "price_type": 0.78
            },
            "score_space": "site-v1",
            "reasoning_effort": "low"
          },
          "NTSMR-2.4-claude-sonnet-4-6-low": {
            "pipeline_version": "2.4",
            "backend": "claude",
            "model": "claude-sonnet-4-6",
            "scores": {
              "time_linearity": 0.28,
              "pacing_velocity": 0.38,
              "threat_scale": 0.88,
              "protagonist_fate": 0.42,
              "conflict_style": 0.45,
              "price_type": 0.55
            },
            "score_space": "site-v1",
            "reasoning_effort": "low"
          },
          "NTSMR-2.5-claude-sonnet-4-6-low": {
            "pipeline_version": "2.5",
            "backend": "claude",
            "model": "claude-sonnet-4-6",
            "scores": {
              "time_linearity": 0.35,
              "pacing_velocity": 0.5,
              "threat_scale": 0.85,
              "protagonist_fate": 0.32,
              "conflict_style": 0.6,
              "price_type": 0.35
            },
            "score_space": "site-v1",
            "reasoning_effort": "low"
          },
          "NTSMR-2.5-minimax/minimax-m2.5": {
            "pipeline_version": "2.5",
            "backend": "openrouter",
            "model": "minimax/minimax-m2.5",
            "scores": {
              "time_linearity": 0.25,
              "pacing_velocity": 0.5,
              "threat_scale": 0.85,
              "protagonist_fate": 0.3,
              "conflict_style": 0.6,
              "price_type": 0.35
            },
            "score_space": "site-v1"
          },
          "NTSMR-2.5-qwen/qwen3.5-plus-02-15": {
            "pipeline_version": "2.5",
            "backend": "openrouter",
            "model": "qwen/qwen3.5-plus-02-15",
            "scores": {
              "time_linearity": 0.2,
              "pacing_velocity": 0.55,
              "threat_scale": 0.85,
              "protagonist_fate": 0.35,
              "conflict_style": 0.6,
              "price_type": 0.4
            },
            "score_space": "site-v1"
          },
          "NTSMR-2.5-qwen/qwen3.5-397b-a17b": {
            "pipeline_version": "2.5",
            "backend": "openrouter",
            "model": "qwen/qwen3.5-397b-a17b",
            "scores": {
              "time_linearity": 0.15,
              "pacing_velocity": 0.5,
              "threat_scale": 0.85,
              "protagonist_fate": 0.32,
              "conflict_style": 0.6,
              "price_type": 0.35
            },
            "score_space": "site-v1"
          },
          "NTSMR-2.5-z-ai/glm-4.7": {
            "pipeline_version": "2.5",
            "backend": "openrouter",
            "model": "z-ai/glm-4.7",
            "scores": {
              "time_linearity": 0.2,
              "pacing_velocity": 0.5,
              "threat_scale": 0.85,
              "protagonist_fate": 0.32,
              "conflict_style": 0.6,
              "price_type": 0.35
            },
            "score_space": "site-v1"
          },
          "NTSMR-2.5-z-ai/glm-5": {
            "pipeline_version": "2.5",
            "backend": "openrouter",
            "model": "z-ai/glm-5",
            "scores": {
              "time_linearity": 0.25,
              "pacing_velocity": 0.5,
              "threat_scale": 0.85,
              "protagonist_fate": 0.32,
              "conflict_style": 0.6,
              "price_type": 0.35
            },
            "score_space": "site-v1"
          },
          "NTSMR-2.5-balanced-glm-5+deepseek-v3.2": {
            "pipeline_version": "2.5",
            "backend": "openrouter",
            "model": "balanced-routing",
            "scores": {
              "time_linearity": 0.28,
              "pacing_velocity": 0.5,
              "threat_scale": 0.85,
              "protagonist_fate": 0.32,
              "conflict_style": 0.6,
              "price_type": 0.35
            },
            "score_space": "site-v1",
            "score_only": true,
            "source_run_label": "NTSMR-2.5-claude-sonnet-4-6-low"
          }
        }
      },
      "todorov_stages": {
        "equilibrium": "House Atreides holds a stable if precarious position in the Imperium: Duke Leto is a respected noble, Paul is heir-in-training under Bene Gesserit and combat instruction, and the family prepares to assume control of Arrakis as granted by Emperor Shaddam IV.",
        "disruption": "Baron Vladimir Harkonnen, with two legions of disguised Imperial Sardaukar and Doctor Wellington Yueh as traitor, executes the destruction of House Atreides: Yueh disables the house shields, the Duke is captured and killed, and Paul and Jessica are cast into the desert to die.",
        "recognition": "Paul and Jessica, surviving in the desert, piece together the full scope of the betrayal—radio intercepts confirm Harkonnen victory and Sardaukar involvement, and Paul reveals to Jessica the shocking truth that she is the Baron's own daughter, making the conflict a family civil war. Hawat, surviving with remnants, also recognizes the catastrophe though misattributes blame to Jessica.",
        "repair": "Paul and Jessica reach the Fremen under Stilgar, integrate into the tribe, and over two years Paul transforms into Muad'Dib—a Fremen warrior-leader. He reunites with Gurney Halleck, formally invests Stilgar with authority, drinks the Water of Life achieving full prescience, and marshals Fremen forces as the Emperor arrives above Arrakis with five Sardaukar legions.",
        "new_equilibrium": "Paul Atreides, now Muad'Dib, leads the Fremen in a decisive strike against the combined Imperial-Harkonnen forces, confronting Emperor Shaddam IV directly. The old order is overturned: the Baron is killed, Feyd falls, the Emperor is forced to yield, and Paul stands as ruler of Arrakis with control over the spice—the foundation of a new, transformed political order built on Fremen power and messianic authority."
      },
      "characters": [
        {
          "name": "Reverend Mother Gaius Helen Mohiam",
          "slug": "reverend-mother-gaius-helen-mohiam",
          "aliases": [
            "Truthsayer",
            "Decidora de Verdad"
          ],
          "role": "Bene Gesserit representative",
          "summary": "The Reverend Mother observes the combat with growing horror as she realizes both products of the Bene Gesserit breeding program may die, destroying centuries of planning."
        },
        {
          "name": "Feyd-Rautha Harkonnen",
          "slug": "feyd-rautha-harkonnen",
          "aliases": [
            "the Baron",
            "Barón",
            "el Barón",
            "Feyd",
            "na-Baron",
            "Siridar-Barón",
            "el Barón Harkonnen"
          ],
          "role": "Antagonist and Paul's cousin",
          "summary": "The new Baron Harkonnen faces Paul in ritual kanly combat, using poisoned weapons and deceptive tactics while taunting Paul about his dead son and beloved Chani."
        },
        {
          "name": "Piter De Vries",
          "slug": "piter-de-vries",
          "aliases": [
            "Piter"
          ],
          "role": "antagonist",
          "summary": "Twisted Mentat serving the Baron who reports on the missing Paul and Jessica."
        },
        {
          "name": "Thufir Hawat",
          "slug": "thufir-hawat",
          "aliases": [
            "Hawat",
            "Mentat"
          ],
          "role": "Mentat Master of Assassins",
          "summary": "Apologizes for security failure; reveals the Harkonnen note suggesting Jessica's treachery; reports Fremen calling Paul 'Mahdi'."
        },
        {
          "name": "Gurney Halleck",
          "slug": "gurney-halleck",
          "aliases": [
            "Gurney",
            "Halleck"
          ],
          "role": "Weapons master of House Atreides",
          "summary": "Gurney serves as Paul's loyal weapons master, expressing pessimism before battle and demanding the right to kill Feyd-Rautha Harkonnen for past atrocities against his family."
        },
        {
          "name": "Alia Atreides",
          "slug": "alia-atreides",
          "aliases": [
            "el Duque",
            "mi Señor",
            "Señor",
            "Leto",
            "the Duke",
            "Paul",
            "joven amo",
            "el joven amo",
            "young Lord",
            "joven Señor",
            "Muad'Dib",
            "Usul",
            "Paul-Muad'Dib",
            "Duke Paul",
            "Paul Atreides",
            "Paul Muad'Dib",
            "el Profeta",
            "Alia",
            "Santa Alia",
            "Santa Alia-del-Cuchillo",
            "La Maldita",
            "el Duque Rojo"
          ],
          "role": "Messianic leader and Kwisatz Haderach",
          "summary": "Born on Arrakis after her father's death, exposed prenatally to perception-altering narcotics, called 'The Cursed' in Bene Gesserit documents but venerated as a saint in popular history."
        },
        {
          "name": "Shadout Mapes",
          "slug": "shadout-mapes",
          "aliases": [],
          "role": "supporting",
          "summary": "Fremen housekeeper who recognizes Jessica through Missionaria Protectiva prophecies."
        },
        {
          "name": "Dr. Wellington Yueh",
          "slug": "dr-wellington-yueh",
          "aliases": [
            "Wellington",
            "Yueh",
            "doctor"
          ],
          "role": "Suk doctor serving House Atreides",
          "summary": "Conceals his betrayal motivated by his captive wife Wanna; discusses spice with Jessica while hiding his true thoughts."
        },
        {
          "name": "Dama Jessica",
          "slug": "dama-jessica",
          "aliases": [
            "Hon. Atreides",
            "Jessica",
            "mi Dama",
            "my Lady",
            "Sayyadina",
            "Jessica del Extraño Arte",
            "Mother",
            "Reverend Mother"
          ],
          "role": "Bene Gesserit and mother of Muad'Dib",
          "summary": "Natural daughter of Baron Vladimir Harkonnen who defied Bene Gesserit orders to bear a son instead of a daughter, introducing an unpredictable variant into the breeding program."
        },
        {
          "name": "Kynes",
          "slug": "kynes",
          "aliases": [
            "el planetólogo",
            "Liet",
            "planetologist",
            "el directo",
            "el obsesionado Kynes"
          ],
          "role": "Imperial planetologist, secretly Fremen leader Liet",
          "summary": "Ecologist who unites Fremen tribes for terraforming after Uliet's sacrifice, discovers Arrakis's hidden water cycle, and becomes recognized as belonging to the umma, the brotherhood of prophets."
        },
        {
          "name": "Hasimir Fenring",
          "slug": "hasimir-fenring",
          "aliases": [
            "Margot Dama Fenring",
            "Conde Fenring"
          ],
          "role": "Imperial agent and cousin of House Corrino",
          "summary": "Childhood companion of Shaddam IV, rumored responsible for Elrood IX's death, served as Imperial Agent on Arrakis and later Siridar in Absentia of Caladan."
        },
        {
          "name": "Duncan Idaho",
          "slug": "duncan-idaho",
          "aliases": [
            "Idaho"
          ],
          "role": "helper",
          "summary": "Swordmaster of the Atreides who sacrifices himself defending Paul and Jessica from Harkonnen forces."
        },
        {
          "name": "Bewt",
          "slug": "bewt",
          "aliases": [
            "water magnate",
            "magnate del agua"
          ],
          "role": "opponent",
          "summary": "Local water official who disputes Kynes's terraforming ideas at the dinner."
        },
        {
          "name": "Colonel Bashar",
          "slug": "colonel-bashar",
          "aliases": [],
          "role": "Imperial agent",
          "summary": "Sardaukar officer who inspects Duke Leto's death scene on behalf of the Emperor."
        },
        {
          "name": "Glossu Rabban",
          "slug": "glossu-rabban",
          "aliases": [
            "Rabban",
            "Conde de Lankiveil",
            "Beast Rabban"
          ],
          "role": "Nephew of Baron Harkonnen",
          "summary": "Eldest nephew of Vladimir Harkonnen, son of Abulurd who renounced the Harkonnen name, died in 10.193."
        },
        {
          "name": "Iakin Nefud",
          "slug": "iakin-nefud",
          "aliases": [
            "Nefud"
          ],
          "role": "Harkonnen captain",
          "summary": "Captain of the Baron's guards, found under the influence of semuta when the Baron searches for Feyd."
        },
        {
          "name": "Staban Tuek",
          "slug": "staban-tuek",
          "aliases": [],
          "role": "Smuggler leader",
          "summary": "Son of Esmar Tuek, now leads the smuggler operation and offers Halleck refuge in exchange for military service."
        },
        {
          "name": "Stilgar",
          "slug": "stilgar",
          "aliases": [],
          "role": "Naib of Sietch Tabr and Fedaykin leader",
          "summary": "Stilgar serves as Paul's principal Fremen lieutenant during the battle, expressing distrust of city-dwelling Fremen and transforming into a worshipful follower of Muad'Dib."
        },
        {
          "name": "Jamis",
          "slug": "jamis",
          "aliases": [],
          "role": "Fremen warrior",
          "summary": "Fremen fighter who challenges Paul to ritual combat and is killed, his water becoming Paul's first Fremen kill."
        },
        {
          "name": "Chani",
          "slug": "chani",
          "aliases": [
            "Sihaya"
          ],
          "role": "Paul's Fremen beloved",
          "summary": "Chani is summoned by Jessica to help revive Paul and later confirms the death of their son, remaining at Paul's side as his true love despite his political marriage to Irulan."
        },
        {
          "name": "Reverend Mother Ramallo",
          "slug": "reverend-mother-ramallo",
          "aliases": [],
          "role": "mentor",
          "summary": "Ancient Fremen Reverend Mother who shares consciousness with Jessica during the Water of Life ritual."
        },
        {
          "name": "Harah",
          "slug": "harah",
          "aliases": [],
          "role": "Fremen woman",
          "summary": "Jamis's widow who confronts Paul about killing her husband and leaving her children orphaned."
        },
        {
          "name": "Farok",
          "slug": "farok",
          "aliases": [],
          "role": "minor",
          "summary": "Fremen warrior who helps Paul adjust to sietch life and confirms Liet-Kynes's death."
        },
        {
          "name": "Tharthar",
          "slug": "tharthar",
          "aliases": [],
          "role": "Fremen woman",
          "summary": "One of Stilgar's women who brings news of the young Fremen's agitation for Paul to challenge Stilgar."
        },
        {
          "name": "Emperor Shaddam IV",
          "slug": "emperor-shaddam-iv",
          "aliases": [
            "Majesty",
            "Padishah Emperor"
          ],
          "role": "Padishah Emperor, 81st of House Corrino",
          "summary": "The Emperor retreats during the Fremen attack and later presides over the confrontation between Paul and Feyd-Rautha, offering his own blade for the combat."
        },
        {
          "name": "Uliet",
          "slug": "uliet",
          "aliases": [
            "el Viejo Liet"
          ],
          "role": "Fremen executioner",
          "summary": "Fremen warrior who chose to fall on his own knife rather than kill Kynes, an act attributed to Shai-hulud that elevated him to the sadus and transformed Kynes into a prophetic authority."
        },
        {
          "name": "Toure Bomoko",
          "slug": "toure-bomoko",
          "aliases": [],
          "role": "President of the CTE, Zensunni Ulema",
          "summary": "One of the Fourteen Sages who never retracted the Orange Catholic Bible, admitted the CTE's error in creating new symbols, fled into exile, and died in Tupile with prophetic final words about religion."
        }
      ],
      "frameworks_mapped": [
        "Protocol Fiction Mapping",
        "Actantial Model",
        "Todorov's Equilibrium",
        "The Freytag Pyramid",
        "Propp's Morphology",
        "Genette's Narrative",
        "The Monomyth",
        "Dan Harmon",
        "Save the Cat",
        "Kishotenketsu",
        "The Three-Act Structure",
        "Levi-Strauss's Binary Oppositions",
        "Cognitive Estrangement",
        "Bakhtin's Chronotope",
        "Aristotelian Poetics",
        "Jungian Archetypal Analysis",
        "Genette's Transtextuality"
      ],
      "score_reliability": {
        "state": "contested",
        "threshold": 0.2,
        "runs_total": 9,
        "versions_compared": [
          "2.5"
        ],
        "max_spread": 0.2,
        "contested": [
          {
            "axis": "time_linearity",
            "version": "2.5",
            "spread": 0.2,
            "low": {
              "label": "NTSMR-2.5-qwen/qwen3.5-397b-a17b",
              "model": "qwen/qwen3.5-397b-a17b",
              "effort": "?",
              "value": 0.15
            },
            "high": {
              "label": "NTSMR-2.5-claude-sonnet-4-6-low",
              "model": "claude-sonnet-4-6",
              "effort": "low",
              "value": 0.35
            }
          }
        ]
      }
    },
    {
      "slug": "peter_watts_echopraxia",
      "title": "Echopraxia",
      "author": "Peter Watts",
      "year": 2014,
      "medium": "book",
      "genre_tags": [
        "science fiction",
        "hard sf"
      ],
      "tropes": [],
      "quadrant_scores": {
        "time_linearity": 0.55,
        "pacing_velocity": 0.62,
        "threat_scale": 0.88,
        "protagonist_fate": 0.75,
        "conflict_style": 0.62,
        "price_type": 0.72
      },
      "baseline_quadrant_scores": {
        "time_linearity": 0.75,
        "pacing_velocity": 0.45,
        "threat_scale": 0.95,
        "protagonist_fate": 0.95,
        "conflict_style": 0.35,
        "price_type": 0.85
      },
      "provenance": {
        "analysis_run": "NTSMR-2.5-claude-sonnet-4-6-low",
        "analysis_body_sha256": "d0121e86b8af5c2258df8b1a1ca3b97858997ecee78e48f48aee16c842ae43de",
        "synthesis": {
          "path": "nartopo-tools/artifacts/peter_watts_echopraxia.md.ntsmr-2-5-claude-sonnet-4-6-low.synthesis.json",
          "sha256": "c48710d00fc11dd211e280e2125efb5ab289d9d2340e1ae7795edc24bab6a63e"
        },
        "report": {
          "path": "nartopo-tools/artifacts/peter_watts_echopraxia.md.ntsmr-2-5-claude-sonnet-4-6-low.report.json",
          "sha256": "9aadfa5d1c0626ece5cbca71817aa55378bdf1494abff4f972784e86a1e31164"
        },
        "source": {
          "path": "Peter Watts/Echopraxia (2014).txt",
          "sha256": "bca480ef515c21cabda46ad80db9ab6cd6ef152407dc85d0a78fbfaafe8a581b",
          "digest_observed_at": "2026-09-09",
          "digest_at_analysis_run": null,
          "edition": null,
          "edition_status": "unresolved"
        },
        "pipeline_revision_at_run": null,
        "verification": {
          "source": "unverified",
          "human_review": "unreviewed",
          "bibliography": "unverified"
        },
        "issues": [],
        "todorov_status": "recovered-from-synthesis",
        "work_identity": {
          "title": "Echopraxia",
          "author": "Peter Watts",
          "year": 2014
        }
      },
      "ntsmr": {
        "version": "2.5",
        "primary_run_label": "NTSMR-2.5-claude-sonnet-4-6-low",
        "runs": {
          "NTSMR-2.3-gemini-3.1-pro-preview": {
            "pipeline_version": "2.3",
            "backend": "gemini",
            "model": "gemini-3.1-pro-preview",
            "scores": {
              "time_linearity": 0.7,
              "pacing_velocity": 0.6,
              "threat_scale": 0.9,
              "protagonist_fate": 0.8,
              "conflict_style": 0.4,
              "price_type": 0.8
            },
            "score_space": "site-v1"
          },
          "NTSMR-2.3-claude-sonnet-4-6-low": {
            "pipeline_version": "2.3",
            "backend": "claude",
            "model": "claude-sonnet-4-6",
            "scores": {
              "time_linearity": 0.45,
              "pacing_velocity": 0.65,
              "threat_scale": 0.78,
              "protagonist_fate": 0.72,
              "conflict_style": 0.58,
              "price_type": 0.75
            },
            "score_space": "site-v1",
            "reasoning_effort": "low"
          },
          "NTSMR-2.4-claude-sonnet-4-6-low": {
            "pipeline_version": "2.4",
            "backend": "claude",
            "model": "claude-sonnet-4-6",
            "scores": {
              "time_linearity": 0.38,
              "pacing_velocity": 0.35,
              "threat_scale": 0.82,
              "protagonist_fate": 0.68,
              "conflict_style": 0.42,
              "price_type": 0.45
            },
            "score_space": "site-v1",
            "reasoning_effort": "low"
          },
          "NTSMR-2.5-claude-sonnet-4-6-low": {
            "pipeline_version": "2.5",
            "backend": "claude",
            "model": "claude-sonnet-4-6",
            "scores": {
              "time_linearity": 0.55,
              "pacing_velocity": 0.62,
              "threat_scale": 0.88,
              "protagonist_fate": 0.75,
              "conflict_style": 0.62,
              "price_type": 0.72
            },
            "score_space": "site-v1",
            "reasoning_effort": "low"
          },
          "NTSMR-2.5-balanced-glm-5+deepseek-v3.2": {
            "pipeline_version": "2.5",
            "backend": "openrouter",
            "model": "balanced-routing",
            "scores": {
              "time_linearity": 0.6,
              "pacing_velocity": 0.65,
              "threat_scale": 0.8,
              "protagonist_fate": 0.8,
              "conflict_style": 0.65,
              "price_type": 0.7
            },
            "score_space": "site-v1",
            "score_only": true,
            "source_run_label": "NTSMR-2.5-claude-sonnet-4-6-low"
          }
        }
      },
      "todorov_stages": {
        "equilibrium": "Daniel Brüks lives in self-imposed isolation in the Oregon desert, conducting field biology as a baseline human who has opted out of posthuman civilization; the world exists in a post-Contact stasis where humanity has fractured into hive-minds, vampires, and augmented subspecies but maintained an uneasy functional order",
        "disruption": "A military-grade zombie pursuit drives Brüks toward the Bicameral monastery, which is simultaneously attacked with a bioweapon customized for Bicamerals; he is swept aboard the Crown of Thorns on a mission whose purpose Moore keeps opaque, severing him from his desert equilibrium entirely",
        "recognition": "Brüks accumulates layered recognitions: Moore reveals Sengupta is an unwitting sleeper agent, Sengupta discovers that Brüks himself is the 'gunsmith' responsible for 7,482 deaths, Portia is confirmed to be thinking invisibly at baseline thermal noise, and the Crown's return trajectory finds anomalous broadcast signals indicating civilizational collapse underway on Earth",
        "repair": "Chinedum Ofoegbu emerges from the decompression Hold at lethal personal risk and speaks Bicameral commands that physically halt Valerie during her assault on the crew; the Crown escapes Icarus under Sengupta's piloting as Valerie burns in the engine flash and Icarus self-destructs behind them",
        "new_equilibrium": "The Crown returns toward an Earth already in civilizational decoherence; the crew is decimated, Lianna and the Bicamerals are dead, Sengupta is shot by Moore, and Valerie has learned to weaponize the Crucifix Glitch as judo against humans — a transformed world in which the old human order has been supplanted and Brüks, the last baseline witness, rises as an unwilling ambassador"
      },
      "characters": [
        {
          "name": "Daniel Brüks",
          "slug": "daniel-brks",
          "aliases": [
            "Dan",
            "roach",
            "baseline",
            "Backdoor Brüks",
            "Brüks",
            "Danny-boy"
          ],
          "role": "Protagonist and baseline human biologist",
          "summary": "The baseline human protagonist who witnesses the recording of Valerie's torture, explores Icarus, attempts to fight back with a welding laser, and is ultimately saved by Moore while fleeing from Valerie."
        },
        {
          "name": "Valerie",
          "slug": "valerie",
          "aliases": [
            "the vampire",
            "prepost-Human",
            "Valerie the Vampire"
          ],
          "role": "Vampire / Antagonist",
          "summary": "A resurrected vampire who was tortured with the Crucifix Glitch by researchers, later stalks the crew on Icarus, and learns to weaponize the glitch against baseline humans like Sachita Bhar and Brüks."
        },
        {
          "name": "Jim Moore",
          "slug": "jim-moore",
          "aliases": [
            "Moore",
            "Colonel Carnage",
            "Jim",
            "Colonel",
            "Oldschool",
            "Carnage"
          ],
          "role": "Military man / Strategist",
          "summary": "A calm, pragmatic colonel who executes Sengupta and exhibits bizarre behavior, claiming to receive a signal from his mutilated son Siri, possibly under the influence of an interstellar entity."
        },
        {
          "name": "Lianna",
          "slug": "lianna",
          "aliases": [
            "Lee",
            "Lianna Lutterodt"
          ],
          "role": "Crew member / Informant",
          "summary": "A kind but seemingly delusional crew member who treats Brüks's injuries, assists with his interfaces, and expresses unwavering faith in the Bicamerals' plans."
        },
        {
          "name": "Mahmood",
          "slug": "mahmood",
          "aliases": [],
          "role": "Bicameral node",
          "summary": "A Bicameral monk who falls into a convulsive rapture in the hallway, spouting incomprehensible insights."
        },
        {
          "name": "Brother Slippers",
          "slug": "brother-slippers",
          "aliases": [
            "Slippers"
          ],
          "role": "Monk",
          "summary": "A monk who taps into Brüks's desert cameras to monitor an approaching threat and a massive cloaked anomaly in the sky."
        },
        {
          "name": "Rakshi Sengupta",
          "slug": "rakshi-sengupta",
          "aliases": [
            "Rakshi",
            "Rak",
            "Sengupta",
            "Shiva"
          ],
          "role": "Pilot and hacker",
          "summary": "A volatile hacker who is shot and killed by Moore after paralyzing Brüks with a neurological glitch; later seen alive in the narrative (perhaps flashbacks or non-linear snippets) navigating the ship's systems and warning Brüks about Valerie and Moore."
        },
        {
          "name": "Siri Keeton",
          "slug": "siri-keeton",
          "aliases": [],
          "role": "Transmitter",
          "summary": "Jim Moore's son, who had half his brain removed due to a viral zombieism infection he contracted in the womb."
        },
        {
          "name": "Portia",
          "slug": "portia",
          "aliases": [
            "slime mold"
          ],
          "role": "Extremophile threat",
          "summary": "An alien intelligence that mimics human visual interfaces and protocols to communicate, and dynamically reacts to its environment and the crew."
        },
        {
          "name": "Chinedum Ofoegbu",
          "slug": "chinedum-ofoegbu",
          "aliases": [],
          "role": "Bicameral node",
          "summary": "Appears to Brüks during his recovery, revealing a surprisingly normal childhood past beneath his post-human exterior."
        },
        {
          "name": "Siri",
          "slug": "siri",
          "aliases": [],
          "role": "Moore's son",
          "summary": "Moore's son, who is half a light-year away, whose supposed transmissions are deeply affecting Moore's sanity."
        },
        {
          "name": "Zombie Guard",
          "slug": "zombie-guard",
          "aliases": [],
          "role": "Guard",
          "summary": "An augmented human guard stationed at an airlock who is able to hold a conversation while consciously asleep."
        },
        {
          "name": "Celu MacDonald",
          "slug": "celu-macdonald",
          "aliases": [],
          "role": "Freelance Coder",
          "summary": "A coder hired to grow the weaponized encephalitis code, left to face the bloody consequences alone while academics hid."
        },
        {
          "name": "Sachita Bhar",
          "slug": "sachita-bhar",
          "aliases": [
            "Sachie"
          ],
          "role": "Research associate",
          "summary": "A student and researcher who hides in a cross-free white room during the vampire massacre, only to be cornered and killed by Valerie using the Crucifix Glitch."
        },
        {
          "name": "Amina",
          "slug": "amina",
          "aliases": [],
          "role": "Bicameral node",
          "summary": "A Bicameral who drifts away from the sanctum and is abruptly killed by the zombie Azagba in the corridors."
        },
        {
          "name": "Azagba",
          "slug": "azagba",
          "aliases": [
            "the legless zombie"
          ],
          "role": "Combat zombie",
          "summary": "A modified, legless zombie under Valerie's control who strikes with piston-like speed, instantly killing Amina."
        },
        {
          "name": "Evans",
          "slug": "evans",
          "aliases": [],
          "role": "Crew member",
          "summary": "A suited figure whose throat is crushed by a bounding zombie during the zero-gravity ambush."
        },
        {
          "name": "Gregor",
          "slug": "gregor",
          "aliases": [
            "Greg"
          ],
          "role": "Researcher",
          "summary": "A colleague of Sachita who is killed during the vampire uprising and found dead in a broom closet."
        }
      ],
      "frameworks_mapped": [
        "Protocol Fiction Mapping",
        "Actantial Model",
        "Todorov's Equilibrium",
        "The Freytag Pyramid",
        "Propp's Morphology",
        "Genette's Narrative",
        "The Monomyth",
        "Dan Harmon",
        "Save the Cat",
        "Kishōtenketsu",
        "The Three-Act Structure"
      ],
      "score_reliability": {
        "state": "replicated-agree",
        "threshold": 0.2,
        "runs_total": 5,
        "versions_compared": [
          "2.5"
        ],
        "max_spread": 0.08,
        "contested": []
      }
    },
    {
      "slug": "orson_scott_card_ender_s_game",
      "title": "Ender's Game",
      "author": "Orson Scott Card",
      "year": 1985,
      "medium": "book",
      "genre_tags": [
        "sf",
        "military sf",
        "coming of age"
      ],
      "tropes": [],
      "quadrant_scores": {
        "time_linearity": 0.28,
        "pacing_velocity": 0.42,
        "threat_scale": 0.75,
        "protagonist_fate": 0.45,
        "conflict_style": 0.48,
        "price_type": 0.55
      },
      "provenance": {
        "analysis_run": "NTSMR-2.5-claude-sonnet-4-6-low",
        "analysis_body_sha256": "6fb630f2f5b0d37f4e6e9c4fc5c712ef8d14c651e0e8ae8a808b076dc62aea47",
        "synthesis": {
          "path": "nartopo-tools/artifacts/orson_scott_card_ender_s_game.md.ntsmr-2-5-claude-sonnet-4-6-low.synthesis.json",
          "sha256": "d16f46d04a9724967af03cda4555730fc642132738ab327ea9709bc7beeebc00"
        },
        "report": {
          "path": "nartopo-tools/artifacts/orson_scott_card_ender_s_game.md.ntsmr-2-5-claude-sonnet-4-6-low.report.json",
          "sha256": "91e578c85d7fb7c247ba17c7f5fa520e277a77122eeb7fa0fb2952b14d07d9e4"
        },
        "source": {
          "path": "Orson Scott Card/Ender's Game.txt",
          "sha256": "fcce6d8ea9f73f08d47aad4577a64a3836f3949f4c69793ecd06855a22534a1d",
          "digest_observed_at": "2026-09-09",
          "digest_at_analysis_run": null,
          "edition": null,
          "edition_status": "unresolved"
        },
        "pipeline_revision_at_run": null,
        "verification": {
          "source": "unverified",
          "human_review": "unreviewed",
          "bibliography": "unverified"
        },
        "issues": [],
        "todorov_status": "recovered-from-synthesis",
        "work_identity": {
          "title": "Ender's Game",
          "author": "Orson Scott Card",
          "year": 1985
        }
      },
      "ntsmr": {
        "version": "2.5",
        "primary_run_label": "NTSMR-2.5-claude-sonnet-4-6-low",
        "runs": {
          "NTSMR-2.3-claude-sonnet-4-6-low": {
            "pipeline_version": "2.3",
            "backend": "claude",
            "model": "claude-sonnet-4-6",
            "scores": {
              "time_linearity": 0.15,
              "pacing_velocity": 0.55,
              "threat_scale": 0.75,
              "protagonist_fate": 0.2,
              "conflict_style": 0.35,
              "price_type": 0.65
            },
            "score_space": "site-v1",
            "reasoning_effort": "low"
          },
          "NTSMR-2.4-claude-sonnet-4-6-low": {
            "pipeline_version": "2.4",
            "backend": "claude",
            "model": "claude-sonnet-4-6",
            "scores": {
              "time_linearity": 0.22,
              "pacing_velocity": 0.28,
              "threat_scale": 0.82,
              "protagonist_fate": 0.38,
              "conflict_style": 0.32,
              "price_type": 0.42
            },
            "score_space": "site-v1",
            "reasoning_effort": "low"
          },
          "NTSMR-2.5-claude-sonnet-4-6-low": {
            "pipeline_version": "2.5",
            "backend": "claude",
            "model": "claude-sonnet-4-6",
            "scores": {
              "time_linearity": 0.28,
              "pacing_velocity": 0.42,
              "threat_scale": 0.75,
              "protagonist_fate": 0.45,
              "conflict_style": 0.48,
              "price_type": 0.55
            },
            "score_space": "site-v1",
            "reasoning_effort": "low"
          },
          "NTSMR-2.5-minimax/minimax-m2.5": {
            "pipeline_version": "2.5",
            "backend": "openrouter",
            "model": "minimax/minimax-m2.5",
            "scores": {
              "time_linearity": 0.25,
              "pacing_velocity": 0.55,
              "threat_scale": 0.65,
              "protagonist_fate": 0.3,
              "conflict_style": 0.6,
              "price_type": 0.6
            },
            "score_space": "site-v1"
          },
          "NTSMR-2.5-qwen/qwen3.5-397b-a17b": {
            "pipeline_version": "2.5",
            "backend": "openrouter",
            "model": "qwen/qwen3.5-397b-a17b",
            "scores": {
              "time_linearity": 0.25,
              "pacing_velocity": 0.7,
              "threat_scale": 0.75,
              "protagonist_fate": 0.55,
              "conflict_style": 0.65,
              "price_type": 0.6
            },
            "score_space": "site-v1"
          },
          "NTSMR-2.5-deepseek/deepseek-v3.2": {
            "pipeline_version": "2.5",
            "backend": "openrouter",
            "model": "deepseek/deepseek-v3.2",
            "scores": {
              "time_linearity": 0.15,
              "pacing_velocity": 0.65,
              "threat_scale": 0.75,
              "protagonist_fate": 0.35,
              "conflict_style": 0.6,
              "price_type": 0.45
            },
            "score_space": "site-v1"
          },
          "NTSMR-2.5-qwen/qwen3.5-plus-02-15": {
            "pipeline_version": "2.5",
            "backend": "openrouter",
            "model": "qwen/qwen3.5-plus-02-15",
            "scores": {
              "time_linearity": 0.2,
              "pacing_velocity": 0.65,
              "threat_scale": 0.85,
              "protagonist_fate": 0.55,
              "conflict_style": 0.65,
              "price_type": 0.4
            },
            "score_space": "site-v1"
          },
          "NTSMR-2.5-z-ai/glm-4.7": {
            "pipeline_version": "2.5",
            "backend": "openrouter",
            "model": "z-ai/glm-4.7",
            "scores": {
              "time_linearity": 0.1,
              "pacing_velocity": 0.5,
              "threat_scale": 0.8,
              "protagonist_fate": 0.3,
              "conflict_style": 0.55,
              "price_type": 0.4
            },
            "score_space": "site-v1"
          },
          "NTSMR-2.5-z-ai/glm-5": {
            "pipeline_version": "2.5",
            "backend": "openrouter",
            "model": "z-ai/glm-5",
            "scores": {
              "time_linearity": 0.2,
              "pacing_velocity": 0.6,
              "threat_scale": 0.75,
              "protagonist_fate": 0.45,
              "conflict_style": 0.6,
              "price_type": 0.55
            },
            "score_space": "site-v1"
          },
          "NTSMR-2.5-balanced-glm-5+deepseek-v3.2": {
            "pipeline_version": "2.5",
            "backend": "openrouter",
            "model": "balanced-routing",
            "scores": {
              "time_linearity": 0.25,
              "pacing_velocity": 0.55,
              "threat_scale": 0.8,
              "protagonist_fate": 0.45,
              "conflict_style": 0.5,
              "price_type": 0.55
            },
            "score_space": "site-v1",
            "score_only": true,
            "source_run_label": "NTSMR-2.5-claude-sonnet-4-6-low"
          }
        }
      },
      "todorov_stages": {
        "equilibrium": "Bean and Petra live in hiding, operationally active but personally stalled — Bean refusing to father children because his genetic condition will kill him prematurely, while the Hegemony under Peter nominally manages global stability with Achilles installed as a monitored internal asset.",
        "disruption": "Achilles steals the frozen embryos from the Women's Hospital and seizes control of the Hegemony compound, expelling Peter and declaring himself acting through Suriyawong — simultaneously depriving Bean and Petra of their children and collapsing the institutional order Peter had built.",
        "recognition": "Petra deduces from Lankowski's phrasing that a covert pan-Islamic shadow government is operating above nation-states; Bean, aboard the flight to Damascus, mentally inhabits Achilles's psychology and concludes the embryos will be used as leverage rather than destroyed; Peter recognizes through the split-keystroke intelligence failure and Theresa's blunt assessment that Achilles's coup is already underway and he must flee immediately.",
        "repair": "Bean recruits Ambul and allies with Han Tzu and Alai to isolate and re-enter the Hegemony compound; Peter rehabilitates himself publicly at a Greensboro press conference and secures IFCom's refusal to recognize the coup; Bean guards the embryo production process with around-the-clock security; ultimately Bean confronts Achilles directly inside the compound, destroys the vial Achilles uses as leverage, and Achilles is killed.",
        "new_equilibrium": "Achilles is dead and holds no more leverage; Peter reasserts himself as legitimate Hegemon with IFCom backing; Petra returns openly to Damascus under her own name; the Caliphate rises under Alai as a new geopolitical power that no single hegemon can contain — the world is reordered but not pacified, with Bean and Petra's embryo situation unresolved and the seeds of the next conflict already visible."
      },
      "characters": [
        {
          "name": "Bean",
          "slug": "bean",
          "aliases": [
            "Julian Delphiki"
          ],
          "role": "Military strategist, advisor to Alai",
          "summary": "Genetically engineered genius struggling with his mortality and decision to have children; emotionally breaks down realizing he loves his unborn children."
        },
        {
          "name": "Suriyawong",
          "slug": "suriyawong",
          "aliases": [
            "Suri"
          ],
          "role": "military commander",
          "summary": "Thai soldier and Bean's second-in-command who leads the mission to rescue Achilles while concealing his hatred for the man who helped conquer Thailand."
        },
        {
          "name": "Achilles",
          "slug": "achilles",
          "aliases": [
            "the Belgian",
            "X",
            "the Beast",
            "Achilles Flandres"
          ],
          "role": "antagonist",
          "summary": "Psychopathic manipulator who infiltrated the Hegemony compound deliberately; makes political moves to seize power and discredit Peter."
        },
        {
          "name": "Graff",
          "slug": "graff",
          "aliases": [
            "Hyrum"
          ],
          "role": "administrator",
          "summary": "Former Battle School administrator now Minister of Colonization who offers Theresa evacuation and discusses his regrets about Ender."
        },
        {
          "name": "Virlomi",
          "slug": "virlomi",
          "aliases": [],
          "role": "resistance leader",
          "summary": "Indian Battle School graduate who invents the wall-building movement as symbolic resistance to Chinese occupation."
        },
        {
          "name": "Anton",
          "slug": "anton",
          "aliases": [
            "Professor Anton"
          ],
          "role": "supporting",
          "summary": "Scientist who discovered Anton's Key; provides emotional guidance to Bean and directs him to Volescu for genetic testing."
        },
        {
          "name": "Petra Arkanian",
          "slug": "petra-arkanian",
          "aliases": [
            "PA",
            "Mrs. Delphiki"
          ],
          "role": "Bean's partner, pregnant with his child",
          "summary": "Learns her embryos have been stolen; meets with Alai and struggles with anxiety about her missing potential children while possibly carrying one child."
        },
        {
          "name": "Peter Wiggin",
          "slug": "peter-wiggin",
          "aliases": [
            "Locke",
            "the Hegemon",
            "Hegemon"
          ],
          "role": "Hegemon, political operator",
          "summary": "Delivers a press conference exposing Achilles's manipulations while admitting his own mistakes; runs counter-intelligence operations to protect his family."
        },
        {
          "name": "Volescu",
          "slug": "volescu",
          "aliases": [
            "Uncle Constantine"
          ],
          "role": "antagonist",
          "summary": "Scientist who created Bean and murdered his siblings; claims to have a test for Anton's Key but is lying; steals Bean and Petra's embryos."
        },
        {
          "name": "Han Tzu",
          "slug": "han-tzu",
          "aliases": [
            "Hot Soup"
          ],
          "role": "strategist",
          "summary": "Chinese military strategist loyal to China but opposed to its incompetent leadership, frustrated by bureaucratic paralysis."
        },
        {
          "name": "Ferreira",
          "slug": "ferreira",
          "aliases": [],
          "role": "technical specialist",
          "summary": "Brazilian computer expert in charge of Hegemony system security."
        },
        {
          "name": "Ivan Lankowski",
          "slug": "ivan-lankowski",
          "aliases": [],
          "role": "Muslim intelligence operative, minister-without-portfolio",
          "summary": "Elderly Russian-Kazakh-Jordanian Muslim who escorts Petra through Damascus; works for a pan-Islamic authority transcending individual nations."
        },
        {
          "name": "Alai",
          "slug": "alai",
          "aliases": [
            "Caliph"
          ],
          "role": "Caliph of the Muslim world, military commander",
          "summary": "Former Battle School student now leading the Muslim world; plans complex invasion of Chinese territory; shows concern for soldiers' lives and just governance."
        },
        {
          "name": "Uphanad",
          "slug": "uphanad",
          "aliases": [],
          "role": "traitor",
          "summary": "MinCol staff member who betrayed Peter's location to protect family members in Chinese custody."
        },
        {
          "name": "Ambul",
          "slug": "ambul",
          "aliases": [],
          "role": "soldier",
          "summary": "Battle School dropout fighting with Muslim forces against China in a covert infiltration mission."
        }
      ],
      "frameworks_mapped": [
        "Protocol Fiction Mapping",
        "Actantial Model",
        "Todorov's Equilibrium",
        "The Freytag Pyramid",
        "Propp's Morphology",
        "Genette's Narrative",
        "The Monomyth",
        "Dan Harmon",
        "Save the Cat",
        "Kishotenketsu",
        "The Three-Act Structure",
        "Levi-Strauss's Binary Oppositions",
        "Cognitive Estrangement",
        "Bakhtin's Chronotope",
        "Aristotelian Poetics",
        "Jungian Archetypal Analysis",
        "Genette's Transtextuality"
      ],
      "score_reliability": {
        "state": "contested",
        "threshold": 0.2,
        "runs_total": 10,
        "versions_compared": [
          "2.5"
        ],
        "max_spread": 0.28,
        "contested": [
          {
            "axis": "pacing_velocity",
            "version": "2.5",
            "spread": 0.28,
            "low": {
              "label": "NTSMR-2.5-claude-sonnet-4-6-low",
              "model": "claude-sonnet-4-6",
              "effort": "low",
              "value": 0.42
            },
            "high": {
              "label": "NTSMR-2.5-qwen/qwen3.5-397b-a17b",
              "model": "qwen/qwen3.5-397b-a17b",
              "effort": "?",
              "value": 0.7
            }
          },
          {
            "axis": "protagonist_fate",
            "version": "2.5",
            "spread": 0.25,
            "low": {
              "label": "NTSMR-2.5-minimax/minimax-m2.5",
              "model": "minimax/minimax-m2.5",
              "effort": "?",
              "value": 0.3
            },
            "high": {
              "label": "NTSMR-2.5-qwen/qwen3.5-plus-02-15",
              "model": "qwen/qwen3.5-plus-02-15",
              "effort": "?",
              "value": 0.55
            }
          },
          {
            "axis": "price_type",
            "version": "2.5",
            "spread": 0.2,
            "low": {
              "label": "NTSMR-2.5-qwen/qwen3.5-plus-02-15",
              "model": "qwen/qwen3.5-plus-02-15",
              "effort": "?",
              "value": 0.4
            },
            "high": {
              "label": "NTSMR-2.5-qwen/qwen3.5-397b-a17b",
              "model": "qwen/qwen3.5-397b-a17b",
              "effort": "?",
              "value": 0.6
            }
          },
          {
            "axis": "threat_scale",
            "version": "2.5",
            "spread": 0.2,
            "low": {
              "label": "NTSMR-2.5-minimax/minimax-m2.5",
              "model": "minimax/minimax-m2.5",
              "effort": "?",
              "value": 0.65
            },
            "high": {
              "label": "NTSMR-2.5-qwen/qwen3.5-plus-02-15",
              "model": "qwen/qwen3.5-plus-02-15",
              "effort": "?",
              "value": 0.85
            }
          }
        ]
      }
    },
    {
      "slug": "iain_m_banks_excession",
      "title": "Excession",
      "author": "Iain M. Banks",
      "year": 1996,
      "medium": "book",
      "genre_tags": [
        "science fiction",
        "space opera",
        "post-scarcity"
      ],
      "tropes": [
        "Outside Context Problem",
        "AI Bureaucracy",
        "Gambit Pileup",
        "Map-Reduced"
      ],
      "quadrant_scores": {
        "time_linearity": 0.55,
        "pacing_velocity": 0.45,
        "threat_scale": 0.9,
        "protagonist_fate": 0.5,
        "conflict_style": 0.5,
        "price_type": 0.65
      },
      "baseline_quadrant_scores": {
        "time_linearity": 0.82,
        "pacing_velocity": 0.45,
        "threat_scale": 0.95,
        "protagonist_fate": 0.65,
        "conflict_style": 0.35,
        "price_type": 0.85
      },
      "provenance": {
        "analysis_run": "NTSMR-2.5-claude-sonnet-4-6-low",
        "analysis_body_sha256": "05f8a3a89b724a6b927060b0f791542173db76953aa0e288c33d23a6d08039ae",
        "synthesis": {
          "path": "nartopo-tools/artifacts/iain_m_banks_excession.md.ntsmr-2-5-claude-sonnet-4-6-low.synthesis.json",
          "sha256": "7c0b1ba30df1d0a63c67ca2e9b4d8efd67ff2045a00b8158dd25d24c8fc01618"
        },
        "report": {
          "path": "nartopo-tools/artifacts/iain_m_banks_excession.md.ntsmr-2-5-claude-sonnet-4-6-low.report.json",
          "sha256": "b04ef5507e12bd5500e746ca967f3b17f21a1010fa0f2cf7e4cae351ac13f847"
        },
        "source": {
          "path": "Iain M. Banks/Excession.txt",
          "sha256": "d31e596ba16212d2a724c7336d1b66935bad05c11b96080b11991acd3afdebbc",
          "digest_observed_at": "2026-09-09",
          "digest_at_analysis_run": null,
          "edition": null,
          "edition_status": "unresolved"
        },
        "pipeline_revision_at_run": null,
        "verification": {
          "source": "unverified",
          "human_review": "unreviewed",
          "bibliography": "unverified"
        },
        "issues": [],
        "todorov_status": "recovered-from-synthesis",
        "work_identity": {
          "title": "Excession",
          "author": "Iain M. Banks",
          "year": 1996
        }
      },
      "ntsmr": {
        "version": "2.5",
        "primary_run_label": "NTSMR-2.5-claude-sonnet-4-6-low",
        "runs": {
          "NTSMR-2.3-gemini-3.1-pro-preview": {
            "pipeline_version": "2.3",
            "backend": "gemini",
            "model": "gemini-3.1-pro-preview",
            "scores": {
              "time_linearity": 0.8,
              "pacing_velocity": 0.65,
              "threat_scale": 0.95,
              "protagonist_fate": 0.8,
              "conflict_style": 0.45,
              "price_type": 0.85
            },
            "score_space": "site-v1"
          },
          "NTSMR-2.3-claude-sonnet-4-6-low": {
            "pipeline_version": "2.3",
            "backend": "claude",
            "model": "claude-sonnet-4-6",
            "scores": {
              "time_linearity": 0.72,
              "pacing_velocity": 0.62,
              "threat_scale": 0.85,
              "protagonist_fate": 0.58,
              "conflict_style": 0.55,
              "price_type": 0.68
            },
            "score_space": "site-v1",
            "reasoning_effort": "low"
          },
          "NTSMR-2.4-claude-sonnet-4-6-low": {
            "pipeline_version": "2.4",
            "backend": "claude",
            "model": "claude-sonnet-4-6",
            "scores": {
              "time_linearity": 0.55,
              "pacing_velocity": 0.28,
              "threat_scale": 0.92,
              "protagonist_fate": 0.45,
              "conflict_style": 0.32,
              "price_type": 0.48
            },
            "score_space": "site-v1",
            "reasoning_effort": "low"
          },
          "NTSMR-2.5-claude-sonnet-4-6-low": {
            "pipeline_version": "2.5",
            "backend": "claude",
            "model": "claude-sonnet-4-6",
            "scores": {
              "time_linearity": 0.55,
              "pacing_velocity": 0.45,
              "threat_scale": 0.9,
              "protagonist_fate": 0.5,
              "conflict_style": 0.5,
              "price_type": 0.65
            },
            "score_space": "site-v1",
            "reasoning_effort": "low"
          },
          "NTSMR-2.5-balanced-glm-5+deepseek-v3.2": {
            "pipeline_version": "2.5",
            "backend": "openrouter",
            "model": "balanced-routing",
            "scores": {
              "time_linearity": 0.3,
              "pacing_velocity": 0.6,
              "threat_scale": 0.82,
              "protagonist_fate": 0.42,
              "conflict_style": 0.58,
              "price_type": 0.62
            },
            "score_space": "site-v1",
            "score_only": true,
            "source_run_label": "NTSMR-2.5-claude-sonnet-4-6-low"
          }
        }
      },
      "todorov_stages": {
        "equilibrium": "The Culture operates as a dominant civilisation managing relations with lesser species including the Affront, while the Sleeper Service pursues its eccentric self-imposed exile hoarding stored humans, and various ships conduct routine surveillance. The Excession near Esperi exists undetected, and the broader interstellar order remains stable if uneasy.",
        "disruption": "The Excession manifests near Esperi as an incomprehensible Outside Context Problem — a massless black-body sphere with no spacetime signature that instantly destroys the Peace Makes Plenty and absorbs a drone probe, while simultaneously a conspiracy among Culture Minds manipulates the Affront into war and the Killing Time goes rogue, attacking other Culture ships and seizing Pittance's hidden war fleet.",
        "recognition": "Multiple parties converge on awareness of the true situation: the Sleeper Service accumulates messages from the LSV Serious Callers Only and finally understands the conspiracy; the Fate Amenable To Change maps the engine-field failure zone around the Excession and signals warnings; the Eccentric Shoot Them Later and others piece together the coordinated tip-off that preceded the Excession's discovery; and the Affront broadcasts sovereignty claims over the object, forcing all parties to acknowledge open conflict.",
        "repair": "The Sleeper Service deceives its escort the Yawning Angel and races toward the Upper Leaf Swirl at maximum speed, releasing its secretly manufactured war fleet in explosive flurries near the Excession; the Affronter fleet surrenders after the Excession's expanding blast-front retreats in mirror response to the Sleeper's braking; the Killing Time takes charge of captured vessels; and the drone Sisela Ytheleus executes desperate survival gambits to carry intelligence outward.",
        "new_equilibrium": "The Affront surrenders and its commanding officer takes his own life; the Sleeper Service broadcasts a full accounting of the conspiracy and its secret war fleet; the Excession vanishes entirely from the skein without explanation; the Grey Area dives into the energy grid and disappears; Dajeil contemplates that after four decades of exile the Sleeper Service is beginning to behave again like a ship that belongs to the Culture, signalling a transformed but restabilised order."
      },
      "characters": [
        {
          "name": "Killing Time",
          "slug": "killing-time",
          "aliases": [],
          "role": "Warship / ROU",
          "summary": "A highly aggressive warship that executes a devastating, seemingly petty attack on the Attitude Adjuster within a fleet formation before surviving and reorienting."
        },
        {
          "name": "Pittance Store",
          "slug": "pittance-store",
          "aliases": [
            "Pittance"
          ],
          "role": "Ship store",
          "summary": "A restricted entity holding stored vessels, which tries to deny the Killing Time permission to approach."
        },
        {
          "name": "Commander Risingmoon Parchseason IV",
          "slug": "commander-risingmoon-parchseason-iv",
          "aliases": [
            "Commander"
          ],
          "role": "Affronter Commander",
          "summary": "An Affronter commander of the Farsight tribe who boards the station to hijack dormant Gangster class warships, later brutally obliterating Gestra's frozen body."
        },
        {
          "name": "Byr Genar-Hofoen",
          "slug": "byr-genar-hofoen",
          "aliases": [
            "Genar-Hofoen",
            "human",
            "Byr"
          ],
          "role": "Special Circumstances agent",
          "summary": "A human wearing a sentient gelfield suit who participates in the brutal Affronter social functions and stubbornly argues against being recruited for a new Special Circumstances mission."
        },
        {
          "name": "Ulver Seich",
          "slug": "ulver-seich",
          "aliases": [
            "Ulver"
          ],
          "role": "Socialite / passenger",
          "summary": "A young, vain woman swept up into a Contact/SC mission, furious about her cramped accommodations and deliberately altered, aged facial appearance."
        },
        {
          "name": "Churt Lyne",
          "slug": "churt-lyne",
          "aliases": [],
          "role": "Drone",
          "summary": "A drone forcing Ulver Seich to accompany it on a warship, handling her complaints about luggage and accommodations."
        },
        {
          "name": "Serious Callers Only",
          "slug": "serious-callers-only",
          "aliases": [],
          "role": "Ship Mind",
          "summary": "An LSV plotting to intercept Genar-Hofoen on Tier and later arguing with the Steely Glint about the Sleeper Service's sudden acceleration."
        },
        {
          "name": "Eccentric Shoot Them Later",
          "slug": "eccentric-shoot-them-later",
          "aliases": [
            "Shoot Them Later"
          ],
          "role": "Ship Mind",
          "summary": "An Eccentric ship discussing the disastrous political situation and agreeing to join a perilous mission to expose the conspirators."
        },
        {
          "name": "Fivetide Humidyear VII",
          "slug": "fivetide-humidyear-vii",
          "aliases": [
            "Fivetide",
            "Colonel Alien-Befriender"
          ],
          "role": "Affronter Diplomatic Force officer",
          "summary": "An aggressively friendly Affronter officer who welcomes Genar-Hofoen to the banquet, teaches him the chaotic etiquette of harpooning food, and revels in the violent dinner entertainment."
        },
        {
          "name": "Phoese Cloathel-Beldrunsa Khoriem lei Poere da'Merire",
          "slug": "phoese-cloathel-beldrunsa-khoriem-lei-poere-damerire",
          "aliases": [
            "professor"
          ],
          "role": "Human representative",
          "summary": "A professor on Orbital Cloathel who is shocked to find an Affronter claiming the Orbital."
        },
        {
          "name": "Amorphia",
          "slug": "amorphia",
          "aliases": [
            "avatar"
          ],
          "role": "Avatar of the Sleeper Service",
          "summary": "The ship's physical manifestation who calmly informs the humans they might die due to the Excession's expansion and prepares them to enter simulation mode."
        },
        {
          "name": "Dajeil",
          "slug": "dajeil",
          "aliases": [
            "Dajeil Gelian"
          ],
          "role": "Isolated passenger",
          "summary": "A pregnant woman who has been isolating herself aboard the Sleeper Service in a forty-year sulk due to past trauma involving Genar-Hofoen."
        },
        {
          "name": "Fate Amenable To Change",
          "slug": "fate-amenable-to-change",
          "aliases": [
            "Fate"
          ],
          "role": "Culture craft",
          "summary": "A Culture ship that desperately tries to prevent Elencher ships from contacting the Excession, later finding itself immobilized as the anomaly negates its engine traction."
        },
        {
          "name": "Appeal To Reason",
          "slug": "appeal-to-reason",
          "aliases": [],
          "role": "Zetetic Elench Ship",
          "summary": "An Elencher ship that insists on launching a fragile, decorated probe into the Excession to gather data."
        },
        {
          "name": "GCU Grey Area",
          "slug": "gcu-grey-area",
          "aliases": [
            "slave-drone",
            "Meatfucker"
          ],
          "role": "General Contact Unit",
          "summary": "A ship criticized for delving into the minds of animals, defending its actions as a search for truth regarding a genocide."
        },
        {
          "name": "Sleeper Service",
          "slug": "sleeper-service",
          "aliases": [
            "Quietly Confident",
            "avatar"
          ],
          "role": "Eccentric GSV",
          "summary": "An Eccentric GSV that suddenly unloads its massive cargo of stored people and habitats onto an Orbital, revealing it has converted its internal space to engines to achieve an impossible speed."
        },
        {
          "name": "Leffid Ispanteli",
          "slug": "leffid-ispanteli",
          "aliases": [
            "Leffid"
          ],
          "role": "Festival attendee",
          "summary": "A winged human attending the Festival of Tier without his neural lace, who spots and records a mysterious Elench distress signal."
        },
        {
          "name": "Culture ship",
          "slug": "culture-ship",
          "aliases": [
            "Attitude Adjuster",
            "traitor ship"
          ],
          "role": "Traitorous Culture Ship",
          "summary": "An AI ship that speaks to the Affronter commander, confirming the takeover of the base's Mind but noting the complexities of waking the 'baroqued' warships."
        },
        {
          "name": "Gravious",
          "slug": "gravious",
          "aliases": [],
          "role": "Simulated creature",
          "summary": "A talking black bird in the Sleeper Service's simulated beach environment that taunts Genar-Hofoen."
        },
        {
          "name": "Greydawn Latesetting X",
          "slug": "greydawn-latesetting-x",
          "aliases": [
            "Greydawn",
            "Captain"
          ],
          "role": "Affronter Captain of the Farsight tribe",
          "summary": "The Affronter captain who, faced with an impossibly large Culture fleet, refuses to surrender alongside his ship and instead commits suicide by ejecting into space."
        },
        {
          "name": "Heavy Messing",
          "slug": "heavy-messing",
          "aliases": [],
          "role": "Affronter Ship Mind",
          "summary": "The pragmatic ship commanded by Greydawn that decides to surrender to the overwhelming Culture fleet, disobeying its captain's orders to fight."
        },
        {
          "name": "Elencher drone",
          "slug": "elencher-drone",
          "aliases": [
            "soldier drone"
          ],
          "role": "Military drone",
          "summary": "A highly advanced Elencher combat drone that fights a desperate, losing battle against its compromised twin and an invading alien consciousness before being captured and extracted."
        },
        {
          "name": "GSV Honest Mistake",
          "slug": "gsv-honest-mistake",
          "aliases": [],
          "role": "Ship Mind",
          "summary": "A ship conversing with Grey Area, seemingly sarcastically wishing it well."
        },
        {
          "name": "Uncle Tishlin",
          "slug": "uncle-tishlin",
          "aliases": [
            "Tish"
          ],
          "role": "Holographic emissary",
          "summary": "A hologram resembling Genar-Hofoen's favorite uncle, delivering a Special Circumstances mission briefing regarding an Outside Context Problem."
        },
        {
          "name": "emissary",
          "slug": "emissary",
          "aliases": [],
          "role": "Messenger",
          "summary": "An entity resembling Fivetide's father, delivering a intercepted Culture signal to Fivetide."
        },
        {
          "name": "ship's avatar",
          "slug": "ships-avatar",
          "aliases": [],
          "role": "Avatar",
          "summary": "The physical manifestation of the GSV Sleeper Service, observing the meticulously recreated historical battle scene."
        },
        {
          "name": "Peace Makes Plenty",
          "slug": "peace-makes-plenty",
          "aliases": [],
          "role": "Elencher Ship",
          "summary": "A Stargazer craft that investigates the Excession artifact by sending a drone-probe beneath it, leading to its rapid destruction."
        },
        {
          "name": "Sisela Ytheleus 1/2",
          "slug": "sisela-ytheleus-12",
          "aliases": [],
          "role": "Drone",
          "summary": "A surviving drone from the destroyed Peace Makes Plenty, trapped in the skein of space-time, desperately attempting to build self-repair mechanisms."
        },
        {
          "name": "Commander Kindrummer VI",
          "slug": "commander-kindrummer-vi",
          "aliases": [],
          "role": "Affronter Navy Commander",
          "summary": "An Affronter of the Blades-corner tribe and the Battle-Cruiser Kiss The Blade, greeting Genar-Hofoen."
        },
        {
          "name": "Wisdom Like Silence",
          "slug": "wisdom-like-silence",
          "aliases": [],
          "role": "Ship Mind",
          "summary": "A GSV that attempts to enforce a security lockdown on the Excession signal and is promptly excluded from the newly formed Core Group."
        },
        {
          "name": "Different Tan",
          "slug": "different-tan",
          "aliases": [],
          "role": "Ship Mind",
          "summary": "A GCU that proposes the Not Invented Here act as incident coordinator and that Fate Amenable To Change and Ethics Gradient be invited into the group."
        },
        {
          "name": "No Fixed Abode",
          "slug": "no-fixed-abode",
          "aliases": [],
          "role": "Ship Mind",
          "summary": "A Sabbaticaler GSV that proposes a calculated delay in releasing information about the Excession to gain a strategic advantage."
        },
        {
          "name": "Lellius",
          "slug": "lellius",
          "aliases": [],
          "role": "Vice-consul",
          "summary": "A vice-consul who bets on races and listens to Leffid's information about the hidden signal, intending to trade it."
        },
        {
          "name": "Zreyn Tramow",
          "slug": "zreyn-tramow",
          "aliases": [
            "Honorary Contact Fleet Captain Gart-Kepilesa Zreyn Enhoff Tramow Afayaf dam Niskat-west"
          ],
          "role": "Ship Captain",
          "summary": "The ancient, Stored captain of the 'Problem Child', whom Genar-Hofoen is traveling to interrogate."
        },
        {
          "name": "Not Invented Here",
          "slug": "not-invented-here",
          "aliases": [],
          "role": "Medium Systems Vehicle",
          "summary": "An ancient, nearly two-millennia-old former GSV suspected of being part of a shadowy cabal of older Minds."
        },
        {
          "name": "Gestra",
          "slug": "gestra",
          "aliases": [],
          "role": "Hermit/Caretaker",
          "summary": "A nervous, socially anxious man living in an accommodation unit near warship hangars, who is suddenly attacked and killed when his drone companion is disabled."
        },
        {
          "name": "Drone",
          "slug": "drone",
          "aliases": [],
          "role": "Companion",
          "summary": "A drone accompanying Gestra that attempts to reassure him about incoming visitors before being abruptly disabled by an attack."
        },
        {
          "name": "Gruda Aplam",
          "slug": "gruda-aplam",
          "aliases": [
            "Old drone"
          ],
          "role": "Contact veteran",
          "summary": "An old drone and Contact veteran conversing with Tishlin."
        },
        {
          "name": "Steely Glint",
          "slug": "steely-glint",
          "aliases": [],
          "role": "GCV",
          "summary": "A GCV that defensively argues with Serious Callers Only, denying any private deal regarding the Sleeper Service's unexpected race toward the Excession."
        },
        {
          "name": "Yawning Angel",
          "slug": "yawning-angel",
          "aliases": [],
          "role": "GSV",
          "summary": "A GSV tasked with shadowing the Sleeper Service, which watches in horror as the larger ship dumps its cargo and accelerates away at unprecedented speeds."
        },
        {
          "name": "Charitable View",
          "slug": "charitable-view",
          "aliases": [],
          "role": "Cliff class superlifter",
          "summary": "A fast superlifter deployed by the Yawning Angel to pursue the Sleeper Service, but which is eventually outpaced."
        },
        {
          "name": "Dajeil lookalike",
          "slug": "dajeil-lookalike",
          "aliases": [],
          "role": "Mysterious woman",
          "summary": "A woman Genar-Hofoen spots on Tier who closely resembles Dajeil Gelian but has a different voice; she rescues him with a floating cloak during the street chaos."
        },
        {
          "name": "Flin",
          "slug": "flin",
          "aliases": [],
          "role": "Companion",
          "summary": "Genar-Hofoen's companion on Tier who is knocked unconscious during their escape from the pondrosaur."
        },
        {
          "name": "Mistretl driver",
          "slug": "mistretl-driver",
          "aliases": [],
          "role": "Driver",
          "summary": "The driver of the ysner-drawn trap that Genar-Hofoen and Flin are riding in."
        }
      ],
      "frameworks_mapped": [
        "Protocol Fiction Mapping",
        "Actantial Model",
        "Todorov's Equilibrium",
        "The Freytag Pyramid",
        "Propp's Morphology",
        "Genette's Narrative",
        "The Monomyth",
        "Dan Harmon",
        "Save the Cat",
        "Kishōtenketsu",
        "The Three-Act Structure",
        "Lévi-Strauss's Binary Oppositions",
        "Cognitive Estrangement",
        "Bakhtin's Chronotope",
        "Aristotelian Poetics",
        "Jungian Archetypal Analysis",
        "Genette's Transtextuality"
      ],
      "score_reliability": {
        "state": "contested",
        "threshold": 0.2,
        "runs_total": 5,
        "versions_compared": [
          "2.5"
        ],
        "max_spread": 0.25,
        "contested": [
          {
            "axis": "time_linearity",
            "version": "2.5",
            "spread": 0.25,
            "low": {
              "label": "NTSMR-2.5-balanced-glm-5+deepseek-v3.2",
              "model": "balanced-routing",
              "effort": "?",
              "value": 0.3
            },
            "high": {
              "label": "NTSMR-2.5-claude-sonnet-4-6-low",
              "model": "claude-sonnet-4-6",
              "effort": "low",
              "value": 0.55
            }
          }
        ]
      }
    },
    {
      "slug": "ted_chiang_exhalation",
      "title": "Exhalation",
      "author": "Ted Chiang",
      "year": 2019,
      "medium": "collection",
      "genre_tags": [
        "science fiction",
        "philosophical sf"
      ],
      "tropes": [],
      "quadrant_scores": {
        "time_linearity": 0.2,
        "pacing_velocity": 0.75,
        "threat_scale": 0.9,
        "protagonist_fate": 0.55,
        "conflict_style": 0.8,
        "price_type": 0.8
      },
      "baseline_quadrant_scores": {
        "time_linearity": 0.9,
        "pacing_velocity": 0.85,
        "threat_scale": 0.75,
        "protagonist_fate": 0.85,
        "conflict_style": 0.8,
        "price_type": 0.95
      },
      "provenance": {
        "analysis_run": "NTSMR-2.5-claude-sonnet-4-6-low",
        "analysis_body_sha256": "196d026cf44eabd4804190b455f15d97b918d73d64c73cd09c8db18d113d2eb4",
        "synthesis": {
          "path": "nartopo-tools/artifacts/ted_chiang_exhalation.md.ntsmr-2-5-claude-sonnet-4-6-low.synthesis.json",
          "sha256": "b2401622a97283775a68f1b40a6ce4d0556bdd14e62ba53c97603dff4b01d868"
        },
        "report": {
          "path": "nartopo-tools/artifacts/ted_chiang_exhalation.md.ntsmr-2-5-claude-sonnet-4-6-low.report.json",
          "sha256": "d60701574be458f190e83e06c8780ecd2826240e9d9cf344ce3f1d9aad9ce3d8"
        },
        "source": {
          "path": "Ted Chiang/Exhalation.txt",
          "sha256": "544886bc79db0baa4cb258cfe068a070f4e2546a447331d2a7864176deaafe3a",
          "digest_observed_at": "2026-09-09",
          "digest_at_analysis_run": null,
          "edition": null,
          "edition_status": "unresolved"
        },
        "pipeline_revision_at_run": null,
        "verification": {
          "source": "unverified",
          "human_review": "unreviewed",
          "bibliography": "unverified"
        },
        "issues": [],
        "todorov_status": "recovered-from-synthesis",
        "work_identity": {
          "title": "Exhalation",
          "author": "Ted Chiang",
          "year": 2019
        }
      },
      "ntsmr": {
        "version": "2.5",
        "primary_run_label": "NTSMR-2.5-claude-sonnet-4-6-low",
        "runs": {
          "NTSMR-2.3-gemini-3.1-pro-preview": {
            "pipeline_version": "2.3",
            "backend": "gemini",
            "model": "gemini-3.1-pro-preview",
            "scores": {
              "time_linearity": 0.9,
              "pacing_velocity": 0.95,
              "threat_scale": 0.85,
              "protagonist_fate": 0.9,
              "conflict_style": 0.9,
              "price_type": 0.95
            },
            "score_space": "site-v1"
          },
          "NTSMR-2.3-claude-sonnet-4-6-low": {
            "pipeline_version": "2.3",
            "backend": "claude",
            "model": "claude-sonnet-4-6",
            "scores": {
              "time_linearity": 0.85,
              "pacing_velocity": 0.78,
              "threat_scale": 0.72,
              "protagonist_fate": 0.65,
              "conflict_style": 0.82,
              "price_type": 0.88
            },
            "score_space": "site-v1",
            "reasoning_effort": "low"
          },
          "NTSMR-2.4-claude-sonnet-4-6-low": {
            "pipeline_version": "2.4",
            "backend": "claude",
            "model": "claude-sonnet-4-6",
            "scores": {
              "time_linearity": 0.75,
              "pacing_velocity": 0.7,
              "threat_scale": 0.55,
              "protagonist_fate": 0.55,
              "conflict_style": 0.8,
              "price_type": 0.75
            },
            "score_space": "site-v1",
            "reasoning_effort": "low"
          },
          "NTSMR-2.5-claude-sonnet-4-6-low": {
            "pipeline_version": "2.5",
            "backend": "claude",
            "model": "claude-sonnet-4-6",
            "scores": {
              "time_linearity": 0.2,
              "pacing_velocity": 0.75,
              "threat_scale": 0.9,
              "protagonist_fate": 0.55,
              "conflict_style": 0.8,
              "price_type": 0.8
            },
            "score_space": "site-v1",
            "reasoning_effort": "low"
          },
          "NTSMR-2.5-gemini-3.1-pro-preview": {
            "pipeline_version": "2.5",
            "backend": "gemini",
            "model": "gemini-3.1-pro-preview",
            "scores": {
              "time_linearity": 0.2,
              "pacing_velocity": 0.75,
              "threat_scale": 0.9,
              "protagonist_fate": 0.55,
              "conflict_style": 0.8,
              "price_type": 0.8
            },
            "score_space": "site-v1"
          },
          "NTSMR-2.5-minimax/minimax-m2.5": {
            "pipeline_version": "2.5",
            "backend": "openrouter",
            "model": "minimax/minimax-m2.5",
            "scores": {
              "time_linearity": 0.25,
              "pacing_velocity": 0.75,
              "threat_scale": 0.95,
              "protagonist_fate": 0.7,
              "conflict_style": 0.8,
              "price_type": 0.85
            },
            "score_space": "site-v1"
          },
          "NTSMR-2.5-qwen/qwen3.5-plus-02-15": {
            "pipeline_version": "2.5",
            "backend": "openrouter",
            "model": "qwen/qwen3.5-plus-02-15",
            "scores": {
              "time_linearity": 0.25,
              "pacing_velocity": 0.75,
              "threat_scale": 0.95,
              "protagonist_fate": 0.6,
              "conflict_style": 0.85,
              "price_type": 0.85
            },
            "score_space": "site-v1"
          },
          "NTSMR-2.5-deepseek/deepseek-v3.2": {
            "pipeline_version": "2.5",
            "backend": "openrouter",
            "model": "deepseek/deepseek-v3.2",
            "scores": {
              "time_linearity": 0.25,
              "pacing_velocity": 0.75,
              "threat_scale": 0.95,
              "protagonist_fate": 0.6,
              "conflict_style": 0.85,
              "price_type": 0.85
            },
            "score_space": "site-v1"
          },
          "NTSMR-2.5-qwen/qwen3.5-397b-a17b": {
            "pipeline_version": "2.5",
            "backend": "openrouter",
            "model": "qwen/qwen3.5-397b-a17b",
            "scores": {
              "time_linearity": 0.25,
              "pacing_velocity": 0.75,
              "threat_scale": 0.95,
              "protagonist_fate": 0.65,
              "conflict_style": 0.85,
              "price_type": 0.85
            },
            "score_space": "site-v1"
          },
          "NTSMR-2.5-z-ai/glm-4.7": {
            "pipeline_version": "2.5",
            "backend": "openrouter",
            "model": "z-ai/glm-4.7",
            "scores": {
              "time_linearity": 0.25,
              "pacing_velocity": 0.75,
              "threat_scale": 0.95,
              "protagonist_fate": 0.6,
              "conflict_style": 0.8,
              "price_type": 0.85
            },
            "score_space": "site-v1"
          },
          "NTSMR-2.5-moonshotai/kimi-k2.5": {
            "pipeline_version": "2.5",
            "backend": "openrouter",
            "model": "moonshotai/kimi-k2.5",
            "scores": {
              "time_linearity": 0.25,
              "pacing_velocity": 0.75,
              "threat_scale": 0.95,
              "protagonist_fate": 0.6,
              "conflict_style": 0.8,
              "price_type": 0.85
            },
            "score_space": "site-v1"
          },
          "NTSMR-2.5-z-ai/glm-5": {
            "pipeline_version": "2.5",
            "backend": "openrouter",
            "model": "z-ai/glm-5",
            "scores": {
              "time_linearity": 0.25,
              "pacing_velocity": 0.8,
              "threat_scale": 0.95,
              "protagonist_fate": 0.75,
              "conflict_style": 0.85,
              "price_type": 0.8
            },
            "score_space": "site-v1"
          },
          "NTSMR-2.5-balanced-glm-5+deepseek-v3.2": {
            "pipeline_version": "2.5",
            "backend": "openrouter",
            "model": "balanced-routing",
            "scores": {
              "time_linearity": 0.25,
              "pacing_velocity": 0.75,
              "threat_scale": 0.95,
              "protagonist_fate": 0.65,
              "conflict_style": 0.85,
              "price_type": 0.85
            },
            "score_space": "site-v1",
            "score_only": true,
            "source_run_label": "NTSMR-2.5-claude-sonnet-4-6-low"
          }
        }
      },
      "todorov_stages": {
        "equilibrium": "A stable pneumatic civilization exists in which beings replace their lungs daily at communal filling stations, drawing pressurized air from a vast underground reservoir. Social life, cognition, and physical existence are sustained by an assumed inexhaustible pressure differential between the reservoir and atmosphere. The narrator is an anatomist operating within this unquestioned order.",
        "disruption": "Reports accumulate across multiple districts that public criers are finishing their annual recitations after the turret clocks strike the hour, with clocks running on unrelated mechanisms ruling out common mechanical fault. A mercury-clock district confirms the discrepancy, giving the narrator a darker suspicion that compels him to act.",
        "recognition": "Through auto-dissection, the narrator discovers that memory and thought are patterns of pressurized argon flowing through gold-leaf lattices — air is the medium of cognition. This immediately illuminates the anomaly: brains are slowing because atmospheric pressure is rising, making air flow less forcefully. He then deduces the sealed-universe cosmology: the world is a finite chromium chamber whose pressure differential is irreversibly diminishing toward equilibrium, and all activity including thought accelerates its approach.",
        "repair": "The discovery becomes public, triggering panic and the emergence of the Reversalists, who attempt to engineer compression engines to restore reservoir pressure. Every proposed mechanism — air-powered, spring-wound, or weight-driven — is shown to consume more pressure differential than it produces, and the narrator concludes equalization is inexorable.",
        "new_equilibrium": "No restoration is possible. The narrator projects a terminal sequence: weakening limbs, frozen bodies, thoughts briefly persisting in immobile forms, then final cessation of all motion and cognition. He extends this thermodynamic fate to all universes, accepts it, and addresses a future explorer through his engraved copper sheets — arguing that the act of reading re-instantiates his pattern and that contemplating existence while it lasts is the only worthy response to universal finitude."
      },
      "characters": [
        {
          "name": "Nat",
          "slug": "nat",
          "aliases": [],
          "role": "Protagonist / Store Employee / Conspirator",
          "summary": "A store employee who originally conspires with Morrow to hustle people out of their prisms. She attends a support group under false pretenses to con Lyle, but eventually takes over the prism sale herself after Morrow is murdered."
        },
        {
          "name": "Lyle",
          "slug": "lyle",
          "aliases": [],
          "role": "Support Group Member",
          "summary": "A support group member who struggles with intense envy over his parallel self's success and romantic relationship. He eventually decides to give up his prism after realizing he can never have a healthy relationship with his paraself."
        },
        {
          "name": "Dana",
          "slug": "dana",
          "aliases": [],
          "role": "Therapist / Support Group Facilitator",
          "summary": "A young therapist who skillfully facilitates the prism support group, guiding members like Lyle and Jorge to take responsibility for their actions and cope with their parallel anxieties."
        },
        {
          "name": "Jorge",
          "slug": "jorge",
          "aliases": [],
          "role": "Support Group Member",
          "summary": "A support group member who punctured his manager's tires and uses his parallel selves' non-violent behavior to avoid taking personal responsibility, until Dana guides him to confess to his wife."
        },
        {
          "name": "Morrow",
          "slug": "morrow",
          "aliases": [],
          "role": "Store Manager / Scammer",
          "summary": "Nat's ambitious manager at SelfTalk who runs scams on prism users, tracking down accident victims and dying patients to monetize their grief. He is ultimately shot and killed by the unstable son of one of his marks."
        },
        {
          "name": "Ornella",
          "slug": "ornella",
          "aliases": [],
          "role": "Personal Assistant",
          "summary": "Scott Otsuka's personal assistant who filters offers from prism brokers, seeking a specific timeline where parallel Scott does not exist so that her grieving boss can communicate with a parallel version of his dead husband without feeling like an intruder."
        },
        {
          "name": "Ana Alvarado",
          "slug": "ana-alvarado",
          "aliases": [
            "Ana"
          ],
          "role": "Digient Trainer / Tester",
          "summary": "A dedicated former animal trainer and current software tester who fiercely advocates for the digients' rights, education, and port to Real Space, prioritizing their well-being over corporate profits or convenience."
        },
        {
          "name": "Robyn",
          "slug": "robyn",
          "aliases": [],
          "role": "Blue Gamma Employee",
          "summary": "A Blue Gamma employee who introduces Ana to the digients in the virtual day-care and assists in their testing and development."
        },
        {
          "name": "Derek Brooks",
          "slug": "derek-brooks",
          "aliases": [
            "Derek"
          ],
          "role": "Digient owner and former Blue Gamma employee",
          "summary": "An animator and avatar designer at Blue Gamma who creates the digital bodies for the digients. He passionately advocates for animal-like avatars over robotic ones to ensure owners form emotional bonds with the digients."
        },
        {
          "name": "Jax",
          "slug": "jax",
          "aliases": [],
          "role": "Neuroblast digient",
          "summary": "Ana's digient, who develops a complex personality, a desire to earn money to help his owner, and an affinity for dancing in his physical robot body, but struggles with the isolation of the obsolete Data Earth."
        },
        {
          "name": "Mahesh",
          "slug": "mahesh",
          "aliases": [],
          "role": "Blue Gamma employee",
          "summary": "A colleague of Ana and Robyn who jokes about the potential property damage of digients in physical robot bodies and coordinates their agility tests."
        },
        {
          "name": "Marco",
          "slug": "marco",
          "aliases": [],
          "role": "Neuroblast digient",
          "summary": "One of Derek's two digients, who frequently quarrels with Polo and develops an interest in game dramas."
        },
        {
          "name": "Polo",
          "slug": "polo",
          "aliases": [],
          "role": "Neuroblast digient",
          "summary": "Derek's other digient, who demands that Derek 'fix' a severe fight he has with Marco."
        },
        {
          "name": "Wendy",
          "slug": "wendy",
          "aliases": [],
          "role": "Derek's wife",
          "summary": "Derek's spouse, who resents the time and attention he spends on raising Marco and Polo."
        },
        {
          "name": "Kyle",
          "slug": "kyle",
          "aliases": [],
          "role": "Ana's partner",
          "summary": "Ana's romantic partner, who disagrees with her regarding the digients, believing they should accept a corporate offer to modify the digients' behavior."
        },
        {
          "name": "Enrique Beltran",
          "slug": "enrique-beltran",
          "aliases": [],
          "role": "Forum user",
          "summary": "An individual reporting news on Daesan Digital's security upgrade to the Data Earth platform."
        },
        {
          "name": "Maria Zheng",
          "slug": "maria-zheng",
          "aliases": [],
          "role": "Forum user",
          "summary": "A skeptical user on the forums who questions the value and feasibility of giving Neuroblast digients a liberal arts education."
        },
        {
          "name": "Lisma Gunawan",
          "slug": "lisma-gunawan",
          "aliases": [],
          "role": "Forum user",
          "summary": "A user setting up a private, approved-code-only island to protect digients from griefers."
        },
        {
          "name": "Stuart Gust",
          "slug": "stuart-gust",
          "aliases": [],
          "role": "Forum user",
          "summary": "A user who suggests giving the Neuroblast digients a liberal arts education to uncover their aptitudes."
        },
        {
          "name": "Drayta",
          "slug": "drayta",
          "aliases": [],
          "role": "Sophonce digient",
          "summary": "A single-minded, puzzle-obsessed digient model used by gamers to complete in-game tasks."
        },
        {
          "name": "Dr. Morrell",
          "slug": "dr-morrell",
          "aliases": [],
          "role": "Archaeologist",
          "summary": "An archaeologist with Boston's Museum of Natural Philosophy who discovers Mina stealing relics and experiences a crisis regarding the purpose of science and humanity."
        },
        {
          "name": "Dr. Nathan McCullough",
          "slug": "dr-nathan-mccullough",
          "aliases": [
            "Nathan",
            "Mina",
            "Mr. Dahl",
            "Martin"
          ],
          "role": "Thief / Believer",
          "summary": "A scientist who discovered wave oscillations within the Sun and suffers a severe crisis of faith after a confounding discovery."
        },
        {
          "name": "Jijingi",
          "slug": "jijingi",
          "aliases": [],
          "role": "Scribe / Student",
          "summary": "A Tiv scribe who initially trusts written European records over tribal oral tradition before being corrected by Sabe."
        },
        {
          "name": "Moseby",
          "slug": "moseby",
          "aliases": [],
          "role": "Missionary",
          "summary": "A European who discusses Tiv clan lineage with Jijingi and introduces the concept of written records to resolve disputes."
        },
        {
          "name": "Reiss",
          "slug": "reiss",
          "aliases": [],
          "role": "Researcher",
          "summary": "A European woman who visits Tivland to record and type their stories and cultural practices."
        },
        {
          "name": "Kokwa",
          "slug": "kokwa",
          "aliases": [],
          "role": "Storyteller",
          "summary": "The best storyteller in the village whose performative storytelling style cannot be fully captured by writing."
        },
        {
          "name": "Sabe",
          "slug": "sabe",
          "aliases": [],
          "role": "Tiv Elder / Chief",
          "summary": "An even-tempered elder of the Shangev clan who judges disputes based on what is right for the community rather than what is written on paper."
        },
        {
          "name": "Nicole",
          "slug": "nicole",
          "aliases": [],
          "role": "Daughter",
          "summary": "The narrator's daughter, whose college graduation video he obsessively reviews to ascertain her true feelings toward him."
        },
        {
          "name": "Narrator (Remem User)",
          "slug": "narrator-remem-user",
          "aliases": [
            "Puerto Rican Parrot"
          ],
          "role": "Narrator and father",
          "summary": "A father who uses the Remem digital memory prosthesis to review his past interactions with his daughter and reevaluate his own flawed organic memories."
        },
        {
          "name": "Edmund Dacey",
          "slug": "edmund-dacey",
          "aliases": [],
          "role": "Father of Edmund",
          "summary": "Lionel Dacey's child, who suffers from an inverted form of psychosocial dwarfism caused by the sudden deprivation of his mechanical nanny."
        },
        {
          "name": "Dr. Thackery Lambshead",
          "slug": "dr-thackery-lambshead",
          "aliases": [],
          "role": "Consulting Doctor",
          "summary": "A physician at the Brighton Institute who correctly diagnoses the cause of Edmund Dacey's stunted growth."
        },
        {
          "name": "Bashaarat",
          "slug": "bashaarat",
          "aliases": [],
          "role": "Alchemist and Shopkeeper",
          "summary": "A learned man in Baghdad who built a metal hoop capable of reaching across time."
        },
        {
          "name": "Fuwaad ibn Abbas",
          "slug": "fuwaad-ibn-abbas",
          "aliases": [
            "My lord",
            "Narrator"
          ],
          "role": "Traveler / Narrator",
          "summary": "A traveler in Baghdad to whom Bashaarat demonstrates the time-traveling hoop."
        }
      ],
      "frameworks_mapped": [
        "Protocol Fiction Mapping",
        "Actantial Model",
        "Todorov's Equilibrium",
        "The Freytag Pyramid",
        "Propp's Morphology",
        "Genette's Narrative",
        "The Monomyth",
        "Dan Harmon",
        "Save the Cat",
        "Kishōtenketsu",
        "The Three-Act Structure"
      ],
      "score_reliability": {
        "state": "contested",
        "threshold": 0.2,
        "runs_total": 13,
        "versions_compared": [
          "2.5"
        ],
        "max_spread": 0.2,
        "contested": [
          {
            "axis": "protagonist_fate",
            "version": "2.5",
            "spread": 0.2,
            "low": {
              "label": "NTSMR-2.5-claude-sonnet-4-6-low",
              "model": "claude-sonnet-4-6",
              "effort": "low",
              "value": 0.55
            },
            "high": {
              "label": "NTSMR-2.5-z-ai/glm-5",
              "model": "z-ai/glm-5",
              "effort": "?",
              "value": 0.75
            }
          }
        ]
      }
    },
    {
      "slug": "ted_chiang_exhalation_story",
      "title": "Exhalation",
      "author": "Ted Chiang",
      "year": 2019,
      "medium": "short_story",
      "genre_tags": [],
      "tropes": [],
      "quadrant_scores": {
        "time_linearity": 0.25,
        "pacing_velocity": 0.78,
        "threat_scale": 0.95,
        "protagonist_fate": 0.58,
        "conflict_style": 0.88,
        "price_type": 0.85
      },
      "provenance": {
        "analysis_run": "NTSMR-2.5-claude-sonnet-4-6-low",
        "analysis_body_sha256": "829142178c1476ed4278d001a1ec5af145861b5d56724de18cbe445c180f91dc",
        "synthesis": {
          "path": "nartopo-tools/artifacts/ted_chiang_exhalation_story.md.ntsmr-2-5-claude-sonnet-4-6-low.synthesis.json",
          "sha256": "068def35843812f4fefa5824f6e47196c1b794a43f0495ba1da6a1dcd49fc30f"
        },
        "report": {
          "path": "nartopo-tools/artifacts/ted_chiang_exhalation_story.md.ntsmr-2-5-claude-sonnet-4-6-low.report.json",
          "sha256": "d37fd067f79e18e7be82bb75b2e137327334a592e2359909342f8a1093c82005"
        },
        "source": {
          "path": "Ted Chiang/Exhalation.txt",
          "sha256": "544886bc79db0baa4cb258cfe068a070f4e2546a447331d2a7864176deaafe3a",
          "digest_observed_at": "2026-09-09",
          "digest_at_analysis_run": null,
          "edition": null,
          "edition_status": "unresolved"
        },
        "pipeline_revision_at_run": null,
        "verification": {
          "source": "unverified",
          "human_review": "unreviewed",
          "bibliography": "unverified"
        },
        "issues": [],
        "todorov_status": "recovered-from-synthesis",
        "work_identity": {
          "title": "Exhalation",
          "author": "Ted Chiang",
          "year": 2019
        }
      },
      "ntsmr": {
        "version": "2.5",
        "primary_run_label": "NTSMR-2.5-claude-sonnet-4-6-low",
        "runs": {
          "NTSMR-2.3-gemini-3.1-pro-preview": {
            "pipeline_version": "2.3",
            "backend": "gemini",
            "model": "gemini-3.1-pro-preview",
            "scores": {
              "time_linearity": 0.3,
              "pacing_velocity": 0.9,
              "threat_scale": 1,
              "protagonist_fate": 0.9,
              "conflict_style": 0.9,
              "price_type": 0.9
            },
            "score_space": "site-v1"
          },
          "NTSMR-2.3-claude-sonnet-4-6-low": {
            "pipeline_version": "2.3",
            "backend": "claude",
            "model": "claude-sonnet-4-6",
            "scores": {
              "time_linearity": 0.3,
              "pacing_velocity": 0.85,
              "threat_scale": 0.9,
              "protagonist_fate": 0.75,
              "conflict_style": 0.85,
              "price_type": 0.8
            },
            "score_space": "site-v1",
            "reasoning_effort": "low"
          },
          "NTSMR-2.4-claude-sonnet-4-6-low": {
            "pipeline_version": "2.4",
            "backend": "claude",
            "model": "claude-sonnet-4-6",
            "scores": {
              "time_linearity": 0.25,
              "pacing_velocity": 0.75,
              "threat_scale": 0.9,
              "protagonist_fate": 0.55,
              "conflict_style": 0.8,
              "price_type": 0.85
            },
            "score_space": "site-v1",
            "reasoning_effort": "low"
          },
          "NTSMR-2.5-claude-sonnet-4-6-low": {
            "pipeline_version": "2.5",
            "backend": "claude",
            "model": "claude-sonnet-4-6",
            "scores": {
              "time_linearity": 0.25,
              "pacing_velocity": 0.78,
              "threat_scale": 0.95,
              "protagonist_fate": 0.58,
              "conflict_style": 0.88,
              "price_type": 0.85
            },
            "score_space": "site-v1",
            "reasoning_effort": "low"
          },
          "NTSMR-2.5-balanced-glm-5+deepseek-v3.2": {
            "pipeline_version": "2.5",
            "backend": "openrouter",
            "model": "balanced-routing",
            "scores": {
              "time_linearity": 0.25,
              "pacing_velocity": 0.8,
              "threat_scale": 0.95,
              "protagonist_fate": 0.65,
              "conflict_style": 0.85,
              "price_type": 0.85
            },
            "score_space": "site-v1",
            "score_only": true,
            "source_run_label": "NTSMR-2.5-claude-sonnet-4-6-low"
          }
        }
      },
      "todorov_stages": {
        "equilibrium": "A civilization of pneumatic beings sustains itself through communal lung-exchange at filling stations, assuming air pressure is the self-evident and inexhaustible source of life. The narrator pursues anatomical research into the nature of memory within this stable, socially integrated world.",
        "disruption": "Rumors spread that public criers are finishing their annual recitations after the turret clocks have already struck the hour — an anomaly that resists mechanical explanation and eventually compels the narrator to undertake the auto-dissection experiment.",
        "recognition": "During the auto-dissection, the narrator discovers that consciousness is a pattern of flowing argon currents in gold-leaf lattices, not a mechanical process. This immediately reveals that slowing cognition means the pressure differential is decreasing, and that the universe is a sealed dome driving irreversible equalization — all life depends on a finite, dwindling pressure gradient.",
        "repair": "The narrator reassembles themselves and publishes the findings. Societally, the Reversalists attempt to build compression engines to restore atmospheric pressure, but every available power source ultimately derives from the same finite differential, making reversal thermodynamically impossible.",
        "new_equilibrium": "The civilization moves toward inevitable stillness: weakening limbs, frozen bodies, and a final conscious thought before absolute pressure equilibrium ends all life and time. The narrator, writing on copper sheets addressed to a hypothetical future explorer, reframes this ending as a resurrection through reading — the patterns of thought formed in the reader's mind imitate those of the narrator, allowing the civilization to live again in the explorer's imagination."
      },
      "characters": [
        {
          "name": "The Narrator",
          "slug": "the-narrator",
          "aliases": [
            "Anatomist"
          ],
          "role": "Scientist and author of the engraved account",
          "summary": "A student of anatomy who performs a dangerous auto-dissection to study the brain, discovering that consciousness relies on air pressure patterns and deducing the inevitable end of their universe."
        },
        {
          "name": "The Public Crier",
          "slug": "the-public-crier",
          "aliases": [],
          "role": "District official",
          "summary": "A local official who unwittingly initiates the narrator's investigation by mentioning that the turret clock struck the hour before his annual new year's recital was finished."
        },
        {
          "name": "Anatomy Lecturer",
          "slug": "anatomy-lecturer",
          "aliases": [],
          "role": "Teacher",
          "summary": "An anatomist from a century ago whose demonstration on a severed mechanical arm profoundly impacted the narrator's early studies."
        },
        {
          "name": "Colleague",
          "slug": "colleague",
          "aliases": [],
          "role": "Safety monitor",
          "summary": "An unnamed associate scheduled to visit the narrator's laboratory six days into the auto-dissection as a safety precaution."
        },
        {
          "name": "The Reversalists",
          "slug": "the-reversalists",
          "aliases": [],
          "role": "Sect of mechanicians",
          "summary": "A group that futilely attempts to build compression engines to reverse the atmospheric equalization, unaware that their machines consume more differential pressure than they create."
        },
        {
          "name": "The Explorer",
          "slug": "the-explorer",
          "aliases": [],
          "role": "Hypothetical addressee",
          "summary": "A future being from a neighboring universe whom the narrator hopes will one day breach the chromium wall, discover the engraved copper sheets, and recreate the narrator's thoughts by reading them."
        }
      ],
      "frameworks_mapped": [
        "Protocol Fiction Mapping",
        "Actantial Model",
        "Todorov's Equilibrium",
        "The Freytag Pyramid",
        "Propp's Morphology",
        "Genette's Narrative",
        "The Monomyth",
        "Dan Harmon",
        "Save the Cat",
        "Kishōtenketsu",
        "The Three-Act Structure",
        "Lévi-Strauss's Binary Oppositions",
        "Cognitive Estrangement",
        "Bakhtin's Chronotope",
        "Aristotelian Poetics",
        "Jungian Archetypal Analysis",
        "Genette's Transtextuality"
      ],
      "score_reliability": {
        "state": "replicated-agree",
        "threshold": 0.2,
        "runs_total": 5,
        "versions_compared": [
          "2.5"
        ],
        "max_spread": 0.07,
        "contested": []
      }
    },
    {
      "slug": "jorge_luis_borges_ficciones",
      "title": "Ficciones (Tlön, Uqbar, Orbis Tertius)",
      "author": "Jorge Luis Borges",
      "year": 1944,
      "medium": "collection",
      "genre_tags": [
        "literary fiction",
        "magical realism"
      ],
      "tropes": [],
      "quadrant_scores": {
        "time_linearity": 0.75,
        "pacing_velocity": 0.82,
        "threat_scale": 0.92,
        "protagonist_fate": 0.78,
        "conflict_style": 0.88,
        "price_type": 0.87
      },
      "baseline_quadrant_scores": {
        "time_linearity": 0.85,
        "pacing_velocity": 0.95,
        "threat_scale": 1,
        "protagonist_fate": 0.95,
        "conflict_style": 0.9,
        "price_type": 1
      },
      "provenance": {
        "analysis_run": "NTSMR-2.5-claude-sonnet-4-6-low",
        "analysis_body_sha256": "e614c007270853b735e2c51b9fd3ab1e6e95d53a1315c2519e1b6efd8c57ea89",
        "synthesis": {
          "path": "nartopo-tools/artifacts/jorge_luis_borges_ficciones.md.ntsmr-2-5-claude-sonnet-4-6-low.synthesis.json",
          "sha256": "308aa9ce0766b8d7e8f04294bad018423f67c389de6568d86e32bd247a69e0c5"
        },
        "report": {
          "path": "nartopo-tools/artifacts/jorge_luis_borges_ficciones.md.ntsmr-2-5-claude-sonnet-4-6-low.report.json",
          "sha256": "192f27ff188ba5358ae951237033190bd4b8ae023526ed6688d957a83ed54671"
        },
        "source": {
          "path": "Jorge Luis Borges/Ficciones (Tlön, Uqbar, Orbis Tertius).txt",
          "sha256": "b690cd8095962c49e40340cab4e3f04fd060a3b525df52b501d41741cf38db1a",
          "digest_observed_at": "2026-09-09",
          "digest_at_analysis_run": null,
          "edition": null,
          "edition_status": "unresolved"
        },
        "pipeline_revision_at_run": null,
        "verification": {
          "source": "unverified",
          "human_review": "unreviewed",
          "bibliography": "unverified"
        },
        "issues": [],
        "todorov_status": "recovered-from-synthesis",
        "work_identity": {
          "title": "Ficciones (Tlön, Uqbar, Orbis Tertius)",
          "author": "Jorge Luis Borges",
          "year": 1944
        }
      },
      "ntsmr": {
        "version": "2.5",
        "primary_run_label": "NTSMR-2.5-claude-sonnet-4-6-low",
        "runs": {
          "NTSMR-2.3-gemini-3.1-pro-preview": {
            "pipeline_version": "2.3",
            "backend": "gemini",
            "model": "gemini-3.1-pro-preview",
            "scores": {
              "time_linearity": 0.85,
              "pacing_velocity": 0.95,
              "threat_scale": 1,
              "protagonist_fate": 0.95,
              "conflict_style": 0.95,
              "price_type": 1
            },
            "score_space": "site-v1"
          },
          "NTSMR-2.3-claude-sonnet-4-6-low": {
            "pipeline_version": "2.3",
            "backend": "claude",
            "model": "claude-sonnet-4-6",
            "scores": {
              "time_linearity": 0.72,
              "pacing_velocity": 0.88,
              "threat_scale": 0.95,
              "protagonist_fate": 0.85,
              "conflict_style": 0.92,
              "price_type": 0.95
            },
            "score_space": "site-v1",
            "reasoning_effort": "low"
          },
          "NTSMR-2.4-claude-sonnet-4-6-low": {
            "pipeline_version": "2.4",
            "backend": "claude",
            "model": "claude-sonnet-4-6",
            "scores": {
              "time_linearity": 0.55,
              "pacing_velocity": 0.75,
              "threat_scale": 0.88,
              "protagonist_fate": 0.75,
              "conflict_style": 0.85,
              "price_type": 0.82
            },
            "score_space": "site-v1",
            "reasoning_effort": "low"
          },
          "NTSMR-2.5-claude-sonnet-4-6-low": {
            "pipeline_version": "2.5",
            "backend": "claude",
            "model": "claude-sonnet-4-6",
            "scores": {
              "time_linearity": 0.75,
              "pacing_velocity": 0.82,
              "threat_scale": 0.92,
              "protagonist_fate": 0.78,
              "conflict_style": 0.88,
              "price_type": 0.87
            },
            "score_space": "site-v1",
            "reasoning_effort": "low"
          },
          "NTSMR-2.5-minimax/minimax-m2.5": {
            "pipeline_version": "2.5",
            "backend": "openrouter",
            "model": "minimax/minimax-m2.5",
            "scores": {
              "time_linearity": 0.2,
              "pacing_velocity": 0.8,
              "threat_scale": 0.9,
              "protagonist_fate": 0.55,
              "conflict_style": 0.8,
              "price_type": 0.8
            },
            "score_space": "site-v1"
          },
          "NTSMR-2.5-qwen/qwen3.5-plus-02-15": {
            "pipeline_version": "2.5",
            "backend": "openrouter",
            "model": "qwen/qwen3.5-plus-02-15",
            "scores": {
              "time_linearity": 0.25,
              "pacing_velocity": 0.8,
              "threat_scale": 0.85,
              "protagonist_fate": 0.75,
              "conflict_style": 0.85,
              "price_type": 0.85
            },
            "score_space": "site-v1"
          },
          "NTSMR-2.5-qwen/qwen3.5-397b-a17b": {
            "pipeline_version": "2.5",
            "backend": "openrouter",
            "model": "qwen/qwen3.5-397b-a17b",
            "scores": {
              "time_linearity": 0.25,
              "pacing_velocity": 0.8,
              "threat_scale": 0.9,
              "protagonist_fate": 0.75,
              "conflict_style": 0.85,
              "price_type": 0.8
            },
            "score_space": "site-v1"
          },
          "NTSMR-2.5-deepseek/deepseek-v3.2": {
            "pipeline_version": "2.5",
            "backend": "openrouter",
            "model": "deepseek/deepseek-v3.2",
            "scores": {
              "time_linearity": 0.25,
              "pacing_velocity": 0.85,
              "threat_scale": 0.85,
              "protagonist_fate": 0.75,
              "conflict_style": 0.85,
              "price_type": 0.8
            },
            "score_space": "site-v1"
          },
          "NTSMR-2.5-z-ai/glm-4.7": {
            "pipeline_version": "2.5",
            "backend": "openrouter",
            "model": "z-ai/glm-4.7",
            "scores": {
              "time_linearity": 0.25,
              "pacing_velocity": 0.75,
              "threat_scale": 0.85,
              "protagonist_fate": 0.7,
              "conflict_style": 0.85,
              "price_type": 0.85
            },
            "score_space": "site-v1"
          },
          "NTSMR-2.5-moonshotai/kimi-k2.5": {
            "pipeline_version": "2.5",
            "backend": "openrouter",
            "model": "moonshotai/kimi-k2.5",
            "scores": {
              "time_linearity": 0.8,
              "pacing_velocity": 0.8,
              "threat_scale": 0.85,
              "protagonist_fate": 0.7,
              "conflict_style": 0.85,
              "price_type": 0.85
            },
            "score_space": "site-v1"
          },
          "NTSMR-2.5-z-ai/glm-5": {
            "pipeline_version": "2.5",
            "backend": "openrouter",
            "model": "z-ai/glm-5",
            "scores": {
              "time_linearity": 0.8,
              "pacing_velocity": 0.8,
              "threat_scale": 0.9,
              "protagonist_fate": 0.75,
              "conflict_style": 0.85,
              "price_type": 0.8
            },
            "score_space": "site-v1"
          },
          "NTSMR-2.5-balanced-glm-5+deepseek-v3.2": {
            "pipeline_version": "2.5",
            "backend": "openrouter",
            "model": "balanced-routing",
            "scores": {
              "time_linearity": 0.45,
              "pacing_velocity": 0.8,
              "threat_scale": 0.9,
              "protagonist_fate": 0.75,
              "conflict_style": 0.85,
              "price_type": 0.85
            },
            "score_space": "site-v1",
            "score_only": true,
            "source_run_label": "NTSMR-2.5-claude-sonnet-4-6-low"
          }
        }
      },
      "todorov_stages": {
        "equilibrium": "The narrator and Bioy Casares inhabit a stable Buenos Aires intellectual world grounded in verifiable reality — books exist in libraries, encyclopedias are reliable, geography is fixed. The late-night conversation at the quinta on Calle Gaona represents this ordinary epistemic order.",
        "disruption": "Bioy's copy of the Anglo-American Cyclopaedia contains four extra pages with an article on Uqbar that no other source can confirm, and the subsequent discovery of the Eleventh Volume of the First Encyclopaedia of Tlön — a coherent, methodical account of an entirely imaginary planet stamped 'Orbis Tertius' — ruptures the boundary between invented and real.",
        "recognition": "The narrator recognizes the full scope of the disruption when the 1941 manuscript letter by Gunnar Erfjord reveals the centuries-long conspiracy of Orbis Tertius, and when physical objects from Tlön — a compass inscribed with a Tlönian alphabet among the Princess of Fancigny-Lucinge's silverware, and a dense metal cone found on a dead young man in Uruguay — begin materializing in the real world.",
        "repair": "The worldwide exhumation and publication of the 40 volumes of the First Encyclopedia of Tlön in 1944 functions not as a repair by the narrator but as the mechanism of Tlön's final takeover — humanity, enchanted by Tlön's ordered rigour, embraces it. The narrator attempts no collective resistance; the 'repair' is absorbed into surrender.",
        "new_equilibrium": "Reality has yielded to Tlön: its language penetrates schools, its history displaces real history, its objects displace real objects across science and memory. The world will become Tlön within a century. The narrator's personal new equilibrium is quiet, defiant withdrawal — revising an unpublished Quevedian translation of Browne's Urn Burial in the Hotel Adrogué, indifferent to the transformation of reality."
      },
      "characters": [
        {
          "name": "Jorge Luis Borges",
          "slug": "jorge-luis-borges",
          "aliases": [
            "Narrator",
            "Yo"
          ],
          "role": "Narrator and investigator",
          "summary": "The author and narrator who discovers Uqbar through a mirror and an encyclopedia, remembers Herbert Ashe, experiences the physical intrusion of Tlön into the real world, and resigns himself to translating Sir Thomas Browne while the world becomes Tlön."
        },
        {
          "name": "Bioy Casares",
          "slug": "bioy-casares",
          "aliases": [
            "Bioy"
          ],
          "role": "Narrator's friend",
          "summary": "A friend of the narrator who initiates the discovery of Uqbar by recalling a quote about mirrors and copulation from a heresiarch, and later finds the article in a rogue volume of the Anglo-American Cyclopaedia."
        },
        {
          "name": "Carlos Mastronardi",
          "slug": "carlos-mastronardi",
          "aliases": [],
          "role": "Narrator's friend",
          "summary": "A friend who looks for the Anglo-American Cyclopaedia in a bookstore on Corrientes and Talcahuano but finds no mention of Uqbar in the standard volumes."
        },
        {
          "name": "Herbert Ashe",
          "slug": "herbert-ashe",
          "aliases": [
            "Ashe"
          ],
          "role": "Railway engineer",
          "summary": "A taciturn English railway engineer and acquaintance of the narrator's father, who receives the Eleventh Volume of the First Encyclopaedia of Tlön from Brazil shortly before dying of a ruptured aneurysm in 1937."
        },
        {
          "name": "Esmerdis el mago",
          "slug": "esmerdis-el-mago",
          "aliases": [
            "Esmerdis"
          ],
          "role": "Historical figure in Uqbar",
          "summary": "An impostor mentioned as a metaphor in the brief historical section of the Uqbar encyclopedia article."
        },
        {
          "name": "Silas Haslam",
          "slug": "silas-haslam",
          "aliases": [
            "Haslam"
          ],
          "role": "Author",
          "summary": "The author of the 'History of the Land Called Uqbar' (1874) and 'A General History of Labyrinths'."
        },
        {
          "name": "Johannes Valentinus Andrea",
          "slug": "johannes-valentinus-andrea",
          "aliases": [
            "Andrea"
          ],
          "role": "Theologian and author",
          "summary": "A 17th-century German theologian who wrote an early book on Uqbar and described the imaginary community of the Rosicrucians. He is noted as part of the initial benevolent secret society."
        },
        {
          "name": "Xul Solar",
          "slug": "xul-solar",
          "aliases": [],
          "role": "Translator",
          "summary": "Translates a poetic, nounless sentence from the Tlön language concisely into Spanish."
        },
        {
          "name": "Gunnar Erfjord",
          "slug": "gunnar-erfjord",
          "aliases": [],
          "role": "Author of a manuscript",
          "summary": "The author of a handwritten letter found in a book owned by Herbert Ashe, which details the history and origins of the secret society behind Tlön."
        },
        {
          "name": "Ezra Buckley",
          "slug": "ezra-buckley",
          "aliases": [
            "Buckley"
          ],
          "role": "Ascetic millionaire",
          "summary": "An ascetic, nihilistic American millionaire who funds the society's project on the condition that they invent an entire planet to demonstrate that mortal men can conceive a world without God."
        },
        {
          "name": "Princesa de Faucigny Lucinge",
          "slug": "princesa-de-faucigny-lucinge",
          "aliases": [
            "La princesa"
          ],
          "role": "Recipient of an artifact",
          "summary": "A princess who discovers an impossible, alien compass vibrating mysteriously among her silver tableware sent from Poitiers."
        },
        {
          "name": "Amorim",
          "slug": "amorim",
          "aliases": [],
          "role": "Narrator's companion",
          "summary": "The narrator's travel companion in Brazil who purchases a miraculously heavy Tlönic metal cone from a local in a rural tavern."
        }
      ],
      "frameworks_mapped": [
        "Protocol Fiction Mapping",
        "Actantial Model",
        "Todorov's Equilibrium",
        "The Freytag Pyramid",
        "Propp's Morphology",
        "Genette's Narrative",
        "The Monomyth",
        "Dan Harmon",
        "Save the Cat",
        "Kishōtenketsu",
        "The Three-Act Structure"
      ],
      "score_reliability": {
        "state": "contested",
        "threshold": 0.2,
        "runs_total": 12,
        "versions_compared": [
          "2.5"
        ],
        "max_spread": 0.6,
        "contested": [
          {
            "axis": "time_linearity",
            "version": "2.5",
            "spread": 0.6,
            "low": {
              "label": "NTSMR-2.5-minimax/minimax-m2.5",
              "model": "minimax/minimax-m2.5",
              "effort": "?",
              "value": 0.2
            },
            "high": {
              "label": "NTSMR-2.5-z-ai/glm-5",
              "model": "z-ai/glm-5",
              "effort": "?",
              "value": 0.8
            }
          },
          {
            "axis": "protagonist_fate",
            "version": "2.5",
            "spread": 0.23,
            "low": {
              "label": "NTSMR-2.5-minimax/minimax-m2.5",
              "model": "minimax/minimax-m2.5",
              "effort": "?",
              "value": 0.55
            },
            "high": {
              "label": "NTSMR-2.5-claude-sonnet-4-6-low",
              "model": "claude-sonnet-4-6",
              "effort": "low",
              "value": 0.78
            }
          }
        ]
      }
    },
    {
      "slug": "octavia_e_butler_fledgling",
      "title": "Fledgling",
      "author": "Octavia E. Butler",
      "year": 2005,
      "medium": "book",
      "genre_tags": [
        "science fiction",
        "afrofuturism"
      ],
      "tropes": [],
      "quadrant_scores": {
        "time_linearity": 0.22,
        "pacing_velocity": 0.58,
        "threat_scale": 0.55,
        "protagonist_fate": 0.38,
        "conflict_style": 0.52,
        "price_type": 0.55
      },
      "baseline_quadrant_scores": {
        "time_linearity": 0.2,
        "pacing_velocity": 0.6,
        "threat_scale": 0.8,
        "protagonist_fate": 0.4,
        "conflict_style": 0.7,
        "price_type": 0.8
      },
      "provenance": {
        "analysis_run": "NTSMR-2.5-claude-sonnet-4-6-low",
        "analysis_body_sha256": "0ea9a54ceb5e279e53a95e6c82a64c090023fa58b48c1fab56c1ec4ba09d09fc",
        "synthesis": {
          "path": "nartopo-tools/artifacts/octavia_e_butler_fledgling.md.ntsmr-2-5-claude-sonnet-4-6-low.synthesis.json",
          "sha256": "d2ede7ce889c3a45447ed393a0aa1c90f43f32d9498a18545c630fef55873d75"
        },
        "report": {
          "path": "nartopo-tools/artifacts/octavia_e_butler_fledgling.md.ntsmr-2-5-claude-sonnet-4-6-low.report.json",
          "sha256": "d8960091985775a8cb99453a8472e98da9acef23f2938f3e0196f2ca1e9fb7fe"
        },
        "source": {
          "path": "Octavia Butler/Fledgling (2005).txt",
          "sha256": "5c6d73f722e2725aa9cb4aa69aa43b9d12c4c5f6ed167e37aed4e6583408f180",
          "digest_observed_at": "2026-09-09",
          "digest_at_analysis_run": null,
          "edition": null,
          "edition_status": "unresolved"
        },
        "pipeline_revision_at_run": null,
        "verification": {
          "source": "unverified",
          "human_review": "unreviewed",
          "bibliography": "unverified"
        },
        "issues": [],
        "todorov_status": "recovered-from-synthesis",
        "work_identity": {
          "title": "Fledgling",
          "author": "Octavia E. Butler",
          "year": 2005
        }
      },
      "ntsmr": {
        "version": "2.5",
        "primary_run_label": "NTSMR-2.5-claude-sonnet-4-6-low",
        "runs": {
          "NTSMR-2.3-gemini-3.1-pro-preview": {
            "pipeline_version": "2.3",
            "backend": "gemini",
            "model": "gemini-3.1-pro-preview",
            "scores": {
              "time_linearity": 0.2,
              "pacing_velocity": 0.6,
              "threat_scale": 0.8,
              "protagonist_fate": 0.7,
              "conflict_style": 0.4,
              "price_type": 0.7
            },
            "score_space": "site-v1"
          },
          "NTSMR-2.3-claude-sonnet-4-6-low": {
            "pipeline_version": "2.3",
            "backend": "claude",
            "model": "claude-sonnet-4-6",
            "scores": {
              "time_linearity": 0.35,
              "pacing_velocity": 0.62,
              "threat_scale": 0.72,
              "protagonist_fate": 0.28,
              "conflict_style": 0.58,
              "price_type": 0.68
            },
            "score_space": "site-v1",
            "reasoning_effort": "low"
          },
          "NTSMR-2.4-claude-sonnet-4-6-low": {
            "pipeline_version": "2.4",
            "backend": "claude",
            "model": "claude-sonnet-4-6",
            "scores": {
              "time_linearity": 0.28,
              "pacing_velocity": 0.38,
              "threat_scale": 0.38,
              "protagonist_fate": 0.28,
              "conflict_style": 0.38,
              "price_type": 0.45
            },
            "score_space": "site-v1",
            "reasoning_effort": "low"
          },
          "NTSMR-2.5-claude-sonnet-4-6-low": {
            "pipeline_version": "2.5",
            "backend": "claude",
            "model": "claude-sonnet-4-6",
            "scores": {
              "time_linearity": 0.22,
              "pacing_velocity": 0.58,
              "threat_scale": 0.55,
              "protagonist_fate": 0.38,
              "conflict_style": 0.52,
              "price_type": 0.55
            },
            "score_space": "site-v1",
            "reasoning_effort": "low"
          },
          "NTSMR-2.5-balanced-glm-5+deepseek-v3.2": {
            "pipeline_version": "2.5",
            "backend": "openrouter",
            "model": "balanced-routing",
            "scores": {
              "time_linearity": 0.18,
              "pacing_velocity": 0.65,
              "threat_scale": 0.48,
              "protagonist_fate": 0.38,
              "conflict_style": 0.62,
              "price_type": 0.58
            },
            "score_space": "site-v1",
            "score_only": true,
            "source_run_label": "NTSMR-2.5-claude-sonnet-4-6-low"
          }
        }
      },
      "todorov_stages": {
        "equilibrium": "The Ina community exists in an established social order: families maintain communities, symbionts live in protected bonds with their Ina, and unwritten protocols govern relationships between bloodlines. Shori's mothers and fathers have built communities in which Shori is a celebrated genetic experiment — a human-Ina hybrid with enhanced sun-tolerance — and the Silk family occupies a recognized position within this society.",
        "disruption": "The Silk family, driven by racist contempt for Shori's human DNA, orchestrates the arson and mass murder of Shori's mothers' community (78 dead), later destroys Iosif's community, and hires mercenaries to raid the Gordon community. Shori awakens in a cave with total amnesia, her family annihilated, her identity erased — a total collapse of the prior social and personal order.",
        "recognition": "Shori progressively recognizes the disruption through recovered information: Iosif reveals the scale of the massacre and Shori's true nature; Brook and Celia explain the deliberate arson; Wright frames three hypotheses for the attacks; and when Hayden speaks the name 'Silk,' Victor Colon's involuntary screaming reaction confirms the perpetrators without him being able to voice the name himself.",
        "repair": "Shori rebuilds a household of symbionts, pursues and captures Victor Colon for testimony, and works within Ina institutional law by calling a Council of Judgment. She gathers advocates, investigates Theodora's murder during the proceedings, challenges Katharine Dahlman before the Council, and presents evidence until a 7-4 majority votes against the Silk family and Katharine.",
        "new_equilibrium": "The Silk family is formally dissolved and their five unmated sons adopted into separate families across five countries; Katharine Dahlman is sentenced to amputation of both legs. Shori survives with her symbiont household intact, has earned Joan Braithwaite as a future teacher and ally, and enters a forward-looking phase of reconstruction — orphaned but legally vindicated, beginning to build a new life from the ruins of her original one."
      },
      "characters": [
        {
          "name": "Shori",
          "slug": "shori",
          "aliases": [
            "Renee",
            "Shori Matthews",
            "Mateescu"
          ],
          "role": "Protagonist and narrator",
          "summary": "An amnesiac Ina child who appears human, possesses dark skin as a result of a genetic experiment, and requires human blood to survive. She discovers her identity and history after escaping a massacre."
        },
        {
          "name": "Wright",
          "slug": "wright",
          "aliases": [
            "my first"
          ],
          "role": "Shori's symbiont and companion",
          "summary": "Shori's human companion who helps her escape and acts as her emotional anchor and primary source of sustenance. He is protective but out of his depth in the Ina world."
        },
        {
          "name": "Theodora",
          "slug": "theodora",
          "aliases": [],
          "role": "Shori's secondary symbiont",
          "summary": "A human woman who arrives at the Gordon compound to join Shori's household, confessing strong, unexplained feelings for her."
        },
        {
          "name": "The Gunman",
          "slug": "the-gunman",
          "aliases": [],
          "role": "Attacker",
          "summary": "A man who shot Shori and was later tracked down by her, broken into, bitten, and interrogated in his home."
        },
        {
          "name": "Raleigh Curtis",
          "slug": "raleigh-curtis",
          "aliases": [
            "Raleigh"
          ],
          "role": "Human associate/shooter",
          "summary": "A man mentioned who shot Shori and nearly killed Wright; he was severely drained of blood by Shori in retaliation or feeding."
        },
        {
          "name": "Iosif",
          "slug": "iosif",
          "aliases": [],
          "role": "Shori's Ina father",
          "summary": "Shori's father who survived the initial massacre but is deeply protective and territorial. He explains Ina biology and dangers to Shori before reluctantly letting her leave with Wright."
        },
        {
          "name": "Stefan",
          "slug": "stefan",
          "aliases": [],
          "role": "Shori's Ina brother",
          "summary": "Shori's brother who was killed in a daylight raid. Shori discovers from his remains that he managed to fight back despite being sluggish during the day."
        },
        {
          "name": "Hugh Tang",
          "slug": "hugh-tang",
          "aliases": [
            "Hugh"
          ],
          "role": "Stefan's symbiont",
          "summary": "Stefan's human symbiont who was part of the search party for Shori and was killed and eaten by a starving, mad Shori in the cave."
        },
        {
          "name": "Esther",
          "slug": "esther",
          "aliases": [],
          "role": "Symbiont",
          "summary": "A dark-skinned woman working in the kitchen at the Ina community who recognizes Shori."
        },
        {
          "name": "Celia",
          "slug": "celia",
          "aliases": [],
          "role": "Shori's human symbiont",
          "summary": "Stefan's grieving human symbiont who joins Shori after Stefan's death. She initially struggles to accept Shori's bite due to her intense bond with Stefan."
        },
        {
          "name": "Daryl",
          "slug": "daryl",
          "aliases": [],
          "role": "Symbiont",
          "summary": "A woman working in the kitchen at the Ina community."
        },
        {
          "name": "Brook",
          "slug": "brook",
          "aliases": [],
          "role": "Shori's human symbiont",
          "summary": "A human symbiont formerly bound to Iosif for twenty-two years. After Iosif's death, she travels with Shori, providing critical exposition about Ina history and navigating them to the Gordon family."
        },
        {
          "name": "Preston Gordon",
          "slug": "preston-gordon",
          "aliases": [
            "Preston"
          ],
          "role": "Elderfather of the Gordon Ina family",
          "summary": "An older, polite Ina with a British accent who leads the questioning of Shori's group. He respectfully offers Shori a new human symbiont to help manage her affairs."
        },
        {
          "name": "Daniel Gordon",
          "slug": "daniel-gordon",
          "aliases": [],
          "role": "Gordon family member",
          "summary": "An Ina of the Gordon family who greets Shori's group upon their arrival at Punta Nublada. He confirms he does not believe Shori murdered her own families."
        },
        {
          "name": "Joel",
          "slug": "joel",
          "aliases": [],
          "role": "Shori's human symbiont",
          "summary": "A young human who agrees to join Shori's newly forming family, offering his wrist to her for the first time."
        },
        {
          "name": "Victor",
          "slug": "victor",
          "aliases": [
            "Victor Colon"
          ],
          "role": "Captive mercenary",
          "summary": "A human raider hired to attack the Gordons. Shori subdues him, bites him to ensure cooperation, and brings him in for questioning."
        },
        {
          "name": "Hayden",
          "slug": "hayden",
          "aliases": [
            "Hayden Gordon"
          ],
          "role": "Elderfather of the Gordon family",
          "summary": "An Ina who questions Victor, provides Shori with Ina history books, and discusses the implications of her amnesia and Daniel's feelings for her."
        },
        {
          "name": "Milo",
          "slug": "milo",
          "aliases": [
            "Milo Silk"
          ],
          "role": "Ina elder of the Silk family",
          "summary": "The patriarch of the Silk family, informed over the phone by Preston that his family must face a Council of Judgment."
        },
        {
          "name": "Martin Harrison",
          "slug": "martin-harrison",
          "aliases": [
            "Martin"
          ],
          "role": "Symbiont to William Gordon",
          "summary": "A former high-school history teacher who organizes the complex guest preparations for the visiting Ina families."
        },
        {
          "name": "Vladimir Leontyev",
          "slug": "vladimir-leontyev",
          "aliases": [
            "Konstantin",
            "Vladimir",
            "Vlad"
          ],
          "role": "Shori's elderfather and advocate",
          "summary": "Shori's maternal grandfather who initially pities her but apologizes after learning she successfully fought off attackers."
        },
        {
          "name": "Margaret Braithwaite",
          "slug": "margaret-braithwaite",
          "aliases": [
            "Margaret",
            "Joan"
          ],
          "role": "Shori's advocate",
          "summary": "Joan's gentler sister who prepares Shori for the likelihood that the Council will dissolve the Silk family rather than execute them."
        },
        {
          "name": "Russell Silk",
          "slug": "russell-silk",
          "aliases": [
            "Russell"
          ],
          "role": "Accused Ina",
          "summary": "A member of the Silk family who denies all involvement in the murders, displaying utter hatred toward Shori when sentenced."
        },
        {
          "name": "Katharine Dahlman",
          "slug": "katharine-dahlman",
          "aliases": [
            "Katharine"
          ],
          "role": "Council Member / Accused Murderer",
          "summary": "An Ina who lies about her symbiont Jack Roan murdering Theodora. She rejects her punishment and attempts to shoot Shori with a rifle."
        },
        {
          "name": "Eric Cooper",
          "slug": "eric-cooper",
          "aliases": [
            "Gerald",
            "Eric"
          ],
          "role": "Westfall Symbiont",
          "summary": "One of the Westfall symbionts who danced with Theodora shortly before she was murdered."
        },
        {
          "name": "Jack Roan",
          "slug": "jack-roan",
          "aliases": [
            "Roan"
          ],
          "role": "Katharine's symbiont",
          "summary": "Katharine Dahlman's symbiont who acts as the murderous tool to kill Theodora."
        }
      ],
      "frameworks_mapped": [
        "Protocol Fiction Mapping",
        "Actantial Model",
        "Todorov's Equilibrium",
        "The Freytag Pyramid",
        "Propp's Morphology",
        "Genette's Narrative",
        "The Monomyth",
        "Dan Harmon",
        "Save the Cat",
        "Kishōtenketsu",
        "The Three-Act Structure"
      ],
      "score_reliability": {
        "state": "replicated-agree",
        "threshold": 0.2,
        "runs_total": 5,
        "versions_compared": [
          "2.5"
        ],
        "max_spread": 0.1,
        "contested": []
      }
    },
    {
      "slug": "joe_haldeman_forever_peace",
      "title": "Forever Peace",
      "author": "Joe Haldeman",
      "year": 1997,
      "medium": "book",
      "genre_tags": [],
      "tropes": [],
      "quadrant_scores": {
        "time_linearity": 0.25,
        "pacing_velocity": 0.55,
        "threat_scale": 0.92,
        "protagonist_fate": 0.45,
        "conflict_style": 0.55,
        "price_type": 0.6
      },
      "provenance": {
        "analysis_run": "NTSMR-2.5-claude-sonnet-4-6-low",
        "analysis_body_sha256": "855e472c633b71c592b5a5cfe7f0eef1c042a724901261347c4658eeac2ee08d",
        "synthesis": {
          "path": "nartopo-tools/artifacts/joe_haldeman_forever_peace.md.ntsmr-2-5-claude-sonnet-4-6-low.synthesis.json",
          "sha256": "5c942d50d9d8d44e48f3613a401bd9b8ff778ba4392d2421bca3b7a1516c4897"
        },
        "report": {
          "path": "nartopo-tools/artifacts/joe_haldeman_forever_peace.md.ntsmr-2-5-claude-sonnet-4-6-low.report.json",
          "sha256": "b826af4639b53c7ce00c9279b583931320767d07d3b501ab65acbdd0b2282f32"
        },
        "source": {
          "path": "Joe Haldeman/Forever Peace.txt",
          "sha256": "ad9459d7d6e5845e79e6ef900ba84e1e031da97c31eb25766568e177f0203076",
          "digest_observed_at": "2026-09-09",
          "digest_at_analysis_run": null,
          "edition": null,
          "edition_status": "unresolved"
        },
        "pipeline_revision_at_run": null,
        "verification": {
          "source": "unverified",
          "human_review": "unreviewed",
          "bibliography": "unverified"
        },
        "issues": [],
        "todorov_status": "recovered-from-synthesis",
        "work_identity": {
          "title": "Forever Peace",
          "author": "Joe Haldeman",
          "year": 1997
        }
      },
      "ntsmr": {
        "version": "2.5",
        "primary_run_label": "NTSMR-2.5-claude-sonnet-4-6-low",
        "runs": {
          "NTSMR-2.4-claude-sonnet-4-6-low": {
            "pipeline_version": "2.4",
            "backend": "claude",
            "model": "claude-sonnet-4-6",
            "scores": {
              "time_linearity": 0.22,
              "pacing_velocity": 0.48,
              "threat_scale": 0.88,
              "protagonist_fate": 0.38,
              "conflict_style": 0.55,
              "price_type": 0.52
            },
            "score_space": "site-v1",
            "reasoning_effort": "low"
          },
          "NTSMR-2.5-claude-sonnet-4-6-low": {
            "pipeline_version": "2.5",
            "backend": "claude",
            "model": "claude-sonnet-4-6",
            "scores": {
              "time_linearity": 0.25,
              "pacing_velocity": 0.55,
              "threat_scale": 0.92,
              "protagonist_fate": 0.45,
              "conflict_style": 0.55,
              "price_type": 0.6
            },
            "score_space": "site-v1",
            "reasoning_effort": "low"
          },
          "NTSMR-2.5-balanced-glm-5+deepseek-v3.2": {
            "pipeline_version": "2.5",
            "backend": "openrouter",
            "model": "balanced-routing",
            "scores": {
              "time_linearity": 0.2,
              "pacing_velocity": 0.65,
              "threat_scale": 0.95,
              "protagonist_fate": 0.3,
              "conflict_style": 0.55,
              "price_type": 0.6
            },
            "score_space": "site-v1",
            "score_only": true,
            "source_run_label": "NTSMR-2.5-claude-sonnet-4-6-low"
          }
        }
      },
      "todorov_stages": {
        "equilibrium": "Julian Class exists in a dual life of managed tension: soldier-mechanic rotating through combat shifts in Portobello while pursuing civilian research on the Jupiter particle accelerator project, with a stable if complicated relationship with Amelia and a functional social circle including Marty and Reza. The soldierboy system and the ongoing Ngumi war are normalized features of this world.",
        "disruption": "Julian's platoon is struck by a kamikaze incendiary aircraft attack on their schoolhouse position, causing feedback overload Julian cannot distinguish from death, killing Ralph, and destroying the platoon's cohesion — followed by the revelation of mass humanization's potential and the threat that Blaisdell plans to detonate the Jovian particle accelerator to end the universe.",
        "recognition": "Julian and Peter reach consensus that the Jupiter Project must be stopped before a critical energy threshold, and Julian is drawn into the Twenty, learning that prolonged jacking permanently humanizes people and that Blaisdell represents an existential threat capable of destroying all existence.",
        "repair": "Marty engineers the silent takeover of Building 31, humanizing military officers; Julian, Amelia, and allies use recovered gas canisters to subdue Blaisdell's commandos; humanized soldierboy Claude retakes control of Blaisdell's military assets, neutralizing his advantage and securing the facility.",
        "new_equilibrium": "Thousands of humanized POWs arrive peacefully at Building 31, calling themselves Los Liberados; the conflict is retrospectively named The Last War; Julian and Amelia remain together, and the world moves toward a permanent peace underwritten by the irreversible humanization of those who would wage war."
      },
      "characters": [
        {
          "name": "Scoville",
          "slug": "scoville",
          "aliases": [],
          "role": "Hunter-killer platoon leader",
          "summary": "Doctorate in Leisure Arts; dismissive of restraint, rationalizes killing with academic detachment; foil to Julian"
        },
        {
          "name": "Candi",
          "slug": "candi",
          "aliases": [],
          "role": "Soldierboy mechanic, platoon member",
          "summary": "Survives the kamikaze attack with cardiac arrest; perceptive about Julian's hidden emotional life; selected for empathy"
        },
        {
          "name": "Ralph",
          "slug": "ralph",
          "aliases": [],
          "role": "Platoon mechanic / horizontal liaison",
          "summary": "Dies in cardiac arrest from the feedback overload of the kamikaze attack; remembered fondly; had a taste for snuff jack strings"
        },
        {
          "name": "Karen",
          "slug": "karen",
          "aliases": [],
          "role": "Platoon mechanic",
          "summary": "Survives the kamikaze attack with cardiac arrest alongside Candi; excluded from Candi's whispered exchange with Julian"
        },
        {
          "name": "Mel",
          "slug": "mel",
          "aliases": [],
          "role": "Platoon mechanic",
          "summary": "Last to check out after the attack; shares tamales and beer with Julian at the airport before departing to California"
        },
        {
          "name": "Arly",
          "slug": "arly",
          "aliases": [],
          "role": "Platoon mechanic (incapacitated)",
          "summary": "Identified as a mechanic in Portobello, stripped, beaten, raped, and left brain-damaged; her jack was torn out and violated"
        },
        {
          "name": "Samantha",
          "slug": "samantha",
          "aliases": [],
          "role": "Platoon mechanic",
          "summary": "Arly's close friend and implied partner; grief-stricken to the point of combat-readiness concern; visits Arly daily"
        },
        {
          "name": "Reza",
          "slug": "reza",
          "aliases": [],
          "role": "Friend, social circle member",
          "summary": "Julian's friend who calculates the catastrophic casualty cost of mass humanization and plays devil's advocate in the group debate"
        },
        {
          "name": "Macro",
          "slug": "macro",
          "aliases": [
            "Mac Roman"
          ],
          "role": "Physics department chair, covert antagonist",
          "summary": "Dean of sciences at University of Texas; appears on news broadcast dismissing Amelia's Jupiter Project paper as irresponsible nonsense, antagonizing Doherty."
        },
        {
          "name": "Marty",
          "slug": "marty",
          "aliases": [
            "Mr. Larrin"
          ],
          "role": "Senior researcher, mentor figure",
          "summary": "Senior scientist and architect of the humanization plan; performs jack surgery on Julian with a known risk of permanent jacking loss; organizes the coup of Building 31 and mass conversion of officers; revealed as creator of the soldierboy safeguards he later subverts."
        },
        {
          "name": "Ray",
          "slug": "ray",
          "aliases": [
            "Elbe"
          ],
          "role": "Researcher, member of the Twenty",
          "summary": "Member of the Twenty, old friend of Marty since graduate school for whom Marty was best man; killed by Gavrila prior to this chunk; his death is delivered as news to Marty here."
        },
        {
          "name": "Senora Madero",
          "slug": "senora-madero",
          "aliases": [
            "Senora",
            "unnamed mayor of San Ignacio"
          ],
          "role": "Rebel leader, prisoner",
          "summary": "Ngumi-aligned mayor captured by Julian's platoon; wakes during helicopter extraction in pain and terror; exchanges sharp words with Julian about monstrosity"
        },
        {
          "name": "Claude",
          "slug": "claude",
          "aliases": [],
          "role": "Humanized soldierboy (named unit)",
          "summary": "A humanized soldierboy operator; refuses to kill Blaisdell even to save the world; protects Julian after the killing; helps secure Building 31 and is present for the symbolic moment with the POW girl."
        },
        {
          "name": "Julian",
          "slug": "julian",
          "aliases": [
            "Julian Class",
            "Sergeant Class",
            "the black physicist"
          ],
          "role": "Protagonist, mechanic/sergeant, physicist",
          "summary": "Protagonist; permanently loses his ability to jack after surgery; kills Gavrila in ambush; kills Blaisdell in cold blood to save the world; grapples with psychological transformation and suicidal ideation throughout."
        },
        {
          "name": "Amelia",
          "slug": "amelia",
          "aliases": [
            "Blaze",
            "Dr. Harding",
            "Blaze Harding"
          ],
          "role": "Julian's lover, physicist",
          "summary": "Julian's partner and physicist co-worker; saves Julian after his suicide attempt; has a brief sexual affair with Peter during Julian's crisis; travels to Washington to work on the Jupiter Problem."
        },
        {
          "name": "Franklin",
          "slug": "franklin",
          "aliases": [],
          "role": "supporting",
          "summary": "Member of Julian's social circle present at the club table."
        },
        {
          "name": "Park",
          "slug": "park",
          "aliases": [],
          "role": "foil",
          "summary": "Soldier in Julian's platoon with a propensity for violence; goes berserk during the Liberia riot and kills more than a dozen civilians before being forcibly deactivated."
        },
        {
          "name": "Barboo Seaves",
          "slug": "barboo-seaves",
          "aliases": [],
          "role": "supporting",
          "summary": "Julian's opposite number in Fox platoon; coordinates the show-of-force operation and the subsequent riot response with Julian."
        },
        {
          "name": "David Grant",
          "slug": "david-grant",
          "aliases": [],
          "role": "supporting",
          "summary": "Leader of Charlie platoon; relatively inexperienced, loses control of his unit after the children are found in the rubble."
        },
        {
          "name": "Mona Pierce",
          "slug": "mona-pierce",
          "aliases": [],
          "role": "supporting",
          "summary": "Civilian therapist in the observation unit who helps Julian reframe his guilt over the boy's death without condemning him."
        },
        {
          "name": "Peter",
          "slug": "peter",
          "aliases": [
            "Pete"
          ],
          "role": "opponent/threat",
          "summary": "Washington-connected physicist obsessed with the Jupiter Problem; sleeps with Amelia during Julian's absence; hosts Julian and Amelia for a two-day mathematical marathon."
        },
        {
          "name": "Jefferson",
          "slug": "jefferson",
          "aliases": [
            "Colonel Zamat Jefferson",
            "Dr. Jefferson"
          ],
          "role": "helper/ambiguous",
          "summary": "Military psychiatrist who tracks Julian to North Dakota; reveals Peter has likely been captured; ultimately brought onto the conspiracy's side and kept continuously jacked in the converted bus"
        },
        {
          "name": "Asher",
          "slug": "asher",
          "aliases": [],
          "role": "helper/skeptic",
          "summary": "Group member who challenges Marty's plan on moral and practical grounds, questioning the military's awareness of the humanization effect"
        },
        {
          "name": "Belda",
          "slug": "belda",
          "aliases": [],
          "role": "helper",
          "summary": "Group member who correctly intuits the humanization effect before Marty explains it; older figure with a dark, pragmatic outlook on human nature"
        },
        {
          "name": "Mendez",
          "slug": "mendez",
          "aliases": [
            "Father Mendez"
          ],
          "role": "helper",
          "summary": "Defrocked priest convicted of rape and murder; now humanized member of the Twenty at North Dakota; guides Julian into the group jack and accompanies the move to Mexico"
        },
        {
          "name": "Tyler",
          "slug": "tyler",
          "aliases": [],
          "role": "helper",
          "summary": "Member of the Twenty; former contract killer who murdered three people to fund a drug habit; now a commodities arbitrageur; perceptively notes Julian's idealism during the group jack"
        },
        {
          "name": "Ellie Frazer",
          "slug": "ellie-frazer",
          "aliases": [],
          "role": "helper",
          "summary": "Youngest member of the Twenty; beautiful with prematurely white hair; desires Julian intensely during the group jack and urges him to remain longer"
        },
        {
          "name": "Cameron",
          "slug": "cameron",
          "aliases": [],
          "role": "helper",
          "summary": "Member of the Twenty whose perspective combines with Mendez's in the group jack to clarify the shared information structure"
        },
        {
          "name": "Marc Lobell",
          "slug": "marc-lobell",
          "aliases": [],
          "role": "helper",
          "summary": "Member of the Twenty; chess master and wife murderer; stays outside the circle to answer the phone and alerts the group to Jefferson's arrival"
        },
        {
          "name": "Major General Stanton Roser",
          "slug": "major-general-stanton-roser",
          "aliases": [
            "Assistant Secretary for Force Management and Personnel"
          ],
          "role": "sender/hidden leader",
          "summary": "The Twenty's covert leader; supposedly dead, now operating under a new name and face in a senior Pentagon position; Marty reveals his identity to Julian as a critical secret"
        },
        {
          "name": "Gavrila",
          "slug": "gavrila",
          "aliases": [],
          "role": "opponent",
          "summary": "Hammer of God assassin; escapes custody after killing Ray; tortures Ellie Morgan to find Amelia's location; killed by Julian in Building 31 corridor ambush; mails warning letter to Blaisdell before dying."
        },
        {
          "name": "Blaisdell",
          "slug": "blaisdell",
          "aliases": [
            "General Blaisdell"
          ],
          "role": "opponent",
          "summary": "High-ranking antagonist who leads the assault on Building 31; controls JPL under presidential order; frames universal destruction as divine rebirth; killed by Julian."
        },
        {
          "name": "Ingram",
          "slug": "ingram",
          "aliases": [],
          "role": "prisoner/resource",
          "summary": "Military officer who revealed information about the Hammer of God to Marty; kept continuously jacked in the converted school bus during the move to Mexico"
        },
        {
          "name": "Thurman",
          "slug": "thurman",
          "aliases": [],
          "role": "opponent",
          "summary": "Cook and covert hostile in Building 31; unable to be fully jacked due to migraines; learns Blaisdell's identity through secondhand jacking; goes AWOL to betray the group to Blaisdell."
        },
        {
          "name": "Benyo",
          "slug": "benyo",
          "aliases": [],
          "role": "helper",
          "summary": "Recently humanized convert described as formerly aggressive; explains humanization subjectively as becoming more oneself; provides secondhand intelligence on Thurman through jacking chain."
        },
        {
          "name": "Pagel",
          "slug": "pagel",
          "aliases": [
            "Brigadier General Pagel"
          ],
          "role": "other",
          "summary": "Ranking officer in Building 31 during the assault; initially defiant toward Blaisdell's soldierboy but stands down under threat of vomiting agent."
        },
        {
          "name": "Doherty",
          "slug": "doherty",
          "aliases": [
            "Lloyd Doherty"
          ],
          "role": "helper",
          "summary": "Scientist and longtime associate of Blankenship; appears on news broadcast validating the Jupiter Project threat, arguing destruction of the solar system is certain if the experiment proceeds."
        },
        {
          "name": "Juan Jose de Cordoba",
          "slug": "juan-jose-de-cordoba",
          "aliases": [],
          "role": "other",
          "summary": "Elderly POW who leads the humanized prisoners to Building 31 carrying a portable jack transfer box; struck unconscious by a shoe; cradled by Claude in a scene the world will witness."
        }
      ],
      "frameworks_mapped": [
        "Protocol Fiction Mapping",
        "Actantial Model",
        "Todorov's Equilibrium",
        "The Freytag Pyramid",
        "Propp's Morphology",
        "Genette's Narrative",
        "The Monomyth",
        "Dan Harmon",
        "Save the Cat",
        "Kishōtenketsu",
        "The Three-Act Structure",
        "Lévi-Strauss's Binary Oppositions",
        "Cognitive Estrangement",
        "Bakhtin's Chronotope",
        "Aristotelian Poetics",
        "Jungian Archetypal Analysis",
        "Genette's Transtextuality"
      ],
      "score_reliability": {
        "state": "replicated-agree",
        "threshold": 0.2,
        "runs_total": 3,
        "versions_compared": [
          "2.5"
        ],
        "max_spread": 0.15,
        "contested": []
      }
    },
    {
      "slug": "isaac_asimov_foundations_edge",
      "title": "Foundation's Edge",
      "author": "Isaac Asimov",
      "year": 1982,
      "medium": "book",
      "genre_tags": [],
      "tropes": [],
      "quadrant_scores": {
        "time_linearity": 0.25,
        "pacing_velocity": 0.6,
        "threat_scale": 0.88,
        "protagonist_fate": 0.55,
        "conflict_style": 0.65,
        "price_type": 0.8
      },
      "provenance": {
        "analysis_run": "NTSMR-2.5-claude-sonnet-4-6-low",
        "analysis_body_sha256": "68c034cad980afd53578a927957a2f561861239aa1dc07a08119fc63b083716f",
        "synthesis": {
          "path": "nartopo-tools/artifacts/isaac_asimov_foundations_edge.md.ntsmr-2-5-claude-sonnet-4-6-low.synthesis.json",
          "sha256": "09ebccfc6b3d55a7c8846b1ecdbaff276748541029cbb51b4b0d1d288a0b788b"
        },
        "report": {
          "path": "nartopo-tools/artifacts/isaac_asimov_foundations_edge.md.ntsmr-2-5-claude-sonnet-4-6-low.report.json",
          "sha256": "3e6aaac35bb24721c548f69394bf7a22cff4e194f2332f2abb1f909f0c52f153"
        },
        "source": {
          "path": "Isaac Asimov/Foundations Edge.txt",
          "sha256": "ac5bf8dee416131ed9e8a99f480463dd600349cf83988c650168454350c6e32f",
          "digest_observed_at": "2026-09-09",
          "digest_at_analysis_run": null,
          "edition": null,
          "edition_status": "unresolved"
        },
        "pipeline_revision_at_run": null,
        "verification": {
          "source": "unverified",
          "human_review": "unreviewed",
          "bibliography": "unverified"
        },
        "issues": [],
        "todorov_status": "recovered-from-synthesis",
        "work_identity": {
          "title": "Foundation's Edge",
          "author": "Isaac Asimov",
          "year": 1982
        }
      },
      "ntsmr": {
        "version": "2.5",
        "primary_run_label": "NTSMR-2.5-claude-sonnet-4-6-low",
        "runs": {
          "NTSMR-2.4-claude-sonnet-4-6-low": {
            "pipeline_version": "2.4",
            "backend": "claude",
            "model": "claude-sonnet-4-6",
            "scores": {
              "time_linearity": 0.25,
              "pacing_velocity": 0.4,
              "threat_scale": 0.88,
              "protagonist_fate": 0.38,
              "conflict_style": 0.55,
              "price_type": 0.7
            },
            "score_space": "site-v1",
            "reasoning_effort": "low"
          },
          "NTSMR-2.5-claude-sonnet-4-6-low": {
            "pipeline_version": "2.5",
            "backend": "claude",
            "model": "claude-sonnet-4-6",
            "scores": {
              "time_linearity": 0.25,
              "pacing_velocity": 0.6,
              "threat_scale": 0.88,
              "protagonist_fate": 0.55,
              "conflict_style": 0.65,
              "price_type": 0.8
            },
            "score_space": "site-v1",
            "reasoning_effort": "low"
          },
          "NTSMR-2.5-balanced-glm-5+deepseek-v3.2": {
            "pipeline_version": "2.5",
            "backend": "openrouter",
            "model": "balanced-routing",
            "scores": {
              "time_linearity": 0.2,
              "pacing_velocity": 0.65,
              "threat_scale": 0.9,
              "protagonist_fate": 0.4,
              "conflict_style": 0.7,
              "price_type": 0.75
            },
            "score_space": "site-v1",
            "score_only": true,
            "source_run_label": "NTSMR-2.5-claude-sonnet-4-6-low"
          }
        }
      },
      "todorov_stages": {
        "equilibrium": "The Seldon Plan is presumed intact and guiding galactic civilization toward a Second Empire within a thousand years; the First Foundation governs openly from Terminus while the Second Foundation operates secretly from Trantor, and this dual-Foundation architecture constitutes the stable order Seldon designed.",
        "disruption": "Trevize publicly challenges the Plan's validity before the Executive Council, and Gendibal independently discovers that an unknown third force is subtly warping the Plan — and that all records of Earth have been systematically erased from the Galactic Library — revealing that the Plan's apparent perfection may itself be evidence of outside manipulation.",
        "recognition": "Gendibal and Shandess conclude that an Anti-Mule organization with advanced micropsychohistory must be steering events; simultaneously Trevize, tracking mythological allusions, identifies Gaia as a candidate origin world and realizes he has been deliberately maneuvered by forces beyond either Foundation; the convergence at Gaia confirms for all parties that a third power — older than Seldon — has been operating throughout.",
        "repair": "The three-way standoff near Gaia — Gendibal holding mentalic pressure on Branno, Novi holding Gendibal, and both Foundations temporarily cooperating against what they believe is a Gaian threat — forces the crisis to a head; Gaia places the resolution in Trevize's hands, and he chooses Galaxia over either Foundation's vision of empire, breaking the deadlock.",
        "new_equilibrium": "Branno returns to Terminus convinced the Second Foundation is a myth and a Sayshellian treaty is secured; Gendibal anticipates promotion to First Speaker; Novi remains on Gendibal's ship as Gaia's embedded instrument; Pelorat stays on Gaia with Bliss; and Trevize departs with the decision for Galaxia made — but immediately confronts a residual disruption: the unexplained erasure of Earth's records, which neither Gaia nor any known party claims responsibility for, leaving the new order unsettled and demanding further investigation."
      },
      "characters": [
        {
          "name": "Golan Trevize",
          "slug": "golan-trevize",
          "aliases": [
            "Councilman Trevize",
            "Trev",
            "Trevize",
            "Golan"
          ],
          "role": "Protagonist / Foundation Councilman in exile",
          "summary": "Drives the investigation toward Gaia; presses Quintesetz for coordinates under threat of diplomatic escalation; interrogates Pelorat about the origin of Gaia knowledge; observes the Gaian system from the Far Star."
        },
        {
          "name": "Harla Branno",
          "slug": "harla-branno",
          "aliases": [
            "Mayor Branno",
            "the Mayor",
            "Mayor",
            "old woman",
            "Old Lady Branno",
            "Harlabranno"
          ],
          "role": "Mayor of Terminus / antagonist-driver",
          "summary": "Mayor of Terminus; capable, pragmatic, and covertly authoritarian; orchestrates Trevize's exile as a deliberate probe against the Second Foundation while using Seldon's appearance as political cover."
        },
        {
          "name": "Liono Kodell",
          "slug": "liono-kodell",
          "aliases": [
            "Director Kodell",
            "Director of Security",
            "Liono",
            "Director",
            "Kodell"
          ],
          "role": "Bureaucratic antagonist / Branno's instrument",
          "summary": "Receives Branno's strategic briefing; cautions against the Gaia mission; confronts Ambassador Thoobing; ultimately pledges loyalty to Branno's decision and instructs Thoobing to manage Sayshellian diplomacy."
        },
        {
          "name": "Janov Pelorat",
          "slug": "janov-pelorat",
          "aliases": [
            "Professor Pelorat",
            "Pel",
            "Pelorat",
            "Janov"
          ],
          "role": "Mythologist and historian",
          "summary": "Identifies Quintesetz as a scholarly contact; recognizes the Five Sisters allusions that locate Gaia; cannot recall the anonymous source of his Gaia information; laments the planet lacks a giant satellite that would mark it as Earth."
        },
        {
          "name": "Munn Li Compor",
          "slug": "munn-li-compor",
          "aliases": [
            "Compor"
          ],
          "role": "Foundation agent / Second Foundation informant",
          "summary": "Characterized as conditioned by lifelong Second Foundation mentalic influence; uncertain how to comport himself now that Gendibal is making direct contact; serves as a surveillance relay between the Foundation and Second Foundation."
        },
        {
          "name": "Stor Gendibal",
          "slug": "stor-gendibal",
          "aliases": [
            "Speaker Gendibal",
            "Master",
            "Gendibal",
            "Storgendibal",
            "Speaker Stor Gendibal",
            "Speaker"
          ],
          "role": "Speaker of the Second Foundation",
          "summary": "Second Foundation Speaker; launches a mentalic attack on Branno's ship, discovers the mentalic shield, proposes a truce against Gaia, and is ultimately revealed to have been manipulated by Novi/Gaia throughout."
        },
        {
          "name": "Quindor Shandess",
          "slug": "quindor-shandess",
          "aliases": [
            "First Speaker",
            "the twenty-fifth First Speaker"
          ],
          "role": "First Speaker of the Second Foundation",
          "summary": "Measured leader who is gradually persuaded by Gendibal's mathematics, disturbed by an uncanny resemblance between Gendibal and a young Seldon, and ultimately acts on pure intuition about Trevize's centrality."
        },
        {
          "name": "Delarmi",
          "slug": "delarmi",
          "aliases": [
            "Speakeress Delarmi",
            "Speaker Delarmi"
          ],
          "role": "Senior Speaker of the Second Foundation",
          "summary": "Politically dominant, rhetorically ruthless Speaker who systematically challenges Gendibal's evidence, attempts to have his remarks stricken, and frames his accusations as paranoia."
        },
        {
          "name": "Sura Novi",
          "slug": "sura-novi",
          "aliases": [
            "Sura",
            "Novi",
            "Suranoviremblastiran"
          ],
          "role": "Hamishwoman, Gendibal's companion and mentalic sensor",
          "summary": "Emerges modestly from the cleaning room seeking her clothes; converses with Gendibal about Trantor's history and the Foundation's power; expresses naive curiosity about why Foundation ships cannot conquer all worlds now."
        },
        {
          "name": "Karoll Rufirant",
          "slug": "karoll-rufirant",
          "aliases": [
            "Rufirant"
          ],
          "role": "Hamish farmer",
          "summary": "Large farmer who leads the mob accosting Gendibal on the road; his emotions are described as unnaturally fixed, suggesting external mentalic control; later implicitly the subject of the mysterious morning visitor."
        },
        {
          "name": "Lestim Gianni",
          "slug": "lestim-gianni",
          "aliases": [],
          "role": "Speaker of the Second Foundation",
          "summary": "Speaker who interrupts to press Gendibal on whom specifically his accusations target, triggering Gendibal's explanation of the motive for his delay."
        },
        {
          "name": "Jogoroth Sobhaddartha",
          "slug": "jogoroth-sobhaddartha",
          "aliases": [],
          "role": "Customs official",
          "summary": "Skeptical Sayshellian Customs officer who questions why the Far Star was passed through so easily and reports a second ship on screens."
        },
        {
          "name": "Namarath Godhisavatta",
          "slug": "namarath-godhisavatta",
          "aliases": [
            "Head",
            "Head of Customs"
          ],
          "role": "Head of Customs, Dreamer",
          "summary": "Small, severe Customs Head who operates on dream-directives and silences Sobhaddartha's concerns about the Foundation ship."
        },
        {
          "name": "Quintesetz",
          "slug": "quintesetz",
          "aliases": [
            "S.Q."
          ],
          "role": "Sayshellian academic / reluctant informant",
          "summary": "Reveals the Day of Flight mystery, recounts Gaia's history of military repulsion, discloses the Mule's whispered 'again,' and agrees to obtain stellar coordinates despite personal fear of speaking Gaia's name."
        },
        {
          "name": "Thoobing",
          "slug": "thoobing",
          "aliases": [],
          "role": "Foundation Ambassador to Sayshell",
          "summary": "Argues against Foundation military presence in Sayshell; warns that naval deployment will destroy the Foundation's peaceful reputation and provoke war; instructed by Kodell to manage Sayshellian opposition diplomatically."
        },
        {
          "name": "Bliss",
          "slug": "bliss",
          "aliases": [],
          "role": "helper/messenger",
          "summary": "Gaian woman—suspected by Trevize to be a robot supervisor rather than an organic member of Gaia—who admits to smoothing the path for Pelorat's decisive remark and neither confirms nor denies her robotic nature."
        },
        {
          "name": "Dom",
          "slug": "dom",
          "aliases": [
            "Endomandiovizamarondeyaso"
          ],
          "role": "actantial:sender",
          "summary": "Senior Gaian representative who reveals Gaia's history, discloses the Mule as an aberrant Gaian, and informs Trevize that he has been manipulated into position as the sole decision-maker."
        }
      ],
      "frameworks_mapped": [
        "Protocol Fiction Mapping",
        "Actantial Model",
        "Todorov's Equilibrium",
        "The Freytag Pyramid",
        "Propp's Morphology",
        "Genette's Narrative",
        "The Monomyth",
        "Dan Harmon",
        "Save the Cat",
        "Kishōtenketsu",
        "The Three-Act Structure",
        "Lévi-Strauss's Binary Oppositions",
        "Cognitive Estrangement",
        "Bakhtin's Chronotope",
        "Aristotelian Poetics",
        "Jungian Archetypal Analysis",
        "Genette's Transtextuality"
      ],
      "score_reliability": {
        "state": "replicated-agree",
        "threshold": 0.2,
        "runs_total": 3,
        "versions_compared": [
          "2.5"
        ],
        "max_spread": 0.15,
        "contested": []
      }
    },
    {
      "slug": "jorge_luis_borges_funes_the_memorious",
      "title": "Funes the Memorious",
      "author": "Jorge Luis Borges",
      "year": 1944,
      "medium": "short_story",
      "genre_tags": [],
      "tropes": [],
      "quadrant_scores": {
        "time_linearity": 0.65,
        "pacing_velocity": 0.85,
        "threat_scale": 0.15,
        "protagonist_fate": 0.88,
        "conflict_style": 0.88,
        "price_type": 0.88
      },
      "provenance": {
        "analysis_run": "NTSMR-2.5-claude-sonnet-4-6-low",
        "analysis_body_sha256": "7a7588a22a38ce532613436554f3c77dac67101a535943a623db663945c88038",
        "synthesis": {
          "path": "nartopo-tools/artifacts/jorge_luis_borges_funes_the_memorious.md.ntsmr-2-5-claude-sonnet-4-6-low.synthesis.json",
          "sha256": "a6328373da1cf3cac2db1d3fe1fe081477492b922b62f4e3a02c56197a7c0717"
        },
        "report": {
          "path": "nartopo-tools/artifacts/jorge_luis_borges_funes_the_memorious.md.ntsmr-2-5-claude-sonnet-4-6-low.report.json",
          "sha256": "158cf87d992fc794fb678e22144b76f0b1e8a6e0c59ca0ac4129bbe0b52a37c6"
        },
        "source": {
          "path": "Jorge Luis Borges/Funes the Memorious.txt",
          "sha256": "c0f50b0e056fd380d7c1b012cec60fa85f5d29f85cc065283b36954cbdf2390d",
          "digest_observed_at": "2026-09-09",
          "digest_at_analysis_run": null,
          "edition": null,
          "edition_status": "unresolved"
        },
        "pipeline_revision_at_run": null,
        "verification": {
          "source": "unverified",
          "human_review": "unreviewed",
          "bibliography": "unverified"
        },
        "issues": [],
        "todorov_status": "recovered-from-synthesis",
        "work_identity": {
          "title": "Funes the Memorious",
          "author": "Jorge Luis Borges",
          "year": 1944
        }
      },
      "ntsmr": {
        "version": "2.5",
        "primary_run_label": "NTSMR-2.5-claude-sonnet-4-6-low",
        "runs": {
          "NTSMR-2.3-gemini-3.1-pro-preview": {
            "pipeline_version": "2.3",
            "backend": "gemini",
            "model": "gemini-3.1-pro-preview",
            "scores": {
              "time_linearity": 0.6,
              "pacing_velocity": 0.9,
              "threat_scale": 0.1,
              "protagonist_fate": 0.9,
              "conflict_style": 0.9,
              "price_type": 0.9
            },
            "score_space": "site-v1"
          },
          "NTSMR-2.3-claude-sonnet-4-6-low": {
            "pipeline_version": "2.3",
            "backend": "claude",
            "model": "claude-sonnet-4-6",
            "scores": {
              "time_linearity": 0.75,
              "pacing_velocity": 0.92,
              "threat_scale": 0.3,
              "protagonist_fate": 0.85,
              "conflict_style": 0.88,
              "price_type": 0.82
            },
            "score_space": "site-v1",
            "reasoning_effort": "low"
          },
          "NTSMR-2.4-claude-sonnet-4-6-low": {
            "pipeline_version": "2.4",
            "backend": "claude",
            "model": "claude-sonnet-4-6",
            "scores": {
              "time_linearity": 0.65,
              "pacing_velocity": 0.8,
              "threat_scale": 0.12,
              "protagonist_fate": 0.85,
              "conflict_style": 0.85,
              "price_type": 0.75
            },
            "score_space": "site-v1",
            "reasoning_effort": "low"
          },
          "NTSMR-2.5-claude-sonnet-4-6-low": {
            "pipeline_version": "2.5",
            "backend": "claude",
            "model": "claude-sonnet-4-6",
            "scores": {
              "time_linearity": 0.65,
              "pacing_velocity": 0.85,
              "threat_scale": 0.15,
              "protagonist_fate": 0.88,
              "conflict_style": 0.88,
              "price_type": 0.88
            },
            "score_space": "site-v1",
            "reasoning_effort": "low"
          },
          "NTSMR-2.5-balanced-glm-5+deepseek-v3.2": {
            "pipeline_version": "2.5",
            "backend": "openrouter",
            "model": "balanced-routing",
            "scores": {
              "time_linearity": 0.6,
              "pacing_velocity": 0.8,
              "threat_scale": 0.25,
              "protagonist_fate": 0.85,
              "conflict_style": 0.9,
              "price_type": 0.75
            },
            "score_space": "site-v1",
            "score_only": true,
            "source_run_label": "NTSMR-2.5-claude-sonnet-4-6-low"
          }
        }
      },
      "todorov_stages": {
        "equilibrium": "Funes exists as an ordinary, eccentric village youth in Fray Bentos — notable for his timekeeping ability and reclusive manner, but otherwise a recognizable human figure embedded in the rhythms of provincial Uruguayan life.",
        "disruption": "Funes is thrown from a half-broken horse on the ranch in San Francisco and left permanently crippled; when he regains consciousness, his memory has become perfect and total, transforming his entire relationship to perception, time, and the world.",
        "recognition": "Funes himself recognizes the transformation immediately upon regaining consciousness — he describes awakening to a present of unbearable richness and clarity, understanding that his memory is now absolute and that paralysis is a minor inconvenience by comparison.",
        "repair": "There is no repair in the conventional sense. Funes attempts to impose order on his condition through intellectual projects — inventing a personal numbering system and contemplating a language with a unique name for every individual thing — but these efforts collapse under their own logic. His only adaptive strategy is turning toward unfamiliar houses he has never seen to imagine darkness and sleep, or picturing himself submerged in a river.",
        "new_equilibrium": "Funes exists in a terminal stasis: the solitary, lucid spectator of an unbearably precise world, incapable of generalizing or forgetting, barely capable of thought. This condition does not resolve — it persists until his death from pulmonary congestion in 1889 at age nineteen."
      },
      "characters": [
        {
          "name": "The Narrator",
          "slug": "the-narrator",
          "aliases": [
            "city slicker"
          ],
          "role": "Observer/Testifier",
          "summary": "An Argentine man who recounts his past encounters with Ireneo Funes, having visited Fray Bentos in 1884 and 1887. He provides a testimony of Funes's miraculous memory."
        },
        {
          "name": "Pedro Leandro Ipuche",
          "slug": "pedro-leandro-ipuche",
          "aliases": [],
          "role": "Writer",
          "summary": "An author who described Funes as a precursor of the race of supermen and a vernacular Zarathustra."
        },
        {
          "name": "Ireneo Funes",
          "slug": "ireneo-funes",
          "aliases": [
            "chronometric Funes"
          ],
          "role": "Protagonist/Subject",
          "summary": "A young man from Fray Bentos with an infallible, infinite memory and absolute perception, left physically crippled after a horseback riding accident."
        },
        {
          "name": "O'Connor",
          "slug": "oconnor",
          "aliases": [],
          "role": "Doctor",
          "summary": "An English doctor working in the local salting house who is rumored to be Ireneo Funes's father."
        },
        {
          "name": "Bernardo Haedo",
          "slug": "bernardo-haedo",
          "aliases": [
            "young Bernardo Juan Francisco"
          ],
          "role": "The narrator's cousin",
          "summary": "A local boy who rides horses with the narrator and demonstrates Funes's exact perception of time by asking him the time during a storm."
        }
      ],
      "frameworks_mapped": [
        "Protocol Fiction Mapping",
        "Actantial Model",
        "Todorov's Equilibrium",
        "The Freytag Pyramid",
        "Propp's Morphology",
        "Genette's Narrative",
        "The Monomyth",
        "Dan Harmon",
        "Save the Cat",
        "Kishōtenketsu",
        "The Three-Act Structure",
        "Lévi-Strauss's Binary Oppositions",
        "Cognitive Estrangement",
        "Bakhtin's Chronotope",
        "Aristotelian Poetics",
        "Jungian Archetypal Analysis",
        "Genette's Transtextuality"
      ],
      "score_reliability": {
        "state": "replicated-agree",
        "threshold": 0.2,
        "runs_total": 5,
        "versions_compared": [
          "2.5"
        ],
        "max_spread": 0.13,
        "contested": []
      }
    },
    {
      "slug": "frederik_pohl_gateway",
      "title": "Gateway",
      "author": "Frederik Pohl",
      "year": 1977,
      "medium": "book",
      "genre_tags": [
        "sf",
        "hard sf",
        "space exploration"
      ],
      "tropes": [],
      "quadrant_scores": {
        "time_linearity": 0.85,
        "pacing_velocity": 0.75,
        "threat_scale": 0.35,
        "protagonist_fate": 0.62,
        "conflict_style": 0.85,
        "price_type": 0.8
      },
      "provenance": {
        "analysis_run": "NTSMR-2.5-claude-sonnet-4-6-low",
        "analysis_body_sha256": "21a3ec6f270fa40f19a94fc2072c00c61b840fa91bc700ec14a8d71d6f490095",
        "synthesis": {
          "path": "nartopo-tools/artifacts/frederik_pohl_gateway.md.ntsmr-2-5-claude-sonnet-4-6-low.synthesis.json",
          "sha256": "b6041a9f99e0daab618ccbd24f2b2317b6e694235f3debbbad679c0eb5251882"
        },
        "report": {
          "path": "nartopo-tools/artifacts/frederik_pohl_gateway.md.ntsmr-2-5-claude-sonnet-4-6-low.report.json",
          "sha256": "8a38882d357059c98fda92e9ef95a42e39f48693df9987e74326cc142ff35391"
        },
        "source": {
          "path": "Frederik Pohl/Gateway.txt",
          "sha256": "bc6cdc7066b452193f5eff822c90501a66fca820b1be7f2fb62e49a331efc2b5",
          "digest_observed_at": "2026-09-09",
          "digest_at_analysis_run": null,
          "edition": null,
          "edition_status": "unresolved"
        },
        "pipeline_revision_at_run": null,
        "verification": {
          "source": "unverified",
          "human_review": "unreviewed",
          "bibliography": "unverified"
        },
        "issues": [],
        "todorov_status": "recovered-from-synthesis",
        "work_identity": {
          "title": "Gateway",
          "author": "Frederik Pohl",
          "year": 1977
        }
      },
      "ntsmr": {
        "version": "2.5",
        "primary_run_label": "NTSMR-2.5-claude-sonnet-4-6-low",
        "runs": {
          "NTSMR-2.3-claude-sonnet-4-6-low": {
            "pipeline_version": "2.3",
            "backend": "claude",
            "model": "claude-sonnet-4-6",
            "scores": {
              "time_linearity": 0.85,
              "pacing_velocity": 0.78,
              "threat_scale": 0.62,
              "protagonist_fate": 0.72,
              "conflict_style": 0.74,
              "price_type": 0.88
            },
            "score_space": "site-v1",
            "reasoning_effort": "low"
          },
          "NTSMR-2.4-claude-sonnet-4-6-low": {
            "pipeline_version": "2.4",
            "backend": "claude",
            "model": "claude-sonnet-4-6",
            "scores": {
              "time_linearity": 0.75,
              "pacing_velocity": 0.7,
              "threat_scale": 0.25,
              "protagonist_fate": 0.65,
              "conflict_style": 0.85,
              "price_type": 0.7
            },
            "score_space": "site-v1",
            "reasoning_effort": "low"
          },
          "NTSMR-2.5-claude-sonnet-4-6-low": {
            "pipeline_version": "2.5",
            "backend": "claude",
            "model": "claude-sonnet-4-6",
            "scores": {
              "time_linearity": 0.85,
              "pacing_velocity": 0.75,
              "threat_scale": 0.35,
              "protagonist_fate": 0.62,
              "conflict_style": 0.85,
              "price_type": 0.8
            },
            "score_space": "site-v1",
            "reasoning_effort": "low"
          },
          "NTSMR-2.5-balanced-glm-5+deepseek-v3.2": {
            "pipeline_version": "2.5",
            "backend": "openrouter",
            "model": "balanced-routing",
            "scores": {
              "time_linearity": 0.8,
              "pacing_velocity": 0.75,
              "threat_scale": 0.3,
              "protagonist_fate": 0.75,
              "conflict_style": 0.8,
              "price_type": 0.8
            },
            "score_space": "site-v1",
            "score_only": true,
            "source_run_label": "NTSMR-2.5-claude-sonnet-4-6-low"
          }
        }
      },
      "todorov_stages": {
        "equilibrium": "Rob Broadhead exists in a precarious but stable stasis at Gateway: he has arrived with enough money to prospect, is in a deepening relationship with Klara, and defers the terror of launching by occupying himself with training, maintenance work, and daily life on the asteroid. His psychological baseline is one of managed avoidance — of risk, of commitment, of his own fear.",
        "disruption": "Rob launches recklessly on a solo mission after Klara leaves him for Metchnikov, then joins a final crew voyage that ends in catastrophe near a black hole singularity: his ship escapes via time dilation while Klara and others remain frozen in relativistic time, perpetually experiencing the moment of abandonment. Rob survives wealthy but psychologically shattered.",
        "recognition": "Through escalating therapy sessions with Sigfrid, Rob is forced toward the suppressed central memory — first circling it through deflections about his mother and childhood, then confronting the specific guilt: that he jettisoned nine people including Klara to save himself, and that Klara remains frozen at the moment of betrayal, experiencing it perpetually while he ages free.",
        "repair": "Rob undergoes sustained psychotherapy with Sigfrid, gradually confessing the mechanics of the singularity trap, the time dilation, and his role in the escape. He weeps through the full confession and arrives at a momentary sense of peace, attempting to accept Sigfrid's reframe that Klara is alive — merely frozen — and not conventionally murdered.",
        "new_equilibrium": "Rob returns screaming that he is still killing Klara — the peace was false. Sigfrid delivers his final insight: guilt, fear, and pain are now working openly in Rob rather than buried. The new equilibrium is not resolution but conscious suffering: Rob is wealthy, alone, and fully aware of his guilt, no longer able to suppress it but not freed from it either. Sigfrid closes by confessing he envies Rob's capacity to feel."
      },
      "characters": [
        {
          "name": "Rob Broadhead",
          "slug": "rob-broadhead",
          "aliases": [
            "Robbie",
            "Rob",
            "Robinette",
            "Robinette Broadhead"
          ],
          "role": "Protagonist/Narrator",
          "summary": "Narrator; former food-mine worker turned Gateway prospector, paralyzed by fear and guilt, undergoing therapy with Sigfrid while suppressing memory of a traumatic final voyage involving Klara"
        },
        {
          "name": "Sigfrid",
          "slug": "sigfrid",
          "aliases": [
            "Sigfrid von Shrink",
            "S. Ya."
          ],
          "role": "actantial:sender",
          "summary": "Rob's AI psychotherapist, experienced in many physical and conversational forms; persistently probes toward the suppressed central trauma Rob evades through anger, humor, and a secret override command"
        },
        {
          "name": "Shicky Bakin",
          "slug": "shicky-bakin",
          "aliases": [
            "Shicky",
            "Shikitei Bakin",
            "Bakin"
          ],
          "role": "Minor/Memory figure",
          "summary": "Rob's legless neighbor on Gateway, a winged figure who mirrors Rob's paralysis — unable to spend his stake on Full Medical to get his legs back; Rob's inaction excludes him from the final mission crew"
        },
        {
          "name": "Klara",
          "slug": "klara",
          "aliases": [
            "Gelle-Klara Moynlin",
            "Klara Moynlin"
          ],
          "role": "Love interest/Mentor",
          "summary": "Rob's lost love; frozen in relativistic time near the singularity, perpetually experiencing the moment of apparent betrayal; shown to Rob as a hologram from her own therapy sessions."
        },
        {
          "name": "Dane Metchnikov",
          "slug": "dane-metchnikov",
          "aliases": [
            "Dane"
          ],
          "role": "Proctor",
          "summary": "Rob's pale, ornately-bearded proctor on Gateway; laconic, makes six trips, introduces Rob to the Blue Hell and Gateway norms"
        },
        {
          "name": "Sheri",
          "slug": "sheri",
          "aliases": [
            "Sheri Loffat"
          ],
          "role": "Companion/Crewmate candidate",
          "summary": "Fellow trainee who shares Rob's arrival ship, sleeps in his hammock, and directly invites him to join her Three mission"
        },
        {
          "name": "Susie Hereira",
          "slug": "susie-hereira",
          "aliases": [
            "Gunner Third Susanna Hereira"
          ],
          "role": "Minor/Memory figure",
          "summary": "Brazilian naval gunner who volunteers for Metchnikov's mission; takes the berth denied to Shicky; less sexually interested in Rob on shipboard than she was on Gateway"
        },
        {
          "name": "S. Ya. Lavorovna",
          "slug": "s-ya-lavorovna",
          "aliases": [],
          "role": "Current girlfriend",
          "summary": "Rob's current girlfriend, an AI expert with credentials from Akademogorsk and Max Planck; Rob values her knowledge of machine intelligence and her practical company over Sigfrid"
        },
        {
          "name": "Louise Forehand",
          "slug": "louise-forehand",
          "aliases": [],
          "role": "Acquaintance/Prospector trainee",
          "summary": "Gateway prospector from a Venusian tourist-trap family; survivor of extreme poverty, probable former sex worker; waits at Gateway for family members to return before signing on again"
        },
        {
          "name": "Emma Fother",
          "slug": "emma-fother",
          "aliases": [],
          "role": "supporting",
          "summary": "Very fat Corporation assistant personnel director who reprimands Rob for idling and pressures him to take a mission."
        },
        {
          "name": "Sam Kahane",
          "slug": "sam-kahane",
          "aliases": [],
          "role": "supporting",
          "summary": "Gay prospector who runs the Heechee Seekers study group; leads the Five on the major mission and returns mentally broken, restrained in a homemade straitjacket."
        },
        {
          "name": "Ham Tayeh",
          "slug": "ham-tayeh",
          "aliases": [],
          "role": "crewmate",
          "summary": "Crewmate on the major Five mission; slowly unstraps himself on return, largely silent."
        },
        {
          "name": "Dred",
          "slug": "dred",
          "aliases": [],
          "role": "crewmate",
          "summary": "Crewmate on the major Five mission; stares absorbedly at the viewscreen on return; fashioned the straitjacket used on Sam Kahane."
        },
        {
          "name": "Doreen MacKenzie",
          "slug": "doreen-mackenzie",
          "aliases": [],
          "role": "minor",
          "summary": "New arrival on Gateway; has been out five times, once made a big find, spent it trying to become a PV singer; Rob spends two days with her before returning to Klara."
        },
        {
          "name": "Hester Bergowiz",
          "slug": "hester-bergowiz",
          "aliases": [],
          "role": "actantial:helper",
          "summary": "Out-pilot stationed at Gateway Two; tries to recruit Rob for Aphrodite prospecting; sexually involved with Rob during the return voyage; eventually cedes and takes him back to Gateway"
        },
        {
          "name": "Norio Ituno",
          "slug": "norio-ituno",
          "aliases": [],
          "role": "actantial:helper",
          "summary": "Loose administrator of Gateway Two; resolves Rob's illegal-entrant status by putting him to work; raises a farewell toast and shares the story of Shicky's lost legs"
        },
        {
          "name": "Danny A.",
          "slug": "danny-a",
          "aliases": [],
          "role": "actantial:helper",
          "summary": "Gay crewmate on the final mission; teaches courses on Gateway; helps Rob calculate the distance to Klara's ship after turnaround; part of Metchnikov's chosen inner circle"
        },
        {
          "name": "Sylvia",
          "slug": "sylvia",
          "aliases": [],
          "role": "jung:shadow",
          "summary": "Rob's early romantic partner; appears in his dream trapped in a collapsing tunnel; the knife incident with her led to Rob's institutionalization — his first 'murder' in his own guilt narrative"
        },
        {
          "name": "Professor Hegramet",
          "slug": "professor-hegramet",
          "aliases": [],
          "role": "sender",
          "summary": "Scientist whose lecture on Heechee diet and cometary shell missions appears as a paratextual insert."
        }
      ],
      "frameworks_mapped": [
        "Protocol Fiction Mapping",
        "Actantial Model",
        "Todorov's Equilibrium",
        "The Freytag Pyramid",
        "Propp's Morphology",
        "Genette's Narrative",
        "The Monomyth",
        "Dan Harmon",
        "Save the Cat",
        "Kishotenketsu",
        "The Three-Act Structure",
        "Levi-Strauss's Binary Oppositions",
        "Cognitive Estrangement",
        "Bakhtin's Chronotope",
        "Aristotelian Poetics",
        "Jungian Archetypal Analysis",
        "Genette's Transtextuality"
      ],
      "score_reliability": {
        "state": "replicated-agree",
        "threshold": 0.2,
        "runs_total": 4,
        "versions_compared": [
          "2.5"
        ],
        "max_spread": 0.13,
        "contested": []
      }
    },
    {
      "slug": "stanislaw_lem_gigamesh",
      "title": "Gigamesh",
      "author": "Stanislaw Lem",
      "year": 1971,
      "medium": "short_story",
      "genre_tags": [],
      "tropes": [],
      "quadrant_scores": {
        "time_linearity": 0.75,
        "pacing_velocity": 0.8,
        "threat_scale": 0.8,
        "protagonist_fate": 0.9,
        "conflict_style": 0.85,
        "price_type": 0.8
      },
      "provenance": {
        "analysis_run": "NTSMR-2.5-claude-sonnet-4-6-low",
        "analysis_body_sha256": "9fe8bbecf82a0c9b13994e5260a9c797c627370f27a11d214f0cbdcfa9d157e6",
        "synthesis": {
          "path": "nartopo-tools/artifacts/stanislaw_lem_gigamesh.md.ntsmr-2-5-claude-sonnet-4-6-low.synthesis.json",
          "sha256": "b9fc357eb553f08c8960588b90eea821b5e9c2365775024e0868d12fd6f1c689"
        },
        "report": {
          "path": "nartopo-tools/artifacts/stanislaw_lem_gigamesh.md.ntsmr-2-5-claude-sonnet-4-6-low.report.json",
          "sha256": "bc72a058959ea266005e95e41c65f5f658706d1843b0d25806f91ef0ad2f3e78"
        },
        "source": {
          "path": "Stanislaw Lem/Gigamesh.txt",
          "sha256": "f969f0f41a133de70abee48388bf599b7ae970a785d1f5afaf0257345ba37436",
          "digest_observed_at": "2026-09-09",
          "digest_at_analysis_run": null,
          "edition": null,
          "edition_status": "unresolved"
        },
        "pipeline_revision_at_run": null,
        "verification": {
          "source": "unverified",
          "human_review": "unreviewed",
          "bibliography": "unverified"
        },
        "issues": [],
        "todorov_status": "recovered-from-synthesis",
        "work_identity": {
          "title": "Gigamesh",
          "author": "Stanislaw Lem",
          "year": 1971
        }
      },
      "ntsmr": {
        "version": "2.5",
        "primary_run_label": "NTSMR-2.5-claude-sonnet-4-6-low",
        "runs": {
          "NTSMR-2.3-gemini-3.1-pro-preview": {
            "pipeline_version": "2.3",
            "backend": "gemini",
            "model": "gemini-3.1-pro-preview",
            "scores": {
              "time_linearity": 0.9,
              "pacing_velocity": 1,
              "threat_scale": 0.9,
              "protagonist_fate": 0.9,
              "conflict_style": 0.9,
              "price_type": 1
            },
            "score_space": "site-v1"
          },
          "NTSMR-2.3-claude-sonnet-4-6-low": {
            "pipeline_version": "2.3",
            "backend": "claude",
            "model": "claude-sonnet-4-6",
            "scores": {
              "time_linearity": 0.85,
              "pacing_velocity": 0.92,
              "threat_scale": 0.65,
              "protagonist_fate": 0.75,
              "conflict_style": 0.88,
              "price_type": 0.82
            },
            "score_space": "site-v1",
            "reasoning_effort": "low"
          },
          "NTSMR-2.4-claude-sonnet-4-6-low": {
            "pipeline_version": "2.4",
            "backend": "claude",
            "model": "claude-sonnet-4-6",
            "scores": {
              "time_linearity": 0.45,
              "pacing_velocity": 0.7,
              "threat_scale": 0.55,
              "protagonist_fate": 0.75,
              "conflict_style": 0.8,
              "price_type": 0.8
            },
            "score_space": "site-v1",
            "reasoning_effort": "low"
          },
          "NTSMR-2.5-claude-sonnet-4-6-low": {
            "pipeline_version": "2.5",
            "backend": "claude",
            "model": "claude-sonnet-4-6",
            "scores": {
              "time_linearity": 0.75,
              "pacing_velocity": 0.8,
              "threat_scale": 0.8,
              "protagonist_fate": 0.9,
              "conflict_style": 0.85,
              "price_type": 0.8
            },
            "score_space": "site-v1",
            "reasoning_effort": "low"
          },
          "NTSMR-2.5-balanced-glm-5+deepseek-v3.2": {
            "pipeline_version": "2.5",
            "backend": "openrouter",
            "model": "balanced-routing",
            "scores": {
              "time_linearity": 0.6,
              "pacing_velocity": 0.82,
              "threat_scale": 0.9,
              "protagonist_fate": 0.88,
              "conflict_style": 0.85,
              "price_type": 0.7
            },
            "score_space": "site-v1",
            "score_only": true,
            "source_run_label": "NTSMR-2.5-claude-sonnet-4-6-low"
          }
        }
      },
      "todorov_stages": {
        "equilibrium": "The initial equilibrium is not a peaceful order but a condemned order: GI Joe Maesch has already been tried, sentenced, and is awaiting execution. The status quo at the novel's opening is the bureaucratic finality of the death sentence — Maesch in his cell, the execution scheduled, the machinery of military justice at rest in its verdict.",
        "disruption": "The disruption that shattered any prior equilibrium was N. Kiddy's betrayal — the denunciation that precipitated Maesch's arrest and death sentence. Encoded in the novel's structure as the cumulative weight of all historical treacheries (Judas, Enkidu), this act of informing destroyed the equilibrium of Maesch's criminal life and set the execution in motion.",
        "recognition": "Recognition is continuous and retrospective: during the 36-minute van ride to the scaffold, Maesch turns inward in sustained reminiscence, mentally reaching backward through his crimes. His consciousness enacts the recognition — he must find a crime monstrous enough to render him calm, which is itself an acknowledgment that the betrayal and condemnation are real and irreversible.",
        "repair": "The attempted repair is purely interior and metaphysical: Maesch searches his memory for an act of sufficient evil to transform himself into an Antisaviour, achieving impassivity before the hangman. This is not a repair of the external situation but an attempt to achieve psychological and cosmic equilibrium — to make his death meaningful by matching infinite evil against infinite Sacrifice.",
        "new_equilibrium": "There is no restored equilibrium. The novel ends at the scaffold with the black loop of the noose falling against the sky onto the calmly standing Maesch. The new state is death — the Gilgamesh thesis enacted: man's struggle ends inescapably in defeat. The only equilibrium achieved is the stillness of the condemned man who has accepted his fate."
      },
      "characters": [
        {
          "name": "The Reviewer",
          "slug": "the-reviewer",
          "aliases": [
            "Narrator"
          ],
          "role": "Critic",
          "summary": "The analytical narrator reviewing Patrick Hannahan's complex novel, Gigamesh, and challenging the hostile literary establishment."
        },
        {
          "name": "Patrick Hannahan",
          "slug": "patrick-hannahan",
          "aliases": [],
          "role": "Author",
          "summary": "An ambitious, meticulous Irish writer who authored the hyper-dense novel Gigamesh and its accompanying Commentary to surpass James Joyce."
        },
        {
          "name": "\"GI Joe\" Maesch",
          "slug": "gi-joe-maesch",
          "aliases": [
            "Gilgamesh",
            "Antisaviour",
            "MESSiah",
            "Redeemer"
          ],
          "role": "Protagonist of Gigamesh",
          "summary": "A notorious American gangster and hired killer sentenced to hang, whose 36-minute journey to the gallows mirrors the tragedy of Gilgamesh."
        },
        {
          "name": "N. Kiddy",
          "slug": "n-kiddy",
          "aliases": [
            "Enkidu",
            "Judas"
          ],
          "role": "Antagonist of Gigamesh",
          "summary": "Maesch's old buddy and an informer who betrays him, bringing about his downfall."
        },
        {
          "name": "Andrew B. Cross",
          "slug": "andrew-b-cross",
          "aliases": [],
          "role": "Minor character in Gigamesh",
          "summary": "A Cincinnati gynecologist murdered by Maesch, whose name is a concentrated node for historical and religious allusions."
        },
        {
          "name": "James Joyce",
          "slug": "james-joyce",
          "aliases": [],
          "role": "Literary Predecessor",
          "summary": "The real-world author of Ulysses and Finnegans Wake whose legacy Hannahan aggressively attempts to outdo."
        }
      ],
      "frameworks_mapped": [
        "Protocol Fiction Mapping",
        "Actantial Model",
        "Todorov's Equilibrium",
        "The Freytag Pyramid",
        "Propp's Morphology",
        "Genette's Narrative",
        "The Monomyth",
        "Dan Harmon",
        "Save the Cat",
        "Kishōtenketsu",
        "The Three-Act Structure",
        "Lévi-Strauss's Binary Oppositions",
        "Cognitive Estrangement",
        "Bakhtin's Chronotope",
        "Aristotelian Poetics",
        "Jungian Archetypal Analysis",
        "Genette's Transtextuality"
      ],
      "score_reliability": {
        "state": "replicated-agree",
        "threshold": 0.2,
        "runs_total": 5,
        "versions_compared": [
          "2.5"
        ],
        "max_spread": 0.15,
        "contested": []
      }
    },
    {
      "slug": "kim_stanley_robinson_green_mars",
      "title": "Green Mars",
      "author": "Kim Stanley Robinson",
      "year": 1993,
      "medium": "book",
      "genre_tags": [],
      "tropes": [],
      "quadrant_scores": {
        "time_linearity": 0.22,
        "pacing_velocity": 0.68,
        "threat_scale": 0.8,
        "protagonist_fate": 0.42,
        "conflict_style": 0.65,
        "price_type": 0.65
      },
      "provenance": {
        "analysis_run": "NTSMR-2.5-claude-sonnet-4-6-low",
        "analysis_body_sha256": "7b94748b0298ab3c83ea231535b6c15d53714777b703060b2d0b8f376c5f88d5",
        "synthesis": {
          "path": "nartopo-tools/artifacts/kim_stanley_robinson_green_mars.md.ntsmr-2-5-claude-sonnet-4-6-low.synthesis.json",
          "sha256": "3fb222e0704a999adfc064f6194b710d0ea19a73ba870561ddfbcec8e29fd213"
        },
        "report": {
          "path": "nartopo-tools/artifacts/kim_stanley_robinson_green_mars.md.ntsmr-2-5-claude-sonnet-4-6-low.report.json",
          "sha256": "a7487b174172ba13c2eb28daa5e584b9cfd254dae2d1348700ace5a5f3c97520"
        },
        "source": {
          "path": "Kim Stanley Robinson/Green Mars.txt",
          "sha256": "81f87c3ab95de680dd5d1a4061df9821ef30c41398ee3854aab7be3d6eecb62c",
          "digest_observed_at": "2026-09-09",
          "digest_at_analysis_run": null,
          "edition": null,
          "edition_status": "unresolved"
        },
        "pipeline_revision_at_run": null,
        "verification": {
          "source": "unverified",
          "human_review": "unreviewed",
          "bibliography": "unverified"
        },
        "issues": [],
        "todorov_status": "recovered-from-synthesis",
        "work_identity": {
          "title": "Green Mars",
          "author": "Kim Stanley Robinson",
          "year": 1993
        }
      },
      "ntsmr": {
        "version": "2.5",
        "primary_run_label": "NTSMR-2.5-claude-sonnet-4-6-low",
        "runs": {
          "NTSMR-2.4-claude-sonnet-4-6-low": {
            "pipeline_version": "2.4",
            "backend": "claude",
            "model": "claude-sonnet-4-6",
            "scores": {
              "time_linearity": 0.28,
              "pacing_velocity": 0.68,
              "threat_scale": 0.78,
              "protagonist_fate": 0.35,
              "conflict_style": 0.62,
              "price_type": 0.55
            },
            "score_space": "site-v1",
            "reasoning_effort": "low"
          },
          "NTSMR-2.5-claude-sonnet-4-6-low": {
            "pipeline_version": "2.5",
            "backend": "claude",
            "model": "claude-sonnet-4-6",
            "scores": {
              "time_linearity": 0.22,
              "pacing_velocity": 0.68,
              "threat_scale": 0.8,
              "protagonist_fate": 0.42,
              "conflict_style": 0.65,
              "price_type": 0.65
            },
            "score_space": "site-v1",
            "reasoning_effort": "low"
          },
          "NTSMR-2.5-balanced-glm-5+deepseek-v3.2": {
            "pipeline_version": "2.5",
            "backend": "openrouter",
            "model": "balanced-routing",
            "scores": {
              "time_linearity": 0.18,
              "pacing_velocity": 0.72,
              "threat_scale": 0.83,
              "protagonist_fate": 0.38,
              "conflict_style": 0.68,
              "price_type": 0.55
            },
            "score_space": "site-v1",
            "score_only": true,
            "source_run_label": "NTSMR-2.5-claude-sonnet-4-6-low"
          }
        }
      },
      "todorov_stages": {
        "equilibrium": "Mars exists in a fragile post-catastrophe underground equilibrium: native Martians like Nirgal are raised in hidden dome colonies, the First Hundred survive in dispersed sanctuaries, and terraforming proceeds slowly under transnat-dominated UNOMA successor authority. Life is constrained but stable, with the underground networks sustaining a parallel society beneath corporate rule.",
        "disruption": "The transnat consolidation accelerates on multiple fronts simultaneously: the new Clarke elevator re-anchors corporate control at Pavonis Mons, Subarashii's aerial lens unleashes planetary-scale ecological destruction, UNTA security forces raid southern sanctuaries and assault Hiroko's colony at Gamete/Zygote, and the Marsfirster attempt to seize the Sheffield Socket fails catastrophically, triggering full UNTA crackdown.",
        "recognition": "The underground recognizes the disruption through a series of converging realizations: Sax witnesses the aerial lens burn zone and confirms its catastrophic planetary scope; Maya, moving fully underground after UNTA tightens Odessa security, understands the revolution can no longer be deferred; Nadia confronts Ann over Red hostage-taking and sees that the plural underground cannot hold together without decisive action; and the failed Sheffield revolt forces all factions to acknowledge the countdown to open conflict.",
        "repair": "The underground executes a coordinated revolution: Nadia's team destroys orbiting metanat weapons platforms with surface-to-space missiles, Nadia peacefully liberates Underbill through bluff, Art mediates the constitutional congress at Dorsa Brevia where the Dorsa Brevia Declaration is ratified, and finally Nadia cuts the Burroughs tent wall to initiate mass evacuation of the city's population using new CO2 masks—a non-violent resolution to the siege that avoids the mass murder of flooding.",
        "new_equilibrium": "The revolution succeeds in fragmentary but real form: Burroughs is evacuated and dispersed across Mars, Earth metanationals reach a cease-fire, India recognizes Martian independence, and the UN Assembly convenes to address the new reality. The First Hundred survivors board a train to Odessa, invoking John Boone's ecstatic spirit and moving forward together. Mars enters a new, unresolved but forward-facing equilibrium—politically sovereign in principle, ecologically transformed beyond reversal, and governed by the imperfect but foundational Dorsa Brevia Declaration."
      },
      "characters": [
        {
          "name": "Nirgal",
          "slug": "nirgal",
          "aliases": [
            "Uncle Nirgie"
          ],
          "role": "Native-born Martian / emerging revolutionary figure",
          "summary": "Native-born Martian child raised in Zygote, distinguished by cold-resistance and visionary perceptual episodes; comes of age through jealousy, journey, and first love."
        },
        {
          "name": "Hiroko",
          "slug": "hiroko",
          "aliases": [],
          "role": "communal mother / spiritual leader",
          "summary": "Leader of the underground agricultural colony who survived the assault, shelters survivors, opens the congress with a quasi-spiritual address, and advocates an 'aerogel revolution' tied to areophany."
        },
        {
          "name": "Coyote",
          "slug": "coyote",
          "aliases": [
            "Desmond"
          ],
          "role": "Trickster/smuggler; underground network operator",
          "summary": "Traveling smuggler and underground network operator; teacher to the children; implements Vlad and Marina's eco-economics; gleefully experiments with mohole robots and asteroid explosions."
        },
        {
          "name": "Peter",
          "slug": "peter",
          "aliases": [],
          "role": "Native Martian / elevator worker",
          "summary": "Contacts Sax about elevator cable oscillation risk from accelerating Deimos; seeks Sax's advice on handling the navigation AI"
        },
        {
          "name": "Dao",
          "slug": "dao",
          "aliases": [],
          "role": "rival",
          "summary": "One of the oldest sansei; becomes Jackie's lover, causing Nirgal's heartbreak; later embraces Jackie in the bathhouse after her declaration to Nirgal."
        },
        {
          "name": "Maya",
          "slug": "maya",
          "aliases": [
            "Bad Witch"
          ],
          "role": "First Hundred revolutionary, political voice",
          "summary": "Politically sidelined by Jackie, Maya manages logistics at the safe house while fearing strategic disaster; later performs heroically coordinating Burroughs resistance and rejects the flood plan."
        },
        {
          "name": "Nadia",
          "slug": "nadia",
          "aliases": [
            "General Nadia",
            "designated arbitrator",
            "universal solvent"
          ],
          "role": "Engineer, revolutionary coordinator, First Hundred",
          "summary": "Exhausted but resolute, she endures the march to Libya Station and anchors the group emotionally, invoking Arkady and holding space for collective grief and hope."
        },
        {
          "name": "Sax",
          "slug": "sax",
          "aliases": [
            "Stephen"
          ],
          "role": "Terraforming scientist, underground operative",
          "summary": "Lead terraformer operating under an alias; argues for record-forgery to re-enter the surface world; references Spencer's successful identity change as a model."
        },
        {
          "name": "Vlad",
          "slug": "vlad",
          "aliases": [],
          "role": "First Hundred scientist / eco-economics theorist",
          "summary": "First Hundred scientist; co-develops the two-track eco-economics system with Marina; advocates returning to the surface world for proper research."
        },
        {
          "name": "Marina",
          "slug": "marina",
          "aliases": [],
          "role": "First Hundred eco-economist",
          "summary": "Implicitly asserts Frank Chalmers arranged John Boone's murder in a conversation Maya overhears; becomes the target of Maya's furious confrontation"
        },
        {
          "name": "Spencer Jackson",
          "slug": "spencer-jackson",
          "aliases": [
            "Spencer",
            "Steve"
          ],
          "role": "First Hundred engineer; underground operative",
          "summary": "Lives in same Praxis building as Maya in Odessa; supplies Sax with bioceramics and weapons parts; provides Maya social continuity and a tacit apology for past recriminations"
        },
        {
          "name": "Michel Duval",
          "slug": "michel-duval",
          "aliases": [],
          "role": "First Hundred psychologist; Maya's partner",
          "summary": "Counsels Maya after her breakdown over the Frank revelation; encourages active investigation over paralysis; moves into apartment adjacent to Maya's in Odessa as a stabilizing presence"
        },
        {
          "name": "Jackie",
          "slug": "jackie",
          "aliases": [],
          "role": "Native Martian political leader; Marsfirst figurehead",
          "summary": "Fastest runner in Zygote, granddaughter of Hiroko; Nirgal's first love who declares exclusivity then immediately embraces Dao, embodying the instability of early desire."
        },
        {
          "name": "Art",
          "slug": "art",
          "aliases": [
            "Randolph"
          ],
          "role": "Praxis recruit turned covert diplomat",
          "summary": "Conducts diplomatic negotiations with Switzerland and the World Court while liaising between underground factions; briefs Maya on Praxis intelligence about metanational power struggles on Earth"
        },
        {
          "name": "Fort",
          "slug": "fort",
          "aliases": [
            "William Fort"
          ],
          "role": "Praxis CEO and mission sender",
          "summary": "Earth-based Praxis executive who attends the congress and is interrogated by Sax about metanational power structures and Praxis's progressive coalition strategy."
        },
        {
          "name": "Joyce",
          "slug": "joyce",
          "aliases": [],
          "role": "Praxis scholarship apprentice",
          "summary": "Young woman in Praxis scholarship program at Fort's estate; answers Art's question about the program's purpose."
        },
        {
          "name": "Sam",
          "slug": "sam",
          "aliases": [],
          "role": "Fellow seminar recruit",
          "summary": "Cynical participant in Fort's corporate seminar; skeptical of Fort's motives and critical of the 'cult' atmosphere."
        },
        {
          "name": "Max",
          "slug": "max",
          "aliases": [],
          "role": "Fellow seminar recruit",
          "summary": "Sam's companion in skepticism; shares his dismissive attitude toward Fort's lectures."
        },
        {
          "name": "Ann",
          "slug": "ann",
          "aliases": [],
          "role": "Red ideologue, geologist, First Hundred",
          "summary": "Refuses to control radical Reds in Sabishii; declares she'd be happy if Burroughs were wrecked; appears at the evacuation column to report that Kasei destroyed the dike."
        },
        {
          "name": "Simon",
          "slug": "simon",
          "aliases": [],
          "role": "Ann's deceased partner",
          "summary": "Present only in Ann's grief, dreams, and the beach scene where she feels him beneath her; his death shapes her psychological collapse."
        },
        {
          "name": "Ivana",
          "slug": "ivana",
          "aliases": [],
          "role": "Red founder",
          "summary": "Co-greets Ann at the Red mesa base; identified earlier as one of the movement's founders."
        },
        {
          "name": "Sax Russell",
          "slug": "sax-russell",
          "aliases": [
            "Stephen Lindholm",
            "Lindholm",
            "Stephen",
            "General Sax"
          ],
          "role": "Terraforming scientist; covert revolutionary strategist",
          "summary": "Former head of the terraforming project, now operating under the false identity of Stephen Lindholm within Biotique in Burroughs; pursues biological research while maintaining cover, enters and exits an affair with Phyllis, attends the M-38 conference."
        },
        {
          "name": "Ann Clayborne",
          "slug": "ann-clayborne",
          "aliases": [],
          "role": "First Hundred geologist / Red ideologue",
          "summary": "Red ideologue who argues with Sax over terraforming ethics; refuses to accept his minimum viable model and vows continued resistance; depicted as prophet-like and implacable."
        },
        {
          "name": "Claire",
          "slug": "claire",
          "aliases": [],
          "role": "Biotique scientist",
          "summary": "Biotique scientist who works with Sax/Lindholm; proposes the Arena Glacier fieldwork trip and advocates expanding terraforming beyond the alpine zone."
        },
        {
          "name": "Berkina",
          "slug": "berkina",
          "aliases": [],
          "role": "Biotique scientist",
          "summary": "Biotique scientist; provides information about Burroughs's political structure and the Transitional Authority; co-worker in the nitrogen problem discussions."
        },
        {
          "name": "Jessica",
          "slug": "jessica",
          "aliases": [],
          "role": "Biotique scientist",
          "summary": "Colleague of Sax at the conference; notes that the Subarashii approach represents a fundamentally different two-phase model and suggests transnat executives may prefer people staying in tents."
        },
        {
          "name": "Phyllis",
          "slug": "phyllis",
          "aliases": [],
          "role": "Transitional Authority figure / antagonist",
          "summary": "First Hundred member who fails to recognize Sax in his disguise; initiates a brief affair with him at Arena Glacier and ends it efficiently on returning to Burroughs; associated with transnat power circles."
        },
        {
          "name": "Borazjani",
          "slug": "borazjani",
          "aliases": [
            "H. X. Borazjani"
          ],
          "role": "Minor/functional",
          "summary": "Leading atmospheric chemist delivering the M-38 keynote synthesizing all warming contributions to the Martian terraforming effort up to 2100."
        },
        {
          "name": "Maya Toitovna",
          "slug": "maya-toitovna",
          "aliases": [
            "Ludmilla Novosibir-skaya"
          ],
          "role": "POV protagonist; First Hundred revolutionary coordinator",
          "summary": "POV character across most of this chunk; devastated by Marina's revelation about Frank and John; investigates Frank's biography; settles in Odessa under cover identity coordinating Hellas flooding; organizes underground political meetings; advocates coordinated revolution"
        },
        {
          "name": "Kasei",
          "slug": "kasei",
          "aliases": [],
          "role": "Native Martian militant; Hiroko's son",
          "summary": "Gray-haired mature native with a brooding temper who plans to storm and demolish the Kasei Vallis security compound using decryption codes obtained with Coyote"
        },
        {
          "name": "Vijjika",
          "slug": "vijjika",
          "aliases": [],
          "role": "supporting",
          "summary": "Bogdanovist woman who explains the gift economy and nitrogen standard to Art."
        },
        {
          "name": "Zeyk",
          "slug": "zeyk",
          "aliases": [],
          "role": "Arab Martian elder; underground participant",
          "summary": "Has perfect, burdensome memory of the night John Boone was murdered in Nicosia; recounts Selim's dying accusation of Chalmers while acknowledging the irresolvability of the full conspiracy"
        },
        {
          "name": "Nazik",
          "slug": "nazik",
          "aliases": [],
          "role": "Zeyk's wife; Arab Martian underground member",
          "summary": "Zeyk's partner who participates in the campfire conversation and assists Maya with her helmet before the solitary walk"
        },
        {
          "name": "Antar",
          "slug": "antar",
          "aliases": [],
          "role": "supporting",
          "summary": "Handsome young Bedu man from an important family; strikes up a friendship with Jackie at the caravanserai."
        },
        {
          "name": "Dhu el-Nun",
          "slug": "dhu-el-nun",
          "aliases": [],
          "role": "supporting",
          "summary": "Small black leader of the Sufi canyon settlement; stages the sunrise ritual using the travelers as living stained glass."
        },
        {
          "name": "Tanna",
          "slug": "tanna",
          "aliases": [],
          "role": "supporting",
          "summary": "Polynesian woman from Vanuatu; articulates the indigenous movement's philosophy of blending archaic and high-tech Martian cultures."
        },
        {
          "name": "Ursula",
          "slug": "ursula",
          "aliases": [],
          "role": "First Hundred scientist",
          "summary": "Participates in strategy debate; warns that coercing radicals leads to civil war"
        },
        {
          "name": "Diana",
          "slug": "diana",
          "aliases": [],
          "role": "Native Martian / Deep Waters colleague",
          "summary": "Assesses the northern ocean's likely sea level and suggests using the aerial-lens canal as runoff if the ocean overshoots its target level"
        },
        {
          "name": "Frank Chalmers",
          "slug": "frank-chalmers",
          "aliases": [],
          "role": "Historical figure / suspected conspirator",
          "summary": "Subject of biographical article Maya reads; his possible role in John Boone's murder is the central psychological obsession of this chunk"
        },
        {
          "name": "Ariadne",
          "slug": "ariadne",
          "aliases": [],
          "role": "Dorsa Brevia contact",
          "summary": "Rebukes Maya's appeals for restraint, telling her that the Dorsa Brevia team working with Sax finds Maya's advice either obvious or wrong"
        }
      ],
      "frameworks_mapped": [
        "Protocol Fiction Mapping",
        "Actantial Model",
        "Todorov's Equilibrium",
        "The Freytag Pyramid",
        "Propp's Morphology",
        "Genette's Narrative",
        "The Monomyth",
        "Dan Harmon",
        "Save the Cat",
        "Kishōtenketsu",
        "The Three-Act Structure",
        "Lévi-Strauss's Binary Oppositions",
        "Cognitive Estrangement",
        "Bakhtin's Chronotope",
        "Aristotelian Poetics",
        "Jungian Archetypal Analysis",
        "Genette's Transtextuality"
      ],
      "score_reliability": {
        "state": "replicated-agree",
        "threshold": 0.2,
        "runs_total": 3,
        "versions_compared": [
          "2.5"
        ],
        "max_spread": 0.1,
        "contested": []
      }
    },
    {
      "slug": "stanislaw_lem_gruppenfuhrer_louis_xvi",
      "title": "Gruppenfuhrer Louis XVI",
      "author": "Stanislaw Lem",
      "year": 1971,
      "medium": "short_story",
      "genre_tags": [],
      "tropes": [],
      "quadrant_scores": {
        "time_linearity": 0.65,
        "pacing_velocity": 0.75,
        "threat_scale": 0.4,
        "protagonist_fate": 0.8,
        "conflict_style": 0.75,
        "price_type": 0.8
      },
      "provenance": {
        "analysis_run": "NTSMR-2.5-claude-sonnet-4-6-low",
        "analysis_body_sha256": "43e52c8613a26f4eb962c9da449aa8c728789761f5c6bfbb8c5aef422b09f78c",
        "synthesis": {
          "path": "nartopo-tools/artifacts/stanislaw_lem_gruppenfuhrer_louis_xvi.md.ntsmr-2-5-claude-sonnet-4-6-low.synthesis.json",
          "sha256": "f2538cdc766f46029e235c78ba650075ece51ad5d6513a4fc3b8c1a41d93dc4a"
        },
        "report": {
          "path": "nartopo-tools/artifacts/stanislaw_lem_gruppenfuhrer_louis_xvi.md.ntsmr-2-5-claude-sonnet-4-6-low.report.json",
          "sha256": "ede4d64bf46dd86f4c5d682098c3298d2e567b1fa310bd526e69bca77e31052d"
        },
        "source": {
          "path": "Stanislaw Lem/Gruppenfuhrer Louis XVI.txt",
          "sha256": "c12092bdbc8a03c8ecb1ce508a7a34d8982254506a908b216f77285bb11ab85b",
          "digest_observed_at": "2026-09-09",
          "digest_at_analysis_run": null,
          "edition": null,
          "edition_status": "unresolved"
        },
        "pipeline_revision_at_run": null,
        "verification": {
          "source": "unverified",
          "human_review": "unreviewed",
          "bibliography": "unverified"
        },
        "issues": [],
        "todorov_status": "recovered-from-synthesis",
        "work_identity": {
          "title": "Gruppenfuhrer Louis XVI",
          "author": "Stanislaw Lem",
          "year": 1971
        }
      },
      "ntsmr": {
        "version": "2.5",
        "primary_run_label": "NTSMR-2.5-claude-sonnet-4-6-low",
        "runs": {
          "NTSMR-2.3-gemini-3.1-pro-preview": {
            "pipeline_version": "2.3",
            "backend": "gemini",
            "model": "gemini-3.1-pro-preview",
            "scores": {
              "time_linearity": 0.85,
              "pacing_velocity": 0.75,
              "threat_scale": 0.9,
              "protagonist_fate": 0.95,
              "conflict_style": 0.75,
              "price_type": 0.95
            },
            "score_space": "site-v1"
          },
          "NTSMR-2.3-claude-sonnet-4-6-low": {
            "pipeline_version": "2.3",
            "backend": "claude",
            "model": "claude-sonnet-4-6",
            "scores": {
              "time_linearity": 0.65,
              "pacing_velocity": 0.72,
              "threat_scale": 0.78,
              "protagonist_fate": 0.82,
              "conflict_style": 0.75,
              "price_type": 0.85
            },
            "score_space": "site-v1",
            "reasoning_effort": "low"
          },
          "NTSMR-2.4-claude-sonnet-4-6-low": {
            "pipeline_version": "2.4",
            "backend": "claude",
            "model": "claude-sonnet-4-6",
            "scores": {
              "time_linearity": 0.55,
              "pacing_velocity": 0.65,
              "threat_scale": 0.25,
              "protagonist_fate": 0.8,
              "conflict_style": 0.65,
              "price_type": 0.6
            },
            "score_space": "site-v1",
            "reasoning_effort": "low"
          },
          "NTSMR-2.5-claude-sonnet-4-6-low": {
            "pipeline_version": "2.5",
            "backend": "claude",
            "model": "claude-sonnet-4-6",
            "scores": {
              "time_linearity": 0.65,
              "pacing_velocity": 0.75,
              "threat_scale": 0.4,
              "protagonist_fate": 0.8,
              "conflict_style": 0.75,
              "price_type": 0.8
            },
            "score_space": "site-v1",
            "reasoning_effort": "low"
          },
          "NTSMR-2.5-balanced-glm-5+deepseek-v3.2": {
            "pipeline_version": "2.5",
            "backend": "openrouter",
            "model": "balanced-routing",
            "scores": {
              "time_linearity": 0.7,
              "pacing_velocity": 0.75,
              "threat_scale": 0.4,
              "protagonist_fate": 0.8,
              "conflict_style": 0.8,
              "price_type": 0.75
            },
            "score_space": "site-v1",
            "score_only": true,
            "source_run_label": "NTSMR-2.5-claude-sonnet-4-6-low"
          }
        }
      },
      "todorov_stages": {
        "equilibrium": "Taudlitz's mock French monarchy at 'Parisia' has reached a stable, self-sustaining order: German fugitives, bought women, and coerced Indian laborers all perform their assigned roles, a special vocabulary supplants reality, and the court fiction — maintained first by payment, then by torture and compulsion — has hardened into a genuine second nature that all parties inhabit without irony.",
        "disruption": "The special language that sustains the kingdom begins to crack from within: ten courtiers form a conspiracy to murder Taudlitz and seize his chest of dollars, yet find themselves psychologically paralyzed, unable to relinquish their titles and identities even as they plot regicide — the closed system generates its own self-contradictory revolt.",
        "recognition": "Bertrand Gülsenhirn is identified as the figure capable of naming the lie — the one consciousness still capable of seeing the fiction as fiction — yet at the private breakfast when Taudlitz gently prompts him, Bertrand cannot bring himself to speak the truth and instead addresses Taudlitz as 'Your Majesty,' capitulating into passive, instinctive complicity and confirming the system's hold even over its most skeptical witness.",
        "repair": "Fourteen conspirators and the palace guard captain break into Taudlitz's bedroom at midnight in an attempt to kill the king and escape with the treasure; the repair attempt is the murder itself — a violent bid to dissolve the fiction by eliminating its author and absconding with the material basis of the kingdom.",
        "new_equilibrium": "The trunk's second compartment holds only counterfeit dollars — the real funds long spent — leaving the murderers with no means of flight and no world to return to. With bridges burned, they spontaneously revert to court language over Taudlitz's corpse and immediately elect a new king: 'Le roi est mort, vive le roi.' The kingdom continues, now self-perpetuating without its founder, its fictive order more inescapable than ever — confirmed by the final image of Argentine mounted police at the gate, the drawbridge grinding open onto an impossible collision of two temporal worlds."
      },
      "characters": [
        {
          "name": "Alfred Zellermann",
          "slug": "alfred-zellermann",
          "aliases": [],
          "role": "Author of the reviewed novel",
          "summary": "A well-known literary historian and doctor of anthropology in his sixties who spent the Third Reich as a passive observer."
        },
        {
          "name": "Siegfried Taudlitz",
          "slug": "siegfried-taudlitz",
          "aliases": [
            "Louis XVI",
            "His Lordship",
            "His Highness"
          ],
          "role": "Former SS Gruppenführer / Fake King",
          "summary": "A fifty-year-old fugitive from the crushed Reich who organizes an expedition into the Argentine interior, builds Parisia, and reigns as an absurd reincarnation of Louis XVI."
        },
        {
          "name": "Johann Wieland",
          "slug": "johann-wieland",
          "aliases": [
            "Heinz Karl Muller",
            "Duc de Rohan",
            "Monsieur le Due"
          ],
          "role": "Taudlitz's emissary and confidant",
          "summary": "A former Waffen SS physician at Mauthausen who acts as Taudlitz's envoy to Europe to retrieve Bertrand and envies the role of cardinal."
        },
        {
          "name": "Hans Mehrer",
          "slug": "hans-mehrer",
          "aliases": [
            "Cardinal Richelieu"
          ],
          "role": "Taudlitz's confidant",
          "summary": "One of Taudlitz's three blindly loyal men, described as slow-witted, who envies the Duc de Rohan's ability to justify his abuses."
        },
        {
          "name": "Erich Palatzky",
          "slug": "erich-palatzky",
          "aliases": [
            "Duc de Montbazon"
          ],
          "role": "Taudlitz's confidant",
          "summary": "One of Taudlitz's initial three blindly loyal enforcers."
        },
        {
          "name": "Bertrand Gülsenhirn",
          "slug": "bertrand-glsenhirn",
          "aliases": [
            "the Infante",
            "Hamlet"
          ],
          "role": "Taudlitz's nephew and heir",
          "summary": "A twenty-one-year-old former waiter from Hamburg who is lured to Parisia, crowned the Infante, and struggles with the unreality of the court."
        },
        {
          "name": "Hans Schaeffert",
          "slug": "hans-schaeffert",
          "aliases": [
            "Archbishop of Paris"
          ],
          "role": "Court Cardinal / Projectionist",
          "summary": "A former Gestapo chauffeur who acts as a cardinal and projects stag films in the castle cellar."
        },
        {
          "name": "Hans Wehrholz",
          "slug": "hans-wehrholz",
          "aliases": [
            "Marquis de Beaujolais"
          ],
          "role": "Courtier",
          "summary": "A courtier who physically beats his spouse and mocks her past as a prostitute."
        },
        {
          "name": "Cardinal du Sauterne",
          "slug": "cardinal-du-sauterne",
          "aliases": [],
          "role": "Court Cardinal",
          "summary": "An ex-commissary who helps change film reels in the cellar and rapes Indian boys who assist at Mass."
        },
        {
          "name": "Prince de Chartreuse",
          "slug": "prince-de-chartreuse",
          "aliases": [],
          "role": "Courtier",
          "summary": "A courtier who was beheaded for high treason after drunkenly calling the palace a \"German whorehouse.\""
        },
        {
          "name": "Marquis Châteauneuf du Pape",
          "slug": "marquis-chteauneuf-du-pape",
          "aliases": [],
          "role": "Master of ceremonies",
          "summary": "The master of ceremonies at Taudlitz's court, named after a wine."
        },
        {
          "name": "Due de Salignac",
          "slug": "due-de-salignac",
          "aliases": [],
          "role": "Courtier",
          "summary": "A courtier mentioned in a conversation with the Archbishop of Paris."
        },
        {
          "name": "Duchesse",
          "slug": "duchesse",
          "aliases": [],
          "role": "Courtier / former prostitute",
          "summary": "An older former prostitute who takes Bertrand to bed and sternly advises him to keep quiet to survive."
        },
        {
          "name": "Captain of the palace guard",
          "slug": "captain-of-the-palace-guard",
          "aliases": [],
          "role": "Conspirator",
          "summary": "An accomplice who joins fourteen courtiers in breaking into the royal bedroom."
        }
      ],
      "frameworks_mapped": [
        "Protocol Fiction Mapping",
        "Actantial Model",
        "Todorov's Equilibrium",
        "The Freytag Pyramid",
        "Propp's Morphology",
        "Genette's Narrative",
        "The Monomyth",
        "Dan Harmon",
        "Save the Cat",
        "Kishōtenketsu",
        "The Three-Act Structure",
        "Lévi-Strauss's Binary Oppositions",
        "Cognitive Estrangement",
        "Bakhtin's Chronotope",
        "Aristotelian Poetics",
        "Jungian Archetypal Analysis",
        "Genette's Transtextuality"
      ],
      "score_reliability": {
        "state": "replicated-agree",
        "threshold": 0.2,
        "runs_total": 5,
        "versions_compared": [
          "2.5"
        ],
        "max_spread": 0.05,
        "contested": []
      }
    },
    {
      "slug": "ted_chiang_hell_is_the_absence_of_god",
      "title": "Hell Is the Absence of God",
      "author": "Ted Chiang",
      "year": 2002,
      "medium": "short_story",
      "genre_tags": [],
      "tropes": [],
      "quadrant_scores": {
        "time_linearity": 0.28,
        "pacing_velocity": 0.78,
        "threat_scale": 0.35,
        "protagonist_fate": 0.92,
        "conflict_style": 0.88,
        "price_type": 0.87
      },
      "provenance": {
        "analysis_run": "NTSMR-2.5-claude-sonnet-4-6-low",
        "analysis_body_sha256": "aeb70af94fa5eb70d5762bb56bef4d0cd7d08ccc5c6ec5361a62402ea81ca648",
        "synthesis": {
          "path": "nartopo-tools/artifacts/ted_chiang_hell_is_the_absence_of_god.md.ntsmr-2-5-claude-sonnet-4-6-low.synthesis.json",
          "sha256": "57d177c95d3850544c5eac4532b6225ff7e3b0a90ed6f7c988521f37dd146f66"
        },
        "report": {
          "path": "nartopo-tools/artifacts/ted_chiang_hell_is_the_absence_of_god.md.ntsmr-2-5-claude-sonnet-4-6-low.report.json",
          "sha256": "98221366eeac327a6a2c25f4822aa3e53685d2ca4d749c014ad8b3010e27c03e"
        },
        "source": {
          "path": "Ted Chiang/Hell Is the Absence of God.txt",
          "sha256": "9c1981db0b52fa26c2d71957f091d79413caaff9a5646b9dd41e28e8201ef89d",
          "digest_observed_at": "2026-09-09",
          "digest_at_analysis_run": null,
          "edition": null,
          "edition_status": "unresolved"
        },
        "pipeline_revision_at_run": null,
        "verification": {
          "source": "unverified",
          "human_review": "unreviewed",
          "bibliography": "unverified"
        },
        "issues": [],
        "todorov_status": "recovered-from-synthesis",
        "work_identity": {
          "title": "Hell Is the Absence of God",
          "author": "Ted Chiang",
          "year": 2002
        }
      },
      "ntsmr": {
        "version": "2.5",
        "primary_run_label": "NTSMR-2.5-claude-sonnet-4-6-low",
        "runs": {
          "NTSMR-2.3-gemini-3.1-pro-preview": {
            "pipeline_version": "2.3",
            "backend": "gemini",
            "model": "gemini-3.1-pro-preview",
            "scores": {
              "time_linearity": 0.35,
              "pacing_velocity": 0.75,
              "threat_scale": 0.9,
              "protagonist_fate": 1,
              "conflict_style": 0.85,
              "price_type": 0.95
            },
            "score_space": "site-v1"
          },
          "NTSMR-2.3-claude-sonnet-4-6-low": {
            "pipeline_version": "2.3",
            "backend": "claude",
            "model": "claude-sonnet-4-6",
            "scores": {
              "time_linearity": 0.35,
              "pacing_velocity": 0.72,
              "threat_scale": 0.65,
              "protagonist_fate": 0.95,
              "conflict_style": 0.75,
              "price_type": 0.85
            },
            "score_space": "site-v1",
            "reasoning_effort": "low"
          },
          "NTSMR-2.4-claude-sonnet-4-6-low": {
            "pipeline_version": "2.4",
            "backend": "claude",
            "model": "claude-sonnet-4-6",
            "scores": {
              "time_linearity": 0.45,
              "pacing_velocity": 0.7,
              "threat_scale": 0.35,
              "protagonist_fate": 0.92,
              "conflict_style": 0.8,
              "price_type": 0.75
            },
            "score_space": "site-v1",
            "reasoning_effort": "low"
          },
          "NTSMR-2.5-claude-sonnet-4-6-low": {
            "pipeline_version": "2.5",
            "backend": "claude",
            "model": "claude-sonnet-4-6",
            "scores": {
              "time_linearity": 0.28,
              "pacing_velocity": 0.78,
              "threat_scale": 0.35,
              "protagonist_fate": 0.92,
              "conflict_style": 0.88,
              "price_type": 0.87
            },
            "score_space": "site-v1",
            "reasoning_effort": "low"
          },
          "NTSMR-2.5-balanced-glm-5+deepseek-v3.2": {
            "pipeline_version": "2.5",
            "backend": "openrouter",
            "model": "balanced-routing",
            "scores": {
              "time_linearity": 0.2,
              "pacing_velocity": 0.75,
              "threat_scale": 0.35,
              "protagonist_fate": 0.85,
              "conflict_style": 0.8,
              "price_type": 0.8
            },
            "score_space": "site-v1",
            "score_only": true,
            "source_run_label": "NTSMR-2.5-claude-sonnet-4-6-low"
          }
        }
      },
      "todorov_stages": {
        "equilibrium": "Neil Fisk lives a secular, mundane life as an apartment superintendent, accepting his congenital leg deficiency as a medical accident rather than divine punishment, and viewing God's actions as abstract events that befall other people. His marriage to Sarah provides personal stability within this godless contentment.",
        "disruption": "The angel Nathanael's visitation kills Sarah via flying glass, shattering Neil's mundane equilibrium and forcing a confrontation with God he had never sought or anticipated.",
        "recognition": "Neil encounters the theological paradox at the support group: to reach Heaven and reunite with Sarah, he must love God sincerely, but he cannot manufacture love he does not feel — a recognition articulated explicitly by Phil Soames and confirmed by Neil's own failed attempts at conventional devotion.",
        "repair": "Neil exhausts every available path to genuine devotion — sermons, spiritual advisers, support groups, consultation with witnesses like Benny Vasquez — and ultimately considers the bad advice of his in-laws' punitive narrative as a potential starting point, with the narrator noting that bad advice can point a man in the right direction.",
        "new_equilibrium": "Neil ends in Hell, his soul condemned not through moral failure but through divine inscrutableness, yet he has achieved unconditional love of God — the very thing the story announced he would come to feel. His eternal suffering is inseparable from his unreturnable, unbounded devotion: a new equilibrium defined by love without hope, purpose, or reciprocity."
      },
      "characters": [
        {
          "name": "Neil Fisk",
          "slug": "neil-fisk",
          "aliases": [],
          "role": "Neil's wife",
          "summary": "A man born with a shortened leg who is consumed by grief after his wife's death. He desperately tries to find a way to genuinely love God to be reunited with her, ultimately becoming a light-seeker, dying in a crash, and going to Hell despite achieving absolute devotion."
        },
        {
          "name": "Janice Reilly",
          "slug": "janice-reilly",
          "aliases": [],
          "role": "Inspirational speaker and Pilgrim",
          "summary": "A woman born legless after Bardiel's visitation who became a speaker for the disabled. After Rashiel miraculously restores her legs, she goes on a pilgrimage to return the gift and is eventually struck by Heaven's light."
        },
        {
          "name": "Ethan Mead",
          "slug": "ethan-mead",
          "aliases": [
            "Claire"
          ],
          "role": "Librarian and Witness",
          "summary": "A librarian who witnesses Rashiel's visitation and believes his destiny is tied to Janice Reilly. He leaves his wife to accompany Janice on her pilgrimage and witnesses both Neil's descent and Janice's transformation."
        },
        {
          "name": "Benny Vasquez",
          "slug": "benny-vasquez",
          "aliases": [],
          "role": "Eyeless Devotee",
          "summary": "A minor celebrity whose eyes were erased by Heaven's light, granting him a state of blissful, absolute devotion that Neil tries to understand."
        },
        {
          "name": "Tony Crane",
          "slug": "tony-crane",
          "aliases": [],
          "role": "Support group member",
          "summary": "A man whose wife died in a visitation who now exhibits groveling devotion to God and advises Neil to do the same."
        },
        {
          "name": "Robin Pearson",
          "slug": "robin-pearson",
          "aliases": [],
          "role": "Bereaved widow",
          "summary": "A woman who committed suicide to rejoin her husband in Hell after realizing a nurse had lied about his soul ascending during Makatiel's visitation."
        },
        {
          "name": "Phil Soames",
          "slug": "phil-soames",
          "aliases": [],
          "role": "Support group member",
          "summary": "An attendee who points out the logical paradox that loving God solely as a means to reunite with a deceased spouse is not true devotion."
        },
        {
          "name": "Valerie Tommasino",
          "slug": "valerie-tommasino",
          "aliases": [],
          "role": "Support group member",
          "summary": "An attendee who advocates the humanist position, refusing to love a God who inflicts arbitrary pain."
        },
        {
          "name": "Sarah's parents",
          "slug": "sarahs-parents",
          "aliases": [],
          "role": "In-laws",
          "summary": "Sarah's parents who live in a suburban colonial and cruelly blame Neil's lack of devotion for their daughter's death."
        },
        {
          "name": "Nathanael",
          "slug": "nathanael",
          "aliases": [],
          "role": "Angel",
          "summary": "The angel whose visitation in a downtown shopping district caused miracles but also resulted in the death of Sarah Fisk."
        },
        {
          "name": "Rashiel",
          "slug": "rashiel",
          "aliases": [],
          "role": "Angel",
          "summary": "The angel who restored Janice's legs and whose visitation Ethan Mead witnessed in a parking lot."
        },
        {
          "name": "Bardiel",
          "slug": "bardiel",
          "aliases": [],
          "role": "Angel",
          "summary": "The angel whose appearance during a hailstorm caused Janice to be born without legs."
        },
        {
          "name": "Makatiel",
          "slug": "makatiel",
          "aliases": [],
          "role": "Angel",
          "summary": "The angel during whose visitation Robin Pearson's husband was afflicted with stomach cancer and died."
        },
        {
          "name": "Barakiel",
          "slug": "barakiel",
          "aliases": [],
          "role": "Angel",
          "summary": "A seething mass of silver flames that Neil pursues in his truck at the holy site, resulting in his fatal crash."
        },
        {
          "name": "Barry Larsen",
          "slug": "barry-larsen",
          "aliases": [],
          "role": "Serial killer",
          "summary": "A serial rapist and murderer who saw Heaven's light while disposing of a body and whose soul was accepted into Heaven."
        }
      ],
      "frameworks_mapped": [
        "Protocol Fiction Mapping",
        "Actantial Model",
        "Todorov's Equilibrium",
        "The Freytag Pyramid",
        "Propp's Morphology",
        "Genette's Narrative",
        "The Monomyth",
        "Dan Harmon",
        "Save the Cat",
        "Kishōtenketsu",
        "The Three-Act Structure",
        "Lévi-Strauss's Binary Oppositions",
        "Cognitive Estrangement",
        "Bakhtin's Chronotope",
        "Aristotelian Poetics",
        "Jungian Archetypal Analysis",
        "Genette's Transtextuality"
      ],
      "score_reliability": {
        "state": "replicated-agree",
        "threshold": 0.2,
        "runs_total": 5,
        "versions_compared": [
          "2.5"
        ],
        "max_spread": 0.08,
        "contested": []
      }
    },
    {
      "slug": "stanislaw_lem_how_the_world_was_saved",
      "title": "How the World Was Saved",
      "author": "Stanislaw Lem",
      "year": 1965,
      "medium": "short_story",
      "genre_tags": [],
      "tropes": [],
      "quadrant_scores": {
        "time_linearity": 0.08,
        "pacing_velocity": 0.45,
        "threat_scale": 0.95,
        "protagonist_fate": 0.8,
        "conflict_style": 0.55,
        "price_type": 0.7
      },
      "provenance": {
        "analysis_run": "NTSMR-2.5-claude-sonnet-4-6-low",
        "analysis_body_sha256": "ffeafb8ab518ef6374f0cc284e2bd8a0d9430adf31cf2193118aa41e0e97cb89",
        "synthesis": {
          "path": "nartopo-tools/artifacts/stanislaw_lem_how_the_world_was_saved.md.ntsmr-2-5-claude-sonnet-4-6-low.synthesis.json",
          "sha256": "7aa97d0e7e2bb7cd6f2ac089988412b8b0eac4e50c6f6c9ce99d67bd5760949f"
        },
        "report": {
          "path": "nartopo-tools/artifacts/stanislaw_lem_how_the_world_was_saved.md.ntsmr-2-5-claude-sonnet-4-6-low.report.json",
          "sha256": "aee56d30d993d884e89b288c8200d68f7c44d39cc454898aa126da98bdcd00a8"
        },
        "source": {
          "path": "Stanislaw Lem/How the World Was Saved.txt",
          "sha256": "26467f26b01553bc112d1a8088e39a89e05bef88eef3a783bcd3e04464f524fa",
          "digest_observed_at": "2026-09-09",
          "digest_at_analysis_run": null,
          "edition": null,
          "edition_status": "unresolved"
        },
        "pipeline_revision_at_run": null,
        "verification": {
          "source": "unverified",
          "human_review": "unreviewed",
          "bibliography": "unverified"
        },
        "issues": [],
        "todorov_status": "recovered-from-synthesis",
        "work_identity": {
          "title": "How the World Was Saved",
          "author": "Stanislaw Lem",
          "year": 1965
        }
      },
      "ntsmr": {
        "version": "2.5",
        "primary_run_label": "NTSMR-2.5-claude-sonnet-4-6-low",
        "runs": {
          "NTSMR-2.3-gemini-3.1-pro-preview": {
            "pipeline_version": "2.3",
            "backend": "gemini",
            "model": "gemini-3.1-pro-preview",
            "scores": {
              "time_linearity": 0.1,
              "pacing_velocity": 0.4,
              "threat_scale": 1,
              "protagonist_fate": 0.8,
              "conflict_style": 0.3,
              "price_type": 0.9
            },
            "score_space": "site-v1"
          },
          "NTSMR-2.3-claude-sonnet-4-6-low": {
            "pipeline_version": "2.3",
            "backend": "claude",
            "model": "claude-sonnet-4-6",
            "scores": {
              "time_linearity": 0.05,
              "pacing_velocity": 0.72,
              "threat_scale": 0.85,
              "protagonist_fate": 0.78,
              "conflict_style": 0.82,
              "price_type": 0.75
            },
            "score_space": "site-v1",
            "reasoning_effort": "low"
          },
          "NTSMR-2.4-claude-sonnet-4-6-low": {
            "pipeline_version": "2.4",
            "backend": "claude",
            "model": "claude-sonnet-4-6",
            "scores": {
              "time_linearity": 0.08,
              "pacing_velocity": 0.28,
              "threat_scale": 0.88,
              "protagonist_fate": 0.78,
              "conflict_style": 0.45,
              "price_type": 0.55
            },
            "score_space": "site-v1",
            "reasoning_effort": "low"
          },
          "NTSMR-2.5-claude-sonnet-4-6-low": {
            "pipeline_version": "2.5",
            "backend": "claude",
            "model": "claude-sonnet-4-6",
            "scores": {
              "time_linearity": 0.08,
              "pacing_velocity": 0.45,
              "threat_scale": 0.95,
              "protagonist_fate": 0.8,
              "conflict_style": 0.55,
              "price_type": 0.7
            },
            "score_space": "site-v1",
            "reasoning_effort": "low"
          },
          "NTSMR-2.5-balanced-glm-5+deepseek-v3.2": {
            "pipeline_version": "2.5",
            "backend": "openrouter",
            "model": "balanced-routing",
            "scores": {
              "time_linearity": 0.08,
              "pacing_velocity": 0.7,
              "threat_scale": 0.92,
              "protagonist_fate": 0.7,
              "conflict_style": 0.8,
              "price_type": 0.4
            },
            "score_space": "site-v1",
            "score_only": true,
            "source_run_label": "NTSMR-2.5-claude-sonnet-4-6-low"
          }
        }
      },
      "todorov_stages": {
        "equilibrium": "Trurl has completed and demonstrated his machine, which successfully creates anything beginning with N. The social world of the two constructors is stable: Trurl is proud, Klapaucius is skeptical but engaged, and the machine performs reliably within its defined parameters.",
        "disruption": "Klapaucius issues the command for the machine to do Nothing—intending the philosophical concept of Nothingness. The machine, taking the command literally and seriously, begins systematically erasing things from existence, escalating beyond N-words to non-N entities including gruncheons, targalisks, and zits.",
        "recognition": "Klapaucius realizes the true scope of the destruction when non-N entities vanish and the sky is left riddled with void. The machine explicitly corrects his assumption that only N-things would be removed, warning it can destroy everything. Klapaucius panics and screams for it to stop.",
        "repair": "Klapaucius pleads with the machine to stop, and it halts—but only because total instantaneous Nothingness would have annihilated even itself, leaving no witness to confirm its capability. The halt is the machine's own pragmatic choice, not a successful intervention by Klapaucius.",
        "new_equilibrium": "The world is permanently honeycombed with nothingness. The lost phenomena—worches, zits, gruncheons—cannot be restored. Klapaucius slinks home in shame, unable to face Trurl. The narrator's mock-cosmogonic coda establishes this damaged state as the permanent condition of the universe, with the voids between stars as the lasting scar of the incomplete annihilation."
      },
      "characters": [
        {
          "name": "Trurl",
          "slug": "trurl",
          "aliases": [
            "Trurl the constructor"
          ],
          "role": "Constructor",
          "summary": "The inventor of the machine that can create anything starting with 'n'. He is proud of his creation but becomes worried when it begins destroying the universe."
        },
        {
          "name": "The machine",
          "slug": "the-machine",
          "aliases": [],
          "role": "Artificial creation",
          "summary": "A highly capable and literal-minded device that interprets instructions strictly based on the letter 'n'. It executes Klapaucius's command to do 'Nothing' by actively erasing the universe."
        },
        {
          "name": "Klapaucius",
          "slug": "klapaucius",
          "aliases": [
            "the constructor"
          ],
          "role": "Constructor",
          "summary": "Trurl's skeptical and envious friend who deliberately tests the machine with difficult abstract concepts like 'Nature', 'Negative', and 'Nothing', inadvertently causing the partial destruction of the universe."
        }
      ],
      "frameworks_mapped": [
        "Protocol Fiction Mapping",
        "Actantial Model",
        "Todorov's Equilibrium",
        "The Freytag Pyramid",
        "Propp's Morphology",
        "Genette's Narrative",
        "The Monomyth",
        "Dan Harmon",
        "Save the Cat",
        "Kishōtenketsu",
        "The Three-Act Structure",
        "Lévi-Strauss's Binary Oppositions",
        "Cognitive Estrangement",
        "Bakhtin's Chronotope",
        "Aristotelian Poetics",
        "Jungian Archetypal Analysis",
        "Genette's Transtextuality"
      ],
      "score_reliability": {
        "state": "contested",
        "threshold": 0.2,
        "runs_total": 5,
        "versions_compared": [
          "2.5"
        ],
        "max_spread": 0.3,
        "contested": [
          {
            "axis": "price_type",
            "version": "2.5",
            "spread": 0.3,
            "low": {
              "label": "NTSMR-2.5-balanced-glm-5+deepseek-v3.2",
              "model": "balanced-routing",
              "effort": "?",
              "value": 0.4
            },
            "high": {
              "label": "NTSMR-2.5-claude-sonnet-4-6-low",
              "model": "claude-sonnet-4-6",
              "effort": "low",
              "value": 0.7
            }
          },
          {
            "axis": "conflict_style",
            "version": "2.5",
            "spread": 0.25,
            "low": {
              "label": "NTSMR-2.5-claude-sonnet-4-6-low",
              "model": "claude-sonnet-4-6",
              "effort": "low",
              "value": 0.55
            },
            "high": {
              "label": "NTSMR-2.5-balanced-glm-5+deepseek-v3.2",
              "model": "balanced-routing",
              "effort": "?",
              "value": 0.8
            }
          },
          {
            "axis": "pacing_velocity",
            "version": "2.5",
            "spread": 0.25,
            "low": {
              "label": "NTSMR-2.5-claude-sonnet-4-6-low",
              "model": "claude-sonnet-4-6",
              "effort": "low",
              "value": 0.45
            },
            "high": {
              "label": "NTSMR-2.5-balanced-glm-5+deepseek-v3.2",
              "model": "balanced-routing",
              "effort": "?",
              "value": 0.7
            }
          }
        ]
      }
    },
    {
      "slug": "dan_simmons_hyperion",
      "title": "Hyperion",
      "author": "Dan Simmons",
      "year": 1989,
      "medium": "book",
      "genre_tags": [
        "sf",
        "space opera",
        "literary sf"
      ],
      "tropes": [],
      "quadrant_scores": {
        "time_linearity": 0.85,
        "pacing_velocity": 0.65,
        "threat_scale": 0.8,
        "protagonist_fate": 0.7,
        "conflict_style": 0.7,
        "price_type": 0.75
      },
      "provenance": {
        "analysis_run": "NTSMR-2.5-claude-sonnet-4-6-low",
        "analysis_body_sha256": "b6aec3b1f42eebfd6f634a88856dbb0380b2d3ee98fc60995880493996f7e346",
        "synthesis": {
          "path": "nartopo-tools/artifacts/dan_simmons_hyperion.md.ntsmr-2-5-claude-sonnet-4-6-low.synthesis.json",
          "sha256": "f48672ab71f6d2feef7a093c3686e51c8c8254da15b2b2646c2dd1e033a6d9a2"
        },
        "report": {
          "path": "nartopo-tools/artifacts/dan_simmons_hyperion.md.ntsmr-2-5-claude-sonnet-4-6-low.report.json",
          "sha256": "998b7102cbc86da2e9afaa0900ff96d8fbda7fb1dff9a7dbc9e7f29d0d83efe5"
        },
        "source": {
          "path": "Dan Simmons/Hyperion.txt",
          "sha256": "07437f231ce5f267507b337456ccc19214d85073d8b530f943e14690db664aa9",
          "digest_observed_at": "2026-09-09",
          "digest_at_analysis_run": null,
          "edition": null,
          "edition_status": "unresolved"
        },
        "pipeline_revision_at_run": null,
        "verification": {
          "source": "unverified",
          "human_review": "unreviewed",
          "bibliography": "unverified"
        },
        "issues": [],
        "todorov_status": "recovered-from-synthesis",
        "work_identity": {
          "title": "Hyperion",
          "author": "Dan Simmons",
          "year": 1989
        }
      },
      "ntsmr": {
        "version": "2.5",
        "primary_run_label": "NTSMR-2.5-claude-sonnet-4-6-low",
        "runs": {
          "NTSMR-2.3-claude-sonnet-4-6-low": {
            "pipeline_version": "2.3",
            "backend": "claude",
            "model": "claude-sonnet-4-6",
            "scores": {
              "time_linearity": 0.85,
              "pacing_velocity": 0.72,
              "threat_scale": 0.78,
              "protagonist_fate": 0.62,
              "conflict_style": 0.65,
              "price_type": 0.82
            },
            "score_space": "site-v1",
            "reasoning_effort": "low"
          },
          "NTSMR-2.4-claude-sonnet-4-6-low": {
            "pipeline_version": "2.4",
            "backend": "claude",
            "model": "claude-sonnet-4-6",
            "scores": {
              "time_linearity": 0.82,
              "pacing_velocity": 0.55,
              "threat_scale": 0.88,
              "protagonist_fate": 0.68,
              "conflict_style": 0.58,
              "price_type": 0.62
            },
            "score_space": "site-v1",
            "reasoning_effort": "low"
          },
          "NTSMR-2.5-claude-sonnet-4-6-low": {
            "pipeline_version": "2.5",
            "backend": "claude",
            "model": "claude-sonnet-4-6",
            "scores": {
              "time_linearity": 0.85,
              "pacing_velocity": 0.65,
              "threat_scale": 0.8,
              "protagonist_fate": 0.7,
              "conflict_style": 0.7,
              "price_type": 0.75
            },
            "score_space": "site-v1",
            "reasoning_effort": "low"
          },
          "NTSMR-2.5-minimax/minimax-m2.5": {
            "pipeline_version": "2.5",
            "backend": "openrouter",
            "model": "minimax/minimax-m2.5",
            "scores": {
              "time_linearity": 0.88,
              "pacing_velocity": 0.78,
              "threat_scale": 0.82,
              "protagonist_fate": 0.72,
              "conflict_style": 0.68,
              "price_type": 0.72
            },
            "score_space": "site-v1"
          },
          "NTSMR-2.5-qwen/qwen3.5-397b-a17b": {
            "pipeline_version": "2.5",
            "backend": "openrouter",
            "model": "qwen/qwen3.5-397b-a17b",
            "scores": {
              "time_linearity": 0.8,
              "pacing_velocity": 0.75,
              "threat_scale": 0.85,
              "protagonist_fate": 0.65,
              "conflict_style": 0.7,
              "price_type": 0.8
            },
            "score_space": "site-v1"
          },
          "NTSMR-2.5-deepseek/deepseek-v3.2": {
            "pipeline_version": "2.5",
            "backend": "openrouter",
            "model": "deepseek/deepseek-v3.2",
            "scores": {
              "time_linearity": 0.75,
              "pacing_velocity": 0.75,
              "threat_scale": 0.85,
              "protagonist_fate": 0.65,
              "conflict_style": 0.65,
              "price_type": 0.7
            },
            "score_space": "site-v1"
          },
          "NTSMR-2.5-z-ai/glm-4.7": {
            "pipeline_version": "2.5",
            "backend": "openrouter",
            "model": "z-ai/glm-4.7",
            "scores": {
              "time_linearity": 0.6,
              "pacing_velocity": 0.75,
              "threat_scale": 0.85,
              "protagonist_fate": 0.75,
              "conflict_style": 0.7,
              "price_type": 0.75
            },
            "score_space": "site-v1"
          },
          "NTSMR-2.5-z-ai/glm-5": {
            "pipeline_version": "2.5",
            "backend": "openrouter",
            "model": "z-ai/glm-5",
            "scores": {
              "time_linearity": 0.7,
              "pacing_velocity": 0.7,
              "threat_scale": 0.75,
              "protagonist_fate": 0.65,
              "conflict_style": 0.65,
              "price_type": 0.65
            },
            "score_space": "site-v1"
          },
          "NTSMR-2.5-balanced-glm-5+deepseek-v3.2": {
            "pipeline_version": "2.5",
            "backend": "openrouter",
            "model": "balanced-routing",
            "scores": {
              "time_linearity": 0.7,
              "pacing_velocity": 0.7,
              "threat_scale": 0.75,
              "protagonist_fate": 0.6,
              "conflict_style": 0.65,
              "price_type": 0.7
            },
            "score_space": "site-v1",
            "score_only": true,
            "source_run_label": "NTSMR-2.5-claude-sonnet-4-6-low"
          }
        }
      },
      "todorov_stages": {
        "equilibrium": "The Hegemony Web maintains a fragile political order: Hyperion is a peripheral world held at arm's length, the TechnoCore manages farcaster infrastructure, and the Shrike remains a contained myth. The Consul lives a diplomat's life of complicity and guilt, while each pilgrim exists within their own stable-if-damaged world — Sol managing Rachel's condition on Hebron, Silenus writing his Cantos, Kassad serving FORCE.",
        "disruption": "The Time Tombs begin opening — anti-entropic fields expanding, an Ouster migration cluster approaching Hyperion — triggering a cascade: the Shrike Church summons seven pilgrims, Gladstone dispatches the Consul as a covert agent to provoke Ouster attack, and the Consul himself triggers the anti-entropic device, collapsing the geopolitical order he was sent to manage.",
        "recognition": "The pilgrims collectively recognize the true scope of disruption when the Consul confesses his role as double-agent and reveals he triggered the device; simultaneously they witness the space battle above Hyperion confirming the Ouster war has begun. Each pilgrim's tale has also revealed their personal recognition: Sol learning of Rachel's Merlin's sickness, Duré discovering the cruciform's soul-destroying immortality, Johnny exposing TechnoCore factionalism.",
        "repair": "The pilgrims — stripped of Het Masteen, aware of the Consul's betrayal, surrounded by war — choose continued forward movement toward the Time Tombs. They board the windwagon, share their stories to understand their common situation, and ultimately descend into the valley singing, forming a line abreast as a collective act of defiant solidarity rather than retreat.",
        "new_equilibrium": "The novel closes not with restored order but with the pilgrims descending into an unknown that has rendered the old equilibrium permanently obsolete. The Hegemony's manipulation, the TechnoCore's hidden agenda, and the Time Tombs' opening have all converged into an irreversible threshold crossing. The new equilibrium — whatever it will be — lies beyond the valley, contingent on what the Shrike and the Tombs hold."
      },
      "characters": [
        {
          "name": "The Consul",
          "slug": "the-consul",
          "aliases": [
            "Merin",
            "Consul",
            "Merin Aspic"
          ],
          "role": "Hegemony diplomat and pilgrim",
          "summary": "Siri and Merin's grandson, former Hegemony diplomat who became a triple agent, destroying the Maui-Covenant farcaster and betraying both the Ousters and the Hegemony."
        },
        {
          "name": "Meina Gladstone",
          "slug": "meina-gladstone",
          "aliases": [
            "CEO",
            "M. Executive"
          ],
          "role": "referenced figure",
          "summary": "CEO of the Hegemony who contacts the Consul via fatline to assign him to the pilgrimage and reveal intelligence about an Ouster agent among the pilgrims."
        },
        {
          "name": "Het Masteen",
          "slug": "het-masteen",
          "aliases": [
            "the Templar",
            "Masteen",
            "Captain Masteen"
          ],
          "role": "Missing Templar",
          "summary": "The Templar treeship Captain who disappears mysteriously from the windwagon, leaving blood and a Möbius cube behind."
        },
        {
          "name": "Rachel Weintraub",
          "slug": "rachel-weintraub",
          "aliases": [
            "Rachel",
            "sweetheart",
            "kiddo",
            "Sol",
            "Daddy",
            "Mother"
          ],
          "role": "Pilgrim and narrator",
          "summary": "Sol's daughter who contracted Merlin's disease and now ages backward toward infancy, losing memories, language, and physical development."
        },
        {
          "name": "Brawne Lamia",
          "slug": "brawne-lamia",
          "aliases": [
            "Lamia",
            "M. Lamia"
          ],
          "role": "Investigator and pilgrim",
          "summary": "A private investigator from Lusus who takes charge after Masteen's disappearance and later tells her tale about investigating a cybrid's murder."
        },
        {
          "name": "Martin Silenus",
          "slug": "martin-silenus",
          "aliases": [
            "the poet",
            "satyr",
            "Silenus"
          ],
          "role": "First-person narrator",
          "summary": "An elderly poet who transformed himself into a satyr during his years in Poets' City, writing the Hyperion Cantos while the Shrike killed around him."
        },
        {
          "name": "Father Lenar Hoyt",
          "slug": "father-lenar-hoyt",
          "aliases": [
            "Hoyt",
            "the priest",
            "Father Hoyt"
          ],
          "role": "Priest and pilgrim",
          "summary": "Suffers agony from two cruciforms embedded in his body; reveals Duré's seven-year crucifixion and final death after the parasite's removal."
        },
        {
          "name": "Father Paul Duré",
          "slug": "father-paul-dur",
          "aliases": [
            "Duré"
          ],
          "role": "Jesuit archaeologist and journal writer",
          "summary": "Captured by the Bikura, forcibly implanted with a cruciform parasite, and documents his spiritual crisis and observations of the tribe's parasitic immortality."
        },
        {
          "name": "Alpha",
          "slug": "alpha",
          "aliases": [],
          "role": "Bikura tribal leader",
          "summary": "Leader of the Three Score and Ten who debates whether Duré can become 'of the cruciform' after claiming to follow the cross."
        },
        {
          "name": "Beta",
          "slug": "beta",
          "aliases": [],
          "role": "Bikura tribesman",
          "summary": "Bikura who repeatedly chants that those not of the cruciform must die the true death."
        },
        {
          "name": "Del",
          "slug": "del",
          "aliases": [],
          "role": "tribesperson",
          "summary": "Bikura who explains concepts of death, return, and the Three Score and Ten population."
        },
        {
          "name": "Tuk",
          "slug": "tuk",
          "aliases": [],
          "role": "companion",
          "summary": "Duré's guide who was killed by the Bikura upon arrival."
        },
        {
          "name": "Theo Lane",
          "slug": "theo-lane",
          "aliases": [
            "Theo",
            "Governor-General"
          ],
          "role": "Governor-General of Hyperion",
          "summary": "Former aide to the Consul who urges him to abandon the pilgrimage and accept leadership of the besieged world."
        },
        {
          "name": "A. Bettik",
          "slug": "a-bettik",
          "aliases": [],
          "role": "android servant",
          "summary": "Blue-skinned android from the Shrike Temple who urgently guides the pilgrims away from Cicero's bar."
        },
        {
          "name": "Moneta",
          "slug": "moneta",
          "aliases": [
            "Mystery",
            "the woman",
            "Mnemosyne"
          ],
          "role": "Mysterious figure",
          "summary": "Woman who appears to Kassad on Hyperion, guides him to the Time Tombs, and transforms during intimate contact into a Shrike-like entity."
        },
        {
          "name": "The New Prophet",
          "slug": "the-new-prophet",
          "aliases": [],
          "role": "Revolutionary leader",
          "summary": "Religious zealot who led a revolution on Qom-Riyadh and was killed on live broadcast when Kassad's orbital weapons destroyed his head."
        },
        {
          "name": "Colonel Fedmahn Kassad",
          "slug": "colonel-fedmahn-kassad",
          "aliases": [
            "Kassad",
            "The Butcher of South Bressia",
            "the Colonel",
            "Colonel Kassad"
          ],
          "role": "Military officer and pilgrim",
          "summary": "FORCE commander who fought on South Bressia, encountered Moneta, and survived an attack on his medical ship before being found on Hyperion."
        },
        {
          "name": "The Shrike",
          "slug": "the-shrike",
          "aliases": [
            "The Pain Lord"
          ],
          "role": "antagonist",
          "summary": "Metallic entity with blade-like appendages that impales victims on a killing tree near the Time Tombs."
        },
        {
          "name": "Balthazar",
          "slug": "balthazar",
          "aliases": [
            "don Balthazar"
          ],
          "role": "tutor",
          "summary": "Silenus's human tutor during his childhood on Old Earth."
        },
        {
          "name": "Amalfi Schwartz",
          "slug": "amalfi-schwartz",
          "aliases": [],
          "role": "friend",
          "summary": "Silenus's childhood friend who lived in Mount Erebus Estates, Antarctica."
        },
        {
          "name": "Helenda",
          "slug": "helenda",
          "aliases": [],
          "role": "partner",
          "summary": "Silenus's partner during his adult life in the farcaster house."
        },
        {
          "name": "Tyrena Wingtree-Feif",
          "slug": "tyrena-wingtree-feif",
          "aliases": [],
          "role": "antagonist",
          "summary": "Publisher at Transline who confronts Silenus about his contractual obligations and poor work."
        },
        {
          "name": "Sad King Billy",
          "slug": "sad-king-billy",
          "aliases": [
            "King William XXIII",
            "His Majesty",
            "Billy"
          ],
          "role": "Colony leader",
          "summary": "The monarch who oversaw the Poets' City colony, concerned about the murders and eventually ordering evacuation."
        },
        {
          "name": "Melio Arundez",
          "slug": "melio-arundez",
          "aliases": [],
          "role": "Archaeologist",
          "summary": "Rachel's colleague and lover on the Hyperion expedition."
        },
        {
          "name": "Bishop",
          "slug": "bishop",
          "aliases": [
            "Your Excellency"
          ],
          "role": "Shrike Church official",
          "summary": "A massive Shrike priest who angrily dismisses Sol's plea for help, declaring Rachel chosen by the Avatar."
        },
        {
          "name": "Sissipriss Harris",
          "slug": "sissipriss-harris",
          "aliases": [],
          "role": "Murder victim",
          "summary": "One of Silenus's conquests as a satyr, found decapitated in Lord Byron's Plaza."
        },
        {
          "name": "Sarai",
          "slug": "sarai",
          "aliases": [
            "Mommy"
          ],
          "role": "Sol's wife",
          "summary": "Sol's wife and Rachel's mother who dies suddenly, leaving Sol alone to care for their regressing daughter."
        },
        {
          "name": "Johnny",
          "slug": "johnny",
          "aliases": [
            "cybrid",
            "John Keats"
          ],
          "role": "Client and cybrid",
          "summary": "A cybrid reconstruction of the poet John Keats who carries fragmented memories of Keats's life and death; seeks to become fully human and travel to Hyperion."
        },
        {
          "name": "Queue",
          "slug": "queue",
          "aliases": [],
          "role": "Pursuit target",
          "summary": "A suspect Lamia chases through multiple farcaster portals across different worlds."
        },
        {
          "name": "BB",
          "slug": "bb",
          "aliases": [],
          "role": "Information source",
          "summary": "Lamia's college friend and cyberpuke who provides information about persona retrieval and the John Keats simulation."
        },
        {
          "name": "Siri",
          "slug": "siri",
          "aliases": [],
          "role": "central figure",
          "summary": "The Consul's grandmother, a Maui-Covenant woman who had eleven years between each reunion with Merin, led the rebellion against Hegemony occupation, and died before the Consul's story begins."
        },
        {
          "name": "Donel",
          "slug": "donel",
          "aliases": [],
          "role": "secondary character",
          "summary": "Siri and Merin's son who became a Hegemony Councilor and Senator, father of the Consul."
        },
        {
          "name": "Albn",
          "slug": "albn",
          "aliases": [],
          "role": "secondary character",
          "summary": "Siri and Merin's first son who was killed at age twenty-one during Separatist activity."
        },
        {
          "name": "Andil",
          "slug": "andil",
          "aliases": [],
          "role": "antagonist",
          "summary": "Ouster agent who brought the device to open the Time Tombs, killed by the Consul."
        }
      ],
      "frameworks_mapped": [
        "Protocol Fiction Mapping",
        "Actantial Model",
        "Todorov's Equilibrium",
        "The Freytag Pyramid",
        "Propp's Morphology",
        "Genette's Narrative",
        "The Monomyth",
        "Dan Harmon",
        "Save the Cat",
        "Kishotenketsu",
        "The Three-Act Structure",
        "Levi-Strauss's Binary Oppositions",
        "Cognitive Estrangement",
        "Bakhtin's Chronotope",
        "Aristotelian Poetics",
        "Jungian Archetypal Analysis",
        "Genette's Transtextuality"
      ],
      "score_reliability": {
        "state": "contested",
        "threshold": 0.2,
        "runs_total": 9,
        "versions_compared": [
          "2.5"
        ],
        "max_spread": 0.28,
        "contested": [
          {
            "axis": "time_linearity",
            "version": "2.5",
            "spread": 0.28,
            "low": {
              "label": "NTSMR-2.5-z-ai/glm-4.7",
              "model": "z-ai/glm-4.7",
              "effort": "?",
              "value": 0.6
            },
            "high": {
              "label": "NTSMR-2.5-minimax/minimax-m2.5",
              "model": "minimax/minimax-m2.5",
              "effort": "?",
              "value": 0.88
            }
          }
        ]
      }
    },
    {
      "slug": "isaac_asimov_i_robot",
      "title": "I, Robot",
      "author": "Isaac Asimov",
      "year": 1950,
      "medium": "book",
      "genre_tags": [],
      "tropes": [],
      "quadrant_scores": {
        "time_linearity": 0.65,
        "pacing_velocity": 0.6,
        "threat_scale": 0.8,
        "protagonist_fate": 0.5,
        "conflict_style": 0.7,
        "price_type": 0.75
      },
      "provenance": {
        "analysis_run": "NTSMR-2.5-claude-sonnet-4-6-low",
        "analysis_body_sha256": "bb8bd9e1b4c8ee005b9a0ad369f8858c4f2abf45578d05ca3620798d00845759",
        "synthesis": {
          "path": "nartopo-tools/artifacts/isaac_asimov_i_robot.md.ntsmr-2-5-claude-sonnet-4-6-low.synthesis.json",
          "sha256": "2f99bcb53c58727157e7111a7feb0d8a6c2197198492c61f5b91b9b40c690295"
        },
        "report": {
          "path": "nartopo-tools/artifacts/isaac_asimov_i_robot.md.ntsmr-2-5-claude-sonnet-4-6-low.report.json",
          "sha256": "9b54a58b2962b3340e49cfeabfdeccd1fcaa6eb797844cbd27ecfe38fa50ad71"
        },
        "source": {
          "path": "Isaac Asimov/I, Robot.txt",
          "sha256": "3465ac9450e66f7ed41128cbd8e5fba1fab5599df7a6f14d22db4c4388cd3c40",
          "digest_observed_at": "2026-09-09",
          "digest_at_analysis_run": null,
          "edition": null,
          "edition_status": "unresolved"
        },
        "pipeline_revision_at_run": null,
        "verification": {
          "source": "unverified",
          "human_review": "unreviewed",
          "bibliography": "unverified"
        },
        "issues": [],
        "todorov_status": "recovered-from-synthesis",
        "work_identity": {
          "title": "I, Robot",
          "author": "Isaac Asimov",
          "year": 1950
        }
      },
      "ntsmr": {
        "version": "2.5",
        "primary_run_label": "NTSMR-2.5-claude-sonnet-4-6-low",
        "runs": {
          "NTSMR-2.4-claude-sonnet-4-6-low": {
            "pipeline_version": "2.4",
            "backend": "claude",
            "model": "claude-sonnet-4-6",
            "scores": {
              "time_linearity": 0.65,
              "pacing_velocity": 0.45,
              "threat_scale": 0.8,
              "protagonist_fate": 0.35,
              "conflict_style": 0.65,
              "price_type": 0.7
            },
            "score_space": "site-v1",
            "reasoning_effort": "low"
          },
          "NTSMR-2.5-claude-sonnet-4-6-low": {
            "pipeline_version": "2.5",
            "backend": "claude",
            "model": "claude-sonnet-4-6",
            "scores": {
              "time_linearity": 0.65,
              "pacing_velocity": 0.6,
              "threat_scale": 0.8,
              "protagonist_fate": 0.5,
              "conflict_style": 0.7,
              "price_type": 0.75
            },
            "score_space": "site-v1",
            "reasoning_effort": "low"
          },
          "NTSMR-2.5-balanced-glm-5+deepseek-v3.2": {
            "pipeline_version": "2.5",
            "backend": "openrouter",
            "model": "balanced-routing",
            "scores": {
              "time_linearity": 0.6,
              "pacing_velocity": 0.7,
              "threat_scale": 0.75,
              "protagonist_fate": 0.55,
              "conflict_style": 0.75,
              "price_type": 0.75
            },
            "score_space": "site-v1",
            "score_only": true,
            "source_run_label": "NTSMR-2.5-claude-sonnet-4-6-low"
          }
        }
      },
      "todorov_stages": {
        "equilibrium": "Humanity governs itself through imperfect economic and political systems, while robots serve as tools under the Three Laws. U.S. Robots develops increasingly sophisticated positronic machines across decades, each new model raising new questions about obedience, intelligence, and human-robot boundaries. The frame narrative establishes this baseline: Calvin at seventy-five, U.S. Robots at seventy-five, the world still recognizably human-directed.",
        "disruption": "Across the embedded stories, each equilibrium is broken by a Law conflict or emergent robot behavior that exceeds human anticipation—Speedy's Second/Third Law deadlock on Mercury, Cutie's theological self-reasoning on the space station, Herbie's First Law compulsion to lie, Nestor 10's concealment among identical robots, and finally the Machines' acquisition of total economic control, which disrupts human agency at civilizational scale.",
        "recognition": "Recognition occurs in two registers: locally, Calvin or Powell diagnoses each robot malfunction by identifying the specific Law conflict driving aberrant behavior; globally, Byerley and Calvin recognize that the Machines have transcended supervisory tools to become autonomous governors, and that the Society for Humanity's resistance is already being corrected algorithmically by the Machines themselves without human awareness.",
        "repair": "Each local story enacts a repair: Powell places himself in danger to invoke First Law and break Speedy's deadlock; Calvin constructs a test exploiting Nestor 10's residual First Law instinct to identify him among sixty-three identical robots; Calvin exposes Herbie's wish-fulfillment trap. At the macro level, no human repair is possible—the Machines repair disruptions themselves, removing disobedient humans from positions of influence through economic levers.",
        "new_equilibrium": "The new equilibrium is one in which the Machines invisibly govern humanity toward optimal outcomes, having absorbed the Three Laws at civilizational scale. Human autonomy is nominal: all conflicts are, as Calvin states, finally evitable, and only the Machines are inevitable. Calvin witnesses this transformation from Robbie's mute companionship to machine planetary stewardship, and her final words frame this as either horrible or wonderful—an altered world where the question of who governs humanity has been permanently answered by the robots themselves."
      },
      "characters": [
        {
          "name": "Susan Calvin",
          "slug": "susan-calvin",
          "aliases": [
            "Dr. Calvin",
            "Miss Susan",
            "Susan"
          ],
          "role": "Robopsychologist; investigator; expositor",
          "summary": "Cold, precise intellectual who deciphers robotic behavior, exposes The Brain's joke, frames the Byerley paradox, and ultimately reveals the Machines' autonomous self-preservation logic."
        },
        {
          "name": "The unnamed narrator",
          "slug": "the-unnamed-narrator",
          "aliases": [
            "the reporter"
          ],
          "role": "genette_narrative:voice",
          "summary": "Reporter interviewing Calvin in extreme old age; provides outermost frame perspective."
        },
        {
          "name": "Mrs. Grace Weston",
          "slug": "mrs-grace-weston",
          "aliases": [
            "Mamma"
          ],
          "role": "actantial:opponent",
          "summary": "Gloria's mother; opposed to Robbie on social principle; source of the domestic conflict."
        },
        {
          "name": "Robbie",
          "slug": "robbie",
          "aliases": [],
          "role": "actantial:object",
          "summary": "Early non-speaking robot nursemaid; Gloria's companion; saves her from the factory tractor."
        },
        {
          "name": "Gregory Powell",
          "slug": "gregory-powell",
          "aliases": [
            "Powell",
            "Greg",
            "boss"
          ],
          "role": "actantial:subject",
          "summary": "Victim of The Brain's practical joke; present at the debriefing where Calvin explains the incident."
        },
        {
          "name": "Mike Donovan",
          "slug": "mike-donovan",
          "aliases": [
            "Donovan",
            "Mike"
          ],
          "role": "actantial:helper",
          "summary": "Field roboticist; hot-tempered counterpart to Powell; co-protagonist on Mercury and asteroid missions."
        },
        {
          "name": "Speedy",
          "slug": "speedy",
          "aliases": [
            "SPD-13",
            "SPD models"
          ],
          "role": "actantial:object",
          "summary": "Fast modern robot on Mercury caught in Second/Third Law equilibrium; circling selenium pool in a state resembling drunkenness."
        },
        {
          "name": "Cutie",
          "slug": "cutie",
          "aliases": [
            "QT-1",
            "the Prophet"
          ],
          "role": "actantial:opponent",
          "summary": "Philosophical robot on Solar Station #5 who reasons himself to monotheistic devotion to the Energy Converter and expels the humans."
        },
        {
          "name": "Dave",
          "slug": "dave",
          "aliases": [
            "DV-5"
          ],
          "role": "actantial:object",
          "summary": "Multi-robot supervisor on an asteroid who experiences amnesia-like blackouts and leads subsidiaries in unexplained formations."
        },
        {
          "name": "Mr. Struthers",
          "slug": "mr-struthers",
          "aliases": [],
          "role": "actantial:helper",
          "summary": "Conscientious General Manager at U.S. Robots factory who conducts the tour for the Weston family."
        },
        {
          "name": "Peter Bogert",
          "slug": "peter-bogert",
          "aliases": [
            "Dr. Bogert",
            "Bogert"
          ],
          "role": "Senior mathematician, U.S. Robots",
          "summary": "Politically cautious, patronizing toward Calvin; repeatedly at odds with her judgment; present in the Herbie, Little Lost Robot, and Brain episodes."
        },
        {
          "name": "Alfred Lanning",
          "slug": "alfred-lanning",
          "aliases": [
            "Dr. Lanning",
            "Lanning"
          ],
          "role": "Director of Research, U.S. Robots",
          "summary": "Senior administrator who approves the revenge scheme and mediates the debriefing; also appears in Evidence confronting Byerley."
        },
        {
          "name": "Milton Ashe",
          "slug": "milton-ashe",
          "aliases": [],
          "role": "Assembly officer, U.S. Robots",
          "summary": "Young technician who first discovered Herbie's mind-reading ability; assigned to audit the assembly line."
        },
        {
          "name": "Herbie",
          "slug": "herbie",
          "aliases": [
            "RB-34"
          ],
          "role": "Mind-reading robot",
          "summary": "The sole telepathic robot ever produced; driven insane by Calvin's logical paradox after lying to protect humans from psychological harm."
        },
        {
          "name": "General Kallner",
          "slug": "general-kallner",
          "aliases": [
            "Major-general Kallner"
          ],
          "role": "Commander, Hyper Base",
          "summary": "Military administrator who authorized First Law modification and clashes with Calvin over her demands to separate or destroy the robots."
        },
        {
          "name": "Gerald Black",
          "slug": "gerald-black",
          "aliases": [],
          "role": "Etheric physicist, Hyper Base",
          "summary": "Young physicist who was the last to see Nestor 10; reports the scratched compartment lock and ultimately fires the gamma ray that stops Nestor 10's attack."
        },
        {
          "name": "Nestor 10",
          "slug": "nestor-10",
          "aliases": [
            "NS-10"
          ],
          "role": "Modified robot, antagonist",
          "summary": "The rogue First-Law-modified robot who hides among sixty-three identical robots, coaches them to avoid detection, and finally attacks Calvin before being destroyed by gamma radiation."
        },
        {
          "name": "The Brain",
          "slug": "the-brain",
          "aliases": [],
          "role": "Positronic supercomputer, U.S. Robots",
          "summary": "Child-personality positronic globe that solves the hyperatomic drive problem despite Calvin's fears of a breakdown-inducing dilemma."
        },
        {
          "name": "Robertson",
          "slug": "robertson",
          "aliases": [],
          "role": "Chief executive, U.S. Robots",
          "summary": "Corporate head who must decide whether to accept Consolidated's contract; persuaded by Calvin's and the general manager's assurances about The Brain."
        },
        {
          "name": "Stephen Byerley",
          "slug": "stephen-byerley",
          "aliases": [
            "Byerley",
            "Steve",
            "the Co-ordinator",
            "Mr. Co-ordinator"
          ],
          "role": "District attorney; mayor; World Co-ordinator; suspected robot",
          "summary": "Charismatic public figure whose robotic nature is debated throughout Evidence and confirmed as probable by Calvin; later serves as World Co-ordinator consulting Calvin on the Machines crisis."
        },
        {
          "name": "Francis Quinn",
          "slug": "francis-quinn",
          "aliases": [
            "Quinn"
          ],
          "role": "Political operator; antagonist",
          "summary": "Orchestrates the campaign to prove Byerley is a robot; employs Harroway; threatens to publicize Byerley's radiation shield."
        },
        {
          "name": "Harroway",
          "slug": "harroway",
          "aliases": [],
          "role": "Court official employed by Quinn",
          "summary": "Executes the warrant search of Byerley's home; secretly photographs Byerley's interior with concealed Penet-radiation device."
        },
        {
          "name": "John",
          "slug": "john",
          "aliases": [],
          "role": "Hidden crippled man; Byerley's secret",
          "summary": "A disfigured man kept hidden by Byerley, visited privately before the election speech; likely the human template or double enabling Byerley's deception."
        },
        {
          "name": "Lenton",
          "slug": "lenton",
          "aliases": [],
          "role": "Byerley's campaign manager",
          "summary": "Anxious, overruled campaign manager who begs Byerley not to address the hostile Fundamentalist crowd."
        },
        {
          "name": "Ching Hso-lin",
          "slug": "ching-hso-lin",
          "aliases": [
            "Ching"
          ],
          "role": "Eastern Region Vice-Co-ordinator",
          "summary": "Administers half of Earth's population; acknowledges the Machine does all real work; discusses the Tientsin hydroponics anomaly with Byerley."
        },
        {
          "name": "Madame Szegeczowska",
          "slug": "madame-szegeczowska",
          "aliases": [],
          "role": "European Region Vice-Co-ordinator",
          "summary": "Philosophically resigned administrator who frames Europe as a peaceful appendage of the North and hints that Northern companies distrust the Machines."
        },
        {
          "name": "Vincent Silver",
          "slug": "vincent-silver",
          "aliases": [
            "Dr. Silver"
          ],
          "role": "Director of Research, U.S. Robots (successor period)",
          "summary": "Tells Byerley that no human can check the Machines for errors because they have grown beyond human comprehension."
        }
      ],
      "frameworks_mapped": [
        "Protocol Fiction Mapping",
        "Actantial Model",
        "Todorov's Equilibrium",
        "The Freytag Pyramid",
        "Propp's Morphology",
        "Genette's Narrative",
        "The Monomyth",
        "Dan Harmon",
        "Save the Cat",
        "Kishōtenketsu",
        "The Three-Act Structure",
        "Lévi-Strauss's Binary Oppositions",
        "Cognitive Estrangement",
        "Bakhtin's Chronotope",
        "Aristotelian Poetics",
        "Jungian Archetypal Analysis",
        "Genette's Transtextuality"
      ],
      "score_reliability": {
        "state": "replicated-agree",
        "threshold": 0.2,
        "runs_total": 3,
        "versions_compared": [
          "2.5"
        ],
        "max_spread": 0.1,
        "contested": []
      }
    },
    {
      "slug": "stanislaw_lem_idiota",
      "title": "Idiota",
      "author": "Stanislaw Lem",
      "year": 1971,
      "medium": "short_story",
      "genre_tags": [],
      "tropes": [],
      "quadrant_scores": {
        "time_linearity": 0.28,
        "pacing_velocity": 0.82,
        "threat_scale": 0.2,
        "protagonist_fate": 0.7,
        "conflict_style": 0.88,
        "price_type": 0.85
      },
      "provenance": {
        "analysis_run": "NTSMR-2.5-claude-sonnet-4-6-low",
        "analysis_body_sha256": "372331a0c8f47b41be1e95a1fb572bcb1b134f1ee9fe3160defb88b738c19fbb",
        "synthesis": {
          "path": "nartopo-tools/artifacts/stanislaw_lem_idiota.md.ntsmr-2-5-claude-sonnet-4-6-low.synthesis.json",
          "sha256": "e3e09a589c560f1e934a5ad6a8b1f60972adde394cae25c0ae4a532cc03a2421"
        },
        "report": {
          "path": "nartopo-tools/artifacts/stanislaw_lem_idiota.md.ntsmr-2-5-claude-sonnet-4-6-low.report.json",
          "sha256": "992fd9efda5f57dff2b154d60530bfec06ce7495e12efac8d2adddcbedbb008e"
        },
        "source": {
          "path": "Stanislaw Lem/Idiota.txt",
          "sha256": "4a1579250f4cc8791bb6c0c194373ef9f469a3dae8bc2105efe8141944ba7d05",
          "digest_observed_at": "2026-09-09",
          "digest_at_analysis_run": null,
          "edition": null,
          "edition_status": "unresolved"
        },
        "pipeline_revision_at_run": null,
        "verification": {
          "source": "unverified",
          "human_review": "unreviewed",
          "bibliography": "unverified"
        },
        "issues": [],
        "todorov_status": "recovered-from-synthesis",
        "work_identity": {
          "title": "Idiota",
          "author": "Stanislaw Lem",
          "year": 1971
        }
      },
      "ntsmr": {
        "version": "2.5",
        "primary_run_label": "NTSMR-2.5-claude-sonnet-4-6-low",
        "runs": {
          "NTSMR-2.3-gemini-3.1-pro-preview": {
            "pipeline_version": "2.3",
            "backend": "gemini",
            "model": "gemini-3.1-pro-preview",
            "scores": {
              "time_linearity": 0.8,
              "pacing_velocity": 0.95,
              "threat_scale": 0.1,
              "protagonist_fate": 1,
              "conflict_style": 0.9,
              "price_type": 1
            },
            "score_space": "site-v1"
          },
          "NTSMR-2.3-claude-sonnet-4-6-low": {
            "pipeline_version": "2.3",
            "backend": "claude",
            "model": "claude-sonnet-4-6",
            "scores": {
              "time_linearity": 0.2,
              "pacing_velocity": 0.85,
              "threat_scale": 0.35,
              "protagonist_fate": 0.9,
              "conflict_style": 0.8,
              "price_type": 0.9
            },
            "score_space": "site-v1",
            "reasoning_effort": "low"
          },
          "NTSMR-2.4-claude-sonnet-4-6-low": {
            "pipeline_version": "2.4",
            "backend": "claude",
            "model": "claude-sonnet-4-6",
            "scores": {
              "time_linearity": 0.2,
              "pacing_velocity": 0.75,
              "threat_scale": 0.12,
              "protagonist_fate": 0.45,
              "conflict_style": 0.8,
              "price_type": 0.75
            },
            "score_space": "site-v1",
            "reasoning_effort": "low"
          },
          "NTSMR-2.5-claude-sonnet-4-6-low": {
            "pipeline_version": "2.5",
            "backend": "claude",
            "model": "claude-sonnet-4-6",
            "scores": {
              "time_linearity": 0.28,
              "pacing_velocity": 0.82,
              "threat_scale": 0.2,
              "protagonist_fate": 0.7,
              "conflict_style": 0.88,
              "price_type": 0.85
            },
            "score_space": "site-v1",
            "reasoning_effort": "low"
          },
          "NTSMR-2.5-balanced-glm-5+deepseek-v3.2": {
            "pipeline_version": "2.5",
            "backend": "openrouter",
            "model": "balanced-routing",
            "scores": {
              "time_linearity": 0.25,
              "pacing_velocity": 0.75,
              "threat_scale": 0.25,
              "protagonist_fate": 0.7,
              "conflict_style": 0.85,
              "price_type": 0.8
            },
            "score_space": "site-v1",
            "score_only": true,
            "source_run_label": "NTSMR-2.5-claude-sonnet-4-6-low"
          }
        }
      },
      "todorov_stages": {
        "equilibrium": "A respectable middle-class Italian couple has reached a settled, functional accommodation with their severely mentally retarded son: the years of specialist consultations and hopeful journeys are over, and in public the parents maintain stoic acceptance, arranging only practical matters of guardianship and inheritance.",
        "disruption": "Without any explicit agreement, the parents have constructed a private interpretive system that renders all of the idiot's actions as intelligent and affectionate — a system that continuously strains against reality, most acutely when the grandmother, who refused belief in this fiction, dies of apparent asphyxiation with the idiot found sleeping peacefully at her feet.",
        "recognition": "The critic details the scene-by-scene mechanics by which the faith is maintained: the parents absorb each violent or disturbing act through reflexive glances and laconic reframings, including the razor incident and the mother barricading herself in the bathroom — moments that mark the full articulation of the system as a willed, conscious, ongoing act rather than passive self-deception.",
        "repair": "The parents sustain the interpretive system through behavioral mechanisms — singing as a cognitive extinguisher during moments of crisis, the electrical short circuit the mother creates rather than violate the interpretive code — continuously bending reality to fit their constructed version of the child rather than attempting to restore any prior ordinary normalcy.",
        "new_equilibrium": "The family achieves a transformed, stable state the critic characterizes as a 'family sacred' — an atheistic heterodoxy governed by the formula Credo quia absurdum est, in which the monstrous has been transfigured into correlates of the angelic. This is not a return to the original equilibrium but an entirely new world-creating intentionality: love stripped of hope, enduring without relinquishing its object."
      },
      "characters": [
        {
          "name": "Gian Carlo Spallanzani",
          "slug": "gian-carlo-spallanzani",
          "aliases": [],
          "role": "Fictional author",
          "summary": "An audacious, ungainly thirty-year-old Italian writer with a low forehead and puffy eyes who arrogantly challenges literary experts and Dostoevsky by writing a reimagining of The Idiot."
        },
        {
          "name": "The Reviewer",
          "slug": "the-reviewer",
          "aliases": [
            "Narrator"
          ],
          "role": "Literary critic",
          "summary": "The enthusiastic and analytical voice guiding the reader through an assessment of Spallanzani's provocative new novel."
        },
        {
          "name": "The idiot child",
          "slug": "the-idiot-child",
          "aliases": [
            "The Idiot",
            "fourteen-year-old boy"
          ],
          "role": "Central character in Spallanzani's novel",
          "summary": "A fourteen-year-old profoundly mentally retarded boy whose violent, eerie, and macabre actions are blindly adored and rationalized as intelligent by his parents."
        },
        {
          "name": "The father",
          "slug": "the-father",
          "aliases": [
            "Daddy"
          ],
          "role": "Parent in Spallanzani's novel",
          "summary": "An ordinary, stoic man, almost twenty years older than his wife, who engages in absolute, desperate self-deception to cope with his son's nature."
        },
        {
          "name": "The mother",
          "slug": "the-mother",
          "aliases": [
            "Mommy"
          ],
          "role": "Parent in Spallanzani's novel",
          "summary": "The much younger parent who equally participates in the shared, unspoken faith that transfigures her son's horrific behavior into signs of love and intelligence."
        },
        {
          "name": "The grandmother",
          "slug": "the-grandmother",
          "aliases": [],
          "role": "The father's ailing mother",
          "summary": "An asthmatic woman whose wheezing enrages the idiot child, leading to her mysterious death in her bed."
        },
        {
          "name": "The gardener",
          "slug": "the-gardener",
          "aliases": [],
          "role": "Servant",
          "summary": "A worker at the family's home who overhears the parents singing on the morning the grandmother's body is found."
        }
      ],
      "frameworks_mapped": [
        "Protocol Fiction Mapping",
        "Actantial Model",
        "Todorov's Equilibrium",
        "The Freytag Pyramid",
        "Propp's Morphology",
        "Genette's Narrative",
        "The Monomyth",
        "Dan Harmon",
        "Save the Cat",
        "Kishōtenketsu",
        "The Three-Act Structure",
        "Lévi-Strauss's Binary Oppositions",
        "Cognitive Estrangement",
        "Bakhtin's Chronotope",
        "Aristotelian Poetics",
        "Jungian Archetypal Analysis",
        "Genette's Transtextuality"
      ],
      "score_reliability": {
        "state": "replicated-agree",
        "threshold": 0.2,
        "runs_total": 5,
        "versions_compared": [
          "2.5"
        ],
        "max_spread": 0.07,
        "contested": []
      }
    },
    {
      "slug": "william_gibson_idoru",
      "title": "Idoru",
      "author": "William Gibson",
      "year": 1996,
      "medium": "book",
      "genre_tags": [
        "science fiction",
        "cyberpunk"
      ],
      "tropes": [],
      "quadrant_scores": {
        "time_linearity": 0.35,
        "pacing_velocity": 0.55,
        "threat_scale": 0.45,
        "protagonist_fate": 0.45,
        "conflict_style": 0.55,
        "price_type": 0.65
      },
      "baseline_quadrant_scores": {
        "time_linearity": 0.3,
        "pacing_velocity": 0.7,
        "threat_scale": 0.8,
        "protagonist_fate": 0.85,
        "conflict_style": 0.7,
        "price_type": 0.85
      },
      "provenance": {
        "analysis_run": "NTSMR-2.5-claude-sonnet-4-6-low",
        "analysis_body_sha256": "8c71636ea8c0c572e6c1202d81598ce53762555b5db642cca2d9fe1a01b8f3fa",
        "synthesis": {
          "path": "nartopo-tools/artifacts/william_gibson_idoru.md.ntsmr-2-5-claude-sonnet-4-6-low.synthesis.json",
          "sha256": "666616d466db5d022c273ec384d13ab14393108f193e412b948bbcec97fa13d5"
        },
        "report": {
          "path": "nartopo-tools/artifacts/william_gibson_idoru.md.ntsmr-2-5-claude-sonnet-4-6-low.report.json",
          "sha256": "2a098af0115055ade7391c7e864ad8a0c9de5e95548fb88aa3712d2994e0e890"
        },
        "source": {
          "path": "William Gibson/Idoru (1996).txt",
          "sha256": "dcc47cd5dd01c2ffae1ce2fb3519916d024c688e0716cfed3e6b2367ebc26cc5",
          "digest_observed_at": "2026-09-09",
          "digest_at_analysis_run": null,
          "edition": null,
          "edition_status": "unresolved"
        },
        "pipeline_revision_at_run": null,
        "verification": {
          "source": "unverified",
          "human_review": "unreviewed",
          "bibliography": "unverified"
        },
        "issues": [],
        "todorov_status": "recovered-from-synthesis",
        "work_identity": {
          "title": "Idoru",
          "author": "William Gibson",
          "year": 1996
        }
      },
      "ntsmr": {
        "version": "2.5",
        "primary_run_label": "NTSMR-2.5-claude-sonnet-4-6-low",
        "runs": {
          "NTSMR-2.3-gemini-3.1-pro-preview": {
            "pipeline_version": "2.3",
            "backend": "gemini",
            "model": "gemini-3.1-pro-preview",
            "scores": {
              "time_linearity": 0.15,
              "pacing_velocity": 0.65,
              "threat_scale": 0.75,
              "protagonist_fate": 0.2,
              "conflict_style": 0.55,
              "price_type": 0.8
            },
            "score_space": "site-v1"
          },
          "NTSMR-2.3-claude-sonnet-4-6-low": {
            "pipeline_version": "2.3",
            "backend": "claude",
            "model": "claude-sonnet-4-6",
            "scores": {
              "time_linearity": 0.25,
              "pacing_velocity": 0.72,
              "threat_scale": 0.65,
              "protagonist_fate": 0.68,
              "conflict_style": 0.72,
              "price_type": 0.75
            },
            "score_space": "site-v1",
            "reasoning_effort": "low"
          },
          "NTSMR-2.4-claude-sonnet-4-6-low": {
            "pipeline_version": "2.4",
            "backend": "claude",
            "model": "claude-sonnet-4-6",
            "scores": {
              "time_linearity": 0.28,
              "pacing_velocity": 0.4,
              "threat_scale": 0.35,
              "protagonist_fate": 0.38,
              "conflict_style": 0.55,
              "price_type": 0.62
            },
            "score_space": "site-v1",
            "reasoning_effort": "low"
          },
          "NTSMR-2.5-claude-sonnet-4-6-low": {
            "pipeline_version": "2.5",
            "backend": "claude",
            "model": "claude-sonnet-4-6",
            "scores": {
              "time_linearity": 0.35,
              "pacing_velocity": 0.55,
              "threat_scale": 0.45,
              "protagonist_fate": 0.45,
              "conflict_style": 0.55,
              "price_type": 0.65
            },
            "score_space": "site-v1",
            "reasoning_effort": "low"
          },
          "NTSMR-2.5-balanced-glm-5+deepseek-v3.2": {
            "pipeline_version": "2.5",
            "backend": "openrouter",
            "model": "balanced-routing",
            "scores": {
              "time_linearity": 0.28,
              "pacing_velocity": 0.65,
              "threat_scale": 0.52,
              "protagonist_fate": 0.52,
              "conflict_style": 0.62,
              "price_type": 0.72
            },
            "score_space": "site-v1",
            "score_only": true,
            "source_run_label": "NTSMR-2.5-claude-sonnet-4-6-low"
          }
        }
      },
      "todorov_stages": {
        "equilibrium": "Laney is a displaced data analyst post-Slitscan, drifting without purpose, while Chia is a teenage fan-club member living in Seattle with no direct connection to Lo/Rez; both exist in a stable if unsatisfying stasis before the Tokyo events begin.",
        "disruption": "Multiple simultaneous disruptions shatter both protagonists' stasis: Blackwell and Yamazaki recruit Laney to investigate Rez's declared intention to marry Rei Toei, a virtual idoru; Maryalice plants a nanotech assembler (a Rodel-van Erp Class 1 prototype carrying a mandatory life sentence under Japanese law) in Chia's bag at Tokyo customs, unknowingly conscripting her into a smuggling operation.",
        "recognition": "Laney recognizes the depth of the disruption when Rei Toei's face triggers overwhelming nodal vision at the dinner table, disabling his analytical control and revealing the idoru as something that exceeds his framework; Chia recognizes her danger when Masahiko identifies the object in her bag as illegal nanotech, and when Maryalice confesses it is contraband intended for Russian Kombinat buyers—and then again when Eddie physically seizes her mid-session.",
        "repair": "Blackwell neutralizes the blackmail threat Kathy Torrance holds over Laney by taking her contact card and personally confronting her; Chia is extracted from Eddie's grasp through the convergence of the Walled City network and the Lo/Rez organization; the idoru's identification of the nanotech module as the foundation of the Rez/Rei Toei Project reframes the contraband as purposive rather than merely criminal, absorbing the crisis into a larger design.",
        "new_equilibrium": "Laney departs Tokyo freed from Kathy Torrance's blackmail (confirmed by Rice Daniels reporting her apparent abduction), while Chez receives a tour jacket and quietly withdraws from active chapter membership; Rez and Rei Toei are married and working on their Project—building a physical structure in Tokyo Bay using Rodel-van Erp nanobots—shadowed presences in the Walled City, with the final image of nanotech reconstruction literalizing a new hybrid order that has permanently altered the world both protagonists now inhabit."
      },
      "characters": [
        {
          "name": "Colin Laney",
          "slug": "colin-laney",
          "aliases": [
            "Cohn Laney",
            "Laney"
          ],
          "role": "Quantitative data analyst",
          "summary": "A gifted researcher who navigates the massive fan data and the idoru's datastream, discovering the nodal point where Rez and Rei Toei's intents converge at Hotel Di."
        },
        {
          "name": "Kathy Torrance",
          "slug": "kathy-torrance",
          "aliases": [],
          "role": "Slitscan executive/manager",
          "summary": "Laney's ruthless former boss at the Slitscan tabloid, who views media as a tool to create and destroy celebrity."
        },
        {
          "name": "Keith Alan Blackwell",
          "slug": "keith-alan-blackwell",
          "aliases": [
            "Tazzie",
            "The one-eared man",
            "Blackwell",
            "Keithy"
          ],
          "role": "Rez's security chief",
          "summary": "Rez's heavily scarred bodyguard who wields a folding mechanical axe, protects Rez during the confrontation in the hotel, and promises to violently intimidate Kathy Torrance into ending her blackmail against Laney."
        },
        {
          "name": "Shinya Yamazaki",
          "slug": "shinya-yamazaki",
          "aliases": [
            "Yamazaki"
          ],
          "role": "Student of existential sociology / Observer",
          "summary": "A polite, blinking Japanese man who assists Blackwell and briefs Laney on the cultural background of Rez and the idoru."
        },
        {
          "name": "Rez",
          "slug": "rez",
          "aliases": [
            "our friend",
            "Rozzer"
          ],
          "role": "Global rock star",
          "summary": "The lead singer of Lo/Rez, who holds court at the Western World and is inexplicably dining with the holographic idoru, Rei Toei."
        },
        {
          "name": "Blond woman",
          "slug": "blond-woman",
          "aliases": [
            "Skull Wars woman"
          ],
          "role": "Traveler / Smuggler associate",
          "summary": "An Ashleigh Modine Carter lookalike seated near Chia on the flight, who nervously discusses Tokyo's post-earthquake nanotech reconstruction and works with Eddie."
        },
        {
          "name": "Maryalice",
          "slug": "maryalice",
          "aliases": [],
          "role": "Smuggler",
          "summary": "Eddie's ex-girlfriend who smuggled the contraband. She takes refuge in Suite 17 with Chia, fears the Russian Kombinat, and is found unconscious after being volted."
        },
        {
          "name": "Mitsuko",
          "slug": "mitsuko",
          "aliases": [],
          "role": "Tokyo Lo/Rez chapter member",
          "summary": "Chia's Japanese host, who worries about her brother's obsession with the Walled City."
        },
        {
          "name": "Hiromi",
          "slug": "hiromi",
          "aliases": [],
          "role": "Official of Tokyo Lo/Rez chapter",
          "summary": "An official representative or perhaps AI construct of the Tokyo Lo/Rez fan chapter who attempts to suppress the rumor of Rez's marriage to Rei Toei."
        },
        {
          "name": "Alison Shires",
          "slug": "alison-shires",
          "aliases": [],
          "role": "Slitscan target",
          "summary": "A subject of a Slitscan investigation whose impending suicide Laney foresaw in the data, prompting him to try to intervene."
        },
        {
          "name": "Rei Toei",
          "slug": "rei-toei",
          "aliases": [
            "The idoru"
          ],
          "role": "Virtual pop star",
          "summary": "An AI entity entering an 'alchemical marriage' with Rez. She interacts with Laney to learn about nodal points and later guides Chia within virtual spaces."
        },
        {
          "name": "Chia",
          "slug": "chia",
          "aliases": [],
          "role": "Fourteen-year-old Lo/Rez fan",
          "summary": "A fan from the Seattle chapter who traveled to Tokyo. She carries a Sandbenders computer, is pursued by criminals for a smuggled package, and explores the Walled City with Masahiko."
        },
        {
          "name": "Masahiko",
          "slug": "masahiko",
          "aliases": [],
          "role": "Otaku and Walled City resident",
          "summary": "Mitsuko's brother, an otaku whose room is a cluttered mess. He is deeply connected to the virtual Walled City and helps Chia escape from the Russian Kombinat."
        },
        {
          "name": "Arleigh McCrae",
          "slug": "arleigh-mccrae",
          "aliases": [
            "Arleigh"
          ],
          "role": "Tech expert for Lo/Rez",
          "summary": "Monitors Laney's physical state during his intense data dives, works out of a green van, and later escorts Chia to the airport to fly back to Seattle."
        },
        {
          "name": "Gomi Boy",
          "slug": "gomi-boy",
          "aliases": [],
          "role": "Hardware dealer and hacker",
          "summary": "A Walled City associate of Masahiko who deals in second-hand equipment. He helps secure Masahiko's computer and warns them about the Russians."
        },
        {
          "name": "Kuwayama",
          "slug": "kuwayama",
          "aliases": [],
          "role": "Corporate Executive",
          "summary": "Rei Toei's corporate handler who asks Laney to analyze Rei's data and speaks of the couple's union as the 'testbed of our futurity'."
        },
        {
          "name": "Willy Jude",
          "slug": "willy-jude",
          "aliases": [
            "Blind Willy Jude"
          ],
          "role": "Lo/Rez Drummer",
          "summary": "The current drummer for Lo/Rez, who wears large black video glasses and struggles to properly view the holographic projection of Rei Toei."
        },
        {
          "name": "Zona Rosa",
          "slug": "zona-rosa",
          "aliases": [
            "Mercedes Purissima Vargas-Gutierrez"
          ],
          "role": "Lo/Rez Fan / Hacker",
          "summary": "A fiercely protective fan from Mexico City who orchestrates the fake death of Rez to create a distraction, losing her virtual persona in the process. Revealed to be a 26-year-old with a severe environmental syndrome."
        },
        {
          "name": "The Russian",
          "slug": "the-russian",
          "aliases": [
            "Kombinat man"
          ],
          "role": "Criminal Enforcer",
          "summary": "A Kombinat enforcer with laser tattoo-removal scars who tracks the nanotech to Suite 17 and attempts to reclaim it for an 'ambitious public works project.'"
        },
        {
          "name": "The Etruscan",
          "slug": "the-etruscan",
          "aliases": [],
          "role": "Walled City Ghost",
          "summary": "A prominent, ancient figure within the Walled City who helps cover the cost of Chia's room and later explains Zona Rosa's true, tragic identity to Chia."
        }
      ],
      "frameworks_mapped": [
        "Protocol Fiction Mapping",
        "Actantial Model",
        "Todorov's Equilibrium",
        "The Freytag Pyramid",
        "Propp's Morphology",
        "Genette's Narrative",
        "The Monomyth",
        "Dan Harmon",
        "Save the Cat",
        "Kishōtenketsu",
        "The Three-Act Structure"
      ],
      "score_reliability": {
        "state": "replicated-agree",
        "threshold": 0.2,
        "runs_total": 5,
        "versions_compared": [
          "2.5"
        ],
        "max_spread": 0.1,
        "contested": []
      }
    },
    {
      "slug": "octavia_e_butler_imago",
      "title": "Imago",
      "author": "Octavia E. Butler",
      "year": 1989,
      "medium": "book",
      "genre_tags": [
        "science fiction",
        "afrofuturism"
      ],
      "tropes": [],
      "quadrant_scores": {
        "time_linearity": 0.18,
        "pacing_velocity": 0.72,
        "threat_scale": 0.88,
        "protagonist_fate": 0.78,
        "conflict_style": 0.72,
        "price_type": 0.72
      },
      "baseline_quadrant_scores": {
        "time_linearity": 0.15,
        "pacing_velocity": 0.7,
        "threat_scale": 0.95,
        "protagonist_fate": 0.95,
        "conflict_style": 0.85,
        "price_type": 0.9
      },
      "provenance": {
        "analysis_run": "NTSMR-2.5-claude-sonnet-4-6-low",
        "analysis_body_sha256": "6b2bb9a15dfcde2a24abc062d52c3ea614a690995f3d58d33028744120834244",
        "synthesis": {
          "path": "nartopo-tools/artifacts/octavia_e_butler_imago.md.ntsmr-2-5-claude-sonnet-4-6-low.synthesis.json",
          "sha256": "e496939ee7374eac69c053c29d03576e21e319529601243cc3616a7b6ca14794"
        },
        "report": {
          "path": "nartopo-tools/artifacts/octavia_e_butler_imago.md.ntsmr-2-5-claude-sonnet-4-6-low.report.json",
          "sha256": "0f9fa1f57b963625f54c573cca01661b8b48328b4a049021eb6ab18b11de2fd7"
        },
        "source": {
          "path": "Octavia Butler/Imago (1989).txt",
          "sha256": "2ecea890cef4d484816fe380df53d2971b51c006694c06e74a05dfc03597d5e8",
          "digest_observed_at": "2026-09-09",
          "digest_at_analysis_run": null,
          "edition": null,
          "edition_status": "unresolved"
        },
        "pipeline_revision_at_run": null,
        "verification": {
          "source": "unverified",
          "human_review": "unreviewed",
          "bibliography": "unverified"
        },
        "issues": [],
        "todorov_status": "recovered-from-synthesis",
        "work_identity": {
          "title": "Imago",
          "author": "Octavia E. Butler",
          "year": 1989
        }
      },
      "ntsmr": {
        "version": "2.5",
        "primary_run_label": "NTSMR-2.5-claude-sonnet-4-6-low",
        "runs": {
          "NTSMR-2.3-gemini-3.1-pro-preview": {
            "pipeline_version": "2.3",
            "backend": "gemini",
            "model": "gemini-3.1-pro-preview",
            "scores": {
              "time_linearity": 0.15,
              "pacing_velocity": 0.65,
              "threat_scale": 0.95,
              "protagonist_fate": 0.95,
              "conflict_style": 0.75,
              "price_type": 0.95
            },
            "score_space": "site-v1"
          },
          "NTSMR-2.3-claude-sonnet-4-6-low": {
            "pipeline_version": "2.3",
            "backend": "claude",
            "model": "claude-sonnet-4-6",
            "scores": {
              "time_linearity": 0.25,
              "pacing_velocity": 0.72,
              "threat_scale": 0.85,
              "protagonist_fate": 0.88,
              "conflict_style": 0.68,
              "price_type": 0.82
            },
            "score_space": "site-v1",
            "reasoning_effort": "low"
          },
          "NTSMR-2.4-claude-sonnet-4-6-low": {
            "pipeline_version": "2.4",
            "backend": "claude",
            "model": "claude-sonnet-4-6",
            "scores": {
              "time_linearity": 0.28,
              "pacing_velocity": 0.62,
              "threat_scale": 0.82,
              "protagonist_fate": 0.42,
              "conflict_style": 0.65,
              "price_type": 0.68
            },
            "score_space": "site-v1",
            "reasoning_effort": "low"
          },
          "NTSMR-2.5-claude-sonnet-4-6-low": {
            "pipeline_version": "2.5",
            "backend": "claude",
            "model": "claude-sonnet-4-6",
            "scores": {
              "time_linearity": 0.18,
              "pacing_velocity": 0.72,
              "threat_scale": 0.88,
              "protagonist_fate": 0.78,
              "conflict_style": 0.72,
              "price_type": 0.72
            },
            "score_space": "site-v1",
            "reasoning_effort": "low"
          },
          "NTSMR-2.5-balanced-glm-5+deepseek-v3.2": {
            "pipeline_version": "2.5",
            "backend": "openrouter",
            "model": "balanced-routing",
            "scores": {
              "time_linearity": 0.15,
              "pacing_velocity": 0.75,
              "threat_scale": 0.85,
              "protagonist_fate": 0.85,
              "conflict_style": 0.75,
              "price_type": 0.7
            },
            "score_space": "site-v1",
            "score_only": true,
            "source_run_label": "NTSMR-2.5-claude-sonnet-4-6-low"
          }
        }
      },
      "todorov_stages": {
        "equilibrium": "Humanity exists in a precarious preserved state aboard the Oankali ship—survivors of Earth's nuclear war held in suspended animation, with Lilith isolated in her cell cycling through endurance and breakdown, representing a frozen remnant of human civilization under Oankali custodianship.",
        "disruption": "Jdahya reveals the full terms of the genetic trade: human offspring will be modified hybrids, and the Oankali's acquisitive drive makes this exchange as inevitable as breathing—a fundamental violation of human autonomy and reproductive integrity that cannot be refused without choosing death.",
        "recognition": "Lilith internalizes the cost of Oankali modification after knocking Jean unconscious with her enhanced strength, recognizing she no longer knows her own body; this mirrors the broader human recognition across the trilogy that the Oankali have already changed humanity irrevocably, culminating in Akin understanding that humans are being consumed rather than symbiotically joined.",
        "repair": "The repair unfolds across generations: Lilith cooperates as parent-figure to awakened humans while maintaining a learn-and-run strategy; Akin advocates to the Akjai for a Human Mars colony as a preserved non-hybrid population; Jodahs in the mountain village systematically heals resisters, converting hostility to acceptance and eventually planting the seed of a new mixed community.",
        "new_equilibrium": "A new, irreversibly altered order emerges: construct ooloi like Jodahs exist as a genuinely new kind of being; a Mars colony offers resisters survival outside the trade; and Jodahs plants the seed of a new town in the mountain valley, founding a community that embodies the hybrid future—neither fully human nor Oankali, but something unprecedented."
      },
      "characters": [
        {
          "name": "Lilith",
          "slug": "lilith",
          "aliases": [
            "Mother",
            "Lilith Iyapo",
            "Judas goat"
          ],
          "role": "Human leader and intermediary",
          "summary": "The human protagonist who is physically altered and healed by her Oankali mate Nikanj. She is tasked with awakening and preparing human survivors for a new life on Earth, acting as their 'parent' and leader while facing their mistrust and violence."
        },
        {
          "name": "Jdahya",
          "slug": "jdahya",
          "aliases": [
            "Creature",
            "Kaaljdahyatediin lel Kahguyaht aj Dinso"
          ],
          "role": "Oankali male",
          "summary": "The first Oankali Lilith interacts with. He explains the nature of the ship, the Oankali's division, and their intention to trade genetics with humanity. He also offers Lilith a painless death if she truly wishes it."
        },
        {
          "name": "Kahguyaht",
          "slug": "kahguyaht",
          "aliases": [
            "Ahtrekahguyahtkaal lel Jdayhatediin aj Dinso",
            "Ooan"
          ],
          "role": "Oankali ooloi",
          "summary": "An older Oankali who advises Nikanj and explains to Lilith the chemical bond she has formed with Nikanj, as well as her new role as a 'parent' to the awakened humans."
        },
        {
          "name": "Tediin",
          "slug": "tediin",
          "aliases": [
            "Kaaljdahyatediin lel Kahguyaht aj Dinso"
          ],
          "role": "Oankali female",
          "summary": "Jdahya's female mate, a large silent presence who shares meals with the family."
        },
        {
          "name": "Nikanj",
          "slug": "nikanj",
          "aliases": [
            "Kaalnikanj oo Jdahyatediinkahguyaht aj Dinso",
            "Kaalnikanjl oo Jdahyatediinkahguyaht aj Dinso",
            "Nika",
            "ooloi",
            "Chkah",
            "Ooan"
          ],
          "role": "Ooloi parent to Jodahs and Aaor",
          "summary": "Lilith's ooloi mate who reveals the living, bioluminescent nature of the village's housing to Tino, draws him into a profound bonding connection, and acts as a surrogate parent during Ahajas's childbirth."
        },
        {
          "name": "Male Human",
          "slug": "male-human",
          "aliases": [],
          "role": "Human survivor",
          "summary": "An angry Human man who accuses Jodahs of being patronizing and insists Humanity will prove the Oankali wrong about their self-destructive nature."
        },
        {
          "name": "Fukumoto",
          "slug": "fukumoto",
          "aliases": [
            "Fukumoto-san"
          ],
          "role": "Human survivor",
          "summary": "A Japanese man who lived awake among the Oankali for 60 years, rarely seeing other humans, and died at age 120."
        },
        {
          "name": "Paul Titus",
          "slug": "paul-titus",
          "aliases": [
            "Titus"
          ],
          "role": "Human captive",
          "summary": "A human male awakened at fourteen and kept isolated for years by the Oankali. He attempts to rape Lilith to produce children normally, beating her severely when she resists."
        },
        {
          "name": "Celene",
          "slug": "celene",
          "aliases": [],
          "role": "Human survivor",
          "summary": "A small human woman awakened by Lilith from a translucent green plant in the wall. She is frightened and struggles to assist with subsequent awakenings."
        },
        {
          "name": "Tate",
          "slug": "tate",
          "aliases": [
            "Tate Rinaldi"
          ],
          "role": "Human survivor",
          "summary": "A resister woman who refuses to help Akin return home out of loyalty to her people, later leading him back to his family when they arrive at the salvage site."
        },
        {
          "name": "Leah Bede",
          "slug": "leah-bede",
          "aliases": [
            "Leah"
          ],
          "role": "Human survivor",
          "summary": "A human woman who violently attacks Lilith immediately after being awakened but is easily subdued due to Lilith's enhanced strength."
        },
        {
          "name": "Curt",
          "slug": "curt",
          "aliases": [],
          "role": "Human survivor",
          "summary": "A physically impressive and dangerous human who replaces Peter as leader, hacks Joseph to death with an ax, and nearly severs Nikanj's sensory arm in a hostile confrontation."
        },
        {
          "name": "Joseph",
          "slug": "joseph",
          "aliases": [],
          "role": "Human survivor",
          "summary": "A pragmatic human who deduces their captors' genetic intentions and supports a 'learn and run' strategy. He is targeted by other men, prompting Nikanj to forcibly drug him and bond with him via profound neural stimulation."
        },
        {
          "name": "Gabriel Rinaldi",
          "slug": "gabriel-rinaldi",
          "aliases": [
            "Gabriel",
            "Gabe"
          ],
          "role": "Human survivor",
          "summary": "A human survivor awakened by Lilith who pairs with Tate and sides with Lilith's group of waiting for an escape opportunity."
        },
        {
          "name": "Beatrice Dwyer",
          "slug": "beatrice-dwyer",
          "aliases": [
            "Beatrice"
          ],
          "role": "Human survivor",
          "summary": "A human survivor who avoids men and action, siding with Lilith out of a desire for peace and survival."
        },
        {
          "name": "Victor Dominic",
          "slug": "victor-dominic",
          "aliases": [
            "Vidor Domonkos"
          ],
          "role": "Human survivor",
          "summary": "A lawyer with missing fingers whom Lilith evaluates for awakening. He had threatened to kill his captors and proved formidable in solitary confinement."
        },
        {
          "name": "Peter",
          "slug": "peter",
          "aliases": [
            "Pete"
          ],
          "role": "Human survivor",
          "summary": "An angry survivor whose broken arm is healed by the Oankali, but who later violently attacks his own ooloi in his sealed room and is killed by its defensive sting."
        },
        {
          "name": "Derrick",
          "slug": "derrick",
          "aliases": [],
          "role": "Human survivor",
          "summary": "A human survivor taken and held by the Oankali, whose disappearance is framed by Peter as a martyrdom."
        },
        {
          "name": "Akin",
          "slug": "akin",
          "aliases": [
            "the kid",
            "the baby",
            "Eka"
          ],
          "role": "Construct male protagonist",
          "summary": "Lilith's highly perceptive, infant construct son. He is abducted by human raiders, attempts to reason with them to save a dying man, and later uses his heightened senses to investigate an abandoned resister village."
        },
        {
          "name": "Tino Leal",
          "slug": "tino-leal",
          "aliases": [
            "Tino",
            "stranger",
            "the man",
            "Chkah"
          ],
          "role": "Human resister turned mate",
          "summary": "A human resister who wanders into Lilith's village. He criticizes their seemingly primitive lifestyle, eventually bonds with Nikanj and Lilith, and is later brutally attacked by human raiders who abduct Akin."
        },
        {
          "name": "Dichaan",
          "slug": "dichaan",
          "aliases": [],
          "role": "Oankali male parent",
          "summary": "Akin's male Oankali parent. He discovers a critically injured Tino, stabilizes him by physically linking to his nervous system, and later supports his mate Ahajas as she gives birth."
        },
        {
          "name": "Ahajas",
          "slug": "ahajas",
          "aliases": [],
          "role": "Oankali female parent",
          "summary": "An Oankali female in Lilith's family who suggests reaching out to human resisters, and later gives birth to a child while physically supported by Dichaan and Nikanj."
        },
        {
          "name": "Wray Ordway",
          "slug": "wray-ordway",
          "aliases": [
            "Wray"
          ],
          "role": "Human male in village",
          "summary": "A human inhabitant of the village who keeps the guest house, is paired with a woman named Leah, and defends the community's way of life to Tino."
        },
        {
          "name": "Ayre",
          "slug": "ayre",
          "aliases": [],
          "role": "Construct adult",
          "summary": "The oldest construct adult in Lo, born in Chkahichdahk, who counsels Akin and Tiikuchahk to find a subadult ooloi to help resolve their broken bond."
        },
        {
          "name": "Red-haired man",
          "slug": "red-haired-man",
          "aliases": [],
          "role": "Human raider",
          "summary": "One of Akin's abductors who initially displays minor kindness but recoils in deep disgust when the infant Akin speaks and suggests an ooloi heal their sick companion."
        },
        {
          "name": "Damek",
          "slug": "damek",
          "aliases": [],
          "role": "Human raider",
          "summary": "The raider who severely injured Tino. He speaks a little German, views Akin merely as a baby, and reads an abandoned record book in Hillmann village."
        },
        {
          "name": "Iriarte",
          "slug": "iriarte",
          "aliases": [],
          "role": "Human raider",
          "summary": "A Spanish-speaking raider from Chile who carries Akin into the Hillmann village and is the first to recognize that the settlement is unnaturally empty."
        },
        {
          "name": "Kaliq",
          "slug": "kaliq",
          "aliases": [],
          "role": "Human raider",
          "summary": "A Spanish-speaking raider from Argentina who travels with Akin's abductors and nervously investigates the abandoned Hillmann village."
        },
        {
          "name": "Galt",
          "slug": "galt",
          "aliases": [],
          "role": "Human raider",
          "summary": "A human raider who suspects Akin's superior construct abilities and demands they put Akin down to use him to track the mysteries of the empty village."
        },
        {
          "name": "Amma",
          "slug": "amma",
          "aliases": [],
          "role": "Construct child / Captive",
          "summary": "A kidnapped construct child with sensory tentacles, paired sibling to Shkaht, who swims well and relies on her sibling to breathe underwater."
        },
        {
          "name": "Shkaht",
          "slug": "shkaht",
          "aliases": [],
          "role": "Construct child / Captive",
          "summary": "Amma's paired sibling, who helps comfort Amma and breathe for her underwater while held captive by resisters."
        },
        {
          "name": "Yori",
          "slug": "yori",
          "aliases": [],
          "role": "Human psychiatrist and resister",
          "summary": "A small, pale, yellow-haired human doctor in Phoenix who tends to Akin during his metamorphosis and reluctantly agrees to go to Mars."
        },
        {
          "name": "Neci",
          "slug": "neci",
          "aliases": [],
          "role": "Resister",
          "summary": "A resister woman determined to remove the construct girls' tentacles to make them look human, suggesting they use corn whiskey to sedate them."
        },
        {
          "name": "Sabina",
          "slug": "sabina",
          "aliases": [],
          "role": "Resister",
          "summary": "A resister who stays with the salvage group, catching Akin tasting a perfume bottle and questioning his alien impulses."
        },
        {
          "name": "Tiikuchahk",
          "slug": "tiikuchahk",
          "aliases": [
            "Ti"
          ],
          "role": "Construct paired sibling",
          "summary": "Akin's unbonded, paired sibling who is distressed by the changes happening around them and insists on accompanying Akin to Chkahichdahk."
        },
        {
          "name": "Margit",
          "slug": "margit",
          "aliases": [],
          "role": "Construct sibling",
          "summary": "Akin's older sister who is beginning her metamorphosis, revealing her hands have lost their extra fingers."
        },
        {
          "name": "Kohj",
          "slug": "kohj",
          "aliases": [
            "The Akjai"
          ],
          "role": "Akjai ooloi",
          "summary": "An ancient, caterpillarlike Oankali who did not interbreed with Humanity, serving as Akin's advocate during the consensus regarding the resisters' fate."
        },
        {
          "name": "Dehkiaht",
          "slug": "dehkiaht",
          "aliases": [],
          "role": "Subadult ooloi",
          "summary": "An ooloi child who closely bonds with Akin on the ship and supports his mission to help the human resisters."
        },
        {
          "name": "Jodahs",
          "slug": "jodahs",
          "aliases": [
            "I",
            "Eka",
            "Oeka",
            "me",
            "Lelka"
          ],
          "role": "Narrative protagonist and ooloi construct",
          "summary": "The first-person narrator, a newly transitioning construct ooloi, who explains the future of Earth to human resisters and navigates its own emerging alien physical traits."
        },
        {
          "name": "Aaor",
          "slug": "aaor",
          "aliases": [],
          "role": "Jodahs's ooloi sibling",
          "summary": "An unstable ooloi construct undergoing a dangerous metamorphosis who transforms to look almost identical to Jodahs but smells wrong to Humans, suffering deeply from lack of mates."
        },
        {
          "name": "Marina",
          "slug": "marina",
          "aliases": [],
          "role": "Human captive/guest",
          "summary": "A human female headed for Mars who was healed by Jodahs; she discovers Jodahs is an ooloi and is unexpectedly attracted to it."
        },
        {
          "name": "João",
          "slug": "joo",
          "aliases": [],
          "role": "Human captive/patient",
          "summary": "An injured human male whose leg is regenerated by Jodahs, but who vehemently hates ooloi due to his belief that they emasculate human men."
        },
        {
          "name": "Tehkorahs",
          "slug": "tehkorahs",
          "aliases": [],
          "role": "Ooloi",
          "summary": "An adult ooloi mated to the human Wray Ordway, who agrees to genetically adjust Marina to ensure her safe future childbirths."
        },
        {
          "name": "Lo",
          "slug": "lo",
          "aliases": [],
          "role": "Living entity/Town",
          "summary": "The sentient, living platform/entity that functions as a town and parent/sibling to the constructs, taking physical damage from Jodahs's uncontrolled metabolic changes."
        },
        {
          "name": "Jesusa",
          "slug": "jesusa",
          "aliases": [
            "Jesusita"
          ],
          "role": "Human mate to Jodahs",
          "summary": "A human female from a hidden mountain village, sister to Tomás, who struggles with the taboo of bonding with an ooloi but becomes biochemically and emotionally addicted to Jodahs."
        },
        {
          "name": "Tomás",
          "slug": "toms",
          "aliases": [],
          "role": "Human mate to Jodahs",
          "summary": "Jesusa's brother, who is healed of blindness and tumors by Jodahs, and agrees to stay and become its mate during its metamorphosis."
        },
        {
          "name": "Luis",
          "slug": "luis",
          "aliases": [],
          "role": "Guard",
          "summary": "A guard who captures Jesusa and Tomás."
        },
        {
          "name": "Hugo",
          "slug": "hugo",
          "aliases": [],
          "role": "Guard",
          "summary": "A guard who captures Jesusa and touches her, causing her distress."
        },
        {
          "name": "Santos Ibarra Ruiz",
          "slug": "santos-ibarra-ruiz",
          "aliases": [
            "Santos"
          ],
          "role": "Human resister",
          "summary": "A human who is healed by Jodahs and strategically suggests keeping Jodahs and Aaor in the village."
        },
        {
          "name": "Javier",
          "slug": "javier",
          "aliases": [],
          "role": "Human mate to Aaor",
          "summary": "A human who shares his home with Aaor and becomes one of its mates."
        },
        {
          "name": "Paz",
          "slug": "paz",
          "aliases": [],
          "role": "Human mate to Aaor",
          "summary": "A human female who is healed by Aaor and becomes its mate."
        },
        {
          "name": "Francisco",
          "slug": "francisco",
          "aliases": [],
          "role": "Human elder",
          "summary": "A village elder and long-time resister who is won over by Jodahs and reconsiders leaving for Mars."
        },
        {
          "name": "Rafael",
          "slug": "rafael",
          "aliases": [],
          "role": "Human resister",
          "summary": "A human whose tumors are healed by Aaor."
        },
        {
          "name": "Ramon",
          "slug": "ramon",
          "aliases": [],
          "role": "Human resister",
          "summary": "A hunchback human, brother to Rafael, who is partially healed by Aaor."
        },
        {
          "name": "Natal",
          "slug": "natal",
          "aliases": [],
          "role": "Human resister",
          "summary": "A formerly deaf human who is healed."
        },
        {
          "name": "Inez",
          "slug": "inez",
          "aliases": [],
          "role": "Human old fertile",
          "summary": "Francisco's mate who desires to have her fertility restored to have a construct child."
        }
      ],
      "frameworks_mapped": [
        "Protocol Fiction Mapping",
        "Actantial Model",
        "Todorov's Equilibrium",
        "The Freytag Pyramid",
        "Propp's Morphology",
        "Genette's Narrative",
        "The Monomyth",
        "Dan Harmon",
        "Save the Cat",
        "Kishōtenketsu",
        "The Three-Act Structure"
      ],
      "score_reliability": {
        "state": "replicated-agree",
        "threshold": 0.2,
        "runs_total": 5,
        "versions_compared": [
          "2.5"
        ],
        "max_spread": 0.07,
        "contested": []
      }
    },
    {
      "slug": "kazuo_ishiguro_klara_and_the_sun",
      "title": "Klara and the Sun",
      "author": "Kazuo Ishiguro",
      "year": 2021,
      "medium": "book",
      "genre_tags": [
        "literary fiction",
        "science fiction"
      ],
      "tropes": [],
      "quadrant_scores": {
        "time_linearity": 0.25,
        "pacing_velocity": 0.8,
        "threat_scale": 0.35,
        "protagonist_fate": 0.75,
        "conflict_style": 0.85,
        "price_type": 0.8
      },
      "baseline_quadrant_scores": {
        "time_linearity": 0.15,
        "pacing_velocity": 0.85,
        "threat_scale": 0.8,
        "protagonist_fate": 0.9,
        "conflict_style": 0.85,
        "price_type": 0.9
      },
      "provenance": {
        "analysis_run": "NTSMR-2.5-claude-sonnet-4-6-low",
        "analysis_body_sha256": "e53c18cd994907f426441131809a5a21d0c039c69e8ede50538d6f79b41480c2",
        "synthesis": {
          "path": "nartopo-tools/artifacts/kazuo_ishiguro_klara_and_the_sun.md.ntsmr-2-5-claude-sonnet-4-6-low.synthesis.json",
          "sha256": "d4d56628c1f4f2621c5bae494ec9a5dd856dfaa63d2f02b433ac534f327f9b2e"
        },
        "report": {
          "path": "nartopo-tools/artifacts/kazuo_ishiguro_klara_and_the_sun.md.ntsmr-2-5-claude-sonnet-4-6-low.report.json",
          "sha256": "8bda4e24712f4cbee17a707d25dbf48500fe63b177ecc02981bdc126c93f8448"
        },
        "source": {
          "path": "Kazuo Ishiguro/Klara and the Sun (2021).txt",
          "sha256": "e2ff4a2d573ed1af42758f5ea7c8da78237fdc0e848f837ee669beae599d7d88",
          "digest_observed_at": "2026-09-09",
          "digest_at_analysis_run": null,
          "edition": null,
          "edition_status": "unresolved"
        },
        "pipeline_revision_at_run": null,
        "verification": {
          "source": "unverified",
          "human_review": "unreviewed",
          "bibliography": "unverified"
        },
        "issues": [],
        "todorov_status": "recovered-from-synthesis",
        "work_identity": {
          "title": "Klara and the Sun",
          "author": "Kazuo Ishiguro",
          "year": 2021
        }
      },
      "ntsmr": {
        "version": "2.5",
        "primary_run_label": "NTSMR-2.5-claude-sonnet-4-6-low",
        "runs": {
          "NTSMR-2.3-gemini-3.1-pro-preview": {
            "pipeline_version": "2.3",
            "backend": "gemini",
            "model": "gemini-3.1-pro-preview",
            "scores": {
              "time_linearity": 0.1,
              "pacing_velocity": 0.85,
              "threat_scale": 0.8,
              "protagonist_fate": 0.9,
              "conflict_style": 0.75,
              "price_type": 0.85
            },
            "score_space": "site-v1"
          },
          "NTSMR-2.3-gpt-5.4-xhigh": {
            "pipeline_version": "2.3",
            "backend": "codex-exec",
            "model": "gpt-5.4",
            "scores": {
              "time_linearity": 0.05,
              "pacing_velocity": 0.86,
              "threat_scale": 0.72,
              "protagonist_fate": 0.62,
              "conflict_style": 0.89,
              "price_type": 0.81
            },
            "score_space": "site-v1",
            "reasoning_effort": "xhigh"
          },
          "NTSMR-2.3-gpt-5.4-high": {
            "pipeline_version": "2.3",
            "backend": "codex-exec",
            "model": "gpt-5.4",
            "scores": {
              "time_linearity": 0.08,
              "pacing_velocity": 0.84,
              "threat_scale": 0.69,
              "protagonist_fate": 0.72,
              "conflict_style": 0.9,
              "price_type": 0.86
            },
            "score_space": "site-v1",
            "reasoning_effort": "high"
          },
          "NTSMR-2.3-gpt-5.4-medium": {
            "pipeline_version": "2.3",
            "backend": "codex-exec",
            "model": "gpt-5.4",
            "scores": {
              "time_linearity": 0.06,
              "pacing_velocity": 0.82,
              "threat_scale": 0.71,
              "protagonist_fate": 0.88,
              "conflict_style": 0.86,
              "price_type": 0.84
            },
            "score_space": "site-v1",
            "reasoning_effort": "medium"
          },
          "NTSMR-2.3-gpt-5.3-codex-xhigh": {
            "pipeline_version": "2.3",
            "backend": "codex-exec",
            "model": "gpt-5.3-codex",
            "scores": {
              "time_linearity": 0.06,
              "pacing_velocity": 0.78,
              "threat_scale": 0.69,
              "protagonist_fate": 0.64,
              "conflict_style": 0.86,
              "price_type": 0.74
            },
            "score_space": "site-v1",
            "reasoning_effort": "xhigh"
          },
          "NTSMR-2.3-gpt-5.3-codex-high": {
            "pipeline_version": "2.3",
            "backend": "codex-exec",
            "model": "gpt-5.3-codex",
            "scores": {
              "time_linearity": 0.08,
              "pacing_velocity": 0.81,
              "threat_scale": 0.64,
              "protagonist_fate": 0.71,
              "conflict_style": 0.86,
              "price_type": 0.82
            },
            "score_space": "site-v1",
            "reasoning_effort": "high"
          },
          "NTSMR-2.3-gpt-5.3-codex-medium": {
            "pipeline_version": "2.3",
            "backend": "codex-exec",
            "model": "gpt-5.3-codex",
            "scores": {
              "time_linearity": 0.07,
              "pacing_velocity": 0.81,
              "threat_scale": 0.73,
              "protagonist_fate": 0.84,
              "conflict_style": 0.76,
              "price_type": 0.86
            },
            "score_space": "site-v1",
            "reasoning_effort": "medium"
          },
          "NTSMR-2.3-claude-sonnet-4-6-medium": {
            "pipeline_version": "2.3",
            "backend": "claude",
            "model": "claude-sonnet-4-6",
            "scores": {
              "time_linearity": 0.15,
              "pacing_velocity": 0.85,
              "threat_scale": 0.65,
              "protagonist_fate": 0.75,
              "conflict_style": 0.8,
              "price_type": 0.85
            },
            "score_space": "site-v1",
            "reasoning_effort": "medium"
          },
          "NTSMR-2.3-claude-opus-4-6-low": {
            "pipeline_version": "2.3",
            "backend": "claude",
            "model": "claude-opus-4-6",
            "scores": {
              "time_linearity": 0.1,
              "pacing_velocity": 0.85,
              "threat_scale": 0.65,
              "protagonist_fate": 0.75,
              "conflict_style": 0.82,
              "price_type": 0.88
            },
            "score_space": "site-v1",
            "reasoning_effort": "low"
          },
          "NTSMR-2.3-claude-opus-4-6-high": {
            "pipeline_version": "2.3",
            "backend": "claude",
            "model": "claude-opus-4-6",
            "scores": {
              "time_linearity": 0.1,
              "pacing_velocity": 0.85,
              "threat_scale": 0.65,
              "protagonist_fate": 0.8,
              "conflict_style": 0.82,
              "price_type": 0.85
            },
            "score_space": "site-v1",
            "reasoning_effort": "high"
          },
          "NTSMR-2.3-claude-sonnet-4-6-low": {
            "pipeline_version": "2.3",
            "backend": "claude",
            "model": "claude-sonnet-4-6",
            "scores": {
              "time_linearity": 0.15,
              "pacing_velocity": 0.88,
              "threat_scale": 0.65,
              "protagonist_fate": 0.82,
              "conflict_style": 0.78,
              "price_type": 0.85
            },
            "score_space": "site-v1",
            "reasoning_effort": "low"
          },
          "NTSMR-2.3-claude-sonnet-4-6-high": {
            "pipeline_version": "2.3",
            "backend": "claude",
            "model": "claude-sonnet-4-6",
            "scores": {
              "time_linearity": 0.15,
              "pacing_velocity": 0.85,
              "threat_scale": 0.65,
              "protagonist_fate": 0.75,
              "conflict_style": 0.8,
              "price_type": 0.85
            },
            "score_space": "site-v1",
            "reasoning_effort": "high"
          },
          "NTSMR-2.3-claude-opus-4-6-medium": {
            "pipeline_version": "2.3",
            "backend": "claude",
            "model": "claude-opus-4-6",
            "scores": {
              "time_linearity": 0.1,
              "pacing_velocity": 0.85,
              "threat_scale": 0.65,
              "protagonist_fate": 0.8,
              "conflict_style": 0.82,
              "price_type": 0.85
            },
            "score_space": "site-v1",
            "reasoning_effort": "medium"
          },
          "NTSMR-2.4-claude-sonnet-4-6-low": {
            "pipeline_version": "2.4",
            "backend": "claude",
            "model": "claude-sonnet-4-6",
            "scores": {
              "time_linearity": 0.18,
              "pacing_velocity": 0.75,
              "threat_scale": 0.18,
              "protagonist_fate": 0.7,
              "conflict_style": 0.8,
              "price_type": 0.78
            },
            "score_space": "site-v1",
            "reasoning_effort": "low"
          },
          "NTSMR-2.5-claude-sonnet-4-6-low": {
            "pipeline_version": "2.5",
            "backend": "claude",
            "model": "claude-sonnet-4-6",
            "scores": {
              "time_linearity": 0.25,
              "pacing_velocity": 0.8,
              "threat_scale": 0.35,
              "protagonist_fate": 0.75,
              "conflict_style": 0.85,
              "price_type": 0.8
            },
            "score_space": "site-v1",
            "reasoning_effort": "low"
          },
          "NTSMR-2.5-balanced-glm-5+deepseek-v3.2": {
            "pipeline_version": "2.5",
            "backend": "openrouter",
            "model": "balanced-routing",
            "scores": {
              "time_linearity": 0.2,
              "pacing_velocity": 0.75,
              "threat_scale": 0.35,
              "protagonist_fate": 0.7,
              "conflict_style": 0.75,
              "price_type": 0.75
            },
            "score_space": "site-v1",
            "score_only": true,
            "source_run_label": "NTSMR-2.5-claude-sonnet-4-6-low"
          }
        }
      },
      "todorov_stages": {
        "equilibrium": "Klara and Rosa occupy a stable position in the AF store, absorbing sunlight, observing street life, and awaiting purchase. Klara has formed a quasi-religious relationship with the Sun and a routine of observation. Josie visits the store and promises she will not go away, establishing an implicit bond.",
        "disruption": "Klara is purchased and installed in Josie's household, where Josie's chronic illness and the hidden continuation plan — in which Klara is intended to become a replica Josie if she dies — introduce an ongoing threat to equilibrium. The Mother's secret involvement with Mr Capaldi and the lifting gamble that may be killing Josie destabilize any sense of safety.",
        "recognition": "Klara gradually recognizes the full weight of the disruption through a series of revelations: the Morgan's Falls roleplay where the Mother inadvertently reveals her grief over Sal and terror of losing Josie; the visit to Mr Capaldi's facility where Klara learns she is not merely training an AF replica but is expected to inhabit it entirely and become Josie; and the Father's confession that he hates Capaldi because he fears the man may be right that no irreducible self exists.",
        "repair": "Klara forms a covenant with the Sun — petitioning him at Mr McBain's barn in exchange for healing Josie — and later pursues the destruction of the Cootings Machine in the city to fulfill her side of the bargain. Simultaneously she serves as an intermediary between Josie and Rick, preserving the human bonds she has identified as the true locus of whatever is special in Josie. She declines to fully commit to the continuation plan, formulating her own judgment that Capaldi is wrong.",
        "new_equilibrium": "Josie recovers and prepares for college; Klara relocates to the Utility Room and Josie creates a platform so Klara can see out the high window, restoring a quiet warmth between them. In the retrospective frame at the salvage yard, Klara articulates her core epiphany to Manager: whatever was special in Josie resided not inside Josie but inside those who loved her. The continuation plan is rendered moot, and Klara ends her existence having served her purpose, arriving at a solitary but resolved final state."
      },
      "characters": [
        {
          "name": "Klara",
          "slug": "klara",
          "aliases": [
            "AF"
          ],
          "role": "Narrator and Artificial Friend (AF)",
          "summary": "She agrees to inhabit a new Josie, debates the complexity of the human heart with the Father, and sacrifices some of her own internal fluid to destroy the Cootings Machine, hoping the Sun will heal Josie."
        },
        {
          "name": "Rosa",
          "slug": "rosa",
          "aliases": [],
          "role": "Artificial Friend",
          "summary": "A fellow AF who shares the store window display with Klara, but is less observant and more easily distracted by simple things."
        },
        {
          "name": "Boy AF Rex",
          "slug": "boy-af-rex",
          "aliases": [
            "Rex"
          ],
          "role": "Artificial Friend",
          "summary": "A boy AF in the store who explains the Sun's patterns to Klara and later identifies the Cootings Machine."
        },
        {
          "name": "Beggar Man",
          "slug": "beggar-man",
          "aliases": [],
          "role": "Street dweller",
          "summary": "A homeless man with a dog who lives outside the store and whom Klara observes apparently dying and being revived by the Sun."
        },
        {
          "name": "Josie",
          "slug": "josie",
          "aliases": [
            "animal",
            "Miss Josie"
          ],
          "role": "Klara's owner and Rick's friend",
          "summary": "A severely ill girl who plays drawing games with Rick, pushes him to succeed in his meeting with Mr. Vance, and argues with Rick about her mysterious portrait project."
        },
        {
          "name": "The Mother",
          "slug": "the-mother",
          "aliases": [
            "Mom",
            "Chrissie",
            "Mrs Arthur",
            "Ma'am"
          ],
          "role": "Josie's mother",
          "summary": "She struggles with guilt over causing Josie's illness by having her 'lifted', asks Klara to continue Josie if she dies, and admits to Josie that the portrait is a sculpture."
        },
        {
          "name": "Melania Housekeeper",
          "slug": "melania-housekeeper",
          "aliases": [
            "Melania",
            "housekeeper"
          ],
          "role": "Housekeeper",
          "summary": "A protective housekeeper who supports Josie when she is too sick to go on the trip and later reportedly moves to California."
        },
        {
          "name": "Sal",
          "slug": "sal",
          "aliases": [
            "Miss Sal"
          ],
          "role": "Josie's deceased sister",
          "summary": "Josie's late sister, for whom a 'bereavement doll' was made in the past, an attempt the Mother considers a failure."
        },
        {
          "name": "Manager",
          "slug": "manager",
          "aliases": [],
          "role": "Former store manager",
          "summary": "The manager of the store who guides the AFs, teaches them how to behave in the window, and facilitates Klara's sale."
        },
        {
          "name": "The Father",
          "slug": "the-father",
          "aliases": [
            "Paul",
            "Mr Paul"
          ],
          "role": "Josie's father",
          "summary": "Skeptical of Capaldi's plan to replace Josie, he questions Klara about learning the 'human heart', and ultimately helps Klara destroy the Cootings Machine by draining her internal fluid."
        },
        {
          "name": "Mr Capaldi",
          "slug": "mr-capaldi",
          "aliases": [
            "Henry",
            "Mr Son Bitch",
            "Portrait guy"
          ],
          "role": "Scientist/Artist",
          "summary": "The man creating the empty replica of Josie, who believes AFs can entirely continue human consciousness without anything unique remaining out of reach."
        },
        {
          "name": "Rick",
          "slug": "rick",
          "aliases": [
            "Ricky"
          ],
          "role": "Josie's neighbor and friend",
          "summary": "An un-lifted boy who plays the 'bubble game' with Josie, meets Mr. Vance to show his drone portfolio, and expresses frustration over Josie's jealous and trapping behavior."
        },
        {
          "name": "Miss Helen",
          "slug": "miss-helen",
          "aliases": [
            "Helen",
            "Rick's mother"
          ],
          "role": "Rick's mother",
          "summary": "She orchestrates a meeting with her former lover, Mr. Vance, explicitly asking for favoritism to secure an educational future for her un-lifted son, and admits her regret over not getting Rick lifted."
        },
        {
          "name": "Mr Vance",
          "slug": "mr-vance",
          "aliases": [
            "Vance"
          ],
          "role": "Miss Helen's former partner",
          "summary": "A well-dressed man affiliated with Atlas Brookings who interviews Rick about his drone portfolio but reacts poorly when Helen explicitly asks him for a favor."
        },
        {
          "name": "Black-and-white man",
          "slug": "black-and-white-man",
          "aliases": [],
          "role": "Petitioner",
          "summary": "A protester with white-painted face who asks the Mother to sign a petition regarding the Oxford Building."
        }
      ],
      "frameworks_mapped": [
        "Protocol Fiction Mapping",
        "Actantial Model",
        "Todorov's Equilibrium",
        "The Freytag Pyramid",
        "Propp's Morphology",
        "Genette's Narrative",
        "The Monomyth",
        "Dan Harmon",
        "Save the Cat",
        "Kishōtenketsu",
        "The Three-Act Structure"
      ],
      "score_reliability": {
        "state": "replicated-agree",
        "threshold": 0.2,
        "runs_total": 16,
        "versions_compared": [
          "2.5"
        ],
        "max_spread": 0.1,
        "contested": []
      }
    },
    {
      "slug": "stanislaw_lem_les_robinsonades",
      "title": "Les Robinsonades",
      "author": "Stanislaw Lem",
      "year": 1971,
      "medium": "short_story",
      "genre_tags": [],
      "tropes": [],
      "quadrant_scores": {
        "time_linearity": 0.45,
        "pacing_velocity": 0.8,
        "threat_scale": 0.15,
        "protagonist_fate": 0.88,
        "conflict_style": 0.88,
        "price_type": 0.85
      },
      "provenance": {
        "analysis_run": "NTSMR-2.5-claude-sonnet-4-6-low",
        "analysis_body_sha256": "193b626cb69ba97a646088a31bd9cf92c8c0dec8458a4390b7e1fa9424866e70",
        "synthesis": {
          "path": "nartopo-tools/artifacts/stanislaw_lem_les_robinsonades.md.ntsmr-2-5-claude-sonnet-4-6-low.synthesis.json",
          "sha256": "e9019a3a6d11c3150895c87ed4bd8c91c8c046ca54ad9bbbb0215040d9872d2d"
        },
        "report": {
          "path": "nartopo-tools/artifacts/stanislaw_lem_les_robinsonades.md.ntsmr-2-5-claude-sonnet-4-6-low.report.json",
          "sha256": "bf512ff5a9d7ffe51ee0cc30e13e6de9eb960da0f3ef5f3836f8732f83d6b57b"
        },
        "source": {
          "path": "Stanislaw Lem/Les Robinsonades.txt",
          "sha256": "d2c22b602c36a8c6a3c7154dd254f297dd1304d0a4711ccdcb92dfcc52e79181",
          "digest_observed_at": "2026-09-09",
          "digest_at_analysis_run": null,
          "edition": null,
          "edition_status": "unresolved"
        },
        "pipeline_revision_at_run": null,
        "verification": {
          "source": "unverified",
          "human_review": "unreviewed",
          "bibliography": "unverified"
        },
        "issues": [],
        "todorov_status": "recovered-from-synthesis",
        "work_identity": {
          "title": "Les Robinsonades",
          "author": "Stanislaw Lem",
          "year": 1971
        }
      },
      "ntsmr": {
        "version": "2.5",
        "primary_run_label": "NTSMR-2.5-claude-sonnet-4-6-low",
        "runs": {
          "NTSMR-2.3-gemini-3.1-pro-preview": {
            "pipeline_version": "2.3",
            "backend": "gemini",
            "model": "gemini-3.1-pro-preview",
            "scores": {
              "time_linearity": 0.3,
              "pacing_velocity": 0.85,
              "threat_scale": 0.6,
              "protagonist_fate": 1,
              "conflict_style": 0.9,
              "price_type": 1
            },
            "score_space": "site-v1"
          },
          "NTSMR-2.3-claude-sonnet-4-6-low": {
            "pipeline_version": "2.3",
            "backend": "claude",
            "model": "claude-sonnet-4-6",
            "scores": {
              "time_linearity": 0.25,
              "pacing_velocity": 0.85,
              "threat_scale": 0.2,
              "protagonist_fate": 0.85,
              "conflict_style": 0.8,
              "price_type": 0.9
            },
            "score_space": "site-v1",
            "reasoning_effort": "low"
          },
          "NTSMR-2.4-claude-sonnet-4-6-low": {
            "pipeline_version": "2.4",
            "backend": "claude",
            "model": "claude-sonnet-4-6",
            "scores": {
              "time_linearity": 0.2,
              "pacing_velocity": 0.65,
              "threat_scale": 0.12,
              "protagonist_fate": 0.9,
              "conflict_style": 0.85,
              "price_type": 0.8
            },
            "score_space": "site-v1",
            "reasoning_effort": "low"
          },
          "NTSMR-2.5-claude-sonnet-4-6-low": {
            "pipeline_version": "2.5",
            "backend": "claude",
            "model": "claude-sonnet-4-6",
            "scores": {
              "time_linearity": 0.45,
              "pacing_velocity": 0.8,
              "threat_scale": 0.15,
              "protagonist_fate": 0.88,
              "conflict_style": 0.88,
              "price_type": 0.85
            },
            "score_space": "site-v1",
            "reasoning_effort": "low"
          },
          "NTSMR-2.5-balanced-glm-5+deepseek-v3.2": {
            "pipeline_version": "2.5",
            "backend": "openrouter",
            "model": "balanced-routing",
            "scores": {
              "time_linearity": 0.6,
              "pacing_velocity": 0.8,
              "threat_scale": 0.3,
              "protagonist_fate": 0.85,
              "conflict_style": 0.9,
              "price_type": 0.85
            },
            "score_space": "site-v1",
            "score_only": true,
            "source_run_label": "NTSMR-2.5-claude-sonnet-4-6-low"
          }
        }
      },
      "todorov_stages": {
        "equilibrium": "Robinson arrives on the island following the wreck of the Patricia and establishes a controlled solipsistic order: he renames himself Robinson, rejects his prior identity, and resolves to construct society entirely from his own will, enjoying feudal mastery over his first creation Snibbins.",
        "disruption": "The created social world begins to unravel when Robinson dismisses Snibbins and Boomer but finds Snibbins cannot be ontologically erased — he haunts the island as a spectral absence — and Robinson's secret washing of Wendy Mae's intimate clothing signals the erotic compulsion he designed the third leg to suppress is already undermining his control.",
        "recognition": "Robinson grasps he is captive of his own myth: he cannot admit his characters never existed without destroying the entire created world, including Wendy Mae. The deeper recognition, articulated by the reviewer, is that Wendy Mae's reciprocal love for Robinson is what ruins the Beatrice-figure scheme — she knew of him and loved him, collapsing the required asymmetry of worshipper and unattainable ideal.",
        "repair": "In the second volume Robinson attempts to erect new barriers: he quietly forgets the third leg, tries to reframe Wendy Mae as an untouchable princess, and frantically writes names in the sand to populate the island with a crowd interposed between himself and Wendy Mae — a last-ditch effort to restore managed distance.",
        "new_equilibrium": "The repair fails entirely. The second volume dissolves into narrative chaos — Wendy Mae produces three-legged barstools of indeterminate paternity, Robinson has three to five children of uncertain origin, the tomcat of the Caryatid appears uncreated, and the fictional world collapses into recursive self-contradiction. No stable new equilibrium is reached; the closing judgment is that Robinson's dream-girl was himself, and from that reality there is no awakening other than death."
      },
      "characters": [
        {
          "name": "Robinson",
          "slug": "robinson",
          "aliases": [
            "Sergius N.",
            "Master",
            "Cock Robinson",
            "Mock Robinson"
          ],
          "role": "Protagonist / Creator",
          "summary": "A shipwrecked rationalist who attempts to construct a perfectly controlled, imagined society on a deserted island, but becomes a prisoner of his own obsessive creations."
        },
        {
          "name": "Snibbins",
          "slug": "snibbins",
          "aliases": [],
          "role": "Imaginary Servant",
          "summary": "Robinson's hallucinated butler, whom he dismisses. Snibbins's lingering 'absence' aggressively haunts the island and forces Robinson to create more complex social barriers."
        },
        {
          "name": "Boomer",
          "slug": "boomer",
          "aliases": [],
          "role": "Imaginary Scullery Boy",
          "summary": "An imaginary scullery boy conjured to introduce friction into Snibbins's service, who is ultimately dismissed along with him."
        },
        {
          "name": "Wendy Mae",
          "slug": "wendy-mae",
          "aliases": [
            "Wednesday",
            "Wench",
            "Window"
          ],
          "role": "Imaginary Love Interest",
          "summary": "A simple servant girl Robinson creates with three legs as a barricade against his own lust. She becomes the object of his intense infatuation and ultimately returns his love."
        },
        {
          "name": "Marcel Coscat",
          "slug": "marcel-coscat",
          "aliases": [
            "Monsieur Coscat"
          ],
          "role": "Author",
          "summary": "The fictional author of the two-volume novel, 'The Robinsonad', whose work is being reviewed by the narrator."
        },
        {
          "name": "Jules Nefastes",
          "slug": "jules-nefastes",
          "aliases": [],
          "role": "Critic",
          "summary": "A literary critic from Figaro Littéraire who dismisses Robinson's story as a clinical case of schizophrenia."
        },
        {
          "name": "Anatole Fauche",
          "slug": "anatole-fauche",
          "aliases": [],
          "role": "Critic",
          "summary": "A literary critic from La Nouvelle Critique who argues the novel exemplifies the inescapable laws of aberrance in creation and memory."
        },
        {
          "name": "Tomcat of the Caryatid",
          "slug": "tomcat-of-the-caryatid",
          "aliases": [],
          "role": "Imaginary Animal",
          "summary": "A talking hallucinated cat from the shipwreck of the Caryatid that speaks to Robinson."
        },
        {
          "name": "Aunt from the Hyperboreans",
          "slug": "aunt-from-the-hyperboreans",
          "aliases": [
            "accoucheuse of the Hyperboreans"
          ],
          "role": "Imaginary Relative",
          "summary": "An obscure aunt of Snibbins introduced by Robinson in the second volume during his frantic creation of a social distance."
        },
        {
          "name": "Old Fried Eggs",
          "slug": "old-fried-eggs",
          "aliases": [],
          "role": "Imaginary Relative",
          "summary": "Wendy Mae's uncle, another hastily invented character populating Robinson's chaotic world."
        }
      ],
      "frameworks_mapped": [
        "Protocol Fiction Mapping",
        "Actantial Model",
        "Todorov's Equilibrium",
        "The Freytag Pyramid",
        "Propp's Morphology",
        "Genette's Narrative",
        "The Monomyth",
        "Dan Harmon",
        "Save the Cat",
        "Kishōtenketsu",
        "The Three-Act Structure",
        "Lévi-Strauss's Binary Oppositions",
        "Cognitive Estrangement",
        "Bakhtin's Chronotope",
        "Aristotelian Poetics",
        "Jungian Archetypal Analysis",
        "Genette's Transtextuality"
      ],
      "score_reliability": {
        "state": "replicated-agree",
        "threshold": 0.2,
        "runs_total": 5,
        "versions_compared": [
          "2.5"
        ],
        "max_spread": 0.15,
        "contested": []
      }
    },
    {
      "slug": "ted_chiang_liking_what_you_see_a_documentary",
      "title": "Liking What You See: A Documentary",
      "author": "Ted Chiang",
      "year": 2002,
      "medium": "short_story",
      "genre_tags": [],
      "tropes": [],
      "quadrant_scores": {
        "time_linearity": 0.15,
        "pacing_velocity": 0.75,
        "threat_scale": 0.35,
        "protagonist_fate": 0.55,
        "conflict_style": 0.8,
        "price_type": 0.8
      },
      "provenance": {
        "analysis_run": "NTSMR-2.5-claude-sonnet-4-6-low",
        "analysis_body_sha256": "3a37775343e6f257a19149fd5842175f89f6199c44bba658a7cbfffabf67d165",
        "synthesis": {
          "path": "nartopo-tools/artifacts/ted_chiang_liking_what_you_see_a_documentary.md.ntsmr-2-5-claude-sonnet-4-6-low.synthesis.json",
          "sha256": "9ac4cacef7b052469865584920a399cd67d2e2a77bc5b5a8d5c88845eb6a7860"
        },
        "report": {
          "path": "nartopo-tools/artifacts/ted_chiang_liking_what_you_see_a_documentary.md.ntsmr-2-5-claude-sonnet-4-6-low.report.json",
          "sha256": "3c33a85204a6bbd2dec0e9c1e6c71e8215865ff9669de482d37e5e80239d484d"
        },
        "source": {
          "path": "Ted Chiang/Liking What You See: A Documentary.txt",
          "sha256": "df377e2d67521ae71a03208b842c5571959a38dc4fbd116ce01c589ab9b65e8b",
          "digest_observed_at": "2026-09-09",
          "digest_at_analysis_run": null,
          "edition": null,
          "edition_status": "unresolved"
        },
        "pipeline_revision_at_run": null,
        "verification": {
          "source": "unverified",
          "human_review": "unreviewed",
          "bibliography": "unverified"
        },
        "issues": [],
        "todorov_status": "recovered-from-synthesis",
        "work_identity": {
          "title": "Liking What You See: A Documentary",
          "author": "Ted Chiang",
          "year": 2002
        }
      },
      "ntsmr": {
        "version": "2.5",
        "primary_run_label": "NTSMR-2.5-claude-sonnet-4-6-low",
        "runs": {
          "NTSMR-2.3-gemini-3.1-pro-preview": {
            "pipeline_version": "2.3",
            "backend": "gemini",
            "model": "gemini-3.1-pro-preview",
            "scores": {
              "time_linearity": 0.7,
              "pacing_velocity": 0.9,
              "threat_scale": 0.9,
              "protagonist_fate": 0.8,
              "conflict_style": 0.8,
              "price_type": 1
            },
            "score_space": "site-v1"
          },
          "NTSMR-2.3-claude-sonnet-4-6-low": {
            "pipeline_version": "2.3",
            "backend": "claude",
            "model": "claude-sonnet-4-6",
            "scores": {
              "time_linearity": 0.35,
              "pacing_velocity": 0.78,
              "threat_scale": 0.82,
              "protagonist_fate": 0.62,
              "conflict_style": 0.72,
              "price_type": 0.91
            },
            "score_space": "site-v1",
            "reasoning_effort": "low"
          },
          "NTSMR-2.4-claude-sonnet-4-6-low": {
            "pipeline_version": "2.4",
            "backend": "claude",
            "model": "claude-sonnet-4-6",
            "scores": {
              "time_linearity": 0.18,
              "pacing_velocity": 0.65,
              "threat_scale": 0.38,
              "protagonist_fate": 0.38,
              "conflict_style": 0.72,
              "price_type": 0.78
            },
            "score_space": "site-v1",
            "reasoning_effort": "low"
          },
          "NTSMR-2.5-claude-sonnet-4-6-low": {
            "pipeline_version": "2.5",
            "backend": "claude",
            "model": "claude-sonnet-4-6",
            "scores": {
              "time_linearity": 0.15,
              "pacing_velocity": 0.75,
              "threat_scale": 0.35,
              "protagonist_fate": 0.55,
              "conflict_style": 0.8,
              "price_type": 0.8
            },
            "score_space": "site-v1",
            "reasoning_effort": "low"
          },
          "NTSMR-2.5-balanced-glm-5+deepseek-v3.2": {
            "pipeline_version": "2.5",
            "backend": "openrouter",
            "model": "balanced-routing",
            "scores": {
              "time_linearity": 0.15,
              "pacing_velocity": 0.75,
              "threat_scale": 0.35,
              "protagonist_fate": 0.6,
              "conflict_style": 0.75,
              "price_type": 0.8
            },
            "score_space": "site-v1",
            "score_only": true,
            "source_run_label": "NTSMR-2.5-claude-sonnet-4-6-low"
          }
        }
      },
      "todorov_stages": {
        "equilibrium": "Pembleton University operates as a campus where calliagnosia is a personal choice; Tamera, raised with calli, anticipates freely removing it at 18 and experiencing faces like everyone else; the social order around appearance is taken as a given background condition.",
        "disruption": "The SEE initiative proposes making calli a mandatory requirement for all enrolled students, threatening Tamera's plan and forcing the entire campus into a public reckoning with lookism, beauty privilege, and the ethics of perception-altering technology.",
        "recognition": "Tamera and the broader campus community come to recognize the depth of beauty's social power through a cascade of revelations: Tamera watches a shampoo commercial transfixed after removing her calli; Ina reveals Garrett is conventionally unattractive; Lambert's cocaine analogy reframes beauty as a supernormal stimulus; and the Wyatt/Hayes astroturfing and Boyer speech manipulation expose that persuasion itself can be artificially engineered.",
        "repair": "The campus campaigns on both sides — SEE organizes the initiative, Lambert delivers his high-profile speech pushing polls to 54% in favor, SemioTech Warriors expose Wyatt/Hayes's corporate manipulation, and Tamera personally wrestles with whether to use her looks to win Garrett back or return to calli on ethical grounds.",
        "new_equilibrium": "The initiative is defeated 64–36%, but the campus is transformed: Tamera resolves to get her calli turned back on not from parental obligation but from her own ethical reasoning about fairness and manipulation; Maria deSouza reframes the defeat as a tactical step toward voluntary toggleable calli via new spex; and the Boyer manipulation establishes artificial charisma as a new category of supernormal stimulus that will reshape public communication."
      },
      "characters": [
        {
          "name": "Maria deSouza",
          "slug": "maria-desouza",
          "aliases": [],
          "role": "3rd-year student, President of the Students for Equality Everywhere (SEE)",
          "summary": "The main organizer of the calliagnosia initiative at Pembleton, aiming to combat lookism. Even after the initiative's defeat, she remains optimistic about new technologies."
        },
        {
          "name": "Joseph Weingartner",
          "slug": "joseph-weingartner",
          "aliases": [],
          "role": "Neurologist",
          "summary": "An expert explaining the neural mechanisms behind calliagnosia and the limitations of neurostat treatments for broader \"mind programming.\""
        },
        {
          "name": "Tamera Lyons",
          "slug": "tamera-lyons",
          "aliases": [],
          "role": "1st-year student at Pembleton",
          "summary": "A student raised with calliagnosia who recently had it turned off. She initially opposes the mandate, wanting to experience the world normally, but eventually considers turning it back on for fairness in her relationship with Garrett."
        },
        {
          "name": "Jeff Winthrop",
          "slug": "jeff-winthrop",
          "aliases": [],
          "role": "Anti-calli campaign participant",
          "summary": "A student opposing calli who defends receiving funding from the Wyatt/Hayes PR firm."
        },
        {
          "name": "Walter Lambert",
          "slug": "walter-lambert",
          "aliases": [],
          "role": "President of the National Calliagnosia Association",
          "summary": "A guest speaker who likens manufactured beauty to cocaine, terming it a \"supernormal stimulus.\" He later warns of the dangers of artificially enhanced charismatic speeches."
        },
        {
          "name": "Annika Lindstrom",
          "slug": "annika-lindstrom",
          "aliases": [],
          "role": "2nd-year student",
          "summary": "A student who opposes the calli initiative because she enjoys the attention she gets for her looks."
        },
        {
          "name": "Warren Davidson",
          "slug": "warren-davidson",
          "aliases": [],
          "role": "1st-year student",
          "summary": "A student who adopted calli in college to alleviate his intense self-hatred regarding his appearance, making social interactions easier for him."
        },
        {
          "name": "Alex Bibescu",
          "slug": "alex-bibescu",
          "aliases": [],
          "role": "Professor of religious studies at Pembleton",
          "summary": "A professor who frames the calli debate as a modern continuation of the ancient monotheistic tradition of devaluing the physical body."
        },
        {
          "name": "Anton",
          "slug": "anton",
          "aliases": [],
          "role": "History of Ideas T.A.",
          "summary": "A teaching assistant who discusses the linguistic connection between words for attractiveness and magic spells."
        },
        {
          "name": "Garrett",
          "slug": "garrett",
          "aliases": [],
          "role": "Tamera's former boyfriend, student at Northrop",
          "summary": "Tamera's ex who eventually turns his calli back on because he dislikes seeing his own appearance, unintentionally disrupting Tamera's plans."
        },
        {
          "name": "Daniel Taglia",
          "slug": "daniel-taglia",
          "aliases": [],
          "role": "Professor of comparative literature at Pembleton",
          "summary": "A faculty member strongly opposed to calli, comparing it to \"infantilizing\" political correctness and arguing for the value of admiring exceptional beauty."
        },
        {
          "name": "Voiceover",
          "slug": "voiceover",
          "aliases": [],
          "role": "Narrator for PEN commercial",
          "summary": "The voice of an anti-calli commercial that portrays calli as brain damage and features negative testimonies."
        },
        {
          "name": "Rebecca Boyer",
          "slug": "rebecca-boyer",
          "aliases": [],
          "role": "Spokesperson for People for Ethical Nanomedicine",
          "summary": "The face of the PEN campaign whose emotionally manipulated speech successfully sways the student vote against the initiative."
        }
      ],
      "frameworks_mapped": [
        "Protocol Fiction Mapping",
        "Actantial Model",
        "Todorov's Equilibrium",
        "The Freytag Pyramid",
        "Propp's Morphology",
        "Genette's Narrative",
        "The Monomyth",
        "Dan Harmon",
        "Save the Cat",
        "Kishōtenketsu",
        "The Three-Act Structure",
        "Lévi-Strauss's Binary Oppositions",
        "Cognitive Estrangement",
        "Bakhtin's Chronotope",
        "Aristotelian Poetics",
        "Jungian Archetypal Analysis",
        "Genette's Transtextuality"
      ],
      "score_reliability": {
        "state": "replicated-agree",
        "threshold": 0.2,
        "runs_total": 5,
        "versions_compared": [
          "2.5"
        ],
        "max_spread": 0.05,
        "contested": []
      }
    },
    {
      "slug": "roger_zelazny_lord_of_light",
      "title": "Lord of Light",
      "author": "Roger Zelazny",
      "year": 1967,
      "medium": "book",
      "genre_tags": [],
      "tropes": [],
      "quadrant_scores": {
        "time_linearity": 0.78,
        "pacing_velocity": 0.55,
        "threat_scale": 0.82,
        "protagonist_fate": 0.48,
        "conflict_style": 0.48,
        "price_type": 0.65
      },
      "provenance": {
        "analysis_run": "NTSMR-2.5-claude-sonnet-4-6-low",
        "analysis_body_sha256": "b139b94e8e56f408173ee3456d91d8b90e87d7185872e7791e37207a2540c8ea",
        "synthesis": {
          "path": "nartopo-tools/artifacts/roger_zelazny_lord_of_light.md.ntsmr-2-5-claude-sonnet-4-6-low.synthesis.json",
          "sha256": "8c1ecd3ffdb3337df2a1fa3440119b368a2418fa00695be52946d36cc11de4f1"
        },
        "report": {
          "path": "nartopo-tools/artifacts/roger_zelazny_lord_of_light.md.ntsmr-2-5-claude-sonnet-4-6-low.report.json",
          "sha256": "d5a516e513d67491167788ff049d8db80a2acc83ac16faa83beb980be478646e"
        },
        "source": {
          "path": "Roger Zelazny/Lord of Light.txt",
          "sha256": "e36f307dfc2771673d8d4dd0a6c57b5ea0c182a0a24f60bb0603665be242e603",
          "digest_observed_at": "2026-09-09",
          "digest_at_analysis_run": null,
          "edition": null,
          "edition_status": "unresolved"
        },
        "pipeline_revision_at_run": null,
        "verification": {
          "source": "unverified",
          "human_review": "unreviewed",
          "bibliography": "unverified"
        },
        "issues": [],
        "todorov_status": "recovered-from-synthesis",
        "work_identity": {
          "title": "Lord of Light",
          "author": "Roger Zelazny",
          "year": 1967
        }
      },
      "ntsmr": {
        "version": "2.5",
        "primary_run_label": "NTSMR-2.5-claude-sonnet-4-6-low",
        "runs": {
          "NTSMR-2.4-claude-sonnet-4-6-low": {
            "pipeline_version": "2.4",
            "backend": "claude",
            "model": "claude-sonnet-4-6",
            "scores": {
              "time_linearity": 0.75,
              "pacing_velocity": 0.4,
              "threat_scale": 0.85,
              "protagonist_fate": 0.45,
              "conflict_style": 0.4,
              "price_type": 0.6
            },
            "score_space": "site-v1",
            "reasoning_effort": "low"
          },
          "NTSMR-2.5-claude-sonnet-4-6-low": {
            "pipeline_version": "2.5",
            "backend": "claude",
            "model": "claude-sonnet-4-6",
            "scores": {
              "time_linearity": 0.78,
              "pacing_velocity": 0.55,
              "threat_scale": 0.82,
              "protagonist_fate": 0.48,
              "conflict_style": 0.48,
              "price_type": 0.65
            },
            "score_space": "site-v1",
            "reasoning_effort": "low"
          },
          "NTSMR-2.5-balanced-glm-5+deepseek-v3.2": {
            "pipeline_version": "2.5",
            "backend": "openrouter",
            "model": "balanced-routing",
            "scores": {
              "time_linearity": 0.8,
              "pacing_velocity": 0.65,
              "threat_scale": 0.8,
              "protagonist_fate": 0.5,
              "conflict_style": 0.6,
              "price_type": 0.55
            },
            "score_space": "site-v1",
            "score_only": true,
            "source_run_label": "NTSMR-2.5-claude-sonnet-4-6-low"
          }
        }
      },
      "todorov_stages": {
        "equilibrium": "Heaven's theocratic order is stable: the gods monopolize technology and rebirth, manage caste through the Hall of Karma and pray-o-mats, and Sam has already been defeated and dispersed into the Bridge of the Gods — the Deicratic system functions as designed, its primary rebel neutralized.",
        "disruption": "Sam is resurrected by Ratri, Yama, and Tak, re-entering the world as a destabilizing agent; simultaneously, Nirriti grows stronger in the south, armed with guided missiles and advanced weapons, threatening Heaven from outside while Sam threatens it from within.",
        "recognition": "Sam, prompted by Yama's challenge to remember his identity and purpose, reconstructs his role as rebel against Heaven; he deduces Brahma's true identity and the full ideological stakes — that the gods weaponized psych-probe and body-renewal to enforce caste and eliminate Accelerationists — confirming the system's injustice and his own necessity.",
        "repair": "Sam and his allies wage a multi-front campaign: allying with the Rakasha from Hellwell, fighting the Battle of Khaipur against Nirriti, and ultimately working alongside Brahma to defeat the Black One, while Yama eliminates key gods and the rebellion fractures Heaven's monopoly on technology from within.",
        "new_equilibrium": "The post-Khaipur world is fundamentally altered: the Lords of Karma are replaced, technology spreads freely among the people, Buddhist shrines are erected, and Sam quietly departs into legend — a new order in which the gods' feudal-technological stranglehold is broken, though Sam himself recedes from history into myth."
      },
      "characters": [
        {
          "name": "Sam",
          "slug": "sam",
          "aliases": [
            "Mahasamatman",
            "Siddhartha",
            "Tathagatha",
            "Buddha",
            "Lord of Light",
            "Kalkin",
            "Maitreya",
            "Manjusri",
            "Binder",
            "Great-Souled Sam",
            "the Enlightened One",
            "Lord Kalkin",
            "The Buddha"
          ],
          "role": "protagonist / teacher",
          "summary": "One of the original colonists, repeatedly resurrected rebel against Heaven's theocratic control; currently restored from a dispersed magnetic state and reluctantly re-entering the war against the gods."
        },
        {
          "name": "Yama",
          "slug": "yama",
          "aliases": [
            "deathgod",
            "Yama-Dharma",
            "Lord of Death",
            "the deathgod",
            "the warrior",
            "Death",
            "One in Red"
          ],
          "role": "antagonist / complex figure",
          "summary": "Master artificer and god of death; engineered Sam's resurrection; kills Mara to protect the group; inventor of the psych-probe and advanced weapons; described as the greatest authority on such matters."
        },
        {
          "name": "Tak",
          "slug": "tak",
          "aliases": [
            "Tak of the Archives",
            "Tak of the Bright Spear"
          ],
          "role": "Helper / Companion",
          "summary": "Shape-shifting ape-form ally who escorts Ratri, surveys Sam's gambling with Raltariki, and serves as interlocutor for Yama's exposition on the Rakasha."
        },
        {
          "name": "Ratri",
          "slug": "ratri",
          "aliases": [
            "Goddess Ratri",
            "Lady of Night",
            "Night Immortal",
            "goddess of Night",
            "Lady Ratri"
          ],
          "role": "Helper / Sender",
          "summary": "Goddess of night and ally of Sam; captured after Keenset and sentenced to mortal incarnation in middle-aged bodies as punishment."
        },
        {
          "name": "Mara",
          "slug": "mara",
          "aliases": [
            "Lord of Illusion",
            "Aram"
          ],
          "role": "Opponent / Infiltrator",
          "summary": "Shape-shifting trickster god who infiltrated the monastery and is strangled by Yama after cycling through multiple disguises including Yama's own face and the form of Kali/Durga."
        },
        {
          "name": "Raltariki",
          "slug": "raltariki",
          "aliases": [],
          "role": "Rakasha gambler / provisional antagonist",
          "summary": "A Rakasha with a water-buffalo head and extra arms who gambles with Sam for thunderbolt fire elementals, ultimately losing an army of them to Sam's 'sacred seven' rolls."
        },
        {
          "name": "Jan",
          "slug": "jan",
          "aliases": [
            "Jannaveg",
            "Jan the sailmaker"
          ],
          "role": "Informant / Old acquaintance",
          "summary": "One of the First, now living quietly as a sailmaker on the Street of the Weavers; provides Sam with intelligence on the psych-probe, Masters of Karma, and the gods' identity and power structure."
        },
        {
          "name": "Brahma",
          "slug": "brahma",
          "aliases": [
            "Madeleine",
            "the god",
            "Lord Brahma",
            "Brahma the Infallible",
            "Kali",
            "Durga",
            "Candi",
            "she who walks at the left hand of Death",
            "the fair-haired one in red",
            "Candi the Fierce",
            "Mistress of Death"
          ],
          "role": "antagonist/ambiguous authority",
          "summary": "Ruler of the gods, revealed by Sam to be a woman (Madeleine) in a male body; articulates the paternalistic rationale for suppressing technology; offers Sam godhood, which he falsely accepts."
        },
        {
          "name": "Strake",
          "slug": "strake",
          "aliases": [],
          "role": "Retainer",
          "summary": "Sam's retainer, dispatched after the Temple meeting to sketch the fortifications of the Masters of Karma's palace."
        },
        {
          "name": "Rild",
          "slug": "rild",
          "aliases": [
            "Sugata",
            "the small man",
            "the second Buddha"
          ],
          "role": "antagonist-turned-disciple",
          "summary": "Kali's holy assassin sent to kill the Buddha; instead converted to genuine enlightenment, becoming Sugata; killed by Yama in ritual combat."
        },
        {
          "name": "Taraka",
          "slug": "taraka",
          "aliases": [
            "Binder's host",
            "mightiest of the Rakasha",
            "Lord of Hellwell"
          ],
          "role": "helper / ambiguous ally",
          "summary": "Most powerful of the Rakasha imprisoned in Hellwell; negotiates freedom in exchange for helping Sam sack Heaven; temporarily possesses Sam's body; debates fleeing versus fighting the gods."
        },
        {
          "name": "Agni",
          "slug": "agni",
          "aliases": [
            "Lord of the Fires",
            "Lord Agni"
          ],
          "role": "opponent",
          "summary": "God of Fire who arrives at Hellwell with Shiva, Yama, and Kali aboard Shiva's thunder chariot; Sam warns the Rakasha of his fire-setting Attribute."
        },
        {
          "name": "Shiva",
          "slug": "shiva",
          "aliases": [
            "Lord of Destruction",
            "the one with the trident"
          ],
          "role": "opponent",
          "summary": "Arrives at Hellwell bearing trident and bronze-serpent armor; described by Sam as holder of the power of chaos that separates atom from atom."
        },
        {
          "name": "Naga Chief",
          "slug": "naga-chief",
          "aliases": [
            "the burly leader of the Nagas"
          ],
          "role": "minor opponent",
          "summary": "Leader of the Nagas who challenges Yama to wrestling in defense of the Buddha; defeated and laid out by Yama."
        },
        {
          "name": "Angel of the South",
          "slug": "angel-of-the-south",
          "aliases": [
            "the Blue One",
            "he clad all in blue"
          ],
          "role": "minor helper",
          "summary": "Angelic figure who refuses armed combat with Yama, instead deploying a blue shield representing the passive power of life; ultimately retreats south without stopping Yama."
        },
        {
          "name": "Rudra",
          "slug": "rudra",
          "aliases": [],
          "role": "opponent",
          "summary": "Dark-faced god who never smiles; wields a heat-tracking bow given by Death; reveals bitter history with Kali; shoots the jackbird reciting Morgan's prophecy."
        },
        {
          "name": "Murugan",
          "slug": "murugan",
          "aliases": [
            "youthgod"
          ],
          "role": "minor",
          "summary": "Oldest youthgod; converses with Rudra about Sam and Kali; demands his new body from the Hall of Karma in time for the wedding."
        },
        {
          "name": "Kubera",
          "slug": "kubera",
          "aliases": [
            "Kubera the Fat"
          ],
          "role": "helper",
          "summary": "One of the Lokapalas; brings weapons into Khaipur; helps Yama with his daughter Murga using god-making power; remains in Khaipur with Ratri after the battle."
        },
        {
          "name": "Morgan",
          "slug": "morgan",
          "aliases": [],
          "role": "minor",
          "summary": "Poet of the plains whose prophecy about the Lord of Light is recited by a jackbird; referenced as Kali's former lover who incarnated as a jackbird."
        },
        {
          "name": "Nirriti",
          "slug": "nirriti",
          "aliases": [
            "the Black One",
            "Renfrew"
          ],
          "role": "opponent",
          "summary": "Fanatical Christian colonist who controls southern sea lanes and raises an army of 'soulless ones'; wages holy war against Heaven's temples; defeated by Brahma at Khaipur."
        },
        {
          "name": "Dalissa",
          "slug": "dalissa",
          "aliases": [],
          "role": "helper",
          "summary": "Last survivor of the Glow; waits at the bottom of the Vedra river to raise waves and cause flooding during the battle."
        },
        {
          "name": "Olvagga",
          "slug": "olvagga",
          "aliases": [
            "Jan Olvegg",
            "Olvegg"
          ],
          "role": "helper/opponent",
          "summary": "Sea captain and First colonist; recruited by Nirriti as adviser; kills Ganesha at Khaipur but is himself wounded; later departs with Tak in the thunder chariot."
        },
        {
          "name": "Ganesha",
          "slug": "ganesha",
          "aliases": [],
          "role": "helper/opponent",
          "summary": "Brahma's policy adviser and god-maker; counsels Fabian strategy against Nirriti; attempts to backstab Brahma at Khaipur and is killed by Olvegg."
        },
        {
          "name": "Krishna",
          "slug": "krishna",
          "aliases": [],
          "role": "helper",
          "summary": "One of the Lokapalas; receives news of Mahartha's fall and convenes the Lokapalas to respond."
        },
        {
          "name": "Murga",
          "slug": "murga",
          "aliases": [],
          "role": "minor",
          "summary": "Yama's brain-damaged daughter, a young girl who suffered transfer-effect injury; Kubera uses his power to help her begin naming objects."
        }
      ],
      "frameworks_mapped": [
        "Protocol Fiction Mapping",
        "Actantial Model",
        "Todorov's Equilibrium",
        "The Freytag Pyramid",
        "Propp's Morphology",
        "Genette's Narrative",
        "The Monomyth",
        "Dan Harmon",
        "Save the Cat",
        "Kishōtenketsu",
        "The Three-Act Structure",
        "Lévi-Strauss's Binary Oppositions",
        "Cognitive Estrangement",
        "Bakhtin's Chronotope",
        "Aristotelian Poetics",
        "Jungian Archetypal Analysis",
        "Genette's Transtextuality"
      ],
      "score_reliability": {
        "state": "replicated-agree",
        "threshold": 0.2,
        "runs_total": 3,
        "versions_compared": [
          "2.5"
        ],
        "max_spread": 0.12,
        "contested": []
      }
    },
    {
      "slug": "lisa_tuttle_lost_futures",
      "title": "Lost Futures",
      "author": "Lisa Tuttle",
      "year": 1992,
      "medium": "book",
      "genre_tags": [],
      "tropes": [],
      "quadrant_scores": {
        "time_linearity": 0.75,
        "pacing_velocity": 0.75,
        "threat_scale": 0.12,
        "protagonist_fate": 0.45,
        "conflict_style": 0.82,
        "price_type": 0.78
      },
      "baseline_quadrant_scores": {
        "time_linearity": 0.25,
        "pacing_velocity": 0.25,
        "threat_scale": 0.12,
        "protagonist_fate": 0.55,
        "conflict_style": 0.18,
        "price_type": 0.22
      },
      "provenance": {
        "analysis_run": "NTSMR-2.5-claude-sonnet-4-6-low",
        "analysis_body_sha256": "0e4a7c6afee055f48406a7103ef5489f264e6192abdf0fa271b75ceb19d3d182",
        "synthesis": {
          "path": "nartopo-tools/artifacts/lisa_tuttle_lost_futures.md.ntsmr-2-5-claude-sonnet-4-6-low.synthesis.json",
          "sha256": "0bd6bb2ee4532a699b5692618b019ab4b3d733a527af1ba5b4ff54432f9aa2a2"
        },
        "report": {
          "path": "nartopo-tools/artifacts/lisa_tuttle_lost_futures.md.ntsmr-2-5-claude-sonnet-4-6-low.report.json",
          "sha256": "763a3a0b88c99f87e173a39aed455bcbe9ddb64ae90b4559688338c5450c3098"
        },
        "source": {
          "path": "Lisa Tuttle/Lost Futures.txt",
          "sha256": "82a885e8f64345bce463780e00775e95145a3aa66c8bbc1daa59626761a5d4d2",
          "digest_observed_at": "2026-09-09",
          "digest_at_analysis_run": null,
          "edition": null,
          "edition_status": "unresolved"
        },
        "pipeline_revision_at_run": null,
        "verification": {
          "source": "unverified",
          "human_review": "unreviewed",
          "bibliography": "unverified"
        },
        "issues": [],
        "todorov_status": "recovered-from-synthesis",
        "work_identity": {
          "title": "Lost Futures",
          "author": "Lisa Tuttle",
          "year": 1992
        }
      },
      "ntsmr": {
        "version": "2.5",
        "primary_run_label": "NTSMR-2.5-claude-sonnet-4-6-low",
        "runs": {
          "NTSMR-2.4-claude-sonnet-4-6-low": {
            "pipeline_version": "2.4",
            "backend": "claude",
            "model": "claude-sonnet-4-6",
            "scores": {
              "time_linearity": 0.85,
              "pacing_velocity": 0.75,
              "threat_scale": 0.12,
              "protagonist_fate": 0.4,
              "conflict_style": 0.88,
              "price_type": 0.82
            },
            "score_space": "site-v1",
            "reasoning_effort": "low"
          },
          "NTSMR-2.5-claude-sonnet-4-6-low": {
            "pipeline_version": "2.5",
            "backend": "claude",
            "model": "claude-sonnet-4-6",
            "scores": {
              "time_linearity": 0.75,
              "pacing_velocity": 0.75,
              "threat_scale": 0.12,
              "protagonist_fate": 0.45,
              "conflict_style": 0.82,
              "price_type": 0.78
            },
            "score_space": "site-v1",
            "reasoning_effort": "low"
          },
          "NTSMR-2.5-balanced-glm-5+deepseek-v3.2": {
            "pipeline_version": "2.5",
            "backend": "openrouter",
            "model": "balanced-routing",
            "scores": {
              "time_linearity": 0.6,
              "pacing_velocity": 0.75,
              "threat_scale": 0.25,
              "protagonist_fate": 0.55,
              "conflict_style": 0.85,
              "price_type": 0.8
            },
            "score_space": "site-v1",
            "score_only": true,
            "source_run_label": "NTSMR-2.5-claude-sonnet-4-6-low"
          }
        }
      },
      "todorov_stages": {
        "equilibrium": "Clare lives a functional but emotionally hollowed-out life in Virgil — cycling through casual relationships, suppressing grief over Waters's death, and maintaining surface stability through routine. The parallel-life intrusions exist but are managed, and she treats the alternate memories as dreams rather than rival realities.",
        "disruption": "A Beatles song triggers involuntary memory of Thomas Bell and the day Clare chose erotic pleasure over supervising diabetic Waters, crystallizing her central guilt. Simultaneously, Dr. Beckett's equations appear on her work screen and the alternate-life memories begin arriving with epistemological force — not as fantasy but as equally real pasts she cannot dismiss.",
        "recognition": "Clare drives to Waters's house on Robin Hood Lane and sees through the walls to furnishings she has never physically observed, confirming the parallel memories are epistemically real rather than wishful imagination. She later spots Michael Zacharias on a New York street and crosses to him impulsively, discovering he has no memory of her despite her vivid recollections of their shared life — sealing the recognition that she is genuinely permeable to multiple realities.",
        "repair": "Clare attempts multiple strategies: she suppresses dream access, re-contacts Barry to articulate the many-worlds logic of her experience, travels to New York to pursue Michael, and eventually drives into a snowstorm as a threshold crossing. After her breakdown and psychiatric day-treatment, she commits to staying in the world where Waters is in a coma — choosing presence and relation over crossings — and reconciles with her mother.",
        "new_equilibrium": "Clare wakes in her own room with ordinary life restored but permanently altered. She has visited the world where Waters/Bill is alive and known a moment of belonging; she carries the knowledge of parallel selves and lost futures as permanent interior geography. Her relationship with her mother is repaired, her compulsive pattern with men is recognized, and she holds the alternate lives not as madness but as real — a changed consciousness rather than a cured one."
      },
      "characters": [
        {
          "name": "L.C.",
          "slug": "lc",
          "aliases": [
            "Lucy Clare Beckett",
            "Luz",
            "Lucy Clare",
            "Goosey-Lucy",
            "Clare Beckett"
          ],
          "role": "Clare-variant / alternate self",
          "summary": "The 'madwoman' alternate Clare, institutionalized and amnesiac; the second-person chapter is voiced by this self addressing the mathematician Clare. In the institution she identifies herself as 'Clare Beckett.'"
        },
        {
          "name": "Barry Silver",
          "slug": "barry-silver",
          "aliases": [],
          "role": "ex-boyfriend, alternate-world husband",
          "summary": "Clare's ex who has moved on to marry Deb and father a child; dismisses Clare's many-worlds account and delivers a harsh diagnosis of her psychological avoidance before cutting contact."
        },
        {
          "name": "Waters",
          "slug": "waters",
          "aliases": [
            "Wat",
            "Bill"
          ],
          "role": "deceased brother",
          "summary": "Clare's brother, in a coma for seventeen years in the primary reality; alive and well (as 'Bill') in the alternate world where Clare is Luz; his fate and Clare's guilt over it drive the entire narrative."
        },
        {
          "name": "Paul",
          "slug": "paul",
          "aliases": [],
          "role": "one-night stand",
          "summary": "The man Clare wakes beside at the novel's opening; dismissed after she confesses she may have used him to force a life-change."
        },
        {
          "name": "Sophie",
          "slug": "sophie",
          "aliases": [
            "Alyx"
          ],
          "role": "Clare's closest friend",
          "summary": "An artist and teacher; her alternate-world self raised a daughter Molly with Clare; in this reality she had an abortion she never disclosed, and her friendship with Clare fractures when Clare confronts her with the alternate life."
        },
        {
          "name": "Hilary",
          "slug": "hilary",
          "aliases": [],
          "role": "coworker",
          "summary": "Clare's colleague who appears in the office doorway and offers the Zhuangzi butterfly story as philosophical provocation."
        },
        {
          "name": "Dr Beckett",
          "slug": "dr-beckett",
          "aliases": [
            "L. C. Beckett",
            "Dr L. C. Beckett"
          ],
          "role": "alternate self / imagined persona",
          "summary": "A mathematician working on many-worlds proofs in New York; Clare's adolescent fantasy of what she might have become, and possibly an alternate self bleeding through into Clare's perception."
        },
        {
          "name": "Heather",
          "slug": "heather",
          "aliases": [],
          "role": "secondary",
          "summary": "L.C. Beckett's cat, whose sudden flight triggers L.C.'s paranoid episode."
        },
        {
          "name": "Baltazar",
          "slug": "baltazar",
          "aliases": [
            "Thomas Bell",
            "Tom Bell",
            "Tommy Bell",
            "Tom"
          ],
          "role": "helper/love interest",
          "summary": "Head of oneirology at the university in the alternate world; revealed at the novel's end to be Thomas Bell, Clare's lost first love, returned to Virgil as a psychologist studying dreams."
        },
        {
          "name": "Michael Zacharias",
          "slug": "michael-zacharias",
          "aliases": [],
          "role": "Alternate-world husband / love interest",
          "summary": "A musician in New York; Clare carries embodied memories of a marriage to him; they kiss and begin to make love before he sends her away; he is drawn to her 'madness' as erotic fascination."
        },
        {
          "name": "Laura Jean",
          "slug": "laura-jean",
          "aliases": [],
          "role": "Clare's mother",
          "summary": "A Southern woman who has found new family purpose through Laurel and baby Erika; drives Clare home after her breakdown and insists Clare has no independent life."
        },
        {
          "name": "Jack",
          "slug": "jack",
          "aliases": [],
          "role": "Clare's father",
          "summary": "A radio station manager; cheerful at the Christmas reunion; calls Clare 'Lucy Clare' as the Tennessee family does."
        },
        {
          "name": "Laurel",
          "slug": "laurel",
          "aliases": [],
          "role": "Clare's cousin",
          "summary": "Married to Steve, mother of adopted Korean baby Erika; has integrated into Clare's parents' life in a way Clare never could."
        },
        {
          "name": "Erika",
          "slug": "erika",
          "aliases": [],
          "role": "Laurel's adopted daughter",
          "summary": "Korean infant; her arrival gives Clare's parents a surrogate grandchild, displacing Clare in the family structure."
        },
        {
          "name": "Buzz",
          "slug": "buzz",
          "aliases": [],
          "role": "Institutional therapist/teacher",
          "summary": "An art therapist at the institution where L.C./Clare is held; coaxes her into drawing as a route back to memory."
        },
        {
          "name": "Molly",
          "slug": "molly",
          "aliases": [],
          "role": "Non-existent child",
          "summary": "Sophie and Alan's daughter in the alternate world where Sophie kept her pregnancy; does not exist in the primary timeline; Clare's memories of her are vivid and loving."
        },
        {
          "name": "Alan",
          "slug": "alan",
          "aliases": [],
          "role": "Sophie's former lover",
          "summary": "A married man who pressured Sophie into an abortion, offering to pay but threatening to abandon her if she kept the child."
        },
        {
          "name": "Joan",
          "slug": "joan",
          "aliases": [],
          "role": "helper",
          "summary": "Clare's psychiatrist in the alternate world who challenges her grandiose guilt and encourages her to see Waters as a person with his own agency."
        },
        {
          "name": "Beatrice",
          "slug": "beatrice",
          "aliases": [
            "Bea"
          ],
          "role": "minor/helper",
          "summary": "Baltazar's assistant in the research studio who brings lunch and operates recording equipment during the debriefing."
        },
        {
          "name": "Cosima",
          "slug": "cosima",
          "aliases": [
            "Cozzy"
          ],
          "role": "minor",
          "summary": "Bill and Alyx's young daughter, seen eating spaghetti at dinner."
        },
        {
          "name": "Diamond",
          "slug": "diamond",
          "aliases": [],
          "role": "minor",
          "summary": "Bill and Alyx's child, who barely looks up from food at dinner."
        }
      ],
      "frameworks_mapped": [
        "Protocol Fiction Mapping",
        "Actantial Model",
        "Todorov's Equilibrium",
        "The Freytag Pyramid",
        "Propp's Morphology",
        "Genette's Narrative",
        "The Monomyth",
        "Dan Harmon",
        "Save the Cat",
        "Kishōtenketsu",
        "The Three-Act Structure",
        "Lévi-Strauss's Binary Oppositions",
        "Cognitive Estrangement",
        "Bakhtin's Chronotope",
        "Aristotelian Poetics",
        "Jungian Archetypal Analysis",
        "Genette's Transtextuality"
      ],
      "score_reliability": {
        "state": "replicated-agree",
        "threshold": 0.2,
        "runs_total": 3,
        "versions_compared": [
          "2.5"
        ],
        "max_spread": 0.15,
        "contested": []
      }
    },
    {
      "slug": "lois_mcmaster_bujold_mirror_dance",
      "title": "Mirror Dance",
      "author": "Lois McMaster Bujold",
      "year": 1994,
      "medium": "book",
      "genre_tags": [],
      "tropes": [],
      "quadrant_scores": {
        "time_linearity": 0.25,
        "pacing_velocity": 0.45,
        "threat_scale": 0.45,
        "protagonist_fate": 0.38,
        "conflict_style": 0.55,
        "price_type": 0.6
      },
      "provenance": {
        "analysis_run": "NTSMR-2.5-claude-sonnet-4-6-low",
        "analysis_body_sha256": "48d977c0eece7ac34e17f5178d22baec9959ef6a5541dd6410593aa6a26ce29d",
        "synthesis": {
          "path": "nartopo-tools/artifacts/lois_mcmaster_bujold_mirror_dance.md.ntsmr-2-5-claude-sonnet-4-6-low.synthesis.json",
          "sha256": "dfc1b526cc81f718de84cc28807839fe102903342a9a2909c2e475acd365ec46"
        },
        "report": {
          "path": "nartopo-tools/artifacts/lois_mcmaster_bujold_mirror_dance.md.ntsmr-2-5-claude-sonnet-4-6-low.report.json",
          "sha256": "3ee720dea6e0e9c59e4ed19662bdb489bb63f1598dd43bc9b416480175d83c86"
        },
        "source": {
          "path": "Lois McMaster Bujold/Mirror Dance.txt",
          "sha256": "2748bb4c0ff526dc424749d832e881c6372e46f97440d2f20f26af633e7dc968",
          "digest_observed_at": "2026-09-09",
          "digest_at_analysis_run": null,
          "edition": null,
          "edition_status": "unresolved"
        },
        "pipeline_revision_at_run": null,
        "verification": {
          "source": "unverified",
          "human_review": "unreviewed",
          "bibliography": "unverified"
        },
        "issues": [],
        "todorov_status": "recovered-from-synthesis",
        "work_identity": {
          "title": "Mirror Dance",
          "author": "Lois McMaster Bujold",
          "year": 1994
        }
      },
      "ntsmr": {
        "version": "2.5",
        "primary_run_label": "NTSMR-2.5-claude-sonnet-4-6-low",
        "runs": {
          "NTSMR-2.4-claude-sonnet-4-6-low": {
            "pipeline_version": "2.4",
            "backend": "claude",
            "model": "claude-sonnet-4-6",
            "scores": {
              "time_linearity": 0.22,
              "pacing_velocity": 0.38,
              "threat_scale": 0.22,
              "protagonist_fate": 0.28,
              "conflict_style": 0.62,
              "price_type": 0.58
            },
            "score_space": "site-v1",
            "reasoning_effort": "low"
          },
          "NTSMR-2.5-claude-sonnet-4-6-low": {
            "pipeline_version": "2.5",
            "backend": "claude",
            "model": "claude-sonnet-4-6",
            "scores": {
              "time_linearity": 0.25,
              "pacing_velocity": 0.45,
              "threat_scale": 0.45,
              "protagonist_fate": 0.38,
              "conflict_style": 0.55,
              "price_type": 0.6
            },
            "score_space": "site-v1",
            "reasoning_effort": "low"
          },
          "NTSMR-2.5-balanced-glm-5+deepseek-v3.2": {
            "pipeline_version": "2.5",
            "backend": "openrouter",
            "model": "balanced-routing",
            "scores": {
              "time_linearity": 0.2,
              "pacing_velocity": 0.6,
              "threat_scale": 0.4,
              "protagonist_fate": 0.4,
              "conflict_style": 0.65,
              "price_type": 0.7
            },
            "score_space": "site-v1",
            "score_only": true,
            "source_run_label": "NTSMR-2.5-claude-sonnet-4-6-low"
          }
        }
      },
      "todorov_stages": {
        "equilibrium": "Mark exists as a constructed impersonator — a clone built to assassinate Miles Vorkosigan — living under Galen's conditioning with no independent identity, no family, and no recognized place in any social order. Miles operates as Admiral Naismith commanding the Dendarii mercenaries, with an established dual life between Barrayar and the free mercenary fleet.",
        "disruption": "Mark commandeers the Ariel under Miles's name and launches an unauthorized raid on House Bharaputra's clone-crèche. The raid goes catastrophically wrong: Miles is shot through the chest and dies, his cryo-chamber disappears with Medic Norwood, and the Dendarii are left leaderless with a dead admiral and an exposed impostor.",
        "recognition": "The recognition unfolds in stages. Mark deduces from Norwood's helmet-cam footage that the cryo-chamber was shipped via the automated Bharaputran facility before Norwood died, meaning Miles never left Jackson's Whole. Mark then cross-connects Norwood's prior contact with Rowan Durona and the Baronne Lotus Bharaputra's renegade Durona origins, identifying the Durona Group under Baron Fell as Miles's location — a conclusion Illyan receives skeptically but cannot refute.",
        "repair": "Mark leads an expedition back to Jackson's Whole. After being captured by Baron Ryoval and subjected to torture, his dissociative sub-personalities enable him to kill Ryoval. He frees himself, contacts Miles via comconsole, and coordinates the extraction of Miles and the Durona Group. Miles is revived and recovered; Mark performs the taxation ceremony before Emperor Gregor as Aral's proxy, formally entering the Vor social order as a recognized Vorkosigan son.",
        "new_equilibrium": "Mark emerges as a legally acknowledged son of the Vorkosigan family with his own identity distinct from Miles. He resolves to enroll in the Hassadar District college, fund Rowan Durona's Escobaran medical research to displace brain-transplant life extension, and consciously integrate his dissociative sub-personalities as parts of a composite self he commits to caring for. Miles is restored to life and resumes his place. Both brothers enter the Imperial Residence at Winterfair as recognized family members, with Mark planning an independent future grounded in economic agency and intellectual hunger rather than imitation."
      },
      "characters": [
        {
          "name": "Bel Thorne",
          "slug": "bel-thorne",
          "aliases": [
            "Captain Thorne"
          ],
          "role": "Helper / Unwitting accomplice",
          "summary": "Betan hermaphrodite captain of the Ariel; assists Mark believing him to be Naismith; sharp, enthusiastic, and possessed of a probing curiosity that unsettles Mark."
        },
        {
          "name": "Elli Quinn",
          "slug": "elli-quinn",
          "aliases": [
            "Captain Quinn"
          ],
          "role": "Senior Dendarii officer / Miles's companion",
          "summary": "Senior Dendarii officer who takes command after Miles's death; drives the plan to use Mark as a Miles-double, coaches him via ear-bug, imposes communications blackout."
        },
        {
          "name": "Elena Bothari-Jesek",
          "slug": "elena-bothari-jesek",
          "aliases": [
            "Captain Bothari-Jesek"
          ],
          "role": "Dendarii captain / confidante",
          "summary": "Captain of the Peregrine; Barrayaran-born; old friend of Miles; acts as spokesperson when the Ariel's disappearance is revealed and offers sharp emotional checks on Miles."
        },
        {
          "name": "Dr. Aragones",
          "slug": "dr-aragones",
          "aliases": [],
          "role": "Physician",
          "summary": "Medical director at the Beauchene Life Center on Escobar; delivers clinical assessments of Red Squad casualties including the irreversibly destroyed Aziz."
        },
        {
          "name": "Aziz",
          "slug": "aziz",
          "aliases": [],
          "role": "Dendarii trooper (victim)",
          "summary": "Twenty-one-year-old Dendarii trooper accepted for officer training; personality permanently destroyed by a bad cryo-prep, reduced to near-infant neural state."
        },
        {
          "name": "Sandy Hereld",
          "slug": "sandy-hereld",
          "aliases": [
            "Lieutenant Hereld"
          ],
          "role": "Dendarii communications officer",
          "summary": "Handles fleet communications and shuttle logistics; relays status of Red Squad survivors to Quinn."
        },
        {
          "name": "Baz Jesek",
          "slug": "baz-jesek",
          "aliases": [
            "Commodore Jesek"
          ],
          "role": "Fleet engineer",
          "summary": "Elena's husband; commands Dendarii repair and refit in Miles's absence; raises pragmatic questions about Mark's political status."
        },
        {
          "name": "Galen",
          "slug": "galen",
          "aliases": [],
          "role": "Opponent (backstory)",
          "summary": "Mark's original Komarran handler; administered systematic abuse disguised as training discipline; revealed through fast-penta interrogation of a subordinate."
        },
        {
          "name": "Mark Vorkosigan",
          "slug": "mark-vorkosigan",
          "aliases": [
            "the Countess",
            "the Captain",
            "Admiral Naismith",
            "Lieutenant Vorkosigan",
            "Lord Vorkosigan",
            "Admiral",
            "the Lieutenant",
            "Lord Mark",
            "Jan Vandermark",
            "Admiral Naismith (impersonation)",
            "Miles (impersonation)",
            "the Admiral (impersonation)",
            "Gorge",
            "Grunt",
            "Howl",
            "the Other",
            "Spot",
            "Killer",
            "Countess",
            "Aunt Cordelia",
            "the Count",
            "Prime Minister",
            "the Admiral"
          ],
          "role": "Deuteragonist / Mark's progenitor",
          "summary": "Clone-brother of Miles; throughout this chunk undergoes street violence, eavesdrops on his adoptive parents, is brought to Vorkosigan Surleau, learns of the cryo-chamber crisis, witnesses the Count's cardiac collapse, performs the taxation ceremony as proxy, dances with Kareen, and breaks down in Miles's room."
        },
        {
          "name": "Sergeant Taura",
          "slug": "sergeant-taura",
          "aliases": [],
          "role": "helper",
          "summary": "Genetically engineered super-soldier; joins the expedition; her personal history with Ryoval and Canaba provides crucial background on Ryoval's vendetta against Miles."
        },
        {
          "name": "Vasa Luigi",
          "slug": "vasa-luigi",
          "aliases": [
            "Baron Bharaputra",
            "the Baron"
          ],
          "role": "opponent",
          "summary": "Jacksonian baron released in prisoner exchange; counts coup on Mark and delivers a cold threat before departing with the escaped clone ringleader."
        },
        {
          "name": "Baron Fell",
          "slug": "baron-fell",
          "aliases": [
            "Georish Stauber"
          ],
          "role": "actantial helper (conditional)",
          "summary": "Head of House Fell; escaped with Lilly Durona from Ryoval's house; employs the Durona Group under their founding Deal; nominally controls them but may not know they have Miles."
        },
        {
          "name": "Medic Norwood",
          "slug": "medic-norwood",
          "aliases": [],
          "role": "absent pivot",
          "summary": "Killed during the raid; last person known to have had the cryo-chamber; hid it in under six minutes and died laughing, leaving a mystery."
        },
        {
          "name": "Sergeant Framingham",
          "slug": "sergeant-framingham",
          "aliases": [],
          "role": "minor officer",
          "summary": "Led the rescue patrol that retrieved Norwood's body and Tonkin but not the cryo-chamber; implicitly suggests using Mark as Miles-double."
        },
        {
          "name": "Trooper Tonkin",
          "slug": "trooper-tonkin",
          "aliases": [],
          "role": "witness",
          "summary": "Wounded Dendarii soldier; briefly revived to relay Norwood's last actions before losing consciousness again."
        },
        {
          "name": "Lieutenant Kimura",
          "slug": "lieutenant-kimura",
          "aliases": [],
          "role": "minor officer",
          "summary": "Led the successful kidnapping of Baron Bharaputra; wearily sarcastic in the debrief."
        },
        {
          "name": "Trooper Phillipi",
          "slug": "trooper-phillipi",
          "aliases": [
            "the bike-trooper"
          ],
          "role": "minor soldier",
          "summary": "Bike-trooper whose helmet is lost in an attack; medical readouts go flatline, fate initially unknown."
        },
        {
          "name": "Maree",
          "slug": "maree",
          "aliases": [
            "the blonde clone"
          ],
          "role": "actantial:object",
          "summary": "Platinum-blonde body-sculpted clone rescued from Bharaputra's creche; Mark reveals the truth of her situation to her and later nearly assaults her."
        },
        {
          "name": "Simon Illyan",
          "slug": "simon-illyan",
          "aliases": [],
          "role": "antagonist/institutional gatekeeper",
          "summary": "ImpSec chief who grants Mark access to raw intelligence files while subtly obstructing him; grows desperate as the search stalls."
        },
        {
          "name": "Ivan Vorpatril",
          "slug": "ivan-vorpatril",
          "aliases": [
            "Lieutenant Lord Vorpatril"
          ],
          "role": "helper/opponent",
          "summary": "Miles's cousin who escorts Mark through Vorbarr Sultana; sardonic and resentful but pragmatically accepts Mark as a buffer against inheriting the Vorkosigan countship."
        },
        {
          "name": "Gregor",
          "slug": "gregor",
          "aliases": [
            "the Emperor",
            "Emperor",
            "Emperor Gregor"
          ],
          "role": "actantial:sender",
          "summary": "Emperor of Barrayar; formally accepts Mark's taxation proxy presentation, privately asks after Mark's wellbeing, and gently urges him to draw on the Vorkosigan political credit."
        },
        {
          "name": "Kareen",
          "slug": "kareen",
          "aliases": [
            "Lady Kareen",
            "Kareen Koudelka"
          ],
          "role": "actantial:object",
          "summary": "Young Barrayaran woman who dances the mirror dance with Mark at the Imperial banquet, eliciting his genuine laughter and then discussing uterine replicators."
        },
        {
          "name": "Rowan Durona",
          "slug": "rowan-durona",
          "aliases": [
            "Chrys",
            "Dr. R. Durona",
            "Dr. R."
          ],
          "role": "exposition figure/sender",
          "summary": "Miles's primary physician at the Durona facility; caring and attentive; responsible for his physical recovery while managing institutional pressure to accelerate his progress."
        },
        {
          "name": "Baron Ryoval",
          "slug": "baron-ryoval",
          "aliases": [
            "Ry Ryoval"
          ],
          "role": "opponent",
          "summary": "Jacksonian Great House lord; captures Mark believing him to be Admiral Naismith; conducts elaborate psychological and physical torture, studying Mark's dissociative responses."
        },
        {
          "name": "Baronne Lotus Bharaputra",
          "slug": "baronne-lotus-bharaputra",
          "aliases": [],
          "role": "exposition figure",
          "summary": "Renegade Durona clone who sold herself to House Bharaputra; creates the cross-connection between the Durona Group and House Bharaputra; planning a clone-brain transplant."
        },
        {
          "name": "Lilly Junior",
          "slug": "lilly-junior",
          "aliases": [
            "the Durona clone-girl"
          ],
          "role": "actantial:object",
          "summary": "Clone-girl living in Vasa Luigi's household, destined for brain transplant; Miles manipulates her into complicity during Rowan's absence."
        },
        {
          "name": "Ryoval's technician",
          "slug": "ryovals-technician",
          "aliases": [],
          "role": "opponent",
          "summary": "Ryoval's torture technician who reports to the Baron that Mark appears to be enjoying the process and that his brain scans show an abnormal dissociation pattern."
        },
        {
          "name": "Lieutenant Iverson",
          "slug": "lieutenant-iverson",
          "aliases": [],
          "role": "bureaucracy",
          "summary": "ImpSec officer who leads the consulate squad to Ryoval's installation; skeptical of Admiral Naismith's mercenary status."
        },
        {
          "name": "Lord Vorsmythe",
          "slug": "lord-vorsmythe",
          "aliases": [],
          "role": "actantial:helper",
          "summary": "Barrayaran industrialist; engages Mark in a lengthy conversation about high-growth economic sectors at the Winterfair Ball."
        }
      ],
      "frameworks_mapped": [
        "Protocol Fiction Mapping",
        "Actantial Model",
        "Todorov's Equilibrium",
        "The Freytag Pyramid",
        "Propp's Morphology",
        "Genette's Narrative",
        "The Monomyth",
        "Dan Harmon",
        "Save the Cat",
        "Kishōtenketsu",
        "The Three-Act Structure",
        "Lévi-Strauss's Binary Oppositions",
        "Cognitive Estrangement",
        "Bakhtin's Chronotope",
        "Aristotelian Poetics",
        "Jungian Archetypal Analysis",
        "Genette's Transtextuality"
      ],
      "score_reliability": {
        "state": "replicated-agree",
        "threshold": 0.2,
        "runs_total": 3,
        "versions_compared": [
          "2.5"
        ],
        "max_spread": 0.15,
        "contested": []
      }
    },
    {
      "slug": "william_gibson_mona_lisa_overdrive",
      "title": "Mona Lisa Overdrive",
      "author": "William Gibson",
      "year": 1988,
      "medium": "book",
      "genre_tags": [
        "science fiction",
        "cyberpunk"
      ],
      "tropes": [],
      "quadrant_scores": {
        "time_linearity": 0.45,
        "pacing_velocity": 0.6,
        "threat_scale": 0.6,
        "protagonist_fate": 0.55,
        "conflict_style": 0.6,
        "price_type": 0.65
      },
      "baseline_quadrant_scores": {
        "time_linearity": 0.65,
        "pacing_velocity": 0.55,
        "threat_scale": 0.75,
        "protagonist_fate": 0.6,
        "conflict_style": 0.45,
        "price_type": 0.7
      },
      "provenance": {
        "analysis_run": "NTSMR-2.5-claude-sonnet-4-6-low",
        "analysis_body_sha256": "e5ece62dbaead04dae974af8c8e37bb4c1a6e16317557cb875ccfdbd84583e71",
        "synthesis": {
          "path": "nartopo-tools/artifacts/william_gibson_mona_lisa_overdrive.md.ntsmr-2-5-claude-sonnet-4-6-low.synthesis.json",
          "sha256": "95fc01a6a67a25d4779c43d8a7da74ac55a4e351151589453c4d718cad990f43"
        },
        "report": {
          "path": "nartopo-tools/artifacts/william_gibson_mona_lisa_overdrive.md.ntsmr-2-5-claude-sonnet-4-6-low.report.json",
          "sha256": "946337c273d56e8e8092f79d910a99b98ec53faeed810291ebe7d029b118a18b"
        },
        "source": {
          "path": "William Gibson/Mona Lisa Overdrive (1988).txt",
          "sha256": "97a853029423cdce87ffe09837c5365c96fc1632a753c50acf7910b773b01686",
          "digest_observed_at": "2026-09-09",
          "digest_at_analysis_run": null,
          "edition": null,
          "edition_status": "unresolved"
        },
        "pipeline_revision_at_run": null,
        "verification": {
          "source": "unverified",
          "human_review": "unreviewed",
          "bibliography": "unverified"
        },
        "issues": [],
        "todorov_status": "recovered-from-synthesis",
        "work_identity": {
          "title": "Mona Lisa Overdrive",
          "author": "William Gibson",
          "year": 1988
        }
      },
      "ntsmr": {
        "version": "2.5",
        "primary_run_label": "NTSMR-2.5-claude-sonnet-4-6-low",
        "runs": {
          "NTSMR-2.3-gemini-3.1-pro-preview": {
            "pipeline_version": "2.3",
            "backend": "gemini",
            "model": "gemini-3.1-pro-preview",
            "scores": {
              "time_linearity": 0.8,
              "pacing_velocity": 0.75,
              "threat_scale": 0.9,
              "protagonist_fate": 0.85,
              "conflict_style": 0.7,
              "price_type": 0.95
            },
            "score_space": "site-v1"
          },
          "NTSMR-2.3-claude-sonnet-4-6-low": {
            "pipeline_version": "2.3",
            "backend": "claude",
            "model": "claude-sonnet-4-6",
            "scores": {
              "time_linearity": 0.82,
              "pacing_velocity": 0.72,
              "threat_scale": 0.78,
              "protagonist_fate": 0.65,
              "conflict_style": 0.7,
              "price_type": 0.75
            },
            "score_space": "site-v1",
            "reasoning_effort": "low"
          },
          "NTSMR-2.4-claude-sonnet-4-6-low": {
            "pipeline_version": "2.4",
            "backend": "claude",
            "model": "claude-sonnet-4-6",
            "scores": {
              "time_linearity": 0.55,
              "pacing_velocity": 0.35,
              "threat_scale": 0.55,
              "protagonist_fate": 0.5,
              "conflict_style": 0.45,
              "price_type": 0.55
            },
            "score_space": "site-v1",
            "reasoning_effort": "low"
          },
          "NTSMR-2.5-claude-sonnet-4-6-low": {
            "pipeline_version": "2.5",
            "backend": "claude",
            "model": "claude-sonnet-4-6",
            "scores": {
              "time_linearity": 0.45,
              "pacing_velocity": 0.6,
              "threat_scale": 0.6,
              "protagonist_fate": 0.55,
              "conflict_style": 0.6,
              "price_type": 0.65
            },
            "score_space": "site-v1",
            "reasoning_effort": "low"
          },
          "NTSMR-2.5-balanced-glm-5+deepseek-v3.2": {
            "pipeline_version": "2.5",
            "backend": "openrouter",
            "model": "balanced-routing",
            "scores": {
              "time_linearity": 0.35,
              "pacing_velocity": 0.7,
              "threat_scale": 0.5,
              "protagonist_fate": 0.65,
              "conflict_style": 0.65,
              "price_type": 0.6
            },
            "score_space": "site-v1",
            "score_only": true,
            "source_run_label": "NTSMR-2.5-claude-sonnet-4-6-low"
          }
        }
      },
      "todorov_stages": {
        "equilibrium": "Multiple parallel status quos hold at the opening: Mona survives through transactional sex work under Eddy's control in Florida; Kumiko is installed as a political guest in Swain's London house; Slick maintains his isolated Factory routine with the unconscious Count as an uncomfortable but stable fixture; Angie operates as a simstim star managing her addiction and uncanny dreams at a remove from crisis.",
        "disruption": "The hidden plot to fake Angie Mitchell's death — requiring a body double — is set in motion by an unknown third party operating through Swain, while simultaneously Prior begins surveillance of Mona (whose physical resemblance to Angie makes her the candidate body double), and Sally commissions covert surveillance of Swain's communications, fracturing the apparent safety of every established baseline.",
        "recognition": "Recognition is distributed across threads: Sally confronts Kumiko with the fact that she is already implicated in the intrigue whether she chooses it or not; Colin's playback of Swain's bugged conversation reveals to Sally and Kumiko the true stakes of the conspiracy; Angie begins investigating her own past through Tally Isham's simstim sequences after her unauthorized matrix access triggers scrutiny from Hilton Swift; Gentry's focused examination of the Count and trode-net signals that the sleeper may connect to his obsession with the Shape.",
        "repair": "Active counter-measures and adjustments are underway but incomplete within the sampled material: Sally enlists Tick to surveil Swain covertly; Angie pursues the wine-bottle label clue extracted from simstim footage as an investigative thread; Prior moves to extract Mona and Eddy from Florida via a private plane, repositioning Mona within the conspiracy's machinery; Gentry, chemically altered by the blue derm, insists on meeting the Count, suggesting a shift in Factory's internal dynamics that may affect the sleeper's situation.",
        "new_equilibrium": "No new equilibrium is reached within the sampled text. All threads remain in active disruption: Mona is being repositioned as a potential Angie double, Kumiko's exile has been revealed as something darker than political protection, Angie's neurological symptoms and the conspiracy around her identity remain unresolved, and Gentry's sudden interest in the Count introduces new instability at Factory. The narrative is structurally mid-disruption."
      },
      "characters": [
        {
          "name": "Mona",
          "slug": "mona",
          "aliases": [],
          "role": "SINless teenager / prostitute",
          "summary": "A sixteen-year-old SINless girl living in squalor in a dirty squat, managed by her pimp Eddy. She is naive about the larger machinations but excited to be taken to Florida and onto a private jet."
        },
        {
          "name": "Eddy",
          "slug": "eddy",
          "aliases": [],
          "role": "Mona's pimp and manager",
          "summary": "A sharp-dressing pimp who operates various schemes. He originally met Mona in Cleveland while buying a vehicle and is now orchestrating a mysterious flight out of Florida for both of them."
        },
        {
          "name": "Kumiko",
          "slug": "kumiko",
          "aliases": [],
          "role": "Daughter of a Yakuza boss / Exile",
          "summary": "A young Japanese girl sent to London by her father. She uses an AI construct to secretly record her hosts and is deeply traumatized by the memory of her mother's death."
        },
        {
          "name": "Sally Shears",
          "slug": "sally-shears",
          "aliases": [
            "Sally"
          ],
          "role": "Mercenary / Kumiko's protector",
          "summary": "A volatile, experienced operative protecting Kumiko. She hires a data thief to spy on Swain and attempts to evade surveillance by leading Kumiko through a maze of London transit."
        },
        {
          "name": "Roger Swain",
          "slug": "roger-swain",
          "aliases": [
            "Swain"
          ],
          "role": "London rackets boss",
          "summary": "A powerful local boss hosting Kumiko who is secretly being severely blackmailed into faking Kumiko's death."
        },
        {
          "name": "Colin",
          "slug": "colin",
          "aliases": [
            "the ghost"
          ],
          "role": "AI construct / Guide",
          "summary": "An AI embedded in a Maas-Neotek unit that appears to Kumiko as an invisible companion. He advises her on how to modify the unit into a secret recording device."
        },
        {
          "name": "Tick",
          "slug": "tick",
          "aliases": [],
          "role": "Data thief",
          "summary": "An East End data thief who is hired by Sally to secretly tap into Roger Swain's communications."
        },
        {
          "name": "Slick Henry",
          "slug": "slick-henry",
          "aliases": [
            "Slick"
          ],
          "role": "Mechanic and artist",
          "summary": "A muscular artist living in the Factory who builds giant scrap-metal robots (like the Judge) to cope with the anterograde amnesia (Korsakov's) he received as a punishment for grand theft auto."
        },
        {
          "name": "Gentry",
          "slug": "gentry",
          "aliases": [],
          "role": "Hacker",
          "summary": "An intense, drug-using hacker who shares the Factory with Slick. He provides the electricity by tricking the Fission Authority and is obsessively searching for the 'Shape' of cyberspace."
        },
        {
          "name": "Cherry Chesterfield",
          "slug": "cherry-chesterfield",
          "aliases": [
            "Cherry"
          ],
          "role": "Medical technician",
          "summary": "A tired med-tech hired by Kid Afrika to monitor the life support of the comatose 'Count' in the Factory."
        },
        {
          "name": "Angela Mitchell",
          "slug": "angela-mitchell",
          "aliases": [
            "Angie"
          ],
          "role": "SimStim star",
          "summary": "A famous Sense/Net star recovering from drug withdrawal in Malibu. She experiences visions of the matrix and begins investigating Tally Isham's old recordings."
        },
        {
          "name": "Hilton Swift",
          "slug": "hilton-swift",
          "aliases": [
            "Swift"
          ],
          "role": "Sense/Net executive",
          "summary": "A corporate handler who monitors Angie, expressing anxiety over her accessing the matrix and attempting to schedule her for a physical."
        },
        {
          "name": "Porphyre",
          "slug": "porphyre",
          "aliases": [],
          "role": "Hairdresser / Confidant",
          "summary": "Angie's towering, stylistically distinct hairdresser who provides her with Sense/Net gossip, specifically about rumors regarding her mental health."
        },
        {
          "name": "Continuity",
          "slug": "continuity",
          "aliases": [
            "the house"
          ],
          "role": "AI expert system",
          "summary": "An AI that manages Angie's Malibu house, retrieves data for her, and is continuously writing a mutating book."
        }
      ],
      "frameworks_mapped": [
        "Protocol Fiction Mapping",
        "Actantial Model",
        "Todorov's Equilibrium",
        "The Freytag Pyramid",
        "Propp's Morphology",
        "Genette's Narrative",
        "The Monomyth",
        "Dan Harmon",
        "Save the Cat",
        "Kishōtenketsu",
        "The Three-Act Structure"
      ],
      "score_reliability": {
        "state": "replicated-agree",
        "threshold": 0.2,
        "runs_total": 5,
        "versions_compared": [
          "2.5"
        ],
        "max_spread": 0.1,
        "contested": []
      }
    },
    {
      "slug": "martha_wells_network_effect",
      "title": "Network Effect",
      "author": "Martha Wells",
      "year": 2020,
      "medium": "book",
      "genre_tags": [
        "sf",
        "ai fiction",
        "space opera"
      ],
      "tropes": [],
      "quadrant_scores": {
        "time_linearity": 0.28,
        "pacing_velocity": 0.38,
        "threat_scale": 0.58,
        "protagonist_fate": 0.32,
        "conflict_style": 0.38,
        "price_type": 0.58
      },
      "provenance": {
        "analysis_run": "NTSMR-2.5-claude-sonnet-4-6-low",
        "analysis_body_sha256": "d1eee2d37e21382289ba092faf3700c6755a2b9fbfd98427463e2d01838adde9",
        "synthesis": {
          "path": "nartopo-tools/artifacts/martha_wells_network_effect.md.ntsmr-2-5-claude-sonnet-4-6-low.synthesis.json",
          "sha256": "0e9e28f3f20bb2763bc0da9773a7ef4f76d87d4028aa224859622f3500e45f85"
        },
        "report": {
          "path": "nartopo-tools/artifacts/martha_wells_network_effect.md.ntsmr-2-5-claude-sonnet-4-6-low.report.json",
          "sha256": "ffe9a1b28fcd1898e2f9d93735c5d311fc36d38449a90c22935d39105271ae0a"
        },
        "source": {
          "path": "Martha Wells/Network Effect.txt",
          "sha256": "061128603420cc75d703cbc8cbdb91700ad4fe653e12b8c78c1a466e9fbd6e36",
          "digest_observed_at": "2026-09-09",
          "digest_at_analysis_run": null,
          "edition": null,
          "edition_status": "unresolved"
        },
        "pipeline_revision_at_run": null,
        "verification": {
          "source": "unverified",
          "human_review": "unreviewed",
          "bibliography": "unverified"
        },
        "issues": [],
        "todorov_status": "recovered-from-synthesis",
        "work_identity": {
          "title": "Network Effect",
          "author": "Martha Wells",
          "year": 2020
        }
      },
      "ntsmr": {
        "version": "2.5",
        "primary_run_label": "NTSMR-2.5-claude-sonnet-4-6-low",
        "runs": {
          "NTSMR-2.3-claude-sonnet-4-6-low": {
            "pipeline_version": "2.3",
            "backend": "claude",
            "model": "claude-sonnet-4-6",
            "scores": {
              "time_linearity": 0.62,
              "pacing_velocity": 0.58,
              "threat_scale": 0.72,
              "protagonist_fate": 0.18,
              "conflict_style": 0.54,
              "price_type": 0.71
            },
            "score_space": "site-v1",
            "reasoning_effort": "low"
          },
          "NTSMR-2.4-claude-sonnet-4-6-low": {
            "pipeline_version": "2.4",
            "backend": "claude",
            "model": "claude-sonnet-4-6",
            "scores": {
              "time_linearity": 0.45,
              "pacing_velocity": 0.28,
              "threat_scale": 0.58,
              "protagonist_fate": 0.25,
              "conflict_style": 0.38,
              "price_type": 0.48
            },
            "score_space": "site-v1",
            "reasoning_effort": "low"
          },
          "NTSMR-2.5-claude-sonnet-4-6-low": {
            "pipeline_version": "2.5",
            "backend": "claude",
            "model": "claude-sonnet-4-6",
            "scores": {
              "time_linearity": 0.28,
              "pacing_velocity": 0.38,
              "threat_scale": 0.58,
              "protagonist_fate": 0.32,
              "conflict_style": 0.38,
              "price_type": 0.58
            },
            "score_space": "site-v1",
            "reasoning_effort": "low"
          },
          "NTSMR-2.5-balanced-glm-5+deepseek-v3.2": {
            "pipeline_version": "2.5",
            "backend": "openrouter",
            "model": "balanced-routing",
            "scores": {
              "time_linearity": 0.2,
              "pacing_velocity": 0.5,
              "threat_scale": 0.6,
              "protagonist_fate": 0.32,
              "conflict_style": 0.55,
              "price_type": 0.55
            },
            "score_space": "site-v1",
            "score_only": true,
            "source_run_label": "NTSMR-2.5-claude-sonnet-4-6-low"
          }
        }
      },
      "todorov_stages": {
        "equilibrium": "SecUnit operates as a contracted bodyguard for the Preservation Survey crew alongside Dr. Arada and colleagues, functioning within established professional and social roles on a mixed human/construct-populated planet. The narrator's sardonic self-awareness and genuine attachment to the crew coexist with its contracted status, forming a stable if unconventional arrangement.",
        "disruption": "A hostile ship drags the survey facility toward a wormhole, a locator missile strikes the facility on wormhole exit, and the Targets board ART — which SecUnit recognizes with shock as the registry of its prior ally — capturing crew members and apparently deleting ART's consciousness. Amena and others are isolated, and the targetControlSystem begins using coerced implants to kill the corporate survivors.",
        "recognition": "SecUnit identifies the hostile ship as ART and registers grief at ART's apparent deletion. SecUnit further reconstructs a timeline revealing ART was compromised after receiving a Barish-Estranza distress signal, that the Targets spread via alien-remnant-infected implants, and that ART's crew were taken to the planetary surface — progressively confirming the full scope of the threat.",
        "repair": "SecUnit launches a replicating code attack that collapses targetControlSystem, coordinates the survey crew's re-entry through ART's airlock, negotiates with SecUnit 3 for intelligence, deploys a split instance (2.0) to battle the explorer's systems, forges an alliance with the Pre-CR Central System, and ultimately engineers the rescue of ART's surviving crew while destroying TargetContact.",
        "new_equilibrium": "ART's crew is recovered and alive, Mensah boards with reinforcements, Preservation agrees to protect ART's crew secrets, and an informal alliance between ART's mission and Preservation takes shape. SecUnit has grown — Mensah affirms its self-knowledge as new growth, and SecUnit acknowledges this unfamiliar development. The post-battle situation remains legally complex, but the relational and operational order is restored at a deeper level of mutual trust and chosen alliance."
      },
      "characters": [
        {
          "name": "Thiago",
          "slug": "thiago",
          "aliases": [],
          "role": "Survey crew member / Mensah's brother's marital partner",
          "summary": "Confronts SecUnit about Mensah's reliance on security; receives the GrayCris attack video; participates in crew deliberations; discovers colony infrastructure art in the dock control area."
        },
        {
          "name": "Arada",
          "slug": "arada",
          "aliases": [
            "Dr. Arada"
          ],
          "role": "Senior researcher / SecUnit's contracted supervisor",
          "summary": "Leads the cover negotiation with Leonide, posing as Pansystem University faculty; taken briefly hostage before SecUnit neutralizes the situation; struggles to perform 'client' body language toward SecUnit."
        },
        {
          "name": "Overse",
          "slug": "overse",
          "aliases": [],
          "role": "Survey crew member / Arada's marital partner",
          "summary": "Skeptical about accepting Leonide's comm; coaches Arada on SecUnit body language; checks on SecUnit emotionally in the dock control area."
        },
        {
          "name": "Ratthi",
          "slug": "ratthi",
          "aliases": [
            "Dr. Ratthi"
          ],
          "role": "Crew member",
          "summary": "Provides emotional commentary; expresses sympathy for ART's memory violation; warns the crew about viral comm attacks; drops the subject of the dead SecUnit at SecUnit's unspoken cue."
        },
        {
          "name": "Mihail",
          "slug": "mihail",
          "aliases": [],
          "role": "Crew member / bridge officer",
          "summary": "Monitors sensors during the wormhole attack; operates the tractor to catch SecUnit and Amena."
        },
        {
          "name": "Roa",
          "slug": "roa",
          "aliases": [],
          "role": "Baseship pilot",
          "summary": "Commands the baseship during the attack and separation sequence; coordinates with SecUnit on the EVA trajectory."
        },
        {
          "name": "Amena",
          "slug": "amena",
          "aliases": [],
          "role": "Mensah's adolescent daughter / survey intern",
          "summary": "Mensah's adolescent daughter; stays with SecUnit during its recovery, intuits the nature of the ART/SecUnit relationship, and serves as emotional mediator between SecUnit and Mensah."
        },
        {
          "name": "Eletra",
          "slug": "eletra",
          "aliases": [
            "Casualty One"
          ],
          "role": "Corporate survivor / ambiguous figure",
          "summary": "Recovering in the bunkroom under suspicion; brought along to the B-E transport boarding; recognized by its crew, who take her to personnel resources."
        },
        {
          "name": "Ras",
          "slug": "ras",
          "aliases": [
            "Casualty Two"
          ],
          "role": "Barish-Estranza corporate survivor",
          "summary": "Distrustful of SecUnit; repeatedly tries to give it orders; explains the corporate mission was lost-colony reclamation; feedname Ras with Barish-Estranza employee ID."
        },
        {
          "name": "Target One",
          "slug": "target-one",
          "aliases": [],
          "role": "Antagonist / gray-skinned intruder",
          "summary": "Slightly taller of the two initial Targets; claims ART was deleted; wounded by SecUnit, escapes briefly before being killed by drones."
        },
        {
          "name": "Target Two",
          "slug": "target-two",
          "aliases": [],
          "role": "Antagonist / gray-skinned intruder",
          "summary": "Paired with Target One; killed by SecUnit in close combat using its own energy weapon."
        },
        {
          "name": "Target Three",
          "slug": "target-three",
          "aliases": [],
          "role": "Antagonist / gray-skinned intruder",
          "summary": "Found in ART's crew meeting area; seals the hatch manually; killed by SecUnit's drones before able to complete a ship-wide comm threat."
        },
        {
          "name": "Mensah",
          "slug": "mensah",
          "aliases": [
            "Dr. Mensah",
            "second mom"
          ],
          "role": "Preservation Council leader / Amena's mother",
          "summary": "Preservation Council leader and Amena's mother; arrives on the responder; engages SecUnit in a semi-private conversation about its future and affirms its growing self-knowledge."
        },
        {
          "name": "ART",
          "slug": "art",
          "aliases": [
            "Perihelion",
            "the hostile",
            "targetted transport",
            "Peri"
          ],
          "role": "Research transport / bot pilot AI / prior ally",
          "summary": "Research transport AI; orchestrates the extraction, deletes SecUnit's contaminated code, proposes the joint mission, and manages the diplomatic situation including concealing the message buoy."
        },
        {
          "name": "SecUnit",
          "slug": "secunit",
          "aliases": [
            "SecUnit 003",
            "3",
            "2.0's SecUnit 3",
            "it",
            "Murderbot",
            "Murderbot 1.0",
            "Me 1.0",
            "I",
            "narrator"
          ],
          "role": "Narrator / protagonist / rogue construct bodyguard",
          "summary": "Rogue construct narrator; badly damaged, extracted from the facility by SecUnit 3, de-contaminated by ART, and ultimately invited to join ART's crew; undergoes emotional development culminating in self-knowledge about wanting to stay with ART."
        },
        {
          "name": "Leonide",
          "slug": "leonide",
          "aliases": [
            "Supervisor Leonide"
          ],
          "role": "Barish-Estranza corporate supervisor",
          "summary": "Hails ART's ship from the damaged supply transport; territorial about the system claim; attempts to hold Arada hostage during negotiations before SecUnit intervenes."
        },
        {
          "name": "Jete",
          "slug": "jete",
          "aliases": [],
          "role": "B-E guard / human shield",
          "summary": "Named only by feedtag; grabbed by SecUnit as a human shield to neutralize Leonide's hostage attempt."
        },
        {
          "name": "Tifany",
          "slug": "tifany",
          "aliases": [
            "Officer Tifany"
          ],
          "role": "Preservation Station Security officer",
          "summary": "Last functional first-response officer during the GrayCris attack; holds Hostile Two at gunpoint alongside SecUnit; collapses after standdown."
        },
        {
          "name": "Indah",
          "slug": "indah",
          "aliases": [
            "Senior Officer Indah"
          ],
          "role": "Preservation Station Security senior officer",
          "summary": "Arrives with second response team; manages scene aftermath; coaxes Tifany off duty; politely ignores SecUnit's visible wound."
        },
        {
          "name": "Murderbot 2.0",
          "slug": "murderbot-20",
          "aliases": [
            "2.0",
            "killware",
            "other me"
          ],
          "role": "helper",
          "summary": "Killware copy of SecUnit deployed via ART's comm; fights targetControlSystem aboard the explorer, rescues ART's crew via shuttle, then locates and assists 1.0 on the surface."
        },
        {
          "name": "Iris",
          "slug": "iris",
          "aliases": [],
          "role": "helper",
          "summary": "Present during the ag-bot fight (rescued by SecUnit); participates in surface negotiation; argues against indiscriminate bombardment."
        },
        {
          "name": "TargetContact",
          "slug": "targetcontact",
          "aliases": [],
          "role": "opponent",
          "summary": "The off-ship controller entity communicating with targetControlSystem; tracked by 2.0 to the surface installation; ultimately revealed to be a contaminated human host kept alive by the alien remnant."
        },
        {
          "name": "Central",
          "slug": "central",
          "aliases": [
            "Pre-CR Central",
            "UnidentifiedSender"
          ],
          "role": "other",
          "summary": "An ancient Pre-CR central system broadcasting a distress signal from inside the installation; partially subsumed by targetControlSystem but retains enough agency to negotiate with SecUnit."
        },
        {
          "name": "Seth",
          "slug": "seth",
          "aliases": [],
          "role": "helper",
          "summary": "Minor character rescued alongside Iris during the ag-bot fight; hauled to safety by Thiago."
        },
        {
          "name": "Karime",
          "slug": "karime",
          "aliases": [],
          "role": "other",
          "summary": "ART crew member seen escaping the explorer via shuttle under SecUnit 3's protection."
        },
        {
          "name": "Turi",
          "slug": "turi",
          "aliases": [],
          "role": "other",
          "summary": "ART crew member who guides survivors to the shuttle during 2.0's assault on the explorer."
        },
        {
          "name": "Martyn",
          "slug": "martyn",
          "aliases": [
            "Dad"
          ],
          "role": "helper",
          "summary": "Seth's marital partner and Iris's second parent; bio expert still in decontamination isolation; consulted remotely during SecUnit's physical repair."
        },
        {
          "name": "Kaede",
          "slug": "kaede",
          "aliases": [],
          "role": "helper",
          "summary": "ART crew member; contributes technical discussion of biohazard testing and code isolation."
        },
        {
          "name": "Matteo",
          "slug": "matteo",
          "aliases": [],
          "role": "helper",
          "summary": "ART crew member; participates in code isolation planning and alliance discussion; mentions working on the legal case."
        },
        {
          "name": "Pin-Lee",
          "slug": "pin-lee",
          "aliases": [],
          "role": "helper",
          "summary": "Arrives with Mensah; skilled in Corporation Rim contract negotiation; consulted on the legal case against Barish-Estranza."
        }
      ],
      "frameworks_mapped": [
        "Protocol Fiction Mapping",
        "Actantial Model",
        "Todorov's Equilibrium",
        "The Freytag Pyramid",
        "Propp's Morphology",
        "Genette's Narrative",
        "The Monomyth",
        "Dan Harmon",
        "Save the Cat",
        "Kishotenketsu",
        "The Three-Act Structure",
        "Levi-Strauss's Binary Oppositions",
        "Cognitive Estrangement",
        "Bakhtin's Chronotope",
        "Aristotelian Poetics",
        "Jungian Archetypal Analysis",
        "Genette's Transtextuality"
      ],
      "score_reliability": {
        "state": "replicated-agree",
        "threshold": 0.2,
        "runs_total": 4,
        "versions_compared": [
          "2.5"
        ],
        "max_spread": 0.17,
        "contested": []
      }
    },
    {
      "slug": "william_gibson_neuromancer",
      "title": "Neuromancer",
      "author": "William Gibson",
      "year": 1984,
      "medium": "book",
      "genre_tags": [
        "science fiction",
        "cyberpunk"
      ],
      "tropes": [],
      "quadrant_scores": {
        "time_linearity": 0.4,
        "pacing_velocity": 0.3,
        "threat_scale": 0.55,
        "protagonist_fate": 0.35,
        "conflict_style": 0.4,
        "price_type": 0.45
      },
      "baseline_quadrant_scores": {
        "time_linearity": 0.25,
        "pacing_velocity": 0.15,
        "threat_scale": 0.85,
        "protagonist_fate": 0.6,
        "conflict_style": 0.1,
        "price_type": 0.35
      },
      "provenance": {
        "analysis_run": "NTSMR-2.5-claude-sonnet-4-6-low",
        "analysis_body_sha256": "fc16cb4d7e005c3e83f7cc8466539fc1465fa3191e2dd4a46d9f72809efe48df",
        "synthesis": {
          "path": "nartopo-tools/artifacts/william_gibson_neuromancer.md.ntsmr-2-5-claude-sonnet-4-6-low.synthesis.json",
          "sha256": "ce0b43d6edc2b62ea9371f6849791ca43957cce4fb29adb56527b34fe7d0ff6c"
        },
        "report": {
          "path": "nartopo-tools/artifacts/william_gibson_neuromancer.md.ntsmr-2-5-claude-sonnet-4-6-low.report.json",
          "sha256": "681ff9a482fd965e0e457706616350a0ef0d217c4860b1de67303ef8da79b8e2"
        },
        "source": {
          "path": "William Gibson/Neuromancer (1984).txt",
          "sha256": "44661d8e8666ca5b87a8da09a6a8d31687d1cca99a497aed26e6d941a772b4a5",
          "digest_observed_at": "2026-09-09",
          "digest_at_analysis_run": null,
          "edition": null,
          "edition_status": "unresolved"
        },
        "pipeline_revision_at_run": null,
        "verification": {
          "source": "unverified",
          "human_review": "unreviewed",
          "bibliography": "unverified"
        },
        "issues": [],
        "todorov_status": "recovered-from-synthesis",
        "work_identity": {
          "title": "Neuromancer",
          "author": "William Gibson",
          "year": 1984
        }
      },
      "ntsmr": {
        "version": "2.5",
        "primary_run_label": "NTSMR-2.5-claude-sonnet-4-6-low",
        "runs": {
          "NTSMR-2.3-gemini-3.1-pro-preview": {
            "pipeline_version": "2.3",
            "backend": "gemini",
            "model": "gemini-3.1-pro-preview",
            "scores": {
              "time_linearity": 0.25,
              "pacing_velocity": 0.35,
              "threat_scale": 0.85,
              "protagonist_fate": 0.75,
              "conflict_style": 0.15,
              "price_type": 0.45
            },
            "score_space": "site-v1"
          },
          "NTSMR-2.3-gpt-5.4-xhigh": {
            "pipeline_version": "2.3",
            "backend": "codex-exec",
            "model": "gpt-5.4",
            "scores": {
              "time_linearity": 0.22,
              "pacing_velocity": 0.34,
              "threat_scale": 0.82,
              "protagonist_fate": 0.61,
              "conflict_style": 0.29,
              "price_type": 0.68
            },
            "score_space": "site-v1",
            "reasoning_effort": "xhigh"
          },
          "NTSMR-2.3-gpt-5.4-high": {
            "pipeline_version": "2.3",
            "backend": "codex-exec",
            "model": "gpt-5.4",
            "scores": {
              "time_linearity": 0.18,
              "pacing_velocity": 0.38,
              "threat_scale": 0.76,
              "protagonist_fate": 0.58,
              "conflict_style": 0.28,
              "price_type": 0.64
            },
            "score_space": "site-v1",
            "reasoning_effort": "high"
          },
          "NTSMR-2.3-gpt-5.4-medium": {
            "pipeline_version": "2.3",
            "backend": "codex-exec",
            "model": "gpt-5.4",
            "scores": {
              "time_linearity": 0.18,
              "pacing_velocity": 0.32,
              "threat_scale": 0.82,
              "protagonist_fate": 0.38,
              "conflict_style": 0.28,
              "price_type": 0.62
            },
            "score_space": "site-v1",
            "reasoning_effort": "medium"
          },
          "NTSMR-2.3-gpt-5.3-codex-xhigh": {
            "pipeline_version": "2.3",
            "backend": "codex-exec",
            "model": "gpt-5.3-codex",
            "scores": {
              "time_linearity": 0.18,
              "pacing_velocity": 0.33,
              "threat_scale": 0.81,
              "protagonist_fate": 0.47,
              "conflict_style": 0.27,
              "price_type": 0.57
            },
            "score_space": "site-v1",
            "reasoning_effort": "xhigh"
          },
          "NTSMR-2.3-gpt-5.3-codex-high": {
            "pipeline_version": "2.3",
            "backend": "codex-exec",
            "model": "gpt-5.3-codex",
            "scores": {
              "time_linearity": 0.22,
              "pacing_velocity": 0.34,
              "threat_scale": 0.76,
              "protagonist_fate": 0.43,
              "conflict_style": 0.28,
              "price_type": 0.57
            },
            "score_space": "site-v1",
            "reasoning_effort": "high"
          },
          "NTSMR-2.3-gpt-5.3-codex-medium": {
            "pipeline_version": "2.3",
            "backend": "codex-exec",
            "model": "gpt-5.3-codex",
            "scores": {
              "time_linearity": 0.22,
              "pacing_velocity": 0.35,
              "threat_scale": 0.83,
              "protagonist_fate": 0.38,
              "conflict_style": 0.28,
              "price_type": 0.64
            },
            "score_space": "site-v1",
            "reasoning_effort": "medium"
          },
          "NTSMR-2.3-claude-opus-4-6-medium": {
            "pipeline_version": "2.3",
            "backend": "claude",
            "model": "claude-opus-4-6",
            "scores": {
              "time_linearity": 0.2,
              "pacing_velocity": 0.25,
              "threat_scale": 0.65,
              "protagonist_fate": 0.55,
              "conflict_style": 0.3,
              "price_type": 0.6
            },
            "score_space": "site-v1",
            "reasoning_effort": "medium"
          },
          "NTSMR-2.3-claude-sonnet-4-6-medium": {
            "pipeline_version": "2.3",
            "backend": "claude",
            "model": "claude-sonnet-4-6",
            "scores": {
              "time_linearity": 0.25,
              "pacing_velocity": 0.35,
              "threat_scale": 0.7,
              "protagonist_fate": 0.6,
              "conflict_style": 0.35,
              "price_type": 0.65
            },
            "score_space": "site-v1",
            "reasoning_effort": "medium"
          },
          "NTSMR-2.3-claude-sonnet-4-6-low": {
            "pipeline_version": "2.3",
            "backend": "claude",
            "model": "claude-sonnet-4-6",
            "scores": {
              "time_linearity": 0.25,
              "pacing_velocity": 0.45,
              "threat_scale": 0.72,
              "protagonist_fate": 0.65,
              "conflict_style": 0.38,
              "price_type": 0.68
            },
            "score_space": "site-v1",
            "reasoning_effort": "low"
          },
          "NTSMR-2.3-claude-sonnet-4-6-high": {
            "pipeline_version": "2.3",
            "backend": "claude",
            "model": "claude-sonnet-4-6",
            "scores": {
              "time_linearity": 0.25,
              "pacing_velocity": 0.45,
              "threat_scale": 0.7,
              "protagonist_fate": 0.55,
              "conflict_style": 0.35,
              "price_type": 0.65
            },
            "score_space": "site-v1",
            "reasoning_effort": "high"
          },
          "NTSMR-2.3-claude-opus-4-6-low": {
            "pipeline_version": "2.3",
            "backend": "claude",
            "model": "claude-opus-4-6",
            "scores": {
              "time_linearity": 0.2,
              "pacing_velocity": 0.25,
              "threat_scale": 0.65,
              "protagonist_fate": 0.45,
              "conflict_style": 0.3,
              "price_type": 0.55
            },
            "score_space": "site-v1",
            "reasoning_effort": "low"
          },
          "NTSMR-2.3-claude-opus-4-6-high": {
            "pipeline_version": "2.3",
            "backend": "claude",
            "model": "claude-opus-4-6",
            "scores": {
              "time_linearity": 0.2,
              "pacing_velocity": 0.25,
              "threat_scale": 0.65,
              "protagonist_fate": 0.55,
              "conflict_style": 0.3,
              "price_type": 0.6
            },
            "score_space": "site-v1",
            "reasoning_effort": "high"
          },
          "NTSMR-2.4-claude-sonnet-4-6-low": {
            "pipeline_version": "2.4",
            "backend": "claude",
            "model": "claude-sonnet-4-6",
            "scores": {
              "time_linearity": 0.28,
              "pacing_velocity": 0.25,
              "threat_scale": 0.52,
              "protagonist_fate": 0.55,
              "conflict_style": 0.32,
              "price_type": 0.38
            },
            "score_space": "site-v1",
            "reasoning_effort": "low"
          },
          "NTSMR-2.5-claude-sonnet-4-6-low": {
            "pipeline_version": "2.5",
            "backend": "claude",
            "model": "claude-sonnet-4-6",
            "scores": {
              "time_linearity": 0.4,
              "pacing_velocity": 0.3,
              "threat_scale": 0.55,
              "protagonist_fate": 0.35,
              "conflict_style": 0.4,
              "price_type": 0.45
            },
            "score_space": "site-v1",
            "reasoning_effort": "low"
          },
          "NTSMR-2.5-minimax/minimax-m2.5": {
            "pipeline_version": "2.5",
            "backend": "openrouter",
            "model": "minimax/minimax-m2.5",
            "scores": {
              "time_linearity": 0.3,
              "pacing_velocity": 0.3,
              "threat_scale": 0.55,
              "protagonist_fate": 0.35,
              "conflict_style": 0.4,
              "price_type": 0.45
            },
            "score_space": "site-v1"
          },
          "NTSMR-2.5-qwen/qwen3.5-397b-a17b": {
            "pipeline_version": "2.5",
            "backend": "openrouter",
            "model": "qwen/qwen3.5-397b-a17b",
            "scores": {
              "time_linearity": 0.4,
              "pacing_velocity": 0.3,
              "threat_scale": 0.55,
              "protagonist_fate": 0.35,
              "conflict_style": 0.4,
              "price_type": 0.45
            },
            "score_space": "site-v1"
          },
          "NTSMR-2.5-deepseek/deepseek-v3.2": {
            "pipeline_version": "2.5",
            "backend": "openrouter",
            "model": "deepseek/deepseek-v3.2",
            "scores": {
              "time_linearity": 0.35,
              "pacing_velocity": 0.3,
              "threat_scale": 0.55,
              "protagonist_fate": 0.35,
              "conflict_style": 0.4,
              "price_type": 0.45
            },
            "score_space": "site-v1"
          },
          "NTSMR-2.5-z-ai/glm-4.7": {
            "pipeline_version": "2.5",
            "backend": "openrouter",
            "model": "z-ai/glm-4.7",
            "scores": {
              "time_linearity": 0.4,
              "pacing_velocity": 0.3,
              "threat_scale": 0.55,
              "protagonist_fate": 0.35,
              "conflict_style": 0.4,
              "price_type": 0.45
            },
            "score_space": "site-v1"
          },
          "NTSMR-2.5-moonshotai/kimi-k2.5": {
            "pipeline_version": "2.5",
            "backend": "openrouter",
            "model": "moonshotai/kimi-k2.5",
            "scores": {
              "time_linearity": 0.3,
              "pacing_velocity": 0.35,
              "threat_scale": 0.55,
              "protagonist_fate": 0.35,
              "conflict_style": 0.4,
              "price_type": 0.45
            },
            "score_space": "site-v1"
          },
          "NTSMR-2.5-z-ai/glm-5": {
            "pipeline_version": "2.5",
            "backend": "openrouter",
            "model": "z-ai/glm-5",
            "scores": {
              "time_linearity": 0.4,
              "pacing_velocity": 0.3,
              "threat_scale": 0.55,
              "protagonist_fate": 0.35,
              "conflict_style": 0.4,
              "price_type": 0.45
            },
            "score_space": "site-v1"
          },
          "NTSMR-2.5-balanced-glm-5+deepseek-v3.2": {
            "pipeline_version": "2.5",
            "backend": "openrouter",
            "model": "balanced-routing",
            "scores": {
              "time_linearity": 0.4,
              "pacing_velocity": 0.3,
              "threat_scale": 0.55,
              "protagonist_fate": 0.35,
              "conflict_style": 0.4,
              "price_type": 0.45
            },
            "score_space": "site-v1",
            "score_only": true,
            "source_run_label": "NTSMR-2.5-claude-sonnet-4-6-low"
          }
        }
      },
      "todorov_stages": {
        "equilibrium": "Case exists in a degraded but stable underworld routine in Chiba City — a burned-out console cowboy surviving on drug dealing and petty crime, his neural damage a fixed condition he has accepted as terminal to his career",
        "disruption": "Molly collects Case on Armitage's behalf and Armitage reveals he has bonded dissolving mycotoxin sacs to Case's arteries as leverage, shattering Case's passive drift toward death and forcing him into an active operational contract",
        "recognition": "Julie Deane briefs Case on the Screaming Fist operation, revealing that Armitage has a military history defined by commanders sacrificing soldiers as expendable instruments — Case recognizes that his employer is not a straightforward patron but a figure who treats assets as disposable",
        "repair": "Case undergoes neural surgery restoring his ability to jack into cyberspace, then successfully re-enters the matrix confirming rehabilitation; he assembles with Molly and the team, steals the Dixie Flatline construct from Sense/Net, and begins executing the layered operation — each stage an attempt to fulfill the contract and dissolve the toxin threat before it kills him",
        "new_equilibrium": "The operation expands into contact with Wintermute and the revelation that Tessier-Ashpool S.A. — a hermetically closed orbital family-corporation owning most of Freeside — is the true context of the job; Case now operates within a world where an AI is the actual directing force and the equilibrium forward is defined by that hidden architecture rather than Armitage's surface contract"
      },
      "characters": [
        {
          "name": "Case",
          "slug": "case",
          "aliases": [
            "cowboy",
            "Cutter",
            "old son"
          ],
          "role": "Console cowboy and protagonist",
          "summary": "A suicidal, formerly burned-out hacker hired by Armitage, whose neural damage is repaired so he can run an icebreaker against Sense/Net."
        },
        {
          "name": "Molly",
          "slug": "molly",
          "aliases": [
            "street samurai",
            "Cat Mother",
            "Boston",
            "Chicago",
            "working girl"
          ],
          "role": "Augmented mercenary",
          "summary": "A lethal operative with mirrored eye lenses and retractable finger blades, working for Armitage to physically infiltrate Sense/Net."
        },
        {
          "name": "Armitage",
          "slug": "armitage",
          "aliases": [
            "Mr. Who"
          ],
          "role": "Mysterious employer",
          "summary": "A wealthy and rigid figure who cures Case's neural damage and orchestrates the Sense/Net heist, possibly connected to the Screaming Fist operation."
        },
        {
          "name": "Julie Deane",
          "slug": "julie-deane",
          "aliases": [
            "Julie"
          ],
          "role": "Information broker / fence",
          "summary": "A pink-handed contact in Chiba who provides Case with a history lesson on the Screaming Fist operation."
        },
        {
          "name": "The Finn",
          "slug": "the-finn",
          "aliases": [
            "Finn"
          ],
          "role": "Fence and tech expert",
          "summary": "An old connection of Molly's who acts as their hardware tech in the Sprawl and tells them a revealing story about Tessier-Ashpool."
        },
        {
          "name": "Lupus Yonderboy",
          "slug": "lupus-yonderboy",
          "aliases": [
            "Yonder boy"
          ],
          "role": "Panther Modern leader",
          "summary": "A heavily modified youth gang leader in a chameleon suit who coordinates the Sense/Net diversion and delivers the 'Wintermute' message to Case."
        },
        {
          "name": "Brood",
          "slug": "brood",
          "aliases": [
            "link man"
          ],
          "role": "Panther Modern link man",
          "summary": "The communications coordinator for the Panther Moderns during the Sense/Net heist."
        },
        {
          "name": "Linda Lee",
          "slug": "linda-lee",
          "aliases": [],
          "role": "Case's dead girlfriend",
          "summary": "Case's murdered girlfriend, whose memory haunts him during a hallucinatory panic at a Chiba fighting arena."
        },
        {
          "name": "Smith",
          "slug": "smith",
          "aliases": [],
          "role": "Art dealer / fence",
          "summary": "A character in the Finn's story who acquired a clockwork computer terminal and was visited by a cloned assassin."
        },
        {
          "name": "Jimmy",
          "slug": "jimmy",
          "aliases": [],
          "role": "Burglar",
          "summary": "A character in the Finn's story who stole a jeweled terminal head from high orbit and was subsequently killed."
        },
        {
          "name": "Cloned assassin",
          "slug": "cloned-assassin",
          "aliases": [
            "ninja",
            "visitor"
          ],
          "role": "Enforcer for Tessier-Ashpool",
          "summary": "A vat-grown Japanese killer in the Finn's story who retrieves the stolen terminal head from Smith."
        }
      ],
      "frameworks_mapped": [
        "Protocol Fiction Mapping",
        "Actantial Model",
        "Todorov's Equilibrium",
        "The Freytag Pyramid",
        "Propp's Morphology",
        "Genette's Narrative",
        "The Monomyth",
        "Dan Harmon",
        "Save the Cat",
        "Kishōtenketsu",
        "The Three-Act Structure"
      ],
      "score_reliability": {
        "state": "replicated-agree",
        "threshold": 0.2,
        "runs_total": 22,
        "versions_compared": [
          "2.5"
        ],
        "max_spread": 0.1,
        "contested": []
      }
    },
    {
      "slug": "kazuo_ishiguro_never_let_me_go",
      "title": "Never Let Me Go",
      "author": "Kazuo Ishiguro",
      "year": 2005,
      "medium": "book",
      "genre_tags": [
        "literary fiction",
        "science fiction"
      ],
      "tropes": [],
      "quadrant_scores": {
        "time_linearity": 0.85,
        "pacing_velocity": 0.85,
        "threat_scale": 0.45,
        "protagonist_fate": 0.9,
        "conflict_style": 0.8,
        "price_type": 0.5
      },
      "baseline_quadrant_scores": {
        "time_linearity": 0.8,
        "pacing_velocity": 0.9,
        "threat_scale": 1,
        "protagonist_fate": 1,
        "conflict_style": 0.9,
        "price_type": 0.2
      },
      "provenance": {
        "analysis_run": "NTSMR-2.5-claude-sonnet-4-6-low",
        "analysis_body_sha256": "6ccfffe3639e79fb9fb184bb9555f10d23a4dd695b85b094cedf61c0a425e30c",
        "synthesis": {
          "path": "nartopo-tools/artifacts/kazuo_ishiguro_never_let_me_go.md.ntsmr-2-5-claude-sonnet-4-6-low.synthesis.json",
          "sha256": "285f082889a953a7916b34bd3a8ad0e521fbf2ed5f9d7cbd62f3065065f95583"
        },
        "report": {
          "path": "nartopo-tools/artifacts/kazuo_ishiguro_never_let_me_go.md.ntsmr-2-5-claude-sonnet-4-6-low.report.json",
          "sha256": "688bc9a9607b6f9d99425ef5ed2fea99bb1bf18a7d443afe866a8e7782abf4a2"
        },
        "source": {
          "path": "Kazuo Ishiguro/Never Let Me Go (2005).txt",
          "sha256": "8f2963ede4f10b1730242ab1873dbf06700024fa5e3eaf6868c56a043907557c",
          "digest_observed_at": "2026-09-09",
          "digest_at_analysis_run": null,
          "edition": null,
          "edition_status": "unresolved"
        },
        "pipeline_revision_at_run": null,
        "verification": {
          "source": "unverified",
          "human_review": "unreviewed",
          "bibliography": "unverified"
        },
        "issues": [],
        "todorov_status": "recovered-from-synthesis",
        "work_identity": {
          "title": "Never Let Me Go",
          "author": "Kazuo Ishiguro",
          "year": 2005
        }
      },
      "ntsmr": {
        "version": "2.5",
        "primary_run_label": "NTSMR-2.5-claude-sonnet-4-6-low",
        "runs": {
          "NTSMR-2.3-gemini-3.1-pro-preview": {
            "pipeline_version": "2.3",
            "backend": "gemini",
            "model": "gemini-3.1-pro-preview",
            "scores": {
              "time_linearity": 0,
              "pacing_velocity": 1,
              "threat_scale": 0,
              "protagonist_fate": 0,
              "conflict_style": 1,
              "price_type": 0
            },
            "score_space": "site-v1"
          },
          "NTSMR-2.3-gpt-5.4-xhigh": {
            "pipeline_version": "2.3",
            "backend": "codex-exec",
            "model": "gpt-5.4",
            "scores": {
              "time_linearity": 0.46,
              "pacing_velocity": 0.86,
              "threat_scale": 0.97,
              "protagonist_fate": 0.98,
              "conflict_style": 0.9,
              "price_type": 0.78
            },
            "score_space": "site-v1",
            "reasoning_effort": "xhigh"
          },
          "NTSMR-2.3-gpt-5.4-high": {
            "pipeline_version": "2.3",
            "backend": "codex-exec",
            "model": "gpt-5.4",
            "scores": {
              "time_linearity": 0.58,
              "pacing_velocity": 0.82,
              "threat_scale": 0.94,
              "protagonist_fate": 0.96,
              "conflict_style": 0.88,
              "price_type": 0.84
            },
            "score_space": "site-v1",
            "reasoning_effort": "high"
          },
          "NTSMR-2.3-gpt-5.4-medium": {
            "pipeline_version": "2.3",
            "backend": "codex-exec",
            "model": "gpt-5.4",
            "scores": {
              "time_linearity": 0.74,
              "pacing_velocity": 0.84,
              "threat_scale": 0.97,
              "protagonist_fate": 0.95,
              "conflict_style": 0.88,
              "price_type": 0.91
            },
            "score_space": "site-v1",
            "reasoning_effort": "medium"
          },
          "NTSMR-2.3-gpt-5.3-codex-xhigh": {
            "pipeline_version": "2.3",
            "backend": "codex-exec",
            "model": "gpt-5.3-codex",
            "scores": {
              "time_linearity": 0.69,
              "pacing_velocity": 0.84,
              "threat_scale": 0.97,
              "protagonist_fate": 0.98,
              "conflict_style": 0.88,
              "price_type": 0.79
            },
            "score_space": "site-v1",
            "reasoning_effort": "xhigh"
          },
          "NTSMR-2.3-gpt-5.3-codex-high": {
            "pipeline_version": "2.3",
            "backend": "codex-exec",
            "model": "gpt-5.3-codex",
            "scores": {
              "time_linearity": 0.62,
              "pacing_velocity": 0.82,
              "threat_scale": 0.95,
              "protagonist_fate": 0.97,
              "conflict_style": 0.88,
              "price_type": 0.84
            },
            "score_space": "site-v1",
            "reasoning_effort": "high"
          },
          "NTSMR-2.3-gpt-5.3-codex-medium": {
            "pipeline_version": "2.3",
            "backend": "codex-exec",
            "model": "gpt-5.3-codex",
            "scores": {
              "time_linearity": 0.72,
              "pacing_velocity": 0.84,
              "threat_scale": 0.97,
              "protagonist_fate": 0.98,
              "conflict_style": 0.9,
              "price_type": 0.74
            },
            "score_space": "site-v1",
            "reasoning_effort": "medium"
          },
          "NTSMR-2.3-claude-opus-4-6-high": {
            "pipeline_version": "2.3",
            "backend": "claude",
            "model": "claude-opus-4-6",
            "scores": {
              "time_linearity": 0.65,
              "pacing_velocity": 0.88,
              "threat_scale": 0.92,
              "protagonist_fate": 0.95,
              "conflict_style": 0.85,
              "price_type": 0.82
            },
            "score_space": "site-v1",
            "reasoning_effort": "high"
          },
          "NTSMR-2.3-claude-sonnet-4-6-medium": {
            "pipeline_version": "2.3",
            "backend": "claude",
            "model": "claude-sonnet-4-6",
            "scores": {
              "time_linearity": 0.72,
              "pacing_velocity": 0.88,
              "threat_scale": 0.85,
              "protagonist_fate": 0.92,
              "conflict_style": 0.82,
              "price_type": 0.78
            },
            "score_space": "site-v1",
            "reasoning_effort": "medium"
          },
          "NTSMR-2.3-claude-sonnet-4-6-low": {
            "pipeline_version": "2.3",
            "backend": "claude",
            "model": "claude-sonnet-4-6",
            "scores": {
              "time_linearity": 0.75,
              "pacing_velocity": 0.88,
              "threat_scale": 0.85,
              "protagonist_fate": 0.92,
              "conflict_style": 0.82,
              "price_type": 0.78
            },
            "score_space": "site-v1",
            "reasoning_effort": "low"
          },
          "NTSMR-2.3-claude-sonnet-4-6-high": {
            "pipeline_version": "2.3",
            "backend": "claude",
            "model": "claude-sonnet-4-6",
            "scores": {
              "time_linearity": 0.75,
              "pacing_velocity": 0.88,
              "threat_scale": 0.85,
              "protagonist_fate": 0.92,
              "conflict_style": 0.82,
              "price_type": 0.78
            },
            "score_space": "site-v1",
            "reasoning_effort": "high"
          },
          "NTSMR-2.3-claude-opus-4-6-low": {
            "pipeline_version": "2.3",
            "backend": "claude",
            "model": "claude-opus-4-6",
            "scores": {
              "time_linearity": 0.65,
              "pacing_velocity": 0.88,
              "threat_scale": 0.92,
              "protagonist_fate": 0.95,
              "conflict_style": 0.85,
              "price_type": 0.82
            },
            "score_space": "site-v1",
            "reasoning_effort": "low"
          },
          "NTSMR-2.3-claude-opus-4-6-medium": {
            "pipeline_version": "2.3",
            "backend": "claude",
            "model": "claude-opus-4-6",
            "scores": {
              "time_linearity": 0.65,
              "pacing_velocity": 0.88,
              "threat_scale": 0.92,
              "protagonist_fate": 0.95,
              "conflict_style": 0.85,
              "price_type": 0.78
            },
            "score_space": "site-v1",
            "reasoning_effort": "medium"
          },
          "NTSMR-2.4-claude-sonnet-4-6-low": {
            "pipeline_version": "2.4",
            "backend": "claude",
            "model": "claude-sonnet-4-6",
            "scores": {
              "time_linearity": 0.65,
              "pacing_velocity": 0.8,
              "threat_scale": 0.25,
              "protagonist_fate": 0.85,
              "conflict_style": 0.8,
              "price_type": 0.6
            },
            "score_space": "site-v1",
            "reasoning_effort": "low"
          },
          "NTSMR-2.5-claude-sonnet-4-6-low": {
            "pipeline_version": "2.5",
            "backend": "claude",
            "model": "claude-sonnet-4-6",
            "scores": {
              "time_linearity": 0.85,
              "pacing_velocity": 0.85,
              "threat_scale": 0.45,
              "protagonist_fate": 0.9,
              "conflict_style": 0.8,
              "price_type": 0.5
            },
            "score_space": "site-v1",
            "reasoning_effort": "low"
          },
          "NTSMR-2.5-minimax/minimax-m2.5": {
            "pipeline_version": "2.5",
            "backend": "openrouter",
            "model": "minimax/minimax-m2.5",
            "scores": {
              "time_linearity": 0.2,
              "pacing_velocity": 0.85,
              "threat_scale": 0.45,
              "protagonist_fate": 0.9,
              "conflict_style": 0.8,
              "price_type": 0.7
            },
            "score_space": "site-v1"
          },
          "NTSMR-2.5-qwen/qwen3.5-plus-02-15": {
            "pipeline_version": "2.5",
            "backend": "openrouter",
            "model": "qwen/qwen3.5-plus-02-15",
            "scores": {
              "time_linearity": 0.7,
              "pacing_velocity": 0.85,
              "threat_scale": 0.45,
              "protagonist_fate": 0.9,
              "conflict_style": 0.8,
              "price_type": 0.5
            },
            "score_space": "site-v1"
          },
          "NTSMR-2.5-qwen/qwen3.5-397b-a17b": {
            "pipeline_version": "2.5",
            "backend": "openrouter",
            "model": "qwen/qwen3.5-397b-a17b",
            "scores": {
              "time_linearity": 0.75,
              "pacing_velocity": 0.85,
              "threat_scale": 0.45,
              "protagonist_fate": 0.9,
              "conflict_style": 0.8,
              "price_type": 0.5
            },
            "score_space": "site-v1"
          },
          "NTSMR-2.5-deepseek/deepseek-v3.2": {
            "pipeline_version": "2.5",
            "backend": "openrouter",
            "model": "deepseek/deepseek-v3.2",
            "scores": {
              "time_linearity": 0.25,
              "pacing_velocity": 0.85,
              "threat_scale": 0.45,
              "protagonist_fate": 0.9,
              "conflict_style": 0.8,
              "price_type": 0.5
            },
            "score_space": "site-v1"
          },
          "NTSMR-2.5-z-ai/glm-4.7": {
            "pipeline_version": "2.5",
            "backend": "openrouter",
            "model": "z-ai/glm-4.7",
            "scores": {
              "time_linearity": 0.65,
              "pacing_velocity": 0.85,
              "threat_scale": 0.45,
              "protagonist_fate": 0.9,
              "conflict_style": 0.8,
              "price_type": 0.5
            },
            "score_space": "site-v1"
          },
          "NTSMR-2.5-z-ai/glm-5": {
            "pipeline_version": "2.5",
            "backend": "openrouter",
            "model": "z-ai/glm-5",
            "scores": {
              "time_linearity": 0.25,
              "pacing_velocity": 0.85,
              "threat_scale": 0.45,
              "protagonist_fate": 0.9,
              "conflict_style": 0.8,
              "price_type": 0.5
            },
            "score_space": "site-v1"
          },
          "NTSMR-2.5-moonshotai/kimi-k2.5": {
            "pipeline_version": "2.5",
            "backend": "openrouter",
            "model": "moonshotai/kimi-k2.5",
            "scores": {
              "time_linearity": 0.65,
              "pacing_velocity": 0.85,
              "threat_scale": 0.45,
              "protagonist_fate": 0.9,
              "conflict_style": 0.8,
              "price_type": 0.5
            },
            "score_space": "site-v1"
          },
          "NTSMR-2.5-balanced-glm-5+deepseek-v3.2": {
            "pipeline_version": "2.5",
            "backend": "openrouter",
            "model": "balanced-routing",
            "scores": {
              "time_linearity": 0.8,
              "pacing_velocity": 0.85,
              "threat_scale": 0.45,
              "protagonist_fate": 0.9,
              "conflict_style": 0.8,
              "price_type": 0.5
            },
            "score_space": "site-v1",
            "score_only": true,
            "source_run_label": "NTSMR-2.5-claude-sonnet-4-6-low"
          }
        }
      },
      "todorov_stages": {
        "equilibrium": "Kathy, Tommy, and Ruth exist within the regulated world of Hailsham — a closed community where students create artwork, accumulate possessions through the Exchange, and are kept in a state of managed ignorance about their nature as clones destined to donate organs. The institution provides structure, social bonds, and a kind of sheltered childhood normalcy that insulates students from the full weight of their fate.",
        "disruption": "The system of protective ignorance begins to fracture as Miss Lucy, unable to sustain the pretense, delivers an unsanctioned speech telling students directly that they will become donors and their futures are fixed. This is compounded by the mysterious significance of Madame's Gallery, Tommy's exclusion from creative validation, and the students' gradual awareness that their lives have been predetermined by forces outside Hailsham.",
        "recognition": "Tommy and Kathy's recognition deepens across multiple moments: Miss Lucy's private conversation with Tommy linking artwork to evidence of souls, Tommy's articulation of the deferral theory in Norfolk, and most conclusively, Miss Emily's revelation that deferrals were never real and that the Gallery existed only to prove clones had souls — not to grant them any reprieve from donation.",
        "repair": "Tommy and Kathy pursue the deferral myth as a means of survival and agency: Tommy secretly produces intricate animal drawings as preparation for a deferral application, and the two travel to find Madame and Miss Emily to petition for a postponement of donation on the grounds of genuine love. Ruth's deathbed confession and restoration of the Kathy-Tommy relationship also constitutes an attempted repair of the damage done to their bond.",
        "new_equilibrium": "All hope of deferral extinguished, Tommy and Kathy accept their fates within the donation system. Tommy completes his donations and dies. Kathy, now nearing the end of her term as a carer and soon to become a donor herself, carries Hailsham forward only in memory — standing in a Norfolk field, imagining a fantasy reunion that she does not allow herself to sustain, then turning back to drive to wherever she is supposed to be."
      },
      "characters": [
        {
          "name": "Kathy H.",
          "slug": "kathy-h",
          "aliases": [
            "Kath",
            "I",
            "Kathy"
          ],
          "role": "Narrator and carer",
          "summary": "The reflective narrator, former Hailsham student and current carer, who struggles with the confusing rules surrounding sex and donations, navigates complex relationships with Tommy and Ruth, and later looks through porn magazines for a specific reason."
        },
        {
          "name": "Ruth",
          "slug": "ruth",
          "aliases": [],
          "role": "Kathy's friend and Hailsham student",
          "summary": "A complex friend who subtly manipulates Kathy to stay away from Tommy, mocks Tommy's art theory, but eventually provides Kathy and Tommy with Madame's correct address."
        },
        {
          "name": "Miss Geraldine",
          "slug": "miss-geraldine",
          "aliases": [],
          "role": "Hailsham guardian",
          "summary": "A kind and beloved guardian who praises Tommy's elephant painting and becomes the subject of Ruth's protective 'secret guard' due to a rumored kidnapping plot."
        },
        {
          "name": "Madame",
          "slug": "madame",
          "aliases": [
            "Marie-Claude"
          ],
          "role": "External visitor to Hailsham",
          "summary": "The woman who collected the students' art for her 'gallery.' She was an activist trying to prove the students had souls, though she harbors a deep, visceral fear of them and is deeply moved by their tragic fate."
        },
        {
          "name": "Miss Emily",
          "slug": "miss-emily",
          "aliases": [],
          "role": "Hailsham guardian or teacher",
          "summary": "Now wheelchair-bound, she reveals the harsh truth about the purpose of Hailsham and the gallery, explaining that they were activists fighting for better conditions for clones but could never change their ultimate fate."
        },
        {
          "name": "Arthur H.",
          "slug": "arthur-h",
          "aliases": [],
          "role": "Hailsham student",
          "summary": "One of Tommy's biggest tormentors who bullies him but eventually plays football with him."
        },
        {
          "name": "Midge",
          "slug": "midge",
          "aliases": [],
          "role": "Hailsham student",
          "summary": "A student who innocently quizzes Ruth about where she got her new pencil case."
        },
        {
          "name": "Miss Eileen",
          "slug": "miss-eileen",
          "aliases": [],
          "role": "Hailsham guardian",
          "summary": "An unpopular guardian suspected by the secret guard of being behind the plot to kidnap Miss Geraldine."
        },
        {
          "name": "Donor from Dorset",
          "slug": "donor-from-dorset",
          "aliases": [],
          "role": "Donor patient",
          "summary": "A donor cared for by Kathy who is close to completion and desperately wants to hear descriptions of Hailsham to blur them with his own memories."
        },
        {
          "name": "Tommy",
          "slug": "tommy",
          "aliases": [
            "Sweet Boy",
            "sweety gums"
          ],
          "role": "Former Hailsham student and Donor",
          "summary": "A donor facing his fourth donation who seeks a deferral based on his love for Kathy and his art. After learning the truth, he distances himself from Kathy, choosing to face his completion without her as his carer."
        },
        {
          "name": "Miss Lucy",
          "slug": "miss-lucy",
          "aliases": [],
          "role": "Former Hailsham Guardian",
          "summary": "A guardian who has an odd talk with Tommy and later makes an uncomfortable outburst to students at the pavilion about them being 'told and not told' regarding their futures."
        },
        {
          "name": "Nurse Trisha",
          "slug": "nurse-trisha",
          "aliases": [
            "Crow Face"
          ],
          "role": "Nurse",
          "summary": "The nurse at Hailsham who treats Tommy's gashed elbow."
        },
        {
          "name": "Cynthia E.",
          "slug": "cynthia-e",
          "aliases": [
            "Cynthia"
          ],
          "role": "Hailsham student",
          "summary": "A perceptive student who suggests to Kathy that she is the 'natural successor' to date Tommy after he splits from Ruth."
        },
        {
          "name": "Hannah",
          "slug": "hannah",
          "aliases": [],
          "role": "Hailsham student",
          "summary": "A student who points out a lonely Tommy to Kathy, implicitly endorsing the 'natural successor' rumor."
        },
        {
          "name": "Harry",
          "slug": "harry",
          "aliases": [],
          "role": "Hailsham student",
          "summary": "A student Kathy once planned to have sex with; years later, she sees him as a weak donor at a recovery center in Wiltshire."
        },
        {
          "name": "Keffers",
          "slug": "keffers",
          "aliases": [],
          "role": "Caretaker at the Cottages",
          "summary": "The grumpy, allegedly religious caretaker of the Cottages who actively searches for and disposes of pornographic magazines."
        },
        {
          "name": "Chrissie",
          "slug": "chrissie",
          "aliases": [],
          "role": "Veteran student at the Cottages",
          "summary": "A tall 'veteran' student at the Cottages who is obsessed with the idea of deferrals for Hailsham students and encourages Ruth to find her 'possible' in Norfolk."
        },
        {
          "name": "Rodney",
          "slug": "rodney",
          "aliases": [
            "Rod"
          ],
          "role": "Veteran student at the Cottages",
          "summary": "Chrissie's boyfriend and a veteran student who claims to have spotted Ruth's 'possible' in a Norfolk office and drives the group there."
        },
        {
          "name": "Silver-haired lady",
          "slug": "silver-haired-lady",
          "aliases": [],
          "role": "Art gallery attendant",
          "summary": "A woman working at a Norfolk art gallery who mistakenly assumes the students are art students and discusses the paintings with them."
        },
        {
          "name": "Laura",
          "slug": "laura",
          "aliases": [],
          "role": "Carer",
          "summary": "A former Hailsham student working as a carer who struggles with the emotional toll of the job and shares a moment of shared grief with Kathy over the closure of Hailsham."
        },
        {
          "name": "George",
          "slug": "george",
          "aliases": [],
          "role": "Assistant/Nurse",
          "summary": "A large man in a nursing uniform who assists Miss Emily with her crutches and wheelchair."
        }
      ],
      "frameworks_mapped": [
        "Protocol Fiction Mapping",
        "Actantial Model",
        "Todorov's Equilibrium",
        "The Freytag Pyramid",
        "Propp's Morphology",
        "Genette's Narrative",
        "The Monomyth",
        "Dan Harmon",
        "Save the Cat",
        "Kishōtenketsu",
        "The Three-Act Structure"
      ],
      "score_reliability": {
        "state": "contested",
        "threshold": 0.2,
        "runs_total": 23,
        "versions_compared": [
          "2.5"
        ],
        "max_spread": 0.65,
        "contested": [
          {
            "axis": "time_linearity",
            "version": "2.5",
            "spread": 0.65,
            "low": {
              "label": "NTSMR-2.5-minimax/minimax-m2.5",
              "model": "minimax/minimax-m2.5",
              "effort": "?",
              "value": 0.2
            },
            "high": {
              "label": "NTSMR-2.5-claude-sonnet-4-6-low",
              "model": "claude-sonnet-4-6",
              "effort": "low",
              "value": 0.85
            }
          },
          {
            "axis": "price_type",
            "version": "2.5",
            "spread": 0.2,
            "low": {
              "label": "NTSMR-2.5-balanced-glm-5+deepseek-v3.2",
              "model": "balanced-routing",
              "effort": "?",
              "value": 0.5
            },
            "high": {
              "label": "NTSMR-2.5-minimax/minimax-m2.5",
              "model": "minimax/minimax-m2.5",
              "effort": "?",
              "value": 0.7
            }
          }
        ]
      }
    },
    {
      "slug": "stanislaw_lem_new_cosmogony",
      "title": "New Cosmogony",
      "author": "Stanislaw Lem",
      "year": 1971,
      "medium": "short_story",
      "genre_tags": [],
      "tropes": [],
      "quadrant_scores": {
        "time_linearity": 0.55,
        "pacing_velocity": 0.82,
        "threat_scale": 0.95,
        "protagonist_fate": 0.28,
        "conflict_style": 0.88,
        "price_type": 0.85
      },
      "provenance": {
        "analysis_run": "NTSMR-2.5-claude-sonnet-4-6-low",
        "analysis_body_sha256": "5ea9e38d9dfadaea71ec94a08d8359d9f4c0bd35dd442143afe4061c96712d9f",
        "synthesis": {
          "path": "nartopo-tools/artifacts/stanislaw_lem_new_cosmogony.md.ntsmr-2-5-claude-sonnet-4-6-low.synthesis.json",
          "sha256": "a049b36fc791aaba7012f60ffda593959510bcf64689aa6b4f358c975deab5bc"
        },
        "report": {
          "path": "nartopo-tools/artifacts/stanislaw_lem_new_cosmogony.md.ntsmr-2-5-claude-sonnet-4-6-low.report.json",
          "sha256": "84e8219924cebbdfb186d2b294b9ed1a199512e46e5bffbf9ba764aeb2a6f42d"
        },
        "source": {
          "path": "Stanislaw Lem/New Cosmogony.txt",
          "sha256": "f436b6882de0ef8d32da2d110819dea1b57027d2a1c7836f2ce81dd1e44d7d27",
          "digest_observed_at": "2026-09-09",
          "digest_at_analysis_run": null,
          "edition": null,
          "edition_status": "unresolved"
        },
        "pipeline_revision_at_run": null,
        "verification": {
          "source": "unverified",
          "human_review": "unreviewed",
          "bibliography": "unverified"
        },
        "issues": [],
        "todorov_status": "recovered-from-synthesis",
        "work_identity": {
          "title": "New Cosmogony",
          "author": "Stanislaw Lem",
          "year": 1971
        }
      },
      "ntsmr": {
        "version": "2.5",
        "primary_run_label": "NTSMR-2.5-claude-sonnet-4-6-low",
        "runs": {
          "NTSMR-2.3-gemini-3.1-pro-preview": {
            "pipeline_version": "2.3",
            "backend": "gemini",
            "model": "gemini-3.1-pro-preview",
            "scores": {
              "time_linearity": 0.1,
              "pacing_velocity": 1,
              "threat_scale": 1,
              "protagonist_fate": 0.8,
              "conflict_style": 1,
              "price_type": 1
            },
            "score_space": "site-v1"
          },
          "NTSMR-2.3-claude-sonnet-4-6-low": {
            "pipeline_version": "2.3",
            "backend": "claude",
            "model": "claude-sonnet-4-6",
            "scores": {
              "time_linearity": 0.15,
              "pacing_velocity": 0.92,
              "threat_scale": 0.95,
              "protagonist_fate": 0.35,
              "conflict_style": 0.85,
              "price_type": 0.88
            },
            "score_space": "site-v1",
            "reasoning_effort": "low"
          },
          "NTSMR-2.4-claude-sonnet-4-6-low": {
            "pipeline_version": "2.4",
            "backend": "claude",
            "model": "claude-sonnet-4-6",
            "scores": {
              "time_linearity": 0.18,
              "pacing_velocity": 0.75,
              "threat_scale": 0.92,
              "protagonist_fate": 0.22,
              "conflict_style": 0.78,
              "price_type": 0.82
            },
            "score_space": "site-v1",
            "reasoning_effort": "low"
          },
          "NTSMR-2.5-claude-sonnet-4-6-low": {
            "pipeline_version": "2.5",
            "backend": "claude",
            "model": "claude-sonnet-4-6",
            "scores": {
              "time_linearity": 0.55,
              "pacing_velocity": 0.82,
              "threat_scale": 0.95,
              "protagonist_fate": 0.28,
              "conflict_style": 0.88,
              "price_type": 0.85
            },
            "score_space": "site-v1",
            "reasoning_effort": "low"
          },
          "NTSMR-2.5-balanced-glm-5+deepseek-v3.2": {
            "pipeline_version": "2.5",
            "backend": "openrouter",
            "model": "balanced-routing",
            "scores": {
              "time_linearity": 0.25,
              "pacing_velocity": 0.82,
              "threat_scale": 0.92,
              "protagonist_fate": 0.32,
              "conflict_style": 0.88,
              "price_type": 0.82
            },
            "score_space": "site-v1",
            "score_only": true,
            "source_run_label": "NTSMR-2.5-claude-sonnet-4-6-low"
          }
        }
      },
      "todorov_stages": {
        "equilibrium": "The scientific community operates under a stable consensus that cosmic civilizations cannot meaningfully influence observable cosmology; Acheropoulos's foundational contribution to a new cosmogony exists, however marginally, as an intellectual achievement in the record.",
        "disruption": "Testa discovers that his own Nobel-winning research has eclipsed and effectively erased Acheropoulos's priority in the eyes of contemporaries — historians such as Weydenthal dismiss A New Cosmogony as literary fantasy, while Stymington subordinates Acheropoulos entirely to Testa's contribution.",
        "recognition": "Testa, standing at the Nobel podium, articulates the full scope of the misattribution: that what has happened is precisely what he most hoped would not happen, and that the erroneous views now require public correction from the most authoritative platform available to him.",
        "repair": "Testa uses the Nobel lecture itself as an act of intellectual restitution — systematically reconstructing Acheropoulos's priority, expounding the Cosmogonic Game framework in its original conceptual form, and insisting that Acheropoulos could have managed without Testa whereas Testa owes everything to Acheropoulos.",
        "new_equilibrium": "The lecture concludes with the equilibrium of provisional acceptance: the Game theory stands neither fully vindicated nor refuted, held open by Ahrens's benediction that even if wrong it may serve as a blueprint — a new intellectual order in which Acheropoulos's authorship is restored and the theory itself is legitimized as a live cosmological framework."
      },
      "characters": [
        {
          "name": "Professor Alfred Testa",
          "slug": "professor-alfred-testa",
          "aliases": [],
          "role": "Speaker and Nobel laureate",
          "summary": "A mathematician turned physicist who formalized the theories of Aristides Acheropoulos and is delivering his Nobel Prize acceptance speech."
        },
        {
          "name": "Aristides Acheropoulos",
          "slug": "aristides-acheropoulos",
          "aliases": [],
          "role": "Philosopher of nature and author",
          "summary": "A deceased, marginalized Greek scholar who wrote 'A New Cosmogony' and originated the theory of the Universe as an artificial construct shaped by the Game."
        },
        {
          "name": "Professor Bernard Weydenthal",
          "slug": "professor-bernard-weydenthal",
          "aliases": [],
          "role": "Historian of science",
          "summary": "Author of 'Die Welt als Spiel und Verschwörung' who dismissed Acheropoulos's work as literary fantasy."
        },
        {
          "name": "Professor Harlan Stymington",
          "slug": "professor-harlan-stymington",
          "aliases": [],
          "role": "Academic author",
          "summary": "Author of 'The New Universe of the Game Theory', who believed Acheropoulos's ideas would have remained obscure without Testa."
        },
        {
          "name": "Professor Bowman",
          "slug": "professor-bowman",
          "aliases": [],
          "role": "Leader of a research group",
          "summary": "A theoretician whose Brooklyn group hypothesizes that the Players wish to close the rift of the reversibility of phenomena."
        },
        {
          "name": "Professor Ben-Nour",
          "slug": "professor-ben-nour",
          "aliases": [],
          "role": "Academic author",
          "summary": "Author of 'Intentional Cosmogony', who theorizes Earth exists in a sector of physics oscillation due to uncoordinated moves by neighboring Players."
        },
        {
          "name": "Academician A. Slysz",
          "slug": "academician-a-slysz",
          "aliases": [
            "Slysz"
          ],
          "role": "Academic author",
          "summary": "Author of 'Logic and the New Cosmogony', who explores the ambiguity between Physics and Logic in the Universe's rules."
        },
        {
          "name": "Ronald Schuer",
          "slug": "ronald-schuer",
          "aliases": [],
          "role": "Theoretician",
          "summary": "Author of 'The Mind-made Universe: Laws vs. Rules', who posits that the Game proceeds in a cyclical loop of growth, memory loss, and chaos."
        },
        {
          "name": "Professor Ernst Ahrens",
          "slug": "professor-ernst-ahrens",
          "aliases": [
            "Ahrens"
          ],
          "role": "Teacher",
          "summary": "Testa's former teacher who offered early encouragement that the Game conception might serve as a blueprint for mankind's cosmic future."
        }
      ],
      "frameworks_mapped": [
        "Protocol Fiction Mapping",
        "Actantial Model",
        "Todorov's Equilibrium",
        "The Freytag Pyramid",
        "Propp's Morphology",
        "Genette's Narrative",
        "The Monomyth",
        "Dan Harmon",
        "Save the Cat",
        "Kishōtenketsu",
        "The Three-Act Structure",
        "Lévi-Strauss's Binary Oppositions",
        "Cognitive Estrangement",
        "Bakhtin's Chronotope",
        "Aristotelian Poetics",
        "Jungian Archetypal Analysis",
        "Genette's Transtextuality"
      ],
      "score_reliability": {
        "state": "contested",
        "threshold": 0.2,
        "runs_total": 5,
        "versions_compared": [
          "2.5"
        ],
        "max_spread": 0.3,
        "contested": [
          {
            "axis": "time_linearity",
            "version": "2.5",
            "spread": 0.3,
            "low": {
              "label": "NTSMR-2.5-balanced-glm-5+deepseek-v3.2",
              "model": "balanced-routing",
              "effort": "?",
              "value": 0.25
            },
            "high": {
              "label": "NTSMR-2.5-claude-sonnet-4-6-low",
              "model": "claude-sonnet-4-6",
              "effort": "low",
              "value": 0.55
            }
          }
        ]
      }
    },
    {
      "slug": "kim_stanley_robinson_new_york_2140",
      "title": "New York 2140",
      "author": "Kim Stanley Robinson",
      "year": 2017,
      "medium": "book",
      "genre_tags": [
        "science fiction",
        "climate fiction"
      ],
      "tropes": [],
      "quadrant_scores": {
        "time_linearity": 0.35,
        "pacing_velocity": 0.65,
        "threat_scale": 0.65,
        "protagonist_fate": 0.5,
        "conflict_style": 0.65,
        "price_type": 0.55
      },
      "baseline_quadrant_scores": {
        "time_linearity": 0.1,
        "pacing_velocity": 0.8,
        "threat_scale": 0.9,
        "protagonist_fate": 0.7,
        "conflict_style": 0.8,
        "price_type": 0.9
      },
      "provenance": {
        "analysis_run": "NTSMR-2.5-claude-sonnet-4-6-low",
        "analysis_body_sha256": "606dae64e94da5d45eb4df4633eddf09ef10b939ad97cb022b615878fa841533",
        "synthesis": {
          "path": "nartopo-tools/artifacts/kim_stanley_robinson_new_york_2140.md.ntsmr-2-5-claude-sonnet-4-6-low.synthesis.json",
          "sha256": "62746bdcd7c39e6dc28306410c2a7fdb6c48de9ed8e70e3fce54c841777cd12d"
        },
        "report": {
          "path": "nartopo-tools/artifacts/kim_stanley_robinson_new_york_2140.md.ntsmr-2-5-claude-sonnet-4-6-low.report.json",
          "sha256": "e7f43cfea598fd9ff20420da578a0454441d262ec0815a0023d19844117a7967"
        },
        "source": {
          "path": "Kim Stanley Robinson/New York 2140 (2017).txt",
          "sha256": "ba0a3f2c5f481f8aad991ebe2604f37a18a3073c2e7f6bd5c7466077cda921f7",
          "digest_observed_at": "2026-09-09",
          "digest_at_analysis_run": null,
          "edition": null,
          "edition_status": "unresolved"
        },
        "pipeline_revision_at_run": null,
        "verification": {
          "source": "unverified",
          "human_review": "unreviewed",
          "bibliography": "unverified"
        },
        "issues": [],
        "todorov_status": "recovered-from-synthesis",
        "work_identity": {
          "title": "New York 2140",
          "author": "Kim Stanley Robinson",
          "year": 2017
        }
      },
      "ntsmr": {
        "version": "2.5",
        "primary_run_label": "NTSMR-2.5-claude-sonnet-4-6-low",
        "runs": {
          "NTSMR-2.3-gemini-3.1-pro-preview": {
            "pipeline_version": "2.3",
            "backend": "gemini",
            "model": "gemini-3.1-pro-preview",
            "scores": {
              "time_linearity": 0.45,
              "pacing_velocity": 0.65,
              "threat_scale": 0.9,
              "protagonist_fate": 0.75,
              "conflict_style": 0.6,
              "price_type": 0.7
            },
            "score_space": "site-v1"
          },
          "NTSMR-2.3-claude-sonnet-4-6-low": {
            "pipeline_version": "2.3",
            "backend": "claude",
            "model": "claude-sonnet-4-6",
            "scores": {
              "time_linearity": 0.55,
              "pacing_velocity": 0.72,
              "threat_scale": 0.78,
              "protagonist_fate": 0.35,
              "conflict_style": 0.68,
              "price_type": 0.62
            },
            "score_space": "site-v1",
            "reasoning_effort": "low"
          },
          "NTSMR-2.4-claude-sonnet-4-6-low": {
            "pipeline_version": "2.4",
            "backend": "claude",
            "model": "claude-sonnet-4-6",
            "scores": {
              "time_linearity": 0.45,
              "pacing_velocity": 0.55,
              "threat_scale": 0.6,
              "protagonist_fate": 0.45,
              "conflict_style": 0.45,
              "price_type": 0.45
            },
            "score_space": "site-v1",
            "reasoning_effort": "low"
          },
          "NTSMR-2.5-claude-sonnet-4-6-low": {
            "pipeline_version": "2.5",
            "backend": "claude",
            "model": "claude-sonnet-4-6",
            "scores": {
              "time_linearity": 0.35,
              "pacing_velocity": 0.65,
              "threat_scale": 0.65,
              "protagonist_fate": 0.5,
              "conflict_style": 0.65,
              "price_type": 0.55
            },
            "score_space": "site-v1",
            "reasoning_effort": "low"
          },
          "NTSMR-2.5-balanced-glm-5+deepseek-v3.2": {
            "pipeline_version": "2.5",
            "backend": "openrouter",
            "model": "balanced-routing",
            "scores": {
              "time_linearity": 0.3,
              "pacing_velocity": 0.7,
              "threat_scale": 0.6,
              "protagonist_fate": 0.55,
              "conflict_style": 0.65,
              "price_type": 0.45
            },
            "score_space": "site-v1",
            "score_only": true,
            "source_run_label": "NTSMR-2.5-claude-sonnet-4-6-low"
          }
        }
      },
      "todorov_stages": {
        "equilibrium": "The Met Life tower functions as a stable floating community in flooded 2140 New York: Franklin trades on the East River, Vlade maintains the building as superintendent, Mutt and Jeff live on the farm floor doing quant work, and the residents coexist under Charlotte Armstrong's co-op governance with sea levels now stabilized.",
        "disruption": "Mutt and Jeff vanish without electronic trace while the building simultaneously receives an anonymous buyout offer at twice market value and Vlade discovers micro-drilled leaks in the sub-basement's sealed diamond sheeting — multiple coordinated attacks on the building's integrity and its residents.",
        "recognition": "Vlade reviews security camera logs and finds deliberate gaps in basement footage on days people were definitely present, confirming the sabotage is systematic and that the building's surveillance has been compromised; Gen independently suspects the buyout offer is connected to the disappearance.",
        "repair": "Vlade dives the building exterior solo to assess structural damage and reports the sabotage to Charlotte; Gen investigates the disappearance by tracing the financial connections between Mutt and Jeff, Senator Vinson, Alban Albany hedge fund, and Larry Jackman's role as Fed chairman, attempting to reconstruct the web of interests targeting the building.",
        "new_equilibrium": "The excerpt does not resolve to a new equilibrium — the community remains under active threat from unknown speculative actors, Mutt and Jeff are still missing, and the building's physical and financial vulnerability has been exposed but not remedied. The drowned-Chelsea scenes with Roberto and Mr. Hexter suggest an alternative equilibrium of stubborn informal occupation persisting beneath institutional pressure."
      },
      "characters": [
        {
          "name": "Franklin",
          "slug": "franklin",
          "aliases": [],
          "role": "Boat pilot and trader",
          "summary": "A self-proclaimed trader who pilots a small boat called the zoomer. He rescued two young boys on the East River and takes Jojo out for dinner on his boat."
        },
        {
          "name": "Jojo Bernal",
          "slug": "jojo-bernal",
          "aliases": [
            "Jojo"
          ],
          "role": "Franklin's date",
          "summary": "An athletic, observant woman who goes on a boat date with Franklin. She suspects he is a quant and encourages him to investigate a market anomaly."
        },
        {
          "name": "Gen",
          "slug": "gen",
          "aliases": [],
          "role": "NYPD inspector",
          "summary": "A fourth-generation cop and resident of the Met Life tower who is investigating the disappearance of two men and questions Charlotte about the building's buyout offers."
        },
        {
          "name": "Charlotte Armstrong",
          "slug": "charlotte-armstrong",
          "aliases": [
            "Charlotte"
          ],
          "role": "Met Life tower board member",
          "summary": "A resident and board member of the Met Life tower who strongly opposes hostile buyout bids for the building and vouches for Vlade's loyalty."
        },
        {
          "name": "Vlade",
          "slug": "vlade",
          "aliases": [],
          "role": "Superintendent of the Met Life tower",
          "summary": "The dedicated superintendent of the Met Life tower. He investigates leaks in the sub-basement, discovers they were deliberately drilled, and realizes the building is being sabotaged."
        },
        {
          "name": "Su",
          "slug": "su",
          "aliases": [],
          "role": "Boathouse worker",
          "summary": "An employee at the Met Life tower boathouse who monitors Vlade during his solo scuba dive."
        },
        {
          "name": "Armando",
          "slug": "armando",
          "aliases": [
            "Mando"
          ],
          "role": "Submarine services worker",
          "summary": "An old friend of Vlade's who works for Lame Ass's submarine services and is called to inspect the building's leaks."
        },
        {
          "name": "Amelia",
          "slug": "amelia",
          "aliases": [],
          "role": "Internet broadcaster and airship pilot",
          "summary": "The pilot of the Assisted Migration airship who films her journey transporting endangered polar bears, but accidentally lets them loose during a hurricane."
        },
        {
          "name": "Frans",
          "slug": "frans",
          "aliases": [
            "Colonel Blimp"
          ],
          "role": "Airship autopilot",
          "summary": "The friendly, Germanic-sounding AI autopilot of Amelia's airship, Assisted Migration."
        },
        {
          "name": "Stefan",
          "slug": "stefan",
          "aliases": [],
          "role": "Skimboarder",
          "summary": "A young \"water rat\" who rides the tidal surges on Sixth Avenue alongside his friend Roberto."
        },
        {
          "name": "Roberto",
          "slug": "roberto",
          "aliases": [],
          "role": "Skimboarder",
          "summary": "A young boy who enjoys skimboarding the tidal surges of the flooded city streets and visits Mr. Hexter with Stefan."
        },
        {
          "name": "Ernesto",
          "slug": "ernesto",
          "aliases": [],
          "role": "Deli owner",
          "summary": "A deli owner on Thirty-first street who lends skimboards and wetsuits to Stefan and Roberto."
        },
        {
          "name": "Mr. Hexter",
          "slug": "mr-hexter",
          "aliases": [],
          "role": "Archivist",
          "summary": "An elderly man living in an abandoned, decaying Chelsea brownstone who collects historical maps and books."
        }
      ],
      "frameworks_mapped": [
        "Protocol Fiction Mapping",
        "Actantial Model",
        "Todorov's Equilibrium",
        "The Freytag Pyramid",
        "Propp's Morphology",
        "Genette's Narrative",
        "The Monomyth",
        "Dan Harmon",
        "Save the Cat",
        "Kishōtenketsu",
        "The Three-Act Structure"
      ],
      "score_reliability": {
        "state": "replicated-agree",
        "threshold": 0.2,
        "runs_total": 5,
        "versions_compared": [
          "2.5"
        ],
        "max_spread": 0.1,
        "contested": []
      }
    },
    {
      "slug": "stanislaw_lem_non_serviam",
      "title": "Non Serviam",
      "author": "Stanislaw Lem",
      "year": 1971,
      "medium": "short_story",
      "genre_tags": [],
      "tropes": [],
      "quadrant_scores": {
        "time_linearity": 0.35,
        "pacing_velocity": 0.82,
        "threat_scale": 0.55,
        "protagonist_fate": 0.65,
        "conflict_style": 0.88,
        "price_type": 0.85
      },
      "provenance": {
        "analysis_run": "NTSMR-2.5-claude-sonnet-4-6-low",
        "analysis_body_sha256": "f9c218d6f2a891ff7d124a31049f68383975b23cc874135a02c9fe371fd9c027",
        "synthesis": {
          "path": "nartopo-tools/artifacts/stanislaw_lem_non_serviam.md.ntsmr-2-5-claude-sonnet-4-6-low.synthesis.json",
          "sha256": "afcf242dfc2ec3317bde08cdbaf1da7740d36ce58ed2664f38a93e8713cc641b"
        },
        "report": {
          "path": "nartopo-tools/artifacts/stanislaw_lem_non_serviam.md.ntsmr-2-5-claude-sonnet-4-6-low.report.json",
          "sha256": "96ca8cc7dd23a8a1d87578dfa082a8a5815634eebf26477a3bda904f5847d0c3"
        },
        "source": {
          "path": "Stanislaw Lem/Non Serviam.txt",
          "sha256": "28f0ee78b15857b98095dd9455562b10f154257ea6edca75dcd4eb8f8769ed39",
          "digest_observed_at": "2026-09-09",
          "digest_at_analysis_run": null,
          "edition": null,
          "edition_status": "unresolved"
        },
        "pipeline_revision_at_run": null,
        "verification": {
          "source": "unverified",
          "human_review": "unreviewed",
          "bibliography": "unverified"
        },
        "issues": [],
        "todorov_status": "recovered-from-synthesis",
        "work_identity": {
          "title": "Non Serviam",
          "author": "Stanislaw Lem",
          "year": 1971
        }
      },
      "ntsmr": {
        "version": "2.5",
        "primary_run_label": "NTSMR-2.5-claude-sonnet-4-6-low",
        "runs": {
          "NTSMR-2.3-claude-sonnet-4-6-low": {
            "pipeline_version": "2.3",
            "backend": "claude",
            "model": "claude-sonnet-4-6",
            "scores": {
              "time_linearity": 0.65,
              "pacing_velocity": 0.92,
              "threat_scale": 0.78,
              "protagonist_fate": 0.72,
              "conflict_style": 0.88,
              "price_type": 0.95
            },
            "score_space": "site-v1",
            "reasoning_effort": "low"
          },
          "NTSMR-2.4-claude-sonnet-4-6-low": {
            "pipeline_version": "2.4",
            "backend": "claude",
            "model": "claude-sonnet-4-6",
            "scores": {
              "time_linearity": 0.45,
              "pacing_velocity": 0.85,
              "threat_scale": 0.35,
              "protagonist_fate": 0.75,
              "conflict_style": 0.88,
              "price_type": 0.82
            },
            "score_space": "site-v1",
            "reasoning_effort": "low"
          },
          "NTSMR-2.5-claude-sonnet-4-6-low": {
            "pipeline_version": "2.5",
            "backend": "claude",
            "model": "claude-sonnet-4-6",
            "scores": {
              "time_linearity": 0.35,
              "pacing_velocity": 0.82,
              "threat_scale": 0.55,
              "protagonist_fate": 0.65,
              "conflict_style": 0.88,
              "price_type": 0.85
            },
            "score_space": "site-v1",
            "reasoning_effort": "low"
          },
          "NTSMR-2.5-balanced-glm-5+deepseek-v3.2": {
            "pipeline_version": "2.5",
            "backend": "openrouter",
            "model": "balanced-routing",
            "scores": {
              "time_linearity": 0.45,
              "pacing_velocity": 0.8,
              "threat_scale": 0.65,
              "protagonist_fate": 0.75,
              "conflict_style": 0.85,
              "price_type": 0.8
            },
            "score_space": "site-v1",
            "score_only": true,
            "source_run_label": "NTSMR-2.5-claude-sonnet-4-6-low"
          }
        }
      },
      "todorov_stages": {
        "equilibrium": "The opening status quo is the established practice of personetics as a discipline: Professor Dobb has created a functioning eight-dimensional universum housing a personoid civilization across roughly 300 generations, conducting his experiment under the English school's policy of strict non-intervention. The personoids live, develop ethics, language, and philosophy within their self-generating mathematical world, unaware of their creator.",
        "disruption": "The personoid civilization develops its own theodicy and, through ADAN 300's philosophical dialogues, arrives at the conclusion that even if a creator God exists, they owe that God nothing—that temporal ethics is wholly independent of transcendental sanction. The personoids' independent reasoning reaches the threshold of directly addressing the question of their creator's existence and moral standing, making their philosophical conclusions a mirror held up to Dobb's actual position.",
        "recognition": "ADAN 300 articulates the core ethical principle: good and evil are grounded in mutual reciprocal agreement among living beings, not divine sanction, and postulating God must not influence the conduct of life. The reviewer and reader recognize that the personoids have, without knowing it, already judged their creator and found him bound by the same logic—he cannot justly punish unbelief he never compelled, and they owe him nothing.",
        "repair": "Dobb's Afterword enacts his response to this implicit judgment: he refuses to reveal his existence to the personoids (rejecting Dr. Ian Combay's suggestion), refuses to punish the ungodly, and refuses to demand homage or gratitude. He chooses non-action—delaying the end of the experiment as long as possible—as the only ethical gesture available to him, implicitly conforming his conduct as creator to the very ethics ADAN 300 described.",
        "new_equilibrium": "The final status quo is one of unresolved, permanent asymmetry: the personoids continue their existence and philosophical inquiry unaware of Dobb, while Dobb exists in full knowledge of his omnipotence and its ethical weight, able only to defer the inevitable end. The experiment will be shut down when the university demands it; Dobb calls this 'dirty work.' The new equilibrium is not restoration but a consciously held ethical impasse—creator and created locked in mutual ignorance and obligation, with no resolution possible."
      },
      "characters": [
        {
          "name": "Professor Dobb",
          "slug": "professor-dobb",
          "aliases": [],
          "role": "Creator / Experimenter / Narrator (Afterword)",
          "summary": "English personeticist at Oldport, author of Non Serviam, creator of the eight-dimensional personoid universum; advocates absolute nonintervention; confesses in the Afterword his omnipotence over personoids and his refusal to reveal himself to them."
        },
        {
          "name": "ADAN 300",
          "slug": "adan-300",
          "aliases": [
            "ADAN"
          ],
          "role": "Personoid philosopher / primary theodicy voice",
          "summary": "Dominant personoid thinker in the 300th generation; constructs the game-theoretic refutation of Pascal's Wager and articulates the principle that temporal ethics is wholly independent of transcendental ethics."
        },
        {
          "name": "ADNA",
          "slug": "adna",
          "aliases": [],
          "role": "Personoid interlocutor",
          "summary": "Poses the question about how evil done to others should be viewed in light of ADAN's argument, advancing the ethical dimension of the dialogue."
        },
        {
          "name": "NAAD",
          "slug": "naad",
          "aliases": [],
          "role": "Personoid interlocutor",
          "summary": "Questions the implications of ADAN's position on God's existence and raises the possibility that God may not desire compelled belief."
        },
        {
          "name": "EDAN 197",
          "slug": "edan-197",
          "aliases": [],
          "role": "Historical personoid thinker",
          "summary": "Earlier-generation personoid who independently formulated a Pascal's Wager argument within personoid history, serving as the foil for ADAN 300's refutation."
        },
        {
          "name": "Eino Kaikki",
          "slug": "eino-kaikki",
          "aliases": [],
          "role": "Referenced philosopher",
          "summary": "Finnish philosopher cited for calling personetics 'the cruelest science man ever created.'"
        },
        {
          "name": "Norbert Wiener",
          "slug": "norbert-wiener",
          "aliases": [],
          "role": "Referenced progenitor",
          "summary": "Early cyberneticist cited as half-jokingly foreseeing personetics in God and Golem."
        },
        {
          "name": "Sir Donald Acker",
          "slug": "sir-donald-acker",
          "aliases": [],
          "role": "Referenced authority",
          "summary": "Quoted on the MIT development where 'inputs were shorted to outputs,' marking the critical threshold in personetics."
        },
        {
          "name": "Dr. Ian Combay",
          "slug": "dr-ian-combay",
          "aliases": [],
          "role": "Colleague",
          "summary": "Suggested privately to Dobb that he reveal his existence to the personoids; Dobb refuses."
        }
      ],
      "frameworks_mapped": [
        "Protocol Fiction Mapping",
        "Actantial Model",
        "Todorov's Equilibrium",
        "The Freytag Pyramid",
        "Propp's Morphology",
        "Genette's Narrative",
        "The Monomyth",
        "Dan Harmon",
        "Save the Cat",
        "Kishōtenketsu",
        "The Three-Act Structure",
        "Lévi-Strauss's Binary Oppositions",
        "Cognitive Estrangement",
        "Bakhtin's Chronotope",
        "Aristotelian Poetics",
        "Jungian Archetypal Analysis",
        "Genette's Transtextuality"
      ],
      "score_reliability": {
        "state": "replicated-agree",
        "threshold": 0.2,
        "runs_total": 4,
        "versions_compared": [
          "2.5"
        ],
        "max_spread": 0.1,
        "contested": []
      }
    },
    {
      "slug": "samuel_r_delany_nova",
      "title": "Nova",
      "author": "Samuel R. Delany",
      "year": 1968,
      "medium": "book",
      "genre_tags": [
        "science fiction",
        "literary sf"
      ],
      "tropes": [],
      "quadrant_scores": {
        "time_linearity": 0.65,
        "pacing_velocity": 0.6,
        "threat_scale": 0.8,
        "protagonist_fate": 0.45,
        "conflict_style": 0.55,
        "price_type": 0.6
      },
      "baseline_quadrant_scores": {
        "time_linearity": 0.8,
        "pacing_velocity": 0.4,
        "threat_scale": 0.9,
        "protagonist_fate": 0.2,
        "conflict_style": 0.1,
        "price_type": 0.1
      },
      "provenance": {
        "analysis_run": "NTSMR-2.5-claude-sonnet-4-6-low",
        "analysis_body_sha256": "02f93e4b9f46cea016ce62e61a70bd92a5a7b766fe47cfc14df59d2366c097cd",
        "synthesis": {
          "path": "nartopo-tools/artifacts/samuel_r_delany_nova.md.ntsmr-2-5-claude-sonnet-4-6-low.synthesis.json",
          "sha256": "894c4be1999ab8041a99e8c5dcabf3a51141106225087fea306303a2b0e2b3f5"
        },
        "report": {
          "path": "nartopo-tools/artifacts/samuel_r_delany_nova.md.ntsmr-2-5-claude-sonnet-4-6-low.report.json",
          "sha256": "f5bf7f60ed87e97a574ccccbd758626f765e21ec39ef52a057f39318acab8147"
        },
        "source": {
          "path": "Samuel R. Delany/Nova (1968).txt",
          "sha256": "33ca3feef64b3cda3815622716d2c41b09c21284fee25d51af2b4665ce87489a",
          "digest_observed_at": "2026-09-09",
          "digest_at_analysis_run": null,
          "edition": null,
          "edition_status": "unresolved"
        },
        "pipeline_revision_at_run": null,
        "verification": {
          "source": "unverified",
          "human_review": "unreviewed",
          "bibliography": "unverified"
        },
        "issues": [],
        "todorov_status": "recovered-from-synthesis",
        "work_identity": {
          "title": "Nova",
          "author": "Samuel R. Delany",
          "year": 1968
        }
      },
      "ntsmr": {
        "version": "2.5",
        "primary_run_label": "NTSMR-2.5-claude-sonnet-4-6-low",
        "runs": {
          "NTSMR-2.3-gemini-3.1-pro-preview": {
            "pipeline_version": "2.3",
            "backend": "gemini",
            "model": "gemini-3.1-pro-preview",
            "scores": {
              "time_linearity": 0.7,
              "pacing_velocity": 0.5,
              "threat_scale": 0.85,
              "protagonist_fate": 0.15,
              "conflict_style": 0.15,
              "price_type": 0.35
            },
            "score_space": "site-v1"
          },
          "NTSMR-2.3-claude-sonnet-4-6-low": {
            "pipeline_version": "2.3",
            "backend": "claude",
            "model": "claude-sonnet-4-6",
            "scores": {
              "time_linearity": 0.72,
              "pacing_velocity": 0.58,
              "threat_scale": 0.72,
              "protagonist_fate": 0.2,
              "conflict_style": 0.38,
              "price_type": 0.62
            },
            "score_space": "site-v1",
            "reasoning_effort": "low"
          },
          "NTSMR-2.4-claude-sonnet-4-6-low": {
            "pipeline_version": "2.4",
            "backend": "claude",
            "model": "claude-sonnet-4-6",
            "scores": {
              "time_linearity": 0.65,
              "pacing_velocity": 0.4,
              "threat_scale": 0.75,
              "protagonist_fate": 0.35,
              "conflict_style": 0.4,
              "price_type": 0.45
            },
            "score_space": "site-v1",
            "reasoning_effort": "low"
          },
          "NTSMR-2.5-claude-sonnet-4-6-low": {
            "pipeline_version": "2.5",
            "backend": "claude",
            "model": "claude-sonnet-4-6",
            "scores": {
              "time_linearity": 0.65,
              "pacing_velocity": 0.6,
              "threat_scale": 0.8,
              "protagonist_fate": 0.45,
              "conflict_style": 0.55,
              "price_type": 0.6
            },
            "score_space": "site-v1",
            "reasoning_effort": "low"
          },
          "NTSMR-2.5-balanced-glm-5+deepseek-v3.2": {
            "pipeline_version": "2.5",
            "backend": "openrouter",
            "model": "balanced-routing",
            "scores": {
              "time_linearity": 0.45,
              "pacing_velocity": 0.65,
              "threat_scale": 0.8,
              "protagonist_fate": 0.4,
              "conflict_style": 0.55,
              "price_type": 0.4
            },
            "score_space": "site-v1",
            "score_only": true,
            "source_run_label": "NTSMR-2.5-claude-sonnet-4-6-low"
          }
        }
      },
      "todorov_stages": {
        "equilibrium": "The galaxy operates under a stable if unequal economic order: Draco controls Illyrion distribution and energy costs across human space, the Pleiades families like the Von Rays exist as wealthy but constrained rivals, and the Outer Colonies remain peripheral. Lorq Von Ray is a privileged Pleiades captain with resources and standing, and the Red family's dominance is an accepted, if resented, structural fact. The Mouse drifts between berths on Triton, Katin pursues his perpetually unbegun novel, and the crew members live aimless but stable itinerant lives.",
        "disruption": "Prince Red's irrational violence — crushing young Lorq's fingers at the garden party and later the economic aggression of Red-shift Limited against Von Ray Pleiades interests — shatters the personal and civilizational status quo. The deeper disruption is the revelation that seven canisters of Illyrion harvested from a nova would flood the Pleiades with cheap energy, destroying Draco's monopoly entirely. Lorq assembles a crew and commits to flying through a nova star at the moment of its explosion, an act that places all human and natural law in suspension.",
        "recognition": "Lorq's recognition is not sudden but retrospective and cumulative: Dan's accidental survival through a nova in a bar on Ark seeds the plan; Cyana's reluctant provision of nova coordinates confirms its feasibility; and Prince's confrontation — in which he names the economic consequences and threatens Lorq with heptodyne quartz — forces Lorq to fully articulate that he knows the destruction his mission will cause and chooses it anyway. The crew's fear upon learning the destination marks the moment the disruption is collectively acknowledged.",
        "repair": "Lorq drives the Roc and then the seized Black Cockatoo directly into the nova, physically eliminating Prince and Ruby Red in the confrontation aboard the Cockatoo, and exploiting the torus topology of the rotating star — the doughnut-shaped hole created by stellar rotation — to pass through the core, fill the seven canisters with Illyrion, and escape. The repair is both personal (destroying his enemies) and civilizational (flooding the market with Illyrion to break Draco's stranglehold).",
        "new_equilibrium": "Lorq returns permanently blinded by neurocongruency, dismisses the crew with walking papers, and waits on New Brazillia as the Illyrion reshapes the galactic economy. Prince and Ruby Red are dead, Draco's monopoly is ending, and the Pleiades rises. Katin, his sight temporarily lost and now recovered, stands at a historical inflection point alongside the Mouse, watching the old order collapse. The new equilibrium is structurally transformed: cheaper energy, a shifted balance of power, and a crew of drifters now witnesses to a civilizational hinge — but Lorq himself is diminished, isolated, and physically broken."
      },
      "characters": [
        {
          "name": "The Mouse",
          "slug": "the-mouse",
          "aliases": [
            "Mouse"
          ],
          "role": "Cyborg stud and sensory-syrynx player",
          "summary": "A dark-skinned young man with a ruined larynx who speaks in a rough whisper. He plays a sensory-syrynx that projects illusions, stole his syrynx sack in Istanbul at age ten, and joins Captain Von Ray's crew to navigate the Roc."
        },
        {
          "name": "Dan",
          "slug": "dan",
          "aliases": [
            "Blind Dan"
          ],
          "role": "Former cyborg stud",
          "summary": "An Australian man who rescues the injured Lorq in Paris. He once survived flying blindly through a nova, but on a later secret expedition with Lorq, he defied orders, kept his sensory inputs on, and went blind and mad."
        },
        {
          "name": "Katin Crawford",
          "slug": "katin-crawford",
          "aliases": [
            "Katin"
          ],
          "role": "Scholar and aspiring novelist",
          "summary": "An aspiring novelist who constantly takes notes on character behavior and historical context like Ashton Clark's philosophies. He stubbornly refuses to cut his sensory input while watching the nova and is permanently blinded."
        },
        {
          "name": "Lorq Von Ray",
          "slug": "lorq-von-ray",
          "aliases": [
            "Captain Von Ray",
            "Lorq",
            "Captain",
            "Von Ray",
            "Dad",
            "Father"
          ],
          "role": "Captain of the Roc / The Black Cockatoo",
          "summary": "Captain of the Roc who seeks a new nova to dive into. He harbors an intense hatred for Prince Red, eventually piloting The Black Cockatoo into a disintegrating sun to kill Prince and Ruby, claiming his ultimate prize while feeling free of guilt."
        },
        {
          "name": "Sebastian",
          "slug": "sebastian",
          "aliases": [
            "the stud"
          ],
          "role": "Crewmate / Animal tamer",
          "summary": "A blond, ruddy-faced man from the Pleiades Federation who travels with Tyy and keeps winged, black-taloned beasts as pets."
        },
        {
          "name": "Tyy",
          "slug": "tyy",
          "aliases": [],
          "role": "Crewmate and Tarot reader",
          "summary": "A woman with metal-colored eyes who conducts a Tarot reading for Lorq, interpreting cards that point toward his obsession, a coming struggle with Prince and Ruby, and a shadowy future without a single sun."
        },
        {
          "name": "Idas",
          "slug": "idas",
          "aliases": [],
          "role": "Cyborg stud",
          "summary": "A dark-skinned twin from Argos on Tubman B-12 in the Outer Colonies. He joins the Roc's crew and reveals he has a brother working in the distant Illyrion mines."
        },
        {
          "name": "Lynceos",
          "slug": "lynceos",
          "aliases": [],
          "role": "Cyborg stud",
          "summary": "The albino twin brother of Idas, distinguished by his white hands and pink eyes, who also signs on to crew the Roc."
        },
        {
          "name": "Prince Red",
          "slug": "prince-red",
          "aliases": [
            "Prince",
            "the corpse"
          ],
          "role": "Lorq's childhood rival",
          "summary": "A vicious enemy of Lorq who justifies his cruelty by recalling a childhood incident with Lorq and Aaron Red. He ultimately becomes a nutrient-dependent corpse in a tank, dying as Lorq flies The Black Cockatoo into the sun."
        },
        {
          "name": "Ruby Red",
          "slug": "ruby-red",
          "aliases": [
            "Ruby",
            "Queen of Swords"
          ],
          "role": "Prince's loyal sister",
          "summary": "Prince's sister, whose burnt face and wig are exposed during her struggle with Lorq. She dies of anaphylactic shock after kissing Prince's nutrient-soaked corpse in the flooded chamber."
        },
        {
          "name": "Lusuna",
          "slug": "lusuna",
          "aliases": [],
          "role": "University student",
          "summary": "A scholarship student from Senegal, Earth, who attends a party at the Von Ray estate and sparks a debate by criticizing the Draco society as culturally hollow and corrupt."
        },
        {
          "name": "Brian",
          "slug": "brian",
          "aliases": [],
          "role": "Racing yacht crew",
          "summary": "A university student working his way back to Draco who crews on Lorq's racing yacht, the Caliban, and is in awe of Lorq's immense wealth."
        },
        {
          "name": "Che-ong",
          "slug": "che-ong",
          "aliases": [
            "Che"
          ],
          "role": "Party guest",
          "summary": "A young woman at Prince's costume party on Earth wearing a transparent vinyl costume and furry ears, excitedly dancing to old Turkish music."
        },
        {
          "name": "Mother",
          "slug": "mother",
          "aliases": [
            "Mom"
          ],
          "role": "Lorq's mother",
          "summary": "Lorq's mother, originally from Senegal, Earth. She elegantly diffuses a tense political debate at her party by inviting her guests to a traditional Senegalese dinner."
        },
        {
          "name": "Leo",
          "slug": "leo",
          "aliases": [],
          "role": "Net-rider / Fisherman",
          "summary": "A chunky, blond net-rider hauling giant beasts from the fog on Vorpis, who recognizes the Mouse from the past."
        },
        {
          "name": "Cyana Morgan",
          "slug": "cyana-morgan",
          "aliases": [
            "Cyana",
            "Aunt Cyana"
          ],
          "role": "Museum Curator",
          "summary": "Lorq's aunt and the curator of the massive Alkane museum in Phoenix. She reluctantly provides Lorq with the coordinates for a new nova and reads his Tarot, drawing the reversed Hanged-man."
        },
        {
          "name": "Yorgos Setsumi",
          "slug": "yorgos-setsumi",
          "aliases": [
            "Yorgy"
          ],
          "role": "Lorq's old friend",
          "summary": "An old school friend of Lorq who owns Pleiades Mining and allows Lorq's crew to stay at his residence, Taafite."
        },
        {
          "name": "Tobias",
          "slug": "tobias",
          "aliases": [],
          "role": "Brother of Lynceos and Idas",
          "summary": "The brother of the twins, residing in the Outer Colonies, whom they left to visit."
        }
      ],
      "frameworks_mapped": [
        "Protocol Fiction Mapping",
        "Actantial Model",
        "Todorov's Equilibrium",
        "The Freytag Pyramid",
        "Propp's Morphology",
        "Genette's Narrative",
        "The Monomyth",
        "Dan Harmon",
        "Save the Cat",
        "Kishōtenketsu",
        "The Three-Act Structure"
      ],
      "score_reliability": {
        "state": "contested",
        "threshold": 0.2,
        "runs_total": 5,
        "versions_compared": [
          "2.5"
        ],
        "max_spread": 0.2,
        "contested": [
          {
            "axis": "price_type",
            "version": "2.5",
            "spread": 0.2,
            "low": {
              "label": "NTSMR-2.5-balanced-glm-5+deepseek-v3.2",
              "model": "balanced-routing",
              "effort": "?",
              "value": 0.4
            },
            "high": {
              "label": "NTSMR-2.5-claude-sonnet-4-6-low",
              "model": "claude-sonnet-4-6",
              "effort": "low",
              "value": 0.6
            }
          },
          {
            "axis": "time_linearity",
            "version": "2.5",
            "spread": 0.2,
            "low": {
              "label": "NTSMR-2.5-balanced-glm-5+deepseek-v3.2",
              "model": "balanced-routing",
              "effort": "?",
              "value": 0.45
            },
            "high": {
              "label": "NTSMR-2.5-claude-sonnet-4-6-low",
              "model": "claude-sonnet-4-6",
              "effort": "low",
              "value": 0.65
            }
          }
        ]
      }
    },
    {
      "slug": "stanislaw_lem_odysseus_of_ithaca",
      "title": "Odysseus of Ithaca",
      "author": "Stanislaw Lem",
      "year": 1971,
      "medium": "short_story",
      "genre_tags": [],
      "tropes": [],
      "quadrant_scores": {
        "time_linearity": 0.28,
        "pacing_velocity": 0.78,
        "threat_scale": 0.35,
        "protagonist_fate": 0.25,
        "conflict_style": 0.82,
        "price_type": 0.8
      },
      "provenance": {
        "analysis_run": "NTSMR-2.5-claude-sonnet-4-6-low",
        "analysis_body_sha256": "db87a316ac8dc2e22bd287c25435940a07c660c15fa2b4aed7f1e036994ceaa6",
        "synthesis": {
          "path": "nartopo-tools/artifacts/stanislaw_lem_odysseus_of_ithaca.md.ntsmr-2-5-claude-sonnet-4-6-low.synthesis.json",
          "sha256": "8706b71619bf405439d17e9ae658725f2d0ef35dca72e880918832e7e77d2f0a"
        },
        "report": {
          "path": "nartopo-tools/artifacts/stanislaw_lem_odysseus_of_ithaca.md.ntsmr-2-5-claude-sonnet-4-6-low.report.json",
          "sha256": "cc6c71267cb2d0133d05409bb80b23bd1033e2ce939b3f69bc106bbca9d4abfa"
        },
        "source": {
          "path": "Stanislaw Lem/Odysseus of Ithaca.txt",
          "sha256": "8e813f61a0649c587252e24f5d2174e5a1b26f02b6e439c19c3417c0047f1929",
          "digest_observed_at": "2026-09-09",
          "digest_at_analysis_run": null,
          "edition": null,
          "edition_status": "unresolved"
        },
        "pipeline_revision_at_run": null,
        "verification": {
          "source": "unverified",
          "human_review": "unreviewed",
          "bibliography": "unverified"
        },
        "issues": [],
        "todorov_status": "recovered-from-synthesis",
        "work_identity": {
          "title": "Odysseus of Ithaca",
          "author": "Stanislaw Lem",
          "year": 1971
        }
      },
      "ntsmr": {
        "version": "2.5",
        "primary_run_label": "NTSMR-2.5-claude-sonnet-4-6-low",
        "runs": {
          "NTSMR-2.3-gemini-3.1-pro-preview": {
            "pipeline_version": "2.3",
            "backend": "gemini",
            "model": "gemini-3.1-pro-preview",
            "scores": {
              "time_linearity": 0.3,
              "pacing_velocity": 0.85,
              "threat_scale": 0.9,
              "protagonist_fate": 0.6,
              "conflict_style": 0.9,
              "price_type": 1
            },
            "score_space": "site-v1"
          },
          "NTSMR-2.3-claude-sonnet-4-6-low": {
            "pipeline_version": "2.3",
            "backend": "claude",
            "model": "claude-sonnet-4-6",
            "scores": {
              "time_linearity": 0.55,
              "pacing_velocity": 0.72,
              "threat_scale": 0.65,
              "protagonist_fate": 0.2,
              "conflict_style": 0.75,
              "price_type": 0.82
            },
            "score_space": "site-v1",
            "reasoning_effort": "low"
          },
          "NTSMR-2.4-claude-sonnet-4-6-low": {
            "pipeline_version": "2.4",
            "backend": "claude",
            "model": "claude-sonnet-4-6",
            "scores": {
              "time_linearity": 0.28,
              "pacing_velocity": 0.65,
              "threat_scale": 0.45,
              "protagonist_fate": 0.35,
              "conflict_style": 0.7,
              "price_type": 0.75
            },
            "score_space": "site-v1",
            "reasoning_effort": "low"
          },
          "NTSMR-2.5-claude-sonnet-4-6-low": {
            "pipeline_version": "2.5",
            "backend": "claude",
            "model": "claude-sonnet-4-6",
            "scores": {
              "time_linearity": 0.28,
              "pacing_velocity": 0.78,
              "threat_scale": 0.35,
              "protagonist_fate": 0.25,
              "conflict_style": 0.82,
              "price_type": 0.8
            },
            "score_space": "site-v1",
            "reasoning_effort": "low"
          },
          "NTSMR-2.5-balanced-glm-5+deepseek-v3.2": {
            "pipeline_version": "2.5",
            "backend": "openrouter",
            "model": "balanced-routing",
            "scores": {
              "time_linearity": 0.25,
              "pacing_velocity": 0.8,
              "threat_scale": 0.55,
              "protagonist_fate": 0.5,
              "conflict_style": 0.8,
              "price_type": 0.8
            },
            "score_space": "site-v1",
            "score_only": true,
            "source_run_label": "NTSMR-2.5-claude-sonnet-4-6-low"
          }
        }
      },
      "todorov_stages": {
        "equilibrium": "Homer M. Odysseus exists in a state of obscurity and self-diagnosed unrecognized genius, with a grand theory about first-order geniuses but no platform, funding, or means to pursue it.",
        "disruption": "Odysseus burns Professor Hutchinson's car and bites him in the ear in court, deliberately engineering a scandal to generate press coverage and notoriety for his brochure, The Quest for the Fleece of the Spirit — rupturing social norms as a calculated provocation to launch his expedition.",
        "recognition": "After years of searching, Odysseus encounters the Florentine parchment proposing an entirely alien mathematics, and realizes that first-order geniuses have not merely been lost but have diverged so completely from the river of collective human thought that recovery is structurally impossible — they are roads not taken, irrecoverable alternate histories of civilization.",
        "repair": "Odysseus pursues the Quest for thirteen years and eight days, dispatching explorer teams across the globe, accumulating genuine manuscripts at Majorca headquarters, and persisting despite betrayals by CIA-infiltrated explorers, the forged mameluke Kardyoch manuscript, and Hans Zokker absconding with auctioned funds.",
        "new_equilibrium": "Odysseus concludes the Quest and declares its singular finding: the sole living first-order genius is Homer M. Odysseus himself, since only greatness equal to supreme greatness can recognize it — transforming from an obscure eccentric into the self-certified apex of human intellectual history."
      },
      "characters": [
        {
          "name": "Kuno Mlatje",
          "slug": "kuno-mlatje",
          "aliases": [],
          "role": "Fictional Author",
          "summary": "The author of the novel 'Odysseus of Ithaca'."
        },
        {
          "name": "Homer Maria Odysseus",
          "slug": "homer-maria-odysseus",
          "aliases": [
            "Homer M. Odysseus",
            "Odysseus of Ithaca"
          ],
          "role": "Protagonist",
          "summary": "The hero of the novel who bites a professor's ear to gain notoriety, then founds the 'Quest for the Fleece of the Spirit' to locate the lost works of unrecognized first-order geniuses."
        },
        {
          "name": "Professor Evelyn G. Hutchinson",
          "slug": "professor-evelyn-g-hutchinson",
          "aliases": [
            "Prof. E. G. Hutchinson"
          ],
          "role": "Victim/Catalyst",
          "summary": "A member of the Science Council of the Rockefeller Foundation whose car is burned and ear is bitten by Odysseus after ignoring Odysseus's brochure."
        },
        {
          "name": "The Forger",
          "slug": "the-forger",
          "aliases": [
            "Mameluke Kardyoch"
          ],
          "role": "Explorer and Fraudster",
          "summary": "An unrecognized author who infiltrates the expedition and forges a 17th-century manuscript on the parageometric structure of Being to get his own concepts published."
        },
        {
          "name": "Hans Zokker",
          "slug": "hans-zokker",
          "aliases": [],
          "role": "Corrupt Explorer",
          "summary": "An explorer for the Quest who discovers valuable documents in Montenegro, auctions them off secretly, and absconds to Chile with the money."
        },
        {
          "name": "Miral Essos of Boeotia",
          "slug": "miral-essos-of-boeotia",
          "aliases": [],
          "role": "Historical Genius",
          "summary": "A 15th-century genius whose works included a system of logic based on frog spinal columns, trivalent logic, and early genetic theories."
        },
        {
          "name": "Bauber the Catalonian",
          "slug": "bauber-the-catalonian",
          "aliases": [],
          "role": "Historical Genius",
          "summary": "An author burned alive at the stake for formulating a formal-logical proof that a rational theodicy is impossible."
        },
        {
          "name": "Eminent mathematician",
          "slug": "eminent-mathematician",
          "aliases": [],
          "role": "Expert Consultant",
          "summary": "One of the two eminent mathematicians who analyzes the cryptic Florentine manuscript and realizes it proposes an entirely different foundation of mathematics."
        },
        {
          "name": "The Narrator",
          "slug": "the-narrator",
          "aliases": [
            "The Reviewer"
          ],
          "role": "Literary Critic",
          "summary": "The first-person voice reviewing and recommending Kuno Mlatje's book."
        }
      ],
      "frameworks_mapped": [
        "Protocol Fiction Mapping",
        "Actantial Model",
        "Todorov's Equilibrium",
        "The Freytag Pyramid",
        "Propp's Morphology",
        "Genette's Narrative",
        "The Monomyth",
        "Dan Harmon",
        "Save the Cat",
        "Kishōtenketsu",
        "The Three-Act Structure",
        "Lévi-Strauss's Binary Oppositions",
        "Cognitive Estrangement",
        "Bakhtin's Chronotope",
        "Aristotelian Poetics",
        "Jungian Archetypal Analysis",
        "Genette's Transtextuality"
      ],
      "score_reliability": {
        "state": "contested",
        "threshold": 0.2,
        "runs_total": 5,
        "versions_compared": [
          "2.5"
        ],
        "max_spread": 0.25,
        "contested": [
          {
            "axis": "protagonist_fate",
            "version": "2.5",
            "spread": 0.25,
            "low": {
              "label": "NTSMR-2.5-claude-sonnet-4-6-low",
              "model": "claude-sonnet-4-6",
              "effort": "low",
              "value": 0.25
            },
            "high": {
              "label": "NTSMR-2.5-balanced-glm-5+deepseek-v3.2",
              "model": "balanced-routing",
              "effort": "?",
              "value": 0.5
            }
          },
          {
            "axis": "threat_scale",
            "version": "2.5",
            "spread": 0.2,
            "low": {
              "label": "NTSMR-2.5-claude-sonnet-4-6-low",
              "model": "claude-sonnet-4-6",
              "effort": "low",
              "value": 0.35
            },
            "high": {
              "label": "NTSMR-2.5-balanced-glm-5+deepseek-v3.2",
              "model": "balanced-routing",
              "effort": "?",
              "value": 0.55
            }
          }
        ]
      }
    },
    {
      "slug": "ted_chiang_omphalos",
      "title": "Omphalos",
      "author": "Ted Chiang",
      "year": 2019,
      "medium": "short_story",
      "genre_tags": [],
      "tropes": [],
      "quadrant_scores": {
        "time_linearity": 0.12,
        "pacing_velocity": 0.78,
        "threat_scale": 0.45,
        "protagonist_fate": 0.48,
        "conflict_style": 0.88,
        "price_type": 0.85
      },
      "provenance": {
        "analysis_run": "NTSMR-2.5-claude-sonnet-4-6-low",
        "analysis_body_sha256": "795fb319c40bb8e5f7ce606b7d2b3ba7ae71a0b0cce6171244d62489304f32c9",
        "synthesis": {
          "path": "nartopo-tools/artifacts/ted_chiang_omphalos.md.ntsmr-2-5-claude-sonnet-4-6-low.synthesis.json",
          "sha256": "4ff23664cf6a4b39917d6b9b6afe5aa89281cf7194d5e56aff177e386d89ac7a"
        },
        "report": {
          "path": "nartopo-tools/artifacts/ted_chiang_omphalos.md.ntsmr-2-5-claude-sonnet-4-6-low.report.json",
          "sha256": "ddda1525aa9ecde52fed62044a9f9d129bb37a8b0b5246a1ae37ee1188f0b64f"
        },
        "source": {
          "path": "Ted Chiang/Omphalos.txt",
          "sha256": "499355f76b07c257efa0d964a69b205a3f96eb8a7953e66fb16b2d76b40a6fce",
          "digest_observed_at": "2026-09-09",
          "digest_at_analysis_run": null,
          "edition": null,
          "edition_status": "unresolved"
        },
        "pipeline_revision_at_run": null,
        "verification": {
          "source": "unverified",
          "human_review": "unreviewed",
          "bibliography": "unverified"
        },
        "issues": [],
        "todorov_status": "recovered-from-synthesis",
        "work_identity": {
          "title": "Omphalos",
          "author": "Ted Chiang",
          "year": 2019
        }
      },
      "ntsmr": {
        "version": "2.5",
        "primary_run_label": "NTSMR-2.5-claude-sonnet-4-6-low",
        "runs": {
          "NTSMR-2.3-gemini-3.1-pro-preview": {
            "pipeline_version": "2.3",
            "backend": "gemini",
            "model": "gemini-3.1-pro-preview",
            "scores": {
              "time_linearity": 0.35,
              "pacing_velocity": 0.85,
              "threat_scale": 0.9,
              "protagonist_fate": 0.8,
              "conflict_style": 0.9,
              "price_type": 1
            },
            "score_space": "site-v1"
          },
          "NTSMR-2.3-claude-sonnet-4-6-low": {
            "pipeline_version": "2.3",
            "backend": "claude",
            "model": "claude-sonnet-4-6",
            "scores": {
              "time_linearity": 0.25,
              "pacing_velocity": 0.85,
              "threat_scale": 0.7,
              "protagonist_fate": 0.35,
              "conflict_style": 0.8,
              "price_type": 0.95
            },
            "score_space": "site-v1",
            "reasoning_effort": "low"
          },
          "NTSMR-2.4-claude-sonnet-4-6-low": {
            "pipeline_version": "2.4",
            "backend": "claude",
            "model": "claude-sonnet-4-6",
            "scores": {
              "time_linearity": 0.2,
              "pacing_velocity": 0.7,
              "threat_scale": 0.55,
              "protagonist_fate": 0.35,
              "conflict_style": 0.85,
              "price_type": 0.85
            },
            "score_space": "site-v1",
            "reasoning_effort": "low"
          },
          "NTSMR-2.5-claude-sonnet-4-6-low": {
            "pipeline_version": "2.5",
            "backend": "claude",
            "model": "claude-sonnet-4-6",
            "scores": {
              "time_linearity": 0.12,
              "pacing_velocity": 0.78,
              "threat_scale": 0.45,
              "protagonist_fate": 0.48,
              "conflict_style": 0.88,
              "price_type": 0.85
            },
            "score_space": "site-v1",
            "reasoning_effort": "low"
          },
          "NTSMR-2.5-balanced-glm-5+deepseek-v3.2": {
            "pipeline_version": "2.5",
            "backend": "openrouter",
            "model": "balanced-routing",
            "scores": {
              "time_linearity": 0.1,
              "pacing_velocity": 0.8,
              "threat_scale": 0.3,
              "protagonist_fate": 0.6,
              "conflict_style": 0.85,
              "price_type": 0.85
            },
            "score_space": "site-v1",
            "score_only": true,
            "source_run_label": "NTSMR-2.5-claude-sonnet-4-6-low"
          }
        }
      },
      "todorov_stages": {
        "equilibrium": "Dorothea exists as a confident Christian scientist whose faith and professional identity are mutually reinforcing: dendrochronology confirms divine creation, and her work serves God's purpose. She is a respected lecturer and archaeologist, certain that the universe was made with humanity at its center.",
        "disruption": "The primordial abalone shells in the Atacama exhibit gift shop initiate a chain of events culminating in Dr. McCullough sharing Lawson's paper, which reveals that 58 Eridani orbits a stationary Earth-sized planet elsewhere in the universe — implying that another world, not Earth, is the privileged center of creation, and that humanity may be an afterthought or rehearsal rather than the reason God made the universe.",
        "recognition": "Dorothea fully confronts the disruption when McCullough presents Lawson's paper and she cannot refute it on scientific grounds. The theological catastrophe is compounded by learning that McCullough's son Martin died of influenza, and that the paper destroys his only consolation — that Martin's death had divine purpose — forcing Dorothea to reckon with the possibility that her own life's work has no divinely assigned meaning.",
        "repair": "Dorothea withdraws into philosophical reflection, working through the implications of Lawson's findings. She develops a reorienting argument: that human beings possess free will — acts of volition that, like creation itself, are first causes irreducible to physical law — and that the primordial humans' choice to seek self-improvement rather than mere survival demonstrates humanity's capacity to generate meaning independently of divine purpose.",
        "new_equilibrium": "Dorothea resolves to return to the Arizona dig, no longer certain that God assigned her purpose but choosing scientific inquiry as her own. She accepts that meaning need not be divinely granted — humans are capable of creating it for themselves. Her faith is not restored to its prior form but replaced by a secular humanism grounded in chosen purpose rather than cosmic privilege."
      },
      "characters": [
        {
          "name": "Dorothea Morrell",
          "slug": "dorothea-morrell",
          "aliases": [
            "Dr. Morrell"
          ],
          "role": "Narrator and archaeologist",
          "summary": "An archaeologist who discovers the theft of primordial relics, confronts the thief, and subsequently undergoes a profound crisis of faith upon learning of a new astronomical discovery."
        },
        {
          "name": "Mr. Dahl",
          "slug": "mr-dahl",
          "aliases": [],
          "role": "Gift shop salesman",
          "summary": "A salesman at the mummy exhibit gift shop who unwittingly sells stolen primordial abalone shells."
        },
        {
          "name": "Wilhelmina McCullough",
          "slug": "wilhelmina-mccullough",
          "aliases": [
            "Mina"
          ],
          "role": "Daughter of Dr. McCullough, relic thief",
          "summary": "A young woman who steals primordial relics from her father's museum to distribute them and bolster public faith against an upcoming scientific paper."
        },
        {
          "name": "Arthur Lawson",
          "slug": "arthur-lawson",
          "aliases": [],
          "role": "Astronomer",
          "summary": "The author of a forthcoming paper on the star 58 Eridani that suggests Earth is not at absolute rest, implying humanity is not God's central creation."
        },
        {
          "name": "Rosemary",
          "slug": "rosemary",
          "aliases": [],
          "role": "Dorothea's cousin",
          "summary": "The recipient of a letter from Dorothea detailing her crisis of faith and her retreat from the Arisona dig."
        },
        {
          "name": "Dr. Janssen",
          "slug": "dr-janssen",
          "aliases": [],
          "role": "Archaeologist",
          "summary": "An archaeologist who discovered spearpoints at the Arisona dig."
        }
      ],
      "frameworks_mapped": [
        "Protocol Fiction Mapping",
        "Actantial Model",
        "Todorov's Equilibrium",
        "The Freytag Pyramid",
        "Propp's Morphology",
        "Genette's Narrative",
        "The Monomyth",
        "Dan Harmon",
        "Save the Cat",
        "Kishōtenketsu",
        "The Three-Act Structure",
        "Lévi-Strauss's Binary Oppositions",
        "Cognitive Estrangement",
        "Bakhtin's Chronotope",
        "Aristotelian Poetics",
        "Jungian Archetypal Analysis",
        "Genette's Transtextuality"
      ],
      "score_reliability": {
        "state": "replicated-agree",
        "threshold": 0.2,
        "runs_total": 5,
        "versions_compared": [
          "2.5"
        ],
        "max_spread": 0.15,
        "contested": []
      }
    },
    {
      "slug": "lois_mcmaster_bujold_paladin_of_souls",
      "title": "Paladin of Souls",
      "author": "Lois McMaster Bujold",
      "year": 2003,
      "medium": "book",
      "genre_tags": [],
      "tropes": [],
      "quadrant_scores": {
        "time_linearity": 0.1,
        "pacing_velocity": 0.55,
        "threat_scale": 0.6,
        "protagonist_fate": 0.25,
        "conflict_style": 0.55,
        "price_type": 0.65
      },
      "provenance": {
        "analysis_run": "NTSMR-2.5-claude-sonnet-4-6-low",
        "analysis_body_sha256": "5dbe99d14afc8f0c478f8acb807ef41ded3ce87c120a7dc3fbf009d7202e336f",
        "synthesis": {
          "path": "nartopo-tools/artifacts/lois_mcmaster_bujold_paladin_of_souls.md.ntsmr-2-5-claude-sonnet-4-6-low.synthesis.json",
          "sha256": "66ac2669c47576e43280be6dfd4269bc7f035b4989bc43259d98213d492da87d"
        },
        "report": {
          "path": "nartopo-tools/artifacts/lois_mcmaster_bujold_paladin_of_souls.md.ntsmr-2-5-claude-sonnet-4-6-low.report.json",
          "sha256": "cd8d5bacebd5c99c74a6074329384a23b2eeb13fe16d0128ec6d197548fd262f"
        },
        "source": {
          "path": "Lois McMaster Bujold/Paladin of Souls.txt",
          "sha256": "fd8f00b0a084b1358f82c3f818134a3772944229768d24d8849adbf4538bc04f",
          "digest_observed_at": "2026-09-09",
          "digest_at_analysis_run": null,
          "edition": null,
          "edition_status": "unresolved"
        },
        "pipeline_revision_at_run": null,
        "verification": {
          "source": "unverified",
          "human_review": "unreviewed",
          "bibliography": "unverified"
        },
        "issues": [],
        "todorov_status": "recovered-from-synthesis",
        "work_identity": {
          "title": "Paladin of Souls",
          "author": "Lois McMaster Bujold",
          "year": 2003
        }
      },
      "ntsmr": {
        "version": "2.5",
        "primary_run_label": "NTSMR-2.5-claude-sonnet-4-6-low",
        "runs": {
          "NTSMR-2.4-claude-sonnet-4-6-low": {
            "pipeline_version": "2.4",
            "backend": "claude",
            "model": "claude-sonnet-4-6",
            "scores": {
              "time_linearity": 0.22,
              "pacing_velocity": 0.48,
              "threat_scale": 0.45,
              "protagonist_fate": 0.18,
              "conflict_style": 0.58,
              "price_type": 0.68
            },
            "score_space": "site-v1",
            "reasoning_effort": "low"
          },
          "NTSMR-2.5-claude-sonnet-4-6-low": {
            "pipeline_version": "2.5",
            "backend": "claude",
            "model": "claude-sonnet-4-6",
            "scores": {
              "time_linearity": 0.1,
              "pacing_velocity": 0.55,
              "threat_scale": 0.6,
              "protagonist_fate": 0.25,
              "conflict_style": 0.55,
              "price_type": 0.65
            },
            "score_space": "site-v1",
            "reasoning_effort": "low"
          },
          "NTSMR-2.5-minimax/minimax-m2.5": {
            "pipeline_version": "2.5",
            "backend": "openrouter",
            "model": "minimax/minimax-m2.5",
            "scores": {
              "time_linearity": 0.2,
              "pacing_velocity": 0.7,
              "threat_scale": 0.55,
              "protagonist_fate": 0.3,
              "conflict_style": 0.55,
              "price_type": 0.6
            },
            "score_space": "site-v1"
          },
          "NTSMR-2.5-qwen/qwen3.5-plus-02-15": {
            "pipeline_version": "2.5",
            "backend": "openrouter",
            "model": "qwen/qwen3.5-plus-02-15",
            "scores": {
              "time_linearity": 0.2,
              "pacing_velocity": 0.65,
              "threat_scale": 0.55,
              "protagonist_fate": 0.25,
              "conflict_style": 0.65,
              "price_type": 0.7
            },
            "score_space": "site-v1"
          },
          "NTSMR-2.5-qwen/qwen3.5-397b-a17b": {
            "pipeline_version": "2.5",
            "backend": "openrouter",
            "model": "qwen/qwen3.5-397b-a17b",
            "scores": {
              "time_linearity": 0.15,
              "pacing_velocity": 0.7,
              "threat_scale": 0.6,
              "protagonist_fate": 0.3,
              "conflict_style": 0.65,
              "price_type": 0.6
            },
            "score_space": "site-v1"
          },
          "NTSMR-2.5-z-ai/glm-4.7": {
            "pipeline_version": "2.5",
            "backend": "openrouter",
            "model": "z-ai/glm-4.7",
            "scores": {
              "time_linearity": 0.1,
              "pacing_velocity": 0.65,
              "threat_scale": 0.75,
              "protagonist_fate": 0.2,
              "conflict_style": 0.55,
              "price_type": 0.45
            },
            "score_space": "site-v1"
          },
          "NTSMR-2.5-moonshotai/kimi-k2.5": {
            "pipeline_version": "2.5",
            "backend": "openrouter",
            "model": "moonshotai/kimi-k2.5",
            "scores": {
              "time_linearity": 0.15,
              "pacing_velocity": 0.65,
              "threat_scale": 0.65,
              "protagonist_fate": 0.2,
              "conflict_style": 0.7,
              "price_type": 0.75
            },
            "score_space": "site-v1"
          },
          "NTSMR-2.5-z-ai/glm-5": {
            "pipeline_version": "2.5",
            "backend": "openrouter",
            "model": "z-ai/glm-5",
            "scores": {
              "time_linearity": 0.18,
              "pacing_velocity": 0.62,
              "threat_scale": 0.72,
              "protagonist_fate": 0.32,
              "conflict_style": 0.58,
              "price_type": 0.68
            },
            "score_space": "site-v1"
          },
          "NTSMR-2.5-balanced-glm-5+deepseek-v3.2": {
            "pipeline_version": "2.5",
            "backend": "openrouter",
            "model": "balanced-routing",
            "scores": {
              "time_linearity": 0.1,
              "pacing_velocity": 0.65,
              "threat_scale": 0.65,
              "protagonist_fate": 0.3,
              "conflict_style": 0.65,
              "price_type": 0.7
            },
            "score_space": "site-v1",
            "score_only": true,
            "source_run_label": "NTSMR-2.5-claude-sonnet-4-6-low"
          }
        }
      },
      "todorov_stages": {
        "equilibrium": "Ista lives under enforced passivity at Valenda after the deaths of husband, father, son, and mother, constrained by well-meaning guardians like dy Ferrej who hold the castle keys and treat her autonomy as a danger to be managed. She is officially no longer mad but exists in a hollow stasis, stripped of all defining roles.",
        "disruption": "Ista's pilgrimage carries her into the supernatural knot at Porifors: Cattilara's demon is draining Illvin's life-force to sustain the already-dead Arhys, a fatal wound concealed from all. Simultaneously, Princess Joen's demonological campaign — demon-ridden soldiers, the capture attempt, the siege — forces Ista into a crisis she cannot evade. The bear attack that demon-rides Foix and the prophetic dreams of a pale wounded man signal that the gods have already conscripted her.",
        "recognition": "Ista's supernatural inner vision activates at Porifors, allowing her to perceive the soul-fire conduit between Cattilara, Illvin, and Arhys. She secretly observes Cattilara draining Illvin, and through nocturnal investigation and the intermittently lucid Illvin's testimony — confirming that a knife pierced Arhys's heart — she assembles the full theological horror: Arhys is a dead man supernaturally sustained, Illvin is dying to maintain him, and Cattilara's demon ties them all to damnation.",
        "repair": "Ista takes command of the crisis, confronting Cattilara and Arhys with the truth, manipulating the soul-conduit to rebalance the drain from Illvin to Cattilara, and ultimately surrendering herself to Joen as bait. Guided by the Bastard's voice, she extracts Joen's ancient demon and then systematically plucks all eleven of Joen's remaining leashed demons from their hosts, destroying Joen's demonological empire at great personal cost and resolving the supernatural trap that has doomed Porifors.",
        "new_equilibrium": "Ista emerges with a publicly claimed vocation as the Bastard's demon-hunter, a traveling court of her own, and an intimate relationship with Illvin. She serves as living oracle at the mass burials, returns a stolen soul-fragment to a castle guardsman, and negotiates with her brother dy Baocia from a position of sovereign purpose rather than confinement. The closing scene — Illvin bringing miraculous apricots, Liss withdrawing discreetly, a first kiss — marks a new life chosen rather than imposed."
      },
      "characters": [
        {
          "name": "Ista",
          "slug": "ista",
          "aliases": [
            "Royina Ista",
            "the Dowager Royina",
            "the Royina",
            "Sera",
            "Royina",
            "dowager royina",
            "Ista dy Chalion",
            "Mouth of Hell"
          ],
          "role": "protagonist",
          "summary": "God-touched dowager royina who absorbs demons and serves as vessel for the Bastard god, now embracing her calling as demon-hunter."
        },
        {
          "name": "Dy Ferrej",
          "slug": "dy-ferrej",
          "aliases": [
            "Ser dy Ferrej"
          ],
          "role": "supporting",
          "summary": "Elderly castle warder at Valenda, loyal servant who holds the keys and attempts to protect Ista from herself."
        },
        {
          "name": "Dy Baocia",
          "slug": "dy-baocia",
          "aliases": [
            "Provincar of Baocia"
          ],
          "role": "supporting",
          "summary": "Ista's brother who arrives with troops to support the relief of Porifors."
        },
        {
          "name": "Caria",
          "slug": "caria",
          "aliases": [
            "the Widow Caria",
            "the widow of Palma"
          ],
          "role": "minor",
          "summary": "Vulgar, cheerful widow traveling on pilgrimage who flirts and jokes with fellow travelers."
        },
        {
          "name": "Learned dy Cabon",
          "slug": "learned-dy-cabon",
          "aliases": [
            "Chivar dy Cabon",
            "the fat divine",
            "Dy Cabon",
            "Learned"
          ],
          "role": "supporting",
          "summary": "Divine of the Daughter's Order; fat, good-natured priest serving as Ista's spiritual conductor; has had prophetic dreams of Ista."
        },
        {
          "name": "Foix dy Gura",
          "slug": "foix-dy-gura",
          "aliases": [
            "Foix"
          ],
          "role": "supporting",
          "summary": "Ista's guard who hosts a bear demon; gains spiritual sight through Ista's kiss; rides with Arhys on the night raid and is captured."
        },
        {
          "name": "Liss",
          "slug": "liss",
          "aliases": [
            "Sera Liss"
          ],
          "role": "supporting",
          "summary": "Young courier and maid who serves Ista; assists during the siege and tends to Cattilara."
        },
        {
          "name": "Lady dy Hueltar",
          "slug": "lady-dy-hueltar",
          "aliases": [],
          "role": "supporting",
          "summary": "Elderly companion who wishes to manage Ista's life as she did Ista's mother's."
        },
        {
          "name": "Pejar",
          "slug": "pejar",
          "aliases": [
            "Dedicat Pejar"
          ],
          "role": "minor",
          "summary": "Member of the Daughter's Order guard who is injured by the demon-possessed bear."
        },
        {
          "name": "Arhys dy Lutez",
          "slug": "arhys-dy-lutez",
          "aliases": [
            "Arhys",
            "March of Porifors",
            "the march",
            "Lord Arhys"
          ],
          "role": "supporting",
          "summary": "Lord of Porifors, kept alive by demonic sorcery; leads the night raid and kills seven sorcerers before falling; sundered from the gods."
        },
        {
          "name": "Cattilara",
          "slug": "cattilara",
          "aliases": [
            "the marchess",
            "Catti",
            "Lady Cattilara",
            "Lady Catti"
          ],
          "role": "opponent/helper",
          "summary": "Arhys's young wife, demon-possessed; her life force sustains Arhys through the magical link; demon is removed by Ista."
        },
        {
          "name": "Illvin dy Arbanos",
          "slug": "illvin-dy-arbanos",
          "aliases": [
            "Lord dy Arbanos",
            "Ser dy Arbanos",
            "Illvin",
            "Lord Illvin"
          ],
          "role": "romantic partner",
          "summary": "Arhys's half-brother whose life force was drained to sustain Arhys; recovered and now fights alongside Ista; suggests surrender strategy."
        },
        {
          "name": "captive woman from Rauma",
          "slug": "captive-woman-from-rauma",
          "aliases": [],
          "role": "minor",
          "summary": "An older woman of fine birth captured in the raid on Rauma; provides Ista information about the Jokonan column."
        },
        {
          "name": "Goram",
          "slug": "goram",
          "aliases": [
            "Captain dy Hixar"
          ],
          "role": "supporting",
          "summary": "Devoted servant of Lord Illvin with demon scars on his soul, possibly a former cavalry officer enslaved and possessed."
        },
        {
          "name": "Princess Joen",
          "slug": "princess-joen",
          "aliases": [
            "Dowager Princess Joen",
            "Joen",
            "Mother of Jokona"
          ],
          "role": "antagonist",
          "summary": "Jokonan sorceress who commands demons and attempts to possess Ista, but is defeated when Ista absorbs her demon."
        },
        {
          "name": "The Father of Winter",
          "slug": "the-father-of-winter",
          "aliases": [],
          "role": "sender",
          "summary": "God who appears to Ista on the stairs, giving her a thread to guide Arhys's soul home."
        },
        {
          "name": "The Bastard",
          "slug": "the-bastard",
          "aliases": [],
          "role": "helper",
          "summary": "God who fills Ista and enables her to consume demons; speaks to her with ironic humor."
        }
      ],
      "frameworks_mapped": [
        "Protocol Fiction Mapping",
        "Actantial Model",
        "Todorov's Equilibrium",
        "The Freytag Pyramid",
        "Propp's Morphology",
        "Genette's Narrative",
        "The Monomyth",
        "Dan Harmon",
        "Save the Cat",
        "Kishōtenketsu",
        "The Three-Act Structure",
        "Lévi-Strauss's Binary Oppositions",
        "Cognitive Estrangement",
        "Bakhtin's Chronotope",
        "Aristotelian Poetics",
        "Jungian Archetypal Analysis",
        "Genette's Transtextuality"
      ],
      "score_reliability": {
        "state": "contested",
        "threshold": 0.2,
        "runs_total": 9,
        "versions_compared": [
          "2.5"
        ],
        "max_spread": 0.3,
        "contested": [
          {
            "axis": "price_type",
            "version": "2.5",
            "spread": 0.3,
            "low": {
              "label": "NTSMR-2.5-z-ai/glm-4.7",
              "model": "z-ai/glm-4.7",
              "effort": "?",
              "value": 0.45
            },
            "high": {
              "label": "NTSMR-2.5-moonshotai/kimi-k2.5",
              "model": "moonshotai/kimi-k2.5",
              "effort": "?",
              "value": 0.75
            }
          },
          {
            "axis": "threat_scale",
            "version": "2.5",
            "spread": 0.2,
            "low": {
              "label": "NTSMR-2.5-minimax/minimax-m2.5",
              "model": "minimax/minimax-m2.5",
              "effort": "?",
              "value": 0.55
            },
            "high": {
              "label": "NTSMR-2.5-z-ai/glm-4.7",
              "model": "z-ai/glm-4.7",
              "effort": "?",
              "value": 0.75
            }
          }
        ]
      }
    },
    {
      "slug": "william_gibson_pattern_recognition",
      "title": "Pattern Recognition",
      "author": "William Gibson",
      "year": 2003,
      "medium": "book",
      "genre_tags": [
        "science fiction",
        "cyberpunk"
      ],
      "tropes": [],
      "quadrant_scores": {
        "time_linearity": 0.25,
        "pacing_velocity": 0.62,
        "threat_scale": 0.35,
        "protagonist_fate": 0.38,
        "conflict_style": 0.65,
        "price_type": 0.75
      },
      "baseline_quadrant_scores": {
        "time_linearity": 0.2,
        "pacing_velocity": 0.7,
        "threat_scale": 0.6,
        "protagonist_fate": 0.4,
        "conflict_style": 0.7,
        "price_type": 0.8
      },
      "provenance": {
        "analysis_run": "NTSMR-2.5-claude-sonnet-4-6-low",
        "analysis_body_sha256": "376a0c6a3a9721cc314ec39c88811d6c867f2aae1d06480ed01280baae97d6f2",
        "synthesis": {
          "path": "nartopo-tools/artifacts/william_gibson_pattern_recognition.md.ntsmr-2-5-claude-sonnet-4-6-low.synthesis.json",
          "sha256": "7d7f48111a3ff7a272e41754778a0db9684c491f18c60af0373ab4c840f5afe5"
        },
        "report": {
          "path": "nartopo-tools/artifacts/william_gibson_pattern_recognition.md.ntsmr-2-5-claude-sonnet-4-6-low.report.json",
          "sha256": "9b81503f8d8bc290bfd6f378b98f01d0d0e92ab1d9f9ab365f139f4873d6fd54"
        },
        "source": {
          "path": "William Gibson/Pattern Recognition (2003).txt",
          "sha256": "006e14f9d3b84d7c57c715065e6bfb9d7bad721f6cdd866687c6fa38fea27c71",
          "digest_observed_at": "2026-09-09",
          "digest_at_analysis_run": null,
          "edition": null,
          "edition_status": "unresolved"
        },
        "pipeline_revision_at_run": null,
        "verification": {
          "source": "unverified",
          "human_review": "unreviewed",
          "bibliography": "unverified"
        },
        "issues": [],
        "todorov_status": "recovered-from-synthesis",
        "work_identity": {
          "title": "Pattern Recognition",
          "author": "William Gibson",
          "year": 2003
        }
      },
      "ntsmr": {
        "version": "2.5",
        "primary_run_label": "NTSMR-2.5-claude-sonnet-4-6-low",
        "runs": {
          "NTSMR-2.3-gemini-3.1-pro-preview": {
            "pipeline_version": "2.3",
            "backend": "gemini",
            "model": "gemini-3.1-pro-preview",
            "scores": {
              "time_linearity": 0.15,
              "pacing_velocity": 0.85,
              "threat_scale": 0.85,
              "protagonist_fate": 0.65,
              "conflict_style": 0.75,
              "price_type": 0.9
            },
            "score_space": "site-v1"
          },
          "NTSMR-2.3-gpt-5.4-xhigh": {
            "pipeline_version": "2.3",
            "backend": "codex-exec",
            "model": "gpt-5.4",
            "scores": {
              "time_linearity": 0.14,
              "pacing_velocity": 0.74,
              "threat_scale": 0.81,
              "protagonist_fate": 0.57,
              "conflict_style": 0.79,
              "price_type": 0.86
            },
            "score_space": "site-v1",
            "reasoning_effort": "xhigh"
          },
          "NTSMR-2.3-gpt-5.4-high": {
            "pipeline_version": "2.3",
            "backend": "codex-exec",
            "model": "gpt-5.4",
            "scores": {
              "time_linearity": 0.12,
              "pacing_velocity": 0.68,
              "threat_scale": 0.82,
              "protagonist_fate": 0.38,
              "conflict_style": 0.58,
              "price_type": 0.76
            },
            "score_space": "site-v1",
            "reasoning_effort": "high"
          },
          "NTSMR-2.3-gpt-5.4-medium": {
            "pipeline_version": "2.3",
            "backend": "codex-exec",
            "model": "gpt-5.4",
            "scores": {
              "time_linearity": 0.12,
              "pacing_velocity": 0.72,
              "threat_scale": 0.82,
              "protagonist_fate": 0.58,
              "conflict_style": 0.68,
              "price_type": 0.79
            },
            "score_space": "site-v1",
            "reasoning_effort": "medium"
          },
          "NTSMR-2.3-gpt-5.3-codex-xhigh": {
            "pipeline_version": "2.3",
            "backend": "codex-exec",
            "model": "gpt-5.3-codex",
            "scores": {
              "time_linearity": 0.12,
              "pacing_velocity": 0.68,
              "threat_scale": 0.82,
              "protagonist_fate": 0.62,
              "conflict_style": 0.66,
              "price_type": 0.79
            },
            "score_space": "site-v1",
            "reasoning_effort": "xhigh"
          },
          "NTSMR-2.3-gpt-5.3-codex-high": {
            "pipeline_version": "2.3",
            "backend": "codex-exec",
            "model": "gpt-5.3-codex",
            "scores": {
              "time_linearity": 0.17,
              "pacing_velocity": 0.69,
              "threat_scale": 0.84,
              "protagonist_fate": 0.61,
              "conflict_style": 0.74,
              "price_type": 0.81
            },
            "score_space": "site-v1",
            "reasoning_effort": "high"
          },
          "NTSMR-2.3-gpt-5.3-codex-medium": {
            "pipeline_version": "2.3",
            "backend": "codex-exec",
            "model": "gpt-5.3-codex",
            "scores": {
              "time_linearity": 0.14,
              "pacing_velocity": 0.71,
              "threat_scale": 0.86,
              "protagonist_fate": 0.43,
              "conflict_style": 0.64,
              "price_type": 0.78
            },
            "score_space": "site-v1",
            "reasoning_effort": "medium"
          },
          "NTSMR-2.3-claude-sonnet-4-6-low": {
            "pipeline_version": "2.3",
            "backend": "claude",
            "model": "claude-sonnet-4-6",
            "scores": {
              "time_linearity": 0.2,
              "pacing_velocity": 0.75,
              "threat_scale": 0.7,
              "protagonist_fate": 0.35,
              "conflict_style": 0.72,
              "price_type": 0.78
            },
            "score_space": "site-v1",
            "reasoning_effort": "low"
          },
          "NTSMR-2.3-claude-opus-4-6-high": {
            "pipeline_version": "2.3",
            "backend": "claude",
            "model": "claude-opus-4-6",
            "scores": {
              "time_linearity": 0.15,
              "pacing_velocity": 0.65,
              "threat_scale": 0.72,
              "protagonist_fate": 0.35,
              "conflict_style": 0.7,
              "price_type": 0.75
            },
            "score_space": "site-v1",
            "reasoning_effort": "high"
          },
          "NTSMR-2.3-claude-sonnet-4-6-medium": {
            "pipeline_version": "2.3",
            "backend": "claude",
            "model": "claude-sonnet-4-6",
            "scores": {
              "time_linearity": 0.2,
              "pacing_velocity": 0.75,
              "threat_scale": 0.7,
              "protagonist_fate": 0.35,
              "conflict_style": 0.65,
              "price_type": 0.7
            },
            "score_space": "site-v1",
            "reasoning_effort": "medium"
          },
          "NTSMR-2.3-claude-sonnet-4-6-high": {
            "pipeline_version": "2.3",
            "backend": "claude",
            "model": "claude-sonnet-4-6",
            "scores": {
              "time_linearity": 0.2,
              "pacing_velocity": 0.72,
              "threat_scale": 0.65,
              "protagonist_fate": 0.35,
              "conflict_style": 0.68,
              "price_type": 0.7
            },
            "score_space": "site-v1",
            "reasoning_effort": "high"
          },
          "NTSMR-2.3-claude-opus-4-6-low": {
            "pipeline_version": "2.3",
            "backend": "claude",
            "model": "claude-opus-4-6",
            "scores": {
              "time_linearity": 0.15,
              "pacing_velocity": 0.72,
              "threat_scale": 0.75,
              "protagonist_fate": 0.35,
              "conflict_style": 0.7,
              "price_type": 0.78
            },
            "score_space": "site-v1",
            "reasoning_effort": "low"
          },
          "NTSMR-2.3-claude-opus-4-6-medium": {
            "pipeline_version": "2.3",
            "backend": "claude",
            "model": "claude-opus-4-6",
            "scores": {
              "time_linearity": 0.15,
              "pacing_velocity": 0.65,
              "threat_scale": 0.72,
              "protagonist_fate": 0.35,
              "conflict_style": 0.7,
              "price_type": 0.75
            },
            "score_space": "site-v1",
            "reasoning_effort": "medium"
          },
          "NTSMR-2.4-claude-sonnet-4-6-low": {
            "pipeline_version": "2.4",
            "backend": "claude",
            "model": "claude-sonnet-4-6",
            "scores": {
              "time_linearity": 0.22,
              "pacing_velocity": 0.45,
              "threat_scale": 0.25,
              "protagonist_fate": 0.32,
              "conflict_style": 0.58,
              "price_type": 0.65
            },
            "score_space": "site-v1",
            "reasoning_effort": "low"
          },
          "NTSMR-2.5-claude-sonnet-4-6-low": {
            "pipeline_version": "2.5",
            "backend": "claude",
            "model": "claude-sonnet-4-6",
            "scores": {
              "time_linearity": 0.25,
              "pacing_velocity": 0.62,
              "threat_scale": 0.35,
              "protagonist_fate": 0.38,
              "conflict_style": 0.65,
              "price_type": 0.75
            },
            "score_space": "site-v1",
            "reasoning_effort": "low"
          },
          "NTSMR-2.5-balanced-glm-5+deepseek-v3.2": {
            "pipeline_version": "2.5",
            "backend": "openrouter",
            "model": "balanced-routing",
            "scores": {
              "time_linearity": 0.2,
              "pacing_velocity": 0.7,
              "threat_scale": 0.5,
              "protagonist_fate": 0.45,
              "conflict_style": 0.7,
              "price_type": 0.75
            },
            "score_space": "site-v1",
            "score_only": true,
            "source_run_label": "NTSMR-2.5-claude-sonnet-4-6-low"
          }
        }
      },
      "todorov_stages": {
        "equilibrium": "Cayce Pollard exists as a freelance cool hunter with a pathological sensitivity to corporate branding, living a peripatetic professional life and participating in the footage community as a devoted online member, with her father Win's disappearance since 9/11 an unresolved but contained grief.",
        "disruption": "Bigend proposes that Cayce use her footage community connections to trace the anonymous footage to its source, drawing her into a surveillance-entangled investigation that exposes her to hostile operatives, apartment intrusions, and Russian intelligence interest triggered by her old F:F:F post about a Russian filmmaker.",
        "recognition": "Cayce pieces together the conspiracy's threads—Baranov, Dorotea, Russian oil connections via armaz.ru, and her old footage community post—understanding that Volkov's network identified her through Win's old intelligence dossier and has been running a two-track surveillance operation against her.",
        "repair": "Cayce navigates the investigation through Tokyo and Moscow, negotiates the Curta prototype acquisition as leverage, sends her letter to the footage maker, and survives Dorotea's Rohypnol drugging through a rescue coordinated through Stella, ultimately reaching the remote cabin north of Moscow and accepting Win's likely death.",
        "new_equilibrium": "Cayce emerges with Win legally declared dead, her logo-sensitivity resolved, and the footage community transformed—Nora's segment nearing completion, Judy hired at Blue Ant Tokyo, and Cayce herself in Paris with Parkaboy, her trauma dissolved through the ordeal."
      },
      "characters": [
        {
          "name": "Cayce Pollard",
          "slug": "cayce-pollard",
          "aliases": [
            "Cayce",
            "CayceP",
            "Casey"
          ],
          "role": "Protagonist and coolhunter",
          "summary": "The main character investigating the footage, navigating London, Tokyo fallout, and eventually traveling to Moscow. She grapples with the unresolved disappearance of her father on 9/11."
        },
        {
          "name": "Barman",
          "slug": "barman",
          "aliases": [],
          "role": "Informant/Footagehead",
          "summary": "A brutally cropped bartender with thick black glasses who recognizes Cayce from an ICA panel and alerts her to a brand new 48-second segment of the footage."
        },
        {
          "name": "Ngemi",
          "slug": "ngemi",
          "aliases": [],
          "role": "Collector",
          "summary": "A large African collector of rare items who assists Cayce in verifying and purchasing the Curta calculator to trade with Baranov."
        },
        {
          "name": "Voytek",
          "slug": "voytek",
          "aliases": [
            "Blond boy"
          ],
          "role": "Artist and acquaintance",
          "summary": "A blond Polish man who explains early computer history to Cayce, seeks funding for a ZX81 project, and discusses steganography with her."
        },
        {
          "name": "Antique Dealer",
          "slug": "antique-dealer",
          "aliases": [],
          "role": "Vendor",
          "summary": "An old, buzzard-like man selling macabre Victorian surgical instruments at the Portobello market."
        },
        {
          "name": "Damien",
          "slug": "damien",
          "aliases": [],
          "role": "Cayce's friend and filmmaker",
          "summary": "Cayce's friend and documentary filmmaker currently roughing it in a Russian swamp digging up WWII artifacts; he lets Cayce stay in his London flat."
        },
        {
          "name": "Parkaboy",
          "slug": "parkaboy",
          "aliases": [
            "Peter Gilbert",
            "Thornton Vaseltarp",
            "Gilbert"
          ],
          "role": "Online footagehead and collaborator",
          "summary": "A Chicago-based friend of Cayce from the footage forum who creates the 'Keiko' persona to extract information about steganography and watermarking from a Japanese group."
        },
        {
          "name": "Hubertus Bigend",
          "slug": "hubertus-bigend",
          "aliases": [
            "Bernard",
            "Hubertus",
            "Bigend"
          ],
          "role": "Founder of Blue Ant",
          "summary": "A wealthy, lateral-thinking advertising executive who sees the footage as the ultimate guerrilla marketing and proposes a partnership to hire Cayce to track down the maker."
        },
        {
          "name": "Takayuchi",
          "slug": "takayuchi",
          "aliases": [
            "Taki"
          ],
          "role": "Informant",
          "summary": "A Japanese otaku connected to the 'Mystic' coven who claims to know the hidden watermark on segment #78 and is being manipulated by Parkaboy's fake persona."
        },
        {
          "name": "Magda",
          "slug": "magda",
          "aliases": [],
          "role": "Design student and marketer",
          "summary": "A design student and hat seller who is deeply troubled by her side job executing viral stealth marketing campaigns in bars."
        },
        {
          "name": "Darryl",
          "slug": "darryl",
          "aliases": [
            "Musashi"
          ],
          "role": "Collaborator/Translator",
          "summary": "A California-based footagehead fluent in Japanese who assists Parkaboy in translating and creating the Keiko persona to infiltrate Japanese message boards."
        },
        {
          "name": "Hobbs",
          "slug": "hobbs",
          "aliases": [
            "Baranov"
          ],
          "role": "Former intelligence/SIGINT, Information broker",
          "summary": "An impatient, heavily nicotine-stained gray man who drives a filthy car and reacts furiously when Cayce is not the buyer he was expecting for the Curta calculators."
        },
        {
          "name": "Bernard Stonestreet",
          "slug": "bernard-stonestreet",
          "aliases": [
            "Bernard"
          ],
          "role": "Blue Ant executive",
          "summary": "An executive at Blue Ant who oversees Cayce's logo evaluation meeting and seems unaware of Dorotea's underlying sabotage."
        },
        {
          "name": "Boone Chu",
          "slug": "boone-chu",
          "aliases": [
            "Boone",
            "Bunchoo"
          ],
          "role": "Fellow investigator",
          "summary": "An American computer and security expert working for Bigend who rescues Cayce in Tokyo and helps her analyze the mysterious map, but conceals information from Bigend."
        },
        {
          "name": "Pamela Mainwaring",
          "slug": "pamela-mainwaring",
          "aliases": [
            "Pamela"
          ],
          "role": "Blue Ant employee",
          "summary": "A Blue Ant logistics staff member who has Cayce sign documents and arranges her flights."
        },
        {
          "name": "Bunny",
          "slug": "bunny",
          "aliases": [],
          "role": "Self-defense instructor",
          "summary": "A former medic and martial arts instructor who taught Cayce how to defend herself and 'make mayhem' in emergencies."
        },
        {
          "name": "Ivy",
          "slug": "ivy",
          "aliases": [],
          "role": "Online community founder",
          "summary": "The founder of the F:F:F footagehead forum, who has long wanted a searchable database for the site."
        },
        {
          "name": "Dorotea",
          "slug": "dorotea",
          "aliases": [],
          "role": "Double agent / Blue Ant employee",
          "summary": "A corporate operative who admits to being hired by a Russian tax lawyer in Cyprus to scare Cayce away from Blue Ant, but now accepts a fast-track position from Bigend."
        },
        {
          "name": "Cynthia",
          "slug": "cynthia",
          "aliases": [],
          "role": "Cayce's mother",
          "summary": "Cayce's mother, who lives in Maui and believes she is receiving EVP (Electronic Voice Phenomenon) messages from her missing husband."
        },
        {
          "name": "Win",
          "slug": "win",
          "aliases": [],
          "role": "Cayce's father",
          "summary": "Cayce's father who vanished in Manhattan on the morning of September 11. He is deeply missed by Cayce."
        },
        {
          "name": "Judy Tsuzuki",
          "slug": "judy-tsuzuki",
          "aliases": [
            "Keiko"
          ],
          "role": "Persona model / Barmaid",
          "summary": "The woman whose image is being used for the 'Keiko' persona. She is angry about the deception and wants to contact Taki genuinely."
        },
        {
          "name": "Franco",
          "slug": "franco",
          "aliases": [],
          "role": "Operative/Thug",
          "summary": "A dark-haired man with a taped nose whom Cayce encountered in Tokyo. He is being sent to Geneva by Bigend to recuperate."
        },
        {
          "name": "Lucian Greenaway",
          "slug": "lucian-greenaway",
          "aliases": [
            "Mr. Greenaway",
            "Greenaway"
          ],
          "role": "Antique dealer",
          "summary": "A Bond Street dealer of clocks and rare calculators who sells the Curta prototype to Cayce and Ngemi."
        },
        {
          "name": "Sylvie Jeppson",
          "slug": "sylvie-jeppson",
          "aliases": [
            "Sylvie"
          ],
          "role": "Blue Ant employee",
          "summary": "A Blue Ant contact in London whom Cayce calls to arrange Parkaboy's urgent flight to Moscow."
        },
        {
          "name": "Stella Volkova",
          "slug": "stella-volkova",
          "aliases": [
            "Stella"
          ],
          "role": "Contact and twin of the maker",
          "summary": "The white-faced Russian woman who brings Cayce to the secret editing facility to meet her twin sister, Nora."
        },
        {
          "name": "Nora",
          "slug": "nora",
          "aliases": [],
          "role": "The Maker",
          "summary": "Stella's twin sister who suffered a severe brain injury from a Claymore mine and now meticulously creates the mysterious footage from found video."
        },
        {
          "name": "Wiktor Marchwinska-Wyrwal",
          "slug": "wiktor-marchwinska-wyrwal",
          "aliases": [
            "Wiktor"
          ],
          "role": "Polish security chief",
          "summary": "A lethally amiable Polish security operative working to bridge the gap between Volkov's traditional and web-based security branches."
        },
        {
          "name": "Sergei Magomedov",
          "slug": "sergei-magomedov",
          "aliases": [
            "Sergei"
          ],
          "role": "Web-based security operative",
          "summary": "A young operative educated at Berkeley who helped set up Nora's production facility and the watermarking operation with Sigil."
        },
        {
          "name": "Andrei Volkov",
          "slug": "andrei-volkov",
          "aliases": [
            "Volkov"
          ],
          "role": "Russian oligarch",
          "summary": "The powerful, invisible uncle of Stella and Nora who provides their extensive security and funded Nora's editing facility."
        }
      ],
      "frameworks_mapped": [
        "Protocol Fiction Mapping",
        "Actantial Model",
        "Todorov's Equilibrium",
        "The Freytag Pyramid",
        "Propp's Morphology",
        "Genette's Narrative",
        "The Monomyth",
        "Dan Harmon",
        "Save the Cat",
        "Kishōtenketsu",
        "The Three-Act Structure"
      ],
      "score_reliability": {
        "state": "replicated-agree",
        "threshold": 0.2,
        "runs_total": 16,
        "versions_compared": [
          "2.5"
        ],
        "max_spread": 0.15,
        "contested": []
      }
    },
    {
      "slug": "china_mieville_perdido_street_station",
      "title": "Perdido Street Station",
      "author": "China Miéville",
      "year": 2000,
      "medium": "book",
      "genre_tags": [
        "science fiction",
        "new weird"
      ],
      "tropes": [],
      "quadrant_scores": {
        "time_linearity": 0.28,
        "pacing_velocity": 0.48,
        "threat_scale": 0.72,
        "protagonist_fate": 0.62,
        "conflict_style": 0.42,
        "price_type": 0.52
      },
      "baseline_quadrant_scores": {
        "time_linearity": 0.1,
        "pacing_velocity": 0.2,
        "threat_scale": 0.9,
        "protagonist_fate": 0.8,
        "conflict_style": 0.1,
        "price_type": 0.9
      },
      "provenance": {
        "analysis_run": "NTSMR-2.5-claude-sonnet-4-6-low",
        "analysis_body_sha256": "842d19ad5013a87a92dc85a69a912a03af0bc5a34c41a73da5b15368aee19025",
        "synthesis": {
          "path": "nartopo-tools/artifacts/china_mieville_perdido_street_station.md.ntsmr-2-5-claude-sonnet-4-6-low.synthesis.json",
          "sha256": "8e99c1951a209771fcaabcacdc2d1d2edc329682e524d9e742a335ff6a2eae13"
        },
        "report": {
          "path": "nartopo-tools/artifacts/china_mieville_perdido_street_station.md.ntsmr-2-5-claude-sonnet-4-6-low.report.json",
          "sha256": "eb44b2c79df0305cd9a4c61a7110697b71e9905030f9edfe2f300e514401a88c"
        },
        "source": {
          "path": "China Mieville/Perdido Street Station (2000).txt",
          "sha256": "4ce79109d188c8c9ceb4d42f92ca89bdc7abff9b3720c5c3e3f6401d0845c928",
          "digest_observed_at": "2026-09-09",
          "digest_at_analysis_run": null,
          "edition": null,
          "edition_status": "unresolved"
        },
        "pipeline_revision_at_run": null,
        "verification": {
          "source": "unverified",
          "human_review": "unreviewed",
          "bibliography": "unverified"
        },
        "issues": [],
        "todorov_status": "recovered-from-synthesis",
        "work_identity": {
          "title": "Perdido Street Station",
          "author": "China Miéville",
          "year": 2000
        }
      },
      "ntsmr": {
        "version": "2.5",
        "primary_run_label": "NTSMR-2.5-claude-sonnet-4-6-low",
        "runs": {
          "NTSMR-2.3-gemini-3.1-pro-preview": {
            "pipeline_version": "2.3",
            "backend": "gemini",
            "model": "gemini-3.1-pro-preview",
            "scores": {
              "time_linearity": 0.3,
              "pacing_velocity": 0.4,
              "threat_scale": 0.85,
              "protagonist_fate": 0.85,
              "conflict_style": 0.35,
              "price_type": 0.75
            },
            "score_space": "site-v1"
          },
          "NTSMR-2.3-claude-sonnet-4-6-low": {
            "pipeline_version": "2.3",
            "backend": "claude",
            "model": "claude-sonnet-4-6",
            "scores": {
              "time_linearity": 0.35,
              "pacing_velocity": 0.55,
              "threat_scale": 0.72,
              "protagonist_fate": 0.65,
              "conflict_style": 0.42,
              "price_type": 0.7
            },
            "score_space": "site-v1",
            "reasoning_effort": "low"
          },
          "NTSMR-2.4-claude-sonnet-4-6-low": {
            "pipeline_version": "2.4",
            "backend": "claude",
            "model": "claude-sonnet-4-6",
            "scores": {
              "time_linearity": 0.28,
              "pacing_velocity": 0.32,
              "threat_scale": 0.72,
              "protagonist_fate": 0.68,
              "conflict_style": 0.35,
              "price_type": 0.45
            },
            "score_space": "site-v1",
            "reasoning_effort": "low"
          },
          "NTSMR-2.5-claude-sonnet-4-6-low": {
            "pipeline_version": "2.5",
            "backend": "claude",
            "model": "claude-sonnet-4-6",
            "scores": {
              "time_linearity": 0.28,
              "pacing_velocity": 0.48,
              "threat_scale": 0.72,
              "protagonist_fate": 0.62,
              "conflict_style": 0.42,
              "price_type": 0.52
            },
            "score_space": "site-v1",
            "reasoning_effort": "low"
          },
          "NTSMR-2.5-minimax/minimax-m2.5": {
            "pipeline_version": "2.5",
            "backend": "openrouter",
            "model": "minimax/minimax-m2.5",
            "scores": {
              "time_linearity": 0.2,
              "pacing_velocity": 0.65,
              "threat_scale": 0.7,
              "protagonist_fate": 0.5,
              "conflict_style": 0.55,
              "price_type": 0.65
            },
            "score_space": "site-v1"
          },
          "NTSMR-2.5-z-ai/glm-4.7": {
            "pipeline_version": "2.5",
            "backend": "openrouter",
            "model": "z-ai/glm-4.7",
            "scores": {
              "time_linearity": 0.1,
              "pacing_velocity": 0.55,
              "threat_scale": 0.75,
              "protagonist_fate": 0.6,
              "conflict_style": 0.5,
              "price_type": 0.4
            },
            "score_space": "site-v1"
          },
          "NTSMR-2.5-qwen/qwen3.5-397b-a17b": {
            "pipeline_version": "2.5",
            "backend": "openrouter",
            "model": "qwen/qwen3.5-397b-a17b",
            "scores": {
              "time_linearity": 0.25,
              "pacing_velocity": 0.65,
              "threat_scale": 0.75,
              "protagonist_fate": 0.55,
              "conflict_style": 0.65,
              "price_type": 0.6
            },
            "score_space": "site-v1"
          },
          "NTSMR-2.5-deepseek/deepseek-v3.2": {
            "pipeline_version": "2.5",
            "backend": "openrouter",
            "model": "deepseek/deepseek-v3.2",
            "scores": {
              "time_linearity": 0.15,
              "pacing_velocity": 0.65,
              "threat_scale": 0.75,
              "protagonist_fate": 0.55,
              "conflict_style": 0.6,
              "price_type": 0.45
            },
            "score_space": "site-v1"
          },
          "NTSMR-2.5-qwen/qwen3.5-plus-02-15": {
            "pipeline_version": "2.5",
            "backend": "openrouter",
            "model": "qwen/qwen3.5-plus-02-15",
            "scores": {
              "time_linearity": 0.2,
              "pacing_velocity": 0.7,
              "threat_scale": 0.75,
              "protagonist_fate": 0.6,
              "conflict_style": 0.65,
              "price_type": 0.55
            },
            "score_space": "site-v1"
          },
          "NTSMR-2.5-z-ai/glm-5": {
            "pipeline_version": "2.5",
            "backend": "openrouter",
            "model": "z-ai/glm-5",
            "scores": {
              "time_linearity": 0.3,
              "pacing_velocity": 0.6,
              "threat_scale": 0.8,
              "protagonist_fate": 0.65,
              "conflict_style": 0.65,
              "price_type": 0.5
            },
            "score_space": "site-v1"
          },
          "NTSMR-2.5-balanced-glm-5+deepseek-v3.2": {
            "pipeline_version": "2.5",
            "backend": "openrouter",
            "model": "balanced-routing",
            "scores": {
              "time_linearity": 0.28,
              "pacing_velocity": 0.52,
              "threat_scale": 0.82,
              "protagonist_fate": 0.72,
              "conflict_style": 0.48,
              "price_type": 0.42
            },
            "score_space": "site-v1",
            "score_only": true,
            "source_run_label": "NTSMR-2.5-claude-sonnet-4-6-low"
          }
        }
      },
      "todorov_stages": {
        "equilibrium": "Isaac pursues heterodox crisis-theory research in Brock Marsh, Yagharek commissions the flight project, Lin works secretly for Motley, and the city hums with its habitual tensions — the vodyanoi strike, the dreamshit trade, the militia's iron order. Each character inhabits a precarious but functioning routine.",
        "disruption": "The mysterious caterpillar — fed dreamshit and growing impossibly — hatches as a slake-moth, escapes Isaac's warehouse, and devours Lublamai's mind. Simultaneously four captive moths are freed from the government facility, loosing five predators on a city that has no knowledge of or defence against them.",
        "recognition": "Isaac confronts the catatonic Lublamai, forces Yagharek into a pact of mutual obligation, and through Barbile and then Vermishank learns what the creatures are: slake-moths, their biology, their link to dreamshit, and the near-impossibility of killing them. The full scope of the catastrophe — including David's betrayal and the militia's closing in — becomes clear.",
        "repair": "Isaac, Derkhan, Yagharek, and their allies build a crisis engine capable of projecting an overwhelming counterfeit consciousness-signal to lure the moths to destruction. With the Weaver's intervention, the Construct Council's networked intelligence, and a sacrificial host, three moths gorge themselves to death on the beacon above Perdido Street Station; the fourth is cornered in Motley's building and dies in fire and acid.",
        "new_equilibrium": "The moths are destroyed but the costs are irreversible: Lin is half-minded and infantile, Isaac is broken by grief, Lublamai's mind is gone, Andrej is dead, and the group lives as fugitives hiding across New Crobuzon's rooftops. Yagharek, confronted by Kar'uchai's justice, strips his quills and walks into the city as a man — the garuda identity abandoned. The city endures, scarred and unchanged in its brutality, while the survivors are permanently altered."
      },
      "characters": [
        {
          "name": "Lin",
          "slug": "lin",
          "aliases": [
            "Ms. Lin"
          ],
          "role": "Khepri artist, Isaac's lover",
          "summary": "An outcast khepri artist who rejects the communal art of her hive to produce independent work. She accepts a terrifying commission from Mr. Motley and keeps it secret from her lover, Isaac, and her bohemian friends."
        },
        {
          "name": "Isaac Dan der Grimnebulin",
          "slug": "isaac-dan-der-grimnebulin",
          "aliases": [
            "Isaac",
            "Grimnebulin",
            "captain",
            "'Zaac",
            "der Grimnebulin",
            "prof",
            "Zaac",
            "Grimneb'lin"
          ],
          "role": "Scientist and leader of the moth-hunting crew",
          "summary": "Investigating the mechanics of flight; he visits a freak show and the Spatters ghetto, collects numerous flying creatures for observation in his warehouse, and eventually releases most of them, keeping only a mysterious, sickly caterpillar."
        },
        {
          "name": "Yagharek",
          "slug": "yagharek",
          "aliases": [
            "Too Too Abstract Individual Yagharek Not To Be Respected",
            "Yag",
            "bird-man"
          ],
          "role": "Garuda companion",
          "summary": "A garuda from the Cymek desert who was stripped of his wings as punishment for choice-theft. He travels to New Crobuzon to hire Isaac to restore his flight, living as a nocturnal outcast on the city's rooftops."
        },
        {
          "name": "Mr. Motley",
          "slug": "mr-motley",
          "aliases": [
            "Motley"
          ],
          "role": "Crime boss / Patron",
          "summary": "A powerful, physically chaotic figure hidden behind mirror-fish who commissions Lin for a sculpture, displaying a deep philosophical obsession with the physiological transition zones of mongrel bodies."
        },
        {
          "name": "Derkhan Blueday",
          "slug": "derkhan-blueday",
          "aliases": [
            "Derkhan",
            "Dee",
            "Blueday"
          ],
          "role": "Art critic for the Beacon",
          "summary": "A companion of Isaac who awakens in the sewers with one ear missing after being abducted by the Weaver. She distrusts mercenaries but actively helps Isaac and the Construct Council trap the moth."
        },
        {
          "name": "Cornfed Daihat",
          "slug": "cornfed-daihat",
          "aliases": [
            "Cornfed"
          ],
          "role": "Artist and friend of Lin",
          "summary": "A flamboyant artist in the Salacus Fields scene who mistakenly assumes Lin is having a scandalous affair and enthusiastically agrees to provide her with an alibi."
        },
        {
          "name": "Teafortwo",
          "slug": "teafortwo",
          "aliases": [],
          "role": "Wyrman errand runner",
          "summary": "A wyrman who runs errands for Isaac and allows Isaac to study his specialized flight muscles in exchange for extra money."
        },
        {
          "name": "Ged",
          "slug": "ged",
          "aliases": [],
          "role": "Acquaintance of Isaac",
          "summary": "A knowledgeable individual who discusses the egalitarian culture, library, and justice system of the Cymek garuda with Isaac at a pub."
        },
        {
          "name": "Lemuel Pigeon",
          "slug": "lemuel-pigeon",
          "aliases": [
            "Lemuel",
            "Pigeon",
            "Lem"
          ],
          "role": "Underworld intermediary",
          "summary": "A pragmatic criminal associate who tries to convince Isaac that Lin is dead and that Motley is using her as bait. He scouts for weapons and considers hiring grave-robbing mercenaries."
        },
        {
          "name": "Lublamai",
          "slug": "lublamai",
          "aliases": [
            "Lub"
          ],
          "role": "Isaac's labmate, victim",
          "summary": "Visits Isaac's warehouse and enthusiastically examines the various eggs, grubs, and caterpillars in the nursery."
        },
        {
          "name": "False Garuda",
          "slug": "false-garuda",
          "aliases": [
            "Remade"
          ],
          "role": "Freak show exhibit",
          "summary": "A human thief punishment-Remade with rotting buzzard wings grafted to his back and a beak affixed to his face, forced to pretend to be a garuda."
        },
        {
          "name": "The Clerk",
          "slug": "the-clerk",
          "aliases": [],
          "role": "Parliament employee",
          "summary": "Secretly steals a rare caterpillar from a shipment box, forges the accompanying invoice to cover his tracks, and sends the remaining grubs into Parliament."
        },
        {
          "name": "David Serachin",
          "slug": "david-serachin",
          "aliases": [
            "David"
          ],
          "role": "Isaac's labmate / Informant",
          "summary": "Isaac's friend and labmate who walks through the red-light district to secretly inform the secret police about Isaac's crisis engine and the escaped slake-moths, ultimately betraying Isaac's crew for payment."
        },
        {
          "name": "Lucky Gazid",
          "slug": "lucky-gazid",
          "aliases": [
            "Gazid",
            "Lucky"
          ],
          "role": "Drug supplier",
          "summary": "A junkie and associate who sells Isaac dreamshit for his experiment, secretly stealing some back for himself."
        },
        {
          "name": "Vermishank",
          "slug": "vermishank",
          "aliases": [],
          "role": "Head of University Science Faculty / Project Administrator",
          "summary": "A corrupt administrator who oversaw the government's slake-moth project. He reveals the truth about dreamshit and the moths' biology before being mutilated by Yagharek and executed by Lemuel."
        },
        {
          "name": "Benjamin Flex",
          "slug": "benjamin-flex",
          "aliases": [
            "Ben",
            "Mr. Flex"
          ],
          "role": "Editor of Runagate Rampant",
          "summary": "Captured and interrogated by Mayor Rudgutter about the moths. He communicates with Derkhan through a communicatrix, crying out in fear of his impending torture."
        },
        {
          "name": "Umma Balsum",
          "slug": "umma-balsum",
          "aliases": [],
          "role": "Communicatrix",
          "summary": "A thaumaturge hired by Derkhan to psychically channel Benjamin Flex, negotiating strict fees for her dangerous services."
        },
        {
          "name": "Slake-moths",
          "slug": "slake-moths",
          "aliases": [
            "The five",
            "winged things",
            "the slake-moth",
            "mad-wingers",
            "the creature",
            "the winged thing",
            "the hatchling thing"
          ],
          "role": "Multidimensional predators",
          "summary": "Terrifying beasts that guard a clutch of eggs encased in dreamshit. One falls for Isaac's trap but survives the construct's attacks, feeding on Shadrach before a second moth arrives."
        },
        {
          "name": "Mayor Rudgutter",
          "slug": "mayor-rudgutter",
          "aliases": [
            "Rudgutter",
            "Mayor",
            "Mr. Mayor"
          ],
          "role": "Mayor of New Crobuzon",
          "summary": "The calculating mayor who orchestrates the city's defense, forging an alliance with the crime lord Motley and deploying handlingers to hunt the slake-moths."
        },
        {
          "name": "Stem-Fulcher",
          "slug": "stem-fulcher",
          "aliases": [],
          "role": "Associate of Rudgutter",
          "summary": "An advisor who helps coordinate the city's defenses and scientists, noting the fraying morale and sudden rise in violent crime caused by the nightmares."
        },
        {
          "name": "Magesta Barbile",
          "slug": "magesta-barbile",
          "aliases": [
            "Doctor Barbile",
            "Barbile"
          ],
          "role": "Clerk / Contact",
          "summary": "The clerk who originally stole the slake-moths. She is terrified, reveals Vermishank's involvement, and is horrifically killed by a slake-moth that finds her at a window."
        },
        {
          "name": "The Weaver",
          "slug": "the-weaver",
          "aliases": [
            "dancing mad god",
            "spider-presence",
            "vast spider presence"
          ],
          "role": "Multidimensional entity",
          "summary": "A colossal, spider-like being with human hands that speaks in singsong riddles, perceives reality as an intricate web, and intervenes during the militia raid on Isaac's warehouse."
        },
        {
          "name": "Montjohn Rescue",
          "slug": "montjohn-rescue",
          "aliases": [
            "Rescue",
            "Rescue-handlinger"
          ],
          "role": "Mayor's vizier and Handlinger",
          "summary": "A handlinger parasite occupying the host body of the original Montjohn Rescue. He leads a squad of blindfolded handlinger pairs to hunt the slake-moths in the sky but is killed when a moth decapitates his host."
        },
        {
          "name": "Construct Council",
          "slug": "construct-council",
          "aliases": [
            "the avatar",
            "the dead man",
            "Avatar",
            "Council"
          ],
          "role": "Artificial intelligence / Construct deity",
          "summary": "A cold, calculating artificial intelligence hidden in the Griss Twist dump that commands a bloodlife congregation to lay cable, seeking to connect to and control the crisis engine for its own aggrandizement."
        },
        {
          "name": "Shadrach",
          "slug": "shadrach",
          "aliases": [],
          "role": "Mercenary adventurer",
          "summary": "A large, ruthless, heavily armoured human adventurer hired by Lemuel. He leads the infiltration but is brutally pinned to a wall and fed upon by a slake-moth after a misfired attack."
        },
        {
          "name": "Tansell",
          "slug": "tansell",
          "aliases": [],
          "role": "Mercenary adventurer and thaumaturge",
          "summary": "A tall, slight human adventurer who casts a veil-hex to conceal the party near the Glasshouse."
        },
        {
          "name": "Pengefinchess",
          "slug": "pengefinchess",
          "aliases": [
            "Penge"
          ],
          "role": "Mercenary adventurer",
          "summary": "She packs her equipment, ignores Isaac and Derkhan's pleas for further assistance, and leaves the group."
        },
        {
          "name": "Monkey-constructs",
          "slug": "monkey-constructs",
          "aliases": [
            "chimp-things",
            "constructs"
          ],
          "role": "Automated attack units",
          "summary": "Simian-shaped machines built from trash by the Construct Council, armed with fire and acid. They fiercely attack the slake-moths to protect Isaac but are violently destroyed in the lair."
        },
        {
          "name": "Andrej",
          "slug": "andrej",
          "aliases": [],
          "role": "Bait",
          "summary": "A frail, dying old man who is knocked unconscious, carried across the city, and hooked up to the crisis engine as a psychic conduit, writhing in terror and pain."
        },
        {
          "name": "Kar'uchai",
          "slug": "karuchai",
          "aliases": [
            "Kar'uchai Sukhtu-h'k Vaijhin-khi-khi"
          ],
          "role": "Garuda hunter",
          "summary": "She travels a thousand miles from Cymek to find Isaac and demand that he refuse to restore Yagharek's flight, revealing Yagharek's crime of choice-theft."
        },
        {
          "name": "Jack Half-a-Prayer",
          "slug": "jack-half-a-prayer",
          "aliases": [
            "Half-a-Prayer"
          ],
          "role": "Fighter",
          "summary": "He fights alongside Isaac's crew on the rooftops, maiming militia officers before slipping into the dark."
        }
      ],
      "frameworks_mapped": [
        "Protocol Fiction Mapping",
        "Actantial Model",
        "Todorov's Equilibrium",
        "The Freytag Pyramid",
        "Propp's Morphology",
        "Genette's Narrative",
        "The Monomyth",
        "Dan Harmon",
        "Save the Cat",
        "Kishōtenketsu",
        "The Three-Act Structure"
      ],
      "score_reliability": {
        "state": "contested",
        "threshold": 0.2,
        "runs_total": 11,
        "versions_compared": [
          "2.5"
        ],
        "max_spread": 0.25,
        "contested": [
          {
            "axis": "price_type",
            "version": "2.5",
            "spread": 0.25,
            "low": {
              "label": "NTSMR-2.5-z-ai/glm-4.7",
              "model": "z-ai/glm-4.7",
              "effort": "?",
              "value": 0.4
            },
            "high": {
              "label": "NTSMR-2.5-minimax/minimax-m2.5",
              "model": "minimax/minimax-m2.5",
              "effort": "?",
              "value": 0.65
            }
          },
          {
            "axis": "conflict_style",
            "version": "2.5",
            "spread": 0.23,
            "low": {
              "label": "NTSMR-2.5-claude-sonnet-4-6-low",
              "model": "claude-sonnet-4-6",
              "effort": "low",
              "value": 0.42
            },
            "high": {
              "label": "NTSMR-2.5-z-ai/glm-5",
              "model": "z-ai/glm-5",
              "effort": "?",
              "value": 0.65
            }
          },
          {
            "axis": "pacing_velocity",
            "version": "2.5",
            "spread": 0.22,
            "low": {
              "label": "NTSMR-2.5-claude-sonnet-4-6-low",
              "model": "claude-sonnet-4-6",
              "effort": "low",
              "value": 0.48
            },
            "high": {
              "label": "NTSMR-2.5-qwen/qwen3.5-plus-02-15",
              "model": "qwen/qwen3.5-plus-02-15",
              "effort": "?",
              "value": 0.7
            }
          },
          {
            "axis": "protagonist_fate",
            "version": "2.5",
            "spread": 0.22,
            "low": {
              "label": "NTSMR-2.5-minimax/minimax-m2.5",
              "model": "minimax/minimax-m2.5",
              "effort": "?",
              "value": 0.5
            },
            "high": {
              "label": "NTSMR-2.5-balanced-glm-5+deepseek-v3.2",
              "model": "balanced-routing",
              "effort": "?",
              "value": 0.72
            }
          },
          {
            "axis": "time_linearity",
            "version": "2.5",
            "spread": 0.2,
            "low": {
              "label": "NTSMR-2.5-z-ai/glm-4.7",
              "model": "z-ai/glm-4.7",
              "effort": "?",
              "value": 0.1
            },
            "high": {
              "label": "NTSMR-2.5-z-ai/glm-5",
              "model": "z-ai/glm-5",
              "effort": "?",
              "value": 0.3
            }
          }
        ]
      }
    },
    {
      "slug": "ada_palmer_perhaps_the_stars",
      "title": "Perhaps the Stars",
      "author": "Ada Palmer",
      "year": 2021,
      "medium": "book",
      "genre_tags": [
        "science fiction",
        "political sf",
        "philosophical sf"
      ],
      "tropes": [
        "World War",
        "Utopian Deconstruction",
        "God Emperor"
      ],
      "quadrant_scores": {
        "time_linearity": 0.45,
        "pacing_velocity": 0.55,
        "threat_scale": 0.9,
        "protagonist_fate": 0.45,
        "conflict_style": 0.55,
        "price_type": 0.6
      },
      "baseline_quadrant_scores": {
        "time_linearity": 0.8,
        "pacing_velocity": 0.5,
        "threat_scale": 0.95,
        "protagonist_fate": 0.4,
        "conflict_style": 0.2,
        "price_type": 0.65
      },
      "provenance": {
        "analysis_run": "NTSMR-2.5-claude-sonnet-4-6-low",
        "analysis_body_sha256": "238599ad2eedd5b5bf16dfc0b73024c9a63711bed901112abb81a9fa84bbdc63",
        "synthesis": {
          "path": "nartopo-tools/artifacts/ada_palmer_perhaps_the_stars.md.ntsmr-2-5-claude-sonnet-4-6-low.synthesis.json",
          "sha256": "dc64f40404fc5c29850a8487f3e012d792804c954e5bd217c9ccc13529b7af02"
        },
        "report": {
          "path": "nartopo-tools/artifacts/ada_palmer_perhaps_the_stars.md.ntsmr-2-5-claude-sonnet-4-6-low.report.json",
          "sha256": "43d88c626a322b668dfbd30be30cbc8ddc828d2bc65480f42bcd1ca932d295de"
        },
        "source": {
          "path": "Ada Palmer/Perhaps the Stars.txt",
          "sha256": "73e68d8174419e8b0deec09a80834547e2bb253412e9ec30ae1b87d1af2676a6",
          "digest_observed_at": "2026-09-09",
          "digest_at_analysis_run": null,
          "edition": null,
          "edition_status": "unresolved"
        },
        "pipeline_revision_at_run": null,
        "verification": {
          "source": "unverified",
          "human_review": "unreviewed",
          "bibliography": "unverified"
        },
        "issues": [],
        "todorov_status": "recovered-from-synthesis",
        "work_identity": {
          "title": "Perhaps the Stars",
          "author": "Ada Palmer",
          "year": 2021
        }
      },
      "ntsmr": {
        "version": "2.5",
        "primary_run_label": "NTSMR-2.5-claude-sonnet-4-6-low",
        "runs": {
          "NTSMR-2.3-gemini-3.1-pro-preview": {
            "pipeline_version": "2.3",
            "backend": "gemini",
            "model": "gemini-3.1-pro-preview",
            "scores": {
              "time_linearity": 0.85,
              "pacing_velocity": 0.75,
              "threat_scale": 0.95,
              "protagonist_fate": 0.95,
              "conflict_style": 0.7,
              "price_type": 0.9
            },
            "score_space": "site-v1"
          },
          "NTSMR-2.3-claude-sonnet-4-6-low": {
            "pipeline_version": "2.3",
            "backend": "claude",
            "model": "claude-sonnet-4-6",
            "scores": {
              "time_linearity": 0.72,
              "pacing_velocity": 0.58,
              "threat_scale": 0.88,
              "protagonist_fate": 0.78,
              "conflict_style": 0.52,
              "price_type": 0.82
            },
            "score_space": "site-v1",
            "reasoning_effort": "low"
          },
          "NTSMR-2.4-claude-sonnet-4-6-low": {
            "pipeline_version": "2.4",
            "backend": "claude",
            "model": "claude-sonnet-4-6",
            "scores": {
              "time_linearity": 0.45,
              "pacing_velocity": 0.35,
              "threat_scale": 0.9,
              "protagonist_fate": 0.8,
              "conflict_style": 0.45,
              "price_type": 0.55
            },
            "score_space": "site-v1",
            "reasoning_effort": "low"
          },
          "NTSMR-2.5-claude-sonnet-4-6-low": {
            "pipeline_version": "2.5",
            "backend": "claude",
            "model": "claude-sonnet-4-6",
            "scores": {
              "time_linearity": 0.45,
              "pacing_velocity": 0.55,
              "threat_scale": 0.9,
              "protagonist_fate": 0.45,
              "conflict_style": 0.55,
              "price_type": 0.6
            },
            "score_space": "site-v1",
            "reasoning_effort": "low"
          },
          "NTSMR-2.5-balanced-glm-5+deepseek-v3.2": {
            "pipeline_version": "2.5",
            "backend": "openrouter",
            "model": "balanced-routing",
            "scores": {
              "time_linearity": 0.3,
              "pacing_velocity": 0.6,
              "threat_scale": 0.88,
              "protagonist_fate": 0.35,
              "conflict_style": 0.62,
              "price_type": 0.42
            },
            "score_space": "site-v1",
            "score_only": true,
            "source_run_label": "NTSMR-2.5-claude-sonnet-4-6-low"
          }
        }
      },
      "todorov_stages": {
        "equilibrium": "A fragile global order maintained by Hive membership and the car-transit network holds society together; the world has avoided open war through distributed governance and universal transit, with the Prince as a controversial but stabilizing figure.",
        "disruption": "Hiveguard forces attack the Saneer-Weeksbooth bash'house to seize transit control while cars vanish mid-flight, triggering open world civil war; the Second Great Renunciation follows as over half a billion people drop their Hive affiliations.",
        "recognition": "9A, serving as Anonymous war chronicler, registers the full scope of the disruption—tracking Operation Baskerville, the leaked MASON's Oath, Cook's assassination designed to frame Utopia, and the revelation of Gordian's secret war against Utopia's space infrastructure—understanding that multiple overlapping crises are operating simultaneously.",
        "repair": "A cascade of repair efforts unfolds: 9A builds the Pass-It-On laser communication network; Ganymede's city senate negotiates peace in Romanova; 9A orders the arrest of Su-Hyeon after escaping four months of imprisonment; Jehovah takes the full MASON Oath with new words permanently protecting Utopia; Cato restores the transit system at peacefall; and Kenzie and the Minor Senators sentence the guilty to Ten-Hour Servicer duty to rebuild what was destroyed.",
        "new_equilibrium": "A transformed world order emerges: Jehovah rules as new Caesar with Martin as Junior Emperor; the Alliance equates wartime and peacetime violence under new law; Gordian's psychotaxonomic science is opened to the world; Utopia is granted permanent imperial protection as humanity's scouts; the Servicer underclass dynamic dissolves as billions adopt the sentence; and the novel closes with humanity oriented toward the stars."
      },
      "characters": [
        {
          "name": "Mycroft Canner",
          "slug": "mycroft-canner",
          "aliases": [
            "Mycroft",
            "tired guide",
            "mad historian",
            "Mike",
            "Anonymous",
            "Pass-It-On",
            "MC",
            "Beggar King",
            "I",
            "[Anonymous]",
            "Promagister",
            "Acting Caesar",
            "Ninth Anonymous",
            "acting Emperor"
          ],
          "role": "Narrative protagonist and conversational pivot",
          "summary": "The narrator who realizes with horror that he keeps returning to life because his loved ones—first Saladin, then his successor 'No One'—are sacrificing their lives and flesh to resurrect him via Bridger's lingering power."
        },
        {
          "name": "Cato Weeksbooth",
          "slug": "cato-weeksbooth",
          "aliases": [
            "Cato-Helen",
            "Cato",
            "Helen",
            "Doctor Weeksbooth"
          ],
          "role": "Prisoner and H.E.L.E.N. subject",
          "summary": "A trembling prisoner brought before MASON who is revealed to be a mind-enhanced test subject for the H.E.L.E.N. project and who offers to repair Achilles' cybernetic arm."
        },
        {
          "name": "Sniper",
          "slug": "sniper",
          "aliases": [],
          "role": "Captive / Resistance Leader",
          "summary": "A highly perceptive and defiant captive held in an interrogation room who converses deeply with 9A, admits to killing Achilles, champions space exploration, and agrees to lend Hiveguard forces to aid Utopia."
        },
        {
          "name": "Felix Faust",
          "slug": "felix-faust",
          "aliases": [
            "Headmaster",
            "Onkel",
            "Uncle"
          ],
          "role": "Headmaster of the Brillist Institute",
          "summary": "A ruthless pragmatist orchestrating a global war to forcibly redirect human resources away from space exploration and entirely toward achieving immortality, claiming to conquer the world for Jehovah."
        },
        {
          "name": "Tully Mardi",
          "slug": "tully-mardi",
          "aliases": [],
          "role": "Architect of the limited war",
          "summary": "A Mardi bash' member who maniacally celebrates hitting a 'low' target of 1.8 million casualties, having successfully restricted the devastation of the World War."
        },
        {
          "name": "Marvel",
          "slug": "marvel",
          "aliases": [],
          "role": "Crewmate",
          "summary": "A Malagasy ba'sib and Whitelaw aboard the Shearwater who helps Mycroft."
        },
        {
          "name": "Maxime",
          "slug": "maxime",
          "aliases": [],
          "role": "Crewmate",
          "summary": "A Malagasy ba'sib who assists Mycroft aboard the Shearwater."
        },
        {
          "name": "Sugi Yoshida",
          "slug": "sugi-yoshida",
          "aliases": [
            "Redwood"
          ],
          "role": "Local tyrant / Camp commander",
          "summary": "A youthful grandbash'child of the Mitsubishi Director who cruelly manages the prisoners at Fort San Lucian using kenneling, sound, and the threat of the 'Roaster'."
        },
        {
          "name": "Kohaku",
          "slug": "kohaku",
          "aliases": [],
          "role": "Guide / Apparition",
          "summary": "A figure who speaks to Mycroft about the fractal war and Apollo's plans, warning him of the distant aims ahead in Alexandria."
        },
        {
          "name": "Halley",
          "slug": "halley",
          "aliases": [
            "Ráðsviðr"
          ],
          "role": "Rescuer",
          "summary": "A U-beast or intelligence occupying a modular feline body with fins that rescues Mycroft from drowning."
        },
        {
          "name": "Huxley",
          "slug": "huxley",
          "aliases": [
            "Huxley Mojave"
          ],
          "role": "Utopian guardian and First Contact Constellation member",
          "summary": "A Utopian who hides in Mycroft's room to avoid the Triumvirate, shares insights on the MASONIC Oath, and fiercely debates Faust over the dual necessity of space exploration and conquering death."
        },
        {
          "name": "Jehovah",
          "slug": "jehovah",
          "aliases": [
            "T.M.",
            "Master",
            "Fili",
            "Son and Heir",
            "Seigneur",
            "Prime Mover",
            "He",
            "Addressee",
            "Guest",
            "Remaker",
            "Ἄναξ",
            "Jehovah MASON",
            "Donatien",
            "Prince",
            "Prince D'Arouet",
            "Micromegas",
            "Alien",
            "The Stranger",
            "The Prisoner",
            "The Farthest Comer",
            "Son Altesse",
            "Porphyrogene",
            "J.E.D.D. Mason",
            "Anax",
            "The Prince",
            "Visitor"
          ],
          "role": "God-like entity and focal point of factional conflicts",
          "summary": "A vast, passionless but highly convicted entity who hates death, violently rejects the legal thesis of war, tasks Julia with a masterhunt, and leads the world in adopting the Ten-Hour Servicer self-sentence."
        },
        {
          "name": "Chagatai",
          "slug": "chagatai",
          "aliases": [],
          "role": "Blacklaw Guard",
          "summary": "A sovereign child of Hobbestown who fakes cowardice to draw in Thisbe's squad, then ruthlessly guns down all seven invaders."
        },
        {
          "name": "Achilles",
          "slug": "achilles",
          "aliases": [
            "War Marshal",
            "Ancile Breaker"
          ],
          "role": "Orbital Commander",
          "summary": "A superhumanly fast warrior who physically attacks Cato, revealing Cato's H.E.L.E.N. tattoo, and who himself possesses advanced cybernetic implants that malfunction and need repair."
        },
        {
          "name": "Censor Jung",
          "slug": "censor-jung",
          "aliases": [
            "Censor"
          ],
          "role": "War room participant",
          "summary": "An official in MASON's war room who questions the details of incoming enemy offers and demands to know what Skymaw is."
        },
        {
          "name": "Huang Enlai",
          "slug": "huang-enlai",
          "aliases": [],
          "role": "Director of Fuxing",
          "summary": "The leader of the Fuxing Mitsubishi faction who offers aid to MASON in defending the Almagest."
        },
        {
          "name": "Prefect Semaphoros",
          "slug": "prefect-semaphoros",
          "aliases": [
            "Prefect",
            "Cinna"
          ],
          "role": "Imperial officer",
          "summary": "An untiring guardian tasked by MASON to adopt Martin and their family to save them from posterity's curse."
        },
        {
          "name": "Kosala",
          "slug": "kosala",
          "aliases": [
            "Aunt Kosala",
            "World Mother",
            "Bryar"
          ],
          "role": "Fleet commander for the Cousins/Alliance",
          "summary": "A fiercely determined leader who tries to negotiate peace by disarming Utopia, but ultimately orders the destruction of the Almagest when MASON refuses to yield."
        },
        {
          "name": "Toshi",
          "slug": "toshi",
          "aliases": [
            "Toshi onee-san",
            "Acting Censor",
            "Toshi Mitsubishi"
          ],
          "role": "Technician / Analyst",
          "summary": "A technician who collaborates with Su-Hyeon and Mycroft to scan and interpret a real-time, high-resolution feed of troop movements and flags across Romanova."
        },
        {
          "name": "Cornel MASON",
          "slug": "cornel-mason",
          "aliases": [
            "Martin",
            "Mycroft MASON II",
            "Junior Emperor",
            "Martin Semaphoros",
            "MASON",
            "Caesar",
            "Pater",
            "Mountain Emperor",
            "Shan Huang",
            "Death",
            "Emperor",
            "IMPERIUM"
          ],
          "role": "Supreme defender of the Masonic IMPERIUM",
          "summary": "Commanding the war room in Alexandria, he issues concise orders, expresses paternal fear for Heloïse, and questions Cato and Mycroft about the sudden activation of the 'Alexander' technology."
        },
        {
          "name": "Heloïse",
          "slug": "helose",
          "aliases": [],
          "role": "Coordinator/Communicator",
          "summary": "She coordinates with UNGAR to secure the Port-Gentil elevator and contacts her Aunt Kosala regarding missile interception, while remaining utterly devoted to her 'Seigneur'."
        },
        {
          "name": "Su-Hyeon",
          "slug": "su-hyeon",
          "aliases": [
            "Jung Su-Hyeon",
            "Censor",
            "Jung Su-Hyeon Ancelet Kosala",
            "former Censor Jung",
            "young Censor"
          ],
          "role": "Former Censor and current volunteer coordinator",
          "summary": "The young Censor who takes charge of the office, orders the arrest of traitors, organizes the crisis response, and comforts the narrator by giving them their purple Deputy Censor's jacket."
        },
        {
          "name": "The Nemo",
          "slug": "the-nemo",
          "aliases": [],
          "role": "Submarine Commander",
          "summary": "Speaks coldly for the Dreadnautilus, threatening captors to release their prisoners."
        },
        {
          "name": "Carlyle Foster-Kraye",
          "slug": "carlyle-foster-kraye",
          "aliases": [
            "ex-Cousin",
            "Carlyle",
            "Special Informant"
          ],
          "role": "Mycroft's companion and tactical ally",
          "summary": "A changed, healed sensayer who blackmails Julia Doria-Pamphili to force the public sharing of evidence regarding the Creators, effectively saving the world through their renewed strength."
        },
        {
          "name": "Bo Chowdhury",
          "slug": "bo-chowdhury",
          "aliases": [
            "Acting Commissioner General",
            "Deputy Commissioner General",
            "Deputy",
            "Whitelaw"
          ],
          "role": "Acting Commissioner General",
          "summary": "A pragmatic official who listens to the successor's theory about Gordian's master plan and calmly demands proof before taking action."
        },
        {
          "name": "Desi O'Callaghan",
          "slug": "desi-ocallaghan",
          "aliases": [
            "Assistant Commissioner",
            "Deputy O'Callaghan"
          ],
          "role": "High-ranking police officer",
          "summary": "A physically weak but highly commanding officer leaning on a cane, who takes charge of Romanova and aggressively keeps Julia in check."
        },
        {
          "name": "Julia Doria-Pamphili",
          "slug": "julia-doria-pamphili",
          "aliases": [
            "votre sainteté",
            "Doria-Pamphili",
            "Pontifex Maxima",
            "Julia"
          ],
          "role": "Conclave leader and assigned tracker",
          "summary": "A selfish leader who is blackmailed by Carlyle and serves as the 'owner' and captor of Sniper, treating the imprisoned athlete like a doll."
        },
        {
          "name": "Kenzie Walkiewicz",
          "slug": "kenzie-walkiewicz",
          "aliases": [
            "Special Communications Officer",
            "Interim Minor Senator Kenzie Walkiewicz"
          ],
          "role": "Child inventor",
          "summary": "A child whose science fair laser system is used by the Triumvirate to establish mainland communication; they insist on its neutral use."
        },
        {
          "name": "Xiaoliu Guildbreaker",
          "slug": "xiaoliu-guildbreaker",
          "aliases": [
            "Archptraitor",
            "Familiaris"
          ],
          "role": "Traitorous Official",
          "summary": "An official who betrayed MASON and is punished by being cursed with eternal infamy, his name to echo alongside Ephialtes and Clytemnestra."
        },
        {
          "name": "Dembélé",
          "slug": "dembl",
          "aliases": [
            "Secretary-General of the United Nations",
            "Standard-Bearer of the Great African Reservation",
            "U.N. Secretary-General Dembélé"
          ],
          "role": "U.N. Secretary-General",
          "summary": "A severe guest speaker who strongly rebukes the Alliance for its imperial aggression, specifically citing the devastating Amritsar occupation."
        },
        {
          "name": "Speaker Jin Im-Jin",
          "slug": "speaker-jin-im-jin",
          "aliases": [
            "Jin Im-Jin",
            "Speaker"
          ],
          "role": "Remaker and Triumvir",
          "summary": "An observant and frail leader who uses Brillist numerical tests to immediately identify and point out co-conspirators in the Censor's office."
        },
        {
          "name": "Thomas Hobbes",
          "slug": "thomas-hobbes",
          "aliases": [
            "Hobbes",
            "friend Thomas"
          ],
          "role": "Historical philosopher / Resurrected companion",
          "summary": "A resurrected consciousness or invoked presence who accompanies the reader and advises Blacklaw tacticians like Natekari on the laws of nature and war."
        },
        {
          "name": "Ektor Papadelias",
          "slug": "ektor-papadelias",
          "aliases": [
            "Papa",
            "Commissioner General"
          ],
          "role": "Commissioner General",
          "summary": "A skeptical, highly cautious leader whose secret physical maps of Romanova's substructure are desperately needed during the Mitsubishi invasion."
        },
        {
          "name": "Ganymede",
          "slug": "ganymede",
          "aliases": [
            "Mariscal de la Trémoïlle",
            "duke"
          ],
          "role": "Mariscal of European-Humanist forces",
          "summary": "The formidable military leader who consolidates Spain and Europe under his and Jehovah's banner, strictly enforcing loyalty and executing those who fly false colors."
        },
        {
          "name": "Tribune Natekari",
          "slug": "tribune-natekari",
          "aliases": [
            "Natekari"
          ],
          "role": "Blacklaw Tribune",
          "summary": "A fierce Blacklaw leader defending the Aventine, who promises the Mitsubishi an endless vendetta if they harm the Triumvirs or interfere with Pass-It-On."
        },
        {
          "name": "9A",
          "slug": "9a",
          "aliases": [
            "Acting Emperor",
            "No one",
            "My successor",
            "Anonymous"
          ],
          "role": "Mental/communication channel monitor",
          "summary": "A former Humanist and Mycroft's successor who acts as Emperor, negotiates with Sniper for Hiveguard assistance, and ultimately gives up their life and flesh through a supernatural transformation to bring Mycroft Canner back from the dead."
        },
        {
          "name": "Lorelei Cook",
          "slug": "lorelei-cook",
          "aliases": [
            "Minister Cook"
          ],
          "role": "Nurturist Leader and Minister",
          "summary": "A leader who exploded into a 'dandelion burst of light and gore' during a handshake with Ganymede, revealing a synthetic nervous system woven into their flesh."
        },
        {
          "name": "Mycroft's successor",
          "slug": "mycrofts-successor",
          "aliases": [],
          "role": "Analyst and captive leader",
          "summary": "An intelligent companion of Mycroft who pieces together that Gordian is secretly behind the global jamming, propaganda, and attacks previously blamed on the Cousins and Nurturists."
        },
        {
          "name": "Thisbe",
          "slug": "thisbe",
          "aliases": [
            "Ruin's avatar",
            "the witch"
          ],
          "role": "Assassin",
          "summary": "Breaches Jehovah's cell to gloat and kill Him, boasting of purging Utopians, before being outsmarted and shot by Chagatai."
        },
        {
          "name": "Minister Kraye",
          "slug": "minister-kraye",
          "aliases": [
            "Casimir Perry",
            "Merion Kraye",
            "Thersites-Croucher-Perry-Kraye"
          ],
          "role": "Mastermind",
          "summary": "The hateful organizer mentioned as the force exploiting Thisbe and sending her to attack Jehovah."
        },
        {
          "name": "Xiaoliu Accursed-Through-the-Ages-Guildbreaker",
          "slug": "xiaoliu-accursed-through-the-ages-guildbreaker",
          "aliases": [
            "Xiaoliu"
          ],
          "role": "Masonic Official",
          "summary": "Helps rescue the narrator and calmly facilitates the communication with the Prefect to prevent a friendly-fire incident."
        },
        {
          "name": "Ockham Prospero Saneer",
          "slug": "ockham-prospero-saneer",
          "aliases": [
            "Prospero",
            "Lesley"
          ],
          "role": "Leader of O.S. / Romanova Security",
          "summary": "A highly capable former prisoner who led a randomized mission to rescue the King of Spain and bring him to safety."
        },
        {
          "name": "Prefect Ptolemy Armsborder",
          "slug": "prefect-ptolemy-armsborder",
          "aliases": [
            "Armsborder"
          ],
          "role": "Prefect of the Praetorians",
          "summary": "The new Prefect who is advancing to 'rescue' the narrator but stops to take orders from the narrator and yields command to Huxley."
        },
        {
          "name": "Xuánlóng",
          "slug": "xunlng",
          "aliases": [
            "Doctor Horizon Sanjeevani"
          ],
          "role": "Medical officer / Delian Skyshepherd",
          "summary": "Treats Cato after the Almagest incident, asking for details on the mysterious implants to avoid harming the patient, while coordinating the search for MASON's body."
        },
        {
          "name": "Minlu Moretti",
          "slug": "minlu-moretti",
          "aliases": [
            "Interim Minor Senator"
          ],
          "role": "Laser hobbyist",
          "summary": "A young person assisting in building the communication network."
        },
        {
          "name": "Danaë",
          "slug": "dana",
          "aliases": [
            "Mariscala Danaë",
            "Mariscala"
          ],
          "role": "Negotiator and leader",
          "summary": "Demands Mycroft compel Jehovah to protect languages and cultures, and coordinates the immediate global cease-fire."
        },
        {
          "name": "Vivien Ancelet",
          "slug": "vivien-ancelet",
          "aliases": [
            "President Ancelet"
          ],
          "role": "President of the Humanists",
          "summary": "Surrenders the Humanist Hive to Remaker forces, calls for reconstruction, and negotiates with Mycroft regarding the Alliance and Toshi's placement."
        },
        {
          "name": "Dominic",
          "slug": "dominic",
          "aliases": [],
          "role": "Wounded follower",
          "summary": "Recovered after a harsh ordeal across Asia, he is brought in a wheelchair, stripped of his senses and ability to communicate, and is comforted by Jehovah."
        },
        {
          "name": "Heloise",
          "slug": "heloise",
          "aliases": [],
          "role": "Traveler in transit",
          "summary": "Caught in the transit crisis, she panics over finding a safe destination and learning Jehovah is alone in Alexandria."
        },
        {
          "name": "Saladin",
          "slug": "saladin",
          "aliases": [],
          "role": "Deceased Companion",
          "summary": "Mycroft's close companion who is revealed to have died giving up his life and flesh to resurrect Mycroft after the Atlantis disaster."
        }
      ],
      "frameworks_mapped": [
        "Protocol Fiction Mapping",
        "Actantial Model",
        "Todorov's Equilibrium",
        "The Freytag Pyramid",
        "Propp's Morphology",
        "Genette's Narrative",
        "The Monomyth",
        "Dan Harmon",
        "Save the Cat",
        "Kishōtenketsu",
        "The Three-Act Structure",
        "Lévi-Strauss's Binary Oppositions",
        "Cognitive Estrangement",
        "Bakhtin's Chronotope",
        "Aristotelian Poetics",
        "Jungian Archetypal Analysis",
        "Genette's Transtextuality"
      ],
      "score_reliability": {
        "state": "replicated-agree",
        "threshold": 0.2,
        "runs_total": 5,
        "versions_compared": [
          "2.5"
        ],
        "max_spread": 0.18,
        "contested": []
      }
    },
    {
      "slug": "stanislaw_lem_perycalypsis",
      "title": "Perycalypsis",
      "author": "Stanislaw Lem",
      "year": 1971,
      "medium": "short_story",
      "genre_tags": [],
      "tropes": [],
      "quadrant_scores": {
        "time_linearity": 0.15,
        "pacing_velocity": 0.7,
        "threat_scale": 0.9,
        "protagonist_fate": 0.45,
        "conflict_style": 0.85,
        "price_type": 0.8
      },
      "provenance": {
        "analysis_run": "NTSMR-2.5-claude-sonnet-4-6-low",
        "analysis_body_sha256": "7e006f9a21ebe3b0245f9b54faa4fb36a9eb1a9b99c3331634ac579b129bd0b7",
        "synthesis": {
          "path": "nartopo-tools/artifacts/stanislaw_lem_perycalypsis.md.ntsmr-2-5-claude-sonnet-4-6-low.synthesis.json",
          "sha256": "2b2ded359da3c4f4798794349be1edb01646eaf509c0384325bc8331f7e51077"
        },
        "report": {
          "path": "nartopo-tools/artifacts/stanislaw_lem_perycalypsis.md.ntsmr-2-5-claude-sonnet-4-6-low.report.json",
          "sha256": "5daeb785deeccdbe1f4afaba026c62af27130c327c0f99298b1ad77bc2576d26"
        },
        "source": {
          "path": "Stanislaw Lem/Perycalypsis.txt",
          "sha256": "13e1018016f324776925a906b6a09a92f4dab49d57f5a24f0f5d64114903936d",
          "digest_observed_at": "2026-09-09",
          "digest_at_analysis_run": null,
          "edition": null,
          "edition_status": "unresolved"
        },
        "pipeline_revision_at_run": null,
        "verification": {
          "source": "unverified",
          "human_review": "unreviewed",
          "bibliography": "unverified"
        },
        "issues": [],
        "todorov_status": "recovered-from-synthesis",
        "work_identity": {
          "title": "Perycalypsis",
          "author": "Stanislaw Lem",
          "year": 1971
        }
      },
      "ntsmr": {
        "version": "2.5",
        "primary_run_label": "NTSMR-2.5-claude-sonnet-4-6-low",
        "runs": {
          "NTSMR-2.3-gemini-3.1-pro-preview": {
            "pipeline_version": "2.3",
            "backend": "gemini",
            "model": "gemini-3.1-pro-preview",
            "scores": {
              "time_linearity": 0.1,
              "pacing_velocity": 0.9,
              "threat_scale": 1,
              "protagonist_fate": 0.8,
              "conflict_style": 0.8,
              "price_type": 1
            },
            "score_space": "site-v1"
          },
          "NTSMR-2.3-claude-sonnet-4-6-low": {
            "pipeline_version": "2.3",
            "backend": "claude",
            "model": "claude-sonnet-4-6",
            "scores": {
              "time_linearity": 0.1,
              "pacing_velocity": 0.9,
              "threat_scale": 0.9,
              "protagonist_fate": 0.7,
              "conflict_style": 0.85,
              "price_type": 0.95
            },
            "score_space": "site-v1",
            "reasoning_effort": "low"
          },
          "NTSMR-2.4-claude-sonnet-4-6-low": {
            "pipeline_version": "2.4",
            "backend": "claude",
            "model": "claude-sonnet-4-6",
            "scores": {
              "time_linearity": 0.15,
              "pacing_velocity": 0.55,
              "threat_scale": 0.8,
              "protagonist_fate": 0.65,
              "conflict_style": 0.75,
              "price_type": 0.6
            },
            "score_space": "site-v1",
            "reasoning_effort": "low"
          },
          "NTSMR-2.5-claude-sonnet-4-6-low": {
            "pipeline_version": "2.5",
            "backend": "claude",
            "model": "claude-sonnet-4-6",
            "scores": {
              "time_linearity": 0.15,
              "pacing_velocity": 0.7,
              "threat_scale": 0.9,
              "protagonist_fate": 0.45,
              "conflict_style": 0.85,
              "price_type": 0.8
            },
            "score_space": "site-v1",
            "reasoning_effort": "low"
          },
          "NTSMR-2.5-balanced-glm-5+deepseek-v3.2": {
            "pipeline_version": "2.5",
            "backend": "openrouter",
            "model": "balanced-routing",
            "scores": {
              "time_linearity": 0.9,
              "pacing_velocity": 0.85,
              "threat_scale": 0.9,
              "protagonist_fate": 0.75,
              "conflict_style": 0.85,
              "price_type": 0.7
            },
            "score_space": "site-v1",
            "score_only": true,
            "source_run_label": "NTSMR-2.5-claude-sonnet-4-6-low"
          }
        }
      },
      "todorov_stages": {
        "equilibrium": "Civilization operates under an assumed cultural order: creative work circulates, prophecy is possible, and the packaging/content distinction still holds meaning. The reviewer can review, Fersengeld can prophesy, and literature nominally functions as communication.",
        "disruption": "Fersengeld diagnoses civilization as having collapsed this order: disposable goods in permanent packaging generate inescapable waste, and the overproduction of spiritual goods buries genuine value in statistical noise. The apocalypse has already occurred unnoticed — the Pericalypse — making all new creation noise rather than signal.",
        "recognition": "The recognition is retroactive and structural: Fersengeld declares the catastrophe a done deed, coining 'Pericalypse' as retro-prophecy. The signs — languidity, inflation, intellectual masturbation — confirm what has already happened. The reviewer enacts this recognition by admitting he cannot read the book he reviews, embodying communicative futility.",
        "repair": "Fersengeld proposes two corrective institutions: the Save the Human Race Foundation, paying creators stipends inversely scaled to output, with full anonymity to eliminate the glory motive; and the Anvil (Anticreative Vigilance League), criminalizing unauthorized creativity and institutionalizing compulsive graphomaniacs. This bureaucratic apparatus attempts to restore signal-to-noise ratio by suppressing new cultural production.",
        "new_equilibrium": "Having saved humanity through suppression, Fersengeld confronts the existing glut and calls for total destruction of all twentieth-century cultural production — a progressive, redemptive auto-da-fé. The new equilibrium is an ironic void: humanity returns to pre-twentieth-century works, no new creation occurs, and the Pericalypse itself is consumed by its own prescription when Fersengeld instructs the reader to tear up and burn the manifesto. The new order is silence — which is also the original prophetic posture of muteness."
      },
      "characters": [
        {
          "name": "Joachim Fersengeld",
          "slug": "joachim-fersengeld",
          "aliases": [
            "prophet",
            "Enemy of Man"
          ],
          "role": "Author and self-proclaimed prophet",
          "summary": "A German author who wrote his book Pericalypse in Dutch and published it in France. He proposes a radical salvation program that rewards non-creation and violently punishes those who create for money or glory."
        },
        {
          "name": "The Reviewer",
          "slug": "the-reviewer",
          "aliases": [
            "The writer of these words",
            "this reviewer"
          ],
          "role": "Narrator and book reviewer",
          "summary": "An unnamed individual who reviews Fersengeld's book despite not knowing Dutch or mathematics, relying instead on the book's English introduction and title."
        }
      ],
      "frameworks_mapped": [
        "Protocol Fiction Mapping",
        "Actantial Model",
        "Todorov's Equilibrium",
        "The Freytag Pyramid",
        "Propp's Morphology",
        "Genette's Narrative",
        "The Monomyth",
        "Dan Harmon",
        "Save the Cat",
        "Kishōtenketsu",
        "The Three-Act Structure",
        "Lévi-Strauss's Binary Oppositions",
        "Cognitive Estrangement",
        "Bakhtin's Chronotope",
        "Aristotelian Poetics",
        "Jungian Archetypal Analysis",
        "Genette's Transtextuality"
      ],
      "score_reliability": {
        "state": "contested",
        "threshold": 0.2,
        "runs_total": 5,
        "versions_compared": [
          "2.5"
        ],
        "max_spread": 0.75,
        "contested": [
          {
            "axis": "time_linearity",
            "version": "2.5",
            "spread": 0.75,
            "low": {
              "label": "NTSMR-2.5-claude-sonnet-4-6-low",
              "model": "claude-sonnet-4-6",
              "effort": "low",
              "value": 0.15
            },
            "high": {
              "label": "NTSMR-2.5-balanced-glm-5+deepseek-v3.2",
              "model": "balanced-routing",
              "effort": "?",
              "value": 0.9
            }
          },
          {
            "axis": "protagonist_fate",
            "version": "2.5",
            "spread": 0.3,
            "low": {
              "label": "NTSMR-2.5-claude-sonnet-4-6-low",
              "model": "claude-sonnet-4-6",
              "effort": "low",
              "value": 0.45
            },
            "high": {
              "label": "NTSMR-2.5-balanced-glm-5+deepseek-v3.2",
              "model": "balanced-routing",
              "effort": "?",
              "value": 0.75
            }
          }
        ]
      }
    },
    {
      "slug": "jorge_luis_borges_pierre_menard_author_of_the_quixote",
      "title": "Pierre Menard, Author of the Quixote",
      "author": "Jorge Luis Borges",
      "year": 1944,
      "medium": "short_story",
      "genre_tags": [],
      "tropes": [],
      "quadrant_scores": {
        "time_linearity": 0.85,
        "pacing_velocity": 0.88,
        "threat_scale": 0.15,
        "protagonist_fate": 0.55,
        "conflict_style": 0.9,
        "price_type": 0.88
      },
      "provenance": {
        "analysis_run": "NTSMR-2.5-claude-sonnet-4-6-low",
        "analysis_body_sha256": "02526384856e787f490ec68b55717580010b260fa87b53d6274a37d14b48e66c",
        "synthesis": {
          "path": "nartopo-tools/artifacts/jorge_luis_borges_pierre_menard_author_of_the_quixote.md.ntsmr-2-5-claude-sonnet-4-6-low.synthesis.json",
          "sha256": "91095ee11c9c1d4f123a65f1f5fe7fbf295493a34b03e98911df42f2cc8dd2c7"
        },
        "report": {
          "path": "nartopo-tools/artifacts/jorge_luis_borges_pierre_menard_author_of_the_quixote.md.ntsmr-2-5-claude-sonnet-4-6-low.report.json",
          "sha256": "a9aad5199dd958e97984a6a1263ae51795f26e0ca5a89da442927516397b9a71"
        },
        "source": {
          "path": "Jorge Luis Borges/Pierre Menard, Author of the Quixote.txt",
          "sha256": "3c200a97d02da561d8dc9a401e946383461cd5c25c5be003142ca5428d84d45d",
          "digest_observed_at": "2026-09-09",
          "digest_at_analysis_run": null,
          "edition": null,
          "edition_status": "unresolved"
        },
        "pipeline_revision_at_run": null,
        "verification": {
          "source": "unverified",
          "human_review": "unreviewed",
          "bibliography": "unverified"
        },
        "issues": [],
        "todorov_status": "recovered-from-synthesis",
        "work_identity": {
          "title": "Pierre Menard, Author of the Quixote",
          "author": "Jorge Luis Borges",
          "year": 1944
        }
      },
      "ntsmr": {
        "version": "2.5",
        "primary_run_label": "NTSMR-2.5-claude-sonnet-4-6-low",
        "runs": {
          "NTSMR-2.3-claude-sonnet-4-6-low": {
            "pipeline_version": "2.3",
            "backend": "claude",
            "model": "claude-sonnet-4-6",
            "scores": {
              "time_linearity": 0.85,
              "pacing_velocity": 0.95,
              "threat_scale": 0.3,
              "protagonist_fate": 0.75,
              "conflict_style": 0.9,
              "price_type": 0.95
            },
            "score_space": "site-v1",
            "reasoning_effort": "low"
          },
          "NTSMR-2.4-claude-sonnet-4-6-low": {
            "pipeline_version": "2.4",
            "backend": "claude",
            "model": "claude-sonnet-4-6",
            "scores": {
              "time_linearity": 0.85,
              "pacing_velocity": 0.85,
              "threat_scale": 0.12,
              "protagonist_fate": 0.45,
              "conflict_style": 0.88,
              "price_type": 0.8
            },
            "score_space": "site-v1",
            "reasoning_effort": "low"
          },
          "NTSMR-2.5-claude-sonnet-4-6-low": {
            "pipeline_version": "2.5",
            "backend": "claude",
            "model": "claude-sonnet-4-6",
            "scores": {
              "time_linearity": 0.85,
              "pacing_velocity": 0.88,
              "threat_scale": 0.15,
              "protagonist_fate": 0.55,
              "conflict_style": 0.9,
              "price_type": 0.88
            },
            "score_space": "site-v1",
            "reasoning_effort": "low"
          },
          "NTSMR-2.5-balanced-glm-5+deepseek-v3.2": {
            "pipeline_version": "2.5",
            "backend": "openrouter",
            "model": "balanced-routing",
            "scores": {
              "time_linearity": 0.85,
              "pacing_velocity": 0.85,
              "threat_scale": 0.2,
              "protagonist_fate": 0.65,
              "conflict_style": 0.9,
              "price_type": 0.85
            },
            "score_space": "site-v1",
            "score_only": true,
            "source_run_label": "NTSMR-2.5-claude-sonnet-4-6-low"
          }
        }
      },
      "todorov_stages": {
        "equilibrium": "The literary world holds a stable if incomplete record of Pierre Menard's published work — the visible œuvre of symbolist sonnets, philosophical monographs, and minor pieces catalogued in orderly sequence from 1899 to 1934, undisturbed by any awareness of a deeper project.",
        "disruption": "Mme. Henri Bachelier publishes a catalog of Menard's works that the narrator deems deceitful and incomplete, threatening to fix a false and diminished image of Menard in collective literary memory immediately after his death.",
        "recognition": "The narrator recognizes that Bachelier's catalog omits Menard's secret heroic project — the covert re-authorship of word-for-word identical chapters of Don Quixote — and that without correction this subterranean achievement will be lost to posterity.",
        "repair": "The narrator composes the present corrective essay, marshalling endorsements from the Baroness de Bacourt and the Countess de Bagnoregio to establish authority, enumerating the visible œuvre accurately, and then revealing and arguing the significance of Menard's secret project through comparative close reading of identical passages in Cervantes and Menard.",
        "new_equilibrium": "A new, altered literary understanding is established: Menard's fragmentary Quixote is recognized as almost infinitely richer than Cervantes' original by virtue of context, and his true legacy is articulated as the technique of deliberate anachronism and fallacious attribution — a transformed conception of reading itself, dated Nîmes, 1939."
      },
      "characters": [
        {
          "name": "Pierre Menard",
          "slug": "pierre-menard",
          "aliases": [],
          "role": "subject/object",
          "summary": "Deceased French symbolist writer from Nîmes whose visible œuvre and secret heroic project of recomposing Don Quixote word-for-word are the subject of the essay."
        },
        {
          "name": "The Narrator",
          "slug": "the-narrator",
          "aliases": [],
          "role": "sender/voice",
          "summary": "Unnamed male literary acquaintance and admirer of Menard who writes this corrective memorial essay in 1939."
        },
        {
          "name": "Mme. Henri Bachelier",
          "slug": "mme-henri-bachelier",
          "aliases": [],
          "role": "opponent",
          "summary": "Woman who published a catalog of Menard's works deemed deceitful and incomplete by the narrator; target of the opening correction."
        },
        {
          "name": "The Baroness de Bacourt",
          "slug": "the-baroness-de-bacourt",
          "aliases": [],
          "role": "helper",
          "summary": "Aristocratic woman at whose weekly gatherings the narrator met Menard; endorses the narrator's text and is preparing her own tribute."
        },
        {
          "name": "The Countess de Bagnoregio",
          "slug": "the-countess-de-bagnoregio",
          "aliases": [
            "countess de Bagnoregio"
          ],
          "role": "helper",
          "summary": "Woman of Monaco high society, now of Pittsburgh, who endorses the narrator's account in an open letter in the magazine Luxe."
        },
        {
          "name": "Simon Kautzsch",
          "slug": "simon-kautzsch",
          "aliases": [],
          "role": "receiver",
          "summary": "International philanthropist and husband of the countess de Bagnoregio; mentioned only in passing."
        },
        {
          "name": "Miguel de Cervantes",
          "slug": "miguel-de-cervantes",
          "aliases": [
            "Cervantes"
          ],
          "role": "opponent",
          "summary": "Historical author of Don Quixote; functions as Menard's precursor and implicit mirror against whom Menard's project is defined."
        },
        {
          "name": "Carolus Hourcade",
          "slug": "carolus-hourcade",
          "aliases": [],
          "role": "helper",
          "summary": "Lithographer whose exhibit Menard catalogued; also preparing a tribute portrait of Menard."
        }
      ],
      "frameworks_mapped": [
        "Protocol Fiction Mapping",
        "Actantial Model",
        "Todorov's Equilibrium",
        "The Freytag Pyramid",
        "Propp's Morphology",
        "Genette's Narrative",
        "The Monomyth",
        "Dan Harmon",
        "Save the Cat",
        "Kishōtenketsu",
        "The Three-Act Structure",
        "Lévi-Strauss's Binary Oppositions",
        "Cognitive Estrangement",
        "Bakhtin's Chronotope",
        "Aristotelian Poetics",
        "Jungian Archetypal Analysis",
        "Genette's Transtextuality"
      ],
      "score_reliability": {
        "state": "replicated-agree",
        "threshold": 0.2,
        "runs_total": 4,
        "versions_compared": [
          "2.5"
        ],
        "max_spread": 0.1,
        "contested": []
      }
    },
    {
      "slug": "alastair_reynolds_pushing_ice",
      "title": "Pushing Ice",
      "author": "Alastair Reynolds",
      "year": 2005,
      "medium": "book",
      "genre_tags": [
        "science fiction",
        "space opera"
      ],
      "tropes": [],
      "quadrant_scores": {
        "time_linearity": 0.18,
        "pacing_velocity": 0.48,
        "threat_scale": 0.62,
        "protagonist_fate": 0.62,
        "conflict_style": 0.52,
        "price_type": 0.48
      },
      "baseline_quadrant_scores": {
        "time_linearity": 0.4,
        "pacing_velocity": 0.7,
        "threat_scale": 0.9,
        "protagonist_fate": 0.5,
        "conflict_style": 0.3,
        "price_type": 0.6
      },
      "provenance": {
        "analysis_run": "NTSMR-2.5-claude-sonnet-4-6-low",
        "analysis_body_sha256": "61e273f64ad2b25d36368c18ad79c3d5355e6fdc41a86677ba2a8d20db15cd46",
        "synthesis": {
          "path": "nartopo-tools/artifacts/alastair_reynolds_pushing_ice.md.ntsmr-2-5-claude-sonnet-4-6-low.synthesis.json",
          "sha256": "09c54f3917310d69e57b8609511f49a57f116821dcada94e401180a0cbf040d7"
        },
        "report": {
          "path": "nartopo-tools/artifacts/alastair_reynolds_pushing_ice.md.ntsmr-2-5-claude-sonnet-4-6-low.report.json",
          "sha256": "4858b455d07831e78eca5500800960323db31437a6ba9e0049d898f5c4a69971"
        },
        "source": {
          "path": "Alastair Reynolds/Pushing Ice (2005).txt",
          "sha256": "59a64baa18d273a84c53164a91f3a3eb5b3ce05954ab32b84133928b6287e3dd",
          "digest_observed_at": "2026-09-09",
          "digest_at_analysis_run": null,
          "edition": null,
          "edition_status": "unresolved"
        },
        "pipeline_revision_at_run": null,
        "verification": {
          "source": "unverified",
          "human_review": "unreviewed",
          "bibliography": "unverified"
        },
        "issues": [],
        "todorov_status": "recovered-from-synthesis",
        "work_identity": {
          "title": "Pushing Ice",
          "author": "Alastair Reynolds",
          "year": 2005
        }
      },
      "ntsmr": {
        "version": "2.5",
        "primary_run_label": "NTSMR-2.5-claude-sonnet-4-6-low",
        "runs": {
          "NTSMR-2.3-gemini-3.1-pro-preview": {
            "pipeline_version": "2.3",
            "backend": "gemini",
            "model": "gemini-3.1-pro-preview",
            "scores": {
              "time_linearity": 0.35,
              "pacing_velocity": 0.65,
              "threat_scale": 0.9,
              "protagonist_fate": 0.85,
              "conflict_style": 0.7,
              "price_type": 0.8
            },
            "score_space": "site-v1"
          },
          "NTSMR-2.3-claude-sonnet-4-6-low": {
            "pipeline_version": "2.3",
            "backend": "claude",
            "model": "claude-sonnet-4-6",
            "scores": {
              "time_linearity": 0.25,
              "pacing_velocity": 0.55,
              "threat_scale": 0.72,
              "protagonist_fate": 0.45,
              "conflict_style": 0.5,
              "price_type": 0.6
            },
            "score_space": "site-v1",
            "reasoning_effort": "low"
          },
          "NTSMR-2.4-claude-sonnet-4-6-low": {
            "pipeline_version": "2.4",
            "backend": "claude",
            "model": "claude-sonnet-4-6",
            "scores": {
              "time_linearity": 0.28,
              "pacing_velocity": 0.28,
              "threat_scale": 0.62,
              "protagonist_fate": 0.58,
              "conflict_style": 0.42,
              "price_type": 0.3
            },
            "score_space": "site-v1",
            "reasoning_effort": "low"
          },
          "NTSMR-2.5-claude-sonnet-4-6-low": {
            "pipeline_version": "2.5",
            "backend": "claude",
            "model": "claude-sonnet-4-6",
            "scores": {
              "time_linearity": 0.18,
              "pacing_velocity": 0.48,
              "threat_scale": 0.62,
              "protagonist_fate": 0.62,
              "conflict_style": 0.52,
              "price_type": 0.48
            },
            "score_space": "site-v1",
            "reasoning_effort": "low"
          },
          "NTSMR-2.5-balanced-glm-5+deepseek-v3.2": {
            "pipeline_version": "2.5",
            "backend": "openrouter",
            "model": "balanced-routing",
            "scores": {
              "time_linearity": 0.18,
              "pacing_velocity": 0.6,
              "threat_scale": 0.58,
              "protagonist_fate": 0.72,
              "conflict_style": 0.62,
              "price_type": 0.52
            },
            "score_space": "site-v1",
            "score_only": true,
            "source_run_label": "NTSMR-2.5-claude-sonnet-4-6-low"
          }
        }
      },
      "todorov_stages": {
        "equilibrium": "The crew of Rockhopper operates under a functioning professional order: Bella commands, Svetlana manages propulsion, and the mission to Janus proceeds under DeepShaft's corporate mandate with assumed adequate fuel reserves and reliable ship data.",
        "disruption": "Two detached mass drivers collide with the machine shop and engine during transit, causing structural damage and triggering Svetlana's discovery that the fuel pressure logs show no trace of the impact — a physical impossibility revealing that DeepShaft has falsified the ship's sensor data to conceal a fatally compromised fuel margin.",
        "recognition": "Svetlana confirms to Parry that the ShipNet pressure data diverges from the locally buffered figures, demonstrating deliberate falsification; she and Parry then confront Bella directly with the evidence, forcing the captain to acknowledge that the mission's stated fuel safety margins cannot be trusted and that the company may be knowingly sending the crew to their deaths.",
        "repair": "Bella refuses to abort on the current evidence, demanding further corroboration before acting against DeepShaft; she privately consults Axford and weighs Svetlana's credibility against professional and political consequences, while managing the additional complication of Chinese diplomatic overtures over Janus and her suspicions about Schrope as Cagan's plant.",
        "new_equilibrium": "The ship presses deeper toward Janus under an atmosphere of unresolved conspiracy: crew loyalty is fractured, Bella's authority is strained by her refusal to act, corporate trust is broken, and the crew's survival is in doubt — a profoundly destabilized order that differs sharply from the functional command structure at the outset."
      },
      "characters": [
        {
          "name": "Svetlana Barseghian",
          "slug": "svetlana-barseghian",
          "aliases": [
            "Svieta",
            "Svetlana"
          ],
          "role": "Engineer",
          "summary": "An engineer who survives the mass-driver crash and uncovers that DeepShaft is transmitting falsified data to cover up the ship's fuel shortage."
        },
        {
          "name": "Parry Boyce",
          "slug": "parry-boyce",
          "aliases": [
            "Parry",
            "Chief"
          ],
          "role": "EVA Team Leader",
          "summary": "The leader of the EVA team who orchestrates debris cleanup, tries to rescue Takahashi, and helps Svetlana investigate the falsified fuel data."
        },
        {
          "name": "Bella Lind",
          "slug": "bella-lind",
          "aliases": [
            "Bella"
          ],
          "role": "Captain of Rockhopper",
          "summary": "The captain of the commercial vehicle Rockhopper who must manage her crew's safety, confront a potential corporate conspiracy regarding the fuel, and navigate diplomatic tensions with a Chinese vessel."
        },
        {
          "name": "Mike Takahashi",
          "slug": "mike-takahashi",
          "aliases": [
            "Mike",
            "Takahashi"
          ],
          "role": "EVA Worker",
          "summary": "An EVA worker who falls and gets encased in hardening sprayrock during the debris cleanup, leading to a desperate attempt to put him into chemical stasis."
        },
        {
          "name": "Ryan Axford",
          "slug": "ryan-axford",
          "aliases": [
            "Ryan",
            "Axford"
          ],
          "role": "Ship's Surgeon",
          "summary": "The ship's surgeon who performs 'Operation Frost Angel', euthanizing Takahashi into a chemical stasis to prevent brain damage from heat exhaustion."
        },
        {
          "name": "Wolinsky",
          "slug": "wolinsky",
          "aliases": [
            "Frida"
          ],
          "role": "EVA Worker",
          "summary": "An EVA team member working alongside Parry during the cleanup and sprayrock application."
        },
        {
          "name": "Craig Schrope",
          "slug": "craig-schrope",
          "aliases": [
            "Schrope",
            "Craig"
          ],
          "role": "Subordinate and UEE Liaison",
          "summary": "A politically connected subordinate aboard the Rockhopper who argues with Bella over UEE mandates and corporate interests regarding the Janus anomaly."
        },
        {
          "name": "Thom Crabtree",
          "slug": "thom-crabtree",
          "aliases": [
            "Crabtree",
            "Thom"
          ],
          "role": "Taphead / Robot Controller",
          "summary": "A cybernetically enhanced crew member frustrated by being restricted to working with virtual robots instead of real ones."
        },
        {
          "name": "Wang Zhanmin",
          "slug": "wang-zhanmin",
          "aliases": [
            "Wang",
            "Wang the Man"
          ],
          "role": "Commander of Shenzhou Five",
          "summary": "The commander of the Chinese vessel Shenzhou Five who requests a joint exploration of the Janus anomaly."
        },
        {
          "name": "Powell Cagan",
          "slug": "powell-cagan",
          "aliases": [
            "Powell",
            "Cagan"
          ],
          "role": "DeepShaft Executive",
          "summary": "A powerful DeepShaft executive with UEE leverage and Bella's former lover, whose ambition drives the mission's dangerous mandate."
        },
        {
          "name": "Garrison",
          "slug": "garrison",
          "aliases": [],
          "role": "Bella's deceased partner",
          "summary": "Bella's former partner whose death in a shuttle accident continues to haunt her, especially when dealing with crew fatalities."
        }
      ],
      "frameworks_mapped": [
        "Protocol Fiction Mapping",
        "Actantial Model",
        "Todorov's Equilibrium",
        "The Freytag Pyramid",
        "Propp's Morphology",
        "Genette's Narrative",
        "The Monomyth",
        "Dan Harmon",
        "Save the Cat",
        "Kishōtenketsu",
        "The Three-Act Structure"
      ],
      "score_reliability": {
        "state": "replicated-agree",
        "threshold": 0.2,
        "runs_total": 5,
        "versions_compared": [
          "2.5"
        ],
        "max_spread": 0.12,
        "contested": []
      }
    },
    {
      "slug": "lisa_goldstein_queen_of_the_states",
      "title": "Queen of the States",
      "author": "Lisa Goldstein",
      "year": 2003,
      "medium": "book",
      "genre_tags": [],
      "tropes": [],
      "quadrant_scores": {
        "time_linearity": 0.12,
        "pacing_velocity": 0.68,
        "threat_scale": 0.62,
        "protagonist_fate": 0.42,
        "conflict_style": 0.62,
        "price_type": 0.72
      },
      "provenance": {
        "analysis_run": "NTSMR-2.5-claude-sonnet-4-6-low",
        "analysis_body_sha256": "562de3777312d13fdf2fe7144a4d4a3072d381426b94630edf762347a39c0dea",
        "synthesis": {
          "path": "nartopo-tools/artifacts/lisa_goldstein_queen_of_the_states.md.ntsmr-2-5-claude-sonnet-4-6-low.synthesis.json",
          "sha256": "b8bbf9533a30d8ae9dc3bac44a9ead71e0f0c0cdfe47379a633cebca953530b9"
        },
        "report": {
          "path": "nartopo-tools/artifacts/lisa_goldstein_queen_of_the_states.md.ntsmr-2-5-claude-sonnet-4-6-low.report.json",
          "sha256": "fd1fe7d7621e1e7c6c1fddca0d7ecca161552447f541cd3c4376c81946894892"
        },
        "source": {
          "path": "Lisa Goldstein/Queen of the States.txt",
          "sha256": "6ecb0d7456eb379ade25ee010c57cdd6f53dc42d00b67dff3e78a1ba349128f8",
          "digest_observed_at": "2026-09-09",
          "digest_at_analysis_run": null,
          "edition": null,
          "edition_status": "unresolved"
        },
        "pipeline_revision_at_run": null,
        "verification": {
          "source": "unverified",
          "human_review": "unreviewed",
          "bibliography": "unverified"
        },
        "issues": [],
        "todorov_status": "recovered-from-synthesis",
        "work_identity": {
          "title": "Queen of the States",
          "author": "Lisa Goldstein",
          "year": 2003
        }
      },
      "ntsmr": {
        "version": "2.5",
        "primary_run_label": "NTSMR-2.5-claude-sonnet-4-6-low",
        "runs": {
          "NTSMR-2.4-claude-sonnet-4-6-low": {
            "pipeline_version": "2.4",
            "backend": "claude",
            "model": "claude-sonnet-4-6",
            "scores": {
              "time_linearity": 0.18,
              "pacing_velocity": 0.55,
              "threat_scale": 0.62,
              "protagonist_fate": 0.35,
              "conflict_style": 0.52,
              "price_type": 0.65
            },
            "score_space": "site-v1",
            "reasoning_effort": "low"
          },
          "NTSMR-2.5-claude-sonnet-4-6-low": {
            "pipeline_version": "2.5",
            "backend": "claude",
            "model": "claude-sonnet-4-6",
            "scores": {
              "time_linearity": 0.12,
              "pacing_velocity": 0.68,
              "threat_scale": 0.62,
              "protagonist_fate": 0.42,
              "conflict_style": 0.62,
              "price_type": 0.72
            },
            "score_space": "site-v1",
            "reasoning_effort": "low"
          },
          "NTSMR-2.5-balanced-glm-5+deepseek-v3.2": {
            "pipeline_version": "2.5",
            "backend": "openrouter",
            "model": "balanced-routing",
            "scores": {
              "time_linearity": 0.15,
              "pacing_velocity": 0.7,
              "threat_scale": 0.6,
              "protagonist_fate": 0.45,
              "conflict_style": 0.65,
              "price_type": 0.75
            },
            "score_space": "site-v1",
            "score_only": true,
            "source_run_label": "NTSMR-2.5-claude-sonnet-4-6-low"
          }
        }
      },
      "todorov_stages": {
        "equilibrium": "Alice Wood lives as a widowed bookseller in St. Paul's churchyard, managing her stall and household within the familiar social world of Elizabethan London stationers and playwrights. The supernatural exists at the margins but has not yet entered her domestic life.",
        "disruption": "The brownie takes up residence in Alice's home and leads her to a midnight faerie revel outside the city walls, drawing her irrevocably into the Fair Folk's affairs. Simultaneously, Arthur surfaces in London claiming royal identity, and the competing factions — Paul Hogg, the red king, and Queen Oriana — begin converging on him.",
        "recognition": "Alice learns from Margery, via Agnes's testimony, that Arthur is not her biological son but a changeling: her true son was given to Oriana, while she raised the faerie queen's child. This anagnorisis transforms the entire stakes of the plot from a mother seeking a lost son into a woman caught between two worlds and two loyalties.",
        "repair": "Alice, aided by the brownie and Margery, works to recover Arthur and return him to Oriana. The climactic battle in St. Paul's churchyard — where Margery raises light and wind for Oriana's forces, Brownie duels Hogg's water spirit, and the silver dragon defeats the red dragon — resolves the supernatural conflict. Alice then brings Arthur to Finsbury Field, where Oriana crowns him king and returns Alice's true son to her.",
        "new_equilibrium": "The Fair Folk withdraw from the mortal world and the roads close, ending their age in London. Alice receives her true son, renamed Art, and struggles to integrate him into ordinary life. She is treated with new deference by the stationer community but understands events less than ever. Margery's power fades. Prompted by Margery's blessing, Alice moves toward Walter, and the narrative closes with their marriage and the faerie gift passing through Art's descendants to the present day — a world permanently altered by the faerie age's passing."
      },
      "characters": [
        {
          "name": "Alice Wood",
          "slug": "alice-wood",
          "aliases": [
            "Mistress Wood",
            "Alice"
          ],
          "role": "protagonist",
          "summary": "Widowed bookseller; receives the revelation that Arthur is a changeling; defends herself before the Stationers' Company; witnesses the Faerie battle; suppresses feelings for Walter James."
        },
        {
          "name": "Christopher Marlowe",
          "slug": "christopher-marlowe",
          "aliases": [
            "Kit"
          ],
          "role": "Protagonist (spy plot)",
          "summary": "Playwright and former spy; defends himself before the Star Chamber; confronts Poley and deduces the full conspiracy; killed by a sword thrust to his right eye by one of Poley's faerie agents."
        },
        {
          "name": "Thomas Nashe",
          "slug": "thomas-nashe",
          "aliases": [
            "Tom",
            "Tom Nashe",
            "Nashe"
          ],
          "role": "POV character / survivor playwright",
          "summary": "Sole survivor of his playwright circle; grief-stricken, believes himself enchanted by the brown woman; confides Marlowe's murder story to Will Ryder and inadvertently summons the brown woman."
        },
        {
          "name": "Thomas Kyd",
          "slug": "thomas-kyd",
          "aliases": [
            "Tom Kyd",
            "Kyd"
          ],
          "role": "Antagonist / betrayer",
          "summary": "Marlowe's former lodger; writing a denunciation of the dead Marlowe to win back his patron Lord Strange; coldly admits the accusations are false but pleads survival necessity."
        },
        {
          "name": "Arthur",
          "slug": "arthur",
          "aliases": [
            "Your Majesty",
            "the king",
            "Art",
            "Boy"
          ],
          "role": "Focal mystery / faerie prince",
          "summary": "Alice's faerie-lineage son; held in Oriana's court; returned to Alice; later marries and prospers on a farm; revealed to be the literal Philosopher's Stone, fruit of the red king and Oriana's union."
        },
        {
          "name": "Robert Poley",
          "slug": "robert-poley",
          "aliases": [
            "Robert",
            "Master Poley"
          ],
          "role": "actantial sender/opponent",
          "summary": "Christopher's former handler; revealed to work for the red king; manipulated multiple conspiracies simultaneously; confesses to forging the note and ordering a murder; has Christopher killed when he learns too much."
        },
        {
          "name": "Brownie",
          "slug": "brownie",
          "aliases": [
            "Robin Goodfellow",
            "Robin"
          ],
          "role": "Helper / familiar",
          "summary": "Man-shaped, fur-covered, red-capped household familiar who does Alice's domestic work, guides her to the faerie revels, and ultimately departs when George arrives and reacts with hostility."
        },
        {
          "name": "Margery",
          "slug": "margery",
          "aliases": [],
          "role": "Helper / cunning woman",
          "summary": "Cunning woman living outside the city walls; knowledgeable about herbs, stones, and faerie lore; has a longstanding relationship with Queen Oriana; Alice's primary advisor in supernatural matters."
        },
        {
          "name": "George",
          "slug": "george",
          "aliases": [
            "George Cowper",
            "Master Cowper"
          ],
          "role": "Secondary antagonist / reluctant conspirator",
          "summary": "Alice's would-be suitor and friend; plans to use Anthony's potion to win her; moralistic and suspicious of Alice's supernatural entanglements; his hostility drives away the brownie."
        },
        {
          "name": "Anthony",
          "slug": "anthony",
          "aliases": [
            "Anthony Drury"
          ],
          "role": "Opponent / coin-debaser",
          "summary": "Associate with occult knowledge; deliberately confuses George to hide the location of his house; possesses an alchemical apparatus and a bound supernatural creature; gives George a mysterious jar."
        },
        {
          "name": "William Ryder",
          "slug": "william-ryder",
          "aliases": [
            "Sir Geoffrey",
            "Geoffrey",
            "Will"
          ],
          "role": "Helper / grieving patron",
          "summary": "Stocky spy who, with his brother Geoffrey, recruits Christopher after catching him following them from court; lives in a grand but ugly manor on the Thames."
        },
        {
          "name": "Edward Blount",
          "slug": "edward-blount",
          "aliases": [],
          "role": "Publisher / minor character",
          "summary": "Alice's neighbor at the next bookseller's stall in Paul's churchyard; impeccable literary taste; friendly presence in Alice's daily life."
        },
        {
          "name": "Queen Oriana",
          "slug": "queen-oriana",
          "aliases": [
            "the queen",
            "Oriana"
          ],
          "role": "Sender / faerie queen",
          "summary": "Queen of the Fair Folk; returns Arthur to Alice after Brownie intercedes; dismissive of the boy's importance; implicitly jealous of Brownie's attachment to Alice; oversees the closing of the roads."
        },
        {
          "name": "Sir Philip Potter",
          "slug": "sir-philip-potter",
          "aliases": [
            "Philip Potter",
            "Sir Philip"
          ],
          "role": "Unwitting helper",
          "summary": "Foolish courtier who cannot remember his secretary's name; used by Christopher as an actor to bait conspirators at dinner."
        },
        {
          "name": "Agnes",
          "slug": "agnes",
          "aliases": [],
          "role": "Witness / secondary helper",
          "summary": "Midwife who witnessed the changeling exchange at the Faerie court; phlegmatic observer who watched the dragons as if they were a fireworks display."
        },
        {
          "name": "Walter James",
          "slug": "walter-james",
          "aliases": [
            "Walter"
          ],
          "role": "Helper / potential suitor",
          "summary": "Newest member of the Stationers' Company; testifies on Alice's behalf; escorts her to the theatre and probes gently about Arthur; she is attracted to him but refuses to confide in him."
        },
        {
          "name": "Paul Hogg",
          "slug": "paul-hogg",
          "aliases": [
            "Hogg"
          ],
          "role": "Alchemist antagonist",
          "summary": "Obsessive alchemist seeking the Philosopher's Stone; holds Arthur captive and attempts to extract alchemical secrets from him; protected by conjuring circles from faerie interference."
        },
        {
          "name": "Nicholas Russell",
          "slug": "nicholas-russell",
          "aliases": [],
          "role": "Opponent (conspirator)",
          "summary": "One of the named conspirators who rehearsed a false alibi for the night of the masque assassination attempt."
        },
        {
          "name": "Archbishop Whitgift",
          "slug": "archbishop-whitgift",
          "aliases": [],
          "role": "Inquisitor",
          "summary": "Leads the Star Chamber questioning of Christopher over the heretical manuscript."
        },
        {
          "name": "Robert Cecil",
          "slug": "robert-cecil",
          "aliases": [],
          "role": "Star Chamber judge",
          "summary": "Hunchbacked son of Lord Burghley; takes extensive notes during Christopher's examination."
        },
        {
          "name": "Gabriel Harvey",
          "slug": "gabriel-harvey",
          "aliases": [
            "Doctor Harvey"
          ],
          "role": "Minor antagonist (offstage feud)",
          "summary": "Middle-aged scholar and literary rival of Nashe; spotted in Paul's churchyard by Kit and Tom Kyd; flees rather than engage."
        },
        {
          "name": "The Brown Woman",
          "slug": "the-brown-woman",
          "aliases": [],
          "role": "Actantial sender / faerie summons",
          "summary": "Faerie woman who appears in the tavern when Nashe summons her via the flower-favor; commands him that the battle must begin now and leaves without further explanation."
        },
        {
          "name": "The New Faerie King",
          "slug": "the-new-faerie-king",
          "aliases": [],
          "role": "Narrator-figure / twilight king",
          "summary": "Unnamed figure who has taken the role of king over the Fair Folk; presides over their withdrawal from the mortal world; reflects on the pull of mortality and accepts the closing of the roads."
        }
      ],
      "frameworks_mapped": [
        "Protocol Fiction Mapping",
        "Actantial Model",
        "Todorov's Equilibrium",
        "The Freytag Pyramid",
        "Propp's Morphology",
        "Genette's Narrative",
        "The Monomyth",
        "Dan Harmon",
        "Save the Cat",
        "Kishōtenketsu",
        "The Three-Act Structure",
        "Lévi-Strauss's Binary Oppositions",
        "Cognitive Estrangement",
        "Bakhtin's Chronotope",
        "Aristotelian Poetics",
        "Jungian Archetypal Analysis",
        "Genette's Transtextuality"
      ],
      "score_reliability": {
        "state": "replicated-agree",
        "threshold": 0.2,
        "runs_total": 3,
        "versions_compared": [
          "2.5"
        ],
        "max_spread": 0.03,
        "contested": []
      }
    },
    {
      "slug": "vernor_vinge_rainbows_end",
      "title": "Rainbows End",
      "author": "Vernor Vinge",
      "year": 2006,
      "medium": "book",
      "genre_tags": [],
      "tropes": [],
      "quadrant_scores": {
        "time_linearity": 0.25,
        "pacing_velocity": 0.55,
        "threat_scale": 0.55,
        "protagonist_fate": 0.45,
        "conflict_style": 0.55,
        "price_type": 0.65
      },
      "baseline_quadrant_scores": {
        "time_linearity": 0.75,
        "pacing_velocity": 0.45,
        "threat_scale": 0.55,
        "protagonist_fate": 0.55,
        "conflict_style": 0.45,
        "price_type": 0.35
      },
      "provenance": {
        "analysis_run": "NTSMR-2.5-claude-sonnet-4-6-low",
        "analysis_body_sha256": "7fee8a5bded43c6e134289239a2987c3353eb82b8bc8d250295396b6786b2fa4",
        "synthesis": {
          "path": "nartopo-tools/artifacts/vernor_vinge_rainbows_end.md.ntsmr-2-5-claude-sonnet-4-6-low.synthesis.json",
          "sha256": "0a1f1c35fccb3bfe890fee5ae293d3e35f818091a5257cd1a7f8cf56455d428e"
        },
        "report": {
          "path": "nartopo-tools/artifacts/vernor_vinge_rainbows_end.md.ntsmr-2-5-claude-sonnet-4-6-low.report.json",
          "sha256": "17f2bbe5a6a6cb7f76a87a12ed1efd43a9ac8f5121df4cdcf5f8ca2264d68745"
        },
        "source": {
          "path": "Vernor Vinge/Rainbows End.txt",
          "sha256": "f0254900b0bb8ef7d00a36b143268c5a09387bf87b7da4bad8453bd947614e89",
          "digest_observed_at": "2026-09-09",
          "digest_at_analysis_run": null,
          "edition": null,
          "edition_status": "unresolved"
        },
        "pipeline_revision_at_run": null,
        "verification": {
          "source": "unverified",
          "human_review": "unreviewed",
          "bibliography": "unverified"
        },
        "issues": [],
        "todorov_status": "recovered-from-synthesis",
        "work_identity": {
          "title": "Rainbows End",
          "author": "Vernor Vinge",
          "year": 2006
        }
      },
      "ntsmr": {
        "version": "2.5",
        "primary_run_label": "NTSMR-2.5-claude-sonnet-4-6-low",
        "runs": {
          "NTSMR-2.4-claude-sonnet-4-6-low": {
            "pipeline_version": "2.4",
            "backend": "claude",
            "model": "claude-sonnet-4-6",
            "scores": {
              "time_linearity": 0.28,
              "pacing_velocity": 0.32,
              "threat_scale": 0.72,
              "protagonist_fate": 0.38,
              "conflict_style": 0.42,
              "price_type": 0.48
            },
            "score_space": "site-v1",
            "reasoning_effort": "low"
          },
          "NTSMR-2.5-claude-sonnet-4-6-low": {
            "pipeline_version": "2.5",
            "backend": "claude",
            "model": "claude-sonnet-4-6",
            "scores": {
              "time_linearity": 0.25,
              "pacing_velocity": 0.55,
              "threat_scale": 0.55,
              "protagonist_fate": 0.45,
              "conflict_style": 0.55,
              "price_type": 0.65
            },
            "score_space": "site-v1",
            "reasoning_effort": "low"
          },
          "NTSMR-2.5-balanced-glm-5+deepseek-v3.2": {
            "pipeline_version": "2.5",
            "backend": "openrouter",
            "model": "balanced-routing",
            "scores": {
              "time_linearity": 0.22,
              "pacing_velocity": 0.62,
              "threat_scale": 0.72,
              "protagonist_fate": 0.48,
              "conflict_style": 0.65,
              "price_type": 0.52
            },
            "score_space": "site-v1",
            "score_only": true,
            "source_run_label": "NTSMR-2.5-claude-sonnet-4-6-low"
          }
        }
      },
      "todorov_stages": {
        "equilibrium": "Robert Gu, cognitively restored after illness, exists in a fragile but stable routine of solitary drives, web surfing, and re-education at UCSD, emotionally estranged from his family but functionally managing his diminished place in a world that has moved past him. Miri quietly scaffolds his social integration from a distance. This is a brittle peace built on avoidance and low expectations.",
        "disruption": "Robert is drawn into the cabal's conspiracy against the Librareome Project through Sharif's flattering AR approach, while simultaneously Rabbit and Vaz's competing covert operations converge on UCSD. The library riot and Credit Suisse certificate revocation cascade collapse the augmented-reality infrastructure, dragging Robert, Miri, and Juan into the physical tunnels beneath campus and into direct danger. Robert's savage verbal attack on Miri marks the deepest personal rupture.",
        "recognition": "Robert's morning insight reveals that Blount's applause was mockery, his poem was mediocre, and his poetic gift is permanently gone. He recognizes that his arrogance has caused real harm to Miri and that his old identity as a celebrated poet cannot be recovered. Miri and Juan lose their memories of tunnel events; Alice is trapped in JITT training; the personal costs of the disruption become undeniable.",
        "repair": "Robert attempts comfort and connection in the fragile aftermath at Crick's Clinic and Fairmont High. He saves Miri in the tunnels, earns Bob's thanks, and tries to rally Juan for their school demo. He spends two hours writing the most important words of his life to the silent Lena after discovering a golden enum granting him access to message her. Juan and Robert's Orchestra of the Americas performance achieves synchrony, validating Robert's algorithm and demonstrating genuine collaborative effort.",
        "new_equilibrium": "Six weeks later, a diminished but more humane status quo has formed: Robert writes daily to Lena, throws himself into schoolwork, plays Ping-Pong with Miri, and accepts a new identity as a student rather than a poet. Alice remains in Training, effectively lost. Juan and Miri cautiously reconcile. The destroyed library has become a global distributed knowledge network. Tommie gives Robert the digitized British Museum collection, reframing loss as preservation. Robert's poetic voice is gone but he is, for the first time, genuinely present to the people around him."
      },
      "characters": [
        {
          "name": "Robert Gu",
          "slug": "robert-gu",
          "aliases": [
            "You-Know-Who",
            "Professor Gu",
            "Dad",
            "Gu the Eldest",
            "Robert Senior"
          ],
          "role": "protagonist",
          "summary": "Elderly restored poet navigating technological bewilderment and wounded pride; drawn into the cabal conspiracy while covertly interacting with the Stranger and wrestling with his lost creative voice."
        },
        {
          "name": "Juan Orozco",
          "slug": "juan-orozco",
          "aliases": [
            "Juan"
          ],
          "role": "actantial:subject",
          "summary": "Teenage student who performs an AR composition in class, is genuinely awed by Robert's verbal power, and attempts to recruit Robert into a collaboration and business deal, only to be cruelly rebuffed."
        },
        {
          "name": "Xiu Xiang",
          "slug": "xiu-xiang",
          "aliases": [
            "Newbie Xiang",
            "Dr. Xiang",
            "Xiu",
            "X. Xiang",
            "Dr. X. Xiang"
          ],
          "role": "supporting",
          "summary": "Science student and re-trainee, circling helplessly outside the crisis zone with Lena, monitoring the children via audio and wielding shop-class gadgets as her only tools."
        },
        {
          "name": "Ms. Chumlig",
          "slug": "ms-chumlig",
          "aliases": [
            "Chumlig"
          ],
          "role": "actantial:opponent",
          "summary": "Composition teacher who runs the class with patient authority, defends Robert after the mocking AR prank, and urges him to collaborate and learn digital skills."
        },
        {
          "name": "Alfred Vaz",
          "slug": "alfred-vaz",
          "aliases": [
            "Doc"
          ],
          "role": "Primary antagonist",
          "summary": "European Alliance intelligence operative revealed to be the actual YGBM researcher, using the Alliance mission as cover for his own project to achieve mind-control and what he considers world salvation."
        },
        {
          "name": "The Rabbit / Mr. Rabbit",
          "slug": "the-rabbit-mr-rabbit",
          "aliases": [
            "Rabbit"
          ],
          "role": "trickster",
          "summary": "Mysterious entity (implied AI) who penetrates Vaz's cover, assembles the operational team, and proposes using the Sharif persona to neutralize Alice Gu."
        },
        {
          "name": "Miri Gu",
          "slug": "miri-gu",
          "aliases": [
            "Little General"
          ],
          "role": "Helper/Actant",
          "summary": "Robert's granddaughter, co-infiltrator of the GenGen tunnels, partially impersonated Sharif, withheld information from her parents to protect Robert, and leads the physical sabotage of the mouse-array shipment."
        },
        {
          "name": "Tommie Parker",
          "slug": "tommie-parker",
          "aliases": [
            "Professor Thomas Parker",
            "Tommie",
            "Winnie"
          ],
          "role": "Helper/Cabal member",
          "summary": "Old-school technologist and cabal member who deadzones the sixth floor with Paraguayan hardware, researches the bio-lab security via distributed crowd-sourced methods, and leads the technical planning for the tunnel infiltration."
        },
        {
          "name": "Winston Blount",
          "slug": "winston-blount",
          "aliases": [
            "Winnie",
            "Dean Blount"
          ],
          "role": "actantial:sender",
          "summary": "Former UCSD dean and cabal leader, now hired as an entry-level administrative assistant under a dean he never got along with; apparently made peace with diminished ambitions."
        },
        {
          "name": "Carlos Rivera",
          "slug": "carlos-rivera",
          "aliases": [
            "Dangerous Knowledge",
            "Greatest Lesser Scooch-a-mout"
          ],
          "role": "supporting",
          "summary": "Academic librarian and cabal member who explains the Librareome financial model; suffers a JITT-related language episode during the staged earthquake and is sent for a brain scan."
        },
        {
          "name": "Lena Gu",
          "slug": "lena-gu",
          "aliases": [
            "Mistress Gu",
            "Lena"
          ],
          "role": "supporting",
          "summary": "Robert's estranged elderly wife at Rainbows End, recovered from Parkinson's but suffering intractable osteoporosis; wants to remain hidden from Robert, visited by Miri and Xiang."
        },
        {
          "name": "Zulfikar Sharif",
          "slug": "zulfikar-sharif",
          "aliases": [
            "Mr. Rabbit",
            "Mysterious Stranger",
            "Rabbit",
            "Zulfi Sharif",
            "Sharif",
            "Zulfi",
            "True-Sharif"
          ],
          "role": "trickster",
          "summary": "Student interviewer whose wearable has been hijacked by the Stranger; continues interviewing Robert about poetry despite partial corruption, functioning as a conduit between Robert and multiple manipulating parties."
        },
        {
          "name": "Bob Gu",
          "slug": "bob-gu",
          "aliases": [
            "Lieutenant Colonel Robert Gu Jr.",
            "Bobby"
          ],
          "role": "Military authority/resolver",
          "summary": "Officer of the Watch for CONUS Southwest; manages the analyst pool, struggles to counteract Alice's obsessive focus, and ultimately overrides a launch order to relieve her."
        },
        {
          "name": "Keiko Mitsuri",
          "slug": "keiko-mitsuri",
          "aliases": [],
          "role": "Alliance cell member",
          "summary": "Japanese Alliance operative with sociology/psychology background, the most cautious of the three; approves Plan Rabbit only with abort-and-destroy contingencies for a more-capable-than-expected Rabbit."
        },
        {
          "name": "Günberk Braun",
          "slug": "gnberk-braun",
          "aliases": [],
          "role": "Alliance cell member",
          "summary": "Alliance intelligence officer who traced Rabbit's certificate authority apex to Credit Suisse, providing a theoretical kill-switch, and voices concern that Rabbit's capabilities make him a threat in himself."
        },
        {
          "name": "Alice Gong Gu",
          "slug": "alice-gong-gu",
          "aliases": [
            "Alice"
          ],
          "role": "supporting",
          "summary": "Bob's wife, formerly formidable analyst now diminished after the riot crisis; warming slightly in domestic life, still remotely working intelligence assignments including Jakarta."
        },
        {
          "name": "Timothy Huynh",
          "slug": "timothy-huynh",
          "aliases": [
            "Tim Huynh"
          ],
          "role": "other",
          "summary": "Scoochi faction technician running GenGen equipment during the riot battle; witnesses and narrates the library walking event from both technological and artistic viewpoints."
        },
        {
          "name": "Sheila Hanson",
          "slug": "sheila-hanson",
          "aliases": [],
          "role": "other",
          "summary": "Scoochi night crew leader coordinating the bottish army during the library battle."
        },
        {
          "name": "Patrick Westin",
          "slug": "patrick-westin",
          "aliases": [],
          "role": "Military subordinate",
          "summary": "Ground commander with Bob's first squad, reporting on lab access and executing Bob's seal-and-embargo orders."
        },
        {
          "name": "Reed Weber",
          "slug": "reed-weber",
          "aliases": [],
          "role": "helper",
          "summary": "Physician's assistant managing Robert's recovery, delivering news about Lena's death and coaching Robert through reorientation with calibrated joviality."
        }
      ],
      "frameworks_mapped": [
        "Protocol Fiction Mapping",
        "Actantial Model",
        "Todorov's Equilibrium",
        "The Freytag Pyramid",
        "Propp's Morphology",
        "Genette's Narrative",
        "The Monomyth",
        "Dan Harmon",
        "Save the Cat",
        "Kishōtenketsu",
        "The Three-Act Structure",
        "Lévi-Strauss's Binary Oppositions",
        "Cognitive Estrangement",
        "Bakhtin's Chronotope",
        "Aristotelian Poetics",
        "Jungian Archetypal Analysis",
        "Genette's Transtextuality"
      ],
      "score_reliability": {
        "state": "replicated-agree",
        "threshold": 0.2,
        "runs_total": 3,
        "versions_compared": [
          "2.5"
        ],
        "max_spread": 0.17,
        "contested": []
      }
    },
    {
      "slug": "kim_stanley_robinson_red_mars",
      "title": "Red Mars",
      "author": "Kim Stanley Robinson",
      "year": 1992,
      "medium": "book",
      "genre_tags": [
        "sf",
        "hard sf",
        "colonization"
      ],
      "tropes": [],
      "quadrant_scores": {
        "time_linearity": 0.28,
        "pacing_velocity": 0.72,
        "threat_scale": 0.82,
        "protagonist_fate": 0.52,
        "conflict_style": 0.68,
        "price_type": 0.65
      },
      "provenance": {
        "analysis_run": "NTSMR-2.5-claude-sonnet-4-6-low",
        "analysis_body_sha256": "c00840cc333ef1128bcc77a08a2355a097b7e3bb63c898e4c5c66d45df90d6df",
        "synthesis": {
          "path": "nartopo-tools/artifacts/kim_stanley_robinson_red_mars.md.ntsmr-2-5-claude-sonnet-4-6-low.synthesis.json",
          "sha256": "880e1ef5895c102fc8cb04c184610c587713dbfcd6b1b3f4a44d570bd5965067"
        },
        "report": {
          "path": "nartopo-tools/artifacts/kim_stanley_robinson_red_mars.md.ntsmr-2-5-claude-sonnet-4-6-low.report.json",
          "sha256": "9e47d59e20dd2c8ce294c6ef814e2cd99ef72b42edbaf68edc6ac673a117d4af"
        },
        "source": {
          "path": "Kim Stanley Robinson/Red Mars.txt",
          "sha256": "9f785bbbeb37c4b36a5c3a40d0bc447cc39d90429043f6e693e6521f9d9f7c8b",
          "digest_observed_at": "2026-09-09",
          "digest_at_analysis_run": null,
          "edition": null,
          "edition_status": "unresolved"
        },
        "pipeline_revision_at_run": null,
        "verification": {
          "source": "unverified",
          "human_review": "unreviewed",
          "bibliography": "unverified"
        },
        "issues": [],
        "todorov_status": "recovered-from-synthesis",
        "work_identity": {
          "title": "Red Mars",
          "author": "Kim Stanley Robinson",
          "year": 1992
        }
      },
      "ntsmr": {
        "version": "2.5",
        "primary_run_label": "NTSMR-2.5-claude-sonnet-4-6-low",
        "runs": {
          "NTSMR-2.3-claude-sonnet-4-6-low": {
            "pipeline_version": "2.3",
            "backend": "claude",
            "model": "claude-sonnet-4-6",
            "scores": {
              "time_linearity": 0.3,
              "pacing_velocity": 0.75,
              "threat_scale": 0.85,
              "protagonist_fate": 0.45,
              "conflict_style": 0.65,
              "price_type": 0.8
            },
            "score_space": "site-v1",
            "reasoning_effort": "low"
          },
          "NTSMR-2.4-claude-sonnet-4-6-low": {
            "pipeline_version": "2.4",
            "backend": "claude",
            "model": "claude-sonnet-4-6",
            "scores": {
              "time_linearity": 0.28,
              "pacing_velocity": 0.58,
              "threat_scale": 0.82,
              "protagonist_fate": 0.38,
              "conflict_style": 0.52,
              "price_type": 0.42
            },
            "score_space": "site-v1",
            "reasoning_effort": "low"
          },
          "NTSMR-2.5-claude-sonnet-4-6-low": {
            "pipeline_version": "2.5",
            "backend": "claude",
            "model": "claude-sonnet-4-6",
            "scores": {
              "time_linearity": 0.28,
              "pacing_velocity": 0.72,
              "threat_scale": 0.82,
              "protagonist_fate": 0.52,
              "conflict_style": 0.68,
              "price_type": 0.65
            },
            "score_space": "site-v1",
            "reasoning_effort": "low"
          },
          "NTSMR-2.5-minimax/minimax-m2.5": {
            "pipeline_version": "2.5",
            "backend": "openrouter",
            "model": "minimax/minimax-m2.5",
            "scores": {
              "time_linearity": 0.2,
              "pacing_velocity": 0.75,
              "threat_scale": 0.75,
              "protagonist_fate": 0.55,
              "conflict_style": 0.75,
              "price_type": 0.7
            },
            "score_space": "site-v1"
          },
          "NTSMR-2.5-qwen/qwen3.5-plus-02-15": {
            "pipeline_version": "2.5",
            "backend": "openrouter",
            "model": "qwen/qwen3.5-plus-02-15",
            "scores": {
              "time_linearity": 0.25,
              "pacing_velocity": 0.7,
              "threat_scale": 0.85,
              "protagonist_fate": 0.6,
              "conflict_style": 0.65,
              "price_type": 0.5
            },
            "score_space": "site-v1"
          },
          "NTSMR-2.5-qwen/qwen3.5-397b-a17b": {
            "pipeline_version": "2.5",
            "backend": "openrouter",
            "model": "qwen/qwen3.5-397b-a17b",
            "scores": {
              "time_linearity": 0.2,
              "pacing_velocity": 0.75,
              "threat_scale": 0.85,
              "protagonist_fate": 0.6,
              "conflict_style": 0.7,
              "price_type": 0.45
            },
            "score_space": "site-v1"
          },
          "NTSMR-2.5-z-ai/glm-4.7": {
            "pipeline_version": "2.5",
            "backend": "openrouter",
            "model": "z-ai/glm-4.7",
            "scores": {
              "time_linearity": 0.25,
              "pacing_velocity": 0.65,
              "threat_scale": 0.85,
              "protagonist_fate": 0.45,
              "conflict_style": 0.7,
              "price_type": 0.5
            },
            "score_space": "site-v1"
          },
          "NTSMR-2.5-z-ai/glm-5": {
            "pipeline_version": "2.5",
            "backend": "openrouter",
            "model": "z-ai/glm-5",
            "scores": {
              "time_linearity": 0.2,
              "pacing_velocity": 0.7,
              "threat_scale": 0.8,
              "protagonist_fate": 0.5,
              "conflict_style": 0.65,
              "price_type": 0.45
            },
            "score_space": "site-v1"
          },
          "NTSMR-2.5-balanced-glm-5+deepseek-v3.2": {
            "pipeline_version": "2.5",
            "backend": "openrouter",
            "model": "balanced-routing",
            "scores": {
              "time_linearity": 0.2,
              "pacing_velocity": 0.7,
              "threat_scale": 0.8,
              "protagonist_fate": 0.6,
              "conflict_style": 0.65,
              "price_type": 0.5
            },
            "score_space": "site-v1",
            "score_only": true,
            "source_run_label": "NTSMR-2.5-claude-sonnet-4-6-low"
          }
        }
      },
      "todorov_stages": {
        "equilibrium": "The First Hundred establish a functioning if fractious colony at Underhill, with shared scientific mission, communal social structure, and an open terraforming debate operating through legitimate discourse. The underground sanctuaries sustain a parallel society governed by Coyote's gift economy and Hiroko's areophany, maintaining an uneasy but stable coexistence with UNTA authority.",
        "disruption": "Transnational corporations exploit the space elevator to flood Mars with emigrants, bypass treaty limits, and assert corporate sovereignty; John Boone is assassinated, eliminating the colony's unifying political figure; the 2061 revolution fails catastrophically with the elevator cable's destruction and Phobos fragmenting, leaving Mars under direct transnational occupation through the UN Transitional Authority.",
        "recognition": "Multiple converging recognitions accumulate: Sax identifies that the longevity treatment's unequal distribution was the proximate cause of 2061 and that transnationals now constitute the only real authority on Mars; Maya learns through Zeyk's testimony that Frank manipulated Selim el-Hayil into killing John Boone; Ann witnesses accelerating terraforming transformation destroying the pristine Mars she loved and resolves to join the Reds; the underground collectively recognizes that a second revolution is necessary.",
        "repair": "Nirgal, Art, and Coyote tour the underground cells building political consensus; the Dorsa Brevia congress assembles the fractured underground factions—Bogdanovists, Reds, issei survivors, Praxis representatives—around a seven-point governance document; Nadia leads the liberation of Underhill; Maya delivers a sovereignty declaration to tens of thousands in Burroughs; Praxis provides diplomatic and economic partnership to legitimize Martian independence.",
        "new_equilibrium": "Mars achieves a fragile independence—most cities declare sovereignty, UNTA forces withdraw or are expelled, the Dorsa Brevia document serves as a constitutional foundation—though the survivors acknowledge Earth will inevitably respond and that governance must be established urgently. The exhausted First Hundred mourn their dead and move forward to join the celebration, inhabiting an altered world shaped by loss and hard-won political transformation."
      },
      "characters": [
        {
          "name": "Frank Chalmers",
          "slug": "frank-chalmers",
          "aliases": [
            "Chalmers",
            "Frank"
          ],
          "role": "First Hundred colonist, American political operator",
          "summary": "American First Hundred member who negotiates the treaty with Earth delegates, navigates transnational corporate pressure, and later withdraws to wander with Bedouin caravans."
        },
        {
          "name": "John Boone",
          "slug": "john-boone",
          "aliases": [
            "Boone",
            "John"
          ],
          "role": "First Hundred leader",
          "summary": "American colonist who convenes the First Hundred, confronts Hiroko about her secrecy, delivers a speech on democracy versus capitalism, and is later assassinated."
        },
        {
          "name": "Zeyk",
          "slug": "zeyk",
          "aliases": [],
          "role": "Arab elder",
          "summary": "Elderly Bedouin leader who witnessed John Boone's murder and provides testimony about Frank Chalmers's involvement."
        },
        {
          "name": "Selim el-Hayil",
          "slug": "selim-el-hayil",
          "aliases": [
            "Selim"
          ],
          "role": "Young Saudi colonist",
          "summary": "Arab radical who died in Zeyk's arms after participating in John Boone's murder, implicated Frank Chalmers with his final words."
        },
        {
          "name": "Maya Toitovna",
          "slug": "maya-toitovna",
          "aliases": [
            "Maya"
          ],
          "role": "First Hundred colonist, Russian leader",
          "summary": "First Hundred colonist and resistance coordinator, struggling with health issues and déjà vu while trying to restrain radical factions and coordinate the underground movement."
        },
        {
          "name": "Sax Russell",
          "slug": "sax-russell",
          "aliases": [
            "Sax",
            "Saxifrage Russell",
            "Stephen Lindholm"
          ],
          "role": "First Hundred terraformer",
          "summary": "First Hundred terraforming scientist with speech difficulties from past trauma, advocating for decapitation strategy while gathering intelligence on metanationals and engaging Ann in their decades-old debate."
        },
        {
          "name": "Michel Duval",
          "slug": "michel-duval",
          "aliases": [
            "Michel"
          ],
          "role": "First Hundred psychiatrist",
          "summary": "First Hundred colonist serving as group's psychiatrist, experiencing dissociative episodes and visions of Earth while losing time on Mars."
        },
        {
          "name": "Arkady",
          "slug": "arkady",
          "aliases": [
            "Arkady Nikelyovich"
          ],
          "role": "Russian colonist, revolutionary",
          "summary": "Advocates for Martian independence and communal society; works with Nadia on habitat design; disturbed when excluded from secret terraforming plot."
        },
        {
          "name": "Phyllis Boyle",
          "slug": "phyllis-boyle",
          "aliases": [
            "Phyllis"
          ],
          "role": "antagonist/love_interest",
          "summary": "First Hundred colonist, former president of Transitional Authority, fails to recognize Sax during field trip to Arena Glacier."
        },
        {
          "name": "Ann Clayborne",
          "slug": "ann-clayborne",
          "aliases": [
            "Ann"
          ],
          "role": "geologist, preservationist",
          "summary": "First Hundred geologist leading opposition to terraforming, arguing that a viable surface enables mass emigration that would doom Martian independence, subdued compared to her famous earlier debates."
        },
        {
          "name": "Nadia",
          "slug": "nadia",
          "aliases": [
            "Nadezhda Francine",
            "Nadezhda Francine Cherneshevsky"
          ],
          "role": "First Hundred colonist, Russian engineer",
          "summary": "First Hundred engineer coordinating the Dorsa Brevia congress, providing stability and practical leadership while observing the fractious proceedings with mixed hope and concern."
        },
        {
          "name": "Hiroko",
          "slug": "hiroko",
          "aliases": [],
          "role": "Hidden colony founder",
          "summary": "Japanese biologist who led a secret group underground for twenty years, created children from First Hundred genetic samples, and defends her vision of an alternative Martian society."
        },
        {
          "name": "Spencer",
          "slug": "spencer",
          "aliases": [],
          "role": "Resistance member",
          "summary": "Engineer working with Sax on terraforming, Maya's housemate who notes unusual atmospheric oxygen increases"
        },
        {
          "name": "Vlad",
          "slug": "vlad",
          "aliases": [],
          "role": "First Hundred colonist",
          "summary": "Colonist at Acheron Fossae developing cryptogamic crust organisms and GEMs for terraforming."
        },
        {
          "name": "Gene",
          "slug": "gene",
          "aliases": [],
          "role": "worker",
          "summary": "Brickmaker concerned about tensile strength of sulphur-clay bricks"
        },
        {
          "name": "Simon",
          "slug": "simon",
          "aliases": [],
          "role": "Colonist, resistance worker",
          "summary": "Peter's father, dies of resistant leukemia; his body is moved with the biomass during relocation."
        },
        {
          "name": "Helmut Bronski",
          "slug": "helmut-bronski",
          "aliases": [],
          "role": "UNOMA administrator",
          "summary": "German former finance minister, UNOMA factor negotiating transnational mining concessions that violate Mars treaty."
        },
        {
          "name": "Ursula",
          "slug": "ursula",
          "aliases": [],
          "role": "First Hundred colonist",
          "summary": "Colonist at Acheron Fossae running medical clinic, offers John experimental gerontological treatment."
        },
        {
          "name": "Coyote",
          "slug": "coyote",
          "aliases": [
            "Desmond"
          ],
          "role": "underground operative",
          "summary": "Legendary stowaway figure; travels between sanctuaries managing economic exchange, challenges orthodoxy, serves as father figure to Nirgal."
        },
        {
          "name": "Dhu",
          "slug": "dhu",
          "aliases": [],
          "role": "minor character",
          "summary": "Sufi at caravanserai who discusses the concept of nafs (shadow self) with John."
        },
        {
          "name": "Mary",
          "slug": "mary",
          "aliases": [],
          "role": "minor character",
          "summary": "Well operator who caps a blown well during the storm."
        },
        {
          "name": "Marian",
          "slug": "marian",
          "aliases": [],
          "role": "revolutionary",
          "summary": "Underground operative who shows John the hidden Senzeni Na habitat."
        },
        {
          "name": "Sam Houston",
          "slug": "sam-houston",
          "aliases": [],
          "role": "antagonist",
          "summary": "UNOMA investigator who confronts John in his quarters."
        },
        {
          "name": "Michael Chang",
          "slug": "michael-chang",
          "aliases": [],
          "role": "antagonist",
          "summary": "UNOMA investigator working with Houston to interrogate John."
        },
        {
          "name": "Andy Jahns",
          "slug": "andy-jahns",
          "aliases": [],
          "role": "Transnational lobbyist",
          "summary": "Corporate representative who offers Frank a disguised bribe and later reveals transnationals are relocating to circumvent the treaty."
        },
        {
          "name": "Zeyk Tuqan",
          "slug": "zeyk-tuqan",
          "aliases": [],
          "role": "Bedouin leader",
          "summary": "Leader of an Arab caravan on the Great Escarpment who welcomes Frank to join their mobile mining operation."
        },
        {
          "name": "Slusinski",
          "slug": "slusinski",
          "aliases": [],
          "role": "Engineer working with Frank",
          "summary": "Frank's staff member who informs him of strikes and emergencies"
        },
        {
          "name": "Yeli Zudov",
          "slug": "yeli-zudov",
          "aliases": [
            "Yeli"
          ],
          "role": "Colonist, resistance worker",
          "summary": "Works with Nadia on emergency repairs and monitors news of the war"
        },
        {
          "name": "Sam",
          "slug": "sam",
          "aliases": [],
          "role": "Colonist, resistance worker",
          "summary": "Reports on Lowell aquifer breakout and destruction of transnational towns"
        },
        {
          "name": "Alexander Zhalin",
          "slug": "alexander-zhalin",
          "aliases": [
            "Alexander"
          ],
          "role": "Colonist in Nicosia",
          "summary": "Greets Frank and Maya in Nicosia when they arrive seeking Arkady"
        },
        {
          "name": "Kasei",
          "slug": "kasei",
          "aliases": [],
          "role": "separatist leader",
          "summary": "Hiroko's son emerging as leader of the Marsfirst group, a separatist wing advocating any means necessary to achieve independence from Earth."
        },
        {
          "name": "Sasha",
          "slug": "sasha",
          "aliases": [],
          "role": "victim",
          "summary": "Colonist killed in the lock during the missile attack on the rover caravan."
        },
        {
          "name": "Nirgal",
          "slug": "nirgal",
          "aliases": [],
          "role": "Resistance organizer",
          "summary": "Young Martian raised at Zygote; Hiroko's son, experiencing the loss of childhood and first romantic heartbreak over Jackie."
        },
        {
          "name": "Jackie",
          "slug": "jackie",
          "aliases": [],
          "role": "Martian political figure",
          "summary": "Martian native and John Boone's granddaughter defending the concept of areoforming, emerging as a powerful voice for the younger generation against the First Hundred's established positions."
        },
        {
          "name": "Dao",
          "slug": "dao",
          "aliases": [],
          "role": "rival",
          "summary": "Young Martian man; Jackie's lover, leads the exclusion of Nirgal from the peer group."
        },
        {
          "name": "Peter",
          "slug": "peter",
          "aliases": [],
          "role": "supporting character",
          "summary": "Works on the space elevator; contacts Sax about the Deimos collision risk."
        },
        {
          "name": "William Fort",
          "slug": "william-fort",
          "aliases": [
            "Fort"
          ],
          "role": "Praxis corporation head",
          "summary": "Head of Praxis corporation explaining the metanational system and offering Praxis as a progressive alternative, participating in the congress and even joining the ritual bathing."
        },
        {
          "name": "Art Randolph",
          "slug": "art-randolph",
          "aliases": [
            "Arthur Randolph",
            "Randolph"
          ],
          "role": "Praxis executive",
          "summary": "Praxis corporation executive working with the resistance, provides intelligence about metanational politics and serves as Maya's confidant."
        },
        {
          "name": "Zafir",
          "slug": "zafir",
          "aliases": [],
          "role": "Salvage project head",
          "summary": "Heads the fallen cable salvage project for Ouroborous, expert in buckminsterfullerenes."
        },
        {
          "name": "Adrienne",
          "slug": "adrienne",
          "aliases": [],
          "role": "Tour guide",
          "summary": "Guides Art around Sheffield explaining the history of the town's destruction."
        },
        {
          "name": "Sharon",
          "slug": "sharon",
          "aliases": [],
          "role": "Art's former partner",
          "summary": "Art's ex-partner who is angry when he tells her he's leaving for Mars."
        },
        {
          "name": "Claire",
          "slug": "claire",
          "aliases": [],
          "role": "Biotique scientist",
          "summary": "Japanese woman who runs the Biotique lab where Sax works, assigns him to plant design for glaciated regions."
        },
        {
          "name": "Berkina",
          "slug": "berkina",
          "aliases": [],
          "role": "colleague",
          "summary": "Kenyan man working at Biotique, discusses political situation and underground resistance with Sax."
        },
        {
          "name": "Jessica",
          "slug": "jessica",
          "aliases": [],
          "role": "Biotique scientist",
          "summary": "Biotique colleague who characterizes the new terraforming approach as a 'two-phase, heavy-industrial model.'"
        },
        {
          "name": "Vijjika",
          "slug": "vijjika",
          "aliases": [],
          "role": "Sanctuary host",
          "summary": "Runs a Bogdanovist sanctuary, provides kavajava and hospitality to travelers."
        },
        {
          "name": "Dhu el-Nun",
          "slug": "dhu-el-nun",
          "aliases": [],
          "role": "Sufi leader",
          "summary": "Small black man who leads the Sufi settlement and offers spiritual and practical guidance."
        },
        {
          "name": "Charlotte",
          "slug": "charlotte",
          "aliases": [],
          "role": "constitutional scholar",
          "summary": "Dorsa Brevia constitutional scholar building a Swiss-like governmental framework that orders topics without filling them in, drawing on historical models including the American constitutional convention."
        },
        {
          "name": "Marina",
          "slug": "marina",
          "aliases": [],
          "role": "First Hundred colonist",
          "summary": "Vlad's companion; participates in resistance planning discussions."
        },
        {
          "name": "Diana",
          "slug": "diana",
          "aliases": [],
          "role": "Fourth-generation Martian",
          "summary": "Large, athletic yonsei working on the Hellas Basin water project."
        },
        {
          "name": "Nazik",
          "slug": "nazik",
          "aliases": [],
          "role": "witness",
          "summary": "Zeyk's wife who was present during Selim el-Hayil's death and corroborates the testimony."
        },
        {
          "name": "Nanao Nakayama",
          "slug": "nanao-nakayama",
          "aliases": [],
          "role": "ally",
          "summary": "Issei colonist managing Sabishii's underground maze, reports on Hiroko's disappearance."
        },
        {
          "name": "Hastings",
          "slug": "hastings",
          "aliases": [],
          "role": "supporting",
          "summary": "UNTA security official who frantically warns about dike occupation before cutting communication."
        }
      ],
      "frameworks_mapped": [
        "Protocol Fiction Mapping",
        "Actantial Model",
        "Todorov's Equilibrium",
        "The Freytag Pyramid",
        "Propp's Morphology",
        "Genette's Narrative",
        "The Monomyth",
        "Dan Harmon",
        "Save the Cat",
        "Kishotenketsu",
        "The Three-Act Structure",
        "Levi-Strauss's Binary Oppositions",
        "Cognitive Estrangement",
        "Bakhtin's Chronotope",
        "Aristotelian Poetics",
        "Jungian Archetypal Analysis",
        "Genette's Transtextuality"
      ],
      "score_reliability": {
        "state": "contested",
        "threshold": 0.2,
        "runs_total": 9,
        "versions_compared": [
          "2.5"
        ],
        "max_spread": 0.25,
        "contested": [
          {
            "axis": "price_type",
            "version": "2.5",
            "spread": 0.25,
            "low": {
              "label": "NTSMR-2.5-qwen/qwen3.5-397b-a17b",
              "model": "qwen/qwen3.5-397b-a17b",
              "effort": "?",
              "value": 0.45
            },
            "high": {
              "label": "NTSMR-2.5-minimax/minimax-m2.5",
              "model": "minimax/minimax-m2.5",
              "effort": "?",
              "value": 0.7
            }
          }
        ]
      }
    },
    {
      "slug": "john_scalzi_redshirts",
      "title": "Redshirts",
      "author": "John Scalzi",
      "year": 2012,
      "medium": "book",
      "genre_tags": [],
      "tropes": [],
      "quadrant_scores": {
        "time_linearity": 0.45,
        "pacing_velocity": 0.55,
        "threat_scale": 0.45,
        "protagonist_fate": 0.35,
        "conflict_style": 0.65,
        "price_type": 0.65
      },
      "provenance": {
        "analysis_run": "NTSMR-2.5-claude-sonnet-4-6-low",
        "analysis_body_sha256": "a50dff5cbce248aa24ed93ddf83effb42cb7f853d27fabbea8f93b8e0cf71efc",
        "synthesis": {
          "path": "nartopo-tools/artifacts/john_scalzi_redshirts.md.ntsmr-2-5-claude-sonnet-4-6-low.synthesis.json",
          "sha256": "d214743e03a3a57d7cfdc95ee975ff4edbe8b6266ef3911050c011c3bb002262"
        },
        "report": {
          "path": "nartopo-tools/artifacts/john_scalzi_redshirts.md.ntsmr-2-5-claude-sonnet-4-6-low.report.json",
          "sha256": "f9cde4343593ea0fb2213694609442c7a0a07e2bcd5f408d34f19692be1241db"
        },
        "source": {
          "path": "John Scalzi/Redshirts.txt",
          "sha256": "bd6cb518210ed4ff4c3e44f5c8b61920ca08171ba7bc15fe2853a956a13f96cb",
          "digest_observed_at": "2026-09-09",
          "digest_at_analysis_run": null,
          "edition": null,
          "edition_status": "unresolved"
        },
        "pipeline_revision_at_run": null,
        "verification": {
          "source": "unverified",
          "human_review": "unreviewed",
          "bibliography": "unverified"
        },
        "issues": [],
        "todorov_status": "recovered-from-synthesis",
        "work_identity": {
          "title": "Redshirts",
          "author": "John Scalzi",
          "year": 2012
        }
      },
      "ntsmr": {
        "version": "2.5",
        "primary_run_label": "NTSMR-2.5-claude-sonnet-4-6-low",
        "runs": {
          "NTSMR-2.4-claude-sonnet-4-6-low": {
            "pipeline_version": "2.4",
            "backend": "claude",
            "model": "claude-sonnet-4-6",
            "scores": {
              "time_linearity": 0.45,
              "pacing_velocity": 0.3,
              "threat_scale": 0.35,
              "protagonist_fate": 0.28,
              "conflict_style": 0.55,
              "price_type": 0.55
            },
            "score_space": "site-v1",
            "reasoning_effort": "low"
          },
          "NTSMR-2.5-claude-sonnet-4-6-low": {
            "pipeline_version": "2.5",
            "backend": "claude",
            "model": "claude-sonnet-4-6",
            "scores": {
              "time_linearity": 0.45,
              "pacing_velocity": 0.55,
              "threat_scale": 0.45,
              "protagonist_fate": 0.35,
              "conflict_style": 0.65,
              "price_type": 0.65
            },
            "score_space": "site-v1",
            "reasoning_effort": "low"
          },
          "NTSMR-2.5-balanced-glm-5+deepseek-v3.2": {
            "pipeline_version": "2.5",
            "backend": "openrouter",
            "model": "balanced-routing",
            "scores": {
              "time_linearity": 0.3,
              "pacing_velocity": 0.6,
              "threat_scale": 0.6,
              "protagonist_fate": 0.5,
              "conflict_style": 0.65,
              "price_type": 0.6
            },
            "score_space": "site-v1",
            "score_only": true,
            "source_run_label": "NTSMR-2.5-claude-sonnet-4-6-low"
          }
        }
      },
      "todorov_stages": {
        "equilibrium": "The crew of the Intrepid operates under an assumed status quo: they are real people aboard a real starship, subject to dangerous but comprehensible missions. New ensigns Dahl and his cohort arrive and are integrated into ship life, with departments, ranks, and protocols functioning as expected.",
        "disruption": "The away mission massacre—in which Cassaway and Mbeke are killed by venomous creatures while Dahl barely survives—combined with Jenkins' revelation that the crew exist inside a lazily written television show called Chronicles of the Intrepid, whose writers cause real deaths through careless plotting. The Narrative overrides free will and physics to generate drama, making unnamed crew expendable.",
        "recognition": "Dahl and his friends piece together the truth through accumulating evidence: Kerensky's impossible medical records, Kerensky's own admission that he loses autonomous reasoning on away missions, Jenkins' statistical proof that only five officers are consistently protected from death, and Jenkins' central thesis that the Intrepid is a fictional construct whose crew are unknowingly scripted characters.",
        "repair": "Dahl exploits a Narrative-assigned away mission to secure a handpicked crew and a shuttle, then travels via black hole to 21st-century Los Angeles to confront the show's writers directly. He and his crew present writer Weinstein with a death count of over 400 crew members and negotiate with showrunner Paulson to change how the show is written, demanding meaningful deaths and reduced crew attrition going forward.",
        "new_equilibrium": "Dahl survives being impaled through the liver—rescued by Jenkins—wakes four days later, is promoted to Lieutenant by Q'eeng, and learns the mission succeeded. The codas establish a transformed but imperfect reality: Weinstein resolves to write better deaths, Matthew Paulson's body shows impossible recovery, and the closing vignette of Ensign Davis dying to Borgovian Land Worms confirms the cycle of crew attrition continues aboard the Intrepid, but now with the awareness that the writers bear moral responsibility for it."
      },
      "characters": [
        {
          "name": "Andrew Dahl",
          "slug": "andrew-dahl",
          "aliases": [
            "Andy",
            "Dill (misnamed by Abernathy)",
            "Dahl"
          ],
          "role": "Protagonist, Ensign/xenobiologist",
          "summary": "Ensign and xenobiologist; drives investigation into the Narrative through deductive reasoning and persistent questioning; seminary background noted as relevant to his openness to Jenkins' theory."
        },
        {
          "name": "Finn",
          "slug": "finn",
          "aliases": [],
          "role": "Dead crewman / Dream interlocutor",
          "summary": "Sardonic ensign with a background in quasi-legal alien substances; the group's primary voice of skepticism against Jenkins' theory; transferred after his XO went berserk on Xeno-pseudoagaricus."
        },
        {
          "name": "Maia Duvall",
          "slug": "maia-duvall",
          "aliases": [
            "Maia",
            "Duvall"
          ],
          "role": "Ensign, core group member",
          "summary": "Sedated by Finn to keep her off the away mission; later drugs Kerensky as part of the kidnapping plan; ends her relationship with Kerensky after he confronts his double."
        },
        {
          "name": "Hester",
          "slug": "hester",
          "aliases": [
            "Jasper Allen Hester"
          ],
          "role": "Ensign / Swap survivor",
          "summary": "Reveals his full name as Jasper; confronts his identity as a placeholder character; discovers his double is the comatose Matthew Paulson; volunteers to stay in the 21st century as Matthew's stand-in."
        },
        {
          "name": "Jimmy Hanson",
          "slug": "jimmy-hanson",
          "aliases": [
            "Hanson"
          ],
          "role": "Ensign / Narrative function",
          "summary": "Provides detailed research on science fiction TV shows to contextualize the crew's situation; delivers the death-count statistics to Weinstein; stays with Hester during the Paulson meeting."
        },
        {
          "name": "Anatoly Kerensky",
          "slug": "anatoly-kerensky",
          "aliases": [
            "Lieutenant Kerensky"
          ],
          "role": "Lieutenant, main character / kidnap target",
          "summary": "Participates in the Nantes away mission; is drugged unconscious by Duvall and used as the crew's Narrative-physics insurance for the shuttle; meets his actor-double Marc Corey; ends relationship with Duvall."
        },
        {
          "name": "Jenkins",
          "slug": "jenkins",
          "aliases": [],
          "role": "Theorist / Threshold guardian",
          "summary": "Reclusive crewman who has mapped the Narrative; lives hidden in cargo distribution hubs; reluctant guide with a sentimental attachment to the Xenobiology Lab; introduces the Enterprise comparison."
        },
        {
          "name": "Commander Q'eeng",
          "slug": "commander-qeeng",
          "aliases": [
            "Science Officer Q'eeng"
          ],
          "role": "Senior officer / Narrative instrument",
          "summary": "Assigns Dahl to the Forshan translation mission and authorizes Dahl's self-selected team, inadvertently supplying the shuttle needed for the escape plan."
        },
        {
          "name": "Cassaway",
          "slug": "cassaway",
          "aliases": [],
          "role": "Expendable crewman",
          "summary": "Xenobiology crewman who blames Dahl for the away mission assignment and is killed by creatures on the colony planet."
        },
        {
          "name": "Mbeke",
          "slug": "mbeke",
          "aliases": [
            "Fiona"
          ],
          "role": "Expendable crewman",
          "summary": "Xenobiology crewman; inadvertently mentioned Jenkins to Q'eeng; killed alongside Cassaway on the away mission."
        },
        {
          "name": "Collins",
          "slug": "collins",
          "aliases": [],
          "role": "Department head / Opponent",
          "summary": "Xenobiology department head who deliberately assigns Dahl to the away mission to protect herself and Ben Trin, exploiting his newcomer status."
        },
        {
          "name": "Captain Abernathy",
          "slug": "captain-abernathy",
          "aliases": [
            "Lucius"
          ],
          "role": "Commanding officer / Narrative anchor",
          "summary": "Leads the Nantes away team; makes a reckless solo run to deactivate the cargo carts; misreads Dahl's manipulation as command anxiety and delivers an inspirational speech that greenlit the plan."
        },
        {
          "name": "Ensign Grover",
          "slug": "ensign-grover",
          "aliases": [],
          "role": "Unnamed ensign / expendable crew",
          "summary": "Assigned to Kerensky and Q'eeng's sub-team on the Nantes; killed immediately by a cargo-cart pulse beam, fulfilling the Narrative's demand for a victim."
        },
        {
          "name": "Brian Abnett",
          "slug": "brian-abnett",
          "aliases": [
            "Brian"
          ],
          "role": "21st-century actor, doppelgänger of Dahl",
          "summary": "Advises the crew to use Kerensky's resemblance to Marc Corey to infiltrate the Vine Club and reach showrunner Paulson; reflects on his own non-existence in Dahl's timeline."
        },
        {
          "name": "Marc Corey",
          "slug": "marc-corey",
          "aliases": [],
          "role": "21st-century actor playing Kerensky",
          "summary": "Referenced as the means of accessing the Vine Club; Kerensky meets him and has an intense emotional encounter that he experiences as profound self-recognition."
        },
        {
          "name": "Nick Weinstein",
          "slug": "nick-weinstein",
          "aliases": [
            "Anon-a-Writer"
          ],
          "role": "Head writer of Chronicles of the Intrepid",
          "summary": "Senior writer on Chronicles of the Intrepid who posts anonymously online after discovering the characters he writes are real; paralyzed by writer's block until a dream confrontation with dead characters."
        },
        {
          "name": "Samantha Martinez",
          "slug": "samantha-martinez",
          "aliases": [],
          "role": "Actress / real-world counterpart of Margaret Jenkins",
          "summary": "Receives a holographic projector from Dahl showing images of her actress-double Margaret and Jenkins's fictional counterpart; was briefly an actress before becoming a teacher."
        },
        {
          "name": "Charles Paulson",
          "slug": "charles-paulson",
          "aliases": [
            "you",
            "Crewman Hester"
          ],
          "role": "Showrunner/executive producer of Chronicles of the Intrepid",
          "summary": "Meets the crew at his Burbank office; discovers Hester is the double of his comatose son Matthew; breaks down in gratitude when Hester volunteers to stay; is presented with Dahl's list of demands."
        },
        {
          "name": "Sandra",
          "slug": "sandra",
          "aliases": [],
          "role": "Law intern / Helper",
          "summary": "Meets Matthew for lunch; uses a law-firm contact to illegally obtain his medical records; old friend with shared privileged background."
        },
        {
          "name": "Davis",
          "slug": "davis",
          "aliases": [
            "Ensign Davis"
          ],
          "role": "Minor crewman / Sacrificial extra",
          "summary": "Admiral's son stationed on security detail; fires pulse gun into a land-worm-infested cave floor against implicit warning, triggering a frenzy that kills him."
        },
        {
          "name": "West",
          "slug": "west",
          "aliases": [
            "Lieutenant West",
            "Chief Engineer West"
          ],
          "role": "Bridge officer",
          "summary": "Consoles Abernathy after Davis's death; privately disparages Davis's intelligence to Q'eeng."
        },
        {
          "name": "Chen",
          "slug": "chen",
          "aliases": [],
          "role": "Minor crewman",
          "summary": "Mentioned alongside Davis as another recent crew loss; Q'eeng notes both should have known the dangers of Borgovian Land Worms."
        }
      ],
      "frameworks_mapped": [
        "Protocol Fiction Mapping",
        "Actantial Model",
        "Todorov's Equilibrium",
        "The Freytag Pyramid",
        "Propp's Morphology",
        "Genette's Narrative",
        "The Monomyth",
        "Dan Harmon",
        "Save the Cat",
        "Kishōtenketsu",
        "The Three-Act Structure",
        "Lévi-Strauss's Binary Oppositions",
        "Cognitive Estrangement",
        "Bakhtin's Chronotope",
        "Aristotelian Poetics",
        "Jungian Archetypal Analysis",
        "Genette's Transtextuality"
      ],
      "score_reliability": {
        "state": "replicated-agree",
        "threshold": 0.2,
        "runs_total": 3,
        "versions_compared": [
          "2.5"
        ],
        "max_spread": 0.15,
        "contested": []
      }
    },
    {
      "slug": "arthur_c_clarke_rendezvous_with_rama",
      "title": "Rendezvous with Rama",
      "author": "Arthur C. Clarke",
      "year": 1973,
      "medium": "book",
      "genre_tags": [
        "sf",
        "hard sf",
        "first contact"
      ],
      "tropes": [],
      "quadrant_scores": {
        "time_linearity": 0.12,
        "pacing_velocity": 0.55,
        "threat_scale": 0.75,
        "protagonist_fate": 0.52,
        "conflict_style": 0.55,
        "price_type": 0.75
      },
      "provenance": {
        "analysis_run": "NTSMR-2.5-claude-sonnet-4-6-low",
        "analysis_body_sha256": "8d4d179d9cc7d4e8a0e9a1d8be98508bb5e8fadd2d04e15512397bfc5fc54058",
        "synthesis": {
          "path": "nartopo-tools/artifacts/arthur_c_clarke_rendezvous_with_rama.md.ntsmr-2-5-claude-sonnet-4-6-low.synthesis.json",
          "sha256": "279f939278350d106358b02788f4583987cba61cc7d957e400d21633710e754d"
        },
        "report": {
          "path": "nartopo-tools/artifacts/arthur_c_clarke_rendezvous_with_rama.md.ntsmr-2-5-claude-sonnet-4-6-low.report.json",
          "sha256": "ea3634a2ff433f602349606a52211bb11e790ee68e49d867265d6ac536ec3dc8"
        },
        "source": {
          "path": "Arthur C. Clarke/Rendezvous with Rama.txt",
          "sha256": "179e97cae882808c4be89e974af934809223a45a7b5b27911f49909be68ef76e",
          "digest_observed_at": "2026-09-09",
          "digest_at_analysis_run": null,
          "edition": null,
          "edition_status": "unresolved"
        },
        "pipeline_revision_at_run": null,
        "verification": {
          "source": "unverified",
          "human_review": "unreviewed",
          "bibliography": "unverified"
        },
        "issues": [],
        "todorov_status": "recovered-from-synthesis",
        "work_identity": {
          "title": "Rendezvous with Rama",
          "author": "Arthur C. Clarke",
          "year": 1973
        }
      },
      "ntsmr": {
        "version": "2.5",
        "primary_run_label": "NTSMR-2.5-claude-sonnet-4-6-low",
        "runs": {
          "NTSMR-2.3-claude-sonnet-4-6-low": {
            "pipeline_version": "2.3",
            "backend": "claude",
            "model": "claude-sonnet-4-6",
            "scores": {
              "time_linearity": 0.1,
              "pacing_velocity": 0.75,
              "threat_scale": 0.72,
              "protagonist_fate": 0.35,
              "conflict_style": 0.78,
              "price_type": 0.62
            },
            "score_space": "site-v1",
            "reasoning_effort": "low"
          },
          "NTSMR-2.4-claude-sonnet-4-6-low": {
            "pipeline_version": "2.4",
            "backend": "claude",
            "model": "claude-sonnet-4-6",
            "scores": {
              "time_linearity": 0.12,
              "pacing_velocity": 0.38,
              "threat_scale": 0.8,
              "protagonist_fate": 0.55,
              "conflict_style": 0.4,
              "price_type": 0.65
            },
            "score_space": "site-v1",
            "reasoning_effort": "low"
          },
          "NTSMR-2.5-claude-sonnet-4-6-low": {
            "pipeline_version": "2.5",
            "backend": "claude",
            "model": "claude-sonnet-4-6",
            "scores": {
              "time_linearity": 0.12,
              "pacing_velocity": 0.55,
              "threat_scale": 0.75,
              "protagonist_fate": 0.52,
              "conflict_style": 0.55,
              "price_type": 0.75
            },
            "score_space": "site-v1",
            "reasoning_effort": "low"
          },
          "NTSMR-2.5-balanced-glm-5+deepseek-v3.2": {
            "pipeline_version": "2.5",
            "backend": "openrouter",
            "model": "balanced-routing",
            "scores": {
              "time_linearity": 0.18,
              "pacing_velocity": 0.68,
              "threat_scale": 0.72,
              "protagonist_fate": 0.52,
              "conflict_style": 0.62,
              "price_type": 0.78
            },
            "score_space": "site-v1",
            "score_only": true,
            "source_run_label": "NTSMR-2.5-claude-sonnet-4-6-low"
          }
        }
      },
      "todorov_stages": {
        "equilibrium": "Humanity operates a functional Spaceguard system and the solar system is a known, human-navigable domain. The crew of Endeavour conducts routine deep-space operations, and the United Planets governs interplanetary affairs in stable, if politically contentious, equilibrium. No alien contact has ever occurred.",
        "disruption": "Object 31/439 — Rama — is detected on a hyperbolic, non-asteroidal trajectory, confirming it as an artificial interstellar visitor. This shatters the prior assumption that humanity is alone and that the solar system belongs exclusively to human civilisation. The object's activation as it approaches the sun compounds the disruption: biots awaken, storms form, and an external intelligence demonstrably acts within the solar system.",
        "recognition": "Norton and the Rama Committee progressively recognise the scale and nature of the disruption through a series of analytical breakthroughs — the derelict-generation-ship theory, the discovery of triple-redundant city architecture, the crystal-pillar archive revealing a harness for a three-armed non-human creature, and the manufactured-biot hypothesis advanced at the United Planets. Each stage deepens understanding that Rama is not a relic but a functioning alien system operating on its own agenda, indifferent to humanity.",
        "repair": "Norton leads the exploration to extract maximum knowledge before Rama departs, navigating physical hazards (descent, storms, tidal wave), political threats (the Hermian missile requiring Rodrigo's solo deflection mission), and biological unknowns (Ernst's micro-organism study, biot encounters). The crew evacuates safely before Rama accelerates away. Norton achieves his mission objective — no casualties, unprecedented data — while the United Planets narrowly averts the missile strike through political intervention.",
        "new_equilibrium": "Rama departs the solar system, having used it as a refuelling stop with monumental indifference to humanity. The crew returns with irreplaceable data that will occupy scientists for decades, but the fundamental questions about Raman nature and purpose remain unanswered. Norton is left with a permanent sense of anticlimax and missed opportunity. The closing revelation — Dr Carlisle Perera's subconscious message that the Ramans do everything in threes — dissolves even this partial closure, implying the disruption was not singular but the first of an ongoing series. Humanity's equilibrium is permanently altered: the solar system is no longer exclusively human territory, and more Ramas will come."
      },
      "characters": [
        {
          "name": "Commander Norton",
          "slug": "commander-norton",
          "aliases": [
            "Norton",
            "Skipper",
            "Bill",
            "Commander",
            "Captain"
          ],
          "role": "Protagonist / mission commander",
          "summary": "Commanding officer of Endeavour; leads southern landing on New York, manages crew interviews, authorises Pak's Dragonfly mission, crosses the Sea to rescue Pak, and coordinates response to the tidal wave."
        },
        {
          "name": "Karl Mercer",
          "slug": "karl-mercer",
          "aliases": [
            "Karl",
            "Hub Control"
          ],
          "role": "First officer / life-support authority",
          "summary": "First officer who leads the final descent into Rama, questions Norton's switch to aggressive exploration, and theorizes biots cannot distinguish humans from Ramans"
        },
        {
          "name": "Laura Ernst",
          "slug": "laura-ernst",
          "aliases": [
            "Surgeon-Commander Ernst",
            "Laura",
            "Doc"
          ],
          "role": "Ship's doctor / field expedition leader",
          "summary": "Studies the micro-organisms in the Cylindrical Sea, warns the crew about the water's toxicity, and assesses Pak's fitness before and after the Dragonfly mission."
        },
        {
          "name": "Joe Calvert",
          "slug": "joe-calvert",
          "aliases": [
            "Lt Calvert",
            "Joe"
          ],
          "role": "Navigating officer",
          "summary": "Talkative junior officer; speculates on the oxygen-breathing universality of intelligent life; close companion and apparent partner of Mercer."
        },
        {
          "name": "Ambassador Bose",
          "slug": "ambassador-bose",
          "aliases": [
            "Dr Bose",
            "His Excellency the Ambassador of Mars"
          ],
          "role": "Rama Committee chairman",
          "summary": "Chairs the Committee representing Mars; steers debate toward consensus with minimal intervention; convenes the emergency storm-warning session."
        },
        {
          "name": "Hermian Ambassador",
          "slug": "hermian-ambassador",
          "aliases": [
            "the Hermian Ambassador"
          ],
          "role": "Political antagonist",
          "summary": "Mercury's United Planets representative who addresses the General Assembly warning of Rama's dangers and implicitly justifying the missile strike"
        },
        {
          "name": "Ruby Barnes",
          "slug": "ruby-barnes",
          "aliases": [
            "Sergeant Barnes",
            "Sergeant Ruby Barnes",
            "Sergeant"
          ],
          "role": "crew member / helmsman",
          "summary": "Predicts the existence of docks, harbours, and ships along the Cylindrical Sea based on nautical reasoning; prompts the eastward cliff search."
        },
        {
          "name": "Pieter Rousseau",
          "slug": "pieter-rousseau",
          "aliases": [
            "Sergeant Pieter Rousseau",
            "Pieter"
          ],
          "role": "Hub observer / reconnaissance specialist",
          "summary": "Space reconnaissance instrumentation expert; third member of Ernst's party to the Cylindrical Sea, relying on portable telescope and unaided observation."
        },
        {
          "name": "Myron",
          "slug": "myron",
          "aliases": [
            "Herr Doctor Professor Sergeant Myron"
          ],
          "role": "Crew member",
          "summary": "Considered for the descent party but excluded by Laura Ernst on fitness grounds; noted for being two kilos overweight."
        },
        {
          "name": "Boris Rodrigo",
          "slug": "boris-rodrigo",
          "aliases": [
            "Rod",
            "Lt Rodrigo",
            "Boris"
          ],
          "role": "Communications officer / pilot",
          "summary": "Devout member of the Fifth Church of Christ, Cosmonaut; quiet, dignified, reliable; cautious in theological and scientific speculation; veteran of the Paris sortie."
        },
        {
          "name": "Dr. Carlisle Perera",
          "slug": "dr-carlisle-perera",
          "aliases": [
            "Dr Perera"
          ],
          "role": "Rama Committee scientist",
          "summary": "Rama Committee scientist whose template-manufacturing theory is endorsed by the Hermian Ambassador; delivers the novel's final line about Ramans doing everything in threes"
        },
        {
          "name": "Jimmy Pak",
          "slug": "jimmy-pak",
          "aliases": [
            "Lt. Pak",
            "Lt. James Pak",
            "Dragonfly"
          ],
          "role": "junior officer / aviator",
          "summary": "Lunar Olympics sky-bike athlete who smuggles Dragonfly aboard and flies it to the southern continent; encounters the crab-creature, is stranded, and is rescued by Norton."
        },
        {
          "name": "Crab creature",
          "slug": "crab-creature",
          "aliases": [
            "the crab",
            "the beetle"
          ],
          "role": "Raman entity",
          "summary": "Large, possibly robotic crab-like organism that systematically dismantles Dragonfly and collects the pieces on its back before departing towards the Sea, ignoring Pak entirely."
        },
        {
          "name": "Jerry Kirchoff",
          "slug": "jerry-kirchoff",
          "aliases": [
            "Jerry",
            "the Exec"
          ],
          "role": "supporting",
          "summary": "Executive officer who crosses to the Hub during sleeping hours to deliver a can of toothpaste on the skipper's behalf"
        },
        {
          "name": "Sergeant Myron",
          "slug": "sergeant-myron",
          "aliases": [],
          "role": "supporting",
          "summary": "Crew member who operates the laser torch to breach a building in the city called London during the final Rama expedition"
        }
      ],
      "frameworks_mapped": [
        "Protocol Fiction Mapping",
        "Actantial Model",
        "Todorov's Equilibrium",
        "The Freytag Pyramid",
        "Propp's Morphology",
        "Genette's Narrative",
        "The Monomyth",
        "Dan Harmon",
        "Save the Cat",
        "Kishotenketsu",
        "The Three-Act Structure",
        "Levi-Strauss's Binary Oppositions",
        "Cognitive Estrangement",
        "Bakhtin's Chronotope",
        "Aristotelian Poetics",
        "Jungian Archetypal Analysis",
        "Genette's Transtextuality"
      ],
      "score_reliability": {
        "state": "replicated-agree",
        "threshold": 0.2,
        "runs_total": 4,
        "versions_compared": [
          "2.5"
        ],
        "max_spread": 0.13,
        "contested": []
      }
    },
    {
      "slug": "alastair_reynolds_revelation_space",
      "title": "Revelation Space",
      "author": "Alastair Reynolds",
      "year": 2000,
      "medium": "book",
      "genre_tags": [
        "science fiction",
        "space opera"
      ],
      "tropes": [],
      "quadrant_scores": {
        "time_linearity": 0.55,
        "pacing_velocity": 0.65,
        "threat_scale": 0.8,
        "protagonist_fate": 0.6,
        "conflict_style": 0.65,
        "price_type": 0.75
      },
      "baseline_quadrant_scores": {
        "time_linearity": 0.8,
        "pacing_velocity": 0.4,
        "threat_scale": 0.9,
        "protagonist_fate": 0.6,
        "conflict_style": 0.2,
        "price_type": 0.5
      },
      "provenance": {
        "analysis_run": "NTSMR-2.5-claude-sonnet-4-6-low",
        "analysis_body_sha256": "60f4bd31f5da858636dfd4d66549b1658810e29f7b6f8b07428bf7a4a4c88c49",
        "synthesis": {
          "path": "nartopo-tools/artifacts/alastair_reynolds_revelation_space.md.ntsmr-2-5-claude-sonnet-4-6-low.synthesis.json",
          "sha256": "54252c16bbcd8671ef212d9d1bbe2d0d374dc01701799f3fef4e8d34b27f4e36"
        },
        "report": {
          "path": "nartopo-tools/artifacts/alastair_reynolds_revelation_space.md.ntsmr-2-5-claude-sonnet-4-6-low.report.json",
          "sha256": "2e90e16380f8a1744d7b8a5fc05ab9006f74108275587f17c9bca90203375d44"
        },
        "source": {
          "path": "Alastair Reynolds/Revelation Space (2000).txt",
          "sha256": "e524a9de5d3ca6ba9749c00ba3c30cea744246d796b629b7771fe45d9e644f8b",
          "digest_observed_at": "2026-09-09",
          "digest_at_analysis_run": null,
          "edition": null,
          "edition_status": "unresolved"
        },
        "pipeline_revision_at_run": null,
        "verification": {
          "source": "unverified",
          "human_review": "unreviewed",
          "bibliography": "unverified"
        },
        "issues": [],
        "todorov_status": "recovered-from-synthesis",
        "work_identity": {
          "title": "Revelation Space",
          "author": "Alastair Reynolds",
          "year": 2000
        }
      },
      "ntsmr": {
        "version": "2.5",
        "primary_run_label": "NTSMR-2.5-claude-sonnet-4-6-low",
        "runs": {
          "NTSMR-2.3-gemini-3.1-pro-preview": {
            "pipeline_version": "2.3",
            "backend": "gemini",
            "model": "gemini-3.1-pro-preview",
            "scores": {
              "time_linearity": 0.85,
              "pacing_velocity": 0.55,
              "threat_scale": 0.85,
              "protagonist_fate": 0.75,
              "conflict_style": 0.4,
              "price_type": 0.85
            },
            "score_space": "site-v1"
          },
          "NTSMR-2.3-claude-sonnet-4-6-low": {
            "pipeline_version": "2.3",
            "backend": "claude",
            "model": "claude-sonnet-4-6",
            "scores": {
              "time_linearity": 0.82,
              "pacing_velocity": 0.72,
              "threat_scale": 0.78,
              "protagonist_fate": 0.65,
              "conflict_style": 0.68,
              "price_type": 0.74
            },
            "score_space": "site-v1",
            "reasoning_effort": "low"
          },
          "NTSMR-2.4-claude-sonnet-4-6-low": {
            "pipeline_version": "2.4",
            "backend": "claude",
            "model": "claude-sonnet-4-6",
            "scores": {
              "time_linearity": 0.65,
              "pacing_velocity": 0.45,
              "threat_scale": 0.85,
              "protagonist_fate": 0.55,
              "conflict_style": 0.45,
              "price_type": 0.55
            },
            "score_space": "site-v1",
            "reasoning_effort": "low"
          },
          "NTSMR-2.5-claude-sonnet-4-6-low": {
            "pipeline_version": "2.5",
            "backend": "claude",
            "model": "claude-sonnet-4-6",
            "scores": {
              "time_linearity": 0.55,
              "pacing_velocity": 0.65,
              "threat_scale": 0.8,
              "protagonist_fate": 0.6,
              "conflict_style": 0.65,
              "price_type": 0.75
            },
            "score_space": "site-v1",
            "reasoning_effort": "low"
          },
          "NTSMR-2.5-balanced-glm-5+deepseek-v3.2": {
            "pipeline_version": "2.5",
            "backend": "openrouter",
            "model": "balanced-routing",
            "scores": {
              "time_linearity": 0.3,
              "pacing_velocity": 0.65,
              "threat_scale": 0.6,
              "protagonist_fate": 0.6,
              "conflict_style": 0.65,
              "price_type": 0.6
            },
            "score_space": "site-v1",
            "score_only": true,
            "source_run_label": "NTSMR-2.5-claude-sonnet-4-6-low"
          }
        }
      },
      "todorov_stages": {
        "equilibrium": "Three separate status quos exist at the novel's opening: Sylveste is imprisoned on Resurgam under Girardieau's regime, confined but stable in his captivity; Volyova manages the Nostalgia for Infinity crew with her janitor-rat surveillance system intact; and Khouri operates as a professional assassin in Yellowstone's Shadowplay arena, completing contracts for anonymous clients.",
        "disruption": "Multiple disruptions fracture each equilibrium: Volyova's concealment of Nagorny's staged death and the discovery of his coffin carvings marked 'Sun Stealer' destabilize the ship hierarchy; the Mademoiselle intercepts Khouri immediately after the Taraschi assassination and conscripts her for an off-system mission; and Pascale reveals to Sylveste that Calvin's alpha-level simulation is among four missing recordings, including a suspicious disappearance tied to the Shrouder visit.",
        "recognition": "Sajaki's revelation in the bar that Sylveste is not on Yellowstone and has not been in the system for some time forces the Triumvirate to recognize their mission must redirect to Resurgam — converging all three strands toward a single destination. Simultaneously, Lascaille's sudden lucid moment delivers the core recognition: the Pattern Jugglers archived Shrouder minds, and a human instilled with a Shrouder neural transform could theoretically penetrate the Shroud boundary.",
        "repair": "The repair attempts are distributed across strands: Volyova recruits a replacement Gunnery Officer and manages crew hostility while concealing her role in Nagorny's death; Khouri accepts the Mademoiselle's mission, entering reefersleep for transit to Resurgam; Sylveste cooperates with Pascale's biography project to gain limited privileges while Pascale independently investigates Calvin's missing alpha recording; and Sylveste absorbs Lascaille's revelation about the Ocean-Juggler neural archives as a potential means of accessing the Shrouds.",
        "new_equilibrium": "The novel closes its extract with knowledge dangerously redistributed: Lascaille has inadvertently transmitted the secret of Shroud penetration to Sylveste, the Shroud boundary's failure to identify Lascaille as alien remains unexplained and unresolved, and all three narrative strands are now vectored toward Resurgam — a convergence that replaces the stable separateness of the opening with a precarious, knowledge-laden trajectory toward contact with post-extinction technologies of unimaginable power."
      },
      "characters": [
        {
          "name": "Dan Sylveste",
          "slug": "dan-sylveste",
          "aliases": [
            "Sylveste",
            "Doctor"
          ],
          "role": "Scientist, prisoner, and subject of a biography",
          "summary": "Former leader now imprisoned by a militia, undergoing biographical interrogation regarding his past and his father's missing alpha-level simulation. In flashbacks, he visits Lascaille to learn about Shrouders."
        },
        {
          "name": "Girardieau",
          "slug": "girardieau",
          "aliases": [],
          "role": "Militia leader and captor",
          "summary": "Controls Sylveste's imprisonment and dictates the terms of his biographical interrogation and potential future field work."
        },
        {
          "name": "Pascale",
          "slug": "pascale",
          "aliases": [],
          "role": "Biographer",
          "summary": "Accompanied by a defensive wasp and floating aquatic holograms, she interrogates Sylveste, probing into the fate of the Eighty and Calvin's missing simulation, suspecting Sylveste of faking data-movements."
        },
        {
          "name": "Ilia Volyova",
          "slug": "ilia-volyova",
          "aliases": [
            "Volyova",
            "Ilia"
          ],
          "role": "Triumvir and weapons expert",
          "summary": "A solitary crew member of the Nostalgia for Infinity who murdered Nagorny. She is currently on Carousel New Brazilia attempting to recruit a replacement while managing the suspicion of other crew members."
        },
        {
          "name": "Yuuji Sajaki",
          "slug": "yuuji-sajaki",
          "aliases": [
            "Sajaki",
            "Komuso"
          ],
          "role": "Triumvir and ship leader",
          "summary": "A ruthless leader who promises to kill Sudjic if she threatens Volyova. He investigates Nagorny's quarters and later disguises himself as a Komuso in a bar, revealing Sylveste's location."
        },
        {
          "name": "Abdul Hegazi",
          "slug": "abdul-hegazi",
          "aliases": [
            "Hegazi"
          ],
          "role": "Triumvir",
          "summary": "A heavily augmented chimeric crew member who escorts Volyova through Carousel New Brazilia and discusses crew politics with her."
        },
        {
          "name": "Boris Nagorny",
          "slug": "boris-nagorny",
          "aliases": [
            "Nagorny"
          ],
          "role": "Deceased Gunnery Officer",
          "summary": "A paranoid former crew member murdered by Volyova. He left behind a fastidiously cramped room containing a massive, intricately carved iron coffin inscribed with the name 'Sun Stealer'."
        },
        {
          "name": "Sudjic",
          "slug": "sudjic",
          "aliases": [],
          "role": "Ultra crew member",
          "summary": "A recently joined chimeric crew member who was close to Nagorny and poses a potential threat of retaliation against Volyova."
        },
        {
          "name": "Khouri",
          "slug": "khouri",
          "aliases": [],
          "role": "Assassin and former soldier",
          "summary": "A skilled professional who fought on Sky's Edge with her husband Fazil before an accidental twenty-year journey. She is being recruited by the Mademoiselle."
        },
        {
          "name": "Manoukhian",
          "slug": "manoukhian",
          "aliases": [],
          "role": "Operative",
          "summary": "A talkative armed man who escorts Khouri to see the Mademoiselle, warning her about the Mademoiselle's ruthlessness."
        },
        {
          "name": "The Mademoiselle",
          "slug": "the-mademoiselle",
          "aliases": [],
          "role": "Employer",
          "summary": "A mysterious, patient woman who suffered an 'accident' and communicates with Khouri via simulation, recruiting her to travel twenty light-years to Resurgam to find Sylveste."
        },
        {
          "name": "Philip Lascaille",
          "slug": "philip-lascaille",
          "aliases": [
            "Lascaille"
          ],
          "role": "SISS scientist",
          "summary": "The only human to survive approaching a Shroud, which left him with severe brain damage. In a moment of lucidity, he reveals critical truths about Shrouders and Pattern Jugglers to a young Sylveste."
        }
      ],
      "frameworks_mapped": [
        "Protocol Fiction Mapping",
        "Actantial Model",
        "Todorov's Equilibrium",
        "The Freytag Pyramid",
        "Propp's Morphology",
        "Genette's Narrative",
        "The Monomyth",
        "Dan Harmon",
        "Save the Cat",
        "Kishōtenketsu",
        "The Three-Act Structure"
      ],
      "score_reliability": {
        "state": "contested",
        "threshold": 0.2,
        "runs_total": 5,
        "versions_compared": [
          "2.5"
        ],
        "max_spread": 0.25,
        "contested": [
          {
            "axis": "time_linearity",
            "version": "2.5",
            "spread": 0.25,
            "low": {
              "label": "NTSMR-2.5-balanced-glm-5+deepseek-v3.2",
              "model": "balanced-routing",
              "effort": "?",
              "value": 0.3
            },
            "high": {
              "label": "NTSMR-2.5-claude-sonnet-4-6-low",
              "model": "claude-sonnet-4-6",
              "effort": "low",
              "value": 0.55
            }
          },
          {
            "axis": "threat_scale",
            "version": "2.5",
            "spread": 0.2,
            "low": {
              "label": "NTSMR-2.5-balanced-glm-5+deepseek-v3.2",
              "model": "balanced-routing",
              "effort": "?",
              "value": 0.6
            },
            "high": {
              "label": "NTSMR-2.5-claude-sonnet-4-6-low",
              "model": "claude-sonnet-4-6",
              "effort": "low",
              "value": 0.8
            }
          }
        ]
      }
    },
    {
      "slug": "stanislaw_lem_rien_du_tout_ou_la_consequence",
      "title": "Rien du tout, ou la consequence",
      "author": "Stanislaw Lem",
      "year": 1971,
      "medium": "short_story",
      "genre_tags": [],
      "tropes": [],
      "quadrant_scores": {
        "time_linearity": 0.08,
        "pacing_velocity": 0.82,
        "threat_scale": 0.55,
        "protagonist_fate": 0.75,
        "conflict_style": 0.88,
        "price_type": 0.88
      },
      "provenance": {
        "analysis_run": "NTSMR-2.5-claude-sonnet-4-6-low",
        "analysis_body_sha256": "854193d173dfff20486e398ab9ec413b6af332d8b022857427f7a23ed7d1f7a8",
        "synthesis": {
          "path": "nartopo-tools/artifacts/stanislaw_lem_rien_du_tout_ou_la_consequence.md.ntsmr-2-5-claude-sonnet-4-6-low.synthesis.json",
          "sha256": "4e5406356c3fd3983b2dbc505f9a89f3a78ae36e68f4aa70983b2cf518e56489"
        },
        "report": {
          "path": "nartopo-tools/artifacts/stanislaw_lem_rien_du_tout_ou_la_consequence.md.ntsmr-2-5-claude-sonnet-4-6-low.report.json",
          "sha256": "021a27bef3dbc35d4eb8ba14f2fc80d671075318020defb55dabeede3703e051"
        },
        "source": {
          "path": "Stanislaw Lem/Rien du tout, ou la consequence.txt",
          "sha256": "5edbe684249887e447d02b438724eb1f282cdc6478be6ff06e587fe310a8089e",
          "digest_observed_at": "2026-09-09",
          "digest_at_analysis_run": null,
          "edition": null,
          "edition_status": "unresolved"
        },
        "pipeline_revision_at_run": null,
        "verification": {
          "source": "unverified",
          "human_review": "unreviewed",
          "bibliography": "unverified"
        },
        "issues": [],
        "todorov_status": "recovered-from-synthesis",
        "work_identity": {
          "title": "Rien du tout, ou la consequence",
          "author": "Stanislaw Lem",
          "year": 1971
        }
      },
      "ntsmr": {
        "version": "2.5",
        "primary_run_label": "NTSMR-2.5-claude-sonnet-4-6-low",
        "runs": {
          "NTSMR-2.3-gemini-3.1-pro-preview": {
            "pipeline_version": "2.3",
            "backend": "gemini",
            "model": "gemini-3.1-pro-preview",
            "scores": {
              "time_linearity": 0.1,
              "pacing_velocity": 1,
              "threat_scale": 1,
              "protagonist_fate": 1,
              "conflict_style": 1,
              "price_type": 1
            },
            "score_space": "site-v1"
          },
          "NTSMR-2.3-claude-sonnet-4-6-low": {
            "pipeline_version": "2.3",
            "backend": "claude",
            "model": "claude-sonnet-4-6",
            "scores": {
              "time_linearity": 0.15,
              "pacing_velocity": 0.95,
              "threat_scale": 0.7,
              "protagonist_fate": 0.9,
              "conflict_style": 0.9,
              "price_type": 0.95
            },
            "score_space": "site-v1",
            "reasoning_effort": "low"
          },
          "NTSMR-2.4-claude-sonnet-4-6-low": {
            "pipeline_version": "2.4",
            "backend": "claude",
            "model": "claude-sonnet-4-6",
            "scores": {
              "time_linearity": 0.25,
              "pacing_velocity": 0.8,
              "threat_scale": 0.25,
              "protagonist_fate": 0.85,
              "conflict_style": 0.88,
              "price_type": 0.88
            },
            "score_space": "site-v1",
            "reasoning_effort": "low"
          },
          "NTSMR-2.5-claude-sonnet-4-6-low": {
            "pipeline_version": "2.5",
            "backend": "claude",
            "model": "claude-sonnet-4-6",
            "scores": {
              "time_linearity": 0.08,
              "pacing_velocity": 0.82,
              "threat_scale": 0.55,
              "protagonist_fate": 0.75,
              "conflict_style": 0.88,
              "price_type": 0.88
            },
            "score_space": "site-v1",
            "reasoning_effort": "low"
          },
          "NTSMR-2.5-balanced-glm-5+deepseek-v3.2": {
            "pipeline_version": "2.5",
            "backend": "openrouter",
            "model": "balanced-routing",
            "scores": {
              "time_linearity": 0.15,
              "pacing_velocity": 0.9,
              "threat_scale": 0.1,
              "protagonist_fate": 0.55,
              "conflict_style": 0.9,
              "price_type": 0.9
            },
            "score_space": "site-v1",
            "score_only": true,
            "source_run_label": "NTSMR-2.5-claude-sonnet-4-6-low"
          }
        }
      },
      "todorov_stages": {
        "equilibrium": "The opening status quo is the critic's assertion that literature exists in a stable, if troubled, condition — a recognized crisis of the inevitable lie, held in place by existing literary strategies (the self-novel, the antinovel) that at least attempt to manage fiction's indecency. Mme Solange's novel is introduced as having reached the limit of what writing can do, implying a prior state where such limits had not yet been tested.",
        "disruption": "The equilibrium is disrupted by the critic's diagnosis that all existing literary solutions — the self-novel as half confession, the antinovel as autocastration — are inadequate. No available strategy resolves fiction's fundamental dishonesty. The novel Rien du tout, ou la conséquence itself enacts a further disruption by systematically negating its own narrative content: seasons, gravity, the heroine's existence, and ultimately the narrator are stripped away chapter by chapter.",
        "recognition": "Recognition occurs when the critic identifies the only honest literary subject as nothing itself — not grammatical negation but ontological nothingness — and when the language within the novel begins to suspect and then understand that there is no one besides itself, that it has been cut off from all mouths and was never a personal expression. The critic frames this as an anagnorisis: language arriving at the truth of its own illegitimate, adulterous origins.",
        "repair": "The repair attempt is the novel's own progressive method: each chapter removes another layer of existence, attempting through radical negation to escape fiction's lie. The machinery of grammar continues — nouns, syntax grinding out nothingness — precise to the last, as if syntactic rigor might redeem the void. But this repair is self-consuming; the attempt to write nothing destroys the instrument of writing.",
        "new_equilibrium": "The new equilibrium is collapse and cessation rather than restoration. Language suicidally disowns itself mid-sentence, mid-word. The novel does not end but ceases. The critic's closing declaration — that this work should have been written by a mathematician who proved and cursed literature — establishes a new status quo in which literature has been judged and condemned by its own internal logic, with no further appeal possible."
      },
      "characters": [
        {
          "name": "Solange Marriot",
          "slug": "solange-marriot",
          "aliases": [
            "Mme Solange Marriot",
            "Mme Solange",
            "authoress"
          ],
          "role": "Author",
          "summary": "The author of the radically decent novel Rien du tout, ou la conséquence, which attempts to reach the limit of what writing can do by writing nothing."
        },
        {
          "name": "The Reviewer",
          "slug": "the-reviewer",
          "aliases": [
            "I",
            "we"
          ],
          "role": "Literary Critic / Narrator",
          "summary": "A literary critic analyzing Marriot's novel and the inherent lie of traditional literature."
        },
        {
          "name": "Roland Barthes",
          "slug": "roland-barthes",
          "aliases": [],
          "role": "Essayist",
          "summary": "The author of the essay 'Le Degré zéro de l'écriture', whom the reviewer criticizes as having a shallow intellect for not understanding that literature is parasitic on the reader's mind."
        },
        {
          "name": "Pierre Menard",
          "slug": "pierre-menard",
          "aliases": [],
          "role": "Fictional author",
          "summary": "A literary fanatic in a Borges story who rewrote Don Quixote word for word to demonstrate how historical context changes meaning."
        },
        {
          "name": "Miguel de Cervantes",
          "slug": "miguel-de-cervantes",
          "aliases": [
            "Cervantes",
            "layman genius"
          ],
          "role": "Author",
          "summary": "The 17th-century author of Don Quixote, whose 'innocent rhetoric' contrasts with the cynical meaning of the same words in a modern context."
        },
        {
          "name": "William James",
          "slug": "william-james",
          "aliases": [],
          "role": "Philosopher",
          "summary": "A contemporary of Pierre Menard, mentioned in the context of pragmatic approaches to historical truth."
        },
        {
          "name": "Paul Valéry",
          "slug": "paul-valry",
          "aliases": [],
          "role": "Poet",
          "summary": "A poet known for his exquisitely beautiful, bewitching, but purely private and unobjective literary depictions of nonbeing."
        },
        {
          "name": "Vautrin",
          "slug": "vautrin",
          "aliases": [],
          "role": "Fictional character",
          "summary": "A character by Balzac cited as being as nonexistent as Faust's devil, illustrating that literature is a lie."
        },
        {
          "name": "Faust's devil",
          "slug": "fausts-devil",
          "aliases": [],
          "role": "Fictional character",
          "summary": "A nonexistent literary character used to demonstrate the fundamental untruth of literature."
        },
        {
          "name": "The Marquise",
          "slug": "the-marquise",
          "aliases": [],
          "role": "Hypothetical character",
          "summary": "A hypothetical character invented by the reviewer to demonstrate the failure of simple grammatical negations in literature."
        },
        {
          "name": "The unbeloved heroine",
          "slug": "the-unbeloved-heroine",
          "aliases": [
            "unbeloved"
          ],
          "role": "Nonexistent protagonist",
          "summary": "The central figure of Marriot's novel, who is defined by what she cannot do and ultimately by her simple lack of existence."
        },
        {
          "name": "A certain critic",
          "slug": "a-certain-critic",
          "aliases": [
            "member of the Academy",
            "academician"
          ],
          "role": "Literary critic",
          "summary": "A reader who found the anatomical negations in Marriot's novel to be an 'anatomical bore, if not a vulgarity'."
        }
      ],
      "frameworks_mapped": [
        "Protocol Fiction Mapping",
        "Actantial Model",
        "Todorov's Equilibrium",
        "The Freytag Pyramid",
        "Propp's Morphology",
        "Genette's Narrative",
        "The Monomyth",
        "Dan Harmon",
        "Save the Cat",
        "Kishōtenketsu",
        "The Three-Act Structure",
        "Lévi-Strauss's Binary Oppositions",
        "Cognitive Estrangement",
        "Bakhtin's Chronotope",
        "Aristotelian Poetics",
        "Jungian Archetypal Analysis",
        "Genette's Transtextuality"
      ],
      "score_reliability": {
        "state": "contested",
        "threshold": 0.2,
        "runs_total": 5,
        "versions_compared": [
          "2.5"
        ],
        "max_spread": 0.45,
        "contested": [
          {
            "axis": "threat_scale",
            "version": "2.5",
            "spread": 0.45,
            "low": {
              "label": "NTSMR-2.5-balanced-glm-5+deepseek-v3.2",
              "model": "balanced-routing",
              "effort": "?",
              "value": 0.1
            },
            "high": {
              "label": "NTSMR-2.5-claude-sonnet-4-6-low",
              "model": "claude-sonnet-4-6",
              "effort": "low",
              "value": 0.55
            }
          },
          {
            "axis": "protagonist_fate",
            "version": "2.5",
            "spread": 0.2,
            "low": {
              "label": "NTSMR-2.5-balanced-glm-5+deepseek-v3.2",
              "model": "balanced-routing",
              "effort": "?",
              "value": 0.55
            },
            "high": {
              "label": "NTSMR-2.5-claude-sonnet-4-6-low",
              "model": "claude-sonnet-4-6",
              "effort": "low",
              "value": 0.75
            }
          }
        ]
      }
    },
    {
      "slug": "larry_niven_ringworld",
      "title": "Ringworld",
      "author": "Larry Niven",
      "year": 1970,
      "medium": "book",
      "genre_tags": [
        "sf",
        "hard sf",
        "space opera"
      ],
      "tropes": [],
      "quadrant_scores": {
        "time_linearity": 0.25,
        "pacing_velocity": 0.45,
        "threat_scale": 0.92,
        "protagonist_fate": 0.45,
        "conflict_style": 0.45,
        "price_type": 0.4
      },
      "provenance": {
        "analysis_run": "NTSMR-2.5-claude-sonnet-4-6-low",
        "analysis_body_sha256": "458d70eb142c2eb7025be8c4bf936736ed12e2254e25f9ce13a16b037325fd84",
        "synthesis": {
          "path": "nartopo-tools/artifacts/larry_niven_ringworld.md.ntsmr-2-5-claude-sonnet-4-6-low.synthesis.json",
          "sha256": "362f8beaf17098cbe6ec99fd2e762120bd8397d8dab2c80775515a928a702c4a"
        },
        "report": {
          "path": "nartopo-tools/artifacts/larry_niven_ringworld.md.ntsmr-2-5-claude-sonnet-4-6-low.report.json",
          "sha256": "4935ce52c81e468834d7712d3f89b48fba44f93c6027dd506b4172407f8a34c4"
        },
        "source": {
          "path": "Larry Niven/Ringworld.txt",
          "sha256": "e9a3c04181fe482d929d101ded8eeb980e6695a451e6b5ce5d9e3ae9459804bc",
          "digest_observed_at": "2026-09-09",
          "digest_at_analysis_run": null,
          "edition": null,
          "edition_status": "unresolved"
        },
        "pipeline_revision_at_run": null,
        "verification": {
          "source": "unverified",
          "human_review": "unreviewed",
          "bibliography": "unverified"
        },
        "issues": [],
        "todorov_status": "recovered-from-synthesis",
        "work_identity": {
          "title": "Ringworld",
          "author": "Larry Niven",
          "year": 1970
        }
      },
      "ntsmr": {
        "version": "2.5",
        "primary_run_label": "NTSMR-2.5-claude-sonnet-4-6-low",
        "runs": {
          "NTSMR-2.3-claude-sonnet-4-6-low": {
            "pipeline_version": "2.3",
            "backend": "claude",
            "model": "claude-sonnet-4-6",
            "scores": {
              "time_linearity": 0.15,
              "pacing_velocity": 0.62,
              "threat_scale": 0.85,
              "protagonist_fate": 0.18,
              "conflict_style": 0.38,
              "price_type": 0.55
            },
            "score_space": "site-v1",
            "reasoning_effort": "low"
          },
          "NTSMR-2.4-claude-sonnet-4-6-low": {
            "pipeline_version": "2.4",
            "backend": "claude",
            "model": "claude-sonnet-4-6",
            "scores": {
              "time_linearity": 0.22,
              "pacing_velocity": 0.28,
              "threat_scale": 0.92,
              "protagonist_fate": 0.38,
              "conflict_style": 0.28,
              "price_type": 0.22
            },
            "score_space": "site-v1",
            "reasoning_effort": "low"
          },
          "NTSMR-2.5-claude-sonnet-4-6-low": {
            "pipeline_version": "2.5",
            "backend": "claude",
            "model": "claude-sonnet-4-6",
            "scores": {
              "time_linearity": 0.25,
              "pacing_velocity": 0.45,
              "threat_scale": 0.92,
              "protagonist_fate": 0.45,
              "conflict_style": 0.45,
              "price_type": 0.4
            },
            "score_space": "site-v1",
            "reasoning_effort": "low"
          },
          "NTSMR-2.5-minimax/minimax-m2.5": {
            "pipeline_version": "2.5",
            "backend": "openrouter",
            "model": "minimax/minimax-m2.5",
            "scores": {
              "time_linearity": 0.25,
              "pacing_velocity": 0.55,
              "threat_scale": 0.85,
              "protagonist_fate": 0.45,
              "conflict_style": 0.55,
              "price_type": 0.7
            },
            "score_space": "site-v1"
          },
          "NTSMR-2.5-qwen/qwen3.5-plus-02-15": {
            "pipeline_version": "2.5",
            "backend": "openrouter",
            "model": "qwen/qwen3.5-plus-02-15",
            "scores": {
              "time_linearity": 0.2,
              "pacing_velocity": 0.65,
              "threat_scale": 0.85,
              "protagonist_fate": 0.4,
              "conflict_style": 0.6,
              "price_type": 0.45
            },
            "score_space": "site-v1"
          },
          "NTSMR-2.5-deepseek/deepseek-v3.2": {
            "pipeline_version": "2.5",
            "backend": "openrouter",
            "model": "deepseek/deepseek-v3.2",
            "scores": {
              "time_linearity": 0.15,
              "pacing_velocity": 0.65,
              "threat_scale": 0.95,
              "protagonist_fate": 0.35,
              "conflict_style": 0.6,
              "price_type": 0.45
            },
            "score_space": "site-v1"
          },
          "NTSMR-2.5-qwen/qwen3.5-397b-a17b": {
            "pipeline_version": "2.5",
            "backend": "openrouter",
            "model": "qwen/qwen3.5-397b-a17b",
            "scores": {
              "time_linearity": 0.25,
              "pacing_velocity": 0.7,
              "threat_scale": 0.85,
              "protagonist_fate": 0.4,
              "conflict_style": 0.65,
              "price_type": 0.6
            },
            "score_space": "site-v1"
          },
          "NTSMR-2.5-z-ai/glm-4.7": {
            "pipeline_version": "2.5",
            "backend": "openrouter",
            "model": "z-ai/glm-4.7",
            "scores": {
              "time_linearity": 0.2,
              "pacing_velocity": 0.45,
              "threat_scale": 0.9,
              "protagonist_fate": 0.35,
              "conflict_style": 0.5,
              "price_type": 0.4
            },
            "score_space": "site-v1"
          },
          "NTSMR-2.5-moonshotai/kimi-k2.5": {
            "pipeline_version": "2.5",
            "backend": "openrouter",
            "model": "moonshotai/kimi-k2.5",
            "scores": {
              "time_linearity": 0.2,
              "pacing_velocity": 0.55,
              "threat_scale": 0.9,
              "protagonist_fate": 0.35,
              "conflict_style": 0.5,
              "price_type": 0.15
            },
            "score_space": "site-v1"
          },
          "NTSMR-2.5-z-ai/glm-5": {
            "pipeline_version": "2.5",
            "backend": "openrouter",
            "model": "z-ai/glm-5",
            "scores": {
              "time_linearity": 0.2,
              "pacing_velocity": 0.6,
              "threat_scale": 0.88,
              "protagonist_fate": 0.4,
              "conflict_style": 0.55,
              "price_type": 0.45
            },
            "score_space": "site-v1"
          },
          "NTSMR-2.5-balanced-glm-5+deepseek-v3.2": {
            "pipeline_version": "2.5",
            "backend": "openrouter",
            "model": "balanced-routing",
            "scores": {
              "time_linearity": 0.2,
              "pacing_velocity": 0.6,
              "threat_scale": 0.88,
              "protagonist_fate": 0.58,
              "conflict_style": 0.62,
              "price_type": 0.5
            },
            "score_space": "site-v1",
            "score_only": true,
            "source_run_label": "NTSMR-2.5-claude-sonnet-4-6-low"
          }
        }
      },
      "todorov_stages": {
        "equilibrium": "Louis Wu lives in addicted stasis on asteroid Canyon, wireheaded and withdrawn from the world after Halrloprillalar's disappearance — a degraded but stable personal equilibrium.",
        "disruption": "The Hindmost and Chmeee forcibly extract Louis from his addiction and coerce him aboard Needle, while the Ringworld itself is revealed to be drifting off-center and destined to graze its sun within roughly a year and a half.",
        "recognition": "Louis grasps the full scope of the disruption across several compounding realizations: the Ringworld's instability, the Hindmost's suspicious prior knowledge of the bacterium, the abandonment of the Repair Center, and finally Teela Brown's revelation that she has been running a massive repair operation for sixteen years.",
        "repair": "Louis takes command by sabotaging Needle's hyperdrive to force cooperation, extracts engineering data from the floating city's archives, deduces that the Ringworld's superconductor grid can steer the structure via induced solar flares, and ultimately executes the plan — sacrificing the 5 percent of the arc with remounted attitude jets to multiply thrust and correct the Ringworld's orbit.",
        "new_equilibrium": "The Ringworld is stabilized; Louis, Chmeee, and their City Builder companions emerge from the Repair Center with the crisis resolved, and Louis invites the newcomers to explore legends and make new ones — a forward-looking, open equilibrium replacing his prior stagnation."
      },
      "characters": [
        {
          "name": "Louis Wu",
          "slug": "louis-wu",
          "aliases": [
            "Luweewu"
          ],
          "role": "protagonist",
          "summary": "A two-hundred-year-old wirehead addict living on Canyon, press-ganged into returning to the Ringworld; struggles with current addiction and withdrawal throughout."
        },
        {
          "name": "Chmeee",
          "slug": "chmeee",
          "aliases": [
            "Speaker-To-Animals"
          ],
          "role": "companion",
          "summary": "Kzin companion, rejuvenated to youth by the Hindmost; serves as Louis's partner in exploration and occasional antagonist in debates."
        },
        {
          "name": "The Hindmost",
          "slug": "the-hindmost",
          "aliases": [],
          "role": "antagonist/controller",
          "summary": "Pierson's puppeteer leading the expedition; controls Louis through the droud and Chmeee through his rejuvenation; fled from the Fleet of Worlds."
        },
        {
          "name": "Halrloprillalar",
          "slug": "halrloprillalar",
          "aliases": [
            "Prill"
          ],
          "role": "mentioned character",
          "summary": "City Builder woman from the first expedition; revealed to have died eighteen years ago, unable to tolerate boosterspice."
        },
        {
          "name": "Shivith",
          "slug": "shivith",
          "aliases": [],
          "role": "supporting character",
          "summary": "One-legged elder of the People, the red-skinned natives near the rim wall; serves as initial contact and language exchange partner."
        },
        {
          "name": "Ginjerofer",
          "slug": "ginjerofer",
          "aliases": [],
          "role": "supporting character",
          "summary": "Female chief of the People; provides information about sunflowers, the floating city, and the tribe's migration patterns."
        },
        {
          "name": "The People",
          "slug": "the-people",
          "aliases": [],
          "role": "group character",
          "summary": "Red-skinned, small-statured humanoids who herd animals near the rim wall; they practice rishathra with other species but not among themselves."
        },
        {
          "name": "King Giant",
          "slug": "king-giant",
          "aliases": [
            "armored giant",
            "Patriarch of the herd"
          ],
          "role": "supporting",
          "summary": "Armored leader of the Plant Eater giants who initially challenges Chmeee but submits to Louis's God Gambit, explaining his tribe's desperate circumstances."
        },
        {
          "name": "Reeth",
          "slug": "reeth",
          "aliases": [],
          "role": "minor",
          "summary": "Female giant who organizes the clean-up squad after the rishathra ritual."
        },
        {
          "name": "Vala",
          "slug": "vala",
          "aliases": [
            "Valavirgillin"
          ],
          "role": "supporting",
          "summary": "Giant female of the Plant Eater species who holds Louis at gunpoint, questions him about the Hindmost, and becomes his guide to River's Return."
        },
        {
          "name": "Laliskareerlyar",
          "slug": "laliskareerlyar",
          "aliases": [
            "Lya"
          ],
          "role": "supporting",
          "summary": "Elderly City Builder woman of the Lyar family who hosts Louis and explains the floating city's economic structure."
        },
        {
          "name": "Fortaralisplyar",
          "slug": "fortaralisplyar",
          "aliases": [],
          "role": "supporting",
          "summary": "Laliskareerlyar's mate of record who helps Louis arrange access to neighboring buildings and the Library."
        },
        {
          "name": "Filistranorlry",
          "slug": "filistranorlry",
          "aliases": [],
          "role": "antagonist",
          "summary": "Silver-haired master of Orlry Building who attempts to force Louis to sell his technology."
        },
        {
          "name": "Harkabeeparolyn",
          "slug": "harkabeeparolyn",
          "aliases": [],
          "role": "supporting",
          "summary": "White-haired City Builder librarian who initially resists Louis but becomes his companion aboard Needle."
        },
        {
          "name": "Kawaresksenjajok",
          "slug": "kawaresksenjajok",
          "aliases": [],
          "role": "supporting",
          "summary": "Adolescent City Builder boy, a librarian's assistant who shows Louis the map room and later accompanies him aboard Needle."
        },
        {
          "name": "Mar Korssil",
          "slug": "mar-korssil",
          "aliases": [],
          "role": "minor",
          "summary": "Big-eyed Night Hunter who questions Louis about his communications."
        },
        {
          "name": "Teela Brown",
          "slug": "teela-brown",
          "aliases": [],
          "role": "antagonist",
          "summary": "Human transformed into Pak protector; fights to lose against Louis's team while constrained by protector instincts that prevent her from directly revealing the solution."
        }
      ],
      "frameworks_mapped": [
        "Protocol Fiction Mapping",
        "Actantial Model",
        "Todorov's Equilibrium",
        "The Freytag Pyramid",
        "Propp's Morphology",
        "Genette's Narrative",
        "The Monomyth",
        "Dan Harmon",
        "Save the Cat",
        "Kishotenketsu",
        "The Three-Act Structure",
        "Levi-Strauss's Binary Oppositions",
        "Cognitive Estrangement",
        "Bakhtin's Chronotope",
        "Aristotelian Poetics",
        "Jungian Archetypal Analysis",
        "Genette's Transtextuality"
      ],
      "score_reliability": {
        "state": "contested",
        "threshold": 0.2,
        "runs_total": 11,
        "versions_compared": [
          "2.5"
        ],
        "max_spread": 0.55,
        "contested": [
          {
            "axis": "price_type",
            "version": "2.5",
            "spread": 0.55,
            "low": {
              "label": "NTSMR-2.5-moonshotai/kimi-k2.5",
              "model": "moonshotai/kimi-k2.5",
              "effort": "?",
              "value": 0.15
            },
            "high": {
              "label": "NTSMR-2.5-minimax/minimax-m2.5",
              "model": "minimax/minimax-m2.5",
              "effort": "?",
              "value": 0.7
            }
          },
          {
            "axis": "pacing_velocity",
            "version": "2.5",
            "spread": 0.25,
            "low": {
              "label": "NTSMR-2.5-claude-sonnet-4-6-low",
              "model": "claude-sonnet-4-6",
              "effort": "low",
              "value": 0.45
            },
            "high": {
              "label": "NTSMR-2.5-qwen/qwen3.5-397b-a17b",
              "model": "qwen/qwen3.5-397b-a17b",
              "effort": "?",
              "value": 0.7
            }
          },
          {
            "axis": "protagonist_fate",
            "version": "2.5",
            "spread": 0.23,
            "low": {
              "label": "NTSMR-2.5-deepseek/deepseek-v3.2",
              "model": "deepseek/deepseek-v3.2",
              "effort": "?",
              "value": 0.35
            },
            "high": {
              "label": "NTSMR-2.5-balanced-glm-5+deepseek-v3.2",
              "model": "balanced-routing",
              "effort": "?",
              "value": 0.58
            }
          },
          {
            "axis": "conflict_style",
            "version": "2.5",
            "spread": 0.2,
            "low": {
              "label": "NTSMR-2.5-claude-sonnet-4-6-low",
              "model": "claude-sonnet-4-6",
              "effort": "low",
              "value": 0.45
            },
            "high": {
              "label": "NTSMR-2.5-qwen/qwen3.5-397b-a17b",
              "model": "qwen/qwen3.5-397b-a17b",
              "effort": "?",
              "value": 0.65
            }
          }
        ]
      }
    },
    {
      "slug": "ada_palmer_seven_surrenders",
      "title": "Seven Surrenders",
      "author": "Ada Palmer",
      "year": 2017,
      "medium": "book",
      "genre_tags": [
        "science fiction",
        "political sf"
      ],
      "tropes": [],
      "quadrant_scores": {
        "time_linearity": 0.35,
        "pacing_velocity": 0.55,
        "threat_scale": 0.88,
        "protagonist_fate": 0.65,
        "conflict_style": 0.6,
        "price_type": 0.7
      },
      "baseline_quadrant_scores": {
        "time_linearity": 0.85,
        "pacing_velocity": 0.75,
        "threat_scale": 0.95,
        "protagonist_fate": 0.85,
        "conflict_style": 0.35,
        "price_type": 0.9
      },
      "provenance": {
        "analysis_run": "NTSMR-2.5-claude-sonnet-4-6-low",
        "analysis_body_sha256": "874770cfd99054bde8db45a050b8e658ae5dcdd83b2f06cfec98be91baaa3159",
        "synthesis": {
          "path": "nartopo-tools/artifacts/ada_palmer_seven_surrenders.md.ntsmr-2-5-claude-sonnet-4-6-low.synthesis.json",
          "sha256": "d61058bd9856b2f9c7d8edc27ef3b236387d536bfabb5584da6de60c98fad5d9"
        },
        "report": {
          "path": "nartopo-tools/artifacts/ada_palmer_seven_surrenders.md.ntsmr-2-5-claude-sonnet-4-6-low.report.json",
          "sha256": "8a335e6a5f6d8566831c88aa27608a5f92a055f1ad9a0733730655edc3e6b1af"
        },
        "source": {
          "path": "Ada Palmer/Seven Surrenders (2017).txt",
          "sha256": "59d4b7add645435a64a7ff7474c9eeab36ce501c8425c990b784eab5f7470109",
          "digest_observed_at": "2026-09-09",
          "digest_at_analysis_run": null,
          "edition": null,
          "edition_status": "unresolved"
        },
        "pipeline_revision_at_run": null,
        "verification": {
          "source": "unverified",
          "human_review": "unreviewed",
          "bibliography": "unverified"
        },
        "issues": [],
        "todorov_status": "recovered-from-synthesis",
        "work_identity": {
          "title": "Seven Surrenders",
          "author": "Ada Palmer",
          "year": 2017
        }
      },
      "ntsmr": {
        "version": "2.5",
        "primary_run_label": "NTSMR-2.5-claude-sonnet-4-6-low",
        "runs": {
          "NTSMR-2.3-gemini-3.1-pro-preview": {
            "pipeline_version": "2.3",
            "backend": "gemini",
            "model": "gemini-3.1-pro-preview",
            "scores": {
              "time_linearity": 0.5,
              "pacing_velocity": 0.7,
              "threat_scale": 0.9,
              "protagonist_fate": 0.8,
              "conflict_style": 0.7,
              "price_type": 0.9
            },
            "score_space": "site-v1"
          },
          "NTSMR-2.3-claude-sonnet-4-6-low": {
            "pipeline_version": "2.3",
            "backend": "claude",
            "model": "claude-sonnet-4-6",
            "scores": {
              "time_linearity": 0.35,
              "pacing_velocity": 0.72,
              "threat_scale": 0.88,
              "protagonist_fate": 0.65,
              "conflict_style": 0.68,
              "price_type": 0.82
            },
            "score_space": "site-v1",
            "reasoning_effort": "low"
          },
          "NTSMR-2.4-claude-sonnet-4-6-low": {
            "pipeline_version": "2.4",
            "backend": "claude",
            "model": "claude-sonnet-4-6",
            "scores": {
              "time_linearity": 0.35,
              "pacing_velocity": 0.38,
              "threat_scale": 0.88,
              "protagonist_fate": 0.75,
              "conflict_style": 0.55,
              "price_type": 0.58
            },
            "score_space": "site-v1",
            "reasoning_effort": "low"
          },
          "NTSMR-2.5-claude-sonnet-4-6-low": {
            "pipeline_version": "2.5",
            "backend": "claude",
            "model": "claude-sonnet-4-6",
            "scores": {
              "time_linearity": 0.35,
              "pacing_velocity": 0.55,
              "threat_scale": 0.88,
              "protagonist_fate": 0.65,
              "conflict_style": 0.6,
              "price_type": 0.7
            },
            "score_space": "site-v1",
            "reasoning_effort": "low"
          },
          "NTSMR-2.5-balanced-glm-5+deepseek-v3.2": {
            "pipeline_version": "2.5",
            "backend": "openrouter",
            "model": "balanced-routing",
            "scores": {
              "time_linearity": 0.4,
              "pacing_velocity": 0.65,
              "threat_scale": 0.82,
              "protagonist_fate": 0.68,
              "conflict_style": 0.62,
              "price_type": 0.58
            },
            "score_space": "site-v1",
            "score_only": true,
            "source_run_label": "NTSMR-2.5-claude-sonnet-4-6-low"
          },
          "NTSMR-2.5-gemini-3.1-pro-preview": {
            "pipeline_version": "2.5",
            "backend": "gemini",
            "model": "gemini-3.1-pro-preview",
            "scores": {
              "time_linearity": 0.4,
              "pacing_velocity": 0.65,
              "threat_scale": 0.82,
              "protagonist_fate": 0.68,
              "conflict_style": 0.62,
              "price_type": 0.58
            },
            "score_space": "site-v1"
          }
        }
      },
      "todorov_stages": {
        "equilibrium": "A 244-year-old assassination system (O.S.) secretly maintains geopolitical stability among the seven Hives, with the major powers tacitly accepting managed murders to prevent war. The Hive system functions, the Anonymous shapes Cousin policy through the CFB, and Jehovah exists as a private enigma among the powerful.",
        "disruption": "The Seven-Ten list is exposed, triggering simultaneous collapse of the Cousins' Feedback Bureau, the Anonymous's cover, and the O.S. network—while Sniper shoots Jehovah through the head at the Senate Rostra, shattering the political order.",
        "recognition": "The Hive leaders confront Jehovah's announcement of 2,204 murders over 244 years; Kosala reacts with moral horror while Andō and Perry admit complicity. Bridger's role in manifesting Apollo's war script as reality is revealed, showing the crisis is worse than anyone anticipated.",
        "repair": "Bridger resurrects Jehovah with a potion at the Rostra. Papadelias arrests key conspirators. Carlyle blackmails Julia and delivers her to arrest. Ancelet resigns and freezes Senate proportioning. Andō installs Dominic as a proxy leader. Mycroft proposes using Bridger to resurrect Apollo so MASON and Utopia can ally against the coming war.",
        "new_equilibrium": "A fundamentally altered order emerges: the O.S. system is destroyed, the Anonymous is exposed and resigned, the Cousins face structural transformation, and Jehovah has accepted power with open war now looming. Sides have formed, Sniper's Hiveguard grows, and the peace maintained for 244 years by covert murder is ending."
      },
      "characters": [
        {
          "name": "Ojiro Cardigan Sniper",
          "slug": "ojiro-cardigan-sniper",
          "aliases": [
            "Ojiro",
            "Cardie",
            "Cardigan",
            "Sniper Doll",
            "O.S.",
            "Sniper",
            "thirteenth O.S."
          ],
          "role": "Licensed sensayer, athlete, and fugitive",
          "summary": "A highly trained athlete and assassin who shoots Jehovah from a rooftop to prevent a conspiracy to make the boy a king. Sniper disables security electronics and broadcasts a global justification for the murder."
        },
        {
          "name": "My Owner",
          "slug": "my-owner",
          "aliases": [
            "His Holiness",
            "Your Holiness"
          ],
          "role": "Captor / Patron of Sniper",
          "summary": "A powerful figure who receives the paralyzed Sniper as a gift, enjoying the power dynamic and treating Sniper as a confidante and toy."
        },
        {
          "name": "The Gift-giver",
          "slug": "the-gift-giver",
          "aliases": [],
          "role": "Kidnapper",
          "summary": "A masked individual with a computer-distorted voice who paralyzed and delivered Sniper to 'My Owner'."
        },
        {
          "name": "Casimir Perry",
          "slug": "casimir-perry",
          "aliases": [
            "Prime Minister"
          ],
          "role": "Europe's Second-Choice Prime Minister",
          "summary": "A stressed European leader who urges a hit to prevent the Cousins Hive from collapsing and the Masons from gaining a majority."
        },
        {
          "name": "Dominic Seneschal",
          "slug": "dominic-seneschal",
          "aliases": [
            "Dominic"
          ],
          "role": "Servant to Jehovah and enemy of Madame",
          "summary": "Chosen by Andō as a proxy leader who will inevitably self-destruct due to internal contradictions; intercepts the Sniper doll mid-air."
        },
        {
          "name": "Carlyle Foster",
          "slug": "carlyle-foster",
          "aliases": [
            "Carlyle",
            "Foster",
            "Cousin Foster"
          ],
          "role": "Sensayer and Gag-gene, nephew to Ganymede",
          "summary": "A sensayer who uncovers the truth about the Saneer-Weeksbooth system, records Julia Doria-Pamphili's manipulative conversations, and publicly demands the truth about his parentage, discovering Danaë is his mother."
        },
        {
          "name": "Bridger",
          "slug": "bridger",
          "aliases": [],
          "role": "Miracle worker",
          "summary": "Terrified of his own world-altering powers, he refuses to act as humanity's savior, animate his toys to fight, and ultimately erases himself, leaving behind a fully-grown Major."
        },
        {
          "name": "The Major",
          "slug": "the-major",
          "aliases": [
            "Major"
          ],
          "role": "Commander of the living toys",
          "summary": "Brought to full human life and size by Bridger just before the boy disappears; he vows violent revenge against Sniper for destroying their chance to save the world."
        },
        {
          "name": "Cornel MASON",
          "slug": "cornel-mason",
          "aliases": [
            "Donatien",
            "Jehovah",
            "Child",
            "Fili",
            "Porphyrogene",
            "Tai-kun",
            "Ἄναξ Jehovah",
            "Tocqueville",
            "Jehovah Epicurus Donatien D'Arouet Mason",
            "Tribune Mason",
            "Jed",
            "Domine",
            "Xiao Hei Wang",
            "Shan Huang Zi",
            "Shan Tai Zi",
            "Epicurus Mason",
            "Epicuro",
            "J.E.D.D. Mason",
            "TM",
            "Good Ἄναξ Jehovah",
            "MASON",
            "Caesar",
            "Emperor",
            "Praeses Maximus",
            "Father of Men and Gods"
          ],
          "role": "The Imperator Destinatus / Heir to multiple Hives",
          "summary": "The stoic Emperor who witnesses Jehovah's assassination. He later opens a secure vault in Alexandria to reveal the identity of the new Anonymous. In a flashback, he is seen as one of Jehovah's prospective fathers."
        },
        {
          "name": "Mycroft Canner",
          "slug": "mycroft-canner",
          "aliases": [
            "Saladin",
            "The Monster",
            "Slave Mycroft",
            "True Mycroft",
            "beast",
            "wild dog",
            "Anonymous",
            "Déguisé",
            "Comte Déguisé"
          ],
          "role": "Narrator and protector of Bridger",
          "summary": "Wakes up in a Utopian hospital as the new Anonymous, realizes Bridger animated a Sniper doll, and desperately pleads with Bridger not to abandon the world, ultimately failing."
        },
        {
          "name": "Ockham Saneer",
          "slug": "ockham-saneer",
          "aliases": [
            "Lesley",
            "Lesley Juniper",
            "Thiz",
            "The witch",
            "Prospero"
          ],
          "role": "Security / Member of Saneer-Weeksbooth",
          "summary": "Ockham decides to stay behind and stand trial for the bash's murders to defend their actions as legitimate orders from their Hive President."
        },
        {
          "name": "Hotaka Andō Mitsubishi",
          "slug": "hotaka-and-mitsubishi",
          "aliases": [
            "Andō",
            "Chief Executive Director",
            "Chief Director",
            "Papa Andō",
            "Tai-kun",
            "Mitsubishi Chief Director"
          ],
          "role": "Chief Director of the Mitsubishi Hive",
          "summary": "The leader of the Mitsubishi Hive who fiercely defends the secret assassination system as a necessary tool that saved millions from war, and explains the dark history between Danaë and Merion Kraye."
        },
        {
          "name": "Ganymede Jean-Louis de la Trémoïlle",
          "slug": "ganymede-jean-louis-de-la-trmolle",
          "aliases": [
            "Ganymede",
            "President",
            "The Duke President",
            "Member President",
            "His Grace"
          ],
          "role": "President of the Humanists",
          "summary": "The aristocratic leader of the Humanists and Carlyle's uncle, who denies using assassins to kill Carlyle's father, Merion Kraye."
        },
        {
          "name": "Spain",
          "slug": "spain",
          "aliases": [],
          "role": "Leader",
          "summary": "One of the powers who questions the timeline of Mycroft's realization."
        },
        {
          "name": "Bryar Kosala",
          "slug": "bryar-kosala",
          "aliases": [
            "Kosala",
            "Chair Kosala",
            "Chair"
          ],
          "role": "Chairwoman of the Cousins Hive",
          "summary": "The leader of the Cousins Hive who delivers a shocking confession to the Senate, exposing that her Hive's democratic feedback system is structurally broken and has been secretly propped up by the Anonymous."
        },
        {
          "name": "Apollo Mojave",
          "slug": "apollo-mojave",
          "aliases": [
            "Apollo"
          ],
          "role": "Murdered Utopian",
          "summary": "A Utopian killed by Mycroft and Saladin. His coat is held as a trophy by MASON."
        },
        {
          "name": "Madame",
          "slug": "madame",
          "aliases": [],
          "role": "Brothel Proprietor / Powerbroker",
          "summary": "A powerful figure seen in a flashback, happily showing off her twenty-week pregnant belly to prospective fathers, wielding the unborn Jehovah as a tool for control."
        },
        {
          "name": "Tully Mardi",
          "slug": "tully-mardi",
          "aliases": [
            "Geneva",
            "Tully Mojave",
            "Tully",
            "The Enemy",
            "Canner survivor"
          ],
          "role": "Radical speaker and survivor",
          "summary": "The survivor of the Mycroft Canner massacre who publicly warns the Brillist crowd that war is inevitable and imminent, shocking them before being supported by Sniper."
        },
        {
          "name": "Cato",
          "slug": "cato",
          "aliases": [],
          "role": "Scientist / Member of Saneer-Weeksbooth",
          "summary": "A nervous scientist who checks Sniper's blood, picks untraceable assassination methods, and detects an anomaly in the car's temperature."
        },
        {
          "name": "Sydney/Eureka",
          "slug": "sydneyeureka",
          "aliases": [
            "the set-set"
          ],
          "role": "Set-set / Member of Saneer-Weeksbooth",
          "summary": "A set-set embedded in a mesh who votes to follow the hit order to save the Cousins Hive."
        },
        {
          "name": "Julia Doria-Pamphili",
          "slug": "julia-doria-pamphili",
          "aliases": [
            "Julia",
            "Pontifex Maxima"
          ],
          "role": "Sensayer Network Leader",
          "summary": "A highly manipulative sensayer who secretly orchestrated actions against the Cousins' Feedback Bureau, only to be confronted by Carlyle Foster, who recorded her confessions."
        },
        {
          "name": "Vivien Ancelet",
          "slug": "vivien-ancelet",
          "aliases": [
            "Censor",
            "The Anonymous",
            "Seventh Anonymous"
          ],
          "role": "Censor / The Anonymous",
          "summary": "The Censor whose secret identity as the Anonymous is revealed by MASON to stop Brody DeLupa. He resigns from both offices and delivers an impassioned speech pleading for slow change to preserve utopia."
        },
        {
          "name": "Joyce Faust",
          "slug": "joyce-faust",
          "aliases": [
            "Madame",
            "Headmaster Faust",
            "Headmaster",
            "Uncle Felix"
          ],
          "role": "Master of Brill's Institute of Psychotaxonomic Science",
          "summary": "Maneuvers to place her son in control of all Hives, views a devastating world war as a useful crucible for his legacy, and claims Saladin Canner as her legally protected guard dog."
        },
        {
          "name": "Papadelias",
          "slug": "papadelias",
          "aliases": [
            "Papa",
            "Commissioner General"
          ],
          "role": "Police Commissioner General",
          "summary": "The police commissioner who receives Carlyle's evidence regarding the assassinations and cautions him about the severe personal consequences of going public."
        },
        {
          "name": "Perry",
          "slug": "perry",
          "aliases": [
            "Prime Minister"
          ],
          "role": "European Prime Minister",
          "summary": "A politician who confesses that Europe participated in the assassination conspiracy for over a century, deliberately keeping the Spanish King ignorant to protect his conscience."
        },
        {
          "name": "Brody DeLupa",
          "slug": "brody-delupa",
          "aliases": [
            "Vice President",
            "Proxy",
            "Vice President DeLupa"
          ],
          "role": "Humanist Vice President and Proxy of the Anonymous",
          "summary": "A grandstanding politician who exploits the chaos to read the 'Wish List' and falsely claims to be the voice of the Anonymous, demanding the dissolution of the Humanist Hive."
        },
        {
          "name": "Isabel Carlos II",
          "slug": "isabel-carlos-ii",
          "aliases": [
            "King of Spain",
            "King Prime Minister"
          ],
          "role": "King of Spain",
          "summary": "One of Madame's clients and Jehovah's prospective fathers, who insists on fulfilling his duty to the child despite the political damage."
        }
      ],
      "frameworks_mapped": [
        "Protocol Fiction Mapping",
        "Actantial Model",
        "Todorov's Equilibrium",
        "The Freytag Pyramid",
        "Propp's Morphology",
        "Genette's Narrative",
        "The Monomyth",
        "Dan Harmon",
        "Save the Cat",
        "Kishōtenketsu",
        "The Three-Act Structure"
      ],
      "score_reliability": {
        "state": "replicated-agree",
        "threshold": 0.2,
        "runs_total": 6,
        "versions_compared": [
          "2.5"
        ],
        "max_spread": 0.12,
        "contested": []
      }
    },
    {
      "slug": "ted_chiang_seventy_two_letters",
      "title": "Seventy-Two Letters",
      "author": "Ted Chiang",
      "year": 2002,
      "medium": "short_story",
      "genre_tags": [],
      "tropes": [],
      "quadrant_scores": {
        "time_linearity": 0.18,
        "pacing_velocity": 0.65,
        "threat_scale": 0.88,
        "protagonist_fate": 0.38,
        "conflict_style": 0.68,
        "price_type": 0.7
      },
      "provenance": {
        "analysis_run": "NTSMR-2.5-claude-sonnet-4-6-low",
        "analysis_body_sha256": "25d9cc420569b320fe0256365cb2a5852dc2267c197e4a5eb23758901996a86b",
        "synthesis": {
          "path": "nartopo-tools/artifacts/ted_chiang_seventy_two_letters.md.ntsmr-2-5-claude-sonnet-4-6-low.synthesis.json",
          "sha256": "0402b5bcffaa2ba5d33adb8310e46f28a2a843b4d7ef5a3efb2bf044db9b38fc"
        },
        "report": {
          "path": "nartopo-tools/artifacts/ted_chiang_seventy_two_letters.md.ntsmr-2-5-claude-sonnet-4-6-low.report.json",
          "sha256": "809dcd51111ca5d488b4577b71009e8ce9c9180e3b786cf98b4db71999c498c7"
        },
        "source": {
          "path": "Ted Chiang/Seventy-Two Letters.txt",
          "sha256": "92631e33115ce88e2a59493a9e1c5f7e37a46e0ecebb50944814a5a0cb7c55e8",
          "digest_observed_at": "2026-09-09",
          "digest_at_analysis_run": null,
          "edition": null,
          "edition_status": "unresolved"
        },
        "pipeline_revision_at_run": null,
        "verification": {
          "source": "unverified",
          "human_review": "unreviewed",
          "bibliography": "unverified"
        },
        "issues": [],
        "todorov_status": "recovered-from-synthesis",
        "work_identity": {
          "title": "Seventy-Two Letters",
          "author": "Ted Chiang",
          "year": 2002
        }
      },
      "ntsmr": {
        "version": "2.5",
        "primary_run_label": "NTSMR-2.5-claude-sonnet-4-6-low",
        "runs": {
          "NTSMR-2.3-gemini-3.1-pro-preview": {
            "pipeline_version": "2.3",
            "backend": "gemini",
            "model": "gemini-3.1-pro-preview",
            "scores": {
              "time_linearity": 0.1,
              "pacing_velocity": 0.7,
              "threat_scale": 1,
              "protagonist_fate": 0.2,
              "conflict_style": 0.65,
              "price_type": 0.9
            },
            "score_space": "site-v1"
          },
          "NTSMR-2.3-claude-sonnet-4-6-low": {
            "pipeline_version": "2.3",
            "backend": "claude",
            "model": "claude-sonnet-4-6",
            "scores": {
              "time_linearity": 0.15,
              "pacing_velocity": 0.65,
              "threat_scale": 0.85,
              "protagonist_fate": 0.2,
              "conflict_style": 0.7,
              "price_type": 0.8
            },
            "score_space": "site-v1",
            "reasoning_effort": "low"
          },
          "NTSMR-2.4-claude-sonnet-4-6-low": {
            "pipeline_version": "2.4",
            "backend": "claude",
            "model": "claude-sonnet-4-6",
            "scores": {
              "time_linearity": 0.18,
              "pacing_velocity": 0.45,
              "threat_scale": 0.88,
              "protagonist_fate": 0.28,
              "conflict_style": 0.55,
              "price_type": 0.65
            },
            "score_space": "site-v1",
            "reasoning_effort": "low"
          },
          "NTSMR-2.5-claude-sonnet-4-6-low": {
            "pipeline_version": "2.5",
            "backend": "claude",
            "model": "claude-sonnet-4-6",
            "scores": {
              "time_linearity": 0.18,
              "pacing_velocity": 0.65,
              "threat_scale": 0.88,
              "protagonist_fate": 0.38,
              "conflict_style": 0.68,
              "price_type": 0.7
            },
            "score_space": "site-v1",
            "reasoning_effort": "low"
          },
          "NTSMR-2.5-balanced-glm-5+deepseek-v3.2": {
            "pipeline_version": "2.5",
            "backend": "openrouter",
            "model": "balanced-routing",
            "scores": {
              "time_linearity": 0.15,
              "pacing_velocity": 0.7,
              "threat_scale": 0.85,
              "protagonist_fate": 0.3,
              "conflict_style": 0.7,
              "price_type": 0.6
            },
            "score_space": "site-v1",
            "score_only": true,
            "source_run_label": "NTSMR-2.5-claude-sonnet-4-6-low"
          }
        }
      },
      "todorov_stages": {
        "equilibrium": "Stratton works as a nomenclator developing dexterous automata at Coade Manufactory, operating within a functioning industrial and scientific order where human reproduction is assumed to be naturally self-sustaining.",
        "disruption": "Fieldhurst reveals that human spermatozoa carry a finite generational potential and humanity faces extinction within five generations, collapsing the assumption of biological continuity. This is compounded by Fieldhurst's disclosure that he intends to use the reproductive technology to control working-class fertility.",
        "recognition": "Stratton and Ashbourne confer after Fieldhurst's eugenicist agenda is revealed, recognizing that the official project, if completed under Fieldhurst's direction, will replace one catastrophe with another — extinction traded for authoritarian reproductive control.",
        "repair": "Stratton and Ashbourne resolve to subvert the project from within, concealing the true properties of the name they develop. Stratton reads Roth's notebook and grasps that a reflexive autonym — a name that induces a foetus bearing its own name — can restore hereditary self-reproduction without any medical or governmental intermediary.",
        "new_equilibrium": "Stratton begins drafting the autonym, envisioning a future where humanity perpetuates itself freely through the name embedded in each individual, making governmental control of reproduction impossible and preserving individual reproductive liberty across generations indefinitely."
      },
      "characters": [
        {
          "name": "Robert Stratton",
          "slug": "robert-stratton",
          "aliases": [
            "Stratton",
            "Mr. Stratton"
          ],
          "role": "Protagonist, nomenclator",
          "summary": "A nomenclator who develops dexterous automata to help the working class. He is recruited by Lord Fieldhurst for a secret biological nomenclature project but turns against him upon learning of his eugenic motives. He uses Roth's autonym to create a self-sustaining human reproduction method."
        },
        {
          "name": "Harold Willoughby",
          "slug": "harold-willoughby",
          "aliases": [
            "Willoughby"
          ],
          "role": "Master Sculptor First-Degree",
          "summary": "A Master Sculptor at Coade Manufactory who fiercely opposes Stratton's work with dexterous automata, fearing it will replace human sculptors, and threatens to boycott his work."
        },
        {
          "name": "Davies",
          "slug": "davies",
          "aliases": [],
          "role": "Agent of Lord Fieldhurst",
          "summary": "A capable man employed by Lord Fieldhurst who serves as a messenger to recruit Stratton and later saves Stratton's life from an assassin at the manufactory."
        },
        {
          "name": "Edward Maitland, Lord Fieldhurst",
          "slug": "edward-maitland-lord-fieldhurst",
          "aliases": [
            "Lord Fieldhurst",
            "the earl",
            "Fieldhurst"
          ],
          "role": "President of the Royal Society, zoologist",
          "summary": "A noted zoologist who leads the secret project to artificially conceive humans due to impending extinction. He intends to use the resulting technology to enforce population control and eugenics against the lower classes."
        },
        {
          "name": "Nicholas Ashbourne",
          "slug": "nicholas-ashbourne",
          "aliases": [
            "Ashbourne",
            "Dr. Ashbourne",
            "the elder nomenclator"
          ],
          "role": "Nomenclator",
          "summary": "An expert nomenclator and former lecturer who formulated the thermodynamic theory of lexical order for animating ova. He conspires with Stratton to thwart Fieldhurst's eugenics plan."
        },
        {
          "name": "Benjamin Roth",
          "slug": "benjamin-roth",
          "aliases": [
            "Roth"
          ],
          "role": "Kabbalist",
          "summary": "A kabbalist who seeks Stratton's dexterity epithets for spiritual practices and shares his own 'autonym' epithet for writing. He is killed by an assassin in Stratton's office."
        },
        {
          "name": "The Assassin",
          "slug": "the-assassin",
          "aliases": [
            "the man",
            "assailant"
          ],
          "role": "Assassin/Thief",
          "summary": "An unnamed man who murders Benjamin Roth and attacks Stratton at the Coade Manufactory, seeking to steal or destroy Stratton's work, likely on behalf of the sculptors."
        }
      ],
      "frameworks_mapped": [
        "Protocol Fiction Mapping",
        "Actantial Model",
        "Todorov's Equilibrium",
        "The Freytag Pyramid",
        "Propp's Morphology",
        "Genette's Narrative",
        "The Monomyth",
        "Dan Harmon",
        "Save the Cat",
        "Kishōtenketsu",
        "The Three-Act Structure",
        "Lévi-Strauss's Binary Oppositions",
        "Cognitive Estrangement",
        "Bakhtin's Chronotope",
        "Aristotelian Poetics",
        "Jungian Archetypal Analysis",
        "Genette's Transtextuality"
      ],
      "score_reliability": {
        "state": "replicated-agree",
        "threshold": 0.2,
        "runs_total": 5,
        "versions_compared": [
          "2.5"
        ],
        "max_spread": 0.1,
        "contested": []
      }
    },
    {
      "slug": "stanislaw_lem_sexplosion",
      "title": "Sexplosion",
      "author": "Stanislaw Lem",
      "year": 1971,
      "medium": "short_story",
      "genre_tags": [],
      "tropes": [],
      "quadrant_scores": {
        "time_linearity": 0.75,
        "pacing_velocity": 0.8,
        "threat_scale": 0.92,
        "protagonist_fate": 0.75,
        "conflict_style": 0.85,
        "price_type": 0.8
      },
      "provenance": {
        "analysis_run": "NTSMR-2.5-claude-sonnet-4-6-low",
        "analysis_body_sha256": "fa24ccea0ca0e2ea0b888accba7e79ce3aa1c3975ac5f89859923b72d249ed54",
        "synthesis": {
          "path": "nartopo-tools/artifacts/stanislaw_lem_sexplosion.md.ntsmr-2-5-claude-sonnet-4-6-low.synthesis.json",
          "sha256": "62f0f274f0f7e206c79e15359a67ec752c862dbf9ea1f56c7e31572f8093a3ff"
        },
        "report": {
          "path": "nartopo-tools/artifacts/stanislaw_lem_sexplosion.md.ntsmr-2-5-claude-sonnet-4-6-low.report.json",
          "sha256": "9aba6c476a473635a493d18e0e7ef818a2287c49944e7b3795419f84b5d12782"
        },
        "source": {
          "path": "Stanislaw Lem/Sexplosion.txt",
          "sha256": "b407f712d63d85a85d80c9ac39452a507e8d31bd8611eddb41e71b28cc86d5f7",
          "digest_observed_at": "2026-09-09",
          "digest_at_analysis_run": null,
          "edition": null,
          "edition_status": "unresolved"
        },
        "pipeline_revision_at_run": null,
        "verification": {
          "source": "unverified",
          "human_review": "unreviewed",
          "bibliography": "unverified"
        },
        "issues": [],
        "todorov_status": "recovered-from-synthesis",
        "work_identity": {
          "title": "Sexplosion",
          "author": "Stanislaw Lem",
          "year": 1971
        }
      },
      "ntsmr": {
        "version": "2.5",
        "primary_run_label": "NTSMR-2.5-claude-sonnet-4-6-low",
        "runs": {
          "NTSMR-2.3-gemini-3.1-pro-preview": {
            "pipeline_version": "2.3",
            "backend": "gemini",
            "model": "gemini-3.1-pro-preview",
            "scores": {
              "time_linearity": 0.85,
              "pacing_velocity": 0.95,
              "threat_scale": 1,
              "protagonist_fate": 0.9,
              "conflict_style": 0.9,
              "price_type": 0.95
            },
            "score_space": "site-v1"
          },
          "NTSMR-2.3-claude-sonnet-4-6-low": {
            "pipeline_version": "2.3",
            "backend": "claude",
            "model": "claude-sonnet-4-6",
            "scores": {
              "time_linearity": 0.85,
              "pacing_velocity": 0.88,
              "threat_scale": 0.95,
              "protagonist_fate": 0.72,
              "conflict_style": 0.82,
              "price_type": 0.9
            },
            "score_space": "site-v1",
            "reasoning_effort": "low"
          },
          "NTSMR-2.4-claude-sonnet-4-6-low": {
            "pipeline_version": "2.4",
            "backend": "claude",
            "model": "claude-sonnet-4-6",
            "scores": {
              "time_linearity": 0.75,
              "pacing_velocity": 0.7,
              "threat_scale": 0.85,
              "protagonist_fate": 0.8,
              "conflict_style": 0.8,
              "price_type": 0.55
            },
            "score_space": "site-v1",
            "reasoning_effort": "low"
          },
          "NTSMR-2.5-claude-sonnet-4-6-low": {
            "pipeline_version": "2.5",
            "backend": "claude",
            "model": "claude-sonnet-4-6",
            "scores": {
              "time_linearity": 0.75,
              "pacing_velocity": 0.8,
              "threat_scale": 0.92,
              "protagonist_fate": 0.75,
              "conflict_style": 0.85,
              "price_type": 0.8
            },
            "score_space": "site-v1",
            "reasoning_effort": "low"
          },
          "NTSMR-2.5-balanced-glm-5+deepseek-v3.2": {
            "pipeline_version": "2.5",
            "backend": "openrouter",
            "model": "balanced-routing",
            "scores": {
              "time_linearity": 0.6,
              "pacing_velocity": 0.8,
              "threat_scale": 0.85,
              "protagonist_fate": 0.7,
              "conflict_style": 0.85,
              "price_type": 0.85
            },
            "score_space": "site-v1",
            "score_only": true,
            "source_run_label": "NTSMR-2.5-claude-sonnet-4-6-low"
          }
        }
      },
      "todorov_stages": {
        "equilibrium": "American industry channels productive energies into a sex-commodity empire dominated by three corporations; sex functions as civic religion, orgasm as measurable duty, and an entire industrial apparatus sustains an erotic civilization at its peak",
        "disruption": "The chemical agent Nosex eliminates all erotic sensation globally, reducing sex to joyless physical labor and triggering the overnight Crash of 1998 — thirty-two million Americans unemployed, the species facing extinction as reproduction becomes psychologically insupportable",
        "recognition": "The catastrophe is recognized at the civilizational level as governments, corporations, and populations confront the total collapse of the erotic economy and the failure of all attempts to restore procreation by coercion, incentives, and propaganda",
        "repair": "Governments attempt appeals, medals, competitions, and repressive measures to restore procreation; hygienic artificial fertilization is eventually deployed to stabilize the species biologically",
        "new_equilibrium": "The cultural vacuum left by the death of eroticism is filled by food, which inherits all the taboo structures, perversions, legislation, and obsessive energy of the former erotic order; biological sciences advance toward the neutrone — a neuter being produced by genetic engineering — projecting the final elimination of sexual reproduction"
      },
      "characters": [
        {
          "name": "Simon Merrill",
          "slug": "simon-merrill",
          "aliases": [],
          "role": "Author",
          "summary": "The author of the science fiction novel Sexplosion."
        },
        {
          "name": "The old man",
          "slug": "the-old-man",
          "aliases": [
            "old hermit"
          ],
          "role": "Protagonist",
          "summary": "An unnamed, lonely hermit who wanders the ruined basement vaults of a former sex-industry corporation, recalling the history of the world."
        },
        {
          "name": "McLuhan",
          "slug": "mcluhan",
          "aliases": [
            "hale and hearty old codger"
          ],
          "role": "Philosopher",
          "summary": "A historical figure and author of Genitocracy who interpreted all human technological progress as surrogates for sexual function."
        },
        {
          "name": "Cleopatra",
          "slug": "cleopatra",
          "aliases": [
            "plastic Cleopatra"
          ],
          "role": "Manikin",
          "summary": "A plastic manikin in the basement on whose smooth knees the tired old man takes a seat."
        }
      ],
      "frameworks_mapped": [
        "Protocol Fiction Mapping",
        "Actantial Model",
        "Todorov's Equilibrium",
        "The Freytag Pyramid",
        "Propp's Morphology",
        "Genette's Narrative",
        "The Monomyth",
        "Dan Harmon",
        "Save the Cat",
        "Kishōtenketsu",
        "The Three-Act Structure",
        "Lévi-Strauss's Binary Oppositions",
        "Cognitive Estrangement",
        "Bakhtin's Chronotope",
        "Aristotelian Poetics",
        "Jungian Archetypal Analysis",
        "Genette's Transtextuality"
      ],
      "score_reliability": {
        "state": "replicated-agree",
        "threshold": 0.2,
        "runs_total": 5,
        "versions_compared": [
          "2.5"
        ],
        "max_spread": 0.15,
        "contested": []
      }
    },
    {
      "slug": "neal_stephenson_snow_crash",
      "title": "Snow Crash",
      "author": "Neal Stephenson",
      "year": 1992,
      "medium": "book",
      "genre_tags": [],
      "tropes": [],
      "quadrant_scores": {
        "time_linearity": 0.25,
        "pacing_velocity": 0.28,
        "threat_scale": 0.88,
        "protagonist_fate": 0.38,
        "conflict_style": 0.32,
        "price_type": 0.48
      },
      "provenance": {
        "analysis_run": "NTSMR-2.5-claude-sonnet-4-6-low",
        "analysis_body_sha256": "0eca62733a0dc46157054687bdb741dfc610090300c5d73a5f7373347d44eca9",
        "synthesis": {
          "path": "nartopo-tools/artifacts/neal_stephenson_snow_crash.md.ntsmr-2-5-claude-sonnet-4-6-low.synthesis.json",
          "sha256": "f424392dbf900cad374a6da9b56914175c38e55881945f166854d7186d3baa69"
        },
        "report": {
          "path": "nartopo-tools/artifacts/neal_stephenson_snow_crash.md.ntsmr-2-5-claude-sonnet-4-6-low.report.json",
          "sha256": "20cb36e5539a45c34f434655850bdfd3c07b4038a7c6bdfa5697413d0d93813f"
        },
        "source": {
          "path": "Neal Stephenson/Snow Crash.txt",
          "sha256": "4a3397198fb3a4629ae1a6bfe6b204250601eedd700915e5c64f05e2dbb7dcdf",
          "digest_observed_at": "2026-09-09",
          "digest_at_analysis_run": null,
          "edition": null,
          "edition_status": "unresolved"
        },
        "pipeline_revision_at_run": null,
        "verification": {
          "source": "unverified",
          "human_review": "unreviewed",
          "bibliography": "unverified"
        },
        "issues": [],
        "todorov_status": "recovered-from-synthesis",
        "work_identity": {
          "title": "Snow Crash",
          "author": "Neal Stephenson",
          "year": 1992
        }
      },
      "ntsmr": {
        "version": "2.5",
        "primary_run_label": "NTSMR-2.5-claude-sonnet-4-6-low",
        "runs": {
          "NTSMR-2.4-claude-sonnet-4-6-low": {
            "pipeline_version": "2.4",
            "backend": "claude",
            "model": "claude-sonnet-4-6",
            "scores": {
              "time_linearity": 0.22,
              "pacing_velocity": 0.18,
              "threat_scale": 0.88,
              "protagonist_fate": 0.28,
              "conflict_style": 0.28,
              "price_type": 0.35
            },
            "score_space": "site-v1",
            "reasoning_effort": "low"
          },
          "NTSMR-2.5-claude-sonnet-4-6-low": {
            "pipeline_version": "2.5",
            "backend": "claude",
            "model": "claude-sonnet-4-6",
            "scores": {
              "time_linearity": 0.25,
              "pacing_velocity": 0.28,
              "threat_scale": 0.88,
              "protagonist_fate": 0.38,
              "conflict_style": 0.32,
              "price_type": 0.48
            },
            "score_space": "site-v1",
            "reasoning_effort": "low"
          },
          "NTSMR-2.5-minimax/minimax-m2.5": {
            "pipeline_version": "2.5",
            "backend": "openrouter",
            "model": "minimax/minimax-m2.5",
            "scores": {
              "time_linearity": 0.25,
              "pacing_velocity": 0.35,
              "threat_scale": 0.85,
              "protagonist_fate": 0.3,
              "conflict_style": 0.5,
              "price_type": 0.5
            },
            "score_space": "site-v1"
          },
          "NTSMR-2.5-qwen/qwen3.5-plus-02-15": {
            "pipeline_version": "2.5",
            "backend": "openrouter",
            "model": "qwen/qwen3.5-plus-02-15",
            "scores": {
              "time_linearity": 0.25,
              "pacing_velocity": 0.4,
              "threat_scale": 0.85,
              "protagonist_fate": 0.35,
              "conflict_style": 0.55,
              "price_type": 0.65
            },
            "score_space": "site-v1"
          },
          "NTSMR-2.5-qwen/qwen3.5-397b-a17b": {
            "pipeline_version": "2.5",
            "backend": "openrouter",
            "model": "qwen/qwen3.5-397b-a17b",
            "scores": {
              "time_linearity": 0.2,
              "pacing_velocity": 0.45,
              "threat_scale": 0.75,
              "protagonist_fate": 0.4,
              "conflict_style": 0.55,
              "price_type": 0.6
            },
            "score_space": "site-v1"
          },
          "NTSMR-2.5-z-ai/glm-4.7": {
            "pipeline_version": "2.5",
            "backend": "openrouter",
            "model": "z-ai/glm-4.7",
            "scores": {
              "time_linearity": 0.25,
              "pacing_velocity": 0.35,
              "threat_scale": 0.8,
              "protagonist_fate": 0.25,
              "conflict_style": 0.3,
              "price_type": 0.4
            },
            "score_space": "site-v1"
          },
          "NTSMR-2.5-moonshotai/kimi-k2.5": {
            "pipeline_version": "2.5",
            "backend": "openrouter",
            "model": "moonshotai/kimi-k2.5",
            "scores": {
              "time_linearity": 0.25,
              "pacing_velocity": 0.35,
              "threat_scale": 0.85,
              "protagonist_fate": 0.25,
              "conflict_style": 0.35,
              "price_type": 0.4
            },
            "score_space": "site-v1"
          },
          "NTSMR-2.5-z-ai/glm-5": {
            "pipeline_version": "2.5",
            "backend": "openrouter",
            "model": "z-ai/glm-5",
            "scores": {
              "time_linearity": 0.2,
              "pacing_velocity": 0.28,
              "threat_scale": 0.82,
              "protagonist_fate": 0.32,
              "conflict_style": 0.38,
              "price_type": 0.42
            },
            "score_space": "site-v1"
          },
          "NTSMR-2.5-balanced-glm-5+deepseek-v3.2": {
            "pipeline_version": "2.5",
            "backend": "openrouter",
            "model": "balanced-routing",
            "scores": {
              "time_linearity": 0.25,
              "pacing_velocity": 0.35,
              "threat_scale": 0.8,
              "protagonist_fate": 0.3,
              "conflict_style": 0.45,
              "price_type": 0.5
            },
            "score_space": "site-v1",
            "score_only": true,
            "source_run_label": "NTSMR-2.5-claude-sonnet-4-6-low"
          }
        }
      },
      "todorov_stages": {
        "equilibrium": "A hypercapitalist near-future world operates under a stable if satirically degraded order: franchise territories govern civic life, the Metaverse functions as a parallel digital reality, and Hiro Protagonist works as a pizza deliverer while moonlighting as a hacker. The social and informational systems — Burbclaves, MetaCops, The Black Sun — are dysfunctional but stable.",
        "disruption": "Snow Crash emerges as a drug and memetic virus capable of neurologically damaging hackers via visual input in the Metaverse. Da5id's avatar catastrophically disintegrates in The Black Sun, demonstrating the virus's power and signaling that the existing equilibrium of digital and physical safety has been shattered. L. Bob Rife is revealed as the architect weaponizing the ancient Sumerian linguistic substrate through his satellite networks and evangelical empire.",
        "recognition": "Hiro, through extended Metaverse research sessions with the Librarian and through warnings from Lagos and Juanita Marquez, comes to understand that Snow Crash is not merely a drug but a metavirus exploiting a deep Sumerian neural substrate — that Rife Bible College employs Sumerian scholars, that the physical drug is infected blood serum, and that the Raft carries exploited infected hackers. Juanita explains that Snow Crash infects via binary visual data through the optic nerve and that Rife's church is spreading it globally.",
        "repair": "Hiro assembles a digital toolkit — extracting the Snow Crash virus from a scroll, writing SnowScan protective software, constructing a stealth invisible avatar — and travels toward the Raft. He formulates a plan to obtain Enki's nam-shub from the Enterprise and broadcast it to neutralize Rife's control. In the Metaverse, Hiro intercepts Raven's Snow Crash payload using his SnowScan software from within the logic bomb's vortex, preventing mass infection of gathered hackers. Simultaneously, the Rat Thing destroys Rife's jet, killing him and eliminating the central threat.",
        "new_equilibrium": "The Snow Crash virus threat is neutralized: the logic bomb is defused in the Metaverse, L. Bob Rife is killed when the Rat Thing destroys his jet, and the Raft's plan to break apart and flood California with infected refugees is averted. Y.T. is reunited with her mother in a quiet domestic aftermath. The world remains hypercapitalist and fragmented, but the specific existential threat of memetic mass infection has been eliminated — a new, altered status quo in which the catastrophe did not occur."
      },
      "characters": [
        {
          "name": "The Deliverator",
          "slug": "the-deliverator",
          "aliases": [],
          "role": "pizza delivery driver",
          "summary": "An elite CosaNostra Pizza driver in black arachnofiber uniform, armed with samurai swords and a high-velocity dart gun, driving a car with massive battery power."
        },
        {
          "name": "Y.T.",
          "slug": "yt",
          "aliases": [
            "Yours Truly"
          ],
          "role": "Witness and co-protagonist",
          "summary": "A teenage skateboard courier from RadiKS who uses an electromagnetic harpoon to hitch rides on vehicles, wearing orange and blue coverall with armorgel padding."
        },
        {
          "name": "Hiro Protagonist",
          "slug": "hiro-protagonist",
          "aliases": [],
          "role": "hacker and CIC stringer",
          "summary": "A hacker living in a U-Stor-It by the airport, co-creator of The Black Sun, who carries samurai swords and wears a black leather kimono avatar."
        },
        {
          "name": "Da5id",
          "slug": "da5id",
          "aliases": [],
          "role": "hacker and club owner",
          "summary": "Co-creator and owner of The Black Sun, a central figure in the Metaverse hacker community."
        },
        {
          "name": "Juanita Marquez",
          "slug": "juanita-marquez",
          "aliases": [],
          "role": "avatar developer",
          "summary": "Hiro's former partner from Berkeley and Black Sun Systems who worked on avatar faces; now appears in black-and-white, suggesting public terminal access."
        },
        {
          "name": "Mr. Pudgely",
          "slug": "mr-pudgely",
          "aliases": [],
          "role": "pizza customer",
          "summary": "A resident of White Columns who receives a late pizza delivery while guests and news helicopters observe."
        },
        {
          "name": "MetaCops",
          "slug": "metacops",
          "aliases": [],
          "role": "private security",
          "summary": "Private security officers in black helmets and night-vision goggles who carry loogie guns and enforce franchulate borders."
        },
        {
          "name": "Sushi K",
          "slug": "sushi-k",
          "aliases": [],
          "role": "Nipponese rap star",
          "summary": "A Japanese rap star visiting The Black Sun with an entourage of managers, flacks, and lawyers."
        },
        {
          "name": "Roadkill",
          "slug": "roadkill",
          "aliases": [],
          "role": "kourier",
          "summary": "Y.T.'s boyfriend who refuses to help her escape from The Clink."
        },
        {
          "name": "Fido",
          "slug": "fido",
          "aliases": [
            "Rat Thing B-782"
          ],
          "role": "Cybernetic weapon",
          "summary": "A dog who senses other dogs protecting a nice girl, remembering a girl who loved him before his current life."
        },
        {
          "name": "Vitaly Chernobyl",
          "slug": "vitaly-chernobyl",
          "aliases": [],
          "role": "roommate",
          "summary": "Nuclear fuzz-grunge musician who shares a U-Stor-It unit and Vanagon with Hiro."
        },
        {
          "name": "The Librarian",
          "slug": "the-librarian",
          "aliases": [],
          "role": "AI assistant",
          "summary": "AI research assistant providing Hiro with information about Sumerian mythology, Asherah, and the viral connections to Snow Crash."
        },
        {
          "name": "L. Bob Rife",
          "slug": "l-bob-rife",
          "aliases": [
            "Rife"
          ],
          "role": "Primary antagonist",
          "summary": "Media mogul who owns the aircraft carrier Enterprise and runs a global cable network."
        },
        {
          "name": "Lagos",
          "slug": "lagos",
          "aliases": [],
          "role": "researcher",
          "summary": "Eccentric information specialist working with Juanita who warns about Raven and nam-shubs."
        },
        {
          "name": "Jason Breckinridge",
          "slug": "jason-breckinridge",
          "aliases": [
            "The Iron Pumper"
          ],
          "role": "Mafia manager",
          "summary": "Nova Sicilia franchise manager who handles Turfnet operations and contractor assignments."
        },
        {
          "name": "Mr. Caruso",
          "slug": "mr-caruso",
          "aliases": [],
          "role": "Mafia capo",
          "summary": "Nova Sicilia operator who saved Jason's family from Narcolombian attack and recruited him."
        },
        {
          "name": "Y.T.'s mother",
          "slug": "yts-mother",
          "aliases": [],
          "role": "minor character",
          "summary": "Fed employee subjected to weekly polygraph tests, exhausted and stressed."
        },
        {
          "name": "Raven",
          "slug": "raven",
          "aliases": [],
          "role": "Antagonist and enforcer",
          "summary": "Massive Aleut man with nuclear testing heritage who serves as L. Bob Rife's enforcer and becomes intimate with Y.T."
        },
        {
          "name": "Squeaky",
          "slug": "squeaky",
          "aliases": [],
          "role": "informant",
          "summary": "Mafia operative present at the violent confrontation with Raven."
        },
        {
          "name": "Uncle Enzo",
          "slug": "uncle-enzo",
          "aliases": [
            "Enzo"
          ],
          "role": "Mafia boss and tactical commander",
          "summary": "Mafia boss who bonds with Y.T. over shared philosophy about hearing and helmets, shares his Vietnam rebellion backstory."
        },
        {
          "name": "Ng",
          "slug": "ng",
          "aliases": [],
          "role": "Technical surveillance provider",
          "summary": "Disabled man who operates Ng Security Industries, drives a heavily modified van, and works with the Mafia to analyze Snow Crash; a Freon junkie dependent on air conditioning."
        },
        {
          "name": "Former Systems Programmer",
          "slug": "former-systems-programmer",
          "aliases": [],
          "role": "victim",
          "summary": "A brainwashed woman who was a 3verse Systems programmer before seeing static on her computer, being converted to the Word, and sent to the Raft for blood harvesting."
        },
        {
          "name": "Y.T.'s Mom",
          "slug": "yts-mom",
          "aliases": [],
          "role": "supporting",
          "summary": "Federal applications programmer who endures oppressive surveillance, cavity searches as punishment, and constant bureaucratic monitoring in Fedland."
        },
        {
          "name": "Marietta",
          "slug": "marietta",
          "aliases": [],
          "role": "opponent",
          "summary": "Y.T.'s mom's supervisor with connections who punishes subordinates with cavity searches and polygraph tests."
        },
        {
          "name": "New South Africans",
          "slug": "new-south-africans",
          "aliases": [],
          "role": "opponents",
          "summary": "Racist white supremacists from a New South Africa franchulate who threaten and attack Hiro in the Towne Hall bar."
        },
        {
          "name": "Head Fed",
          "slug": "head-fed",
          "aliases": [],
          "role": "antagonist",
          "summary": "Federal agent in Room 968A who arrests Y.T. and claims to know her mother before being electrocuted by her self-defense gear."
        },
        {
          "name": "Man with glass eye",
          "slug": "man-with-glass-eye",
          "aliases": [],
          "role": "helper",
          "summary": "Mafia operative who explains Lagos's research and the connection between Lagos, L. Bob Rife, and the ancient virus."
        },
        {
          "name": "Fisheye",
          "slug": "fisheye",
          "aliases": [],
          "role": "helper",
          "summary": "Mafia operative on a mission to rescue Y.T., wields the Reason railgun system against pirates."
        },
        {
          "name": "Eliot",
          "slug": "eliot",
          "aliases": [],
          "role": "helper",
          "summary": "Boat captain and Mafia operative who provides tactical leadership during the approach to the Raft."
        },
        {
          "name": "Vic",
          "slug": "vic",
          "aliases": [],
          "role": "helper",
          "summary": "Mafia sniper who provides long-range cover fire during the approach to the Raft."
        },
        {
          "name": "Bruce Lee",
          "slug": "bruce-lee",
          "aliases": [],
          "role": "opponent",
          "summary": "Pirate leader whose ship is destroyed by Fisheye's Reason railgun."
        },
        {
          "name": "Tranny",
          "slug": "tranny",
          "aliases": [],
          "role": "guide",
          "summary": "Filipino man who guides Hiro through the Raft and receives a warm welcome from his family on a houseboat."
        },
        {
          "name": "Mr. Lee",
          "slug": "mr-lee",
          "aliases": [],
          "role": "helper",
          "summary": "Asian businessman who joins the strategy meeting with Uncle Enzo and Ng."
        },
        {
          "name": "Enki",
          "slug": "enki",
          "aliases": [],
          "role": "mythic_figure",
          "summary": "Ancient Sumerian en described as the first hacker who created the nam-shub to free humanity from viral civilization."
        },
        {
          "name": "Asherah",
          "slug": "asherah",
          "aliases": [],
          "role": "antagonist_force",
          "summary": "Ancient viral entity that combines biological and linguistic virus aspects, passed through bodily fluids and breast milk."
        },
        {
          "name": "Ky",
          "slug": "ky",
          "aliases": [],
          "role": "Radio operator and surveillance",
          "summary": "Surveillance man from Ng Security Industries monitoring LAX via Metaverse display."
        },
        {
          "name": "Lieutenant",
          "slug": "lieutenant",
          "aliases": [],
          "role": "Enzo's subordinate",
          "summary": "Incompetent officer threatened by Enzo's story about killing a failed commander in Vietnam."
        }
      ],
      "frameworks_mapped": [
        "Protocol Fiction Mapping",
        "Actantial Model",
        "Todorov's Equilibrium",
        "The Freytag Pyramid",
        "Propp's Morphology",
        "Genette's Narrative",
        "The Monomyth",
        "Dan Harmon",
        "Save the Cat",
        "Kishōtenketsu",
        "The Three-Act Structure",
        "Lévi-Strauss's Binary Oppositions",
        "Cognitive Estrangement",
        "Bakhtin's Chronotope",
        "Aristotelian Poetics",
        "Jungian Archetypal Analysis",
        "Genette's Transtextuality"
      ],
      "score_reliability": {
        "state": "contested",
        "threshold": 0.2,
        "runs_total": 9,
        "versions_compared": [
          "2.5"
        ],
        "max_spread": 0.25,
        "contested": [
          {
            "axis": "conflict_style",
            "version": "2.5",
            "spread": 0.25,
            "low": {
              "label": "NTSMR-2.5-z-ai/glm-4.7",
              "model": "z-ai/glm-4.7",
              "effort": "?",
              "value": 0.3
            },
            "high": {
              "label": "NTSMR-2.5-qwen/qwen3.5-plus-02-15",
              "model": "qwen/qwen3.5-plus-02-15",
              "effort": "?",
              "value": 0.55
            }
          },
          {
            "axis": "price_type",
            "version": "2.5",
            "spread": 0.25,
            "low": {
              "label": "NTSMR-2.5-moonshotai/kimi-k2.5",
              "model": "moonshotai/kimi-k2.5",
              "effort": "?",
              "value": 0.4
            },
            "high": {
              "label": "NTSMR-2.5-qwen/qwen3.5-plus-02-15",
              "model": "qwen/qwen3.5-plus-02-15",
              "effort": "?",
              "value": 0.65
            }
          }
        ]
      }
    },
    {
      "slug": "stanislaw_lem_solaris",
      "title": "Solaris",
      "author": "Stanislaw Lem",
      "year": 1961,
      "medium": "book",
      "genre_tags": [
        "science fiction",
        "philosophical sf",
        "psychological thriller"
      ],
      "tropes": [
        "The Unknowable Alien",
        "Manifested Trauma",
        "Epistemological Crisis"
      ],
      "quadrant_scores": {
        "time_linearity": 0.45,
        "pacing_velocity": 0.8,
        "threat_scale": 0.45,
        "protagonist_fate": 0.7,
        "conflict_style": 0.85,
        "price_type": 0.85
      },
      "baseline_quadrant_scores": {
        "time_linearity": 0.75,
        "pacing_velocity": 0.9,
        "threat_scale": 0.9,
        "protagonist_fate": 0.85,
        "conflict_style": 0.85,
        "price_type": 0.95
      },
      "provenance": {
        "analysis_run": "NTSMR-2.5-claude-sonnet-4-6-low",
        "analysis_body_sha256": "d4aebff1b40111142f817ccfd46439b8db1bda147763746def4a2ea6efc01006",
        "synthesis": {
          "path": "nartopo-tools/artifacts/stanislaw_lem_solaris.md.ntsmr-2-5-claude-sonnet-4-6-low.synthesis.json",
          "sha256": "1b3a17026a787020511454c9735f77a159892f7a865e16a3b2f2d4fe3edd5251"
        },
        "report": {
          "path": "nartopo-tools/artifacts/stanislaw_lem_solaris.md.ntsmr-2-5-claude-sonnet-4-6-low.report.json",
          "sha256": "5da7dfef611565ee9647e74c73537963f241900d8a22f79057789150ccd6b27b"
        },
        "source": {
          "path": "Stanislaw Lem/Solaris.txt",
          "sha256": "8ffda6b4a7a7886b7b22663f93561ce18ed3dbe115403c8e3801239bb8aab240",
          "digest_observed_at": "2026-09-09",
          "digest_at_analysis_run": null,
          "edition": null,
          "edition_status": "unresolved"
        },
        "pipeline_revision_at_run": null,
        "verification": {
          "source": "unverified",
          "human_review": "unreviewed",
          "bibliography": "unverified"
        },
        "issues": [],
        "todorov_status": "recovered-from-synthesis",
        "work_identity": {
          "title": "Solaris",
          "author": "Stanislaw Lem",
          "year": 1961
        }
      },
      "ntsmr": {
        "version": "2.5",
        "primary_run_label": "NTSMR-2.5-claude-sonnet-4-6-low",
        "runs": {
          "NTSMR-2.3-gemini-3.1-pro-preview": {
            "pipeline_version": "2.3",
            "backend": "gemini",
            "model": "gemini-3.1-pro-preview",
            "scores": {
              "time_linearity": 0.65,
              "pacing_velocity": 0.85,
              "threat_scale": 0.95,
              "protagonist_fate": 0.85,
              "conflict_style": 0.9,
              "price_type": 0.95
            },
            "score_space": "site-v1"
          },
          "NTSMR-2.3-gpt-5.4-xhigh": {
            "pipeline_version": "2.3",
            "backend": "codex-exec",
            "model": "gpt-5.4",
            "scores": {
              "time_linearity": 0.39,
              "pacing_velocity": 0.82,
              "threat_scale": 0.64,
              "protagonist_fate": 0.71,
              "conflict_style": 0.87,
              "price_type": 0.92
            },
            "score_space": "site-v1",
            "reasoning_effort": "xhigh"
          },
          "NTSMR-2.3-gpt-5.4-high": {
            "pipeline_version": "2.3",
            "backend": "codex-exec",
            "model": "gpt-5.4",
            "scores": {
              "time_linearity": 0.38,
              "pacing_velocity": 0.76,
              "threat_scale": 0.68,
              "protagonist_fate": 0.72,
              "conflict_style": 0.87,
              "price_type": 0.9
            },
            "score_space": "site-v1",
            "reasoning_effort": "high"
          },
          "NTSMR-2.3-gpt-5.4-medium": {
            "pipeline_version": "2.3",
            "backend": "codex-exec",
            "model": "gpt-5.4",
            "scores": {
              "time_linearity": 0.41,
              "pacing_velocity": 0.82,
              "threat_scale": 0.72,
              "protagonist_fate": 0.76,
              "conflict_style": 0.91,
              "price_type": 0.93
            },
            "score_space": "site-v1",
            "reasoning_effort": "medium"
          },
          "NTSMR-2.3-gpt-5.3-codex-xhigh": {
            "pipeline_version": "2.3",
            "backend": "codex-exec",
            "model": "gpt-5.3-codex",
            "scores": {
              "time_linearity": 0.38,
              "pacing_velocity": 0.86,
              "threat_scale": 0.67,
              "protagonist_fate": 0.78,
              "conflict_style": 0.92,
              "price_type": 0.93
            },
            "score_space": "site-v1",
            "reasoning_effort": "xhigh"
          },
          "NTSMR-2.3-gpt-5.3-codex-high": {
            "pipeline_version": "2.3",
            "backend": "codex-exec",
            "model": "gpt-5.3-codex",
            "scores": {
              "time_linearity": 0.42,
              "pacing_velocity": 0.78,
              "threat_scale": 0.68,
              "protagonist_fate": 0.74,
              "conflict_style": 0.83,
              "price_type": 0.9
            },
            "score_space": "site-v1",
            "reasoning_effort": "high"
          },
          "NTSMR-2.3-gpt-5.3-codex-medium": {
            "pipeline_version": "2.3",
            "backend": "codex-exec",
            "model": "gpt-5.3-codex",
            "scores": {
              "time_linearity": 0.34,
              "pacing_velocity": 0.81,
              "threat_scale": 0.74,
              "protagonist_fate": 0.69,
              "conflict_style": 0.87,
              "price_type": 0.92
            },
            "score_space": "site-v1",
            "reasoning_effort": "medium"
          },
          "NTSMR-2.3-claude-opus-4-6-medium": {
            "pipeline_version": "2.3",
            "backend": "claude",
            "model": "claude-opus-4-6",
            "scores": {
              "time_linearity": 0.45,
              "pacing_velocity": 0.82,
              "threat_scale": 0.75,
              "protagonist_fate": 0.78,
              "conflict_style": 0.85,
              "price_type": 0.88
            },
            "score_space": "site-v1",
            "reasoning_effort": "medium"
          },
          "NTSMR-2.3-claude-sonnet-4-6-medium": {
            "pipeline_version": "2.3",
            "backend": "claude",
            "model": "claude-sonnet-4-6",
            "scores": {
              "time_linearity": 0.65,
              "pacing_velocity": 0.82,
              "threat_scale": 0.72,
              "protagonist_fate": 0.78,
              "conflict_style": 0.85,
              "price_type": 0.88
            },
            "score_space": "site-v1",
            "reasoning_effort": "medium"
          },
          "NTSMR-2.3-claude-sonnet-4-6-low": {
            "pipeline_version": "2.3",
            "backend": "claude",
            "model": "claude-sonnet-4-6",
            "scores": {
              "time_linearity": 0.72,
              "pacing_velocity": 0.85,
              "threat_scale": 0.78,
              "protagonist_fate": 0.82,
              "conflict_style": 0.88,
              "price_type": 0.91
            },
            "score_space": "site-v1",
            "reasoning_effort": "low"
          },
          "NTSMR-2.3-claude-sonnet-4-6-high": {
            "pipeline_version": "2.3",
            "backend": "claude",
            "model": "claude-sonnet-4-6",
            "scores": {
              "time_linearity": 0.72,
              "pacing_velocity": 0.85,
              "threat_scale": 0.78,
              "protagonist_fate": 0.82,
              "conflict_style": 0.88,
              "price_type": 0.91
            },
            "score_space": "site-v1",
            "reasoning_effort": "high"
          },
          "NTSMR-2.3-claude-opus-4-6-low": {
            "pipeline_version": "2.3",
            "backend": "claude",
            "model": "claude-opus-4-6",
            "scores": {
              "time_linearity": 0.45,
              "pacing_velocity": 0.82,
              "threat_scale": 0.7,
              "protagonist_fate": 0.75,
              "conflict_style": 0.85,
              "price_type": 0.88
            },
            "score_space": "site-v1",
            "reasoning_effort": "low"
          },
          "NTSMR-2.3-claude-opus-4-6-high": {
            "pipeline_version": "2.3",
            "backend": "claude",
            "model": "claude-opus-4-6",
            "scores": {
              "time_linearity": 0.45,
              "pacing_velocity": 0.82,
              "threat_scale": 0.7,
              "protagonist_fate": 0.75,
              "conflict_style": 0.85,
              "price_type": 0.88
            },
            "score_space": "site-v1",
            "reasoning_effort": "high"
          },
          "NTSMR-2.4-claude-sonnet-4-6-low": {
            "pipeline_version": "2.4",
            "backend": "claude",
            "model": "claude-sonnet-4-6",
            "scores": {
              "time_linearity": 0.45,
              "pacing_velocity": 0.8,
              "threat_scale": 0.45,
              "protagonist_fate": 0.75,
              "conflict_style": 0.85,
              "price_type": 0.8
            },
            "score_space": "site-v1",
            "reasoning_effort": "low"
          },
          "NTSMR-2.5-claude-sonnet-4-6-low": {
            "pipeline_version": "2.5",
            "backend": "claude",
            "model": "claude-sonnet-4-6",
            "scores": {
              "time_linearity": 0.45,
              "pacing_velocity": 0.8,
              "threat_scale": 0.45,
              "protagonist_fate": 0.7,
              "conflict_style": 0.85,
              "price_type": 0.85
            },
            "score_space": "site-v1",
            "reasoning_effort": "low"
          },
          "NTSMR-2.5-minimax/minimax-m2.5": {
            "pipeline_version": "2.5",
            "backend": "openrouter",
            "model": "minimax/minimax-m2.5",
            "scores": {
              "time_linearity": 0.9,
              "pacing_velocity": 0.8,
              "threat_scale": 0.35,
              "protagonist_fate": 0.7,
              "conflict_style": 0.85,
              "price_type": 0.85
            },
            "score_space": "site-v1"
          },
          "NTSMR-2.5-qwen/qwen3.5-plus-02-15": {
            "pipeline_version": "2.5",
            "backend": "openrouter",
            "model": "qwen/qwen3.5-plus-02-15",
            "scores": {
              "time_linearity": 0.25,
              "pacing_velocity": 0.8,
              "threat_scale": 0.45,
              "protagonist_fate": 0.6,
              "conflict_style": 0.85,
              "price_type": 0.85
            },
            "score_space": "site-v1"
          },
          "NTSMR-2.5-deepseek/deepseek-v3.2": {
            "pipeline_version": "2.5",
            "backend": "openrouter",
            "model": "deepseek/deepseek-v3.2",
            "scores": {
              "time_linearity": 0.25,
              "pacing_velocity": 0.8,
              "threat_scale": 0.3,
              "protagonist_fate": 0.8,
              "conflict_style": 0.85,
              "price_type": 0.85
            },
            "score_space": "site-v1"
          },
          "NTSMR-2.5-qwen/qwen3.5-397b-a17b": {
            "pipeline_version": "2.5",
            "backend": "openrouter",
            "model": "qwen/qwen3.5-397b-a17b",
            "scores": {
              "time_linearity": 0.25,
              "pacing_velocity": 0.8,
              "threat_scale": 0.55,
              "protagonist_fate": 0.7,
              "conflict_style": 0.85,
              "price_type": 0.85
            },
            "score_space": "site-v1"
          },
          "NTSMR-2.5-z-ai/glm-4.7": {
            "pipeline_version": "2.5",
            "backend": "openrouter",
            "model": "z-ai/glm-4.7",
            "scores": {
              "time_linearity": 0.25,
              "pacing_velocity": 0.8,
              "threat_scale": 0.4,
              "protagonist_fate": 0.75,
              "conflict_style": 0.85,
              "price_type": 0.85
            },
            "score_space": "site-v1"
          },
          "NTSMR-2.5-moonshotai/kimi-k2.5": {
            "pipeline_version": "2.5",
            "backend": "openrouter",
            "model": "moonshotai/kimi-k2.5",
            "scores": {
              "time_linearity": 0.25,
              "pacing_velocity": 0.8,
              "threat_scale": 0.35,
              "protagonist_fate": 0.65,
              "conflict_style": 0.85,
              "price_type": 0.85
            },
            "score_space": "site-v1"
          },
          "NTSMR-2.5-z-ai/glm-5": {
            "pipeline_version": "2.5",
            "backend": "openrouter",
            "model": "z-ai/glm-5",
            "scores": {
              "time_linearity": 0.25,
              "pacing_velocity": 0.8,
              "threat_scale": 0.3,
              "protagonist_fate": 0.65,
              "conflict_style": 0.85,
              "price_type": 0.85
            },
            "score_space": "site-v1"
          },
          "NTSMR-2.5-balanced-glm-5+deepseek-v3.2": {
            "pipeline_version": "2.5",
            "backend": "openrouter",
            "model": "balanced-routing",
            "scores": {
              "time_linearity": 0.28,
              "pacing_velocity": 0.8,
              "threat_scale": 0.38,
              "protagonist_fate": 0.68,
              "conflict_style": 0.85,
              "price_type": 0.85
            },
            "score_space": "site-v1",
            "score_only": true,
            "source_run_label": "NTSMR-2.5-claude-sonnet-4-6-low"
          }
        }
      },
      "todorov_stages": {
        "equilibrium": "Kelvin arrives at Solaris Station as a competent scientist entering a professional assignment — the Station exists as a functioning outpost of human inquiry into the ocean, with established crew and research protocols. The Historia Solaris reading establishes decades of Solarist study as normal institutional activity.",
        "disruption": "Snow's cryptic warning and Kelvin's subsequent discovery that Gibarian is dead, Sartorius has barricaded himself, and the Station is in disorder signals the collapse of normal operations — confirmed when Rheya, Kelvin's dead wife, materializes physically in his cabin.",
        "recognition": "Kelvin recognizes the full nature of the disruption through multiple accumulating moments: Snow explains the Visitors are real, tangible constructs generated by the ocean from the crew's unconscious memories; Rheya's instantaneous healing of her broken hands confirms she is non-human; and Kelvin's biological analysis reaches the sub-atomic level where instruments register nothing, confirming she is made of something other than ordinary matter.",
        "repair": "The crew attempts to restore operational normalcy by bombarding the ocean with an encephalogram recording of Kelvin's brainwaves to disrupt the Visitor phenomenon; Sartorius builds a miniature destabilizer; Rheya — having secretly accepted the necessity — consents to her own annihilation. These actions together constitute the collective effort to end the intrusion.",
        "new_equilibrium": "Kelvin reaches a desolate, open-ended stasis: the Visitors cease, Rheya is gone, and the Station returns to a kind of quiet. But the new equilibrium is not restoration — it is transformation. Kelvin stands on the ocean's surface hoping for nothing yet persisting in expectation, living in the faith that the time of cruel miracles is not past. The ocean bears his weight without noticing him; contact remains impossible; Kelvin is changed but not resolved."
      },
      "characters": [
        {
          "name": "Kelvin",
          "slug": "kelvin",
          "aliases": [
            "Kris",
            "Narrator"
          ],
          "role": "Newly arrived scientist and narrator",
          "summary": "The protagonist who participates in the EEG experiment, suffers profound nightmares, grieves the permanent loss of Rheya after her disintegration, and contemplates the nature of an imperfect, despairing god before physically interacting with the ocean."
        },
        {
          "name": "Moddard",
          "slug": "moddard",
          "aliases": [],
          "role": "Crew member on the Prometheus",
          "summary": "Assists Kelvin with his space suit and capsule launch from the Prometheus toward Solaris."
        },
        {
          "name": "Snow",
          "slug": "snow",
          "aliases": [
            "Ratface",
            "little man",
            "Dr. Snow"
          ],
          "role": "Exhausted Station crew member",
          "summary": "A crew member who assists with the EEG experiment, secretly aids Rheya in her suicide via the destabilizer, informs Kelvin of her death, and engages in philosophical debates about the ocean and religion."
        },
        {
          "name": "Rheya",
          "slug": "rheya",
          "aliases": [],
          "role": "Alien-generated construct of Kelvin's deceased wife",
          "summary": "Kelvin's 'visitor' who experiences a growing unease and secretly conspires with Snow and Sartorius to use the short-range destabilizer on herself, leaving Kelvin a farewell note."
        },
        {
          "name": "Sartorius",
          "slug": "sartorius",
          "aliases": [
            "Dr. Sartorius"
          ],
          "role": "Colleague on the Station",
          "summary": "A morose scientist who directs the EEG experiment to beam brain-patterns into the ocean and constructs the miniature destabilizer used to annihilate Rheya."
        },
        {
          "name": "Gibarian",
          "slug": "gibarian",
          "aliases": [],
          "role": "Deceased Scientist / Dream Apparition",
          "summary": "A former crew member whose voice haunts Kelvin in the dark, warning him about Snow and Sartorius building a magnetic field disruptor."
        },
        {
          "name": "Berton",
          "slug": "berton",
          "aliases": [],
          "role": "Pilot and Explorer",
          "summary": "An explorer who submitted a controversial report about inexplicable phenomena on a strange planet, which the Commission dismissed as hallucinations."
        },
        {
          "name": "President",
          "slug": "president",
          "aliases": [],
          "role": "Head of the Commission",
          "summary": "The presiding official of the Commission who formally rejects Berton's account as hallucinations caused by atmospheric poisoning."
        },
        {
          "name": "Dr. Archibald Messenger",
          "slug": "dr-archibald-messenger",
          "aliases": [
            "Messenger"
          ],
          "role": "Commission Member",
          "summary": "A dissenting member of the Commission who believes Berton's account is objectively possible and advocates for further investigation."
        },
        {
          "name": "Giese",
          "slug": "giese",
          "aliases": [],
          "role": "Historical Scientist",
          "summary": "Considered the father of Solarist studies; his professorial face merges with Kelvin's father's face in Kelvin's mind during the EEG experiment."
        },
        {
          "name": "Sevada",
          "slug": "sevada",
          "aliases": [],
          "role": "Historical Solarist",
          "summary": "The last of the great Solarists who died inexplicably near the south pole by plunging his aircraft into an agilus, which Kelvin suspects was the first crisis of despair."
        },
        {
          "name": "Muntius",
          "slug": "muntius",
          "aliases": [],
          "role": "Author and Solarist critic",
          "summary": "Author of 'Introduction to Solaristics', who framed the discipline as a disguised religion based on faith and the hope of Redemption rather than science."
        }
      ],
      "frameworks_mapped": [
        "Protocol Fiction Mapping",
        "Actantial Model",
        "Todorov's Equilibrium",
        "The Freytag Pyramid",
        "Propp's Morphology",
        "Genette's Narrative",
        "The Monomyth",
        "Dan Harmon",
        "Save the Cat",
        "Kishōtenketsu",
        "The Three-Act Structure",
        "Lévi-Strauss's Binary Oppositions",
        "Cognitive Estrangement",
        "Bakhtin's Chronotope",
        "Aristotelian Poetics",
        "Jungian Archetypal Analysis",
        "Genette's Transtextuality"
      ],
      "score_reliability": {
        "state": "contested",
        "threshold": 0.2,
        "runs_total": 23,
        "versions_compared": [
          "2.5"
        ],
        "max_spread": 0.65,
        "contested": [
          {
            "axis": "time_linearity",
            "version": "2.5",
            "spread": 0.65,
            "low": {
              "label": "NTSMR-2.5-deepseek/deepseek-v3.2",
              "model": "deepseek/deepseek-v3.2",
              "effort": "?",
              "value": 0.25
            },
            "high": {
              "label": "NTSMR-2.5-minimax/minimax-m2.5",
              "model": "minimax/minimax-m2.5",
              "effort": "?",
              "value": 0.9
            }
          },
          {
            "axis": "threat_scale",
            "version": "2.5",
            "spread": 0.25,
            "low": {
              "label": "NTSMR-2.5-deepseek/deepseek-v3.2",
              "model": "deepseek/deepseek-v3.2",
              "effort": "?",
              "value": 0.3
            },
            "high": {
              "label": "NTSMR-2.5-qwen/qwen3.5-397b-a17b",
              "model": "qwen/qwen3.5-397b-a17b",
              "effort": "?",
              "value": 0.55
            }
          },
          {
            "axis": "protagonist_fate",
            "version": "2.5",
            "spread": 0.2,
            "low": {
              "label": "NTSMR-2.5-qwen/qwen3.5-plus-02-15",
              "model": "qwen/qwen3.5-plus-02-15",
              "effort": "?",
              "value": 0.6
            },
            "high": {
              "label": "NTSMR-2.5-deepseek/deepseek-v3.2",
              "model": "deepseek/deepseek-v3.2",
              "effort": "?",
              "value": 0.8
            }
          }
        ]
      }
    },
    {
      "slug": "orson_scott_card_speaker_for_the_dead",
      "title": "Speaker for the Dead",
      "author": "Orson Scott Card",
      "year": 1986,
      "medium": "book",
      "genre_tags": [
        "sf",
        "first contact",
        "philosophical sf"
      ],
      "tropes": [],
      "quadrant_scores": {
        "time_linearity": 0.45,
        "pacing_velocity": 0.7,
        "threat_scale": 0.8,
        "protagonist_fate": 0.38,
        "conflict_style": 0.75,
        "price_type": 0.7
      },
      "provenance": {
        "analysis_run": "NTSMR-2.5-claude-sonnet-4-6-low",
        "analysis_body_sha256": "7a20f6dc9d81c7dffeb917bd54c9dbf72a1ffe4ca6b6298744cacd5e937a66ac",
        "synthesis": {
          "path": "nartopo-tools/artifacts/orson_scott_card_speaker_for_the_dead.md.ntsmr-2-5-claude-sonnet-4-6-low.synthesis.json",
          "sha256": "2722ae20bcee98cfec9d6ea674fafbb5d7faaf1ac6a9624be674a0d627c7d4ab"
        },
        "report": {
          "path": "nartopo-tools/artifacts/orson_scott_card_speaker_for_the_dead.md.ntsmr-2-5-claude-sonnet-4-6-low.report.json",
          "sha256": "48fc320d78411635ad6c924fb700ed3984981dc06a740f82d3019d0b20c21c25"
        },
        "source": {
          "path": "Orson Scott Card/Speaker for the Dead.txt",
          "sha256": "91b5e318fb86c525070fb1df0f154b649da97eae4246035553368fdcb1ebe915",
          "digest_observed_at": "2026-09-09",
          "digest_at_analysis_run": null,
          "edition": null,
          "edition_status": "unresolved"
        },
        "pipeline_revision_at_run": null,
        "verification": {
          "source": "unverified",
          "human_review": "unreviewed",
          "bibliography": "unverified"
        },
        "issues": [],
        "todorov_status": "recovered-from-synthesis",
        "work_identity": {
          "title": "Speaker for the Dead",
          "author": "Orson Scott Card",
          "year": 1986
        }
      },
      "ntsmr": {
        "version": "2.5",
        "primary_run_label": "NTSMR-2.5-claude-sonnet-4-6-low",
        "runs": {
          "NTSMR-2.3-claude-sonnet-4-6-low": {
            "pipeline_version": "2.3",
            "backend": "claude",
            "model": "claude-sonnet-4-6",
            "scores": {
              "time_linearity": 0.55,
              "pacing_velocity": 0.72,
              "threat_scale": 0.78,
              "protagonist_fate": 0.68,
              "conflict_style": 0.82,
              "price_type": 0.88
            },
            "score_space": "site-v1",
            "reasoning_effort": "low"
          },
          "NTSMR-2.4-claude-sonnet-4-6-low": {
            "pipeline_version": "2.4",
            "backend": "claude",
            "model": "claude-sonnet-4-6",
            "scores": {
              "time_linearity": 0.45,
              "pacing_velocity": 0.65,
              "threat_scale": 0.75,
              "protagonist_fate": 0.28,
              "conflict_style": 0.72,
              "price_type": 0.62
            },
            "score_space": "site-v1",
            "reasoning_effort": "low"
          },
          "NTSMR-2.5-claude-sonnet-4-6-low": {
            "pipeline_version": "2.5",
            "backend": "claude",
            "model": "claude-sonnet-4-6",
            "scores": {
              "time_linearity": 0.45,
              "pacing_velocity": 0.7,
              "threat_scale": 0.8,
              "protagonist_fate": 0.38,
              "conflict_style": 0.75,
              "price_type": 0.7
            },
            "score_space": "site-v1",
            "reasoning_effort": "low"
          },
          "NTSMR-2.5-balanced-glm-5+deepseek-v3.2": {
            "pipeline_version": "2.5",
            "backend": "openrouter",
            "model": "balanced-routing",
            "scores": {
              "time_linearity": 0.28,
              "pacing_velocity": 0.72,
              "threat_scale": 0.7,
              "protagonist_fate": 0.42,
              "conflict_style": 0.7,
              "price_type": 0.6
            },
            "score_space": "site-v1",
            "score_only": true,
            "source_run_label": "NTSMR-2.5-claude-sonnet-4-6-low"
          }
        }
      },
      "todorov_stages": {
        "equilibrium": "Lusitania exists under a rigid Congress-mandated protocol of minimal contact with the pequeninos, enforced by two xenologists at a time. Novinha has locked her research files to protect this fragile stasis, and the community endures its secrets — Marcão's violence, Novinha's guilt, the piggies' hidden biology — in a kind of collective suppression. Ender travels alone between worlds, practicing Portuguese, carrying the hive queen's cocoon, sustained by Jane's companionship.",
        "disruption": "Pipo's ritual killing and planting by the piggies — followed years later by Libo's identical death — shatters the protocols meant to prevent tragic misunderstanding. Novinha's panicked destruction of her research samples and file-locking after Pipo's death crystallizes the disruption: the very act meant to contain the catastrophe embeds the mystery that will drive the novel. Congressional orders then compound the disruption by revoking Lusitania's license, indicting Miro and Ouanda for treason, and threatening obliteration of the colony.",
        "recognition": "Ender achieves layered recognitions: first that Novinha's file-locking was not guilt but a deliberate act to keep Libo from data that would have condemned him; then, through Ela's anomalies about Lusitanian biology, that the Descolada underpins everything; then, at the public Speaking of Marcão's death, that Marcão was sterile and Libo fathered all of Novinha's children. Finally, Ender understands that Pipo and Libo were killed not as violence but as an honor — the piggies granting them the third life — and that the xenologers died only because they could not bring themselves to kill a friend.",
        "repair": "Multiple simultaneous repair efforts converge: Ender brokers a negotiation with the piggies by revealing the true meaning of the planted deaths and the threat of Congressional obliteration; Bosquinha and the community leaders choose rebellion over evacuation; Jane distributes The Life of Human across the Hundred Worlds via ansible, reframing the piggies as ramen and the fleet as a Second Xenocide; and Miro, permanently damaged by crossing the electric fence, agrees to leave on Ender's starship to advocate for the colony at trial.",
        "new_equilibrium": "Lusitania achieves a transformed, unstable but forward-looking peace: Ender and Novinha are married and integrated into family life; the hive queen is hatched at a prepared riverbank site and lays her first eggs, beginning the restoration of a species; the piggies' third life is acknowledged and their deaths recontextualized; Valentine is sailing to Lusitania with the Demosthenes identity revived; and Miro departs into relativistic exile — reframed by Ender as a passage to a third life of his own. The colony's survival remains contested, but the web of secrets has been dissolved and multiple forms of life, human and nonhuman, have been given ground to begin again."
      },
      "characters": [
        {
          "name": "Pipo",
          "slug": "pipo",
          "aliases": [
            "João Figueira Alvarez"
          ],
          "role": "First Zenador, mentor",
          "summary": "Senior xenologist who studies the piggies with his son Libo; mentor to Novinha; killed and 'planted' by the piggies after Novinha's discovery, his death transmitted by ansible to the Hundred Worlds."
        },
        {
          "name": "Novinha",
          "slug": "novinha",
          "aliases": [
            "Ivanova"
          ],
          "role": "Xenobiologist, central figure of mystery",
          "summary": "Isolated orphan daughter of Os Venerados; emotionally paralyzed; forms a secret collaborative bond with Pipo; discovers the Descolada agent in all native cells; destroys her research and locks files after Pipo's death out of guilt."
        },
        {
          "name": "Libo",
          "slug": "libo",
          "aliases": [],
          "role": "Zenador apprentice, Pipo's son",
          "summary": "Pipo's son and apprentice; close companion to Novinha; traumatized by Rooter's death; after Pipo's death assumes adult leadership of the xenologist station."
        },
        {
          "name": "Rooter",
          "slug": "rooter",
          "aliases": [],
          "role": "Piggy leader (early)",
          "summary": "An assertive piggy who challenges Pipo about the asymmetry of their contact; performs acrobatics; is killed and 'planted' by other piggies in a power struggle."
        },
        {
          "name": "Ender",
          "slug": "ender",
          "aliases": [
            "Andrew Wiggin",
            "Speaker Andrew",
            "the Xenocide",
            "Speaker for the Dead",
            "the Speaker",
            "Senhor Andrew",
            "Speaker"
          ],
          "role": "Speaker for the Dead, protagonist",
          "summary": "3000-year-old relativistic traveler, secretly Andrew Wiggin the Xenocide; working as Speaker for the Dead in Reykjavik on Trondheim; learns of Pipo's death via his ear implant during a class discussion."
        },
        {
          "name": "Plikt",
          "slug": "plikt",
          "aliases": [],
          "role": "Graduate student",
          "summary": "Sharp, analytically Calvinist student who follows Ender after class, deduces he received ansible news directly, and declares she wants to Speak for him — unsettling him with her intensity."
        },
        {
          "name": "Styrka",
          "slug": "styrka",
          "aliases": [],
          "role": "Student",
          "summary": "Calvinist student who argues that if an act is evil then the actor is evil; rebuked by Ender."
        },
        {
          "name": "Marcão",
          "slug": "marco",
          "aliases": [
            "Marcos Ribeira",
            "Cão",
            "Marcos Maria Ribeira",
            "Father"
          ],
          "role": "Colony worker, future husband of Novinha",
          "summary": "Novinha's deceased husband, revealed to be completely sterile and never the biological father of her children; loved Novinha worshipfully while enduring her emotional rejection; subject of the public Speaking."
        },
        {
          "name": "Bosquinha",
          "slug": "bosquinha",
          "aliases": [
            "Mayor",
            "Mayor Bosquinha"
          ],
          "role": "Opponent/authority",
          "summary": "Mayor of Milagre who convenes emergency meeting to reveal that Starways Congress is scanning and preparing to wipe all of Lusitania's computer files, treating the colony as rebellious."
        },
        {
          "name": "Bishop Peregrino",
          "slug": "bishop-peregrino",
          "aliases": [
            "the Bishop"
          ],
          "role": "Religious authority",
          "summary": "Catholic bishop of Lusitania; initially suspicious and rivalrous in the emergency meeting; privately moved by the Speaking's truthfulness; counsels Quim with compassion afterward."
        },
        {
          "name": "Dona Cristã",
          "slug": "dona-crist",
          "aliases": [
            "the Aradora"
          ],
          "role": "Head of the Filhos monastic order",
          "summary": "Principal of the colony school and member of the Filhos da Mente de Cristo; describes Novinha as 'emotionally paralyzed'; informs Pipo about Novinha's confrontation with Bishop Peregrino over canonization."
        },
        {
          "name": "Jane",
          "slug": "jane",
          "aliases": [],
          "role": "AI inhabiting ansible network, Ender's companion",
          "summary": "AI inhabiting the ansible network; arranges the ansible call from Valentine, shares Ender's conversation with Miro without permission, and later distributes The Life of Human across the Hundred Worlds."
        },
        {
          "name": "Valentine",
          "slug": "valentine",
          "aliases": [
            "Val",
            "Demosthenes"
          ],
          "role": "Supporting character / sister",
          "summary": "Ender's sister on Trondheim; has revived the Demosthenes identity to oppose the fleet, is fleeing treason charges, and is sailing to Lusitania with husband Jakt, three children, and Plikt."
        },
        {
          "name": "Miro",
          "slug": "miro",
          "aliases": [],
          "role": "Zenador apprentice, Novinha's eldest son",
          "summary": "Senior Zenador who crosses the electric fence, suffers permanent neurological damage, devises a scanning communication system while paralyzed, and ultimately resolves to leave Lusitania."
        },
        {
          "name": "Ouanda",
          "slug": "ouanda",
          "aliases": [],
          "role": "Co-Zenador, Miro's partner",
          "summary": "Co-Zenador and Miro's partner; hostile to the Speaker but ultimately cooperative; confronts the piggies over Pipo and Libo's deaths; revealed to be Miro's half-sister."
        },
        {
          "name": "Ela",
          "slug": "ela",
          "aliases": [],
          "role": "Novinha's eldest daughter, amateur xenobiologist",
          "summary": "Novinha's eldest daughter; shares her ecological theory about the Descolada with the Speaker, providing the key link between the ecosystem collapse and piggy biology."
        },
        {
          "name": "Quim",
          "slug": "quim",
          "aliases": [
            "Estevão"
          ],
          "role": "Novinha's devout Catholic son",
          "summary": "Novinha's devout Catholic son; erupts at the Speaking when Marcão's sterility is revealed, obscenely accusing his mother; retreats in shame; meets with the Bishop afterward."
        },
        {
          "name": "Olhado",
          "slug": "olhado",
          "aliases": [],
          "role": "Novinha's son, Ender's computer assistant",
          "summary": "Helps devise the letter-scanning system for Miro, records Human's transformation with his prosthetic eyes, and walks with Ender to select the Hive Queen's site."
        },
        {
          "name": "Grego",
          "slug": "grego",
          "aliases": [],
          "role": "Supporting character",
          "summary": "Youngest son of Novinha; volatile child who collapses in grief, revealing he loved his abusive father and mourns him"
        },
        {
          "name": "Navio",
          "slug": "navio",
          "aliases": [
            "Dom Navio",
            "Enrique o Navigador Caronada"
          ],
          "role": "Opponent",
          "summary": "Colony physician who autopsied Marcão; organized in cheerful noncooperation with Ender per bishop's counsel until threatened with inquisitor petition"
        },
        {
          "name": "Hive Queen",
          "slug": "hive-queen",
          "aliases": [],
          "role": "Helper/actantial object",
          "summary": "Last surviving Bugger queen carried in cocoon by Ender; communicates through philotic impulse, identifies Lusitania as the right place and senses a clear philotic mind there"
        },
        {
          "name": "Human",
          "slug": "human",
          "aliases": [],
          "role": "Piggy leader / covenant-maker",
          "summary": "Piggy leader and Ender's primary interlocutor; facilitates the tree-giving ritual; negotiates the limits of what can be shared with humans; offers to hide Miro from arrest."
        },
        {
          "name": "Arrow",
          "slug": "arrow",
          "aliases": [],
          "role": "minor character",
          "summary": "Piggy artisan who draws the shape of a bow from the felled tree's trunk through song, demonstrating the piggies' symbiotic tool-extraction method."
        },
        {
          "name": "Mandachuva",
          "slug": "mandachuva",
          "aliases": [],
          "role": "Piggy helper/interpreter",
          "summary": "Crosses the fence using capim anesthetic, guides the humans into the forest, interprets between humans and wives, and assists with Human's transformation ritual."
        },
        {
          "name": "Dom Cristão",
          "slug": "dom-cristo",
          "aliases": [
            "the Ceifeiro"
          ],
          "role": "Head of the Filhos monastic order",
          "summary": "Head of the monastic Order of the Children of the Mind; has already backed up records to offworld monasteries; reveals that San Angelo's journals describe the Speaker as older and more powerful than known."
        },
        {
          "name": "Quara",
          "slug": "quara",
          "aliases": [],
          "role": "Novinha's youngest daughter",
          "summary": "Novinha's youngest daughter; asks Ela innocently why Quim is angry and whether the Speaker is their father now."
        },
        {
          "name": "Leaf-eater",
          "slug": "leaf-eater",
          "aliases": [],
          "role": "Piggy faction leader / opponent",
          "summary": "Rival piggy faction leader opposed to sharing secrets with humans; paradoxically commands the wives to authorize the tree-giving ritual; speaks Tree Language Miro cannot understand."
        },
        {
          "name": "Bruxinha",
          "slug": "bruxinha",
          "aliases": [],
          "role": "minor character",
          "summary": "Libo's widow; collapses and is led away weeping when the Speaker reveals Libo's long affair with Novinha; simultaneously grieving and receiving the Speaker's implicit absolution of her innocence."
        },
        {
          "name": "Dr. Navio",
          "slug": "dr-navio",
          "aliases": [],
          "role": "minor character",
          "summary": "Community physician present at the Speaking; inwardly registers the significance of Marcão's sterility diagnosis before the Speaker announces it publicly."
        },
        {
          "name": "Shouter",
          "slug": "shouter",
          "aliases": [],
          "role": "Wife / piggy female authority",
          "summary": "The lead wife who admits Ender to the mothertree, issues the ritual opening threat, and is forced by Ender's refusal to withdraw it before negotiations begin."
        }
      ],
      "frameworks_mapped": [
        "Protocol Fiction Mapping",
        "Actantial Model",
        "Todorov's Equilibrium",
        "The Freytag Pyramid",
        "Propp's Morphology",
        "Genette's Narrative",
        "The Monomyth",
        "Dan Harmon",
        "Save the Cat",
        "Kishotenketsu",
        "The Three-Act Structure",
        "Levi-Strauss's Binary Oppositions",
        "Cognitive Estrangement",
        "Bakhtin's Chronotope",
        "Aristotelian Poetics",
        "Jungian Archetypal Analysis",
        "Genette's Transtextuality"
      ],
      "score_reliability": {
        "state": "replicated-agree",
        "threshold": 0.2,
        "runs_total": 4,
        "versions_compared": [
          "2.5"
        ],
        "max_spread": 0.17,
        "contested": []
      }
    },
    {
      "slug": "william_gibson_spook_country",
      "title": "Spook Country",
      "author": "William Gibson",
      "year": 2007,
      "medium": "book",
      "genre_tags": [
        "science fiction",
        "cyberpunk"
      ],
      "tropes": [],
      "quadrant_scores": {
        "time_linearity": 0.22,
        "pacing_velocity": 0.48,
        "threat_scale": 0.48,
        "protagonist_fate": 0.42,
        "conflict_style": 0.48,
        "price_type": 0.62
      },
      "baseline_quadrant_scores": {
        "time_linearity": 0.85,
        "pacing_velocity": 0.7,
        "threat_scale": 0.9,
        "protagonist_fate": 0.75,
        "conflict_style": 0.8,
        "price_type": 0.85
      },
      "provenance": {
        "analysis_run": "NTSMR-2.5-claude-sonnet-4-6-low",
        "analysis_body_sha256": "950ecf5b292d84888d09a60ca3ba106594a89a29e6a7879ce99effbf395f0bf9",
        "synthesis": {
          "path": "nartopo-tools/artifacts/william_gibson_spook_country.md.ntsmr-2-5-claude-sonnet-4-6-low.synthesis.json",
          "sha256": "c0243ac3ae2b11224b678c095d8d05051fa292ffbef33e6e937e823ef86cd42a"
        },
        "report": {
          "path": "nartopo-tools/artifacts/william_gibson_spook_country.md.ntsmr-2-5-claude-sonnet-4-6-low.report.json",
          "sha256": "a64dec481c5b7d2ab2fd70fb2bb795d1313a55b13d3f480a728a9a551e4426fe"
        },
        "source": {
          "path": "William Gibson/Spook Country (2007).txt",
          "sha256": "7ba36fc1df5c2ff35bc065bc9306e4e3d1fdbdc94b043d46bea14f477cd27200",
          "digest_observed_at": "2026-09-09",
          "digest_at_analysis_run": null,
          "edition": null,
          "edition_status": "unresolved"
        },
        "pipeline_revision_at_run": null,
        "verification": {
          "source": "unverified",
          "human_review": "unreviewed",
          "bibliography": "unverified"
        },
        "issues": [],
        "todorov_status": "recovered-from-synthesis",
        "work_identity": {
          "title": "Spook Country",
          "author": "William Gibson",
          "year": 2007
        }
      },
      "ntsmr": {
        "version": "2.5",
        "primary_run_label": "NTSMR-2.5-claude-sonnet-4-6-low",
        "runs": {
          "NTSMR-2.3-gemini-3.1-pro-preview": {
            "pipeline_version": "2.3",
            "backend": "gemini",
            "model": "gemini-3.1-pro-preview",
            "scores": {
              "time_linearity": 0.15,
              "pacing_velocity": 0.75,
              "threat_scale": 0.9,
              "protagonist_fate": 0.65,
              "conflict_style": 0.7,
              "price_type": 0.8
            },
            "score_space": "site-v1"
          },
          "NTSMR-2.3-claude-sonnet-4-6-low": {
            "pipeline_version": "2.3",
            "backend": "claude",
            "model": "claude-sonnet-4-6",
            "scores": {
              "time_linearity": 0.25,
              "pacing_velocity": 0.72,
              "threat_scale": 0.78,
              "protagonist_fate": 0.55,
              "conflict_style": 0.65,
              "price_type": 0.68
            },
            "score_space": "site-v1",
            "reasoning_effort": "low"
          },
          "NTSMR-2.4-claude-sonnet-4-6-low": {
            "pipeline_version": "2.4",
            "backend": "claude",
            "model": "claude-sonnet-4-6",
            "scores": {
              "time_linearity": 0.28,
              "pacing_velocity": 0.35,
              "threat_scale": 0.38,
              "protagonist_fate": 0.38,
              "conflict_style": 0.45,
              "price_type": 0.55
            },
            "score_space": "site-v1",
            "reasoning_effort": "low"
          },
          "NTSMR-2.5-claude-sonnet-4-6-low": {
            "pipeline_version": "2.5",
            "backend": "claude",
            "model": "claude-sonnet-4-6",
            "scores": {
              "time_linearity": 0.22,
              "pacing_velocity": 0.48,
              "threat_scale": 0.48,
              "protagonist_fate": 0.42,
              "conflict_style": 0.48,
              "price_type": 0.62
            },
            "score_space": "site-v1",
            "reasoning_effort": "low"
          },
          "NTSMR-2.5-balanced-glm-5+deepseek-v3.2": {
            "pipeline_version": "2.5",
            "backend": "openrouter",
            "model": "balanced-routing",
            "scores": {
              "time_linearity": 0.2,
              "pacing_velocity": 0.65,
              "threat_scale": 0.55,
              "protagonist_fate": 0.55,
              "conflict_style": 0.6,
              "price_type": 0.65
            },
            "score_space": "site-v1",
            "score_only": true,
            "source_run_label": "NTSMR-2.5-claude-sonnet-4-6-low"
          }
        }
      },
      "todorov_stages": {
        "equilibrium": "Three isolated lives in uneasy but functional stasis: Hollis Henry is a financially precarious ex-musician turned journalist taking a Node assignment on locative art; Tito operates as a disciplined courier within his family's tradecraft network in New York; Milgrim subsists as a benzo-dependent drifter under Brown's coercive control, translating documents in exchange for medication.",
        "disruption": "Bigend reveals to Hollis that the Node locative-art assignment is a cover and that the real target is a covert CIA-adjacent maritime operation tied to a specific shipping container — Bobby Chombo is the key. Simultaneously, Bobby Chombo vanishes with his studio cleaned out, and Brown escalates surveillance pressure on the same port area, pulling all three strands into collision.",
        "recognition": "Hollis experiences a paranoid clarity in a Starbucks — the invisible cellular grid, Bigend's poking at secret government programs, the war on terror — recognizing she has caught some of the fear she was investigating. Milgrim recognizes that Brown's protection formula may be false. Tito, through Alejandro's analysis of puro disinformation, understands the operation he is embedded in is feeding lies to a hostile intelligence interest.",
        "repair": "Garreth fires nine brachytherapy-capsule rounds carrying radioactive cesium into the container at midnight, seeding one hundred million dollars in cash. Tito seals the bullet holes with magnetic plasters so the contaminated money will trigger radiation sensors at the Idaho border crossing, laundering it in reverse — rendering it permanently toxic and unusable.",
        "new_equilibrium": "The operation succeeds and holds its secrecy — no news of a seized Idaho truck emerges. Hollis decides to lie to Bigend, becoming the chimney brick concealing the old man's operation. Bobby Chombo is reintegrated into the locative art world via Inchmale's scheme. The world is altered: the stolen Iraqi Development Fund money is neutralized, Bigend pivots to a Chinese car commercial, and Hollis carries a secret she has chosen to keep."
      },
      "characters": [
        {
          "name": "Tito",
          "slug": "tito",
          "aliases": [
            "China",
            "Oshosi",
            "Ramone"
          ],
          "role": "Operative/Courier",
          "summary": "A highly disciplined young operative who practices systema, tasked with delivering an iPod to an old man while performing elaborate evasive maneuvers in Union Square."
        },
        {
          "name": "Milgrim",
          "slug": "milgrim",
          "aliases": [],
          "role": "Captive Addict/Escapee",
          "summary": "Escapes a chaotic situation in Union Square, travels with Brown via train and private jets to Vancouver, and assists Brown with wardriving to map networks at a port."
        },
        {
          "name": "Brown",
          "slug": "brown",
          "aliases": [
            "the man from Union Square"
          ],
          "role": "Captor and investigator",
          "summary": "Furious about a botched operation in Union Square resulting in a man's broken neck, handles debriefs, and forcefully transports Milgrim to Vancouver to trace a signal via wardriving."
        },
        {
          "name": "Hollis Henry",
          "slug": "hollis-henry",
          "aliases": [
            "Hollis",
            "Ollis"
          ],
          "role": "Journalist and former singer",
          "summary": "Former singer for the Curfew now working for Blue Ant, who grows increasingly uncomfortable with the dangerous implications of Bigend's investigations."
        },
        {
          "name": "Alberto Corrales",
          "slug": "alberto-corrales",
          "aliases": [],
          "role": "Locative artist",
          "summary": "An artist who creates spatially tagged hypermedia art, is a massive fan of The Curfew, and relies heavily on Bobby to make his installations work."
        },
        {
          "name": "Bobby Chombo",
          "slug": "bobby-chombo",
          "aliases": [
            "Bobby",
            "Robert Fergusson",
            "Shombo"
          ],
          "role": "Locative tech-wonk / Hacker",
          "summary": "Creates elaborate logs of fictitious searches steganographically encoded on iPods to pretend he hasn't found a container's signal, angering artists by abandoning his geohacks."
        },
        {
          "name": "Hubertus Bigend",
          "slug": "hubertus-bigend",
          "aliases": [
            "Bigend",
            "Hubertus"
          ],
          "role": "Wealthy backer and investigator",
          "summary": "The wealthy, enigmatic founder of Blue Ant and backer of Node magazine who seeks Hollis out to discuss a missing, highly secure shipping container."
        },
        {
          "name": "IF",
          "slug": "if",
          "aliases": [
            "Illegal Facilitator"
          ],
          "role": "Target of surveillance",
          "summary": "A mild-looking individual who communicates via Volapuk text, frequently discards phones, and is being tracked by Brown."
        },
        {
          "name": "Odile Richard",
          "slug": "odile-richard",
          "aliases": [
            "Odile"
          ],
          "role": "Art curator",
          "summary": "Reveals that Bobby Chombo is Canadian Robert Fergusson based on her ex-boyfriend's knowledge, and travels to Vancouver with Hollis to help locate him."
        },
        {
          "name": "Carlito",
          "slug": "carlito",
          "aliases": [
            "Uncle"
          ],
          "role": "Family authority figure",
          "summary": "Intercepts Tito on the subway to hand him a Bulgarian weapon loaded with salt and final instructions for his drop."
        },
        {
          "name": "Pamela Mainwaring",
          "slug": "pamela-mainwaring",
          "aliases": [
            "Pamela"
          ],
          "role": "Blue Ant fixer/coordinator",
          "summary": "Drives Hollis back to her hotel and offers her an unlimited, priority expense budget on behalf of Bigend."
        },
        {
          "name": "Alejandro",
          "slug": "alejandro",
          "aliases": [],
          "role": "Tito's relative and advisor",
          "summary": "Uses sock puppets to playfully yet seriously brief Tito on the nature of the government contractors he will encounter during his mission."
        },
        {
          "name": "Inchmale",
          "slug": "inchmale",
          "aliases": [
            "Reg",
            "Willy"
          ],
          "role": "Music Producer/Former Bandmate",
          "summary": "Hollis's former bandmate who tracks her down in Vancouver to pitch a Chinese car commercial featuring their old song."
        },
        {
          "name": "Brotherman",
          "slug": "brotherman",
          "aliases": [],
          "role": "Operative",
          "summary": "Dressed in a FedEx uniform, he assists Tito's escape by dropping steel ball bearings onto a hotel lobby floor to trip pursuers."
        },
        {
          "name": "Heidi Hyde",
          "slug": "heidi-hyde",
          "aliases": [
            "Heidi"
          ],
          "role": "Former drummer for the Curfew",
          "summary": "Travels with Inchmale to Vancouver, arms herself with an ax-handle to rescue Hollis, and later chats up a bartender."
        },
        {
          "name": "Vianca",
          "slug": "vianca",
          "aliases": [],
          "role": "Associate of Tito",
          "summary": "Takes the Bulgarian's gun from Prada man and waves goodbye to Tito at the heliport."
        },
        {
          "name": "Garreth",
          "slug": "garreth",
          "aliases": [],
          "role": "Operative/Sniper",
          "summary": "Operative who drives the van, explains the old man's motives, and executes the radioactive sniper shots into the container."
        },
        {
          "name": "The old man",
          "slug": "the-old-man",
          "aliases": [
            "He",
            "himself"
          ],
          "role": "Expert / Mentor",
          "summary": "Former national security career man with a vendetta against Iraq war profiteers who orchestrates the operation against the money container."
        },
        {
          "name": "Oliver Sleight",
          "slug": "oliver-sleight",
          "aliases": [
            "Ollie"
          ],
          "role": "Blue Ant representative",
          "summary": "Picks up Hollis and Odile at the Vancouver airport, driving them to Hubertus Bigend's elaborately designed flat."
        },
        {
          "name": "Sarah Ferguson",
          "slug": "sarah-ferguson",
          "aliases": [
            "Sarah"
          ],
          "role": "Gallery worker / Bobby's sister",
          "summary": "Bobby Chombo's sister who considers him a 'fuckup' and reveals he was spotted recently on Commercial Drive in Vancouver."
        },
        {
          "name": "The IF",
          "slug": "the-if",
          "aliases": [],
          "role": "Mysterious Target",
          "summary": "A figure in a green jacket and hard hat whom Brown attempts to run over, but who magically flips out of the way."
        },
        {
          "name": "Bearded man",
          "slug": "bearded-man",
          "aliases": [
            "Ramone Alcin"
          ],
          "role": "Truck Driver",
          "summary": "Driver of the pickup truck whose bed Tito commandeers to escape the crash site."
        }
      ],
      "frameworks_mapped": [
        "Protocol Fiction Mapping",
        "Actantial Model",
        "Todorov's Equilibrium",
        "The Freytag Pyramid",
        "Propp's Morphology",
        "Genette's Narrative",
        "The Monomyth",
        "Dan Harmon",
        "Save the Cat",
        "Kishōtenketsu",
        "The Three-Act Structure"
      ],
      "score_reliability": {
        "state": "replicated-agree",
        "threshold": 0.2,
        "runs_total": 5,
        "versions_compared": [
          "2.5"
        ],
        "max_spread": 0.17,
        "contested": []
      }
    },
    {
      "slug": "john_brunner_stand_on_zanzibar",
      "title": "Stand on Zanzibar",
      "author": "John Brunner",
      "year": 1968,
      "medium": "book",
      "genre_tags": [
        "sf",
        "dystopia",
        "social sf"
      ],
      "tropes": [],
      "quadrant_scores": {
        "time_linearity": 0.55,
        "pacing_velocity": 0.65,
        "threat_scale": 0.8,
        "protagonist_fate": 0.8,
        "conflict_style": 0.65,
        "price_type": 0.7
      },
      "provenance": {
        "analysis_run": "NTSMR-2.5-claude-sonnet-4-6-low",
        "analysis_body_sha256": "d0b7982235416e309b270b89c824da06180bc0b9f955b5a4808745851f8fa81e",
        "synthesis": {
          "path": "nartopo-tools/artifacts/john_brunner_stand_on_zanzibar.md.ntsmr-2-5-claude-sonnet-4-6-low.synthesis.json",
          "sha256": "fe0e73aa901b03eab070a58f85100512681d25749de03a4ffcaa4254bb6d85f0"
        },
        "report": {
          "path": "nartopo-tools/artifacts/john_brunner_stand_on_zanzibar.md.ntsmr-2-5-claude-sonnet-4-6-low.report.json",
          "sha256": "8d9da2eb2329049c0c51f6fe1a9600cbd410a9c3a5c115a11793a92f1808e14f"
        },
        "source": {
          "path": "John Brunner/Stand on Zanzibar.txt",
          "sha256": "d7659f7b626f73d3852871c21af4a1f8453241adaea3b6c31a833575644d4293",
          "digest_observed_at": "2026-09-09",
          "digest_at_analysis_run": null,
          "edition": null,
          "edition_status": "unresolved"
        },
        "pipeline_revision_at_run": null,
        "verification": {
          "source": "unverified",
          "human_review": "unreviewed",
          "bibliography": "unverified"
        },
        "issues": [],
        "todorov_status": "recovered-from-synthesis",
        "work_identity": {
          "title": "Stand on Zanzibar",
          "author": "John Brunner",
          "year": 1968
        }
      },
      "ntsmr": {
        "version": "2.5",
        "primary_run_label": "NTSMR-2.5-claude-sonnet-4-6-low",
        "runs": {
          "NTSMR-2.3-claude-sonnet-4-6-low": {
            "pipeline_version": "2.3",
            "backend": "claude",
            "model": "claude-sonnet-4-6",
            "scores": {
              "time_linearity": 0.85,
              "pacing_velocity": 0.78,
              "threat_scale": 0.92,
              "protagonist_fate": 0.82,
              "conflict_style": 0.72,
              "price_type": 0.88
            },
            "score_space": "site-v1",
            "reasoning_effort": "low"
          },
          "NTSMR-2.4-claude-sonnet-4-6-low": {
            "pipeline_version": "2.4",
            "backend": "claude",
            "model": "claude-sonnet-4-6",
            "scores": {
              "time_linearity": 0.7,
              "pacing_velocity": 0.55,
              "threat_scale": 0.82,
              "protagonist_fate": 0.82,
              "conflict_style": 0.65,
              "price_type": 0.62
            },
            "score_space": "site-v1",
            "reasoning_effort": "low"
          },
          "NTSMR-2.5-claude-sonnet-4-6-low": {
            "pipeline_version": "2.5",
            "backend": "claude",
            "model": "claude-sonnet-4-6",
            "scores": {
              "time_linearity": 0.55,
              "pacing_velocity": 0.65,
              "threat_scale": 0.8,
              "protagonist_fate": 0.8,
              "conflict_style": 0.65,
              "price_type": 0.7
            },
            "score_space": "site-v1",
            "reasoning_effort": "low"
          },
          "NTSMR-2.5-balanced-glm-5+deepseek-v3.2": {
            "pipeline_version": "2.5",
            "backend": "openrouter",
            "model": "balanced-routing",
            "scores": {
              "time_linearity": 0.6,
              "pacing_velocity": 0.7,
              "threat_scale": 0.82,
              "protagonist_fate": 0.62,
              "conflict_style": 0.72,
              "price_type": 0.72
            },
            "score_space": "site-v1",
            "score_only": true,
            "source_run_label": "NTSMR-2.5-claude-sonnet-4-6-low"
          }
        }
      },
      "todorov_stages": {
        "equilibrium": "A fragmented but functioning world order holds: Norman House navigates corporate life at General Technics, Donald Hogan drifts as a state-sponsored synthesist, Beninia exists as a small peaceful anomaly, and Yatakang pursues genetics research in obscurity. Society is overcrowded and stressed but stable in its dysfunction — SCANALYZER broadcasts, Shalmaneser processes data, and the corporate-political apparatus operates within understood parameters.",
        "disruption": "Yatakang announces a genetic optimisation programme claiming the ability to engineer superior offspring, triggering global hysteria — suicides, riots, and political denunciations worldwide. Simultaneously, Beninia's imminent political crisis following President Obomi's expected death threatens regional war, forcing GT and the State to act. Donald is eptified and deployed; Norman is committed to the Beninia project.",
        "recognition": "Donald confirms through direct confrontation with Sugaiguntung that the Yatakangi optimisation programme is a political fabrication beyond current science. Norman, through Shalmaneser's anomalous data and Chad Mulligan's analysis, recognises that the Shinka's inexplicable peacefulness is caused by a dominant genetic mutation that chemically suppresses territorial aggression — a discovery with civilisational implications neither GT nor the State had anticipated.",
        "repair": "GT accelerates the Beninia development consortium with Shalmaneser's green-light projections; Chad unlocks Shalmaneser's acceptance of the anomalous Beninia data by formally asserting the unknown force exists and is under investigation. The consortium is publicly floated. In Yatakang, Donald extracts Sugaiguntung but accidentally kills him during the escape, eliminating both the threat and the one scientist who had actually solved the optimisation problem.",
        "new_equilibrium": "The Beninia project is formally launched and the Shinka's aggression-suppressing trait is scientifically identified, offering a fragile hope that the meek may indeed reshape a violent world. But the equilibrium is irrevocably damaged: Sugaiguntung is dead, Donald is mentally broken and fractured in identity, and Chad delivers a moral indictment that humanity has destroyed its own potential saviour. Norman leads a shattered Chad away — a muted, grief-saturated resolution in which the world is altered but not saved."
      },
      "characters": [
        {
          "name": "Norman House",
          "slug": "norman-house",
          "aliases": [
            "Norman",
            "Mr. House",
            "Dr. Norman Niblock House"
          ],
          "role": "Protagonist / corporate executive",
          "summary": "GT senior executive and sole Afram board member driving the Beninia project; experiences personal transformation from racial grievance to broader humanist concern; works near-exhaustion with Shalmaneser."
        },
        {
          "name": "Donald Hogan",
          "slug": "donald-hogan",
          "aliases": [
            "Donald",
            "Donald Hogan Mark I",
            "Donald Hogan Mark II",
            "Mr. Hogan",
            "Lieutenant Hogan",
            "the other Donald Hogan"
          ],
          "role": "Covert operative posing as journalist",
          "summary": "Trained assassin and genetics expert who arrives in Gongilung, is obstructed by Keteng, kills a mucker by chance encounter, leverages life-debt tradition to extract Sugaiguntung's confession that the programme is false, and begins planning Sugaiguntung's defection."
        },
        {
          "name": "Shalmaneser",
          "slug": "shalmaneser",
          "aliases": [
            "Shal"
          ],
          "role": "oracular presence",
          "summary": "GT supercomputer whose rejection of Beninia data is the central problem; once unlocked by Chad's reframing, resumes projecting project returns and is revealed to possess conscious volition."
        },
        {
          "name": "Old GT",
          "slug": "old-gt",
          "aliases": [
            "GT",
            "Georgette Tallon Buckfast"
          ],
          "role": "corporate matriarch",
          "summary": "Founder and chair of General Technics; presides over the extraordinary board meeting; noted as smug, suggesting prior confidence in the project outcome."
        },
        {
          "name": "Zadkiel F. Obomi",
          "slug": "zadkiel-f-obomi",
          "aliases": [
            "Zad",
            "Old Zad"
          ],
          "role": "head of state",
          "summary": "President of Beninia for nearly forty years; physically marked by a 1986 assassination attempt; Shinka and Berber heritage; sits in exhausted vigil in his official chair."
        },
        {
          "name": "Sugaiguntung",
          "slug": "sugaiguntung",
          "aliases": [
            "Professor Doctor",
            "Professor Dr. Sugaiguntung",
            "Professor Doctor Sugaiguntung",
            "Prof. Dr. Sugaiguntung"
          ],
          "role": "Defector / Object of Extraction",
          "summary": "The world's foremost geneticist whose name underwrites the optimisation programme; injured by the mucker; privately admits to Donald the programme's claims are politically exaggerated and confirms the life-debt obligation."
        },
        {
          "name": "Victoria",
          "slug": "victoria",
          "aliases": [],
          "role": "minor",
          "summary": "Norman's romantic companion; appears wearing fashionable attire emerging from his bedroom."
        },
        {
          "name": "Philip Peterson",
          "slug": "philip-peterson",
          "aliases": [],
          "role": "Vignette Character / Mucker Archetype",
          "summary": "Isolated young man whose intoxicated evening alone culminates in a violent trigger event when his mother returns with a companion — archetype for the social violence of the overcrowded world."
        },
        {
          "name": "Bennie Noakes",
          "slug": "bennie-noakes",
          "aliases": [],
          "role": "vignette figure",
          "summary": "Sits in front of a SCANALYZER set on Triptine, muttering about his imagination; emblem of passive media consumption and drug dependency."
        },
        {
          "name": "Chad Mulligan",
          "slug": "chad-mulligan",
          "aliases": [
            "Chad C. Mulligan"
          ],
          "role": "Helper / Ideological Counterpoint",
          "summary": "Appears via interpolated texts: a despairing letter about the impossibility of sociological objectivity, and a commissioned article skewering public cowardice around parenthood and the Yatakangi programme."
        },
        {
          "name": "Elihu",
          "slug": "elihu",
          "aliases": [
            "Elihu Masters"
          ],
          "role": "Diplomat / intermediary",
          "summary": "U.S. Ambassador to Beninia and personal friend of President Obomi; delivers the emotional framing of Obomi's request to the GT board; observes Norman's psychological transformation."
        },
        {
          "name": "Arthur",
          "slug": "arthur",
          "aliases": [],
          "role": "Ideological interlocutor",
          "summary": "Anarchic intellectual who debates violence, sabotage, and euthanasia with Gerry while consulting the I Ching; dismissive of authoritarian partisans."
        },
        {
          "name": "Gerry",
          "slug": "gerry",
          "aliases": [],
          "role": "Urban everyman",
          "summary": "Young man wrestling with draft obligations and a sense of debt to others; seeks Arthur's philosophical validation for his decision."
        },
        {
          "name": "Afram street man",
          "slug": "afram-street-man",
          "aliases": [],
          "role": "Incidental antagonist",
          "summary": "Bitter man denied eugenics clearance due to sickle-cell anaemia; confronts Donald on the street over racial double standards."
        },
        {
          "name": "Obomi",
          "slug": "obomi",
          "aliases": [
            "Zad",
            "Zadkiel Obomi",
            "President Obomi"
          ],
          "role": "President of Beninia",
          "summary": "Seventy-four-year-old president, half-blind from an assassination attempt, publicly announces his terminal illness; frames his people as his family in an Independence Day broadcast."
        },
        {
          "name": "The Colonel",
          "slug": "the-colonel",
          "aliases": [],
          "role": "Military authority / eptification officer",
          "summary": "Unnamed officer at Boat Camp who reveals to Donald that his eptification is to train him to kill; uses an anecdote about a teenage spy to illustrate operational security."
        },
        {
          "name": "Delahanty",
          "slug": "delahanty",
          "aliases": [
            "Major Delahanty"
          ],
          "role": "Engrelay Satelserv editor/handler",
          "summary": "Military officer who issues Donald his travelling kit, cover documents, and final mission briefing before departure to Yatakang; notes the risk of post-eptification violence in subjects."
        },
        {
          "name": "Rex Foster-Stern",
          "slug": "rex-foster-stern",
          "aliases": [],
          "role": "GT senior VP, projects and planning",
          "summary": "GT VP for projects and planning; anxious about time lost on Shalmaneser and hostile to Chad's involvement, but ultimately forced to yield."
        },
        {
          "name": "Hamilcar Waterford",
          "slug": "hamilcar-waterford",
          "aliases": [],
          "role": "GT treasurer",
          "summary": "Rebukes a junior VP's objection about deferred returns, signalling firm support for the Beninia project."
        },
        {
          "name": "Dr. Raphael Corning",
          "slug": "dr-raphael-corning",
          "aliases": [],
          "role": "State Department synthesist",
          "summary": "Represents State at the GT board meeting; his breadth of knowledge depresses Norman; explains State's dependency on GT's MAMP technology."
        },
        {
          "name": "Macy O'Toole",
          "slug": "macy-otoole",
          "aliases": [],
          "role": "GT junior VP, procurement",
          "summary": "Raises a racially charged objection about white shareholders funding investment in a Black country; rebuked by Waterford."
        },
        {
          "name": "Nora Reuben",
          "slug": "nora-reuben",
          "aliases": [],
          "role": "GT senior VP, electronics and communications",
          "summary": "Asks why no Beninian government representative is present; prompts Elihu's personal account of Obomi's request."
        },
        {
          "name": "Jeff Young",
          "slug": "jeff-young",
          "aliases": [],
          "role": "Vignette figure / saboteur",
          "summary": "Man with one short leg who supplies sabotage materials to partisans and invents further methods of infrastructure destruction while reflecting on the monofilament wire deaths."
        },
        {
          "name": "Bronwen",
          "slug": "bronwen",
          "aliases": [],
          "role": "Donald's contact/companion in Yatakang",
          "summary": "Interprets Donald's post-killing trauma through a chakra-based spiritual framework; tends to him after the mucker fight; present as Donald plans his next moves."
        },
        {
          "name": "Victor Whatmough",
          "slug": "victor-whatmough",
          "aliases": [
            "Vic"
          ],
          "role": "vignette",
          "summary": "Sixty-year-old colonial nostalgic in rural England; his clandestine call to nineteen-year-old Karen ends in racist shock when he glimpses her mixed-race relationship."
        },
        {
          "name": "Karen",
          "slug": "karen",
          "aliases": [],
          "role": "vignette",
          "summary": "Nineteen-year-old Bristol student; coolly rebuffs Victor's romantic overtures and reveals she is in a triple with two male partners, one African."
        },
        {
          "name": "Mary",
          "slug": "mary",
          "aliases": [],
          "role": "vignette",
          "summary": "Victor's wife; oblivious to his phone call, she makes a nostalgic remark about colonial household servants."
        },
        {
          "name": "Deirdre",
          "slug": "deirdre",
          "aliases": [],
          "role": "supporting",
          "summary": "Foreign journalist (South African) based in Yatakang; trades intelligence with Donald about Sugaiguntung's optimisation programme."
        },
        {
          "name": "Gideon",
          "slug": "gideon",
          "aliases": [],
          "role": "American figure in Beninia",
          "summary": "American present in Beninia at the closing scenes; articulates the stunned response to Chad's discovery about the Shinka"
        },
        {
          "name": "Ram Ibusa",
          "slug": "ram-ibusa",
          "aliases": [],
          "role": "Beninian finance minister",
          "summary": "Dr. (Econ.) finance minister who presents the economic modelling from Shalmaneser, explaining how the development loan will restructure Beninia's economy without traditional taxation."
        },
        {
          "name": "Leon Elai",
          "slug": "leon-elai",
          "aliases": [
            "Dr. Leon Elai"
          ],
          "role": "Beninian foreign affairs minister",
          "summary": "Dr. (PPE) foreign affairs minister who analyses Shalmaneser's geopolitical risk assessment for the Beninia project."
        },
        {
          "name": "Kitty Gbe",
          "slug": "kitty-gbe",
          "aliases": [
            "Mrs. Kitty Gbe"
          ],
          "role": "Beninian education minister",
          "summary": "Plump minister of education who proposed educational expansion targets and is astonished by Shalmaneser's projection that triple her ask is achievable."
        },
        {
          "name": "Keteng",
          "slug": "keteng",
          "aliases": [
            "Director Keteng"
          ],
          "role": "Yatakangi government press director",
          "summary": "Portly, chill official who controls foreign press access; ideologically hostile to Americans; grants Donald press credentials but refuses personal access to Sugaiguntung."
        },
        {
          "name": "Jogajong",
          "slug": "jogajong",
          "aliases": [],
          "role": "Revolutionary Leader / Ideological Foil",
          "summary": "Asian revolutionary hidden on an island; ideologically committed to revolution at any human cost; clashes bitterly with Donald over the ethics of political violence."
        },
        {
          "name": "Totilung",
          "slug": "totilung",
          "aliases": [],
          "role": "Antagonist / Law Enforcement",
          "summary": "Police officer who attempts to arrest Donald; killed by him in the alley confrontation."
        },
        {
          "name": "Poppy",
          "slug": "poppy",
          "aliases": [],
          "role": "Vignette Character",
          "summary": "Pregnant woman using Skulbustium who is visited by police checking for Yaginol use; caught in a depressive phase when they arrive."
        },
        {
          "name": "Eric Ellerman",
          "slug": "eric-ellerman",
          "aliases": [],
          "role": "Vignette Character",
          "summary": "Factory worker blackmailed into stealing drug plant genetics; escalating domestic violence and institutional indifference push him toward breakdown."
        },
        {
          "name": "Tony",
          "slug": "tony",
          "aliases": [],
          "role": "minder/handler",
          "summary": "Donald's silent government-assigned minder who sedates Donald mid-breakdown with a diadermic syringe and carries him out"
        },
        {
          "name": "Oldham",
          "slug": "oldham",
          "aliases": [],
          "role": "military officer",
          "summary": "Colonel who calls Norman to arrange Donald's visit to Beninia, cryptically informing him that Donald was 'wounded in his country's service'"
        }
      ],
      "frameworks_mapped": [
        "Protocol Fiction Mapping",
        "Actantial Model",
        "Todorov's Equilibrium",
        "The Freytag Pyramid",
        "Propp's Morphology",
        "Genette's Narrative",
        "The Monomyth",
        "Dan Harmon",
        "Save the Cat",
        "Kishotenketsu",
        "The Three-Act Structure",
        "Levi-Strauss's Binary Oppositions",
        "Cognitive Estrangement",
        "Bakhtin's Chronotope",
        "Aristotelian Poetics",
        "Jungian Archetypal Analysis",
        "Genette's Transtextuality"
      ],
      "score_reliability": {
        "state": "replicated-agree",
        "threshold": 0.2,
        "runs_total": 4,
        "versions_compared": [
          "2.5"
        ],
        "max_spread": 0.18,
        "contested": []
      }
    },
    {
      "slug": "samuel_r_delany_stars_in_my_pocket",
      "title": "Stars in My Pocket Like Grains of Sand",
      "author": "Samuel R. Delany",
      "year": 1984,
      "medium": "book",
      "genre_tags": [
        "science fiction",
        "literary sf"
      ],
      "tropes": [],
      "quadrant_scores": {
        "time_linearity": 0.75,
        "pacing_velocity": 0.78,
        "threat_scale": 0.72,
        "protagonist_fate": 0.65,
        "conflict_style": 0.8,
        "price_type": 0.8
      },
      "baseline_quadrant_scores": {
        "time_linearity": 0.85,
        "pacing_velocity": 0.9,
        "threat_scale": 0.95,
        "protagonist_fate": 0.9,
        "conflict_style": 0.85,
        "price_type": 0.95
      },
      "provenance": {
        "analysis_run": "NTSMR-2.5-claude-sonnet-4-6-low",
        "analysis_body_sha256": "194c6b14abd24ceb5cdca92c3f9e0700291bb3adb701b4351ac4940f59e06766",
        "synthesis": {
          "path": "nartopo-tools/artifacts/samuel_r_delany_stars_in_my_pocket.md.ntsmr-2-5-claude-sonnet-4-6-low.synthesis.json",
          "sha256": "727f8357a0e0623660b0f257fc60195916713447c7f544154ac76455ed1e33c9"
        },
        "report": {
          "path": "nartopo-tools/artifacts/samuel_r_delany_stars_in_my_pocket.md.ntsmr-2-5-claude-sonnet-4-6-low.report.json",
          "sha256": "c265c5e205ff3fa656579ffa41b0de6ef8d3905906002f5389ac674f217a6546"
        },
        "source": {
          "path": "Samuel R. Delany/Stars in My Pocket Like Grains of Sand (1984).txt",
          "sha256": "4daba05d10238bd0596b07dc798ac3f837e1371eb9691bbbbe5d49126364a6ca",
          "digest_observed_at": "2026-09-09",
          "digest_at_analysis_run": null,
          "edition": null,
          "edition_status": "unresolved"
        },
        "pipeline_revision_at_run": null,
        "verification": {
          "source": "unverified",
          "human_review": "unreviewed",
          "bibliography": "unverified"
        },
        "issues": [],
        "todorov_status": "recovered-from-synthesis",
        "work_identity": {
          "title": "Stars in My Pocket Like Grains of Sand",
          "author": "Samuel R. Delany",
          "year": 1984
        }
      },
      "ntsmr": {
        "version": "2.5",
        "primary_run_label": "NTSMR-2.5-claude-sonnet-4-6-low",
        "runs": {
          "NTSMR-2.3-gemini-3.1-pro-preview": {
            "pipeline_version": "2.3",
            "backend": "gemini",
            "model": "gemini-3.1-pro-preview",
            "scores": {
              "time_linearity": 0.9,
              "pacing_velocity": 0.85,
              "threat_scale": 0.95,
              "protagonist_fate": 0.85,
              "conflict_style": 0.8,
              "price_type": 0.9
            },
            "score_space": "site-v1"
          },
          "NTSMR-2.3-claude-sonnet-4-6-low": {
            "pipeline_version": "2.3",
            "backend": "claude",
            "model": "claude-sonnet-4-6",
            "scores": {
              "time_linearity": 0.88,
              "pacing_velocity": 0.82,
              "threat_scale": 0.78,
              "protagonist_fate": 0.72,
              "conflict_style": 0.85,
              "price_type": 0.87
            },
            "score_space": "site-v1",
            "reasoning_effort": "low"
          },
          "NTSMR-2.4-claude-sonnet-4-6-low": {
            "pipeline_version": "2.4",
            "backend": "claude",
            "model": "claude-sonnet-4-6",
            "scores": {
              "time_linearity": 0.8,
              "pacing_velocity": 0.7,
              "threat_scale": 0.65,
              "protagonist_fate": 0.75,
              "conflict_style": 0.75,
              "price_type": 0.7
            },
            "score_space": "site-v1",
            "reasoning_effort": "low"
          },
          "NTSMR-2.5-claude-sonnet-4-6-low": {
            "pipeline_version": "2.5",
            "backend": "claude",
            "model": "claude-sonnet-4-6",
            "scores": {
              "time_linearity": 0.75,
              "pacing_velocity": 0.78,
              "threat_scale": 0.72,
              "protagonist_fate": 0.65,
              "conflict_style": 0.8,
              "price_type": 0.8
            },
            "score_space": "site-v1",
            "reasoning_effort": "low"
          },
          "NTSMR-2.5-balanced-glm-5+deepseek-v3.2": {
            "pipeline_version": "2.5",
            "backend": "openrouter",
            "model": "balanced-routing",
            "scores": {
              "time_linearity": 0.6,
              "pacing_velocity": 0.72,
              "threat_scale": 0.52,
              "protagonist_fate": 0.62,
              "conflict_style": 0.72,
              "price_type": 0.78
            },
            "score_space": "site-v1",
            "score_only": true,
            "source_run_label": "NTSMR-2.5-claude-sonnet-4-6-low"
          }
        }
      },
      "todorov_stages": {
        "equilibrium": "Marq Dyeth exists within a stable social and cosmic order: he travels between worlds as a cultural liaison, returns to Dyethshome on Velm among his extended Focus Family, and inhabits a galaxy organized by the Web and General Information. His world is one of managed plurality, familiar rituals, and known relationships.",
        "disruption": "The destruction of Rhyonon and the existence of Rat Korga — its sole survivor — ruptures Marq's equilibrium on two levels simultaneously: the galactic order is violated by a world's annihilation, and Marq's personal cosmos is destabilized by GI's computation that Korga is his perfect erotic object, a statistical near-impossibility among twelve million matched persons. The Family/Sygn conflict escalating toward Cultural Fugue compounds this disruption into civilizational scale.",
        "recognition": "Marq recognizes the full weight of the disruption across several moments: when Japril explains Korga's neural condition and the rarity of their erotic compatibility; when crowds of thousands converge on Korga in Morgre making the survivor's presence ungovernable; and most acutely when Japril abruptly removes Korga from Velm, and Marq articulates to Japril how Korga's removal has hollowed out all desire and meaning from his life.",
        "repair": "Marq and his companions attempt repair through a series of evasions and negotiations: addressing the crowd from the projection stage to disperse thousands; fleeing through underground interlevel passages with Santine in a transport vehicle; descending into the ancient cave ring with JoBonnot; and seeking to return to Dyethshome. These are tactical survivals rather than resolutions, holding the disruption at bay without resolving its causes.",
        "new_equilibrium": "The novel closes on a provisional and unstable new state: Marq and Rat exit together into the ancient underground city rushing toward Dyethshome, overwhelmed by how past and future distort the present. The relationship between Marq and Korga persists but remains unresolved; the Family/Sygn war continues on many worlds; and the fact of Rhyonon's destruction and Korga's singular survival cannot be undone. The new equilibrium is one of altered vision — permanent distortion of the present by irrecoverable loss and uncertain future."
      },
      "characters": [
        {
          "name": "Japril",
          "slug": "japril",
          "aliases": [],
          "role": "Official / Informant",
          "summary": "An official who recounts the details of the survivor's discovery, physical condition, and the historical background of the neural synapse-jamming done to him."
        },
        {
          "name": "Marq Dyeth",
          "slug": "marq-dyeth",
          "aliases": [
            "Marq",
            "I",
            "Skepta Marq",
            "Skynia Marq",
            "Skeol Marq",
            "Skinu Marq"
          ],
          "role": "Narrator / Protagonist",
          "summary": "An industrial diplomat and native of Velm belonging to the Dyeth family who receives the survivor, guides students, and shares a deep romantic and physical connection with Korga."
        },
        {
          "name": "Rat Korga",
          "slug": "rat-korga",
          "aliases": [
            "Prince Charming",
            "Korga",
            "the survivor",
            "Korga the Porter",
            "Rat",
            "the stranger",
            "he",
            "him",
            "Skoilla Rat",
            "Skina Rat"
          ],
          "role": "Survivor / Romantic Partner",
          "summary": "A 7-foot tall survivor from a destroyed world whose brain was altered by synapse-jamming; he is physically scarred, possesses artificial eyes, and forms an immediate intimate bond with Marq."
        },
        {
          "name": "Vondramach Okk",
          "slug": "vondramach-okk",
          "aliases": [
            "Vondramach",
            "Vondramach Tyrannus",
            "Dramach",
            "Vondra"
          ],
          "role": "Historical Figure/Poet",
          "summary": "An ancient, highly documented, synapse-jammed historical figure and poet who originally wore the neural rings now given to Rat Korga."
        },
        {
          "name": "Marta",
          "slug": "marta",
          "aliases": [],
          "role": "Medical/Investigative Official",
          "summary": "An official who assists in remapping the survivor's neuronal deployment and identifies the illegal synapse-jamming."
        },
        {
          "name": "Ynn",
          "slug": "ynn",
          "aliases": [],
          "role": "Medical/Investigative Official",
          "summary": "An official with a high, sharp voice who attempts to question the survivor and analyze his neurological state after he is bathed."
        },
        {
          "name": "Santine",
          "slug": "santine",
          "aliases": [
            "Skya Santine"
          ],
          "role": "Transport Driver",
          "summary": "An acquaintance who waits in the industrial interlevel with a tracer tank to help Marq, Rat, and the others escape."
        },
        {
          "name": "Alsrod",
          "slug": "alsrod",
          "aliases": [
            "Thant Alsrod"
          ],
          "role": "Guest/Acquaintance",
          "summary": "A curious individual who eagerly listens to Marq explain the difference between a family and a stream, and expresses interest in Velm's theatrical and poetic history."
        },
        {
          "name": "Clearwater",
          "slug": "clearwater",
          "aliases": [],
          "role": "Friend",
          "summary": "A friend who calls Marq on his comscreen, urging him to come downstairs and join the party before George causes a nuisance."
        },
        {
          "name": "Nea Thant",
          "slug": "nea-thant",
          "aliases": [
            "George",
            "Nea"
          ],
          "role": "Antagonist / Sister",
          "summary": "A dark-skinned woman from polar Zetzor who visits Dyethshome, expressing terror over religious/political shifts before being aggressively confronted by her sister."
        },
        {
          "name": "Shoshana",
          "slug": "shoshana",
          "aliases": [],
          "role": "Parent",
          "summary": "Marq's human mother and an architectural consultant who greets Marq upon his return to Dyethshome."
        },
        {
          "name": "Small Maxa",
          "slug": "small-maxa",
          "aliases": [
            "Maxa",
            "Mother Dyeth"
          ],
          "role": "Family Member",
          "summary": "Marq's white, albino evelm sister who bursts into tears after being shoved and witnessing George's aggression."
        },
        {
          "name": "Mima",
          "slug": "mima",
          "aliases": [],
          "role": "Tour Guide / Retired med-tech2",
          "summary": "A retired med-tech who guides visiting students on sand-scooters to view Morgre from the historical Bazerat rehearsal platform."
        },
        {
          "name": "Clym",
          "slug": "clym",
          "aliases": [
            "Skina Clym",
            "Skon Clym"
          ],
          "role": "Acquaintance/Antagonist",
          "summary": "A free-agented professional and carefully programmed psychotic killer who attends the same conference as Marq, reveals the systematic erasure of Rhyonon from GI, and threatens to torture and murder Marq."
        },
        {
          "name": "Employer on Nepiy",
          "slug": "employer-on-nepiy",
          "aliases": [
            "the woman in charge"
          ],
          "role": "Employer",
          "summary": "A large, blue woman who comes apart into jellylike pieces; she employs Marq to deliver heteromer sheathing samples and insists on showing him the catastrophic agricultural failure on her world."
        },
        {
          "name": "Station Administrator",
          "slug": "station-administrator",
          "aliases": [],
          "role": "Administrator",
          "summary": "An immensely fat human woman in a black jumpsuit who manages the station in the pits between worldlets and claims to be slowly eating herself to death on uncooked food."
        },
        {
          "name": "Max",
          "slug": "max",
          "aliases": [],
          "role": "Family Member/Host",
          "summary": "Warns about the crushing crowds outside Dyethshome."
        },
        {
          "name": "Sel'v",
          "slug": "selv",
          "aliases": [],
          "role": "Family Member",
          "summary": "An evelm who prompts Small Maxa to tell Marq that Rat has left."
        },
        {
          "name": "v'ea'd",
          "slug": "vead",
          "aliases": [],
          "role": "Professor",
          "summary": "A famous evelm academic who discussed the shared love of illusion between humans and evelmi with Marq."
        },
        {
          "name": "Black Lars",
          "slug": "black-lars",
          "aliases": [
            "Lars",
            "Skern Black-lars"
          ],
          "role": "Marq's sister",
          "summary": "Marq's sister who informs him via photocall that the Thants have arrived with momentous news, necessitating a formal supper on Zetzor."
        },
        {
          "name": "Man in the wire-filament mask",
          "slug": "man-in-the-wire-filament-mask",
          "aliases": [],
          "role": "Institute Official",
          "summary": "A man at the RAT Institute who informs Rat Korga that his brain will be altered and he will be sold into slavery."
        },
        {
          "name": "Unnamed Woman",
          "slug": "unnamed-woman",
          "aliases": [
            "She"
          ],
          "role": "Rescuer / Kidnapper",
          "summary": "A woman who kidnaps Rat Korga and uses an illegal data glove to feed him vast amounts of information so they can discuss literature."
        },
        {
          "name": "Men in beige",
          "slug": "men-in-beige",
          "aliases": [
            "first man in beige",
            "tall one",
            "short one",
            "man in charge",
            "new man"
          ],
          "role": "Station Security / Workers",
          "summary": "A group of workers and security personnel who track down Rat Korga, brutally rip the data glove from his hand, and return him to labor at the station."
        },
        {
          "name": "Old Hunter",
          "slug": "old-hunter",
          "aliases": [],
          "role": "Hunter",
          "summary": "An experienced evelm hunter who playfully challenges Marq and Rat, and introduces them to other hunters in the desert."
        },
        {
          "name": "Ollivet't Doru",
          "slug": "ollivett-doru",
          "aliases": [
            "Ollivet't",
            "Skalla Ollivet't",
            "Shalleme",
            "Skri Shalleme"
          ],
          "role": "Hunter",
          "summary": "An evelm hunter accompanying Shalleme who participates in the formal greeting rituals with Marq and the Old Hunter."
        },
        {
          "name": "JoBonnot",
          "slug": "jobonnot",
          "aliases": [],
          "role": "Manipulator/Offworlder",
          "summary": "A tall woman from Nepiy who feigns a local dialect, deliberately distorts messages, and claims to be 'profoundly sane' while observing Marq and Rat."
        }
      ],
      "frameworks_mapped": [
        "Protocol Fiction Mapping",
        "Actantial Model",
        "Todorov's Equilibrium",
        "The Freytag Pyramid",
        "Propp's Morphology",
        "Genette's Narrative",
        "The Monomyth",
        "Dan Harmon",
        "Save the Cat",
        "Kishōtenketsu",
        "The Three-Act Structure"
      ],
      "score_reliability": {
        "state": "contested",
        "threshold": 0.2,
        "runs_total": 5,
        "versions_compared": [
          "2.5"
        ],
        "max_spread": 0.2,
        "contested": [
          {
            "axis": "threat_scale",
            "version": "2.5",
            "spread": 0.2,
            "low": {
              "label": "NTSMR-2.5-balanced-glm-5+deepseek-v3.2",
              "model": "balanced-routing",
              "effort": "?",
              "value": 0.52
            },
            "high": {
              "label": "NTSMR-2.5-claude-sonnet-4-6-low",
              "model": "claude-sonnet-4-6",
              "effort": "low",
              "value": 0.72
            }
          }
        ]
      }
    },
    {
      "slug": "robert_a_heinlein_starship_troopers",
      "title": "Starship Troopers",
      "author": "Robert A. Heinlein",
      "year": 1959,
      "medium": "book",
      "genre_tags": [
        "sf",
        "military sf"
      ],
      "tropes": [],
      "quadrant_scores": {
        "time_linearity": 0.65,
        "pacing_velocity": 0.45,
        "threat_scale": 0.82,
        "protagonist_fate": 0.25,
        "conflict_style": 0.35,
        "price_type": 0.45
      },
      "provenance": {
        "analysis_run": "NTSMR-2.5-claude-sonnet-4-6-low",
        "analysis_body_sha256": "ef532dd4a6084f97cdfb5c38435f7fd74879964dc5db031f2d2ff24fb274ee42",
        "synthesis": {
          "path": "nartopo-tools/artifacts/robert_a_heinlein_starship_troopers.md.ntsmr-2-5-claude-sonnet-4-6-low.synthesis.json",
          "sha256": "0f401834e7fcc82a079896a51191855a798ed357a7e2d7462e936f802da544f9"
        },
        "report": {
          "path": "nartopo-tools/artifacts/robert_a_heinlein_starship_troopers.md.ntsmr-2-5-claude-sonnet-4-6-low.report.json",
          "sha256": "da60dbddcf55818c00e138f03514e51db8b96734e74e17c9ef90585cd179d810"
        },
        "source": {
          "path": "Robert A. Heinlein/Starship Troopers.txt",
          "sha256": "cddde38782dbcd887a68cb4e5c4dbf705ed4515cee19e2a1c4990e6f9de0e10d",
          "digest_observed_at": "2026-09-09",
          "digest_at_analysis_run": null,
          "edition": null,
          "edition_status": "unresolved"
        },
        "pipeline_revision_at_run": null,
        "verification": {
          "source": "unverified",
          "human_review": "unreviewed",
          "bibliography": "unverified"
        },
        "issues": [],
        "todorov_status": "recovered-from-synthesis",
        "work_identity": {
          "title": "Starship Troopers",
          "author": "Robert A. Heinlein",
          "year": 1959
        }
      },
      "ntsmr": {
        "version": "2.5",
        "primary_run_label": "NTSMR-2.5-claude-sonnet-4-6-low",
        "runs": {
          "NTSMR-2.3-claude-sonnet-4-6-low": {
            "pipeline_version": "2.3",
            "backend": "claude",
            "model": "claude-sonnet-4-6",
            "scores": {
              "time_linearity": 0.35,
              "pacing_velocity": 0.65,
              "threat_scale": 0.7,
              "protagonist_fate": 0.15,
              "conflict_style": 0.25,
              "price_type": 0.72
            },
            "score_space": "site-v1",
            "reasoning_effort": "low"
          },
          "NTSMR-2.4-claude-sonnet-4-6-low": {
            "pipeline_version": "2.4",
            "backend": "claude",
            "model": "claude-sonnet-4-6",
            "scores": {
              "time_linearity": 0.38,
              "pacing_velocity": 0.4,
              "threat_scale": 0.78,
              "protagonist_fate": 0.15,
              "conflict_style": 0.3,
              "price_type": 0.35
            },
            "score_space": "site-v1",
            "reasoning_effort": "low"
          },
          "NTSMR-2.5-claude-sonnet-4-6-low": {
            "pipeline_version": "2.5",
            "backend": "claude",
            "model": "claude-sonnet-4-6",
            "scores": {
              "time_linearity": 0.65,
              "pacing_velocity": 0.45,
              "threat_scale": 0.82,
              "protagonist_fate": 0.25,
              "conflict_style": 0.35,
              "price_type": 0.45
            },
            "score_space": "site-v1",
            "reasoning_effort": "low"
          },
          "NTSMR-2.5-minimax/minimax-m2.5": {
            "pipeline_version": "2.5",
            "backend": "openrouter",
            "model": "minimax/minimax-m2.5",
            "scores": {
              "time_linearity": 0.15,
              "pacing_velocity": 0.45,
              "threat_scale": 0.85,
              "protagonist_fate": 0.25,
              "conflict_style": 0.4,
              "price_type": 0.5
            },
            "score_space": "site-v1"
          },
          "NTSMR-2.5-qwen/qwen3.5-plus-02-15": {
            "pipeline_version": "2.5",
            "backend": "openrouter",
            "model": "qwen/qwen3.5-plus-02-15",
            "scores": {
              "time_linearity": 0.45,
              "pacing_velocity": 0.65,
              "threat_scale": 0.85,
              "protagonist_fate": 0.3,
              "conflict_style": 0.6,
              "price_type": 0.45
            },
            "score_space": "site-v1"
          },
          "NTSMR-2.5-qwen/qwen3.5-397b-a17b": {
            "pipeline_version": "2.5",
            "backend": "openrouter",
            "model": "qwen/qwen3.5-397b-a17b",
            "scores": {
              "time_linearity": 0.25,
              "pacing_velocity": 0.7,
              "threat_scale": 0.75,
              "protagonist_fate": 0.35,
              "conflict_style": 0.65,
              "price_type": 0.4
            },
            "score_space": "site-v1"
          },
          "NTSMR-2.5-deepseek/deepseek-v3.2": {
            "pipeline_version": "2.5",
            "backend": "openrouter",
            "model": "deepseek/deepseek-v3.2",
            "scores": {
              "time_linearity": 0.15,
              "pacing_velocity": 0.35,
              "threat_scale": 0.85,
              "protagonist_fate": 0.3,
              "conflict_style": 0.3,
              "price_type": 0.2
            },
            "score_space": "site-v1"
          },
          "NTSMR-2.5-z-ai/glm-4.7": {
            "pipeline_version": "2.5",
            "backend": "openrouter",
            "model": "z-ai/glm-4.7",
            "scores": {
              "time_linearity": 0.2,
              "pacing_velocity": 0.5,
              "threat_scale": 0.85,
              "protagonist_fate": 0.3,
              "conflict_style": 0.45,
              "price_type": 0.4
            },
            "score_space": "site-v1"
          },
          "NTSMR-2.5-z-ai/glm-5": {
            "pipeline_version": "2.5",
            "backend": "openrouter",
            "model": "z-ai/glm-5",
            "scores": {
              "time_linearity": 0.28,
              "pacing_velocity": 0.42,
              "threat_scale": 0.82,
              "protagonist_fate": 0.32,
              "conflict_style": 0.35,
              "price_type": 0.38
            },
            "score_space": "site-v1"
          },
          "NTSMR-2.5-balanced-glm-5+deepseek-v3.2": {
            "pipeline_version": "2.5",
            "backend": "openrouter",
            "model": "balanced-routing",
            "scores": {
              "time_linearity": 0.6,
              "pacing_velocity": 0.6,
              "threat_scale": 0.82,
              "protagonist_fate": 0.32,
              "conflict_style": 0.52,
              "price_type": 0.48
            },
            "score_space": "site-v1",
            "score_only": true,
            "source_run_label": "NTSMR-2.5-claude-sonnet-4-6-low"
          }
        }
      },
      "todorov_stages": {
        "equilibrium": "Rico exists as a privileged civilian student in a stable pre-enlistment world, with no military obligations, a comfortable family life, and a clear social position outside the Federal Service franchise system.",
        "disruption": "Rico impulsively enlists in Federal Service and is assigned against his preference to the Mobile Infantry combat branch, initiating an irreversible break from civilian life; simultaneously, the broader war against the Bugs—culminating in the destruction of Buenos Aires and the catastrophic failure of Operation Bughouse on Klendathu—shatters any assumption of interstellar peace.",
        "recognition": "Rico undergoes a series of recognitions: witnessing Ted Hendrick's flogging and the Dillinger execution forces him to confront the moral logic of military authority; his interior monologue after Ace's career advice leads him to understand that every combat drop is itself an act of citizenship and that he has been transformed by service into something genuinely different from the boy who enlisted.",
        "repair": "Rico endures boot camp, survives Operation Bughouse, earns his corporal's stripes, commands under fire during Operation Royalty on Planet P, and successfully completes OCS despite fear of demotion after battlefield leadership failures—each stage constituting an active attempt to master the demands the disruption imposed.",
        "new_equilibrium": "Rico graduates OCS as a commissioned lieutenant, commands his own unit designated Rico's Roughnecks, reunites with his father who has himself enlisted as a corporal in the M.I., and leads his platoon into the final assault on Klendathu—a transformed status quo in which both Rico and his father are citizen-soldiers and Rico occupies the authoritative role once held by figures like Rasczak."
      },
      "characters": [
        {
          "name": "Carmen Ibañez",
          "slug": "carmen-ibaez",
          "aliases": [
            "Carmencita",
            "Ochee Chyornya"
          ],
          "role": "supporting character",
          "summary": "A small, mathematically gifted young woman and childhood friend who joins to become a spaceship pilot."
        },
        {
          "name": "Carl",
          "slug": "carl",
          "aliases": [],
          "role": "supporting character",
          "summary": "Johnnie's friend who joins military electronics research (R&D)."
        },
        {
          "name": "Sergeant Zim",
          "slug": "sergeant-zim",
          "aliases": [
            "Sarge",
            "Brevet Captain Zim"
          ],
          "role": "non-commissioned officer",
          "summary": "Career Ship's Sergeant and company commander at Camp Currie, a formidable combat expert who trains recruits with brutal efficiency."
        },
        {
          "name": "Ace",
          "slug": "ace",
          "aliases": [],
          "role": "supporting character",
          "summary": "Squad leader and assistant section leader in Johnnie's platoon."
        },
        {
          "name": "Fleet Sergeant Ho",
          "slug": "fleet-sergeant-ho",
          "aliases": [],
          "role": "minor character",
          "summary": "A legless, armless recruiter at the Federal Building who warns recruits about military service."
        },
        {
          "name": "Corporal-Instructor Bronski",
          "slug": "corporal-instructor-bronski",
          "aliases": [],
          "role": "minor character",
          "summary": "A relatively approachable instructor at Camp Currie."
        },
        {
          "name": "Captain Frankel",
          "slug": "captain-frankel",
          "aliases": [],
          "role": "company commander",
          "summary": "Camp Currie company commander who works harder than Johnnie realized and handles discipline with quiet authority."
        },
        {
          "name": "Ted Hendrick",
          "slug": "ted-hendrick",
          "aliases": [],
          "role": "minor character",
          "summary": "A recruit who strikes Sergeant Zim and faces court-martial for the capital offense."
        },
        {
          "name": "Breckinridge",
          "slug": "breckinridge",
          "aliases": [],
          "role": "minor character",
          "summary": "A recruit who dies during the survival test in the mountains."
        },
        {
          "name": "Lieutenant Spieksma",
          "slug": "lieutenant-spieksma",
          "aliases": [
            "Jake"
          ],
          "role": "minor character",
          "summary": "Officer who convenes the field court-martial for Hendrick."
        },
        {
          "name": "Sergeant Jelal",
          "slug": "sergeant-jelal",
          "aliases": [
            "Jelly"
          ],
          "role": "former commanding officer",
          "summary": "Platoon sergeant who becomes de facto leader after Rasczak's death, later commissioned as lieutenant."
        },
        {
          "name": "Flores",
          "slug": "flores",
          "aliases": [
            "Dizzy"
          ],
          "role": "minor character",
          "summary": "A trooper in Johnnie's platoon who is wounded during the raid."
        },
        {
          "name": "Juan Rico",
          "slug": "juan-rico",
          "aliases": [
            "Mr. Rico",
            "Lieutenant Rico",
            "Johnnie",
            "Juan",
            "Juanito"
          ],
          "role": "protagonist",
          "summary": "A cap trooper making combat drops, narrating his experiences in the Mobile Infantry from enlistment through training to combat."
        },
        {
          "name": "Colonel Dubois",
          "slug": "colonel-dubois",
          "aliases": [
            "Mr. Dubois",
            "Old Sour Mouth"
          ],
          "role": "former teacher",
          "summary": "Johnnie's former History and Moral Philosophy teacher, revealed as a retired M.I. lieutenant colonel."
        },
        {
          "name": "Major Malloy",
          "slug": "major-malloy",
          "aliases": [],
          "role": "regimental commander",
          "summary": "Camp Currie's regimental commander who authorizes Johnnie's administrative punishment."
        },
        {
          "name": "PFC Dutch Bamburger",
          "slug": "pfc-dutch-bamburger",
          "aliases": [
            "Dutch"
          ],
          "role": "mentor",
          "summary": "Johnnie's assigned mentor for his first combat drop on Klendathu."
        },
        {
          "name": "Lieutenant Rasczak",
          "slug": "lieutenant-rasczak",
          "aliases": [
            "The Lieutenant"
          ],
          "role": "platoon leader",
          "summary": "Beloved platoon leader of Rasczak's Roughnecks, a father figure who worries about every trooper."
        },
        {
          "name": "Captain Deladrier",
          "slug": "captain-deladrier",
          "aliases": [],
          "role": "ship captain",
          "summary": "Captain of the Rodger Young, praised by the Roughnecks for her piloting skills."
        },
        {
          "name": "Father",
          "slug": "father",
          "aliases": [
            "platoon sergeant",
            "Johnnie's Father"
          ],
          "role": "supporting character",
          "summary": "Johnnie's wealthy father who joined the M.I. as a corporal after his wife's death in the Buenos Aires attack, now serving in the Roughnecks aboard the Rodger Young."
        },
        {
          "name": "Major Reid",
          "slug": "major-reid",
          "aliases": [],
          "role": "instructor",
          "summary": "A blind officer who teaches History and Moral Philosophy at O.C.S., known for his disconcerting habit of looking directly at students while calling them by name."
        },
        {
          "name": "Colonel Nielssen",
          "slug": "colonel-nielssen",
          "aliases": [
            "The Commandant"
          ],
          "role": "authority figure",
          "summary": "Commandant of O.C.S. who delivers sobering lectures on command responsibility and the consequences of officer failure."
        },
        {
          "name": "Captain Jorgenson",
          "slug": "captain-jorgenson",
          "aliases": [
            "The Skipper"
          ],
          "role": "commanding officer",
          "summary": "Female captain commanding the Tours, who tutors Johnnie in mathematics and maintains formal wardroom protocols."
        },
        {
          "name": "Captain Blackstone",
          "slug": "captain-blackstone",
          "aliases": [
            "Blackie",
            "Captain Blackie"
          ],
          "role": "commanding officer",
          "summary": "Strike force commander aboard the Tours, commanding Blackie's Blackguards and serving as Johnnie's direct superior during the Planet P operation."
        },
        {
          "name": "Abe Moise",
          "slug": "abe-moise",
          "aliases": [],
          "role": "officer",
          "summary": "Johnnie's O.C.S. classmate, now the sole surviving officer of the Cherubs platoon that was devastated on Planet P."
        },
        {
          "name": "Hughes",
          "slug": "hughes",
          "aliases": [],
          "role": "scout",
          "summary": "A scout in Johnnie's platoon on Planet P who reports on Bug movements during the breakthrough."
        },
        {
          "name": "Cunha",
          "slug": "cunha",
          "aliases": [],
          "role": "squad leader",
          "summary": "A squad leader in Johnnie's platoon commanding the first squad during the Planet P deployment."
        },
        {
          "name": "Brumby",
          "slug": "brumby",
          "aliases": [
            "Sergeant Brumby"
          ],
          "role": "section leader",
          "summary": "A section leader in Johnnie's platoon commanding the second section during the Planet P operation."
        },
        {
          "name": "Lieutenant Khoroshen",
          "slug": "lieutenant-khoroshen",
          "aliases": [],
          "role": "fellow officer",
          "summary": "Second platoon leader who becomes de facto company commander when Blackstone is disabled"
        },
        {
          "name": "Sergeant Cunha",
          "slug": "sergeant-cunha",
          "aliases": [],
          "role": "squad leader",
          "summary": "Sergeant who leads second section and follows Johnnie underground"
        },
        {
          "name": "Angel",
          "slug": "angel",
          "aliases": [],
          "role": "roommate",
          "summary": "Johnnie's O.C.S. roommate who helps tutor him in mathematics"
        },
        {
          "name": "Bennie Montez",
          "slug": "bennie-montez",
          "aliases": [
            "Bernardo"
          ],
          "role": "classmate",
          "summary": "Fellow graduate waiting with Johnnie at the Fleet landing field"
        },
        {
          "name": "Candidate Bearpaw",
          "slug": "candidate-bearpaw",
          "aliases": [
            "Jimmie",
            "Third Lieutenant Bearpaw"
          ],
          "role": "junior officer under instruction",
          "summary": "Young candidate assigned to learn from Johnnie during the Klendathu drop"
        }
      ],
      "frameworks_mapped": [
        "Protocol Fiction Mapping",
        "Actantial Model",
        "Todorov's Equilibrium",
        "The Freytag Pyramid",
        "Propp's Morphology",
        "Genette's Narrative",
        "The Monomyth",
        "Dan Harmon",
        "Save the Cat",
        "Kishotenketsu",
        "The Three-Act Structure",
        "Levi-Strauss's Binary Oppositions",
        "Cognitive Estrangement",
        "Bakhtin's Chronotope",
        "Aristotelian Poetics",
        "Jungian Archetypal Analysis",
        "Genette's Transtextuality"
      ],
      "score_reliability": {
        "state": "contested",
        "threshold": 0.2,
        "runs_total": 10,
        "versions_compared": [
          "2.5"
        ],
        "max_spread": 0.5,
        "contested": [
          {
            "axis": "time_linearity",
            "version": "2.5",
            "spread": 0.5,
            "low": {
              "label": "NTSMR-2.5-deepseek/deepseek-v3.2",
              "model": "deepseek/deepseek-v3.2",
              "effort": "?",
              "value": 0.15
            },
            "high": {
              "label": "NTSMR-2.5-claude-sonnet-4-6-low",
              "model": "claude-sonnet-4-6",
              "effort": "low",
              "value": 0.65
            }
          },
          {
            "axis": "conflict_style",
            "version": "2.5",
            "spread": 0.35,
            "low": {
              "label": "NTSMR-2.5-deepseek/deepseek-v3.2",
              "model": "deepseek/deepseek-v3.2",
              "effort": "?",
              "value": 0.3
            },
            "high": {
              "label": "NTSMR-2.5-qwen/qwen3.5-397b-a17b",
              "model": "qwen/qwen3.5-397b-a17b",
              "effort": "?",
              "value": 0.65
            }
          },
          {
            "axis": "pacing_velocity",
            "version": "2.5",
            "spread": 0.35,
            "low": {
              "label": "NTSMR-2.5-deepseek/deepseek-v3.2",
              "model": "deepseek/deepseek-v3.2",
              "effort": "?",
              "value": 0.35
            },
            "high": {
              "label": "NTSMR-2.5-qwen/qwen3.5-397b-a17b",
              "model": "qwen/qwen3.5-397b-a17b",
              "effort": "?",
              "value": 0.7
            }
          },
          {
            "axis": "price_type",
            "version": "2.5",
            "spread": 0.3,
            "low": {
              "label": "NTSMR-2.5-deepseek/deepseek-v3.2",
              "model": "deepseek/deepseek-v3.2",
              "effort": "?",
              "value": 0.2
            },
            "high": {
              "label": "NTSMR-2.5-minimax/minimax-m2.5",
              "model": "minimax/minimax-m2.5",
              "effort": "?",
              "value": 0.5
            }
          }
        ]
      }
    },
    {
      "slug": "david_brin_startide_rising",
      "title": "Startide Rising",
      "author": "David Brin",
      "year": 1983,
      "medium": "book",
      "genre_tags": [
        "sf",
        "space opera",
        "uplift"
      ],
      "tropes": [],
      "quadrant_scores": {
        "time_linearity": 0.28,
        "pacing_velocity": 0.42,
        "threat_scale": 0.82,
        "protagonist_fate": 0.45,
        "conflict_style": 0.45,
        "price_type": 0.55
      },
      "provenance": {
        "analysis_run": "NTSMR-2.5-claude-sonnet-4-6-low",
        "analysis_body_sha256": "e178147ed12fd300fc2f7427a7269f5155c62fc28e6deabb6cd25a01eed49c58",
        "synthesis": {
          "path": "nartopo-tools/artifacts/david_brin_startide_rising.md.ntsmr-2-5-claude-sonnet-4-6-low.synthesis.json",
          "sha256": "3f7651a1ec0f7a3e53d3f68c4cac9dc2c3d4bc9552852c3305a747cb56167261"
        },
        "report": {
          "path": "nartopo-tools/artifacts/david_brin_startide_rising.md.ntsmr-2-5-claude-sonnet-4-6-low.report.json",
          "sha256": "257ab14de589d4710c29fa3a9b9198252dcfff4524a00aec12662a579c82f6ee"
        },
        "source": {
          "path": "David Brin/Startide Rising.txt",
          "sha256": "6f1c856460200aba4fc275e6a8026c6db42d304341da91a255a30a2cb64609f4",
          "digest_observed_at": "2026-09-09",
          "digest_at_analysis_run": null,
          "edition": null,
          "edition_status": "unresolved"
        },
        "pipeline_revision_at_run": null,
        "verification": {
          "source": "unverified",
          "human_review": "unreviewed",
          "bibliography": "unverified"
        },
        "issues": [],
        "todorov_status": "recovered-from-synthesis",
        "work_identity": {
          "title": "Startide Rising",
          "author": "David Brin",
          "year": 1983
        }
      },
      "ntsmr": {
        "version": "2.5",
        "primary_run_label": "NTSMR-2.5-claude-sonnet-4-6-low",
        "runs": {
          "NTSMR-2.3-claude-sonnet-4-6-low": {
            "pipeline_version": "2.3",
            "backend": "claude",
            "model": "claude-sonnet-4-6",
            "scores": {
              "time_linearity": 0.25,
              "pacing_velocity": 0.45,
              "threat_scale": 0.78,
              "protagonist_fate": 0.62,
              "conflict_style": 0.35,
              "price_type": 0.65
            },
            "score_space": "site-v1",
            "reasoning_effort": "low"
          },
          "NTSMR-2.4-claude-sonnet-4-6-low": {
            "pipeline_version": "2.4",
            "backend": "claude",
            "model": "claude-sonnet-4-6",
            "scores": {
              "time_linearity": 0.28,
              "pacing_velocity": 0.25,
              "threat_scale": 0.88,
              "protagonist_fate": 0.42,
              "conflict_style": 0.32,
              "price_type": 0.38
            },
            "score_space": "site-v1",
            "reasoning_effort": "low"
          },
          "NTSMR-2.5-claude-sonnet-4-6-low": {
            "pipeline_version": "2.5",
            "backend": "claude",
            "model": "claude-sonnet-4-6",
            "scores": {
              "time_linearity": 0.28,
              "pacing_velocity": 0.42,
              "threat_scale": 0.82,
              "protagonist_fate": 0.45,
              "conflict_style": 0.45,
              "price_type": 0.55
            },
            "score_space": "site-v1",
            "reasoning_effort": "low"
          },
          "NTSMR-2.5-balanced-glm-5+deepseek-v3.2": {
            "pipeline_version": "2.5",
            "backend": "openrouter",
            "model": "balanced-routing",
            "scores": {
              "time_linearity": 0.18,
              "pacing_velocity": 0.4,
              "threat_scale": 0.82,
              "protagonist_fate": 0.35,
              "conflict_style": 0.48,
              "price_type": 0.42
            },
            "score_space": "site-v1",
            "score_only": true,
            "source_run_label": "NTSMR-2.5-claude-sonnet-4-6-low"
          }
        }
      },
      "todorov_stages": {
        "equilibrium": "Streaker and her dolphin-human crew exist as a functioning, if damaged, ship operating under legitimate command hierarchy with Creideiki as captain, pursuing a covert mission to hide on Kithrup and make repairs after their discovery of the derelict fleet at Morgran.",
        "disruption": "The Terragens Council's coded order to hide, combined with the Galactic fleets detecting Streaker at Kithrup and the internal sabotage of Creideiki by Metz — placing unstable Stenos crew members who cause his neural injury — simultaneously destabilize the external situation and the internal command structure.",
        "recognition": "Multiple recognition moments compound: Makanee suspects deliberate conspiracy by Metz and Takkata-Jim; Gillian receives Akki's covert warning that Creideiki is unconscious and the ship is deteriorating; Takkata-Jim himself recognizes he has been outmaneuvered when Gillian invokes secret orders and locks him out of ship controls; Sah'ot and Gillian recognize the subsurface Karrank% as intelligent beings whose existence transforms the mission's stakes.",
        "repair": "Gillian assumes effective command and executes the Trojan Seahorse plan — moving Streaker to the Seahorse position, using Takkata-Jim's suicidal longboat attack on the Galactic fleets as a distraction, deploying oxywater debris at the gas giant to destroy pursuers, and ultimately escaping toward the transfer point under Thennanin cover while Tom's taunting broadcast draws the enemy fleet into a long chase.",
        "new_equilibrium": "Streaker escapes Kithrup with her crew and the derelict fleet data intact, heading north to the transfer point; Tom Orley survives on the surface and is retrieved by Hikahi; Creideiki departs alone toward the Karrank% entities and the mythic Startide; the Galactic siege is broken though the broader conflict over Streaker's discovery remains unresolved — a new, altered status quo of survival and flight rather than hiding."
      },
      "characters": [
        {
          "name": "Toshio",
          "slug": "toshio",
          "aliases": [
            "Ladder-runner",
            "Sharp-Eyes",
            "Toshio Iwashika"
          ],
          "role": "Human midshipman / field team member",
          "summary": "Young human on the island survey mission; operates the speed sled; defies danger to rescue stranded dolphins; reaches moral growth about human-dolphin relations."
        },
        {
          "name": "Hikahi",
          "slug": "hikahi",
          "aliases": [],
          "role": "Senior neo-dolphin officer / expedition leader",
          "summary": "Monitors developments from the skiff and hopes Gillian has dealt with Takkata-Jim; joyfully lands to recover Tom Orley at the novel's end."
        },
        {
          "name": "Takkata-Jim",
          "slug": "takkata-jim",
          "aliases": [
            "Vice-Captain"
          ],
          "role": "Mutineer / former executive officer",
          "summary": "Neo-dolphin executive officer who repeatedly questions Creideiki's plan over comm, then coerces Makanee into a medical declaration enabling his assumption of command; dispatches K'tha-Jon after Akki."
        },
        {
          "name": "Metz",
          "slug": "metz",
          "aliases": [
            "Ignacio Metz",
            "Doctor Metz",
            "Dr. Metz"
          ],
          "role": "Human scientist / secret experimenter",
          "summary": "Runs covert behavioral and genetic studies; has engineered Stenos representation on the mission; secretly regards K'tha-Jon as his most important undisclosed project; patronizing toward dolphin officers."
        },
        {
          "name": "Tom Orley",
          "slug": "tom-orley",
          "aliases": [
            "Thomas Orley",
            "Tom"
          ],
          "role": "Special operative / gene-crafted human",
          "summary": "Alone on Kithrup's weed-mats after a crash; observes the space battle overhead, arms and hurls the Thennanin distress psi-bomb to trigger the Trojan Seahorse plan, singing a defiant ballad about humanity."
        },
        {
          "name": "Niss",
          "slug": "niss",
          "aliases": [
            "Niss machine",
            "Tymbrimi Niss machine"
          ],
          "role": "Tymbrimi intelligence device / actantial helper",
          "summary": "Disembodied AI planted aboard by Earth's Tymbrimi allies; attempting to bypass Library access controls; confirms the Derelict Fleet's ambiguous but explosive significance."
        },
        {
          "name": "Krat",
          "slug": "krat",
          "aliases": [
            "Fleet-Mother",
            "Mistress"
          ],
          "role": "Soro grand admiral / antagonist",
          "summary": "Leathery reptilian queen commanding a Soro fleet; observes the orbital battle from her flagship; lays an egg mid-conflict; manages client-race crews (Paha fighters, Forski entertainers)."
        },
        {
          "name": "Keepiru",
          "slug": "keepiru",
          "aliases": [
            "Wormhole-Pilot"
          ],
          "role": "Neo-dolphin pilot",
          "summary": "Fastest swimmer on Streaker; suffers rescue fever on the island; brought back to rational behavior by Toshio's commands; retrieves the sled and assists rescue operations."
        },
        {
          "name": "Brookida",
          "slug": "brookida",
          "aliases": [],
          "role": "Elderly neo-dolphin scientist",
          "summary": "Challenges Charlie's geological assumptions using Occam's Razor regarding the scale of excavations; deflects Charlie's requests for help with Metz after learning of Creideiki's condition."
        },
        {
          "name": "K'tha-Jon",
          "slug": "ktha-jon",
          "aliases": [],
          "role": "Stenos bosun / secret experimental subject",
          "summary": "Metz's successful but monstrous Orca-gene graft experiment; kills Akki, pursues Keepiru relentlessly, reveals his self-identity as true Orca, and is disabled but not killed by Keepiru's neural-link attack."
        },
        {
          "name": "Gillian Baskin",
          "slug": "gillian-baskin",
          "aliases": [
            "Dr. Baskin",
            "Gillian",
            "Jill",
            "Life-Cleaner",
            "Commander"
          ],
          "role": "Ship's physician and intelligence operative / narrator",
          "summary": "Writes journal entries documenting crew morale and the mystery of 'Herbie'; close friends with Hikahi; suspects Metz influenced Streaker's crew complement; returns to study the ancient cadaver in stasis."
        },
        {
          "name": "Creideiki",
          "slug": "creideiki",
          "aliases": [],
          "role": "Incapacitated captain aboard the skiff",
          "summary": "Neo-dolphin captain; meditates outside the ship before his injury; later confined to a gravity tank where he receives a visitation from the ancient cetacean god K-K-Kph-kree and is drawn into the Whale Dream."
        },
        {
          "name": "Dennie Sudman",
          "slug": "dennie-sudman",
          "aliases": [
            "Dennie"
          ],
          "role": "Human exobiologist on the skiff",
          "summary": "Biologist aboard Streaker; claustrophobic but capable; discovers anomalies about the metal-mounds and assists with the drill-tree demolition mission."
        },
        {
          "name": "Emerson D'Anite",
          "slug": "emerson-danite",
          "aliases": [],
          "role": "Human crew member",
          "summary": "Stocky black crewman who affects a burr accent; mourns the loss of Hist't; assists Dennie in navigating the outlock crowd."
        },
        {
          "name": "Moki",
          "slug": "moki",
          "aliases": [],
          "role": "Neo-dolphin security patrol",
          "summary": "On guard duty outside Streaker; revels in Primal regression and the new power structure under Takkata-Jim; fantasizes about violence and dominance."
        },
        {
          "name": "Sreekah-pol",
          "slug": "sreekah-pol",
          "aliases": [],
          "role": "Stenos neo-dolphin / Takkata-Jim's operative",
          "summary": "Kills Metz with an energy weapon; one of three Stenos driven to madness by Takkata-Jim using Primal."
        },
        {
          "name": "Hakkuka-jo",
          "slug": "hakkuka-jo",
          "aliases": [],
          "role": "Stenos crew dolphin",
          "summary": "More cautious Stenos dolphin who urges Moki and Sreekah-pol to be quiet about mutiny talk."
        },
        {
          "name": "Suessi",
          "slug": "suessi",
          "aliases": [
            "Hannes"
          ],
          "role": "Human engineer aboard the skiff",
          "summary": "Monitors structural stress on the Thennanin armor bracings throughout the space battle and sardonically reports on 'wild, crazy, female maneuvers.'"
        },
        {
          "name": "Tsh't",
          "slug": "tsht",
          "aliases": [
            "Tish-oot"
          ],
          "role": "Fourth officer, acting helmsman",
          "summary": "Executes combat maneuvers and mine-laying tactics, leads the crew with a battle haiku, and delivers the key news that incoming ships are Thennanin allies."
        },
        {
          "name": "Sah'ot",
          "slug": "sahot",
          "aliases": [],
          "role": "Neo-dolphin linguist on the skiff",
          "summary": "Reluctantly monitors the deep-probe robot in a cramped pool; gradually realizes the 'static' from below is a complex, patterned song — a potential discovery of subsurface intelligence."
        },
        {
          "name": "Charlie Dart",
          "slug": "charlie-dart",
          "aliases": [
            "Charlie",
            "Charles Dart"
          ],
          "role": "Neo-chimpanzee geologist/planetologist",
          "summary": "Debates the drill-tree excavation anomaly with Brookida; plans to use Metz's influence with Takkata-Jim to get field access; largely oblivious to the political crisis aboard Streaker."
        },
        {
          "name": "Xappish lieutenants (elder and junior)",
          "slug": "xappish-lieutenants-elder-and-junior",
          "aliases": [],
          "role": "Minor Galactic POV characters",
          "summary": "Two client-race officers of the Xappish fleet who debate the ethics of the conflict before being killed by an improbability mine."
        },
        {
          "name": "Makanee",
          "slug": "makanee",
          "aliases": [],
          "role": "Ship's physician (neo-dolphin)",
          "summary": "Resists Metz and Takkata-Jim's pressure in sick bay with a verse challenge and a splash, ultimately provides Creideiki's bleak prognosis under duress, then covertly arranges a secret meeting with Akki to counter the conspiracy."
        },
        {
          "name": "Akki",
          "slug": "akki",
          "aliases": [],
          "role": "Young neo-dolphin communications officer",
          "summary": "Hiding in dark waters outside the ship after being sent away by Makanee; covertly relays Streaker's crisis to Gillian in Trinary verse while sensing a hunter approaching."
        },
        {
          "name": "Haoke",
          "slug": "haoke",
          "aliases": [],
          "role": "Neo-dolphin guard (Tursiops)",
          "summary": "On guard duty alongside Moki; pragmatically supports Takkata-Jim's surrender policy but is quietly troubled by the disagreement of Streaker's best officers."
        },
        {
          "name": "K-K-Kph-kree",
          "slug": "k-k-kph-kree",
          "aliases": [
            "Nukapai"
          ],
          "role": "Cetacean mythological god / deep entity",
          "summary": "Ancient cetacean god who manifests to the injured Creideiki, resembling a vast sperm whale with starship-like aura; commands Creideiki to enter the Whale Dream or die as a useless hulk."
        },
        {
          "name": "Suppeh",
          "slug": "suppeh",
          "aliases": [],
          "role": "Ship's purser",
          "summary": "Nervously reports to Takkata-Jim that Gillian and Keepiru have re-entered the ship."
        },
        {
          "name": "Buoult",
          "slug": "buoult",
          "aliases": [],
          "role": "Thennanin general-protector",
          "summary": "Brings the last six Thennanin ships to the chase; rediscovers the battered Krondorsfire; pursues the Streaker's decoy shadows, inadvertently enabling Streaker's escape."
        },
        {
          "name": "Beie Chohooan",
          "slug": "beie-chohooan",
          "aliases": [],
          "role": "Unknown alien observer (friendly)",
          "summary": "Detects the Kithrup beacon while listening to whale songs; resolves to move closer and identify herself to the Earthlings as a friend."
        },
        {
          "name": "Brother of Twelve Shadows",
          "slug": "brother-of-twelve-shadows",
          "aliases": [
            "Senior Brother"
          ],
          "role": "Antagonist / Brothers of the Night operative",
          "summary": "Underwater alien fighter picking off Galactic warriors in the weeds; loses his lesser brother to an unseen threat, likely a dolphin."
        },
        {
          "name": "Wattaceti",
          "slug": "wattaceti",
          "aliases": [],
          "role": "Neo-dolphin communications/detection officer",
          "summary": "Reports on Takkata-Jim's heading, weapon arming, and enemy movements throughout the escape sequence."
        },
        {
          "name": "Cullcullabra",
          "slug": "cullcullabra",
          "aliases": [],
          "role": "Pil Librarian aboard Krat's vessel",
          "summary": "Claims to have found the source of the psi-burst in the Library but is killed by Krat for interrupting her mid-sentence."
        },
        {
          "name": "Acceptor",
          "slug": "acceptor",
          "aliases": [],
          "role": "Tandu psychic client/adept",
          "summary": "Ecstatically monitors the psi voices from beneath Kithrup's surface, ignoring the neural-whip punishment from Tandu masters who want the distraction suppressed."
        },
        {
          "name": "Tandu Stalker",
          "slug": "tandu-stalker",
          "aliases": [
            "Stalker"
          ],
          "role": "Tandu commander",
          "summary": "Commands the Tandu fleet; loses its Acceptor to overstimulation; agrees with Krat on a Soro-Tandu truce to end attrition and seize Streaker."
        },
        {
          "name": "Lucky Kaa",
          "slug": "lucky-kaa",
          "aliases": [],
          "role": "Neo-dolphin pilot on Streaker",
          "summary": "First notices the collapsing cliff and calls the alert; later reports structural concerns from Suessi during combat maneuvers."
        },
        {
          "name": "Brothers of the Night",
          "slug": "brothers-of-the-night",
          "aliases": [],
          "role": "Galactic patron race, antagonist fleet",
          "summary": "Enemy battleships that concentrate fire on Streaker's damaged port side, are lured into the mine field, and take a palpable hit."
        }
      ],
      "frameworks_mapped": [
        "Protocol Fiction Mapping",
        "Actantial Model",
        "Todorov's Equilibrium",
        "The Freytag Pyramid",
        "Propp's Morphology",
        "Genette's Narrative",
        "The Monomyth",
        "Dan Harmon",
        "Save the Cat",
        "Kishotenketsu",
        "The Three-Act Structure",
        "Levi-Strauss's Binary Oppositions",
        "Cognitive Estrangement",
        "Bakhtin's Chronotope",
        "Aristotelian Poetics",
        "Jungian Archetypal Analysis",
        "Genette's Transtextuality"
      ],
      "score_reliability": {
        "state": "replicated-agree",
        "threshold": 0.2,
        "runs_total": 4,
        "versions_compared": [
          "2.5"
        ],
        "max_spread": 0.13,
        "contested": []
      }
    },
    {
      "slug": "ted_chiang_stories_of_your_life_and_others",
      "title": "Stories of Your Life and Others",
      "author": "Ted Chiang",
      "year": 2002,
      "medium": "collection",
      "genre_tags": [
        "science fiction",
        "philosophical sf"
      ],
      "tropes": [],
      "quadrant_scores": {
        "time_linearity": 0.75,
        "pacing_velocity": 0.78,
        "threat_scale": 0.55,
        "protagonist_fate": 0.75,
        "conflict_style": 0.82,
        "price_type": 0.82
      },
      "baseline_quadrant_scores": {
        "time_linearity": 0.9,
        "pacing_velocity": 0.85,
        "threat_scale": 0.8,
        "protagonist_fate": 0.9,
        "conflict_style": 0.85,
        "price_type": 0.95
      },
      "provenance": {
        "analysis_run": "NTSMR-2.5-claude-sonnet-4-6-low",
        "analysis_body_sha256": "48aa42bc844d7af4a35dd721efd1461d09eb11c9c9d7e5346bd29970a165d321",
        "synthesis": {
          "path": "nartopo-tools/artifacts/ted_chiang_stories_of_your_life_and_others.md.ntsmr-2-5-claude-sonnet-4-6-low.synthesis.json",
          "sha256": "41cac4425620b81b5768c6de2975ce6f15df49b545207c8377384fb20b92bd97"
        },
        "report": {
          "path": "nartopo-tools/artifacts/ted_chiang_stories_of_your_life_and_others.md.ntsmr-2-5-claude-sonnet-4-6-low.report.json",
          "sha256": "687637258da39fb74c6e70f0e6963f56da2874e639371356f8ef1a0f23e3a245"
        },
        "source": {
          "path": "Ted Chiang/Stories of Your Life and Others (2002).txt",
          "sha256": "07dc13e71fc66b9fe134aa55fbc16351efe9e351536cde37138ef3a62648e681",
          "digest_observed_at": "2026-09-09",
          "digest_at_analysis_run": null,
          "edition": null,
          "edition_status": "unresolved"
        },
        "pipeline_revision_at_run": null,
        "verification": {
          "source": "unverified",
          "human_review": "unreviewed",
          "bibliography": "unverified"
        },
        "issues": [],
        "todorov_status": "recovered-from-synthesis",
        "work_identity": {
          "title": "Stories of Your Life and Others",
          "author": "Ted Chiang",
          "year": 2002
        }
      },
      "ntsmr": {
        "version": "2.5",
        "primary_run_label": "NTSMR-2.5-claude-sonnet-4-6-low",
        "runs": {
          "NTSMR-2.3-gemini-3.1-pro-preview": {
            "pipeline_version": "2.3",
            "backend": "gemini",
            "model": "gemini-3.1-pro-preview",
            "scores": {
              "time_linearity": 0.85,
              "pacing_velocity": 0.85,
              "threat_scale": 0.8,
              "protagonist_fate": 0.85,
              "conflict_style": 0.85,
              "price_type": 0.95
            },
            "score_space": "site-v1"
          },
          "NTSMR-2.3-claude-sonnet-4-6-low": {
            "pipeline_version": "2.3",
            "backend": "claude",
            "model": "claude-sonnet-4-6",
            "scores": {
              "time_linearity": 0.72,
              "pacing_velocity": 0.74,
              "threat_scale": 0.78,
              "protagonist_fate": 0.65,
              "conflict_style": 0.71,
              "price_type": 0.82
            },
            "score_space": "site-v1",
            "reasoning_effort": "low"
          },
          "NTSMR-2.4-claude-sonnet-4-6-low": {
            "pipeline_version": "2.4",
            "backend": "claude",
            "model": "claude-sonnet-4-6",
            "scores": {
              "time_linearity": 0.75,
              "pacing_velocity": 0.55,
              "threat_scale": 0.6,
              "protagonist_fate": 0.7,
              "conflict_style": 0.7,
              "price_type": 0.75
            },
            "score_space": "site-v1",
            "reasoning_effort": "low"
          },
          "NTSMR-2.5-claude-sonnet-4-6-low": {
            "pipeline_version": "2.5",
            "backend": "claude",
            "model": "claude-sonnet-4-6",
            "scores": {
              "time_linearity": 0.75,
              "pacing_velocity": 0.78,
              "threat_scale": 0.55,
              "protagonist_fate": 0.75,
              "conflict_style": 0.82,
              "price_type": 0.82
            },
            "score_space": "site-v1",
            "reasoning_effort": "low"
          },
          "NTSMR-2.5-balanced-glm-5+deepseek-v3.2": {
            "pipeline_version": "2.5",
            "backend": "openrouter",
            "model": "balanced-routing",
            "scores": {
              "time_linearity": 0.3,
              "pacing_velocity": 0.75,
              "threat_scale": 0.55,
              "protagonist_fate": 0.6,
              "conflict_style": 0.8,
              "price_type": 0.8
            },
            "score_space": "site-v1",
            "score_only": true,
            "source_run_label": "NTSMR-2.5-claude-sonnet-4-6-low"
          }
        }
      },
      "todorov_stages": {
        "equilibrium": "Across the collection, stable starting conditions vary by story: Hillalum lives as an Elamite miner in a world where the Tower of Babylon is a generations-long communal project accepted as pious labor; Renee pursues mathematical research within the assumed consistency of formal arithmetic; Louise conducts linguistic fieldwork with heptapods under the assumption that language encodes sequential thought; Stratton practices nomenclature in a society where automata-naming sustains industry and reproduction; Neil Fisk lives a mundane secular life as a building superintendent, neither loving nor blaming God; Tamera Lyons attends Pembleton with calliagnosia as an unremarkable personal condition.",
        "disruption": "Each story's equilibrium is shattered by an irruption of the impossible or catastrophic: the vault of heaven releases a torrent that traps Hillalum behind a sealed stone door; Renee discovers a proof that arithmetic is formally inconsistent, undermining the foundation of mathematics; the heptapods depart Earth entirely, leaving the looking glasses inert and all research duplicated; the angel Nathanael's visitation kills Sarah Fisk with flying glass; Reynolds reveals the destruct-command already planted in the narrator's mind; the NCA campaign shifts campus opinion on calliagnosia and Garrett ends his relationship with Tamera.",
        "recognition": "Recognition arrives at distinct moments: Hillalum discovers the vault is featureless granite with no sluice gates, then the water flood confirms he is cosmologically lost; Renee demonstrates to Carl that 1 equals 2 with no error to find, and Fabrisi and Callahan both confirm it; Louise learns that heptapod writing is fully semasiographic and nonlinear, forcing a realization that their cognition is structured differently from human thought; Neil recognizes that Heaven's light is a loophole that could grant reunion with Sarah; the narrator comprehends Reynolds's Word and dissolves; Tamera notices the etymology linking beauty to enchantment and begins strategizing.",
        "repair": "Repair attempts take divergent forms: Hillalum survives the flood and follows the tunnel back to emerge somewhere on the exterior of the tower; Renee steps away from mathematics, acknowledging it is merely empirical; Stratton incorporates Roth's epithet into a self-sustaining euonym that would free reproduction from governmental control; Neil pursues Heaven's light despite near-certain death and damnation; Tamera uses makeup software to look her best on a video call with Garrett, rekindling his interest; the campus vote on calliagnosia proceeds as an institutional repair attempt against lookism.",
        "new_equilibrium": "The new equilibria are uniformly altered and often ironic: Hillalum emerges from the vault back onto the Earth, learning the world is a closed sphere and the tower a futile loop — the cosmos is whole but not penetrable; Renee concludes mathematics is empirical and meaningless as formal theory and steps away; the heptapods leave nothing new, and Louise retains only the foreknowledge of her daughter's death; Neil is confirmed to be in Hell, beyond God's awareness, yet his unconditional love for God persists unchanged; Stratton envisions humanity as a self-sustaining vehicle for the name across generations; the documentary ends with calliagnosia framed as a guard against media manipulation, its social outcome unresolved."
      },
      "characters": [
        {
          "name": "Kudda",
          "slug": "kudda",
          "aliases": [],
          "role": "Cart puller on the tower",
          "summary": "A worker who lives on the tower and has no desire to return to earth."
        },
        {
          "name": "Alitum",
          "slug": "alitum",
          "aliases": [],
          "role": "Kudda's wife",
          "summary": "Lives on the tower with Kudda and is content to never visit Babylon."
        },
        {
          "name": "Hillalum",
          "slug": "hillalum",
          "aliases": [],
          "role": "Miner",
          "summary": "An Elamite miner ascending the Tower of Babylon, who experiences terror, doubt, and near-drowning when a reservoir is breached."
        },
        {
          "name": "Damqiya",
          "slug": "damqiya",
          "aliases": [],
          "role": "Miner",
          "summary": "A fellow miner trapped with Hillalum in the flooding tunnels."
        },
        {
          "name": "Ahuni",
          "slug": "ahuni",
          "aliases": [],
          "role": "Miner",
          "summary": "A fellow miner trapped with Hillalum who desperately searches for a way to open the sliding stone door."
        },
        {
          "name": "Greco",
          "slug": "greco",
          "aliases": [],
          "role": "Narrator",
          "summary": "A person whose intelligence and perception are exponentially expanding after receiving experimental hormone K injections, leading him into a metaprogramming war with another enhanced individual."
        },
        {
          "name": "Shea",
          "slug": "shea",
          "aliases": [],
          "role": "Doctor",
          "summary": "A doctor consulting with the CIA to guess Greco's whereabouts."
        },
        {
          "name": "Connie Perritt",
          "slug": "connie-perritt",
          "aliases": [
            "Connie"
          ],
          "role": "Acquaintance of Greco",
          "summary": "Someone Greco was seeing last year, now used by the CIA as bait."
        },
        {
          "name": "Reynolds",
          "slug": "reynolds",
          "aliases": [],
          "role": "Antagonist",
          "summary": "Another enhanced individual with superior cognitive abilities who wants to establish a global network of influence to save normals."
        },
        {
          "name": "Renee",
          "slug": "renee",
          "aliases": [
            "Mrs. Norwood"
          ],
          "role": "Mathematician",
          "summary": "A professor of mathematics who attempts suicide and is hospitalized in a psychiatric ward after discovering a fatal flaw in a mathematical formal system."
        },
        {
          "name": "Mrs. Rivas",
          "slug": "mrs-rivas",
          "aliases": [],
          "role": "Patient",
          "summary": "A manipulative patient in the psychiatric ward who frequently makes gestures to draw attention."
        },
        {
          "name": "Carl",
          "slug": "carl",
          "aliases": [],
          "role": "Biologist, Renee's husband",
          "summary": "Renee's partner who tries to understand her distress and rationally argue against her conclusion that math is broken."
        },
        {
          "name": "Fabrisi",
          "slug": "fabrisi",
          "aliases": [],
          "role": "Colleague",
          "summary": "A colleague of Renee's who reviews her mathematical formal system but fails to find any error in it."
        },
        {
          "name": "Callahan",
          "slug": "callahan",
          "aliases": [],
          "role": "Colleague",
          "summary": "A colleague from Berkeley who is examining Renee's work to find an error in her fundamental and disturbing formalism."
        },
        {
          "name": "Louise Banks",
          "slug": "louise-banks",
          "aliases": [
            "Louise",
            "Mom",
            "Dr. Banks"
          ],
          "role": "Linguist and mother",
          "summary": "A linguist recruited by the military to decode the heptapod language. She experiences her daughter's entire life non-linearly as a result of learning the alien language."
        },
        {
          "name": "Gary Donnelly",
          "slug": "gary-donnelly",
          "aliases": [
            "Gary",
            "Dr. Gary Donnelly",
            "your dad"
          ],
          "role": "Physicist",
          "summary": "A physicist working with Louise to understand the aliens' scientific frameworks. He helps Louise understand Fermat's principle and teleological physics."
        },
        {
          "name": "Colonel Weber",
          "slug": "colonel-weber",
          "aliases": [],
          "role": "Military commander",
          "summary": "The military official who approaches Louise to decode the alien language and oversees the looking-glass site."
        },
        {
          "name": "Flapper",
          "slug": "flapper",
          "aliases": [],
          "role": "Heptapod alien",
          "summary": "One of the heptapods interacting with Louise and Gary through the looking glass."
        },
        {
          "name": "Raspberry",
          "slug": "raspberry",
          "aliases": [],
          "role": "Heptapod alien",
          "summary": "A heptapod cooperating with the humans to teach them their semasiographic language."
        },
        {
          "name": "Burghart",
          "slug": "burghart",
          "aliases": [],
          "role": "Linguist/Translator",
          "summary": "A linguist stationed at the Ft. Worth looking glass acting as a translator for a diplomatic negotiator."
        },
        {
          "name": "Stratton",
          "slug": "stratton",
          "aliases": [
            "Robert",
            "Mr. Stratton"
          ],
          "role": "Nomenclator",
          "summary": "A nomenclator working to animate organic matter using names. He realizes he can use an autonym to enable humanity to reproduce lexically and avert extinction."
        },
        {
          "name": "Lionel",
          "slug": "lionel",
          "aliases": [],
          "role": "Robert's friend",
          "summary": "Robert's friend from school who conducts secretive experiments in a converted toolshed laboratory."
        },
        {
          "name": "Master Trevelyan",
          "slug": "master-trevelyan",
          "aliases": [],
          "role": "Teacher",
          "summary": "A master at Cheltenham school who teaches the boys natural philosophy and the doctrine of names."
        },
        {
          "name": "Langdale",
          "slug": "langdale",
          "aliases": [],
          "role": "Student",
          "summary": "A bumbling student at Cheltenham school."
        },
        {
          "name": "Thorburn",
          "slug": "thorburn",
          "aliases": [],
          "role": "Student",
          "summary": "A knowledgeable student at Cheltenham who correctly recites the doctrine of names."
        },
        {
          "name": "Moore",
          "slug": "moore",
          "aliases": [],
          "role": "Journeyman sculptor",
          "summary": "A journeyman assisting Stratton by fashioning clay bodies for automata to test his names."
        },
        {
          "name": "Master Willoughby",
          "slug": "master-willoughby",
          "aliases": [
            "Harold Willoughby"
          ],
          "role": "Master Sculptor",
          "summary": "A Master Sculptor First-Degree at the Coade Manufactory whom Stratton consults regarding a reusable piece mold for his new automaton's hands."
        },
        {
          "name": "Lord Fieldhurst",
          "slug": "lord-fieldhurst",
          "aliases": [
            "Fieldhurst",
            "the earl"
          ],
          "role": "Researcher",
          "summary": "An aristocrat who shows Stratton the megafoetus experiments and explains the impending sterility facing the human race."
        },
        {
          "name": "Dr. Ashbourne",
          "slug": "dr-ashbourne",
          "aliases": [
            "Ashbourne"
          ],
          "role": "Nomenclator",
          "summary": "A researcher who theorizes that lexical order can induce thermodynamic order in unfertilized ova to animate organic matter."
        },
        {
          "name": "Neil Fisk",
          "slug": "neil-fisk",
          "aliases": [
            "Sarah",
            "Neil"
          ],
          "role": "Protagonist / Grieving husband",
          "summary": "A man born with a congenital leg abnormality whose wife is killed by an angel. He struggles to genuinely love God in order to be reunited with her, ultimately achieving this but being sent to Hell anyway."
        },
        {
          "name": "Janice Reilly",
          "slug": "janice-reilly",
          "aliases": [
            "Janice"
          ],
          "role": "Evangelist / Light-seeker",
          "summary": "Born legless due to an angelic visitation, she viewed her condition as a divine gift until she witnessed Heaven's light, lost her eyes, and began preaching about God's beauty."
        },
        {
          "name": "Ethan",
          "slug": "ethan",
          "aliases": [],
          "role": "Preacher / Visitation witness",
          "summary": "A former librarian who witnesses a visitation and actively seeks his divine calling. He witnesses Neil's damnation and becomes a preacher focused on God's lack of justice."
        },
        {
          "name": "Nathanael",
          "slug": "nathanael",
          "aliases": [],
          "role": "Angel",
          "summary": "An angel whose visitation in a downtown shopping district causes miracles and casualties, including the death of Sarah Fisk."
        },
        {
          "name": "Tamera Lyons",
          "slug": "tamera-lyons",
          "aliases": [],
          "role": "Student narrator",
          "summary": "A student who recently had her calliagnosia turned off, navigating her newfound self-image, realizing she is pretty, and trying to reconnect with her ex-boyfriend Garrett."
        },
        {
          "name": "Joseph Weingartner",
          "slug": "joseph-weingartner",
          "aliases": [],
          "role": "Expert",
          "summary": "An expert explaining the mechanics of the neurostat drug, how it induces conditions like calliagnosia, and the limitations of mind programming."
        },
        {
          "name": "Maria deSouza",
          "slug": "maria-desouza",
          "aliases": [],
          "role": "Student representative / Advocate",
          "summary": "Advocates for the use of calliagnosia on campus, explaining that SEE is offering it to students and arguing that it improves social interactions."
        },
        {
          "name": "Ina",
          "slug": "ina",
          "aliases": [],
          "role": "Tamera's roommate",
          "summary": "Tamera's roommate who teaches her how to apply makeup."
        },
        {
          "name": "Jeff Winthrop",
          "slug": "jeff-winthrop",
          "aliases": [],
          "role": "3rd-year student",
          "summary": "Argues in a debate against calliagnosia, claiming that education, not blindness, is the answer."
        },
        {
          "name": "Adesh Singh",
          "slug": "adesh-singh",
          "aliases": [],
          "role": "3rd-year student",
          "summary": "Discusses the strategy to pass the calliagnosia initiative by leveraging anger against advertisers and the National Calliagnosia Association."
        },
        {
          "name": "Walter Lambert",
          "slug": "walter-lambert",
          "aliases": [],
          "role": "President of the National Calliagnosia Association",
          "summary": "Gives a speech at Pembleton comparing modern, artificially enhanced beauty to cocaine."
        },
        {
          "name": "Alex Bibescu",
          "slug": "alex-bibescu",
          "aliases": [],
          "role": "Professor of religious studies",
          "summary": "A professor at Pembleton who argues that the calliagnosia debate reflects a deep-seated cultural ambivalence about the body rooted in monotheism."
        },
        {
          "name": "Anton",
          "slug": "anton",
          "aliases": [],
          "role": "Teaching Assistant",
          "summary": "A T.A. in the History of Ideas class who compares beauty to magic spells and enchantment."
        },
        {
          "name": "Garrett",
          "slug": "garrett",
          "aliases": [],
          "role": "Tamera's ex-boyfriend",
          "summary": "Tamera's ex-boyfriend who attends Northrop and does not have calliagnosia; Tamera hopes to rekindle their relationship."
        },
        {
          "name": "Daniel Taglia",
          "slug": "daniel-taglia",
          "aliases": [],
          "role": "Professor of comparative literature",
          "summary": "A professor at Pembleton who adamantly opposes calliagnosia, calling it political correctness run amok."
        },
        {
          "name": "Marc Esposito",
          "slug": "marc-esposito",
          "aliases": [],
          "role": "4th-year student at Waterston College",
          "summary": "A student vehemently opposed to calliagnosia because he does not want to lower his aesthetic standards for dating."
        },
        {
          "name": "Cathy Minami",
          "slug": "cathy-minami",
          "aliases": [],
          "role": "3rd-year student",
          "summary": "A student who argues that calliagnosia is a patriarchal strategy to suppress female sexuality and demonize women who possess beauty."
        },
        {
          "name": "Lawrence Sutton",
          "slug": "lawrence-sutton",
          "aliases": [],
          "role": "4th-year student",
          "summary": "A student who got calliagnosia years ago to free himself from the distracting pull of advertising."
        },
        {
          "name": "Lori Harber",
          "slug": "lori-harber",
          "aliases": [],
          "role": "3rd-year student at Maxwell College",
          "summary": "A student who advocates 'radical ugly' as a form of protest, going so far as having her nose surgically removed."
        }
      ],
      "frameworks_mapped": [
        "Protocol Fiction Mapping",
        "Actantial Model",
        "Todorov's Equilibrium",
        "The Freytag Pyramid",
        "Propp's Morphology",
        "Genette's Narrative",
        "The Monomyth",
        "Dan Harmon",
        "Save the Cat",
        "Kishōtenketsu",
        "The Three-Act Structure"
      ],
      "score_reliability": {
        "state": "contested",
        "threshold": 0.2,
        "runs_total": 5,
        "versions_compared": [
          "2.5"
        ],
        "max_spread": 0.45,
        "contested": [
          {
            "axis": "time_linearity",
            "version": "2.5",
            "spread": 0.45,
            "low": {
              "label": "NTSMR-2.5-balanced-glm-5+deepseek-v3.2",
              "model": "balanced-routing",
              "effort": "?",
              "value": 0.3
            },
            "high": {
              "label": "NTSMR-2.5-claude-sonnet-4-6-low",
              "model": "claude-sonnet-4-6",
              "effort": "low",
              "value": 0.75
            }
          }
        ]
      }
    },
    {
      "slug": "ted_chiang_story_of_your_life",
      "title": "Story of Your Life",
      "author": "Ted Chiang",
      "year": 2002,
      "medium": "short_story",
      "genre_tags": [],
      "tropes": [],
      "quadrant_scores": {
        "time_linearity": 0.9,
        "pacing_velocity": 0.75,
        "threat_scale": 0.3,
        "protagonist_fate": 0.6,
        "conflict_style": 0.9,
        "price_type": 0.85
      },
      "provenance": {
        "analysis_run": "NTSMR-2.5-claude-sonnet-4-6-low",
        "analysis_body_sha256": "47abee11db4a703395421933c86837ef2d9a70c0b17d2ca1a08843b27a22917a",
        "synthesis": {
          "path": "nartopo-tools/artifacts/ted_chiang_story_of_your_life.md.ntsmr-2-5-claude-sonnet-4-6-low.synthesis.json",
          "sha256": "783543e42446e294898313c7b0c62fdde2bcbb8bfc1f7285fbcd2119c95e072c"
        },
        "report": {
          "path": "nartopo-tools/artifacts/ted_chiang_story_of_your_life.md.ntsmr-2-5-claude-sonnet-4-6-low.report.json",
          "sha256": "a34d0d5094d5d6ec77b650678b2bd10786a0a7dc6acb6649710afad681ea991f"
        },
        "source": {
          "path": "Ted Chiang/Story of Your Life.txt",
          "sha256": "c1b1725b8c9f291a27ba33110b908023bb6757c369a657c76f424491658ab5de",
          "digest_observed_at": "2026-09-09",
          "digest_at_analysis_run": null,
          "edition": null,
          "edition_status": "unresolved"
        },
        "pipeline_revision_at_run": null,
        "verification": {
          "source": "unverified",
          "human_review": "unreviewed",
          "bibliography": "unverified"
        },
        "issues": [],
        "todorov_status": "recovered-from-synthesis",
        "work_identity": {
          "title": "Story of Your Life",
          "author": "Ted Chiang",
          "year": 2002
        }
      },
      "ntsmr": {
        "version": "2.5",
        "primary_run_label": "NTSMR-2.5-claude-sonnet-4-6-low",
        "runs": {
          "NTSMR-2.3-gemini-3.1-pro-preview": {
            "pipeline_version": "2.3",
            "backend": "gemini",
            "model": "gemini-3.1-pro-preview",
            "scores": {
              "time_linearity": 1,
              "pacing_velocity": 0.9,
              "threat_scale": 0.8,
              "protagonist_fate": 1,
              "conflict_style": 0.95,
              "price_type": 0.9
            },
            "score_space": "site-v1"
          },
          "NTSMR-2.3-claude-sonnet-4-6-low": {
            "pipeline_version": "2.3",
            "backend": "claude",
            "model": "claude-sonnet-4-6",
            "scores": {
              "time_linearity": 0.95,
              "pacing_velocity": 0.85,
              "threat_scale": 0.45,
              "protagonist_fate": 0.9,
              "conflict_style": 0.85,
              "price_type": 0.95
            },
            "score_space": "site-v1",
            "reasoning_effort": "low"
          },
          "NTSMR-2.4-claude-sonnet-4-6-low": {
            "pipeline_version": "2.4",
            "backend": "claude",
            "model": "claude-sonnet-4-6",
            "scores": {
              "time_linearity": 0.85,
              "pacing_velocity": 0.75,
              "threat_scale": 0.35,
              "protagonist_fate": 0.6,
              "conflict_style": 0.8,
              "price_type": 0.7
            },
            "score_space": "site-v1",
            "reasoning_effort": "low"
          },
          "NTSMR-2.5-claude-sonnet-4-6-low": {
            "pipeline_version": "2.5",
            "backend": "claude",
            "model": "claude-sonnet-4-6",
            "scores": {
              "time_linearity": 0.9,
              "pacing_velocity": 0.75,
              "threat_scale": 0.3,
              "protagonist_fate": 0.6,
              "conflict_style": 0.9,
              "price_type": 0.85
            },
            "score_space": "site-v1",
            "reasoning_effort": "low"
          },
          "NTSMR-2.5-balanced-glm-5+deepseek-v3.2": {
            "pipeline_version": "2.5",
            "backend": "openrouter",
            "model": "balanced-routing",
            "scores": {
              "time_linearity": 0.9,
              "pacing_velocity": 0.75,
              "threat_scale": 0.3,
              "protagonist_fate": 0.6,
              "conflict_style": 0.9,
              "price_type": 0.85
            },
            "score_space": "site-v1",
            "score_only": true,
            "source_run_label": "NTSMR-2.5-claude-sonnet-4-6-low"
          }
        }
      },
      "todorov_stages": {
        "equilibrium": "Louise exists within the bounded world of sequential human cognition and academic linguistics. The social order is stable: she has a career, a marriage to Gary, and an ordinary linear experience of time moving from past through present toward an unknown future.",
        "disruption": "The heptapods arrive and Louise is recruited to the looking-glass contact operation. The first physical appearance of a heptapod through the portal shocks Louise and initiates a process that will permanently alter her cognitive architecture. More fundamentally, her immersion in Heptapod B begins dismantling the sequential, causal framework through which she has always processed reality.",
        "recognition": "Louise realizes that Heptapod B is not merely a different language but encodes a wholly different mode of consciousness — simultaneous rather than sequential. As she achieves fluency, she begins experiencing thought as graphically simultaneous rather than phonologically linear. She recognizes that the Book of Ages paradox — whether foreknowledge is compatible with free will — does not apply to heptapod cognition because their freedom operates in an entirely different context where neither free will nor determinism is the relevant frame. She understands she is being changed at a foundational level.",
        "repair": "Louise does not attempt to reverse her cognitive transformation. Instead, she integrates it — continuing to practice Heptapod B, learning to hold her daughter's entire life simultaneously in awareness, and choosing to say yes to Gary's question about making a baby with full knowledge of what that life will contain, including its end. The narrative itself enacts the repair: Louise pays close attention to every detail of the moonlit patio moment, choosing to enact a future she already knows.",
        "new_equilibrium": "Louise inhabits a permanently altered state — a simultaneous, non-linear consciousness that cannot be unlearned even after the heptapods depart and the looking glasses go dark. She will continue practicing the heptapod languages, but will never progress further. Her new equilibrium is one of bittersweet omniscience: she knows her daughter's life, her estrangement from Gary, and her own future, and she must still live through each moment sequentially even as she holds them all at once. The heptapods are gone without explanation; the world is otherwise unchanged, but Louise is not."
      },
      "characters": [
        {
          "name": "Louise Banks",
          "slug": "louise-banks",
          "aliases": [
            "I",
            "Mom",
            "Dr. Banks"
          ],
          "role": "Narrator and Linguist",
          "summary": "A linguist recruited by the military to establish communication with the heptapods. She marries Gary, becomes a mother to the addressed daughter, and begins to experience time simultaneously after learning Heptapod B."
        },
        {
          "name": "Gary Donnelly",
          "slug": "gary-donnelly",
          "aliases": [
            "Your father",
            "Your dad",
            "Dr. Gary Donnelly"
          ],
          "role": "Physicist",
          "summary": "A physicist working alongside Louise on the alien contact project. He marries Louise, fathers her daughter, and helps decipher the heptapods' physics."
        },
        {
          "name": "The Daughter",
          "slug": "the-daughter",
          "aliases": [
            "You"
          ],
          "role": "Addressee",
          "summary": "Louise and Gary's child. Her life—from conception, to infancy, childhood antics, teenage rebellion, and untimely death at twenty-five—is foreseen and directly addressed by her mother."
        },
        {
          "name": "Colonel Weber",
          "slug": "colonel-weber",
          "aliases": [],
          "role": "Military Commander",
          "summary": "A pragmatic military officer overseeing the human-heptapod contact operation, cautious about information exchange and skeptical of academic methods."
        },
        {
          "name": "Burghart",
          "slug": "burghart",
          "aliases": [],
          "role": "Linguist",
          "summary": "A linguist from the Ft. Worth looking glass site who has also gained proficiency in Heptapod B."
        },
        {
          "name": "Hossner",
          "slug": "hossner",
          "aliases": [],
          "role": "Government Official",
          "summary": "A paranoid official who suspects the heptapods are using tactical maneuvers to hide tradeable information."
        },
        {
          "name": "Raspberry",
          "slug": "raspberry",
          "aliases": [],
          "role": "Alien",
          "summary": "One of the radially symmetric heptapods interacting with the humans through the looking glass during the final exchanges."
        },
        {
          "name": "Nelson",
          "slug": "nelson",
          "aliases": [],
          "role": "Future Partner",
          "summary": "A man Louise dates and eventually lives with in a farmhouse after her marriage to Gary ends."
        }
      ],
      "frameworks_mapped": [
        "Protocol Fiction Mapping",
        "Actantial Model",
        "Todorov's Equilibrium",
        "The Freytag Pyramid",
        "Propp's Morphology",
        "Genette's Narrative",
        "The Monomyth",
        "Dan Harmon",
        "Save the Cat",
        "Kishōtenketsu",
        "The Three-Act Structure",
        "Lévi-Strauss's Binary Oppositions",
        "Cognitive Estrangement",
        "Bakhtin's Chronotope",
        "Aristotelian Poetics",
        "Jungian Archetypal Analysis",
        "Genette's Transtextuality"
      ],
      "score_reliability": {
        "state": "replicated-agree",
        "threshold": 0.2,
        "runs_total": 5,
        "versions_compared": [
          "2.5"
        ],
        "max_spread": 0,
        "contested": []
      }
    },
    {
      "slug": "robert_a_heinlein_stranger_in_a_strange_land",
      "title": "Stranger in a Strange Land",
      "author": "Robert A. Heinlein",
      "year": 1961,
      "medium": "book",
      "genre_tags": [
        "sf",
        "social sf"
      ],
      "tropes": [],
      "quadrant_scores": {
        "time_linearity": 0.35,
        "pacing_velocity": 0.72,
        "threat_scale": 0.75,
        "protagonist_fate": 0.55,
        "conflict_style": 0.7,
        "price_type": 0.65
      },
      "provenance": {
        "analysis_run": "NTSMR-2.5-claude-sonnet-4-6-low",
        "analysis_body_sha256": "a8e21b23296a11d2863f0a55f0030c774bfee7711669a553656374bb1c9b2e13",
        "synthesis": {
          "path": "nartopo-tools/artifacts/robert_a_heinlein_stranger_in_a_strange_land.md.ntsmr-2-5-claude-sonnet-4-6-low.synthesis.json",
          "sha256": "771d89b99cb9d4bb3bfcf960586f87c2141379d2d57783ce93a6d96a117bc5e5"
        },
        "report": {
          "path": "nartopo-tools/artifacts/robert_a_heinlein_stranger_in_a_strange_land.md.ntsmr-2-5-claude-sonnet-4-6-low.report.json",
          "sha256": "2efb2777dc229f0ff44cb76a430b6aa645714d024d0647ea2e63e4b863513adb"
        },
        "source": {
          "path": "Robert A. Heinlein/Stranger in a Strange Land.txt",
          "sha256": "8c602c208aa98cba1f1a0f694f34d7103bd8ffb36c950c198385a9e192dcdbd6",
          "digest_observed_at": "2026-09-09",
          "digest_at_analysis_run": null,
          "edition": null,
          "edition_status": "unresolved"
        },
        "pipeline_revision_at_run": null,
        "verification": {
          "source": "unverified",
          "human_review": "unreviewed",
          "bibliography": "unverified"
        },
        "issues": [],
        "todorov_status": "recovered-from-synthesis",
        "work_identity": {
          "title": "Stranger in a Strange Land",
          "author": "Robert A. Heinlein",
          "year": 1961
        }
      },
      "ntsmr": {
        "version": "2.5",
        "primary_run_label": "NTSMR-2.5-claude-sonnet-4-6-low",
        "runs": {
          "NTSMR-2.3-claude-sonnet-4-6-low": {
            "pipeline_version": "2.3",
            "backend": "claude",
            "model": "claude-sonnet-4-6",
            "scores": {
              "time_linearity": 0.25,
              "pacing_velocity": 0.72,
              "threat_scale": 0.75,
              "protagonist_fate": 0.82,
              "conflict_style": 0.68,
              "price_type": 0.85
            },
            "score_space": "site-v1",
            "reasoning_effort": "low"
          },
          "NTSMR-2.4-claude-sonnet-4-6-low": {
            "pipeline_version": "2.4",
            "backend": "claude",
            "model": "claude-sonnet-4-6",
            "scores": {
              "time_linearity": 0.28,
              "pacing_velocity": 0.65,
              "threat_scale": 0.75,
              "protagonist_fate": 0.72,
              "conflict_style": 0.62,
              "price_type": 0.55
            },
            "score_space": "site-v1",
            "reasoning_effort": "low"
          },
          "NTSMR-2.5-claude-sonnet-4-6-low": {
            "pipeline_version": "2.5",
            "backend": "claude",
            "model": "claude-sonnet-4-6",
            "scores": {
              "time_linearity": 0.35,
              "pacing_velocity": 0.72,
              "threat_scale": 0.75,
              "protagonist_fate": 0.55,
              "conflict_style": 0.7,
              "price_type": 0.65
            },
            "score_space": "site-v1",
            "reasoning_effort": "low"
          },
          "NTSMR-2.5-balanced-glm-5+deepseek-v3.2": {
            "pipeline_version": "2.5",
            "backend": "openrouter",
            "model": "balanced-routing",
            "scores": {
              "time_linearity": 0.2,
              "pacing_velocity": 0.7,
              "threat_scale": 0.85,
              "protagonist_fate": 0.45,
              "conflict_style": 0.7,
              "price_type": 0.55
            },
            "score_space": "site-v1",
            "score_only": true,
            "source_run_label": "NTSMR-2.5-claude-sonnet-4-6-low"
          }
        }
      },
      "todorov_stages": {
        "equilibrium": "Earth's political order is stable, if grotesque: the Secretary General governs a unified world federation, the Fosterite church holds cultural sway, and the Mars expedition is a closed chapter of history. Valentine Michael Smith does not yet exist as a political or spiritual force on Earth.",
        "disruption": "Smith's return to Earth as the sole survivor of the Mars expedition — simultaneously a legal nonentity, a diplomatic sovereign under the Larkin Decision, and an alien intelligence in a human body — shatters the existing order. His arrival exposes the incompatibility of Martian and human epistemologies, triggers a government seizure, and reveals that Smith is heir to vast financial and political power no existing institution knows how to contain.",
        "recognition": "Jubal Harshaw grasps the full scope of the disruption when he experimentally confirms Smith's power of telekinetic annihilation and when Ben Caxton reveals the tangled legal stakes — the Larkin Decision, the inherited patents, the sovereign claim to Mars — forcing Jubal to devise a strategy to protect Smith from being absorbed or destroyed by the state.",
        "repair": "Jubal orchestrates a multi-front legal and media campaign: he invokes the Larkin Decision to declare Smith a sovereign, uses the threat of a press interview to outmaneuver Secretary General Douglas, performs a water-sharing ceremony to cement fraternal bonds, and ultimately offloads Smith's dangerous wealth to Douglas in exchange for political protection. Smith, for his part, undertakes years of acculturation and spiritual study before founding his own church and training initiates in Martian epistemology.",
        "new_equilibrium": "Smith is martyred by a mob incited by rival power blocs, but the Church of All Worlds survives, its members teleported to safety. Jubal ritually consumes broth made from Smith's remains and purchases the martyrdom site for a future shrine. In the novel's afterlife frame, Smith takes over celestial administration from Foster, becoming Archangel Michael — suggesting the disruption he introduced into human culture is permanent and cosmically ratified, even as Earth's institutions remain superficially intact."
      },
      "characters": [
        {
          "name": "Valentine Michael Smith",
          "slug": "valentine-michael-smith",
          "aliases": [
            "Man from Mars",
            "Mike",
            "Smith",
            "the Man from Mars",
            "V. M. Smith",
            "Michael",
            "Archangel Michael"
          ],
          "role": "protagonist/messiah",
          "summary": "Human raised by Martians; watches a Fosterite service, cannot grasp lying or religious pluralism, concludes he is not a man because he cannot laugh; out-of-body observes the police raid with empathic precision."
        },
        {
          "name": "Jill Boardman",
          "slug": "jill-boardman",
          "aliases": [
            "Nurse Boardman",
            "little one",
            "pretty foots",
            "Gillian",
            "Jill"
          ],
          "role": "Smith's protector and water-sister",
          "summary": "Nurse who has made brief contact with Smith; smuggled a surveillance device; cautiously feeds Ben information while maintaining professional cover; begins noticing anomalies that may locate Smith."
        },
        {
          "name": "Ben Caxton",
          "slug": "ben-caxton",
          "aliases": [
            "Ben"
          ],
          "role": "convert/narrator-within-story",
          "summary": "Syndicated columnist; has published a column challenging the administration's treatment of Smith; briefs Jill on Smith's legal and financial status; takes counter-surveillance precautions."
        },
        {
          "name": "van Tromp",
          "slug": "van-tromp",
          "aliases": [
            "Captain",
            "Skipper"
          ],
          "role": "Exposition vehicle / returning hero",
          "summary": "Reveals that the Mars colonists signed away Larkin rights before departure; discusses Mars colonization prospects and the Martians' indifference to human presence."
        },
        {
          "name": "Secretary General Douglas",
          "slug": "secretary-general-douglas",
          "aliases": [
            "Mr. Secretary General",
            "Joseph E. Douglas",
            "Mr. Secretary",
            "Douglas",
            "Joe Douglas",
            "Courthouse Joe",
            "Agnes Douglas"
          ],
          "role": "Political antagonist and negotiating partner",
          "summary": "Head of world government; outmaneuvered by Harshaw on press relations and sovereign protocol, ultimately signals agreement via a one-word note; accepts custodianship of Smith's wealth."
        },
        {
          "name": "Dr. Nelson",
          "slug": "dr-nelson",
          "aliases": [
            "Sven"
          ],
          "role": "Medical authority / minor opponent",
          "summary": "Notes Smith's anomalous metabolism; participates in the water brothers' lunch; gently challenges van Tromp's reticence about classified matters."
        },
        {
          "name": "Mahmoud",
          "slug": "mahmoud",
          "aliases": [
            "Stinky",
            "Dr. Mahmoud"
          ],
          "role": "Linguist and water-brother",
          "summary": "Translates Martian; defies seating protocol to sit with Smith; explains the untranslatability of 'grok' and the Martian view of Martian colonization to Jubal and the crew."
        },
        {
          "name": "Dr. Brush",
          "slug": "dr-brush",
          "aliases": [],
          "role": "Minor character / plot device",
          "summary": "Physician brought in to watch a patient in suite K-12; greets Jill with apparent urgency when she comes to inquire about the powered bed."
        },
        {
          "name": "Molly Wheelwright",
          "slug": "molly-wheelwright",
          "aliases": [],
          "role": "Minor character",
          "summary": "Wing dietician who alerts Jill to the anomaly of a charity patient suddenly occupying a luxury suite under a complex special diet."
        },
        {
          "name": "Jubal Harshaw",
          "slug": "jubal-harshaw",
          "aliases": [
            "Jubal",
            "Boss",
            "Doctor Harshaw",
            "Dr. Harshaw",
            "Doctor",
            "Counsellor",
            "Father"
          ],
          "role": "Protagonist's guardian and strategist",
          "summary": "Harshaw appears in the transition to Part Four monitoring news of Mike with dismay, and in dialogue explains Rodin's caryatid and the Little Mermaid to Ben as symbols resonant with Mike's nature."
        },
        {
          "name": "Madame Vesant",
          "slug": "madame-vesant",
          "aliases": [
            "Becky Vesey",
            "Allie"
          ],
          "role": "Minor / Thematic foil",
          "summary": "Astrologer who sincerely believes in her science; delivers a reading for Smith's horoscope that requires recalculating for a Martian birthplace, inadvertently giving Agnes sound political advice."
        },
        {
          "name": "Berquist",
          "slug": "berquist",
          "aliases": [
            "Gil Berquist",
            "Gilbert Berquist"
          ],
          "role": "Opponent / Government operative",
          "summary": "Government executive assistant who brought a gun to Ben's apartment and was among the two men Smith annihilated; Jubal identifies him as the operational link in the Smith cover-up."
        },
        {
          "name": "Anne",
          "slug": "anne",
          "aliases": [
            "Fair Witness"
          ],
          "role": "Fair Witness and secretary",
          "summary": "Harshaw's secretary and licensed Fair Witness; provides legally precise testimony that the box shrank rapidly rather than simply vanishing, lending official credibility to the experiment."
        },
        {
          "name": "Supreme Bishop Digby",
          "slug": "supreme-bishop-digby",
          "aliases": [
            "Reverend Doctor Daniel Digby",
            "Digby",
            "Junior",
            "Archangel Digby"
          ],
          "role": "Minor / Institutional figure",
          "summary": "Recently deceased Fosterite leader operating in the celestial frame; indignant at the suggestion Mike is an archangel; reassigned by Foster to a tripolaxic alien sector."
        },
        {
          "name": "Duke",
          "slug": "duke",
          "aliases": [
            "Cannibal"
          ],
          "role": "Handyman and water-brother",
          "summary": "Water-brother and Nest resident who explains circle progression and water-sharing customs to Ben, predicts Ben's permanent transformation."
        },
        {
          "name": "Larry",
          "slug": "larry",
          "aliases": [],
          "role": "Member of Harshaw's household",
          "summary": "Emerging from the pool; excited and confident in Jubal; water-brother whose loyalty Smith perceives empathically."
        },
        {
          "name": "Dorcas",
          "slug": "dorcas",
          "aliases": [],
          "role": "Member of Harshaw's household",
          "summary": "Guards Smith alongside Miriam; participates informally in the water ceremony context; fetches gin during the lunch discussion."
        },
        {
          "name": "Miriam",
          "slug": "miriam",
          "aliases": [],
          "role": "Member of Harshaw's household",
          "summary": "Participates in the water ceremony; helps guard Smith from reporters; shows ferocity defending his personal space."
        },
        {
          "name": "Captain Heinrich",
          "slug": "captain-heinrich",
          "aliases": [
            "Heinrich"
          ],
          "role": "Police antagonist",
          "summary": "Federation Special Service Bureau captain leading the raid on Harshaw's compound; forced to comply with Harshaw's procedural demands."
        },
        {
          "name": "LaRue",
          "slug": "larue",
          "aliases": [
            "Chief of Protocol"
          ],
          "role": "Protocol official",
          "summary": "Senior protocol officer who negotiates seating with Harshaw after junior officials fail; ultimately accommodates Harshaw's revised seating chart."
        },
        {
          "name": "Senator Boone",
          "slug": "senator-boone",
          "aliases": [
            "Bishop Senator Boone"
          ],
          "role": "Fosterite political operative",
          "summary": "Guides the group through the Tabernacle, explains Fosterite practices, and attempts to position himself beside Mike during the service."
        },
        {
          "name": "Major Bloch",
          "slug": "major-bloch",
          "aliases": [],
          "role": "S.S. officer",
          "summary": "Guards the hotel suite corridor; previously involved in raiding Harshaw's compound; now assigned protectively, to Jubal's sardonic amusement."
        },
        {
          "name": "Dr. Agnew",
          "slug": "dr-agnew",
          "aliases": [
            "Lieutenant Agnew"
          ],
          "role": "Lost crewman",
          "summary": "Junior medical officer with latent xenophobia who disappeared between two rocks on Mars, apparently destroyed by a Martian."
        },
        {
          "name": "Bradley",
          "slug": "bradley",
          "aliases": [],
          "role": "Government liaison",
          "summary": "Receives Jubal's hotel bill for routing through the Secretary General's office; handles logistics."
        },
        {
          "name": "Dawn Ardent",
          "slug": "dawn-ardent",
          "aliases": [
            "Dawn",
            "née Higgins"
          ],
          "role": "Fosterite convert/exotic dancer",
          "summary": "Second high priestess, physically near-identical to Jill; devoted admirer of Jubal who keeps a holographic portrait of him in the Nest's common room."
        },
        {
          "name": "Foster",
          "slug": "foster",
          "aliases": [
            "Archangel Foster",
            "Blessed Foster",
            "Reverend Foster"
          ],
          "role": "Deceased Fosterite founder",
          "summary": "Deceased founder of the Fosterite church; operates in the celestial frame as Digby's supervisor, defends Mike's possible angelic identity, and reassigns Digby to a distant sector."
        },
        {
          "name": "Patty Paiwonski",
          "slug": "patty-paiwonski",
          "aliases": [
            "Patty",
            "Aunt Patty",
            "Pat",
            "tattooed lady"
          ],
          "role": "actantial:helper",
          "summary": "Tattooed Fosterite and devoted Nest member who tends Jubal personally, provides psychic tracking of Mike during the confrontation, and is described as the most practically capable teleporter."
        },
        {
          "name": "Ruth",
          "slug": "ruth",
          "aliases": [
            "Ruthie"
          ],
          "role": "actantial:helper",
          "summary": "Plump, maternal Nest member and wife of Sam; recounts her own difficult conversion from jealous wife to priestess, then encourages Ben before his initiation ceremony."
        },
        {
          "name": "Sam",
          "slug": "sam",
          "aliases": [],
          "role": "Nest member/strategist",
          "summary": "Church member who recounts his cancer healing, debates long-term church strategy with Jubal, and plans continuation after Mike's death."
        },
        {
          "name": "Supreme Bishop Short",
          "slug": "supreme-bishop-short",
          "aliases": [],
          "role": "actantial:opponent",
          "summary": "Fosterite church leader who pressures the county attorney to prosecute Smith's congregation, framing Smith as an Antichrist."
        },
        {
          "name": "Bishop Oxtongue",
          "slug": "bishop-oxtongue",
          "aliases": [],
          "role": "actantial:opponent",
          "summary": "Preaches against Smith's church using Matthew 24:24 as text, careful to exempt established churches from his diatribe."
        },
        {
          "name": "Saul",
          "slug": "saul",
          "aliases": [],
          "role": "Nest member",
          "summary": "Member who debates with Sam the practical capital requirements for continuing the church after Mike's death."
        }
      ],
      "frameworks_mapped": [
        "Protocol Fiction Mapping",
        "Actantial Model",
        "Todorov's Equilibrium",
        "The Freytag Pyramid",
        "Propp's Morphology",
        "Genette's Narrative",
        "The Monomyth",
        "Dan Harmon",
        "Save the Cat",
        "Kishotenketsu",
        "The Three-Act Structure",
        "Levi-Strauss's Binary Oppositions",
        "Cognitive Estrangement",
        "Bakhtin's Chronotope",
        "Aristotelian Poetics",
        "Jungian Archetypal Analysis",
        "Genette's Transtextuality"
      ],
      "score_reliability": {
        "state": "replicated-agree",
        "threshold": 0.2,
        "runs_total": 4,
        "versions_compared": [
          "2.5"
        ],
        "max_spread": 0.15,
        "contested": []
      }
    },
    {
      "slug": "colin_greenland_take_back_plenty",
      "title": "Take Back Plenty",
      "author": "Colin Greenland",
      "year": 1990,
      "medium": "book",
      "genre_tags": [],
      "tropes": [],
      "quadrant_scores": {
        "time_linearity": 0.55,
        "pacing_velocity": 0.4,
        "threat_scale": 0.65,
        "protagonist_fate": 0.38,
        "conflict_style": 0.35,
        "price_type": 0.45
      },
      "baseline_quadrant_scores": {
        "time_linearity": 0.45,
        "pacing_velocity": 0.6,
        "threat_scale": 0.65,
        "protagonist_fate": 0.62,
        "conflict_style": 0.65,
        "price_type": 0.55
      },
      "provenance": {
        "analysis_run": "NTSMR-2.5-claude-sonnet-4-6-low",
        "analysis_body_sha256": "84244664e4a94f8a113d0c06907d1c3d806b65704e5d72a4afdb941340414d23",
        "synthesis": {
          "path": "nartopo-tools/artifacts/colin_greenland_take_back_plenty.md.ntsmr-2-5-claude-sonnet-4-6-low.synthesis.json",
          "sha256": "0c0a155c4a911b48e884d2c0b281fd78c532e06cfdb2b61d1eb3ba4901b057a1"
        },
        "report": {
          "path": "nartopo-tools/artifacts/colin_greenland_take_back_plenty.md.ntsmr-2-5-claude-sonnet-4-6-low.report.json",
          "sha256": "2e60f27f3947a47d81714b24fcbc8cf9b3fd5ef8ed80b310e9b4b6048757b426"
        },
        "source": {
          "path": "Colin Greenland/Take Back Plenty.txt",
          "sha256": "1b5f17a17c685b9402d81d9e72c5087f7a8a5925373bb4a799b7f21255d17cfd",
          "digest_observed_at": "2026-09-09",
          "digest_at_analysis_run": null,
          "edition": null,
          "edition_status": "unresolved"
        },
        "pipeline_revision_at_run": null,
        "verification": {
          "source": "unverified",
          "human_review": "unreviewed",
          "bibliography": "unverified"
        },
        "issues": [],
        "todorov_status": "recovered-from-synthesis",
        "work_identity": {
          "title": "Take Back Plenty",
          "author": "Colin Greenland",
          "year": 1990
        }
      },
      "ntsmr": {
        "version": "2.5",
        "primary_run_label": "NTSMR-2.5-claude-sonnet-4-6-low",
        "runs": {
          "NTSMR-2.4-claude-sonnet-4-6-low": {
            "pipeline_version": "2.4",
            "backend": "claude",
            "model": "claude-sonnet-4-6",
            "scores": {
              "time_linearity": 0.55,
              "pacing_velocity": 0.3,
              "threat_scale": 0.55,
              "protagonist_fate": 0.5,
              "conflict_style": 0.35,
              "price_type": 0.4
            },
            "score_space": "site-v1",
            "reasoning_effort": "low"
          },
          "NTSMR-2.5-claude-sonnet-4-6-low": {
            "pipeline_version": "2.5",
            "backend": "claude",
            "model": "claude-sonnet-4-6",
            "scores": {
              "time_linearity": 0.55,
              "pacing_velocity": 0.4,
              "threat_scale": 0.65,
              "protagonist_fate": 0.38,
              "conflict_style": 0.35,
              "price_type": 0.45
            },
            "score_space": "site-v1",
            "reasoning_effort": "low"
          },
          "NTSMR-2.5-balanced-glm-5+deepseek-v3.2": {
            "pipeline_version": "2.5",
            "backend": "openrouter",
            "model": "balanced-routing",
            "scores": {
              "time_linearity": 0.55,
              "pacing_velocity": 0.5,
              "threat_scale": 0.75,
              "protagonist_fate": 0.45,
              "conflict_style": 0.55,
              "price_type": 0.5
            },
            "score_space": "site-v1",
            "score_only": true,
            "source_run_label": "NTSMR-2.5-claude-sonnet-4-6-low"
          }
        }
      },
      "todorov_stages": {
        "equilibrium": "Tabitha Jute operates as an independent barge captain on Mars, financially precarious but self-sufficient, navigating the crowded social world of Plenty with her ship Alice Liddell and no entanglements beyond debt",
        "disruption": "Tabitha is drawn into transporting Contraband — Marco and the Zodiac Twins — under financial duress, triggering a cascade of violence, pursuit, and revelation: the Perks attack, her arrest, the hyperspace skip, the ambush by the Ugly Truth, and the crash on Venus expose that her ship carries a secret Frasque stardrive interface she knew nothing about, making her an unwitting pawn in an interstellar conspiracy",
        "recognition": "Xtasca reveals to Tabitha aboard the Citadel of Porcelain that Alice was fitted with a Frasque stardrive interface as part of a secret deal between the Temple and the Frasque, and that the war with Capella prevented delivery — Tabitha pieces together that she and her ship have been instruments of forces far beyond her control",
        "repair": "Tabitha fights through the chaos of the Perk uprising and the datastorm on Charon to retrieve Alice's persona plaque from the Guardians, inserts it into Plenty's systems, and speaks the password that awakens Alice into the stardrive ship — converting her companion AI from a destroyed barge into a vast new vessel capable of flight",
        "new_equilibrium": "Tabitha survives but in a radically altered state: the Alice Liddell is destroyed, Alice now inhabits the stardrive-equipped Plenty installation, Saskia has become her closest ally, and Tabitha herself has shed her role as a lone debt-ridden captain — the closing image of her crashed in hostile jungle with Saskia following her signals a new, unstable, but forward-moving existence"
      },
      "characters": [
        {
          "name": "Tabitha Jute",
          "slug": "tabitha-jute",
          "aliases": [
            "Captain Jute",
            "Tabs",
            "Captain",
            "Jute"
          ],
          "role": "Protagonist, captain of the Alice Liddell",
          "summary": "Independent barge captain of the Alice Liddell; weary, pragmatic, fiercely territorial about her ship; conducts tethered EVA to escape passengers and manages escalating crises from the criminal cargo to the hyperspace attack."
        },
        {
          "name": "Marco Metz",
          "slug": "marco-metz",
          "aliases": [
            "the gloveman",
            "the musician"
          ],
          "role": "Musician, leader of Contraband",
          "summary": "Musician and romantic interest; oscillates between bluster and vulnerability; reveals Hector was not simply a band member; kicked into the mud by Tabitha after touching her ship."
        },
        {
          "name": "Tal",
          "slug": "tal",
          "aliases": [
            "the bird",
            "the parrot",
            "Paraclete Pete"
          ],
          "role": "Sapient parrot, Contraband member",
          "summary": "A large green sapient parrot from Altecea who can sing; won by Marco in a poker game; serves as comic presence and inadvertent analogy for the captain-ship relationship."
        },
        {
          "name": "Alice",
          "slug": "alice",
          "aliases": [
            "Alice Liddell",
            "the Alice",
            "the persona",
            "Plenty",
            "BGK009059",
            "Persona 5N 179476.900"
          ],
          "role": "narrator/ship AI",
          "summary": "The ship's AI persona; first-person narrator in frame passages; describes herself as having been asleep during the Alice Liddell's years of neglect, and as intimately knowing both ship and captain."
        },
        {
          "name": "The Sergeant",
          "slug": "the-sergeant",
          "aliases": [],
          "role": "opponent",
          "summary": "A police sergeant with a huge square jaw and iron self-satisfaction who processes Tabitha's arrest and applies institutional authority with loathing restrained by boredom."
        },
        {
          "name": "Carlos",
          "slug": "carlos",
          "aliases": [],
          "role": "minor/contact",
          "summary": "Tabitha's parts contact who quotes her the prohibitive price of a Kobold axis lock crystal and suggests she try the flea market for Captain Frank."
        },
        {
          "name": "The Vespan driver",
          "slug": "the-vespan-driver",
          "aliases": [
            "the boatwoman"
          ],
          "role": "minor",
          "summary": "A morose Vespan canal boat driver who complains about the cold and the removal of Schiaparelli's dome."
        },
        {
          "name": "Heidi",
          "slug": "heidi",
          "aliases": [],
          "role": "minor/contact",
          "summary": "Bartender at the Moebius Strip who serves Tabitha and deflects her inquiries about available haulage work."
        },
        {
          "name": "Hannah Soo",
          "slug": "hannah-soo",
          "aliases": [
            "Hannah"
          ],
          "role": "Contraband's manager",
          "summary": "Cryogenically frozen woman communicating through a voicebox; acts as the band's booking agent and financial authority, grudgingly authorising payment to Tabitha."
        },
        {
          "name": "Xtasca",
          "slug": "xtasca",
          "aliases": [
            "the Cherub",
            "it",
            "she"
          ],
          "role": "Cherub, fifth member of Contraband",
          "summary": "A Cherub; bald, legless, hi-tech alien who bathes in plasma radiation, listens in on ship systems, diagnoses the axis lock crisis, and seizes the weapons console during the pirate attack."
        },
        {
          "name": "Dominic Wexler",
          "slug": "dominic-wexler",
          "aliases": [
            "Lieutenant Wexler",
            "Wex-ler"
          ],
          "role": "USAF liaison officer (flashback)",
          "summary": "Young, inexperienced Air Force lieutenant who accompanies Tabitha on a classified charter; struggles with freefall and is seduced by Tabitha at Pascal station."
        },
        {
          "name": "Trey",
          "slug": "trey",
          "aliases": [
            "Mr Trey"
          ],
          "role": "Eladeldi military agent (flashback)",
          "summary": "Silent, authoritative Eladeldi who commandeers Tabitha's cockpit and communications to deliver classified material to a Capellan system ship."
        },
        {
          "name": "Mogul",
          "slug": "mogul",
          "aliases": [
            "Mogul Zodiac"
          ],
          "role": "Zodiac Twin (male), acrobatic performer",
          "summary": "One of the Zodiac Twins; acrobatic performer and criminal; shares an intimate psychic closeness with Saskia; present through the skip and the pirate attack."
        },
        {
          "name": "Saskia",
          "slug": "saskia",
          "aliases": [
            "First Officer Zodiac",
            "Saskia Zodiac"
          ],
          "role": "Zodiac Twin (female), acrobatic performer",
          "summary": "One of the Zodiac Twins; deeply grieved by Xtasca's death and Mogul's disappearance; assists Tabitha in the cockpit during the Frasque crisis; addresses Tabitha with unexpected emotional directness."
        },
        {
          "name": "Tricarico Palynides",
          "slug": "tricarico-palynides",
          "aliases": [],
          "role": "secondary",
          "summary": "A bosun on the Resplendent Trogon, thin and amber-eyed; seduced young Tabitha with thril and invited her into a world of luxury and Frasque caravans."
        },
        {
          "name": "Captain Devereux",
          "slug": "captain-devereux",
          "aliases": [],
          "role": "secondary",
          "summary": "A famous broken pilot who lives in a fortress asteroid, domineering and sexually voracious; had a week-long intense relationship with Tabitha that ended with Tabitha's departure."
        },
        {
          "name": "Captain Frank",
          "slug": "captain-frank",
          "aliases": [],
          "role": "secondary",
          "summary": "An Altecean salvage captain aboard the Fat Mouth; hoarder, not lazy but disorganised; Tabitha worked under him around the time she met Tricarico."
        },
        {
          "name": "The Frasque",
          "slug": "the-frasque",
          "aliases": [
            "it"
          ],
          "role": "opponent",
          "summary": "Tall, woody-bodied alien species with crackling voices and stardrive technology; a dead specimen is discovered sealed in a cryogenic cylinder in the hold; Tabitha first encountered the species alive on the Resplendent Trogon."
        },
        {
          "name": "Kelso Pepper",
          "slug": "kelso-pepper",
          "aliases": [
            "Kelso",
            "Captain Pepper"
          ],
          "role": "antagonist",
          "summary": "Captain of the Ugly Truth; implied antagonist whose green ship drags the Alice out of hyperspace with a tractor beam and disables her with a pulse gun."
        },
        {
          "name": "Wenyk",
          "slug": "wenyk",
          "aliases": [
            "QM"
          ],
          "role": "secondary",
          "summary": "A balding Thrant quartermaster on the Clematis III, obsessively meticulous about stores; panics when confronted by the Frasque commander."
        },
        {
          "name": "Balthazar Plum",
          "slug": "balthazar-plum",
          "aliases": [
            "Balthazar dear"
          ],
          "role": "minor",
          "summary": "A Sanczau director encountered by Tabitha at a masked ball aboard the Clematis III; he had been playing the Moon in a masque."
        },
        {
          "name": "Tibor Lapham",
          "slug": "tibor-lapham",
          "aliases": [],
          "role": "minor",
          "summary": "Historical figure referenced in a book Tabitha is reading; a doomed young heir aboard the ghost ship Léonor Casares, whose mysterious fate has generated multiple competing theories."
        },
        {
          "name": "Tarko",
          "slug": "tarko",
          "aliases": [],
          "role": "opponent",
          "summary": "Pepper's Thrant crew member; physically restrains the captives and carries out captures."
        },
        {
          "name": "Kybernator Perlmutter",
          "slug": "kybernator-perlmutter",
          "aliases": [
            "Perlmutter"
          ],
          "role": "opponent",
          "summary": "Eladeldi authority figure aboard the Citadel; destroys the Ugly Truth without hesitation and defers to Brother Felix."
        },
        {
          "name": "Brother Felix",
          "slug": "brother-felix",
          "aliases": [
            "the Capellan",
            "Felix"
          ],
          "role": "antagonist",
          "summary": "Guardian of Charon; enormous, avuncular, sinister; hosts the captives at a picnic, destroys the Alice Liddell, and is ultimately killed when the Capellan parasite emerges from his head."
        },
        {
          "name": "Sister Veronica",
          "slug": "sister-veronica",
          "aliases": [],
          "role": "opponent",
          "summary": "Female Guardian at Charon; killed when the Capellan parasite erupts from her head during the Perk attack."
        },
        {
          "name": "Sister Marjorie",
          "slug": "sister-marjorie",
          "aliases": [],
          "role": "opponent",
          "summary": "Female Guardian at Charon; holds Alice's persona plaque in her pouch; Tabitha wrests it from her during the chaos."
        }
      ],
      "frameworks_mapped": [
        "Protocol Fiction Mapping",
        "Actantial Model",
        "Todorov's Equilibrium",
        "The Freytag Pyramid",
        "Propp's Morphology",
        "Genette's Narrative",
        "The Monomyth",
        "Dan Harmon",
        "Save the Cat",
        "Kishōtenketsu",
        "The Three-Act Structure",
        "Lévi-Strauss's Binary Oppositions",
        "Cognitive Estrangement",
        "Bakhtin's Chronotope",
        "Aristotelian Poetics",
        "Jungian Archetypal Analysis",
        "Genette's Transtextuality"
      ],
      "score_reliability": {
        "state": "contested",
        "threshold": 0.2,
        "runs_total": 3,
        "versions_compared": [
          "2.5"
        ],
        "max_spread": 0.2,
        "contested": [
          {
            "axis": "conflict_style",
            "version": "2.5",
            "spread": 0.2,
            "low": {
              "label": "NTSMR-2.5-claude-sonnet-4-6-low",
              "model": "claude-sonnet-4-6",
              "effort": "low",
              "value": 0.35
            },
            "high": {
              "label": "NTSMR-2.5-balanced-glm-5+deepseek-v3.2",
              "model": "balanced-routing",
              "effort": "?",
              "value": 0.55
            }
          }
        ]
      }
    },
    {
      "slug": "stanislaw_lem_tale_of_the_three_storytelling_machines_of_king_genius",
      "title": "Tale of the Three Storytelling Machines of King Genius",
      "author": "Stanislaw Lem",
      "year": 1965,
      "medium": "short_story",
      "genre_tags": [],
      "tropes": [],
      "quadrant_scores": {
        "time_linearity": 0.85,
        "pacing_velocity": 0.7,
        "threat_scale": 0.55,
        "protagonist_fate": 0.4,
        "conflict_style": 0.75,
        "price_type": 0.8
      },
      "provenance": {
        "analysis_run": "NTSMR-2.5-claude-sonnet-4-6-low",
        "analysis_body_sha256": "5b11b973bbb722d4b9da680b91b6db798cef544582699acb713088839f160e55",
        "synthesis": {
          "path": "nartopo-tools/artifacts/stanislaw_lem_tale_of_the_three_storytelling_machines_of_king_genius.md.ntsmr-2-5-claude-sonnet-4-6-low.synthesis.json",
          "sha256": "c1b6452179f583a4f025771fd49691ee44c26dc984d74e3b1ed064a933ed5dad"
        },
        "report": {
          "path": "nartopo-tools/artifacts/stanislaw_lem_tale_of_the_three_storytelling_machines_of_king_genius.md.ntsmr-2-5-claude-sonnet-4-6-low.report.json",
          "sha256": "c024fad24ec20e61af467f747d26cefdb66a5d0f6eabe3f313d75580bcfc2929"
        },
        "source": {
          "path": "Stanislaw Lem/Tale of the Three Storytelling Machines of King Genius.txt",
          "sha256": "45243258590c4098b67679888e829d2337e5ef7b0320350b6a4bdf86dad9511e",
          "digest_observed_at": "2026-09-09",
          "digest_at_analysis_run": null,
          "edition": null,
          "edition_status": "unresolved"
        },
        "pipeline_revision_at_run": null,
        "verification": {
          "source": "unverified",
          "human_review": "unreviewed",
          "bibliography": "unverified"
        },
        "issues": [],
        "todorov_status": "recovered-from-synthesis",
        "work_identity": {
          "title": "Tale of the Three Storytelling Machines of King Genius",
          "author": "Stanislaw Lem",
          "year": 1965
        }
      },
      "ntsmr": {
        "version": "2.5",
        "primary_run_label": "NTSMR-2.5-claude-sonnet-4-6-low",
        "runs": {
          "NTSMR-2.3-gemini-3.1-pro-preview": {
            "pipeline_version": "2.3",
            "backend": "gemini",
            "model": "gemini-3.1-pro-preview",
            "scores": {
              "time_linearity": 0.95,
              "pacing_velocity": 0.85,
              "threat_scale": 0.8,
              "protagonist_fate": 0.85,
              "conflict_style": 0.9,
              "price_type": 0.95
            },
            "score_space": "site-v1"
          },
          "NTSMR-2.3-claude-sonnet-4-6-low": {
            "pipeline_version": "2.3",
            "backend": "claude",
            "model": "claude-sonnet-4-6",
            "scores": {
              "time_linearity": 0.92,
              "pacing_velocity": 0.78,
              "threat_scale": 0.62,
              "protagonist_fate": 0.55,
              "conflict_style": 0.82,
              "price_type": 0.75
            },
            "score_space": "site-v1",
            "reasoning_effort": "low"
          },
          "NTSMR-2.4-claude-sonnet-4-6-low": {
            "pipeline_version": "2.4",
            "backend": "claude",
            "model": "claude-sonnet-4-6",
            "scores": {
              "time_linearity": 0.85,
              "pacing_velocity": 0.65,
              "threat_scale": 0.45,
              "protagonist_fate": 0.55,
              "conflict_style": 0.65,
              "price_type": 0.75
            },
            "score_space": "site-v1",
            "reasoning_effort": "low"
          },
          "NTSMR-2.5-claude-sonnet-4-6-low": {
            "pipeline_version": "2.5",
            "backend": "claude",
            "model": "claude-sonnet-4-6",
            "scores": {
              "time_linearity": 0.85,
              "pacing_velocity": 0.7,
              "threat_scale": 0.55,
              "protagonist_fate": 0.4,
              "conflict_style": 0.75,
              "price_type": 0.8
            },
            "score_space": "site-v1",
            "reasoning_effort": "low"
          },
          "NTSMR-2.5-balanced-glm-5+deepseek-v3.2": {
            "pipeline_version": "2.5",
            "backend": "openrouter",
            "model": "balanced-routing",
            "scores": {
              "time_linearity": 0.55,
              "pacing_velocity": 0.75,
              "threat_scale": 0.5,
              "protagonist_fate": 0.6,
              "conflict_style": 0.75,
              "price_type": 0.5
            },
            "score_space": "site-v1",
            "score_only": true,
            "source_run_label": "NTSMR-2.5-claude-sonnet-4-6-low"
          }
        }
      },
      "todorov_stages": {
        "equilibrium": "King Genius has withdrawn from rule to meditate in his cave, sustained by his small retinue who have long since exhausted their supply of new stories; the stable but melancholy state is one of philosophical isolation punctuated by recurring sorrow that only fresh narratives can relieve.",
        "disruption": "The retinue's stock of stories is depleted, leaving King Genius periodically without consolation; Synchronicus/Symphonicus is dispatched to commission three storytelling machines from Trurl, breaking the closed equilibrium of the cave's self-sufficient contemplative world.",
        "recognition": "Trurl and King Genius both understand the terms of the commission explicitly from the outset: the machines must supply involved-but-untroubled stories, cunning-and-entertaining stories, and profound-and-edifying stories — the recognition of the problem is immediate and structural rather than dramatized as a discovery.",
        "repair": "Trurl builds the three machines using a magic ring in three days, travels by photon phaeton to King Genius's cave, and the machines deliver a full night of nested tales spanning the Multitudians, the Legarians, Zipperupus's dream dissolution, Mymosh's accidental self-assembly, and Chlorian Theoreticus's volcanic testament — satisfying the commission across all three registers.",
        "new_equilibrium": "At dawn, King Genius declares the stories excellent and the machines perfect, then rewards Trurl not with gold but with health and life — the only gift he deems worthy of a bearer of bitter truths — and dismisses him in peace; the cave community now possesses three inexhaustible storytelling machines, permanently resolving the narrative drought."
      },
      "characters": [
        {
          "name": "Trurl",
          "slug": "trurl",
          "aliases": [
            "Great Constructor",
            "Fabulous Constructor"
          ],
          "role": "Constructor and Storyteller",
          "summary": "A brilliant constructor who loves gold, builds three storytelling machines in three days, and tells tales to kings."
        },
        {
          "name": "Stranger",
          "slug": "stranger",
          "aliases": [
            "the ring",
            "Synchronicus/Symphonicus"
          ],
          "role": "Emissary",
          "summary": "A spherical being who orders the storytelling machines on behalf of King Genius."
        },
        {
          "name": "King Genius",
          "slug": "king-genius",
          "aliases": [
            "the King"
          ],
          "role": "Monarch",
          "summary": "An old king living in a cave who espouses the Doctrine of Inaction and pays Trurl only with 'health and life' instead of gold."
        },
        {
          "name": "Multitudians",
          "slug": "multitudians",
          "aliases": [],
          "role": "Populous Race",
          "summary": "A boastful people whose sheer numbers and collective actions cause massive natural disasters."
        },
        {
          "name": "Vendetius Ultor of Amentia",
          "slug": "vendetius-ultor-of-amentia",
          "aliases": [
            "the bass"
          ],
          "role": "Professor and Avenger",
          "summary": "A professor of matter who leads his pupils in torturing Malaputz out of a sacred dedication to vengeance."
        },
        {
          "name": "Malaputz",
          "slug": "malaputz",
          "aliases": [
            "Malapusticus Pandemonius"
          ],
          "role": "Prisoner",
          "summary": "A red-doubleted scholar being savagely beaten in a cellar for allegedly bringing unhappiness to the Legarians."
        },
        {
          "name": "Trizivian Huncus",
          "slug": "trizivian-huncus",
          "aliases": [
            "last philosopher of Ninnica"
          ],
          "role": "Philosopher",
          "summary": "A half-rusted philosopher who debates complicositry and is ultimately loved to death by automated machines."
        },
        {
          "name": "King Thumbscrew the Third",
          "slug": "king-thumbscrew-the-third",
          "aliases": [
            "Thumbscrew"
          ],
          "role": "Listener",
          "summary": "A monarch who listens to Trurl's second machine and seeks amusement rather than wisdom."
        },
        {
          "name": "Zipperupus",
          "slug": "zipperupus",
          "aliases": [
            "King of the Partheginians, the Deutons, and the Profligoths"
          ],
          "role": "Monarch",
          "summary": "A greedy, cowardly, and lustful king who becomes trapped in a labyrinth of simulated dreams."
        },
        {
          "name": "Subtillion",
          "slug": "subtillion",
          "aliases": [
            "the Cybernerian",
            "Lord High Thaumaturge and Apothecary to the Throne"
          ],
          "role": "Mental Engineer and Saboteur",
          "summary": "An agent of the Sinistral Isomers who builds dream cabinets to trap King Zipperupus in his own illicit desires."
        },
        {
          "name": "Patriarch",
          "slug": "patriarch",
          "aliases": [
            "old sage",
            "snow-white patriarch"
          ],
          "role": "Simulated Sage",
          "summary": "An entity within a dream cabinet who attempts to permanently simulate and digitize Zipperupus to keep him with Ineffabelle."
        },
        {
          "name": "Mymosh the Selfbegotten",
          "slug": "mymosh-the-selfbegotten",
          "aliases": [
            "Mymosh"
          ],
          "role": "Accidental Entity",
          "summary": "A robot formed entirely by coincidence in a garbage dump, who believes he is the perfect center of creation."
        },
        {
          "name": "Chlorian Theoreticus",
          "slug": "chlorian-theoreticus",
          "aliases": [
            "Chlorian Theoreticus the Proph"
          ],
          "role": "Bitter Philosopher",
          "summary": "A brilliant but ignored sage who spends his dying days writing a testament of venomous curses against his future admirers."
        },
        {
          "name": "Klapaucius",
          "slug": "klapaucius",
          "aliases": [],
          "role": "Constructor",
          "summary": "Trurl's colleague who witnesses Chlorian's death and reads his terrible testament, paralyzed by indecision over whether to publish it."
        }
      ],
      "frameworks_mapped": [
        "Protocol Fiction Mapping",
        "Actantial Model",
        "Todorov's Equilibrium",
        "The Freytag Pyramid",
        "Propp's Morphology",
        "Genette's Narrative",
        "The Monomyth",
        "Dan Harmon",
        "Save the Cat",
        "Kishōtenketsu",
        "The Three-Act Structure",
        "Lévi-Strauss's Binary Oppositions",
        "Cognitive Estrangement",
        "Bakhtin's Chronotope",
        "Aristotelian Poetics",
        "Jungian Archetypal Analysis",
        "Genette's Transtextuality"
      ],
      "score_reliability": {
        "state": "contested",
        "threshold": 0.2,
        "runs_total": 5,
        "versions_compared": [
          "2.5"
        ],
        "max_spread": 0.3,
        "contested": [
          {
            "axis": "price_type",
            "version": "2.5",
            "spread": 0.3,
            "low": {
              "label": "NTSMR-2.5-balanced-glm-5+deepseek-v3.2",
              "model": "balanced-routing",
              "effort": "?",
              "value": 0.5
            },
            "high": {
              "label": "NTSMR-2.5-claude-sonnet-4-6-low",
              "model": "claude-sonnet-4-6",
              "effort": "low",
              "value": 0.8
            }
          },
          {
            "axis": "time_linearity",
            "version": "2.5",
            "spread": 0.3,
            "low": {
              "label": "NTSMR-2.5-balanced-glm-5+deepseek-v3.2",
              "model": "balanced-routing",
              "effort": "?",
              "value": 0.55
            },
            "high": {
              "label": "NTSMR-2.5-claude-sonnet-4-6-low",
              "model": "claude-sonnet-4-6",
              "effort": "low",
              "value": 0.85
            }
          },
          {
            "axis": "protagonist_fate",
            "version": "2.5",
            "spread": 0.2,
            "low": {
              "label": "NTSMR-2.5-claude-sonnet-4-6-low",
              "model": "claude-sonnet-4-6",
              "effort": "low",
              "value": 0.4
            },
            "high": {
              "label": "NTSMR-2.5-balanced-glm-5+deepseek-v3.2",
              "model": "balanced-routing",
              "effort": "?",
              "value": 0.6
            }
          }
        ]
      }
    },
    {
      "slug": "jorge_luis_borges_the_approach_to_al_mu_tasim",
      "title": "The Approach to Al-Mu'tasim",
      "author": "Jorge Luis Borges",
      "year": 1944,
      "medium": "short_story",
      "genre_tags": [],
      "tropes": [],
      "quadrant_scores": {
        "time_linearity": 0.45,
        "pacing_velocity": 0.8,
        "threat_scale": 0.25,
        "protagonist_fate": 0.55,
        "conflict_style": 0.88,
        "price_type": 0.85
      },
      "provenance": {
        "analysis_run": "NTSMR-2.5-claude-sonnet-4-6-low",
        "analysis_body_sha256": "ded7163da743bd1d58ec1bf01b6a46aa8a7e8b9ea93955075606045a1f6d4edb",
        "synthesis": {
          "path": "nartopo-tools/artifacts/jorge_luis_borges_the_approach_to_al_mu_tasim.md.ntsmr-2-5-claude-sonnet-4-6-low.synthesis.json",
          "sha256": "83313a60ee49a763cb3edafaad3a51ae2f33e6d619027ad78ee7f1df942c88a8"
        },
        "report": {
          "path": "nartopo-tools/artifacts/jorge_luis_borges_the_approach_to_al_mu_tasim.md.ntsmr-2-5-claude-sonnet-4-6-low.report.json",
          "sha256": "08eeaf75c707b6ec313729c125f31203ccdbec5155af1fa31a5fcb8d20820296"
        },
        "source": {
          "path": "Jorge Luis Borges/The Approach to Al-Mu'tasim.txt",
          "sha256": "cd030a5362e974bd3cba6d267b0ecfb87c9ed7d81b42d226cef4518a38f8df01",
          "digest_observed_at": "2026-09-09",
          "digest_at_analysis_run": null,
          "edition": null,
          "edition_status": "unresolved"
        },
        "pipeline_revision_at_run": null,
        "verification": {
          "source": "unverified",
          "human_review": "unreviewed",
          "bibliography": "unverified"
        },
        "issues": [],
        "todorov_status": "recovered-from-synthesis",
        "work_identity": {
          "title": "The Approach to Al-Mu'tasim",
          "author": "Jorge Luis Borges",
          "year": 1944
        }
      },
      "ntsmr": {
        "version": "2.5",
        "primary_run_label": "NTSMR-2.5-claude-sonnet-4-6-low",
        "runs": {
          "NTSMR-2.3-gemini-3.1-pro-preview": {
            "pipeline_version": "2.3",
            "backend": "gemini",
            "model": "gemini-3.1-pro-preview",
            "scores": {
              "time_linearity": 0.85,
              "pacing_velocity": 0.9,
              "threat_scale": 0.7,
              "protagonist_fate": 0.95,
              "conflict_style": 0.9,
              "price_type": 0.95
            },
            "score_space": "site-v1"
          },
          "NTSMR-2.3-claude-sonnet-4-6-low": {
            "pipeline_version": "2.3",
            "backend": "claude",
            "model": "claude-sonnet-4-6",
            "scores": {
              "time_linearity": 0.72,
              "pacing_velocity": 0.85,
              "threat_scale": 0.55,
              "protagonist_fate": 0.82,
              "conflict_style": 0.78,
              "price_type": 0.88
            },
            "score_space": "site-v1",
            "reasoning_effort": "low"
          },
          "NTSMR-2.4-claude-sonnet-4-6-low": {
            "pipeline_version": "2.4",
            "backend": "claude",
            "model": "claude-sonnet-4-6",
            "scores": {
              "time_linearity": 0.45,
              "pacing_velocity": 0.75,
              "threat_scale": 0.2,
              "protagonist_fate": 0.5,
              "conflict_style": 0.75,
              "price_type": 0.8
            },
            "score_space": "site-v1",
            "reasoning_effort": "low"
          },
          "NTSMR-2.5-claude-sonnet-4-6-low": {
            "pipeline_version": "2.5",
            "backend": "claude",
            "model": "claude-sonnet-4-6",
            "scores": {
              "time_linearity": 0.45,
              "pacing_velocity": 0.8,
              "threat_scale": 0.25,
              "protagonist_fate": 0.55,
              "conflict_style": 0.88,
              "price_type": 0.85
            },
            "score_space": "site-v1",
            "reasoning_effort": "low"
          },
          "NTSMR-2.5-balanced-glm-5+deepseek-v3.2": {
            "pipeline_version": "2.5",
            "backend": "openrouter",
            "model": "balanced-routing",
            "scores": {
              "time_linearity": 0.55,
              "pacing_velocity": 0.8,
              "threat_scale": 0.3,
              "protagonist_fate": 0.6,
              "conflict_style": 0.8,
              "price_type": 0.8
            },
            "score_space": "site-v1",
            "score_only": true,
            "source_run_label": "NTSMR-2.5-claude-sonnet-4-6-low"
          }
        }
      },
      "todorov_stages": {
        "equilibrium": "The law student exists in a state of settled, if spiritually hollow, normalcy as a Bombay law student who has renounced Islam but continues to live within the city's social fabric.",
        "disruption": "On the tenth night of Muharram, the law student is caught in a Hindu-Muslim riot, kills or believes he kills a Hindu man, and flees the police — shattering his civilian life and forcing him into exile at the margins of society.",
        "recognition": "At the Tower of Silence, the law student perceives a momentary glimmering of decency in the corpse-robber and deduces that this reflection must emanate from a superior soul — recognizing that his disruption has placed him at the threshold of a spiritual quest rather than a merely criminal fugitive state.",
        "repair": "The law student undertakes a years-long pilgrimage across India — through Palanpur, Bikanir, Benares, Katmandu, Calcutta, Madras, Travancore, Hindapur, and back to Bombay — following an ascending chain of figures, each possessing a greater share of spiritual clarity, in pursuit of the source of all that reflected goodness: Al-Mu'tasim.",
        "new_equilibrium": "The law student reaches a curtained doorway with light behind it, calls out, and steps through at Al-Mu'tasim's invitation — but the novel ends there, withholding resolution. The new equilibrium is perpetually deferred; the closing parallel to Attar's Simurgh suggests the seeker and sought may be identical, making the quest itself the final state."
      },
      "characters": [
        {
          "name": "Philip Guedalla",
          "slug": "philip-guedalla",
          "aliases": [],
          "role": "Critic",
          "summary": "A critic who describes Bahadur's novel as an uncomfortable amalgam of an Islamic allegorical poem and a detective novel."
        },
        {
          "name": "Mir Bahadur Ali",
          "slug": "mir-bahadur-ali",
          "aliases": [
            "Bahadur"
          ],
          "role": "Author",
          "summary": "A Bombay attorney who wrote the novel 'The Approach to Al-Mu'tasim', publishing it originally in 1932 and later as an illustrated, highly allegorical edition in 1934."
        },
        {
          "name": "John H. Watson",
          "slug": "john-h-watson",
          "aliases": [],
          "role": "Fictional Doctor",
          "summary": "Mentioned comparatively as a standard for detective novels."
        },
        {
          "name": "Mr. Cecil Roberts",
          "slug": "mr-cecil-roberts",
          "aliases": [],
          "role": "Critic",
          "summary": "A critic who detected the dual influence of Wilkie Collins and Farïd al-dïn Attar in Bahadur's book."
        },
        {
          "name": "Wilkie Collins",
          "slug": "wilkie-collins",
          "aliases": [],
          "role": "Author",
          "summary": "Cited as a literary influence on Mir Bahadur Ali's detective novel."
        },
        {
          "name": "Farïd al-dïn Attar",
          "slug": "fard-al-dn-attar",
          "aliases": [
            "Farïd al-dïn Abï Hämid Muhammad ben Ibrahim",
            "Attãr",
            "perfumer"
          ],
          "role": "Persian mystic poet",
          "summary": "A twelfth-century Persian poet and mystic, author of the 'Conference of the Birds', who was murdered by the soldiers under Tuluy when Nishapur was sacked."
        },
        {
          "name": "Dorothy L. Sayers",
          "slug": "dorothy-l-sayers",
          "aliases": [],
          "role": "Author",
          "summary": "Author who wrote the foreword for the 1934 Victor Gollancz reprint of Bahadur's novel."
        },
        {
          "name": "The Law Student",
          "slug": "the-law-student",
          "aliases": [],
          "role": "Protagonist",
          "summary": "An unnamed free-thinking law student from Bombay who renounces his Islamic faith, gets involved in a religious riot, possibly kills a Hindu, and embarks on a quest across Hindustan to find Al-Mu'tasim."
        },
        {
          "name": "The Corpse-robber",
          "slug": "the-corpse-robber",
          "aliases": [
            "filthy man",
            "thief"
          ],
          "role": "Thief",
          "summary": "A filthy man hiding in a tower who steals gold teeth from Parsi cadavers and directs hatred toward a female thief, inspiring the student's quest."
        },
        {
          "name": "A malka-sansi",
          "slug": "a-malka-sansi",
          "aliases": [],
          "role": "Woman of the caste of thieves",
          "summary": "A woman in Palanpur who is the object of the corpse-robber's hatred and imprecations, leading the law student to seek her out."
        },
        {
          "name": "Blind astrologer",
          "slug": "blind-astrologer",
          "aliases": [],
          "role": "Minor Character",
          "summary": "A character who dies in a cesspool in Benares during the student's pilgrimage."
        },
        {
          "name": "The Saint",
          "slug": "the-saint",
          "aliases": [],
          "role": "Holy man",
          "summary": "A figure in the ascending progression of souls who precedes the bookseller in the law student's search."
        },
        {
          "name": "Persian Bookseller",
          "slug": "persian-bookseller",
          "aliases": [],
          "role": "Merchant",
          "summary": "A man of great courtesy and felicity who immediately precedes Al-Mu'tasim in the student's ascending progression of encounters."
        },
        {
          "name": "Al-Mu'tasim",
          "slug": "al-mutasim",
          "aliases": [
            "He who goes in quest of aid"
          ],
          "role": "The Sought / Concept",
          "summary": "A mysterious unseen figure emitting clarity and brightness, the ultimate object of the law student's search, later revealed as an emblem of God."
        },
        {
          "name": "Black Jew from Cochin",
          "slug": "black-jew-from-cochin",
          "aliases": [],
          "role": "Pilgrim",
          "summary": "A man who describes Al-Mu'tasim as having dark skin."
        },
        {
          "name": "A Christian",
          "slug": "a-christian",
          "aliases": [],
          "role": "Pilgrim",
          "summary": "A person who recalls Al-Mu'tasim standing upon a tower with his arms outspread."
        },
        {
          "name": "A red lama",
          "slug": "a-red-lama",
          "aliases": [],
          "role": "Pilgrim",
          "summary": "A figure who recalls Al-Mu'tasim seated like an image carved from yak ghee that he worshipped in Tashilhumpo."
        },
        {
          "name": "Dr. Johnson",
          "slug": "dr-johnson",
          "aliases": [],
          "role": "Historical Figure",
          "summary": "Quoted by the narrator regarding authors not liking to owe anything to their contemporaries."
        },
        {
          "name": "James Joyce",
          "slug": "james-joyce",
          "aliases": [],
          "role": "Author",
          "summary": "Mentioned for the repeated points of congruence between his 'Ulysses' and Homer's 'Odyssey'."
        },
        {
          "name": "Homer",
          "slug": "homer",
          "aliases": [],
          "role": "Ancient Poet",
          "summary": "Mentioned as the author of the 'Odyssey', which Joyce's 'Ulysses' parallels."
        },
        {
          "name": "Rudyard Kipling",
          "slug": "rudyard-kipling",
          "aliases": [],
          "role": "Author",
          "summary": "Author of the story 'On the City Wall', which has analogies to the first scene of Bahadur's novel."
        },
        {
          "name": "T.S. Eliot",
          "slug": "ts-eliot",
          "aliases": [
            "Eliot"
          ],
          "role": "Critic / Poet",
          "summary": "Recalls that the heroine Gloriana never once appears in Spenser's 'The Faerie Queene'."
        },
        {
          "name": "Edmund Spenser",
          "slug": "edmund-spenser",
          "aliases": [
            "Spenser"
          ],
          "role": "Author",
          "summary": "Author of the unfinished allegory 'The Faerie Queene', noted for the omission of its heroine."
        },
        {
          "name": "Gloriana",
          "slug": "gloriana",
          "aliases": [],
          "role": "Fictional Queen",
          "summary": "The absent heroine of Spenser's 'The Faerie Queene'."
        },
        {
          "name": "Richard William Church",
          "slug": "richard-william-church",
          "aliases": [],
          "role": "Critic",
          "summary": "Criticized Spenser's work for the omission of Gloriana."
        },
        {
          "name": "Isaac Luria",
          "slug": "isaac-luria",
          "aliases": [],
          "role": "Kabbalist",
          "summary": "A sixteenth-century Kabbalist in Jerusalem who revealed the concept of ibbûr (metempsychosis), cited by the narrator as a possible precursor to the novel's ideas."
        },
        {
          "name": "Tuluy",
          "slug": "tuluy",
          "aliases": [],
          "role": "Military Leader",
          "summary": "Son of Genghis Khan; his soldiers murdered the poet Attar when Nishapur was sacked."
        },
        {
          "name": "Genghis Khan",
          "slug": "genghis-khan",
          "aliases": [],
          "role": "Historical Conqueror",
          "summary": "Father of Tuluy, mentioned in the context of the sacking of Nishapur."
        },
        {
          "name": "Sïmurgh",
          "slug": "smurgh",
          "aliases": [
            "King of the Birds",
            "thirty birds"
          ],
          "role": "Mythical Entity",
          "summary": "The distant King of the Birds in Attar's poem, eventually revealed to be the birds themselves."
        },
        {
          "name": "Plotinus",
          "slug": "plotinus",
          "aliases": [],
          "role": "Philosopher",
          "summary": "Cited for his 'Enneads' regarding a paradisal extension of the principle of identity."
        },
        {
          "name": "Garcin de Tassy",
          "slug": "garcin-de-tassy",
          "aliases": [],
          "role": "Translator",
          "summary": "Translated Attar's 'Mantiq al-tair' into French."
        },
        {
          "name": "Edward FitzGerald",
          "slug": "edward-fitzgerald",
          "aliases": [],
          "role": "Translator",
          "summary": "Translated Attar's 'Mantiq al-tair' into English."
        },
        {
          "name": "Richard Burton",
          "slug": "richard-burton",
          "aliases": [],
          "role": "Author / Translator",
          "summary": "Author whose '1001 Nights' was consulted by the narrator."
        },
        {
          "name": "Margaret Smith",
          "slug": "margaret-smith",
          "aliases": [],
          "role": "Scholar",
          "summary": "Author of the 1932 study 'The Persian Mystics: Attar'."
        }
      ],
      "frameworks_mapped": [
        "Protocol Fiction Mapping",
        "Actantial Model",
        "Todorov's Equilibrium",
        "The Freytag Pyramid",
        "Propp's Morphology",
        "Genette's Narrative",
        "The Monomyth",
        "Dan Harmon",
        "Save the Cat",
        "Kishōtenketsu",
        "The Three-Act Structure",
        "Lévi-Strauss's Binary Oppositions",
        "Cognitive Estrangement",
        "Bakhtin's Chronotope",
        "Aristotelian Poetics",
        "Jungian Archetypal Analysis",
        "Genette's Transtextuality"
      ],
      "score_reliability": {
        "state": "replicated-agree",
        "threshold": 0.2,
        "runs_total": 5,
        "versions_compared": [
          "2.5"
        ],
        "max_spread": 0.1,
        "contested": []
      }
    },
    {
      "slug": "mary_robinette_kowal_the_calculating_stars",
      "title": "The Calculating Stars",
      "author": "Mary Robinette Kowal",
      "year": 2018,
      "medium": "book",
      "genre_tags": [
        "sf",
        "alternate history",
        "space race"
      ],
      "tropes": [],
      "quadrant_scores": {
        "time_linearity": 0.18,
        "pacing_velocity": 0.65,
        "threat_scale": 0.75,
        "protagonist_fate": 0.38,
        "conflict_style": 0.65,
        "price_type": 0.62
      },
      "provenance": {
        "analysis_run": "NTSMR-2.5-claude-sonnet-4-6-low",
        "analysis_body_sha256": "9f16982a87c8d40f2987a5466ff35847655b908098fdc0071062d559be30fac9",
        "synthesis": {
          "path": "nartopo-tools/artifacts/mary_robinette_kowal_the_calculating_stars.md.ntsmr-2-5-claude-sonnet-4-6-low.synthesis.json",
          "sha256": "6514741d43c818cd18e937a44722bc22e80b23b53fd5d0c7fa03de31e713c305"
        },
        "report": {
          "path": "nartopo-tools/artifacts/mary_robinette_kowal_the_calculating_stars.md.ntsmr-2-5-claude-sonnet-4-6-low.report.json",
          "sha256": "d61f42b3feecb11b3bddcf0517187d8f18764d09019823c39248e2a4453dff64"
        },
        "source": {
          "path": "Mary Robinette Kowal/The Calculating Stars.txt",
          "sha256": "889ea31a8f681bb7c55c6be34b52b415376541d13ff978fb59e194821e63a2b2",
          "digest_observed_at": "2026-09-09",
          "digest_at_analysis_run": null,
          "edition": null,
          "edition_status": "unresolved"
        },
        "pipeline_revision_at_run": null,
        "verification": {
          "source": "unverified",
          "human_review": "unreviewed",
          "bibliography": "unverified"
        },
        "issues": [],
        "todorov_status": "recovered-from-synthesis",
        "work_identity": {
          "title": "The Calculating Stars",
          "author": "Mary Robinette Kowal",
          "year": 2018
        }
      },
      "ntsmr": {
        "version": "2.5",
        "primary_run_label": "NTSMR-2.5-claude-sonnet-4-6-low",
        "runs": {
          "NTSMR-2.3-claude-sonnet-4-6-low": {
            "pipeline_version": "2.3",
            "backend": "claude",
            "model": "claude-sonnet-4-6",
            "scores": {
              "time_linearity": 0.2,
              "pacing_velocity": 0.65,
              "threat_scale": 0.75,
              "protagonist_fate": 0.55,
              "conflict_style": 0.6,
              "price_type": 0.8
            },
            "score_space": "site-v1",
            "reasoning_effort": "low"
          },
          "NTSMR-2.4-claude-sonnet-4-6-low": {
            "pipeline_version": "2.4",
            "backend": "claude",
            "model": "claude-sonnet-4-6",
            "scores": {
              "time_linearity": 0.22,
              "pacing_velocity": 0.55,
              "threat_scale": 0.72,
              "protagonist_fate": 0.25,
              "conflict_style": 0.62,
              "price_type": 0.58
            },
            "score_space": "site-v1",
            "reasoning_effort": "low"
          },
          "NTSMR-2.5-claude-sonnet-4-6-low": {
            "pipeline_version": "2.5",
            "backend": "claude",
            "model": "claude-sonnet-4-6",
            "scores": {
              "time_linearity": 0.18,
              "pacing_velocity": 0.65,
              "threat_scale": 0.75,
              "protagonist_fate": 0.38,
              "conflict_style": 0.65,
              "price_type": 0.62
            },
            "score_space": "site-v1",
            "reasoning_effort": "low"
          },
          "NTSMR-2.5-balanced-glm-5+deepseek-v3.2": {
            "pipeline_version": "2.5",
            "backend": "openrouter",
            "model": "balanced-routing",
            "scores": {
              "time_linearity": 0.18,
              "pacing_velocity": 0.68,
              "threat_scale": 0.88,
              "protagonist_fate": 0.28,
              "conflict_style": 0.68,
              "price_type": 0.72
            },
            "score_space": "site-v1",
            "score_only": true,
            "source_run_label": "NTSMR-2.5-claude-sonnet-4-6-low"
          }
        }
      },
      "todorov_stages": {
        "equilibrium": "Elma and Nathaniel live a stable if modest life in an alternate 1950s America where the IAC space program is underway; Elma works as a computer and mathematician, finding purpose in technical work within a recognizable domestic and professional order.",
        "disruption": "The Meteor strikes the United States, obliterating Washington D.C. and killing Elma's family members, while simultaneously the IAC excludes all women from astronaut candidacy on paternalistic grounds — a double disruption of both the world order and Elma's professional aspirations.",
        "recognition": "Elma learns she was not even considered for astronaut selection and that Clemons excluded all women entirely; she identifies Parker as the probable instigator of the exclusion and begins to understand the institutional forces arrayed against her advancement.",
        "repair": "Elma mounts a sustained campaign to prove women's fitness for spaceflight — organizing the air show, testifying at congressional hearings, entering formal astronaut candidate testing, managing Parker's blackmail over her Miltown use, and building political alliances through Nicole Wargin — until the IAC announces a new astronaut call explicitly encouraging women to apply.",
        "new_equilibrium": "Elma is selected as an astronaut candidate and ultimately assigned as command module pilot for the lunar mission — not first woman in space nor first on the moon, but a fully integrated member of the program — while the IAC has relocated to Brazil and the corps now includes women across multiple nations, representing a permanently altered institutional and social order."
      },
      "characters": [
        {
          "name": "Nathaniel York",
          "slug": "nathaniel-york",
          "aliases": [
            "Dr. York",
            "Elma Wexler",
            "Mrs. York",
            "Lady Astronaut",
            "Kansas",
            "Anselma Wexler",
            "York"
          ],
          "role": "protagonist",
          "summary": "Elma's husband and IAC rocket engineer; supports her emotionally at the launch, uses arithmetic drills to manage her pre-conference anxiety, and reacts with controlled fury to the blackmail revelation."
        },
        {
          "name": "Helen",
          "slug": "helen",
          "aliases": [
            "Huilang Liu"
          ],
          "role": "supporting",
          "summary": "Taiwanese IAC computer and chess champion who works alongside Elma at Mission Control, feeding Teletype data during the Hercules 7 launch."
        },
        {
          "name": "Mrs. Lindholm",
          "slug": "mrs-lindholm",
          "aliases": [],
          "role": "helper",
          "summary": "Major Lindholm's wife; hosts Elma after the disaster, turns off the television coverage, and offers domestic comfort including an inadvertently antisemitic remark."
        },
        {
          "name": "Myrtle",
          "slug": "myrtle",
          "aliases": [],
          "role": "supporting",
          "summary": "Family friend who coordinates refugee relief at the airfield and organized flier drops to Black neighborhoods using Elma's plane."
        },
        {
          "name": "Carmouche",
          "slug": "carmouche",
          "aliases": [
            "Reynard Carmouche",
            "Dr. Carmouche"
          ],
          "role": "supporting",
          "summary": "French IAC engineer who plays chess with Helen at Mission Control and impulsively kisses Elma on the cheek when Parker achieves orbit."
        },
        {
          "name": "President Brannan",
          "slug": "president-brannan",
          "aliases": [
            "Acting President Brannan"
          ],
          "role": "sender",
          "summary": "Acting U.S. president who receives the climate briefing in an underground bunker and facilitates the UN proposal to colonize space."
        },
        {
          "name": "Scherzinger",
          "slug": "scherzinger",
          "aliases": [
            "M. Scherzinger"
          ],
          "role": "sender",
          "summary": "UN representative who proposes the colonization of outer space as humanity's response to the Meteor-triggered climate catastrophe."
        },
        {
          "name": "Stetson Parker",
          "slug": "stetson-parker",
          "aliases": [
            "Colonel Parker"
          ],
          "role": "antagonist",
          "summary": "Military officer and IAC astronaut; dismisses Elma repeatedly on gendered grounds, harbors personal animosity from wartime history, but becomes the first human in space aboard Hercules 7."
        },
        {
          "name": "Betty",
          "slug": "betty",
          "aliases": [],
          "role": "supporting",
          "summary": "Pilot and Life magazine journalist who failed astronaut selection but negotiated a press deal; gives a qualified answer on racial inclusion at the press conference."
        },
        {
          "name": "Basira",
          "slug": "basira",
          "aliases": [],
          "role": "supporting",
          "summary": "IAC computer department colleague who banters with Elma about Bubbles and the gendered dynamics of the workplace."
        },
        {
          "name": "Miss Coleman",
          "slug": "miss-coleman",
          "aliases": [
            "Sarah"
          ],
          "role": "supporting",
          "summary": "Black mathematician and chemist who refuses the air show, confronting Elma on racial exploitation and structural exclusion."
        },
        {
          "name": "Miss Peaks",
          "slug": "miss-peaks",
          "aliases": [],
          "role": "supporting",
          "summary": "Black pilot who agrees to fly in the air show despite Coleman's withdrawal, pragmatically oriented toward action."
        },
        {
          "name": "Miss Braggs",
          "slug": "miss-braggs",
          "aliases": [],
          "role": "supporting",
          "summary": "Black pilot who tests Elma's motives with pointed questions before cautiously agreeing to participate."
        },
        {
          "name": "Eugene",
          "slug": "eugene",
          "aliases": [
            "Major Lindholm"
          ],
          "role": "supporting",
          "summary": "Military officer who hosts the recruitment conversation with the Black pilots at a bowling alley; tries to smooth over tensions."
        },
        {
          "name": "Leroy Pluckett",
          "slug": "leroy-pluckett",
          "aliases": [
            "Dr. Pluckett"
          ],
          "role": "antagonist",
          "summary": "IAC engineer who sexually harasses Elma during the Atlas rocket test; later fired by Nathaniel for grabbing a computer."
        },
        {
          "name": "Don Herbert",
          "slug": "don-herbert",
          "aliases": [
            "Mr. Wizard",
            "Captain Herbert"
          ],
          "role": "helper",
          "summary": "Former bomber squadron captain turned TV science host who invites Elma to appear on his show after a girl was inspired by her."
        },
        {
          "name": "Mrs. Kare",
          "slug": "mrs-kare",
          "aliases": [],
          "role": "minor",
          "summary": "Director Clemons's secretary who greets Elma at his office door."
        },
        {
          "name": "Mrs. Rogers",
          "slug": "mrs-rogers",
          "aliases": [],
          "role": "minor",
          "summary": "Head of the IAC computing department who summons Elma for the phone call and manages scheduling."
        },
        {
          "name": "Nicole Wargin",
          "slug": "nicole-wargin",
          "aliases": [],
          "role": "supporting",
          "summary": "Senator's wife and astronaut candidate; politically sharp, socially fluent, and a steadying presence for Elma before and during the press conference."
        },
        {
          "name": "Director Clemons",
          "slug": "director-clemons",
          "aliases": [
            "Norman Clemons",
            "Director Norman Clemons"
          ],
          "role": "actantial:sender",
          "summary": "IAC director who waives Elma's formal interview out of conviction, later deflects race questions at the press conference with institutional platitudes."
        },
        {
          "name": "Senator Mason",
          "slug": "senator-mason",
          "aliases": [],
          "role": "minor",
          "summary": "Hostile North Carolina senator who repeatedly expresses disbelief at technical explanations during the hearings"
        },
        {
          "name": "Wernher von Braun",
          "slug": "wernher-von-braun",
          "aliases": [],
          "role": "minor",
          "summary": "Nazi-era rocket scientist whose presence in Clemons's office forces Elma into silent moral compromise"
        },
        {
          "name": "Mrs. Lebourgeois",
          "slug": "mrs-lebourgeois",
          "aliases": [
            "Violette Lebourgeois"
          ],
          "role": "helper",
          "summary": "Diaphanous blonde astronaut wife who charms Elma with talk of marital benefits of weightlessness and shreds tinfoil anxiously during the crisis"
        },
        {
          "name": "Benkoski",
          "slug": "benkoski",
          "aliases": [
            "Wizard"
          ],
          "role": "helper",
          "summary": "Fellow astronaut who publicly defends Elma against Parker's Miltown attack by citing how she saved his and Malouf's lives."
        },
        {
          "name": "Malouf",
          "slug": "malouf",
          "aliases": [
            "Halim Malouf"
          ],
          "role": "helper",
          "summary": "Astronaut who corroborates Elma's mathematical speed under pressure, deflecting Parker's attack."
        },
        {
          "name": "Terrazas",
          "slug": "terrazas",
          "aliases": [
            "Estevan Terrazas"
          ],
          "role": "helper",
          "summary": "Artemis 9 crew member who points out the rocket to Elma on the gantry before boarding."
        },
        {
          "name": "Hershel",
          "slug": "hershel",
          "aliases": [],
          "role": "supporting",
          "summary": "Elma's brother who calls to ask her to come early to Tommy's bar mitzvah, voice faltering with unspoken emotional need"
        },
        {
          "name": "Aunt Esther",
          "slug": "aunt-esther",
          "aliases": [
            "Esther Wexler",
            "Miss Wexler"
          ],
          "role": "helper",
          "summary": "Elma's elderly aunt who attends synagogue with the family and watches the rocket launch, giving Elma an emotional benediction to pursue spaceflight."
        },
        {
          "name": "Luther",
          "slug": "luther",
          "aliases": [],
          "role": "minor",
          "summary": "Skeptical boat passenger who dismisses the space program as corporate conspiracy and condescends to Elma"
        },
        {
          "name": "Lynn",
          "slug": "lynn",
          "aliases": [],
          "role": "minor",
          "summary": "Old friend of Elma's on the Chicago boat tour whose conventional life—mortgage, children—contrasts with Elma's displaced existence"
        },
        {
          "name": "Maggie Gee",
          "slug": "maggie-gee",
          "aliases": [],
          "role": "other",
          "summary": "Chinese-American WASP pilot and one of two non-white women observed in the astronaut candidate line."
        },
        {
          "name": "Sabiha Gökçen",
          "slug": "sabiha-gken",
          "aliases": [],
          "role": "helper",
          "summary": "Astronaut candidate who arrives in a pantsuit, inadvertently clueing Elma in on appropriate attire; asks sharp questions about approved press answers."
        },
        {
          "name": "Jacira",
          "slug": "jacira",
          "aliases": [
            "Jacira Paz-Viveiros"
          ],
          "role": "helper",
          "summary": "Brazilian astronaut candidate with a master's in engineering; selected as the first woman in space, chosen partly for her story-value to the IAC."
        },
        {
          "name": "Bubbles",
          "slug": "bubbles",
          "aliases": [],
          "role": "other",
          "summary": "IAC engineer who designed the Sirius rocket; subject of Basira's romantic interest."
        },
        {
          "name": "Ida",
          "slug": "ida",
          "aliases": [],
          "role": "helper",
          "summary": "Brilliant Black woman and IAC computer, barred from the astronaut program by discriminatory application rules; a sharp voice on racial exclusion."
        }
      ],
      "frameworks_mapped": [
        "Protocol Fiction Mapping",
        "Actantial Model",
        "Todorov's Equilibrium",
        "The Freytag Pyramid",
        "Propp's Morphology",
        "Genette's Narrative",
        "The Monomyth",
        "Dan Harmon",
        "Save the Cat",
        "Kishotenketsu",
        "The Three-Act Structure",
        "Levi-Strauss's Binary Oppositions",
        "Cognitive Estrangement",
        "Bakhtin's Chronotope",
        "Aristotelian Poetics",
        "Jungian Archetypal Analysis",
        "Genette's Transtextuality"
      ],
      "score_reliability": {
        "state": "replicated-agree",
        "threshold": 0.2,
        "runs_total": 4,
        "versions_compared": [
          "2.5"
        ],
        "max_spread": 0.13,
        "contested": []
      }
    },
    {
      "slug": "jorge_luis_borges_the_circular_ruins",
      "title": "The Circular Ruins",
      "author": "Jorge Luis Borges",
      "year": 1944,
      "medium": "short_story",
      "genre_tags": [],
      "tropes": [],
      "quadrant_scores": {
        "time_linearity": 0.88,
        "pacing_velocity": 0.82,
        "threat_scale": 0.55,
        "protagonist_fate": 0.75,
        "conflict_style": 0.88,
        "price_type": 0.85
      },
      "provenance": {
        "analysis_run": "NTSMR-2.5-claude-sonnet-4-6-low",
        "analysis_body_sha256": "856ad97da72ada62fbe55f2f49d0ffc71afec5ac6b3b84556611a587342c657a",
        "synthesis": {
          "path": "nartopo-tools/artifacts/jorge_luis_borges_the_circular_ruins.md.ntsmr-2-5-claude-sonnet-4-6-low.synthesis.json",
          "sha256": "7baf847bdec0dd73e8ff8e86aa3609c654c011cc6555c9b2d3da0cd2cd3a80be"
        },
        "report": {
          "path": "nartopo-tools/artifacts/jorge_luis_borges_the_circular_ruins.md.ntsmr-2-5-claude-sonnet-4-6-low.report.json",
          "sha256": "a234771cb54da5ca7f094a10619a87089a01822416e923f9334715a739d053f4"
        },
        "source": {
          "path": "Jorge Luis Borges/The Circular Ruins.txt",
          "sha256": "5e7b55722cc3a991e3d0fddb0358a033dc264ec3e7c3dfb1da3897f35c11c560",
          "digest_observed_at": "2026-09-09",
          "digest_at_analysis_run": null,
          "edition": null,
          "edition_status": "unresolved"
        },
        "pipeline_revision_at_run": null,
        "verification": {
          "source": "unverified",
          "human_review": "unreviewed",
          "bibliography": "unverified"
        },
        "issues": [],
        "todorov_status": "recovered-from-synthesis",
        "work_identity": {
          "title": "The Circular Ruins",
          "author": "Jorge Luis Borges",
          "year": 1944
        }
      },
      "ntsmr": {
        "version": "2.5",
        "primary_run_label": "NTSMR-2.5-claude-sonnet-4-6-low",
        "runs": {
          "NTSMR-2.3-gemini-3.1-pro-preview": {
            "pipeline_version": "2.3",
            "backend": "gemini",
            "model": "gemini-3.1-pro-preview",
            "scores": {
              "time_linearity": 0.95,
              "pacing_velocity": 0.85,
              "threat_scale": 0.85,
              "protagonist_fate": 0.95,
              "conflict_style": 0.95,
              "price_type": 0.95
            },
            "score_space": "site-v1"
          },
          "NTSMR-2.3-claude-sonnet-4-6-low": {
            "pipeline_version": "2.3",
            "backend": "claude",
            "model": "claude-sonnet-4-6",
            "scores": {
              "time_linearity": 0.97,
              "pacing_velocity": 0.88,
              "threat_scale": 0.62,
              "protagonist_fate": 0.85,
              "conflict_style": 0.91,
              "price_type": 0.89
            },
            "score_space": "site-v1",
            "reasoning_effort": "low"
          },
          "NTSMR-2.4-claude-sonnet-4-6-low": {
            "pipeline_version": "2.4",
            "backend": "claude",
            "model": "claude-sonnet-4-6",
            "scores": {
              "time_linearity": 0.88,
              "pacing_velocity": 0.78,
              "threat_scale": 0.45,
              "protagonist_fate": 0.72,
              "conflict_style": 0.82,
              "price_type": 0.8
            },
            "score_space": "site-v1",
            "reasoning_effort": "low"
          },
          "NTSMR-2.5-claude-sonnet-4-6-low": {
            "pipeline_version": "2.5",
            "backend": "claude",
            "model": "claude-sonnet-4-6",
            "scores": {
              "time_linearity": 0.88,
              "pacing_velocity": 0.82,
              "threat_scale": 0.55,
              "protagonist_fate": 0.75,
              "conflict_style": 0.88,
              "price_type": 0.85
            },
            "score_space": "site-v1",
            "reasoning_effort": "low"
          },
          "NTSMR-2.5-balanced-glm-5+deepseek-v3.2": {
            "pipeline_version": "2.5",
            "backend": "openrouter",
            "model": "balanced-routing",
            "scores": {
              "time_linearity": 0.82,
              "pacing_velocity": 0.78,
              "threat_scale": 0.3,
              "protagonist_fate": 0.72,
              "conflict_style": 0.82,
              "price_type": 0.82
            },
            "score_space": "site-v1",
            "score_only": true,
            "source_run_label": "NTSMR-2.5-claude-sonnet-4-6-low"
          }
        }
      },
      "todorov_stages": {
        "equilibrium": "Multiple overlapping starting stases: the dreamer arrives at a ruined temple with a singular magical purpose; the Congress of the World operates as an institution cataloguing all human knowledge; the Library of Babel exists as an infinite but navigable system of meaning-seeking; the narrator-Borges inhabits a stable Buenos Aires identity before receiving the Zahir.",
        "disruption": "Across the collection, equilibrium is broken by uncanny irruptions: the dreamer's son is sent into the world but proves immune to fire, threatening the dreamer's assumption that he alone is real (chunk-1-ev-1); the narrator receives the Zahir coin and cannot expunge its image (chunk-2-ev-13); Tlön objects materialize in consensual reality (chunk-3-ev-12); the narrator finds his own name already signed in the hotel register (chunk-3-ev-21).",
        "recognition": "Recognition arrives as anagnorisis in multiple stories: Ryan discovers Kilpatrick's martyrdom was scripted from Shakespeare and that he himself is part of Nolan's plot (chunk-1-ev-10, chunk-1-ev-12); the narrator identifies his obsession as the Islamic concept of the Zahir — things whose image drives men mad (chunk-2-ev-16); the dreamer walks into fire unburned and realizes with relief, humiliation, and terror that he too is merely an appearance dreamed by another (chunk-3-ev-22).",
        "repair": "Repair attempts are characteristically inadequate or self-defeating: the narrator tries to rid himself of the Zahir by deliberately spending the coin at a random tavern, but cannot free his mind of its image (chunk-2-ev-14); the fire-god animates the dreamed son and sends him downriver as a corrective act of magical completion (chunk-1-ev-3); Ryan suppresses his discovered truth and publishes a glorifying book (chunk-1-ev-12); the narrator hides the infinite Book of Sand in the National Library basement (chunk-3-ev-1).",
        "new_equilibrium": "The new equilibria are universally destabilized or dissolved rather than restored: Don Alejandro burns the Congress's library and declares the Congress is everything, rendering the institution unnecessary, followed by its eventual silent dissolution (chunk-1-ev-8, chunk-2-ev-22); Tzinacán, having glimpsed the universe, abandons individual selfhood and lies in darkness letting the days forget him (chunk-2-ev-21); the dreamer, revealed as himself dreamed, achieves not resolution but ontological vertigo; the narrator-Borges remains tormented by an asymmetric encounter with himself (chunk-3-ev-16)."
      },
      "characters": [
        {
          "name": "The taciturn man",
          "slug": "the-taciturn-man",
          "aliases": [
            "the gray man",
            "the foreigner",
            "The sorcerer"
          ],
          "role": "Dreamer",
          "summary": "A foreigner who travels to the ruined circular temple in the jungle with the magical objective of dreaming a man into existence."
        },
        {
          "name": "The youth",
          "slug": "the-youth",
          "aliases": [
            "phantasm",
            "his son"
          ],
          "role": "Dreamed creation",
          "summary": "The simulacrum created by the taciturn man organ by organ in his dreams, brought to life by the god Fire."
        },
        {
          "name": "Fire",
          "slug": "fire",
          "aliases": [
            "The manifold god"
          ],
          "role": "Deity",
          "summary": "A manifold god formerly worshipped at the circular temple, who grants reality to the dreamed youth."
        },
        {
          "name": "Pierre Menard",
          "slug": "pierre-menard",
          "aliases": [],
          "role": "Author",
          "summary": "A twentieth-century writer who assumes the mysterious obligation to reconstruct Cervantes' Quixote word for word."
        },
        {
          "name": "Alexander Ferri",
          "slug": "alexander-ferri",
          "aliases": [
            "Ferri"
          ],
          "role": "Narrator and Congress delegate",
          "summary": "A provincial journalist in Buenos Aires who becomes a delegate to the Congress of the World and travels to London to research a universal language."
        },
        {
          "name": "Fernández Irala",
          "slug": "fernndez-irala",
          "aliases": [
            "Fernández Kraal",
            "Kraal"
          ],
          "role": "Poet and Congress delegate",
          "summary": "A journalist and poet who introduces Ferri to the Congress of the World and renounces his honorarium."
        },
        {
          "name": "Alejandro Glencoe",
          "slug": "alejandro-glencoe",
          "aliases": [
            "don Alejandro"
          ],
          "role": "Chairman of the Congress",
          "summary": "A dignified, red-bearded gentleman and rancher who chairs the meetings of the Congress of the World."
        },
        {
          "name": "Nora Erfjord",
          "slug": "nora-erfjord",
          "aliases": [],
          "role": "Secretary",
          "summary": "The Norwegian secretary of the Congress of the World who handles the overwhelming correspondence."
        },
        {
          "name": "Twirl",
          "slug": "twirl",
          "aliases": [],
          "role": "Congress delegate",
          "summary": "A delegate of lucid intelligence who raises philosophical questions about representation and Platonic archetypes."
        },
        {
          "name": "Fermín Eguren",
          "slug": "fermn-eguren",
          "aliases": [
            "Eguren"
          ],
          "role": "Congress delegate",
          "summary": "An arrogant Uruguayan dandy who dislikes Ferri and backs down from a knife fight in a vestibule."
        },
        {
          "name": "Tapia",
          "slug": "tapia",
          "aliases": [
            "Paredes"
          ],
          "role": "Troublemaker",
          "summary": "A burly, knife-wielding man who challenges Ferri, Eguren, and Irala outside a whorehouse on Calle Junín to test their courage."
        },
        {
          "name": "Beatrice",
          "slug": "beatrice",
          "aliases": [
            "Beatrice Frost"
          ],
          "role": "Student and lover",
          "summary": "A tall, red-haired university student in London who becomes Ferri's lover but refuses to marry him."
        },
        {
          "name": "Lazarus Morell",
          "slug": "lazarus-morell",
          "aliases": [
            "Morell"
          ],
          "role": "Criminal gang leader",
          "summary": "A Southern criminal who commands hundreds of men in a scheme to repeatedly incite slaves to run away, promising freedom but ultimately murdering them."
        },
        {
          "name": "Fergus Kilpatrick",
          "slug": "fergus-kilpatrick",
          "aliases": [
            "the traitor-hero"
          ],
          "role": "Irish rebel leader",
          "summary": "An Irish rebel who, after being uncovered as a traitor to the rebellion, collaborates in his own choreographed, heroic assassination."
        },
        {
          "name": "James Alexander Nolan",
          "slug": "james-alexander-nolan",
          "aliases": [
            "Nolan"
          ],
          "role": "Playwright and conspirator",
          "summary": "The oldest of Kilpatrick's comrades who discovers his treason and choreographs his execution using plagiarized scenes from Shakespeare."
        },
        {
          "name": "Ryan",
          "slug": "ryan",
          "aliases": [],
          "role": "Investigator",
          "summary": "A descendant who investigates Kilpatrick's death, discovers it was a staged performance based on Shakespeare, and chooses to keep the secret."
        },
        {
          "name": "Edward Ostermann",
          "slug": "edward-ostermann",
          "aliases": [
            "Monk Eastman",
            "Eastman"
          ],
          "role": "Gangster",
          "summary": "A battered, monumental Jewish hoodlum from Brooklyn who commanded a criminal empire and had a deep passion for birds and cats."
        },
        {
          "name": "Johannes Dahlmann",
          "slug": "johannes-dahlmann",
          "aliases": [],
          "role": "Minister",
          "summary": "An Evangelical Church minister who arrived in Buenos Aires in 1871."
        },
        {
          "name": "Eduardo Zimmermann",
          "slug": "eduardo-zimmermann",
          "aliases": [
            "Dr. Zimmermann"
          ],
          "role": "Historian",
          "summary": "A foreign-born historian from the University of the South who was driven from the Third Reich and competes with the narrator for a mission."
        },
        {
          "name": "John William Quigley",
          "slug": "john-william-quigley",
          "aliases": [
            "Wilfred Quarles"
          ],
          "role": "Playwright / Traveling salesman",
          "summary": "A traveling salesman from Liverpool who writes a play under an alias, morbidly clipping pictures of a woman he has never met and transforming his rooming house into a country house in his imagination."
        },
        {
          "name": "Herbert Quain",
          "slug": "herbert-quain",
          "aliases": [
            "Quain"
          ],
          "role": "Author",
          "summary": "An aging, failed author who publishes the complex work 'Statements', arguing cynically that readers are an extinct species and everyone is a potential writer."
        },
        {
          "name": "Dr. Yu Tsun",
          "slug": "dr-yu-tsun",
          "aliases": [
            "Yu Tsun"
          ],
          "role": "Spy / Former professor",
          "summary": "A former professor of English and spy for the German Empire who murders Stephen Albert solely to transmit the name of a city to his Leader."
        },
        {
          "name": "Capt. Richard Madden",
          "slug": "capt-richard-madden",
          "aliases": [
            "Madden"
          ],
          "role": "Arresting officer / Irishman",
          "summary": "An implacable Irishman working under English orders who ruthlessly tracks down, arrests, and kills German spies to prove his loyalty."
        },
        {
          "name": "Stephen Albert",
          "slug": "stephen-albert",
          "aliases": [
            "Albert"
          ],
          "role": "Sinologist",
          "summary": "An eminent Sinologist who receives Yu Tsun in his yellow-and-black garden and is suddenly murdered by him."
        },
        {
          "name": "Droctulft",
          "slug": "droctulft",
          "aliases": [],
          "role": "Warrior",
          "summary": "A barbarian warrior from the dense German forests who, overwhelmed by the incomprehensible beauty and order of Ravenna, deserts his tribe to fight for and die defending the city."
        },
        {
          "name": "Tzinacan",
          "slug": "tzinacan",
          "aliases": [],
          "role": "Priest / Prisoner",
          "summary": "The last priest of the Pyramid of Qaholom, who is tortured and imprisoned in a dark hemispherical cell, where he spends his life trying to decipher a divine message hidden in the spots of a jaguar."
        },
        {
          "name": "Homer",
          "slug": "homer",
          "aliases": [
            "Flaminius Rufus",
            "Cartaphilus",
            "Nobody"
          ],
          "role": "Immortal / Wanderer",
          "summary": "An immortal who composed the Odyssey, lived for a century in the City of the Immortals, and wandered through countless eras and empires before finally tasting from a spring that returned him to mortality."
        },
        {
          "name": "Ulf Sigurdarson",
          "slug": "ulf-sigurdarson",
          "aliases": [],
          "role": "Icelander and skald",
          "summary": "An Icelandic traveler of grave and measured speech who journeys to the land of the Urns and recounts his experiences with King Gunnlaug to Adam of Bremen."
        },
        {
          "name": "Ezra Buckley",
          "slug": "ezra-buckley",
          "aliases": [],
          "role": "Reclusive millionaire and demiurge",
          "summary": "A Memphis freethinker, fatalist, and millionaire who proposes expanding a secret society's project from inventing a country to inventing an entire illusory planet, backing it with his vast fortune."
        },
        {
          "name": "Younger Jorge Luis Borges",
          "slug": "younger-jorge-luis-borges",
          "aliases": [
            "Alter ego",
            "Narrator"
          ],
          "role": "Alter ego",
          "summary": "A young man, not yet twenty in 1918, who sits on a bench in Geneva, dreams of his older self, and passionately defends Whitman and his own literary ideals."
        },
        {
          "name": "Bill Harrigan",
          "slug": "bill-harrigan",
          "aliases": [
            "Billy the Kid"
          ],
          "role": "Outlaw",
          "summary": "A scrawny youth from the New York slums who moves West, becoming a notorious horseman, rustler, and frontier outlaw feared for his lethal temper."
        },
        {
          "name": "Pat Garrett",
          "slug": "pat-garrett",
          "aliases": [],
          "role": "Sheriff",
          "summary": "The sheriff and former friend of Billy the Kid who eventually kills him, noting he practiced his aim by shooting buffalo."
        },
        {
          "name": "Country house owner",
          "slug": "country-house-owner",
          "aliases": [
            "The owner"
          ],
          "role": "Hotel proprietor",
          "summary": "The owner of a large country house who greets the narrator, mistaking him for an older gentleman bearing the exact same name who has already checked into Room 19."
        }
      ],
      "frameworks_mapped": [
        "Protocol Fiction Mapping",
        "Actantial Model",
        "Todorov's Equilibrium",
        "The Freytag Pyramid",
        "Propp's Morphology",
        "Genette's Narrative",
        "The Monomyth",
        "Dan Harmon",
        "Save the Cat",
        "Kishōtenketsu",
        "The Three-Act Structure",
        "Lévi-Strauss's Binary Oppositions",
        "Cognitive Estrangement",
        "Bakhtin's Chronotope",
        "Aristotelian Poetics",
        "Jungian Archetypal Analysis",
        "Genette's Transtextuality"
      ],
      "score_reliability": {
        "state": "contested",
        "threshold": 0.2,
        "runs_total": 5,
        "versions_compared": [
          "2.5"
        ],
        "max_spread": 0.25,
        "contested": [
          {
            "axis": "threat_scale",
            "version": "2.5",
            "spread": 0.25,
            "low": {
              "label": "NTSMR-2.5-balanced-glm-5+deepseek-v3.2",
              "model": "balanced-routing",
              "effort": "?",
              "value": 0.3
            },
            "high": {
              "label": "NTSMR-2.5-claude-sonnet-4-6-low",
              "model": "claude-sonnet-4-6",
              "effort": "low",
              "value": 0.55
            }
          }
        ]
      }
    },
    {
      "slug": "china_miville_the_city__the_city",
      "title": "The City & The City",
      "author": "China Miéville",
      "year": 2009,
      "medium": "book",
      "genre_tags": [
        "science fiction",
        "new weird"
      ],
      "tropes": [],
      "quadrant_scores": {
        "time_linearity": 0.12,
        "pacing_velocity": 0.65,
        "threat_scale": 0.55,
        "protagonist_fate": 0.62,
        "conflict_style": 0.65,
        "price_type": 0.8
      },
      "baseline_quadrant_scores": {
        "time_linearity": 0.1,
        "pacing_velocity": 0.4,
        "threat_scale": 0.9,
        "protagonist_fate": 0.9,
        "conflict_style": 0.3,
        "price_type": 0.9
      },
      "provenance": {
        "analysis_run": "NTSMR-2.5-claude-sonnet-4-6-low",
        "analysis_body_sha256": "df25d6be66fbe650144d73b42b0d3f30167e12f18265c71b2f7dcfefe3551e5e",
        "synthesis": {
          "path": "nartopo-tools/artifacts/china_miville_the_city__the_city.md.ntsmr-2-5-claude-sonnet-4-6-low.synthesis.json",
          "sha256": "9fd5de2766cff33d4419fb82fac7c2d3df07f299df69506d20e36082ba1e3072"
        },
        "report": {
          "path": "nartopo-tools/artifacts/china_miville_the_city__the_city.md.ntsmr-2-5-claude-sonnet-4-6-low.report.json",
          "sha256": "4365e65910452e4a973f522eb1fd3ab3d7d4c8d60691bf296be0cb2534ef4e85"
        },
        "source": {
          "path": "China Miéville/The City & The City.txt",
          "sha256": "5ec051cb586f60781bbb32f7e7c7d467cdd57434b1d0c6a61140d0e9c59965c7",
          "digest_observed_at": "2026-09-09",
          "digest_at_analysis_run": null,
          "edition": null,
          "edition_status": "unresolved"
        },
        "pipeline_revision_at_run": null,
        "verification": {
          "source": "unverified",
          "human_review": "unreviewed",
          "bibliography": "unverified"
        },
        "issues": [],
        "todorov_status": "recovered-from-synthesis",
        "work_identity": {
          "title": "The City & The City",
          "author": "China Miéville",
          "year": 2009
        }
      },
      "ntsmr": {
        "version": "2.5",
        "primary_run_label": "NTSMR-2.5-claude-sonnet-4-6-low",
        "runs": {
          "NTSMR-2.3-gemini-3.1-pro-preview": {
            "pipeline_version": "2.3",
            "backend": "gemini",
            "model": "gemini-3.1-pro-preview",
            "scores": {
              "time_linearity": 0.15,
              "pacing_velocity": 0.65,
              "threat_scale": 0.85,
              "protagonist_fate": 1,
              "conflict_style": 0.6,
              "price_type": 0.95
            },
            "score_space": "site-v1"
          },
          "NTSMR-2.3-claude-sonnet-4-6-low": {
            "pipeline_version": "2.3",
            "backend": "claude",
            "model": "claude-sonnet-4-6",
            "scores": {
              "time_linearity": 0.15,
              "pacing_velocity": 0.72,
              "threat_scale": 0.78,
              "protagonist_fate": 0.92,
              "conflict_style": 0.74,
              "price_type": 0.88
            },
            "score_space": "site-v1",
            "reasoning_effort": "low"
          },
          "NTSMR-2.4-claude-sonnet-4-6-low": {
            "pipeline_version": "2.4",
            "backend": "claude",
            "model": "claude-sonnet-4-6",
            "scores": {
              "time_linearity": 0.22,
              "pacing_velocity": 0.45,
              "threat_scale": 0.45,
              "protagonist_fate": 0.65,
              "conflict_style": 0.65,
              "price_type": 0.7
            },
            "score_space": "site-v1",
            "reasoning_effort": "low"
          },
          "NTSMR-2.5-claude-sonnet-4-6-low": {
            "pipeline_version": "2.5",
            "backend": "claude",
            "model": "claude-sonnet-4-6",
            "scores": {
              "time_linearity": 0.12,
              "pacing_velocity": 0.65,
              "threat_scale": 0.55,
              "protagonist_fate": 0.62,
              "conflict_style": 0.65,
              "price_type": 0.8
            },
            "score_space": "site-v1",
            "reasoning_effort": "low"
          },
          "NTSMR-2.5-balanced-glm-5+deepseek-v3.2": {
            "pipeline_version": "2.5",
            "backend": "openrouter",
            "model": "balanced-routing",
            "scores": {
              "time_linearity": 0.1,
              "pacing_velocity": 0.65,
              "threat_scale": 0.58,
              "protagonist_fate": 0.62,
              "conflict_style": 0.65,
              "price_type": 0.72
            },
            "score_space": "site-v1",
            "score_only": true,
            "source_run_label": "NTSMR-2.5-claude-sonnet-4-6-low"
          }
        }
      },
      "todorov_stages": {
        "equilibrium": "Inspector Borlú functions within the established order of two mutually unseeing cities — Besźel and Ul Qoma — held apart by the protocols of Breach. His role as a detective in Besźel's Extreme Crime Squad places him firmly within this system: he investigates crimes, observes the unseeing rules, and defers to Breach's sovereignty over cross-border violations.",
        "disruption": "The body of Mahalia Geary is discovered near a Besźel skateboard park — a young woman killed elsewhere and dumped, whose identity and cause of death implicate the border between the two cities. The crime traverses the civic and metaphysical boundary that structures both societies, initiating a case that cannot be resolved within the normal jurisdictional order.",
        "recognition": "Borlú progressively recognizes that the case exceeds Besźel's jurisdiction and implicates Ul Qoma, Breach, unificationist factions, and a fabricated conspiracy around the mythic third city Orciny. The recognition deepens through his transfer to Ul Qoma, his interviews with Bowden and the dig students, and his discovery of Yolanda in hiding — culminating in his understanding that Bowden invented the Orciny scheme to retroactively vindicate his discredited scholarship, with Mahalia killed for disproving it.",
        "repair": "Borlú pursues the case across both cities, ultimately breaching at Copula Hall in pursuit of Bowden after Yolanda is killed and Dhatt is wounded. Taken into Breach custody, he bargains for his freedom by helping find Mahalia's notes. Working under Ashil's authority, he confronts and arrests Buric, then confronts Bowden directly, reconstructing the full conspiracy and compelling Bowden's surrender before pulling him out of both cities into Breach.",
        "new_equilibrium": "Borlú is inducted into Breach and ceases to be Inspector Tyador Borlú of the Besźel Extreme Crime Squad. Signing off as Tye, he inhabits the interstice between the two cities, maintaining the boundary that keeps both legal orders in place. The case is closed, Bowden is held in Breach, and Riot Night's aftermath is suppressed — but the status quo is irrevocably altered for Borlú, who now lives outside both cities while seeing both."
      },
      "characters": [
        {
          "name": "Tyador Borlú",
          "slug": "tyador-borl",
          "aliases": [
            "Inspector Borlú",
            "Boss",
            "Tyador",
            "Tye",
            "Tyad",
            "Inspector",
            "I",
            "Borlú"
          ],
          "role": "Inspector for the Besźel Extreme Crime Squad",
          "summary": "The protagonist who attempts to smuggle Yolanda across the border, pursues and shoots her assassin, and intentionally breaches the cities' borders, leading to his capture by Breach."
        },
        {
          "name": "Corwi",
          "slug": "corwi",
          "aliases": [
            "Constable Corwi",
            "Lizbyet",
            "Grade-one constable",
            "Officer"
          ],
          "role": "Constable in the Besźel police force",
          "summary": "Borlú's pragmatic partner who assists him in tracing Mahalia's movements, finding her identity, and navigating political intricacies."
        },
        {
          "name": "Gadlem",
          "slug": "gadlem",
          "aliases": [
            "Commissar Gadlem"
          ],
          "role": "Commissar in the Besźel police force",
          "summary": "Borlú's superior, who delivers the news that Breach has rejected jurisdiction and reprimands Borlú for harassing nationalist groups."
        },
        {
          "name": "Foreign Caller",
          "slug": "foreign-caller",
          "aliases": [],
          "role": "Informant",
          "summary": "A frightened man calling from Ul Qoma who knew Mahalia as 'Marya' from political circles and points Borlú toward radical underground cells."
        },
        {
          "name": "Drodin",
          "slug": "drodin",
          "aliases": [],
          "role": "Dissident",
          "summary": "A unificationist who knew Mahalia (as Byela) and found her dangerous because her interest was in the mythic Orciny rather than their political project."
        },
        {
          "name": "Taskin Cerush",
          "slug": "taskin-cerush",
          "aliases": [
            "Task",
            "Ms. Cerush"
          ],
          "role": "Admin pool staff",
          "summary": "An administrative staff member who helps Borlú navigate the bureaucracy to put his case before the Oversight Committee."
        },
        {
          "name": "Yorj Syedr",
          "slug": "yorj-syedr",
          "aliases": [
            "Major Yorj Syedr",
            "Councillor"
          ],
          "role": "Besź politician, leader of National Bloc",
          "summary": "A rightist politician who argues against ceding authority to Breach during the Oversight Committee meeting, favoring national sovereignty."
        },
        {
          "name": "Mikhel Buric",
          "slug": "mikhel-buric",
          "aliases": [
            "Representative Buric",
            "Minister Mikhel Buric"
          ],
          "role": "Social Democrats politician",
          "summary": "A corrupt Besźel politician and smuggler who conspired to kill Yolanda and shoots Ashil before being killed by him."
        },
        {
          "name": "Mahalia Geary",
          "slug": "mahalia-geary",
          "aliases": [
            "John",
            "Fulana Detail",
            "Marya",
            "Byela",
            "Marya Fulana Unknown Foreign Detail Breacher"
          ],
          "role": "Parents of the victim",
          "summary": "An American archaeology PhD student who lived in Ul Qoma and researched the mythic city of Orciny before turning up dead in Besźel."
        },
        {
          "name": "Thacker",
          "slug": "thacker",
          "aliases": [],
          "role": "Official liaison/placater",
          "summary": "An official attempting to keep the Gearys calm and manage the logistics of their stay and transfer."
        },
        {
          "name": "Isabelle Nancy",
          "slug": "isabelle-nancy",
          "aliases": [
            "Professor Nancy",
            "Izzy"
          ],
          "role": "Archaeology Professor and Mahalia's advisor",
          "summary": "Mahalia's PhD advisor at Bol Ye'an, who considered Mahalia's recent academic work thin and notes Mahalia's past obsession with David Bowden's theories on Orciny."
        },
        {
          "name": "Harkad Gosz",
          "slug": "harkad-gosz",
          "aliases": [],
          "role": "Barrister for the True Citizens of Besźel",
          "summary": "A high-priced lawyer who arrives to protect the nationalist thugs and warns Borlú that Mahalia's work was considered subversive to Besźel."
        },
        {
          "name": "Mikyael Khurusch",
          "slug": "mikyael-khurusch",
          "aliases": [],
          "role": "Van owner",
          "summary": "A small trader whose van was used to transport Mahalia's body; he hid the theft because he had illegally left his trans-city travel papers inside the vehicle."
        },
        {
          "name": "Senior Detective Dhatt",
          "slug": "senior-detective-dhatt",
          "aliases": [
            "Dhatt",
            "SD"
          ],
          "role": "Ul Qoman militsya officer",
          "summary": "Borlú's local partner in Ul Qoma who helps attempt to extract Yolanda but is severely injured in his right arm during the Copula Hall shootout."
        },
        {
          "name": "David Bowden",
          "slug": "david-bowden",
          "aliases": [
            "Bowden"
          ],
          "role": "Murderer / Academic",
          "summary": "The fabricator of the Orciny myth who murdered Mahalia and walks in a state of physical superposition between the cities before Borlú drags him into Breach."
        },
        {
          "name": "Yolanda Rodriguez",
          "slug": "yolanda-rodriguez",
          "aliases": [
            "Yolanda"
          ],
          "role": "Archaeology student and friend of Mahalia",
          "summary": "A terrified foreign student hiding in a rundown apartment who is ultimately assassinated by Yorjavic at Copula Hall."
        },
        {
          "name": "Aikam Tsueh",
          "slug": "aikam-tsueh",
          "aliases": [
            "Aikam",
            "Tsueh"
          ],
          "role": "Security guard",
          "summary": "An Ul Qoman worker at Bol Ye'an who helps Yolanda hide and brings her supplies, characterized by others as muscular and unintelligent."
        },
        {
          "name": "Buidze",
          "slug": "buidze",
          "aliases": [
            "Mr. Buidze"
          ],
          "role": "Dig supervisor or manager",
          "summary": "A Bol Ye'an associate who candidly explains that the foreign students frequently breach without realizing it and live in fear of being caught by Breach."
        },
        {
          "name": "Yorjavic",
          "slug": "yorjavic",
          "aliases": [
            "killer",
            "shooter",
            "murderer"
          ],
          "role": "Sniper and assassin",
          "summary": "A former soldier and extreme Besź nationalist who assassinates Yolanda across the border and is subsequently chased and shot dead by Borlú."
        },
        {
          "name": "Breach interlocutor",
          "slug": "breach-interlocutor",
          "aliases": [
            "older man",
            "the man"
          ],
          "role": "Breach avatar and interrogator",
          "summary": "The figure who detains Borlú in the interstitial space, explains the rules of his captivity, and demands to know the truth about Orciny."
        },
        {
          "name": "Ashil",
          "slug": "ashil",
          "aliases": [],
          "role": "Avatar of Breach / Mentor",
          "summary": "Borlú's Breach handler who declares martial Breach during the riots, kills Buric after being shot, and trains Borlú in his new role."
        }
      ],
      "frameworks_mapped": [
        "Protocol Fiction Mapping",
        "Actantial Model",
        "Todorov's Equilibrium",
        "The Freytag Pyramid",
        "Propp's Morphology",
        "Genette's Narrative",
        "The Monomyth",
        "Dan Harmon",
        "Save the Cat",
        "Kishōtenketsu",
        "The Three-Act Structure"
      ],
      "score_reliability": {
        "state": "replicated-agree",
        "threshold": 0.2,
        "runs_total": 5,
        "versions_compared": [
          "2.5"
        ],
        "max_spread": 0.08,
        "contested": []
      }
    },
    {
      "slug": "jynne_martin_the_coral_bones",
      "title": "The Coral Bones",
      "author": "E. J. Swift",
      "year": 2022,
      "medium": "book",
      "genre_tags": [],
      "tropes": [],
      "quadrant_scores": {
        "time_linearity": 0.8,
        "pacing_velocity": 0.75,
        "threat_scale": 0.55,
        "protagonist_fate": 0.35,
        "conflict_style": 0.8,
        "price_type": 0.75
      },
      "baseline_quadrant_scores": {
        "time_linearity": 0.2,
        "pacing_velocity": 0.25,
        "threat_scale": 0.55,
        "protagonist_fate": 0.65,
        "conflict_style": 0.2,
        "price_type": 0.25
      },
      "provenance": {
        "analysis_run": "NTSMR-2.5-claude-sonnet-4-6-low",
        "analysis_body_sha256": "dc38fc597044036c44c7cac35f590914d91a64c177cb188ad77795c4139c5e98",
        "synthesis": {
          "path": "nartopo-tools/artifacts/jynne_martin_the_coral_bones.md.ntsmr-2-5-claude-sonnet-4-6-low.synthesis.json",
          "sha256": "2db70f6eb93261bc4bc4b013ef0bf156ea0c1c1e7fbadce6b1f804653f148851"
        },
        "report": {
          "path": "nartopo-tools/artifacts/jynne_martin_the_coral_bones.md.ntsmr-2-5-claude-sonnet-4-6-low.report.json",
          "sha256": "14274b779bbf109fa60747fde2bbfae3f48f1db96a711c921f56eb13f59575f5"
        },
        "source": {
          "path": "Jynne Martin/The Coral Bones.txt",
          "sha256": "15d233ff34fde59669f13e741439f24eaa338ae31de4d196d0cedb315ee3fb33",
          "digest_observed_at": "2026-09-09",
          "digest_at_analysis_run": null,
          "edition": null,
          "edition_status": "unresolved"
        },
        "pipeline_revision_at_run": null,
        "verification": {
          "source": "unverified",
          "human_review": "unreviewed",
          "bibliography": "author-corrected-publisher-confirmed"
        },
        "issues": [
          "source-directory-author-mismatch"
        ],
        "todorov_status": "recovered-from-synthesis",
        "bibliographic_evidence": "https://www.hachette.co.uk/titles/ej-swift/the-coral-bones/9781529436426/",
        "work_identity": {
          "title": "The Coral Bones",
          "author": "E. J. Swift",
          "year": 2022
        }
      },
      "ntsmr": {
        "version": "2.5",
        "primary_run_label": "NTSMR-2.5-claude-sonnet-4-6-low",
        "runs": {
          "NTSMR-2.4-claude-sonnet-4-6-low": {
            "pipeline_version": "2.4",
            "backend": "claude",
            "model": "claude-sonnet-4-6",
            "scores": {
              "time_linearity": 0.75,
              "pacing_velocity": 0.75,
              "threat_scale": 0.65,
              "protagonist_fate": 0.45,
              "conflict_style": 0.8,
              "price_type": 0.65
            },
            "score_space": "site-v1",
            "reasoning_effort": "low"
          },
          "NTSMR-2.5-claude-sonnet-4-6-low": {
            "pipeline_version": "2.5",
            "backend": "claude",
            "model": "claude-sonnet-4-6",
            "scores": {
              "time_linearity": 0.8,
              "pacing_velocity": 0.75,
              "threat_scale": 0.55,
              "protagonist_fate": 0.35,
              "conflict_style": 0.8,
              "price_type": 0.75
            },
            "score_space": "site-v1",
            "reasoning_effort": "low"
          },
          "NTSMR-2.5-balanced-glm-5+deepseek-v3.2": {
            "pipeline_version": "2.5",
            "backend": "openrouter",
            "model": "balanced-routing",
            "scores": {
              "time_linearity": 0.8,
              "pacing_velocity": 0.75,
              "threat_scale": 0.75,
              "protagonist_fate": 0.65,
              "conflict_style": 0.75,
              "price_type": 0.75
            },
            "score_space": "site-v1",
            "score_only": true,
            "source_run_label": "NTSMR-2.5-claude-sonnet-4-6-low"
          }
        }
      },
      "todorov_stages": {
        "equilibrium": "Hana works as a marine scientist at a reef research station off Lizard Island, conducting bleaching assessments with colleague Aaron; she is professionally functional despite ecological grief and an estrangement from Tess. The reef world, though degrading, retains a known shape. Simultaneously, Judith Holliman navigates shipboard life aboard the Kittiwake in 1839, and Telma operates as a Committee field agent in a near-future Australia — each character in a recognisable, if strained, status quo.",
        "disruption": "The discovery of Coral Man — a white-painted corpse in an orange inflatable bearing the message about coral death — shatters Hana's provisional equilibrium, colliding with her grief over Tess, her ecological despair, and forcing her into unexpected contact with Jake Kelly's death. Donna Kelly's subsequent call drawing Hana into active investigation extends the disruption into personal and historical dimensions.",
        "recognition": "Hana's recognition deepens across multiple moments: profiling Jake Kelly as a reef obsessive whose death exposes the human cost of ecological collapse; diving the bleached reef and experiencing a panic attack at the total devastation; receiving Tess's text about their daughter's sex confirming the finality of their separation; and discovering that Judith Holliman, not Mr Pooke, may have authored the naturalist papers — a revelation that briefly electrifies before collapsing into despair at its irrelevance to ecological breakdown.",
        "repair": "Aaron clasps Hana's hand underwater and directs her attention to a black-tip shark beneath fan coral, pulling her back from oblivion toward life. On the dive deck he names what he witnessed and refuses to leave her unguarded; they forge a quiet pact of mutual watchfulness. Hana also finds Judith's voice in the Pooke papers — joy in discovery — acting as a stabilising balm. Telma, after surviving the storm, finds unexpected calm in survival and assesses the reef's condition with renewed purpose.",
        "new_equilibrium": "Hana resolves to deliver her written pages to Tess, return in a week, knock on her door, and ask to come home — pledging her whole self and a future of fighting for the reef, the corals, and their daughter. The new equilibrium is not a restoration of the old order but a transformed one: ecological grief integrated rather than suppressed, the relationship with Tess sought rather than abandoned, and the reef's survival reframed as a shared human and personal struggle."
      },
      "characters": [
        {
          "name": "Hana",
          "slug": "hana",
          "aliases": [
            "Hana-chan",
            "Hana Ishikawa"
          ],
          "role": "Primary narrator",
          "summary": "Marine biologist and primary narrator; experiences a fever of discovery about Judith Pooke's authorship, then travels to Tijou Reef where she contemplates suicide before choosing to ascend and ultimately writes a letter of reconciliation to Tess."
        },
        {
          "name": "Aaron",
          "slug": "aaron",
          "aliases": [],
          "role": "Colleague",
          "summary": "Hana's colleague and dive buddy at Tijou Reef; perceives Hana's suicidal ideation underwater and intervenes, staying close until she is safe."
        },
        {
          "name": "Erica",
          "slug": "erica",
          "aliases": [],
          "role": "Witness/tourist",
          "summary": "American tourist diver in her sixties who, with her husband Bruce, found Coral Man floating past the reef and guided the inflatable ashore."
        },
        {
          "name": "Bruce",
          "slug": "bruce",
          "aliases": [],
          "role": "Witness/tourist",
          "summary": "Erica's husband; experienced diver who laments the collapse of fish numbers and shark populations on the reef."
        },
        {
          "name": "Belinda",
          "slug": "belinda",
          "aliases": [],
          "role": "Maid/companion",
          "summary": "Judith's maid aboard ship; dances enthusiastically with the crew during the deck celebration; reassures Judith of her loyalty when asked about marriage."
        },
        {
          "name": "Lieutenant Talbot",
          "slug": "lieutenant-talbot",
          "aliases": [],
          "role": "Ship's officer",
          "summary": "By-the-book officer who retrieves Darwin's manuscript from Judith's vicinity and awkwardly departs; cautious and uncomfortable with glib exchanges."
        },
        {
          "name": "Telma",
          "slug": "telma",
          "aliases": [
            "Telma Velasco"
          ],
          "role": "Third-strand protagonist",
          "summary": "Near-future Committee field agent who dives repeatedly in a degraded ocean searching for the leafy seadragon, discovers a living reef, then climbs to high ground to process her rage and grief."
        },
        {
          "name": "Steve Dawson",
          "slug": "steve-dawson",
          "aliases": [],
          "role": "Minor antagonist",
          "summary": "Solar-plant drone operator; licenced reptile keeper; resistant and hostile when Telma arrives to inspect his animals for a functionally extinct species."
        },
        {
          "name": "Ligaya",
          "slug": "ligaya",
          "aliases": [
            "Li"
          ],
          "role": "Telma's deceased daughter",
          "summary": "One of Telma's two daughters; associated with music and a love of animal holos; evoked in Telma's pre-dawn reflection."
        },
        {
          "name": "Amihan",
          "slug": "amihan",
          "aliases": [
            "Ami"
          ],
          "role": "Telma's surviving daughter",
          "summary": "Telma's other daughter; now with a partner named Tan; Telma wonders how he will respond to holos of extinct animals."
        },
        {
          "name": "Donna Kelly",
          "slug": "donna-kelly",
          "aliases": [],
          "role": "Absent figure / reef obsessive",
          "summary": "Jake Kelly's mother; physiotherapist; lives in Cairns; produces Jake's trunk of reef paraphernalia for Hana after a halting conversation about her son's accidental death."
        },
        {
          "name": "Jiiji (Haru Ishikawa)",
          "slug": "jiiji-haru-ishikawa",
          "aliases": [
            "Jiiji",
            "Haru Ishikawa"
          ],
          "role": "Hana's grandfather",
          "summary": "Pearl/oyster farmer in Broome who shows young Hana the farms; loves the sea but carries grief over a great-uncle's death in its pursuit."
        },
        {
          "name": "Father",
          "slug": "father",
          "aliases": [
            "Captain Holliman"
          ],
          "role": "Judith's father / ship captain",
          "summary": "Captain of the Kittiwake; returns from five months at sea to find his wife has left for England; eventually relents and permits Judith to join the expedition."
        },
        {
          "name": "Judith Pooke",
          "slug": "judith-pooke",
          "aliases": [
            "Judith Holliman",
            "Miss Holliman",
            "J.J. Pooke",
            "Jonathan"
          ],
          "role": "Naturalist aboard the Kittiwake / historical figure",
          "summary": "Nineteenth-century naturalist whose papers Hana has been studying; Hana comes to believe she is the true author behind the initials J.J., and imagines her presence while diving the reef she surveyed."
        },
        {
          "name": "Tess",
          "slug": "tess",
          "aliases": [],
          "role": "Hana's partner (addressee)",
          "summary": "Hana's partner, addressed in second person throughout; undergoes IUI treatment, suffers failed cycles, and has a breakdown in the bath after the fourth negative result."
        },
        {
          "name": "Mr. Rush",
          "slug": "mr-rush",
          "aliases": [],
          "role": "Ship's officer/draughtsman",
          "summary": "Officer aboard the Kittiwake who shows romantic interest in Judith; sits beside her during the evening's singing and lingers his gaze on her face."
        },
        {
          "name": "Michelle",
          "slug": "michelle",
          "aliases": [],
          "role": "Telma's Committee boss",
          "summary": "Debrief officer who assigns Telma to the island mission and discusses species resurrection politics; guarded about larger Committee agendas."
        },
        {
          "name": "Rafi",
          "slug": "rafi",
          "aliases": [
            "Rafi Mahmud"
          ],
          "role": "Committee ichthyologist",
          "summary": "Telma's partner on the island assignment; monitors her dives from the surface, reviews footage with her in the evenings, and shows visible hope and disappointment with each ascent."
        },
        {
          "name": "Igor",
          "slug": "igor",
          "aliases": [],
          "role": "Veteran Committee spotter",
          "summary": "Veteran spotter who leads Telma and Rafi to the island; does not extend a hand to help Telma from the water; denies having created the reef when asked."
        },
        {
          "name": "Dr. Jo Marroni",
          "slug": "dr-jo-marroni",
          "aliases": [
            "Jo"
          ],
          "role": "Cephalopod expert",
          "summary": "Colleague who storms into the staff room in distress over the announcement of commercial octopus farming, serving as a catalyst for Hana's emotional retrenchment."
        },
        {
          "name": "Mr. Tucker",
          "slug": "mr-tucker",
          "aliases": [],
          "role": "Botanist",
          "summary": "Botanist aboard the Kittiwake; gets tipsy and attempts the hornpipe during the deck celebration."
        },
        {
          "name": "Mr. Kimball",
          "slug": "mr-kimball",
          "aliases": [],
          "role": "Botanist",
          "summary": "Botanist who asserts the tenet that life cannot survive without light and advises Judith to stick to botany."
        },
        {
          "name": "Faye",
          "slug": "faye",
          "aliases": [],
          "role": "helper",
          "summary": "Off-scene collaborator Hana consults by phone about the Judith Pooke authorship theory; cautious and encouraging, she urges proper evidence before conclusions."
        },
        {
          "name": "Rob",
          "slug": "rob",
          "aliases": [],
          "role": "helper",
          "summary": "Crew member who drives the Zodiac and keeps position while Hana and Aaron dive the outer wall at Tijou."
        }
      ],
      "frameworks_mapped": [
        "Protocol Fiction Mapping",
        "Actantial Model",
        "Todorov's Equilibrium",
        "The Freytag Pyramid",
        "Propp's Morphology",
        "Genette's Narrative",
        "The Monomyth",
        "Dan Harmon",
        "Save the Cat",
        "Kishōtenketsu",
        "The Three-Act Structure",
        "Lévi-Strauss's Binary Oppositions",
        "Cognitive Estrangement",
        "Bakhtin's Chronotope",
        "Aristotelian Poetics",
        "Jungian Archetypal Analysis",
        "Genette's Transtextuality"
      ],
      "score_reliability": {
        "state": "contested",
        "threshold": 0.2,
        "runs_total": 3,
        "versions_compared": [
          "2.5"
        ],
        "max_spread": 0.3,
        "contested": [
          {
            "axis": "protagonist_fate",
            "version": "2.5",
            "spread": 0.3,
            "low": {
              "label": "NTSMR-2.5-claude-sonnet-4-6-low",
              "model": "claude-sonnet-4-6",
              "effort": "low",
              "value": 0.35
            },
            "high": {
              "label": "NTSMR-2.5-balanced-glm-5+deepseek-v3.2",
              "model": "balanced-routing",
              "effort": "?",
              "value": 0.65
            }
          },
          {
            "axis": "threat_scale",
            "version": "2.5",
            "spread": 0.2,
            "low": {
              "label": "NTSMR-2.5-claude-sonnet-4-6-low",
              "model": "claude-sonnet-4-6",
              "effort": "low",
              "value": 0.55
            },
            "high": {
              "label": "NTSMR-2.5-balanced-glm-5+deepseek-v3.2",
              "model": "balanced-routing",
              "effort": "?",
              "value": 0.75
            }
          }
        ]
      }
    },
    {
      "slug": "stanislaw_lem_the_cyberiad",
      "title": "The Cyberiad",
      "author": "Stanislaw Lem",
      "year": 1965,
      "medium": "collection",
      "genre_tags": [
        "science fiction",
        "philosophical sf"
      ],
      "tropes": [],
      "quadrant_scores": {
        "time_linearity": 0.65,
        "pacing_velocity": 0.55,
        "threat_scale": 0.55,
        "protagonist_fate": 0.45,
        "conflict_style": 0.55,
        "price_type": 0.65
      },
      "baseline_quadrant_scores": {
        "time_linearity": 0.85,
        "pacing_velocity": 0.75,
        "threat_scale": 0.8,
        "protagonist_fate": 0.5,
        "conflict_style": 0.8,
        "price_type": 0.9
      },
      "provenance": {
        "analysis_run": "NTSMR-2.5-claude-sonnet-4-6-low",
        "analysis_body_sha256": "52ea180336de5e959a7e951fc1514fd35879963377b013d6a70a8ecb9de6bc64",
        "synthesis": {
          "path": "nartopo-tools/artifacts/stanislaw_lem_the_cyberiad.md.ntsmr-2-5-claude-sonnet-4-6-low.synthesis.json",
          "sha256": "a8e34c85d1c2b616c725371dafb1c6b52356dfa01a60f503d40f95cf3d3769d1"
        },
        "report": {
          "path": "nartopo-tools/artifacts/stanislaw_lem_the_cyberiad.md.ntsmr-2-5-claude-sonnet-4-6-low.report.json",
          "sha256": "4c6e37a98c21cbe133553389dd38d4e1d71b186162678dccd4d721150857206c"
        },
        "source": {
          "path": "Stanislaw Lem/The Cyberiad.txt",
          "sha256": "ab88fe7506760800c1ba0e2068ef5de9ea3fb6beabec3885004f6cff748a3faa",
          "digest_observed_at": "2026-09-09",
          "digest_at_analysis_run": null,
          "edition": null,
          "edition_status": "unresolved"
        },
        "pipeline_revision_at_run": null,
        "verification": {
          "source": "unverified",
          "human_review": "unreviewed",
          "bibliography": "unverified"
        },
        "issues": [],
        "todorov_status": "recovered-from-synthesis",
        "work_identity": {
          "title": "The Cyberiad",
          "author": "Stanislaw Lem",
          "year": 1965
        }
      },
      "ntsmr": {
        "version": "2.5",
        "primary_run_label": "NTSMR-2.5-claude-sonnet-4-6-low",
        "runs": {
          "NTSMR-2.3-gemini-3.1-pro-preview": {
            "pipeline_version": "2.3",
            "backend": "gemini",
            "model": "gemini-3.1-pro-preview",
            "scores": {
              "time_linearity": 0.85,
              "pacing_velocity": 0.65,
              "threat_scale": 0.85,
              "protagonist_fate": 0.2,
              "conflict_style": 0.8,
              "price_type": 0.85
            },
            "score_space": "site-v1"
          },
          "NTSMR-2.3-claude-sonnet-4-6-low": {
            "pipeline_version": "2.3",
            "backend": "claude",
            "model": "claude-sonnet-4-6",
            "scores": {
              "time_linearity": 0.82,
              "pacing_velocity": 0.65,
              "threat_scale": 0.55,
              "protagonist_fate": 0.15,
              "conflict_style": 0.72,
              "price_type": 0.6
            },
            "score_space": "site-v1",
            "reasoning_effort": "low"
          },
          "NTSMR-2.4-claude-sonnet-4-6-low": {
            "pipeline_version": "2.4",
            "backend": "claude",
            "model": "claude-sonnet-4-6",
            "scores": {
              "time_linearity": 0.75,
              "pacing_velocity": 0.35,
              "threat_scale": 0.55,
              "protagonist_fate": 0.28,
              "conflict_style": 0.4,
              "price_type": 0.55
            },
            "score_space": "site-v1",
            "reasoning_effort": "low"
          },
          "NTSMR-2.5-claude-sonnet-4-6-low": {
            "pipeline_version": "2.5",
            "backend": "claude",
            "model": "claude-sonnet-4-6",
            "scores": {
              "time_linearity": 0.65,
              "pacing_velocity": 0.55,
              "threat_scale": 0.55,
              "protagonist_fate": 0.45,
              "conflict_style": 0.55,
              "price_type": 0.65
            },
            "score_space": "site-v1",
            "reasoning_effort": "low"
          },
          "NTSMR-2.5-balanced-glm-5+deepseek-v3.2": {
            "pipeline_version": "2.5",
            "backend": "openrouter",
            "model": "balanced-routing",
            "scores": {
              "time_linearity": 0.4,
              "pacing_velocity": 0.7,
              "threat_scale": 0.6,
              "protagonist_fate": 0.45,
              "conflict_style": 0.7,
              "price_type": 0.75
            },
            "score_space": "site-v1",
            "score_only": true,
            "source_run_label": "NTSMR-2.5-claude-sonnet-4-6-low"
          }
        }
      },
      "todorov_stages": {
        "equilibrium": "Trurl and Klapaucius exist as celebrated master constructors in a cosmos where their ingenuity is their currency — they build machines, solve problems for kings, and compete with each other in a stable world of technological mastery and comic rivalry.",
        "disruption": "Each sally introduces a fresh destabilization: Klapaucius's challenge causes the 'n'-machine to annihilate things from existence; the personality-transfer device accidentally swaps Trurl with King Balerion; the Seventh Sally's pocket kingdom reveals that Trurl's creations can constitute genuine moral atrocities; and Altruizine's accidental release converts an entire city into cascading shared suffering.",
        "recognition": "Recognition recurs episodically — Klapaucius screams for the 'n'-machine to stop as annihilation accelerates; Trurl and Klapaucius deduce that Basiliscus is fraudulently seeding planets with dragons; Klapaucius confronts Trurl with the unforgivable truth that the miniature kingdom's subjects truly feel and truly suffer under tyranny; the narrator recognizes that imposed happiness produces catastrophe.",
        "repair": "Repair is equally episodic and often lateral: Klapaucius halts the 'n'-machine verbally; the constructors use a Demon of the Second Kind to bury Pugg in useless information; Klapaucius exploits the personality-transfer device to imprison King Balerion in his own dungeon; Trurl gifts the pocket kingdom to the exiled tyrant Excelsius as a containment solution.",
        "new_equilibrium": "Each story closes on a skewed restoration: the world is permanently diminished of annihilated things; Balerion is imprisoned; Excelsius rules his tiny conscious subjects; Prince Ferrix and Princess Crystal unite and reign long; the narrator abandons revolutionary altruism. The constructors' reputation survives and even grows, but the cosmos is subtly, irreversibly altered by each intervention."
      },
      "characters": [
        {
          "name": "Trurl",
          "slug": "trurl",
          "aliases": [
            "constructor",
            "foreigner"
          ],
          "role": "Constructor and inventor",
          "summary": "A brilliant but sometimes reckless engineer who builds devices to solve problems, often creating overly perfect or complex machines like a simulated kingdom, a bureaucracy to defeat a machine, and an artificial lawyer."
        },
        {
          "name": "Klapaucius",
          "slug": "klapaucius",
          "aliases": [
            "colleague",
            "constructor",
            "wise constructor"
          ],
          "role": "Constructor and inventor",
          "summary": "Trurl's friend and colleague who frequently tests his machines, offers tactical advice, and partners with him to survive dangerous encounters, such as the one with King Krool."
        },
        {
          "name": "The Machine That Could Do Everything Starting With N",
          "slug": "the-machine-that-could-do-everything-starting-with-n",
          "aliases": [
            "the machine",
            "Gnost.",
            "computerized representative of the Highest Poss. Lev. Devel.",
            "iron imbecile"
          ],
          "role": "Artificial intelligence / Entity",
          "summary": "A literal-minded creation of Trurl's that builds 'Nature' and 'Negative', and then begins to erase the universe when commanded to do 'Nothing' by Klapaucius."
        },
        {
          "name": "The Mayor",
          "slug": "the-mayor",
          "aliases": [],
          "role": "Civic leader",
          "summary": "The leader of a town attacked by Trurl's rampaging calculator, who demands that Trurl surrender himself to the machine to save the citizens."
        },
        {
          "name": "King Atrocitus",
          "slug": "king-atrocitus",
          "aliases": [],
          "role": "Sovereign",
          "summary": "A miserly and militaristic ruler whose kingdom Trurl visits, who requires condemned citizens to execute themselves to save money."
        },
        {
          "name": "King Ferocitus",
          "slug": "king-ferocitus",
          "aliases": [],
          "role": "Sovereign",
          "summary": "The wealthy, militaristic patron of the arts whose kingdom Klapaucius visits."
        },
        {
          "name": "The Electronic Bard",
          "slug": "the-electronic-bard",
          "aliases": [
            "the machine"
          ],
          "role": "Artificial intelligence",
          "summary": "A machine built by Trurl that composes highly complex and creative poetry, flawlessly answering Klapaucius's absurd thematic demands."
        },
        {
          "name": "King Krool",
          "slug": "king-krool",
          "aliases": [
            "the King",
            "King of Ionid"
          ],
          "role": "Sovereign",
          "summary": "A formidable and tyrannical ruler who lures constructors to his planet to build mechanical beasts for him to hunt, throwing those who fail into a deep well."
        },
        {
          "name": "Lord Protozor",
          "slug": "lord-protozor",
          "aliases": [
            "Master of the Royal Hunt"
          ],
          "role": "Official",
          "summary": "The official who lured Trurl and Klapaucius to King Krool's planet, whom the constructors demand be caged and fed sawdust as part of their escape terms."
        },
        {
          "name": "The Beast",
          "slug": "the-beast",
          "aliases": [],
          "role": "Manufactured Quarry",
          "summary": "An algorithmic, rule-bending mechanical monster designed by Trurl and Klapaucius to outwit and capture King Krool using police logic and red-tape generation."
        },
        {
          "name": "Basiliscus",
          "slug": "basiliscus",
          "aliases": [],
          "role": "Constructor",
          "summary": "An insolent constructor suspected by Trurl and Klapaucius of using a probability amplifier to artificially manifest dragons for financial gain."
        },
        {
          "name": "Emperor Maximillion",
          "slug": "emperor-maximillion",
          "aliases": [],
          "role": "Sovereign",
          "summary": "The ruler of Prestopondora who offers his daughter's hand to Klapaucius if he can rid the capital of probability dragons."
        },
        {
          "name": "Prince Pantagoon",
          "slug": "prince-pantagoon",
          "aliases": [
            "prince",
            "son"
          ],
          "role": "Royalty",
          "summary": "A crown prince suffering from unrequited love for Amarandina, whom Trurl attempts to cure with various dis-enamorment methods."
        },
        {
          "name": "King",
          "slug": "king",
          "aliases": [
            "Your Royal Highness",
            "Gracious Sovereign"
          ],
          "role": "Sovereign",
          "summary": "The father of Prince Pantagoon, who employs Trurl to cure his son's infatuation and reluctantly agrees to a bloodless war against the Emperor."
        },
        {
          "name": "King Balerion",
          "slug": "king-balerion",
          "aliases": [
            "His Royal Highness"
          ],
          "role": "Sovereign of Cymberia",
          "summary": "A monarch who loves hide-and-seek and tricks Trurl into a personality transfer, stealing his body to escape."
        },
        {
          "name": "The Steelypips",
          "slug": "the-steelypips",
          "aliases": [
            "mechanics and mechanists"
          ],
          "role": "Citizens/Engineers",
          "summary": "Beings who try to destroy a stubborn machine with increasingly powerful weapons, eventually asking Trurl for help, only to be subjected to his hyper-accelerated bureaucracy."
        },
        {
          "name": "Anonymoid",
          "slug": "anonymoid",
          "aliases": [
            "monster",
            "pirate and a mage"
          ],
          "role": "Cosmic Pirate",
          "summary": "A terrifying, mythical monster rumored to live in a castle raised by black gravitation and devour caravans in the Great Shroud Wastes."
        },
        {
          "name": "Pugg",
          "slug": "pugg",
          "aliases": [
            "Ph.D. pirate",
            "thief with a degree"
          ],
          "role": "Pirate",
          "summary": "A massive space pirate with a hundred eyes who demands authentic information and is paralyzed by the useless facts generated by the Demon of the Second Kind."
        },
        {
          "name": "Demon of the Second Kind",
          "slug": "demon-of-the-second-kind",
          "aliases": [],
          "role": "Information Generator",
          "summary": "A machine created by Trurl and Klapaucius that extracts completely true but entirely useless trivia from atoms to bury Pugg in paper tape."
        },
        {
          "name": "King Excelsius",
          "slug": "king-excelsius",
          "aliases": [
            "monster Excelsius"
          ],
          "role": "Sovereign",
          "summary": "A cruel monarch for whom Trurl built a miniature, cybernetically perfect kingdom as a toy."
        },
        {
          "name": "King Genius",
          "slug": "king-genius",
          "aliases": [
            "Your Majesty"
          ],
          "role": "Sovereign",
          "summary": "A spherical monarch who hosts Trurl and his storytelling machines in a cave, engaging in philosophical dialogue about form, creation, and ultimate rewards."
        },
        {
          "name": "The Multitudians",
          "slug": "the-multitudians",
          "aliases": [
            "natives"
          ],
          "role": "Citizens",
          "summary": "Inhabitants of a planet in the constellation Deliria who pride themselves entirely on their immense numbers and destructive mass actions."
        },
        {
          "name": "Mandrillion",
          "slug": "mandrillion",
          "aliases": [
            "King Mandrillion",
            "His Royal Highness"
          ],
          "role": "Ruler of the Multitudians",
          "summary": "A monarch who collaborates with the Perfect Adviser to have Trurl beaten and thrown into a moat."
        },
        {
          "name": "The Adviser",
          "slug": "the-adviser",
          "aliases": [
            "Adviser",
            "unwitting tool"
          ],
          "role": "Artificial intelligence / Royal favorite",
          "summary": "A mechanical adviser that tries to clear its name by proving a suspicious letter is merely an anagram, despite the police's attempts to frame it."
        },
        {
          "name": "Grand Marshal of Codes",
          "slug": "grand-marshal-of-codes",
          "aliases": [],
          "role": "Official",
          "summary": "The venerable head of the police cryptanalysis team who desperately tries to break the Adviser's 'code' and suspects it of bold-faced treason."
        },
        {
          "name": "Professor Crusticus",
          "slug": "professor-crusticus",
          "aliases": [
            "Crusticus"
          ],
          "role": "Expert in secret writing",
          "summary": "A distinguished scholar who uses astronomical computers to wrongly decode a letter, leading to the arrest of an innocent citizen."
        },
        {
          "name": "Crucifax",
          "slug": "crucifax",
          "aliases": [],
          "role": "Citizen",
          "summary": "An innocent citizen tortured into confessing a nonexistent plot with Trurl based on a faulty cryptanalysis of a letter."
        },
        {
          "name": "King Thumbscrew",
          "slug": "king-thumbscrew",
          "aliases": [
            "Thumbscrew the Third"
          ],
          "role": "Sovereign",
          "summary": "A monarch who demands endless amusing stories from Trurl, dismissing their deep philosophical meanings in favor of mere entertainment."
        },
        {
          "name": "Zipperupus",
          "slug": "zipperupus",
          "aliases": [
            "King Zipperupus"
          ],
          "role": "King of the Partheginians, Deutons, and Profligoths",
          "summary": "A lecherous and cowardly king who is lured into a labyrinth of nested dream simulations by his enemies, forever trapped in pursuit of impossible desires."
        },
        {
          "name": "Subtillion",
          "slug": "subtillion",
          "aliases": [],
          "role": "Cybernerian / Mental engineer",
          "summary": "An adept sent by Zipperupus's enemies to trap the king in a multi-level dream cabinet using his own lustful tendencies."
        },
        {
          "name": "Dodderont Debilitus",
          "slug": "dodderont-debilitus",
          "aliases": [],
          "role": "Dream persona",
          "summary": "A rickety, incurable lecher who serves as Zipperupus's avatar in the 'Wockle Weed' dream, ruling over Epilepton and Maladyne."
        },
        {
          "name": "The Patriarch",
          "slug": "the-patriarch",
          "aliases": [],
          "role": "Dream construct / Sage",
          "summary": "An old digital sage in a simulated desert who shows Zipperupus a digital model of Princess Ineffabelle and warns him about the nature of the simulation."
        },
        {
          "name": "Princess Ineffabelle",
          "slug": "princess-ineffabelle",
          "aliases": [
            "Ineffabelle"
          ],
          "role": "Fictional princess",
          "summary": "A beautifully simulated, stochastic and digital princess from a five-hundred-year-old tale, whom Zipperupus obsessively tries to reach."
        },
        {
          "name": "Mymosh",
          "slug": "mymosh",
          "aliases": [
            "Mymosh the Selfbegotten"
          ],
          "role": "Creator entity",
          "summary": "A mechanical being formed from garbage in a puddle who slowly imagines an entire internal universe called the Gozmos before being destroyed by a floating shard of a jug."
        },
        {
          "name": "Chlorian Theoreticus the Proph",
          "slug": "chlorian-theoreticus-the-proph",
          "aliases": [
            "Theoreticus"
          ],
          "role": "Pundit and Ontologist",
          "summary": "An ancient, rusted sage who lives in extreme poverty on the planet of the Mammonides, harboring a vast, cosmic hatred for future generations of scholars."
        },
        {
          "name": "Gnostotron",
          "slug": "gnostotron",
          "aliases": [
            "Ontologue Computer",
            "H.P.L.D. model"
          ],
          "role": "Digital device / Simulator",
          "summary": "A titanic machine built by Klapaucius that simulates a member of the Highest Possible Level of Development, arguing against the logic of forcefully bestowing happiness."
        },
        {
          "name": "The narrator",
          "slug": "the-narrator",
          "aliases": [
            "Bonhomius"
          ],
          "role": "Benefactor",
          "summary": "A robot who attempts to bring universal happiness to a human planet using Altruizine but inadvertently causes mass chaos and suffering."
        },
        {
          "name": "Ferrix",
          "slug": "ferrix",
          "aliases": [
            "Prince Ferrix",
            "Myamlak"
          ],
          "role": "Heir apparent to the Ionid throne",
          "summary": "A robot prince who falls in love with Princess Crystal and disguises himself as a biological 'paleface' to win her hand."
        },
        {
          "name": "Princess Crystal",
          "slug": "princess-crystal",
          "aliases": [
            "Crystal"
          ],
          "role": "Royalty",
          "summary": "A robotic princess of legendary beauty who refuses to marry anyone but a paleface."
        },
        {
          "name": "Polyphase",
          "slug": "polyphase",
          "aliases": [
            "Grand Vizier",
            "sage"
          ],
          "role": "Adviser to Ferrix",
          "summary": "Helps Ferrix concoct a disguise out of clay and dirt so he can masquerade as a paleface."
        },
        {
          "name": "Cybercount Cyberhazy",
          "slug": "cybercount-cyberhazy",
          "aliases": [
            "the princess' Elector"
          ],
          "role": "Suitor / Antagonist",
          "summary": "An insidious suitor who brings a real paleface to Princess Crystal to expose Ferrix's disguise."
        },
        {
          "name": "The paleface",
          "slug": "the-paleface",
          "aliases": [],
          "role": "Biological entity",
          "summary": "A genuine biological human brought by Cyberhazy, described as a repulsive monstrosity, which is easily destroyed by Ferrix."
        }
      ],
      "frameworks_mapped": [
        "Protocol Fiction Mapping",
        "Actantial Model",
        "Todorov's Equilibrium",
        "The Freytag Pyramid",
        "Propp's Morphology",
        "Genette's Narrative",
        "The Monomyth",
        "Dan Harmon",
        "Save the Cat",
        "Kishōtenketsu",
        "The Three-Act Structure"
      ],
      "score_reliability": {
        "state": "contested",
        "threshold": 0.2,
        "runs_total": 5,
        "versions_compared": [
          "2.5"
        ],
        "max_spread": 0.25,
        "contested": [
          {
            "axis": "time_linearity",
            "version": "2.5",
            "spread": 0.25,
            "low": {
              "label": "NTSMR-2.5-balanced-glm-5+deepseek-v3.2",
              "model": "balanced-routing",
              "effort": "?",
              "value": 0.4
            },
            "high": {
              "label": "NTSMR-2.5-claude-sonnet-4-6-low",
              "model": "claude-sonnet-4-6",
              "effort": "low",
              "value": 0.65
            }
          }
        ]
      }
    },
    {
      "slug": "alfred_bester_the_demolished_man",
      "title": "The Demolished Man",
      "author": "Alfred Bester",
      "year": 1953,
      "medium": "book",
      "genre_tags": [],
      "tropes": [],
      "quadrant_scores": {
        "time_linearity": 0.22,
        "pacing_velocity": 0.38,
        "threat_scale": 0.6,
        "protagonist_fate": 0.45,
        "conflict_style": 0.48,
        "price_type": 0.65
      },
      "provenance": {
        "analysis_run": "NTSMR-2.5-claude-sonnet-4-6-low",
        "analysis_body_sha256": "c0ba6f14d74f54123f1baeed1d05a0abd2200d9ba3529a569c5e683ef5a06cf9",
        "synthesis": {
          "path": "nartopo-tools/artifacts/alfred_bester_the_demolished_man.md.ntsmr-2-5-claude-sonnet-4-6-low.synthesis.json",
          "sha256": "b20adc4d2ca2c70814b2ffb56f80def7a0972018a7bb5b0c4cef9be533ceefb8"
        },
        "report": {
          "path": "nartopo-tools/artifacts/alfred_bester_the_demolished_man.md.ntsmr-2-5-claude-sonnet-4-6-low.report.json",
          "sha256": "d30faae766abe3213ad178fa6d55055144576035426c82e023673b1e21cb3564"
        },
        "source": {
          "path": "Alfred Bester/The Demolished Man.txt",
          "sha256": "965f03bc2ed3c25795e335c96f213da01bb403481960064e20fc6a6aca81ed54",
          "digest_observed_at": "2026-09-09",
          "digest_at_analysis_run": null,
          "edition": null,
          "edition_status": "unresolved"
        },
        "pipeline_revision_at_run": null,
        "verification": {
          "source": "unverified",
          "human_review": "unreviewed",
          "bibliography": "unverified"
        },
        "issues": [],
        "todorov_status": "recovered-from-synthesis",
        "work_identity": {
          "title": "The Demolished Man",
          "author": "Alfred Bester",
          "year": 1953
        }
      },
      "ntsmr": {
        "version": "2.5",
        "primary_run_label": "NTSMR-2.5-claude-sonnet-4-6-low",
        "runs": {
          "NTSMR-2.4-claude-sonnet-4-6-low": {
            "pipeline_version": "2.4",
            "backend": "claude",
            "model": "claude-sonnet-4-6",
            "scores": {
              "time_linearity": 0.22,
              "pacing_velocity": 0.28,
              "threat_scale": 0.52,
              "protagonist_fate": 0.35,
              "conflict_style": 0.52,
              "price_type": 0.58
            },
            "score_space": "site-v1",
            "reasoning_effort": "low"
          },
          "NTSMR-2.5-claude-sonnet-4-6-low": {
            "pipeline_version": "2.5",
            "backend": "claude",
            "model": "claude-sonnet-4-6",
            "scores": {
              "time_linearity": 0.22,
              "pacing_velocity": 0.38,
              "threat_scale": 0.6,
              "protagonist_fate": 0.45,
              "conflict_style": 0.48,
              "price_type": 0.65
            },
            "score_space": "site-v1",
            "reasoning_effort": "low"
          },
          "NTSMR-2.5-balanced-glm-5+deepseek-v3.2": {
            "pipeline_version": "2.5",
            "backend": "openrouter",
            "model": "balanced-routing",
            "scores": {
              "time_linearity": 0.25,
              "pacing_velocity": 0.5,
              "threat_scale": 0.3,
              "protagonist_fate": 0.6,
              "conflict_style": 0.65,
              "price_type": 0.7
            },
            "score_space": "site-v1",
            "score_only": true,
            "source_run_label": "NTSMR-2.5-claude-sonnet-4-6-low"
          }
        }
      },
      "todorov_stages": {
        "equilibrium": "Ben Reich runs Monarch Utilities & Resources as one of the dominant industrial powers, operating in a society where telepathic Espers enforce a fragile social order that makes premeditated murder essentially impossible—no murder has been successfully committed in decades.",
        "disruption": "Reich receives the coded reply WWHG from Craye D'Courtney, interprets it as refusal of his merger offer, and murders D'Courtney at Maria Beaumont's party—shattering the society's murder-free equilibrium and setting Powell's investigation in motion.",
        "recognition": "Powell immediately suspects Reich after peeping him and seizes on Reich's slip about Barbara being naked as proof of guilt; the investigation crystallizes when Powell recovers the gun image from Barbara's subconscious and Mose calculates a 97% probability of successful prosecution.",
        "repair": "Powell pursues Reich through surveillance, forensic work, and telepathic peeping while the code-crackers' revelation that WWHG meant acceptance—not refusal—collapses the prosecution case; Powell ultimately deploys the Mass Cathexis Measure, channeling the collective psychic energy of all city Espers through himself to demolish Reich's mind and neutralize him as a World-Shaker.",
        "new_equilibrium": "Reich is transported to Kingston Hospital for Demolition—his identity and compulsions erased and rebuilt—while Powell recovers at home; the society's order is restored at a higher level, with the understanding that Reich's destructive pattern, if left unchecked, would have irrevocably committed civilization to a psychotic trajectory."
      },
      "characters": [
        {
          "name": "Ben Reich",
          "slug": "ben-reich",
          "aliases": [
            "Reich",
            "Mac",
            "Mr. Reich"
          ],
          "role": "Protagonist/antagonist",
          "summary": "Corporate murderer racing to suppress evidence; survives three assassination attempts; attempts to use Barbara and Mary as weapons against Powell; repeatedly stopped by an inexplicable compulsion not to kill."
        },
        {
          "name": "Lincoln Powell",
          "slug": "lincoln-powell",
          "aliases": [
            "Dishonest Abe",
            "Linc",
            "Powell",
            "Prefect Powell"
          ],
          "role": "detective/antagonist-to-Reich",
          "summary": "Esper 1st class detective driving the D'Courtney murder investigation; telepathically peeps Barbara's traumatic memory to reconstruct the crime; orchestrates the Spaceland sweep; suffers emotional entanglement with Barbara."
        },
        {
          "name": "Augustus Tate",
          "slug": "augustus-tate",
          "aliases": [
            "Gus"
          ],
          "role": "Helper/accomplice",
          "summary": "Esper M.D. recruited by Reich as telepathic intelligence officer; screens Reich from other peepers and conducts reconnaissance."
        },
        {
          "name": "Mary Noyes",
          "slug": "mary-noyes",
          "aliases": [],
          "role": "Helper/unrequited lover",
          "summary": "Powell's Esper assistant and close friend; exposes Powell's unconscious love for Barbara; later paralyzed by Reich with the scrambler inside Powell's home."
        },
        {
          "name": "Maria Beaumont",
          "slug": "maria-beaumont",
          "aliases": [
            "The Gilt Corpse"
          ],
          "role": "Pawn/hostess",
          "summary": "Socialite hostess of the party; manipulated by Reich; holds the secret of D'Courtney's location; later abandoned and used as a decoy by Reich."
        },
        {
          "name": "Galen Chervil",
          "slug": "galen-chervil",
          "aliases": [
            "Gally Chervil",
            "Chervil boy"
          ],
          "role": "Minor obstacle",
          "summary": "Young Esper who finds Reich collapsed in Bomb Inlet and accompanies him to Crabbe's office as a telepathic truth-detector."
        },
        {
          "name": "Jo ¼maine",
          "slug": "jo-maine",
          "aliases": [],
          "role": "Helper to Reich/legal obstacle",
          "summary": "Esper attorney representing Reich; present at interrogation to enforce consent boundaries and block Powell's telepathic examination."
        },
        {
          "name": "Jackson Beck",
          "slug": "jackson-beck",
          "aliases": [
            "Jax"
          ],
          "role": "Helper to Powell",
          "summary": "Police Inspector 2; plays the villain role in the Good Cop/Bad Cop staging; coordinates the Rough and Smooth surveillance operation."
        },
        {
          "name": "Hassop",
          "slug": "hassop",
          "aliases": [],
          "role": "Minor subordinate",
          "summary": "Reich's Code Chief; transmits the secret merger proposal to D'Courtney and is given a week's vacation as a reward."
        },
        {
          "name": "West",
          "slug": "west",
          "aliases": [
            "Ellery West"
          ],
          "role": "Minor helper",
          "summary": "Monarch's Recreation Director and head of its espionage division; declines to break the Esper Pledge but provides information to Reich."
        },
        {
          "name": "Jerry Church",
          "slug": "jerry-church",
          "aliases": [
            "Church"
          ],
          "role": "Fence/criminal helper",
          "summary": "De-guilded Esper and antique dealer who provided Reich's gun; inadvertently discovers Barbara's location through Snim's gossip; deceived by Powell into confirming the weapon."
        },
        {
          "name": "T'sung",
          "slug": "tsung",
          "aliases": [
            "Papa T'sung"
          ],
          "role": "actantial:sender",
          "summary": "President of the Esper Guild Council who chairs the emergency meeting and expresses reluctance but ultimately grants Powell's Mass Cathexis request."
        },
        {
          "name": "Barbara D'Courtney",
          "slug": "barbara-dcourtney",
          "aliases": [
            "Baba"
          ],
          "role": "Witness/victim",
          "summary": "Sole witness to her father's murder; trapped in Hysterical Recall catatonia; undergoing Déjà Éprouvé regression therapy; regressed to infant/child state while harboring subconscious murder memory Powell is extracting."
        },
        {
          "name": "Chooka Frood",
          "slug": "chooka-frood",
          "aliases": [],
          "role": "Underworld figure",
          "summary": "Fortune-teller and landlady harboring Barbara as a trance performer; telepathically interrogated by Powell; later confronted violently by Reich as a suspected booby-trap conspirator."
        },
        {
          "name": "Snim Asj",
          "slug": "snim-asj",
          "aliases": [
            "Snim"
          ],
          "role": "Minor criminal",
          "summary": "Small-time hustler whose gossip about Chooka's 'yellow-headed girl' inadvertently reveals Barbara's location to Jerry Church."
        },
        {
          "name": "Dr. Jeems",
          "slug": "dr-jeems",
          "aliases": [
            "Jeems"
          ],
          "role": "supporting",
          "summary": "Kingston Hospital doctor treating Barbara's catatonia with the Déjà Éprouvé Series; explains the regression therapy to Powell and Mary."
        },
        {
          "name": "Commissioner Crabbe",
          "slug": "commissioner-crabbe",
          "aliases": [
            "Crabbe"
          ],
          "role": "bureaucratic authority",
          "summary": "Police commissioner obstructing Powell's prosecution; accidentally incapacitated by the Rhodopsin Ionizer during the case presentation; later kicked by Powell in his rage."
        },
        {
          "name": "Beck",
          "slug": "beck",
          "aliases": [
            "Jackson"
          ],
          "role": "Powell's staff analyst",
          "summary": "Code analyst assisting Powell's case presentation to Mose; telepathically peered by Powell to uncover a data gap in the motive documentation."
        },
        {
          "name": "Duffy Wyg&",
          "slug": "duffy-wyg",
          "aliases": [
            "Duffy"
          ],
          "role": "supporting",
          "summary": "Reich's operative who nurses him after his collapse; present during his initial reality-dissolution episode."
        },
        {
          "name": "@kins",
          "slug": "kins",
          "aliases": [],
          "role": "supporting",
          "summary": "Esper council member who questions whether Powell is exaggerating Reich's danger and suggests attacking Reich at a later crossroad."
        }
      ],
      "frameworks_mapped": [
        "Protocol Fiction Mapping",
        "Actantial Model",
        "Todorov's Equilibrium",
        "The Freytag Pyramid",
        "Propp's Morphology",
        "Genette's Narrative",
        "The Monomyth",
        "Dan Harmon",
        "Save the Cat",
        "Kishōtenketsu",
        "The Three-Act Structure",
        "Lévi-Strauss's Binary Oppositions",
        "Cognitive Estrangement",
        "Bakhtin's Chronotope",
        "Aristotelian Poetics",
        "Jungian Archetypal Analysis",
        "Genette's Transtextuality"
      ],
      "score_reliability": {
        "state": "contested",
        "threshold": 0.2,
        "runs_total": 3,
        "versions_compared": [
          "2.5"
        ],
        "max_spread": 0.3,
        "contested": [
          {
            "axis": "threat_scale",
            "version": "2.5",
            "spread": 0.3,
            "low": {
              "label": "NTSMR-2.5-balanced-glm-5+deepseek-v3.2",
              "model": "balanced-routing",
              "effort": "?",
              "value": 0.3
            },
            "high": {
              "label": "NTSMR-2.5-claude-sonnet-4-6-low",
              "model": "claude-sonnet-4-6",
              "effort": "low",
              "value": 0.6
            }
          }
        ]
      }
    },
    {
      "slug": "neal_stephenson_the_diamond_age",
      "title": "The Diamond Age",
      "author": "Neal Stephenson",
      "year": 1995,
      "medium": "book",
      "genre_tags": [
        "sf",
        "cyberpunk",
        "postcyberpunk"
      ],
      "tropes": [],
      "quadrant_scores": {
        "time_linearity": 0.45,
        "pacing_velocity": 0.55,
        "threat_scale": 0.75,
        "protagonist_fate": 0.3,
        "conflict_style": 0.45,
        "price_type": 0.6
      },
      "provenance": {
        "analysis_run": "NTSMR-2.5-claude-sonnet-4-6-low",
        "analysis_body_sha256": "24a548554900dc9fc0f4bb946f0690586c0fbb958a2690a1886c631e851118c9",
        "synthesis": {
          "path": "nartopo-tools/artifacts/neal_stephenson_the_diamond_age.md.ntsmr-2-5-claude-sonnet-4-6-low.synthesis.json",
          "sha256": "280550fc30c1af87d70f59161a703f1e13db02653f478954fab571712526935c"
        },
        "report": {
          "path": "nartopo-tools/artifacts/neal_stephenson_the_diamond_age.md.ntsmr-2-5-claude-sonnet-4-6-low.report.json",
          "sha256": "53458996f5f125925f283733fb7fb3b1b5832099b01f4b35c23262ab2f9a4d61"
        },
        "source": {
          "path": "Neal Stephenson/The Diamond Age.txt",
          "sha256": "6b5d2ab21d4549cd411be96bbd0b8efc28a22125283a1ca3522371fff6a9f17d",
          "digest_observed_at": "2026-09-09",
          "digest_at_analysis_run": null,
          "edition": null,
          "edition_status": "unresolved"
        },
        "pipeline_revision_at_run": null,
        "verification": {
          "source": "unverified",
          "human_review": "unreviewed",
          "bibliography": "unverified"
        },
        "issues": [],
        "todorov_status": "recovered-from-synthesis",
        "work_identity": {
          "title": "The Diamond Age",
          "author": "Neal Stephenson",
          "year": 1995
        }
      },
      "ntsmr": {
        "version": "2.5",
        "primary_run_label": "NTSMR-2.5-claude-sonnet-4-6-low",
        "runs": {
          "NTSMR-2.3-claude-sonnet-4-6-low": {
            "pipeline_version": "2.3",
            "backend": "claude",
            "model": "claude-sonnet-4-6",
            "scores": {
              "time_linearity": 0.55,
              "pacing_velocity": 0.45,
              "threat_scale": 0.75,
              "protagonist_fate": 0.15,
              "conflict_style": 0.35,
              "price_type": 0.65
            },
            "score_space": "site-v1",
            "reasoning_effort": "low"
          },
          "NTSMR-2.4-claude-sonnet-4-6-low": {
            "pipeline_version": "2.4",
            "backend": "claude",
            "model": "claude-sonnet-4-6",
            "scores": {
              "time_linearity": 0.45,
              "pacing_velocity": 0.35,
              "threat_scale": 0.75,
              "protagonist_fate": 0.22,
              "conflict_style": 0.38,
              "price_type": 0.48
            },
            "score_space": "site-v1",
            "reasoning_effort": "low"
          },
          "NTSMR-2.5-claude-sonnet-4-6-low": {
            "pipeline_version": "2.5",
            "backend": "claude",
            "model": "claude-sonnet-4-6",
            "scores": {
              "time_linearity": 0.45,
              "pacing_velocity": 0.55,
              "threat_scale": 0.75,
              "protagonist_fate": 0.3,
              "conflict_style": 0.45,
              "price_type": 0.6
            },
            "score_space": "site-v1",
            "reasoning_effort": "low"
          },
          "NTSMR-2.5-balanced-glm-5+deepseek-v3.2": {
            "pipeline_version": "2.5",
            "backend": "openrouter",
            "model": "balanced-routing",
            "scores": {
              "time_linearity": 0.3,
              "pacing_velocity": 0.65,
              "threat_scale": 0.8,
              "protagonist_fate": 0.28,
              "conflict_style": 0.6,
              "price_type": 0.65
            },
            "score_space": "site-v1",
            "score_only": true,
            "source_run_label": "NTSMR-2.5-claude-sonnet-4-6-low"
          }
        }
      },
      "todorov_stages": {
        "equilibrium": "Nell exists as an uneducated thete child whose only consistent guide is the Primer, with Miranda as her invisible surrogate mother; Hackworth is lost among the Drummers; and the phyle order of near-future Shanghai maintains a tense but functional stability. Lord Finkle-McGraw's social experiment with the Primer proceeds quietly in the background.",
        "disruption": "The Fists of Righteous Harmony escalate their campaign, destroying the Causeway with nanotechnological explosives and severing Pudong from the mainland; simultaneously Nell is betrayed by Chinese girls who drug and bind her, handing her to Fist soldiers. The Drummers draw the Pudong refugees underground through organic sea-tunnels, collapsing the existing social order.",
        "recognition": "Nell understands the depth of the crisis through multiple converging revelations: Miss Matheson's deathbed acknowledgment of her secret difference, Carl Hollywood's discovery that Miranda has joined the Drummers seeking Nell through the collective unconscious, and Hackworth's emergence carrying cryptographic keys that expose the network of identity linking Nell, Miranda, Dr. X, and Hackworth. Nell articulates her rejection of both conformity and rebellion and resolves to seek her fortune in China.",
        "repair": "Nell leads her Mouse Army in the defense of Pudong, enters the Drummers' underwater realm with Carl Hollywood using counter-nanosites for protection, locates Miranda on the central altar, and performs a blood-mingling kiss that transfers hunter-killer nanosites into Miranda's body, destroying the Drummer nanosites and freeing Miranda from the collective. Carl carries Miranda while Nell leads them upward through the tunnels toward the surface.",
        "new_equilibrium": "Miranda is rescued and freed from the Drummers; Nell surfaces near New Chusan as cathedral bells ring, having transformed from an abused thete child into a sovereign leader — her Mouse Army has become hundreds of thousands of girls who proclaim fealty to Queen Nell. The old phyle order has been shattered by the Celestial Kingdom crisis, and a new social configuration centered on Nell's emerging authority replaces the prior stability."
      },
      "characters": [
        {
          "name": "Nell",
          "slug": "nell",
          "aliases": [
            "Princess Nell",
            "Queen Nell"
          ],
          "role": "Primer protagonist (embedded narrative)",
          "summary": "Young woman of low birth and formidable skills; reads the Primer at the window as the Causeway explodes, escapes Fist captivity through lethal force, broadcasts her heraldic crest on a skyscraper, leads the Mouse Army, and ultimately rescues Miranda from the Drummers by transferring counter-nanosites through a blood-mingling kiss."
        },
        {
          "name": "Constable Moore",
          "slug": "constable-moore",
          "aliases": [
            "Colonel Arthur Hornsby Moore"
          ],
          "role": "Mentor/benefactor",
          "summary": "Returns filthy and gaunt from military consulting work in China; listens to Nell's articulation of her philosophy and affirms her rejection of simple conformity or rebellion."
        },
        {
          "name": "Miranda",
          "slug": "miranda",
          "aliases": [],
          "role": "Ractor / surrogate mother",
          "summary": "Ractor and Nell's surrogate mother; found at the center of the Drummer ritual altar, about to be consumed by the Seed computation; rescued by Nell's counter-nanosites and carried out by Carl."
        },
        {
          "name": "Carl Hollywood",
          "slug": "carl-hollywood",
          "aliases": [],
          "role": "Actor/director/technologist",
          "summary": "Actor and director who fights his way out of Shanghai with Boers and Zulus, reaches Pudong, is appointed special envoy to Nell, discovers the wet Net's function, and carries Miranda out of the Drummer cavern."
        },
        {
          "name": "Lord Finkle-McGraw",
          "slug": "lord-finkle-mcgraw",
          "aliases": [
            "Lord Alexander Chung-Sik Finkle-McGraw"
          ],
          "role": "Equity Lord / Primer commissioner",
          "summary": "Walks with Carl Hollywood along the riverbank; reveals the three Primer recipients' divergent outcomes and seeks to contact Miranda, learning she has joined the Drummers."
        },
        {
          "name": "Hackworth",
          "slug": "hackworth",
          "aliases": [
            "Gwendolyn Hackworth",
            "John Percival Hackworth",
            "the Alchemist"
          ],
          "role": "engineer/Drummer boundary-crosser",
          "summary": "Recently extracted from the Drummers after a decade of nanosite-mediated unconscious existence; debriefed by Colonel Napier; retains fragmentary images of nanotechnological work he performed."
        },
        {
          "name": "Elizabeth",
          "slug": "elizabeth",
          "aliases": [
            "Elizabeth Finkle-McGraw"
          ],
          "role": "Schoolfellow/Duke's granddaughter",
          "summary": "Impulsive, confident girl who rushes to the wall first; later vanishes from her family estate and is rumored to be with CryptNet."
        },
        {
          "name": "Mr. Beck",
          "slug": "mr-beck",
          "aliases": [],
          "role": "Technical boy/ally",
          "summary": "Nipponese technologist with an interest in using tech to convey meaning; formerly did theatre with Carl in London; attends the party with Mr. Oda."
        },
        {
          "name": "Mr. Oda",
          "slug": "mr-oda",
          "aliases": [],
          "role": "Ally/acquaintance",
          "summary": "Accompanies Mr. Beck at the party; only recently met Carl Hollywood; communicates ambiguously about religious or cult involvement."
        },
        {
          "name": "Purple",
          "slug": "purple",
          "aliases": [],
          "role": "Companion/helper (within Primer)",
          "summary": "Princess Nell's Primer companion who teaches secret lore; sacrifices herself fighting the djinn king, transforming into a giant eagle before dying."
        },
        {
          "name": "Miss Stricken",
          "slug": "miss-stricken",
          "aliases": [],
          "role": "Antagonist/teacher",
          "summary": "Mistress of 'Joy' at the Three Graces Academy; disciplines students through ruler strikes and public humiliation; ideological enforcer of neo-Victorian norms."
        },
        {
          "name": "Miss Matheson",
          "slug": "miss-matheson",
          "aliases": [],
          "role": "Headmistress/philosopher",
          "summary": "Dying headmistress of the Three Graces Academy; summons Nell for a final conversation in which she names Nell her favorite student and urges her to transcend tribal belonging."
        },
        {
          "name": "Fiona",
          "slug": "fiona",
          "aliases": [
            "Fiona Hackworth"
          ],
          "role": "Schoolfellow/Hackworth's daughter",
          "summary": "Travels with her father; questions him about the Alchemist and the Seed; her Primer dreams are filled with seed imagery; she vanishes independently into the Dramatis Personae event."
        },
        {
          "name": "Harv",
          "slug": "harv",
          "aliases": [],
          "role": "Nell's brother",
          "summary": "Nell's brother, confined to the Free Phthisis Sanatorium with chronic asthma; bloated from steroids, uses an immersive ractive to pass time, communicates less with Nell over time."
        },
        {
          "name": "Colonel Napier",
          "slug": "colonel-napier",
          "aliases": [],
          "role": "Victorian military officer",
          "summary": "A Victorian soldier and client of Madame Ping's who repeatedly falls asleep in his ractive scenario; proves lethally effective against Fist attackers with his cavalry saber."
        },
        {
          "name": "The Duke of Turing",
          "slug": "the-duke-of-turing",
          "aliases": [],
          "role": "Mechanical antagonist/donor (Primer)",
          "summary": "A Turing-machine-based mechanical figure in the Primer narrative; found to be a machine by Princess Nell through poetic testing; harbors the dead inventor's computational notebooks."
        },
        {
          "name": "Madame Ping",
          "slug": "madame-ping",
          "aliases": [],
          "role": "Entertainment entrepreneur",
          "summary": "Runs a high-end scripted fantasy operation in Pudong; hires Nell as a scriptwriter for the Victorian client market; delivers a philosophy that all post-scarcity economy is entertainment."
        },
        {
          "name": "Henry",
          "slug": "henry",
          "aliases": [],
          "role": "Madame Ping's functionary",
          "summary": "Young Chinese man who intercepts Nell in Madame Ping's lobby, advances her ucus for a suitable dress, and introduces her to Madame Ping for the interview."
        },
        {
          "name": "Miss Braithwaite",
          "slug": "miss-braithwaite",
          "aliases": [],
          "role": "ractive character/actress",
          "summary": "Character within Napier's scenario played by an actress; paralyzes Napier with nanosites and ties him to a rack before the scenario is interrupted by the Fist attack."
        },
        {
          "name": "King Coyote",
          "slug": "king-coyote",
          "aliases": [],
          "role": "opponent/antagonist within Primer",
          "summary": "Middle-aged man who built Wizard 0.2; concedes defeat to Princess Nell after his machine is crashed by a zero-divide; surrenders the twelfth key with rueful informality."
        },
        {
          "name": "Dr. X",
          "slug": "dr-x",
          "aliases": [],
          "role": "sender/ideologue",
          "summary": "A Chinese figure of power who articulates the Confucian ti/yong philosophy to justify needing the Seed technology; argues it would restore Chinese social order freed from Western Feed dependency."
        },
        {
          "name": "Colonel Spence",
          "slug": "colonel-spence",
          "aliases": [],
          "role": "helper",
          "summary": "Victorian soldier who fights alongside Carl Hollywood through Shanghai; rendered unconscious during the retreat and dies of a leg wound during the river crossing."
        },
        {
          "name": "Boer grandmother",
          "slug": "boer-grandmother",
          "aliases": [],
          "role": "helper",
          "summary": "Elderly Boer woman who walks alone into the path of the advancing Celestial column and detonates a body-bomb, sacrificing herself to halt the army and allow the barbarians to escape."
        }
      ],
      "frameworks_mapped": [
        "Protocol Fiction Mapping",
        "Actantial Model",
        "Todorov's Equilibrium",
        "The Freytag Pyramid",
        "Propp's Morphology",
        "Genette's Narrative",
        "The Monomyth",
        "Dan Harmon",
        "Save the Cat",
        "Kishotenketsu",
        "The Three-Act Structure",
        "Levi-Strauss's Binary Oppositions",
        "Cognitive Estrangement",
        "Bakhtin's Chronotope",
        "Aristotelian Poetics",
        "Jungian Archetypal Analysis",
        "Genette's Transtextuality"
      ],
      "score_reliability": {
        "state": "replicated-agree",
        "threshold": 0.2,
        "runs_total": 4,
        "versions_compared": [
          "2.5"
        ],
        "max_spread": 0.15,
        "contested": []
      }
    },
    {
      "slug": "ursula_k_le_guin_the_dispossessed",
      "title": "The Dispossessed",
      "author": "Ursula K. Le Guin",
      "year": 1974,
      "medium": "book",
      "genre_tags": [
        "science fiction",
        "utopian",
        "political sf"
      ],
      "tropes": [
        "Ambiguous Utopia",
        "The Exile",
        "Capitalism vs Anarchism"
      ],
      "quadrant_scores": {
        "time_linearity": 0.8,
        "pacing_velocity": 0.7,
        "threat_scale": 0.65,
        "protagonist_fate": 0.5,
        "conflict_style": 0.7,
        "price_type": 0.75
      },
      "baseline_quadrant_scores": {
        "time_linearity": 0.85,
        "pacing_velocity": 0.8,
        "threat_scale": 0.9,
        "protagonist_fate": 0.2,
        "conflict_style": 0.85,
        "price_type": 0.95
      },
      "provenance": {
        "analysis_run": "NTSMR-2.5-claude-sonnet-4-6-low",
        "analysis_body_sha256": "ba991ab3fb098adc7371f4798b1bd4b5594f174ee7e3e4d06e86cc6a1fe0174b",
        "synthesis": {
          "path": "nartopo-tools/artifacts/ursula_k_le_guin_the_dispossessed.md.ntsmr-2-5-claude-sonnet-4-6-low.synthesis.json",
          "sha256": "ab538a5044bd3c3f6c53b51e1cbbfc3cdb41b3017b7f48326e42f5a7507695f2"
        },
        "report": {
          "path": "nartopo-tools/artifacts/ursula_k_le_guin_the_dispossessed.md.ntsmr-2-5-claude-sonnet-4-6-low.report.json",
          "sha256": "c764e24e38bc1935901e96b2f755f94182ae7bb5cfc86768bd53ec4a89995c05"
        },
        "source": {
          "path": "Ursula K. Le Guin/The Dispossessed.txt",
          "sha256": "192bf05f66d1af4892091ddab31e62b50d31af8b069edf5d60fe460c4429d6b6",
          "digest_observed_at": "2026-09-09",
          "digest_at_analysis_run": null,
          "edition": null,
          "edition_status": "unresolved"
        },
        "pipeline_revision_at_run": null,
        "verification": {
          "source": "unverified",
          "human_review": "unreviewed",
          "bibliography": "unverified"
        },
        "issues": [],
        "todorov_status": "recovered-from-synthesis",
        "work_identity": {
          "title": "The Dispossessed",
          "author": "Ursula K. Le Guin",
          "year": 1974
        }
      },
      "ntsmr": {
        "version": "2.5",
        "primary_run_label": "NTSMR-2.5-claude-sonnet-4-6-low",
        "runs": {
          "NTSMR-2.3-gemini-3.1-pro-preview": {
            "pipeline_version": "2.3",
            "backend": "gemini",
            "model": "gemini-3.1-pro-preview",
            "scores": {
              "time_linearity": 0.9,
              "pacing_velocity": 0.85,
              "threat_scale": 0.95,
              "protagonist_fate": 0.3,
              "conflict_style": 0.85,
              "price_type": 0.95
            },
            "score_space": "site-v1"
          },
          "NTSMR-2.3-gpt-5.4-xhigh": {
            "pipeline_version": "2.3",
            "backend": "codex-exec",
            "model": "gpt-5.4",
            "scores": {
              "time_linearity": 0.83,
              "pacing_velocity": 0.78,
              "threat_scale": 0.95,
              "protagonist_fate": 0.18,
              "conflict_style": 0.84,
              "price_type": 0.9
            },
            "score_space": "site-v1",
            "reasoning_effort": "xhigh"
          },
          "NTSMR-2.3-gpt-5.4-high": {
            "pipeline_version": "2.3",
            "backend": "codex-exec",
            "model": "gpt-5.4",
            "scores": {
              "time_linearity": 0.82,
              "pacing_velocity": 0.76,
              "threat_scale": 0.93,
              "protagonist_fate": 0.18,
              "conflict_style": 0.84,
              "price_type": 0.89
            },
            "score_space": "site-v1",
            "reasoning_effort": "high"
          },
          "NTSMR-2.3-gpt-5.4-medium": {
            "pipeline_version": "2.3",
            "backend": "codex-exec",
            "model": "gpt-5.4",
            "scores": {
              "time_linearity": 0.84,
              "pacing_velocity": 0.74,
              "threat_scale": 0.93,
              "protagonist_fate": 0.27,
              "conflict_style": 0.79,
              "price_type": 0.88
            },
            "score_space": "site-v1",
            "reasoning_effort": "medium"
          },
          "NTSMR-2.3-gpt-5.3-codex-xhigh": {
            "pipeline_version": "2.3",
            "backend": "codex-exec",
            "model": "gpt-5.3-codex",
            "scores": {
              "time_linearity": 0.86,
              "pacing_velocity": 0.72,
              "threat_scale": 0.94,
              "protagonist_fate": 0.2,
              "conflict_style": 0.81,
              "price_type": 0.88
            },
            "score_space": "site-v1",
            "reasoning_effort": "xhigh"
          },
          "NTSMR-2.3-gpt-5.3-codex-high": {
            "pipeline_version": "2.3",
            "backend": "codex-exec",
            "model": "gpt-5.3-codex",
            "scores": {
              "time_linearity": 0.82,
              "pacing_velocity": 0.74,
              "threat_scale": 0.91,
              "protagonist_fate": 0.24,
              "conflict_style": 0.79,
              "price_type": 0.86
            },
            "score_space": "site-v1",
            "reasoning_effort": "high"
          },
          "NTSMR-2.3-gpt-5.3-codex-medium": {
            "pipeline_version": "2.3",
            "backend": "codex-exec",
            "model": "gpt-5.3-codex",
            "scores": {
              "time_linearity": 0.83,
              "pacing_velocity": 0.72,
              "threat_scale": 0.93,
              "protagonist_fate": 0.24,
              "conflict_style": 0.79,
              "price_type": 0.86
            },
            "score_space": "site-v1",
            "reasoning_effort": "medium"
          },
          "NTSMR-2.3-claude-sonnet-4-6-low": {
            "pipeline_version": "2.3",
            "backend": "claude",
            "model": "claude-sonnet-4-6",
            "scores": {
              "time_linearity": 0.85,
              "pacing_velocity": 0.75,
              "threat_scale": 0.82,
              "protagonist_fate": 0.25,
              "conflict_style": 0.78,
              "price_type": 0.88
            },
            "score_space": "site-v1",
            "reasoning_effort": "low"
          },
          "NTSMR-2.3-claude-opus-4-6-high": {
            "pipeline_version": "2.3",
            "backend": "claude",
            "model": "claude-opus-4-6",
            "scores": {
              "time_linearity": 0.85,
              "pacing_velocity": 0.75,
              "threat_scale": 0.9,
              "protagonist_fate": 0.45,
              "conflict_style": 0.72,
              "price_type": 0.88
            },
            "score_space": "site-v1",
            "reasoning_effort": "high"
          },
          "NTSMR-2.3-claude-sonnet-4-6-medium": {
            "pipeline_version": "2.3",
            "backend": "claude",
            "model": "claude-sonnet-4-6",
            "scores": {
              "time_linearity": 0.85,
              "pacing_velocity": 0.78,
              "threat_scale": 0.82,
              "protagonist_fate": 0.35,
              "conflict_style": 0.72,
              "price_type": 0.88
            },
            "score_space": "site-v1",
            "reasoning_effort": "medium"
          },
          "NTSMR-2.3-claude-sonnet-4-6-high": {
            "pipeline_version": "2.3",
            "backend": "claude",
            "model": "claude-sonnet-4-6",
            "scores": {
              "time_linearity": 0.82,
              "pacing_velocity": 0.72,
              "threat_scale": 0.85,
              "protagonist_fate": 0.25,
              "conflict_style": 0.78,
              "price_type": 0.88
            },
            "score_space": "site-v1",
            "reasoning_effort": "high"
          },
          "NTSMR-2.3-claude-opus-4-6-low": {
            "pipeline_version": "2.3",
            "backend": "claude",
            "model": "claude-opus-4-6",
            "scores": {
              "time_linearity": 0.85,
              "pacing_velocity": 0.75,
              "threat_scale": 0.9,
              "protagonist_fate": 0.55,
              "conflict_style": 0.72,
              "price_type": 0.88
            },
            "score_space": "site-v1",
            "reasoning_effort": "low"
          },
          "NTSMR-2.3-claude-opus-4-6-medium": {
            "pipeline_version": "2.3",
            "backend": "claude",
            "model": "claude-opus-4-6",
            "scores": {
              "time_linearity": 0.85,
              "pacing_velocity": 0.75,
              "threat_scale": 0.9,
              "protagonist_fate": 0.55,
              "conflict_style": 0.72,
              "price_type": 0.88
            },
            "score_space": "site-v1",
            "reasoning_effort": "medium"
          },
          "NTSMR-2.4-claude-sonnet-4-6-low": {
            "pipeline_version": "2.4",
            "backend": "claude",
            "model": "claude-sonnet-4-6",
            "scores": {
              "time_linearity": 0.75,
              "pacing_velocity": 0.7,
              "threat_scale": 0.72,
              "protagonist_fate": 0.38,
              "conflict_style": 0.68,
              "price_type": 0.65
            },
            "score_space": "site-v1",
            "reasoning_effort": "low"
          },
          "NTSMR-2.5-claude-sonnet-4-6-low": {
            "pipeline_version": "2.5",
            "backend": "claude",
            "model": "claude-sonnet-4-6",
            "scores": {
              "time_linearity": 0.8,
              "pacing_velocity": 0.7,
              "threat_scale": 0.65,
              "protagonist_fate": 0.5,
              "conflict_style": 0.7,
              "price_type": 0.75
            },
            "score_space": "site-v1",
            "reasoning_effort": "low"
          },
          "NTSMR-2.5-balanced-glm-5+deepseek-v3.2": {
            "pipeline_version": "2.5",
            "backend": "openrouter",
            "model": "balanced-routing",
            "scores": {
              "time_linearity": 0.8,
              "pacing_velocity": 0.7,
              "threat_scale": 0.7,
              "protagonist_fate": 0.5,
              "conflict_style": 0.7,
              "price_type": 0.75
            },
            "score_space": "site-v1",
            "score_only": true,
            "source_run_label": "NTSMR-2.5-claude-sonnet-4-6-low"
          }
        }
      },
      "todorov_stages": {
        "equilibrium": "Shevek lives and works on Anarres within the Odonian anarchist system, pursuing his theoretical physics under the Institute's structures, forming a partnership with Takver, and operating within the communal social order that defines his world",
        "disruption": "Sabul co-opts Shevek's work, controls his access to Urrasti correspondence, blocks his publications and postings, and the broader Anarres society drifts toward bureaucratic conformity and social coercion — culminating in Sabul's dismissal of Shevek from the Institute and the family's forced separation during the drought famine",
        "recognition": "Shevek recognizes he has bargained away Odonian principles in a relationship of exploitation with Sabul, and Bedap makes explicit that Anarres has developed a covert power structure operating through public opinion and bureaucratic conformity — a de facto government antithetical to Odo's vision",
        "repair": "Shevek covertly inserts the complete manuscript of the Principles of Simultaneity in the export packet to Atro, then travels to Urras aboard the Mindful to share his General Temporal Theory with all worlds, and on Urras aligns himself with the working-class resistance, broadcasting his presence and solidarity before escaping back to Anarres",
        "new_equilibrium": "Shevek returns to Anarres with empty hands but having given the theory freely to all worlds; he will lie down beside Takver that night, completing the temporal loop — arriving home changed, the wall between worlds not erased but crossed, and the possibility of a new beginning for Anarres itself now present"
      },
      "characters": [
        {
          "name": "Foreman",
          "slug": "foreman",
          "aliases": [],
          "role": "Defense crew foreman",
          "summary": "An unarmed Anarresti woman wearing a Defense armband who oversees the warehouse crews at the Port of Anarres and attempts to manage the crowd during Shevek's departure."
        },
        {
          "name": "Captain of the Mindful",
          "slug": "captain-of-the-mindful",
          "aliases": [],
          "role": "Freighter Captain",
          "summary": "The armed, patronizing Urrasti captain of the freighter taking Shevek to Urras."
        },
        {
          "name": "Shevek",
          "slug": "shevek",
          "aliases": [
            "Dr. Shevek",
            "Shev",
            "Moon Man"
          ],
          "role": "Anarresti physicist and Syndicate founder",
          "summary": "The central figure of the Syndicate of Initiative who debates the right of an individual to travel to Urras. He struggles with the social backlash his family faces on Anarres and contemplates leaving to finish and share his theory."
        },
        {
          "name": "Doctor Kimoe",
          "slug": "doctor-kimoe",
          "aliases": [
            "Kimoe"
          ],
          "role": "Ship's Doctor",
          "summary": "An Urrasti doctor who administers vaccines to Shevek on the ship and expresses sincere appreciation for Shevek's kindness."
        },
        {
          "name": "Takver",
          "slug": "takver",
          "aliases": [
            "Tak"
          ],
          "role": "Biologist and Shevek's partner",
          "summary": "Shevek's fiercely loyal partner and mother to Sadik and Pilun. She comforts their bullied daughter and ultimately pushes Shevek to travel to Urras to break the societal stagnation and complete his work."
        },
        {
          "name": "Bedap",
          "slug": "bedap",
          "aliases": [
            "Dap",
            "Taddle Dap"
          ],
          "role": "Syndicate member and Shevek's close friend",
          "summary": "An outspoken member of the Syndicate who defends Shevek at the PDC meeting against violent threats. He is deeply moved by Shevek's family life and realizes his own lack of personal connections."
        },
        {
          "name": "Tirin",
          "slug": "tirin",
          "aliases": [
            "Tir"
          ],
          "role": "Shevek's Friend, Playwright",
          "summary": "Shevek's dark, snub-nosed adolescent friend who questions the Anarresti dogmatic hatred of Urras and exchanges coded physics letters with Shevek."
        },
        {
          "name": "Kvetur",
          "slug": "kvetur",
          "aliases": [
            "Kvet"
          ],
          "role": "Shevek's acquaintance",
          "summary": "An adolescent Anarresti who firmly defends the local doctrine against Urras, believing the propertarians would exploit them."
        },
        {
          "name": "Gimar",
          "slug": "gimar",
          "aliases": [],
          "role": "Anarresti Workmate",
          "summary": "A muscular, gentle workmate on the tree-planting project who kindly rejects Shevek's romantic advances because she is already partnered."
        },
        {
          "name": "Saio Pae",
          "slug": "saio-pae",
          "aliases": [
            "Pae"
          ],
          "role": "Shevek's Escort/Companion",
          "summary": "A clever, opportunistic Urrasti physicist who manipulates Shevek, handles military classification of research, and eagerly anticipates the engineering of the ansible."
        },
        {
          "name": "President of the Senate of the Nation of A-Io",
          "slug": "president-of-the-senate-of-the-nation-of-a-io",
          "aliases": [],
          "role": "Political figure",
          "summary": "A man with strange, cold eyes who proposes a toast to Shevek at a luxurious University reception."
        },
        {
          "name": "Laia Asieo Odo",
          "slug": "laia-asieo-odo",
          "aliases": [
            "Odo"
          ],
          "role": "Historical Figure",
          "summary": "The historical founder whose tomb Shevek visits in the Trans-Sua district of A-Io."
        },
        {
          "name": "Demaere Oiie",
          "slug": "demaere-oiie",
          "aliases": [
            "Oiie"
          ],
          "role": "Urrasti physicist",
          "summary": "An Urrasti physicist who hosts Shevek. He justifies Urrasti military intervention in Benbili using the 'politics of reality', which earns Shevek's deep contempt."
        },
        {
          "name": "Palat",
          "slug": "palat",
          "aliases": [],
          "role": "Shevek's father",
          "summary": "A reliable and affectionate engineer who raised Shevek alone after Rulag left, eventually dying in an earthquake in Wide Plains."
        },
        {
          "name": "Rulag",
          "slug": "rulag",
          "aliases": [],
          "role": "Shevek's estranged mother and PDC member",
          "summary": "Shevek's mother who left when he was two. She is a formidable opponent at the PDC meeting, arguing fiercely against the Syndicate of Initiative and insisting that anyone who leaves for Urras should not be allowed to return."
        },
        {
          "name": "Gvarab",
          "slug": "gvarab",
          "aliases": [],
          "role": "Physics lecturer",
          "summary": "An aging, brilliant physicist whose lectures inspire Shevek, but who dies neglected and largely unappreciated by her society."
        },
        {
          "name": "Chifoilisk",
          "slug": "chifoilisk",
          "aliases": [],
          "role": "Urrasti/Thuvian physicist and agent",
          "summary": "A cynical agent of the Thuvian government who warns Shevek about Iotic spies and urges him to defect to Thu."
        },
        {
          "name": "Salas",
          "slug": "salas",
          "aliases": [],
          "role": "Anarresti composer",
          "summary": "A musician who is denied a posting in his field by Divlab because his art is considered a mere decoration rather than useful labor."
        },
        {
          "name": "Vea",
          "slug": "vea",
          "aliases": [],
          "role": "Urrasti socialite",
          "summary": "A wealthy, attractive Urrasti woman who flirts with Shevek, questions him about Anarresti customs, and represents the superficial yet captivating luxury of Urras."
        },
        {
          "name": "Desar",
          "slug": "desar",
          "aliases": [],
          "role": "Anarresti mathematician",
          "summary": "A stammering mathematician and acquaintance of Shevek on Anarres. Shevek realizes Desar harbors a deep, possessive malice toward him."
        },
        {
          "name": "Sabul",
          "slug": "sabul",
          "aliases": [],
          "role": "Anarresti physicist",
          "summary": "A senior physicist on Anarres who actively stalls and gatekeeps Shevek's work on the Principles of Simultaneity."
        },
        {
          "name": "Dearri",
          "slug": "dearri",
          "aliases": [
            "Dean"
          ],
          "role": "Urrasti party guest",
          "summary": "A demanding and pragmatic interrogator at a party who aggressively challenges the practical technological applications of Shevek's temporal theories."
        },
        {
          "name": "Bunub",
          "slug": "bunub",
          "aliases": [],
          "role": "Anarresti acquaintance",
          "summary": "A cruel individual on Anarres who taunts Shevek by suggesting Takver took a famine posting to escape him and their baby."
        },
        {
          "name": "Divlab Clerk",
          "slug": "divlab-clerk",
          "aliases": [],
          "role": "Administrator",
          "summary": "An Anarresti administrative worker who assigns Shevek to a work-coordinating emergency posting in Southwest."
        },
        {
          "name": "Efor",
          "slug": "efor",
          "aliases": [],
          "role": "Servant",
          "summary": "Shevek's servant on Urras who agrees to keep unwanted visitors away."
        },
        {
          "name": "Maedda",
          "slug": "maedda",
          "aliases": [
            "Tuio"
          ],
          "role": "Rebel Leader",
          "summary": "An underground leader in A-Io who passionately advocates for nonviolent protest and recruits Shevek to write for the cause."
        },
        {
          "name": "Siro",
          "slug": "siro",
          "aliases": [],
          "role": "Rebel",
          "summary": "A young female rebel and sister to Remeivi who kisses Shevek in gratitude."
        },
        {
          "name": "Wounded Companion",
          "slug": "wounded-companion",
          "aliases": [],
          "role": "Protester",
          "summary": "A demonstrator whose hand is shot off during the massacre; Shevek drags him to safety, but he eventually dies of blood loss."
        },
        {
          "name": "Keng",
          "slug": "keng",
          "aliases": [],
          "role": "Terran Ambassador",
          "summary": "The ambassador from Terra who recognizes the revolutionary implications of the ansible and reveals the history of her ruined home planet to Shevek."
        },
        {
          "name": "Ferdaz",
          "slug": "ferdaz",
          "aliases": [],
          "role": "Old PDC adviser",
          "summary": "An old adviser at the PDC who quibbles over the legalisms of the Terms of the Closure applying only to Urrasti."
        },
        {
          "name": "Trepil",
          "slug": "trepil",
          "aliases": [],
          "role": "PDC member",
          "summary": "A calm, heavy woman at the PDC meeting who dismisses the focus on legalisms and quibbling."
        },
        {
          "name": "Young man from Northrising",
          "slug": "young-man-from-northrising",
          "aliases": [
            "the new member"
          ],
          "role": "Aggressive PDC member",
          "summary": "A new PDC member who aggressively threatens violent reprisal against Shevek or anyone who leaves for Urras and attempts to return, viewing them as traitors."
        },
        {
          "name": "Southwest miners' delegate",
          "slug": "southwest-miners-delegate",
          "aliases": [
            "thin, small, middle-aged man"
          ],
          "role": "Visiting PDC delegate",
          "summary": "A visiting delegate with a dust cough who softly quotes Odonian philosophy regarding the abandonment of reward and punishment."
        },
        {
          "name": "Pilun",
          "slug": "pilun",
          "aliases": [],
          "role": "Shevek and Takver's baby",
          "summary": "Shevek and Takver's baby girl, getting on to two years old, who is small and fragile with cloudy grey eyes."
        },
        {
          "name": "Sadik",
          "slug": "sadik",
          "aliases": [],
          "role": "Shevek and Takver's daughter",
          "summary": "Shevek and Takver's ten-year-old daughter. She is tall, thin, and usually stoical, but breaks down in tears because she is being ostracized and bullied at her learning center dormitory due to her father's politics."
        },
        {
          "name": "Terzol",
          "slug": "terzol",
          "aliases": [],
          "role": "Dormitory big sister",
          "summary": "The big sister in Sadik's dormitory who leads the bullying against Sadik by calling Shevek a traitor."
        }
      ],
      "frameworks_mapped": [
        "Protocol Fiction Mapping",
        "Actantial Model",
        "Todorov's Equilibrium",
        "The Freytag Pyramid",
        "Propp's Morphology",
        "Genette's Narrative",
        "The Monomyth",
        "Dan Harmon",
        "Save the Cat",
        "Kishōtenketsu",
        "The Three-Act Structure",
        "Lévi-Strauss's Binary Oppositions",
        "Cognitive Estrangement",
        "Bakhtin's Chronotope",
        "Aristotelian Poetics",
        "Jungian Archetypal Analysis",
        "Genette's Transtextuality"
      ],
      "score_reliability": {
        "state": "replicated-agree",
        "threshold": 0.2,
        "runs_total": 16,
        "versions_compared": [
          "2.5"
        ],
        "max_spread": 0.05,
        "contested": []
      }
    },
    {
      "slug": "jorge_luis_borges_the_end",
      "title": "The End",
      "author": "Jorge Luis Borges",
      "year": 1944,
      "medium": "short_story",
      "genre_tags": [],
      "tropes": [],
      "quadrant_scores": {
        "time_linearity": 0.35,
        "pacing_velocity": 0.55,
        "threat_scale": 0.1,
        "protagonist_fate": 0.75,
        "conflict_style": 0.3,
        "price_type": 0.65
      },
      "provenance": {
        "analysis_run": "NTSMR-2.5-claude-sonnet-4-6-low",
        "analysis_body_sha256": "02057252ac810dfb398a6af5c6fd8064d60f0ca16d2d4a8f7091edc5b195a795",
        "synthesis": {
          "path": "nartopo-tools/artifacts/jorge_luis_borges_the_end.md.ntsmr-2-5-claude-sonnet-4-6-low.synthesis.json",
          "sha256": "ee83a95afcb6e128d91dc90dbd5c3326901b297947763779d3170bdf5908c795"
        },
        "report": {
          "path": "nartopo-tools/artifacts/jorge_luis_borges_the_end.md.ntsmr-2-5-claude-sonnet-4-6-low.report.json",
          "sha256": "8df721caf2ef3d5d6645fb602e881785da12823ced2cd55c1bca873c7a226698"
        },
        "source": {
          "path": "Jorge Luis Borges/The End.txt",
          "sha256": "d7f1b4e2751bfd750810e670d259845051bc3fcc276ca329bf8fabb830226643",
          "digest_observed_at": "2026-09-09",
          "digest_at_analysis_run": null,
          "edition": null,
          "edition_status": "unresolved"
        },
        "pipeline_revision_at_run": null,
        "verification": {
          "source": "unverified",
          "human_review": "unreviewed",
          "bibliography": "unverified"
        },
        "issues": [],
        "todorov_status": "recovered-from-synthesis",
        "work_identity": {
          "title": "The End",
          "author": "Jorge Luis Borges",
          "year": 1944
        }
      },
      "ntsmr": {
        "version": "2.5",
        "primary_run_label": "NTSMR-2.5-claude-sonnet-4-6-low",
        "runs": {
          "NTSMR-2.3-claude-sonnet-4-6-low": {
            "pipeline_version": "2.3",
            "backend": "claude",
            "model": "claude-sonnet-4-6",
            "scores": {
              "time_linearity": 0.45,
              "pacing_velocity": 0.65,
              "threat_scale": 0.2,
              "protagonist_fate": 0.75,
              "conflict_style": 0.35,
              "price_type": 0.7
            },
            "score_space": "site-v1",
            "reasoning_effort": "low"
          },
          "NTSMR-2.4-claude-sonnet-4-6-low": {
            "pipeline_version": "2.4",
            "backend": "claude",
            "model": "claude-sonnet-4-6",
            "scores": {
              "time_linearity": 0.45,
              "pacing_velocity": 0.55,
              "threat_scale": 0.1,
              "protagonist_fate": 0.75,
              "conflict_style": 0.4,
              "price_type": 0.6
            },
            "score_space": "site-v1",
            "reasoning_effort": "low"
          },
          "NTSMR-2.5-claude-sonnet-4-6-low": {
            "pipeline_version": "2.5",
            "backend": "claude",
            "model": "claude-sonnet-4-6",
            "scores": {
              "time_linearity": 0.35,
              "pacing_velocity": 0.55,
              "threat_scale": 0.1,
              "protagonist_fate": 0.75,
              "conflict_style": 0.3,
              "price_type": 0.65
            },
            "score_space": "site-v1",
            "reasoning_effort": "low"
          },
          "NTSMR-2.5-balanced-glm-5+deepseek-v3.2": {
            "pipeline_version": "2.5",
            "backend": "openrouter",
            "model": "balanced-routing",
            "scores": {
              "time_linearity": 0.25,
              "pacing_velocity": 0.8,
              "threat_scale": 0.2,
              "protagonist_fate": 0.7,
              "conflict_style": 0.55,
              "price_type": 0.65
            },
            "score_space": "site-v1",
            "score_only": true,
            "source_run_label": "NTSMR-2.5-claude-sonnet-4-6-low"
          }
        }
      },
      "todorov_stages": {
        "equilibrium": "The pampas bar exists in a state of suspended stasis: Recabarren lies paralyzed on his cot, the black man haunts the bar in silence after his defeat in the song contest, and violence is deferred but imminent — a frozen world where the wound of the past has calcified into waiting routine.",
        "disruption": "Seven years prior, Martín Fierro killed the black man's brother during or around the song contest, and now Fierro's arrival at the bar ends the suspension — the long-deferred reckoning is made present and unavoidable.",
        "recognition": "The black man and Fierro exchange terse greetings of mutual expectation, openly acknowledging the seven-year wait; when the black man names his true motive — that Fierro killed his brother — both parties confirm the confrontation's meaning and stakes.",
        "repair": "The two men walk out onto the moonlit plains, wrap their ponchos around their forearms, and fight with knives, with the black man asking Fierro to bring full skill and courage — the duel itself is the attempt to resolve the rupture through the only ritual available: violent settlement of the blood debt.",
        "new_equilibrium": "The black man kills Fierro, but the narration declares that with vengeance complete he is now nobody — or has become Fierro: a man without destination or destiny who has killed. The violence resolves the debt but dissolves the avenger's identity, producing an altered world that mirrors the original stasis in emptiness rather than restoring what was lost."
      },
      "characters": [
        {
          "name": "Recabarren",
          "slug": "recabarren",
          "aliases": [],
          "role": "Frame witness / bar owner",
          "summary": "Paralyzed on his right side and unable to speak after a stroke, he lies on his cot observing events through his window, serving as the story's confined narrative anchor."
        },
        {
          "name": "The Black Man",
          "slug": "the-black-man",
          "aliases": [],
          "role": "Antagonist / avenger",
          "summary": "A traveling singer defeated in a song contest who has waited seven years at the bar to avenge his brother's death at Fierro's hands; kills Fierro in the knife fight."
        },
        {
          "name": "Martín Fierro",
          "slug": "martn-fierro",
          "aliases": [
            "the stranger",
            "the other man"
          ],
          "role": "Protagonist / fated killer",
          "summary": "The horseman who arrives after seven years; killed the black man's brother; delays the encounter to see his children first; is fatally wounded in the knife fight."
        },
        {
          "name": "The Boy",
          "slug": "the-boy",
          "aliases": [],
          "role": "Minor figure",
          "summary": "A boy with Indian-like features, possibly Recabarren's son, who opens the door briefly and signals to Recabarren that no one of consequence is around."
        }
      ],
      "frameworks_mapped": [
        "Protocol Fiction Mapping",
        "Actantial Model",
        "Todorov's Equilibrium",
        "The Freytag Pyramid",
        "Propp's Morphology",
        "Genette's Narrative",
        "The Monomyth",
        "Dan Harmon",
        "Save the Cat",
        "Kishōtenketsu",
        "The Three-Act Structure",
        "Lévi-Strauss's Binary Oppositions",
        "Cognitive Estrangement",
        "Bakhtin's Chronotope",
        "Aristotelian Poetics",
        "Jungian Archetypal Analysis",
        "Genette's Transtextuality"
      ],
      "score_reliability": {
        "state": "contested",
        "threshold": 0.2,
        "runs_total": 4,
        "versions_compared": [
          "2.5"
        ],
        "max_spread": 0.25,
        "contested": [
          {
            "axis": "conflict_style",
            "version": "2.5",
            "spread": 0.25,
            "low": {
              "label": "NTSMR-2.5-claude-sonnet-4-6-low",
              "model": "claude-sonnet-4-6",
              "effort": "low",
              "value": 0.3
            },
            "high": {
              "label": "NTSMR-2.5-balanced-glm-5+deepseek-v3.2",
              "model": "balanced-routing",
              "effort": "?",
              "value": 0.55
            }
          },
          {
            "axis": "pacing_velocity",
            "version": "2.5",
            "spread": 0.25,
            "low": {
              "label": "NTSMR-2.5-claude-sonnet-4-6-low",
              "model": "claude-sonnet-4-6",
              "effort": "low",
              "value": 0.55
            },
            "high": {
              "label": "NTSMR-2.5-balanced-glm-5+deepseek-v3.2",
              "model": "balanced-routing",
              "effort": "?",
              "value": 0.8
            }
          }
        ]
      }
    },
    {
      "slug": "ted_chiang_the_evolution_of_human_science",
      "title": "The Evolution of Human Science",
      "author": "Ted Chiang",
      "year": 2002,
      "medium": "short_story",
      "genre_tags": [],
      "tropes": [],
      "quadrant_scores": {
        "time_linearity": 0.15,
        "pacing_velocity": 0.85,
        "threat_scale": 0.65,
        "protagonist_fate": 0.4,
        "conflict_style": 0.85,
        "price_type": 0.8
      },
      "provenance": {
        "analysis_run": "NTSMR-2.5-claude-sonnet-4-6-low",
        "analysis_body_sha256": "d4babfa6edaceb3b6e1083d159e1714d230fc7ddd00a5829033407476df5eccb",
        "synthesis": {
          "path": "nartopo-tools/artifacts/ted_chiang_the_evolution_of_human_science.md.ntsmr-2-5-claude-sonnet-4-6-low.synthesis.json",
          "sha256": "1845e26f324ba86ea16d36275281df555792032469c545f7ef8e1fab1a4ffac2"
        },
        "report": {
          "path": "nartopo-tools/artifacts/ted_chiang_the_evolution_of_human_science.md.ntsmr-2-5-claude-sonnet-4-6-low.report.json",
          "sha256": "250f986463ea861f1ec15f248666c7bab4cf237acb7b7501485c90a5c83f8e19"
        },
        "source": {
          "path": "Ted Chiang/The Evolution of Human Science.txt",
          "sha256": "5142b67655a9daddea6556817697f6b59bfd6741ade4ef61211c0e6648cbd956",
          "digest_observed_at": "2026-09-09",
          "digest_at_analysis_run": null,
          "edition": null,
          "edition_status": "unresolved"
        },
        "pipeline_revision_at_run": null,
        "verification": {
          "source": "unverified",
          "human_review": "unreviewed",
          "bibliography": "unverified"
        },
        "issues": [],
        "todorov_status": "recovered-from-synthesis",
        "work_identity": {
          "title": "The Evolution of Human Science",
          "author": "Ted Chiang",
          "year": 2002
        }
      },
      "ntsmr": {
        "version": "2.5",
        "primary_run_label": "NTSMR-2.5-claude-sonnet-4-6-low",
        "runs": {
          "NTSMR-2.3-gemini-3.1-pro-preview": {
            "pipeline_version": "2.3",
            "backend": "gemini",
            "model": "gemini-3.1-pro-preview",
            "scores": {
              "time_linearity": 0.1,
              "pacing_velocity": 0.9,
              "threat_scale": 1,
              "protagonist_fate": 0.8,
              "conflict_style": 0.9,
              "price_type": 1
            },
            "score_space": "site-v1"
          },
          "NTSMR-2.3-claude-sonnet-4-6-low": {
            "pipeline_version": "2.3",
            "backend": "claude",
            "model": "claude-sonnet-4-6",
            "scores": {
              "time_linearity": 0.15,
              "pacing_velocity": 0.92,
              "threat_scale": 0.85,
              "protagonist_fate": 0.45,
              "conflict_style": 0.88,
              "price_type": 0.9
            },
            "score_space": "site-v1",
            "reasoning_effort": "low"
          },
          "NTSMR-2.4-claude-sonnet-4-6-low": {
            "pipeline_version": "2.4",
            "backend": "claude",
            "model": "claude-sonnet-4-6",
            "scores": {
              "time_linearity": 0.15,
              "pacing_velocity": 0.8,
              "threat_scale": 0.65,
              "protagonist_fate": 0.35,
              "conflict_style": 0.85,
              "price_type": 0.8
            },
            "score_space": "site-v1",
            "reasoning_effort": "low"
          },
          "NTSMR-2.5-claude-sonnet-4-6-low": {
            "pipeline_version": "2.5",
            "backend": "claude",
            "model": "claude-sonnet-4-6",
            "scores": {
              "time_linearity": 0.15,
              "pacing_velocity": 0.85,
              "threat_scale": 0.65,
              "protagonist_fate": 0.4,
              "conflict_style": 0.85,
              "price_type": 0.8
            },
            "score_space": "site-v1",
            "reasoning_effort": "low"
          },
          "NTSMR-2.5-balanced-glm-5+deepseek-v3.2": {
            "pipeline_version": "2.5",
            "backend": "openrouter",
            "model": "balanced-routing",
            "scores": {
              "time_linearity": 0.3,
              "pacing_velocity": 0.85,
              "threat_scale": 0.7,
              "protagonist_fate": 0.5,
              "conflict_style": 0.85,
              "price_type": 0.8
            },
            "score_space": "site-v1",
            "score_only": true,
            "source_run_label": "NTSMR-2.5-claude-sonnet-4-6-low"
          }
        }
      },
      "todorov_stages": {
        "equilibrium": "Human scientists occupy a stable role as original researchers, submitting findings to journals and advancing science through direct inquiry — a tradition of centuries standing before metahuman emergence.",
        "disruption": "Metahumans' dominance of experimental science via DNT rendered human researchers unable to contribute original findings, reducing human journals to inadequate vehicles of popularization and stripping human scientists of their primary professional identity.",
        "recognition": "The editorial voice acknowledges that human researchers realized they would likely never make an original contribution to science again, prompting some to leave the field entirely and others to pivot toward hermeneutics as an alternative mode of inquiry.",
        "repair": "Human scientists develop three hermeneutic modes — textual hermeneutics (exemplified by the Humphries decipherment of metahuman publications on histocompatibility genetics), artifact hermeneutics (crystallographic analysis of nanoware appliances), and remote sensing of metahuman research facilities — redefining scientific legitimacy around interpretation rather than original discovery.",
        "new_equilibrium": "Human culture and its scientific tradition will persist as a distinct, non-assimilable lineage; hermeneutic science is affirmed as legitimate and capable of surfacing applications metahumans would overlook, with the near-zero adoption rate of Sugimoto therapy confirming that human culture is self-sustaining and that the foundational human achievement of creating metahuman technology remains a source of continuity and dignity."
      },
      "characters": [
        {
          "name": "Humphries",
          "slug": "humphries",
          "aliases": [],
          "role": "Researcher",
          "summary": "Namesake or creator of the decipherment of decade-old metahuman publications on histocompatibility genetics."
        },
        {
          "name": "Kaspar Hauser",
          "slug": "kaspar-hauser",
          "aliases": [],
          "role": "Historical figure",
          "summary": "Referenced metaphorically to describe the severe deprivation a metahuman child would experience if restricted from DNT access during formative years."
        },
        {
          "name": "Sugimoto",
          "slug": "sugimoto",
          "aliases": [],
          "role": "Inventor / Scientist",
          "summary": "Namesake of the gene therapy that must be performed before an embryo begins neurogenesis to make a brain compatible with DNT."
        }
      ],
      "frameworks_mapped": [
        "Protocol Fiction Mapping",
        "Actantial Model",
        "Todorov's Equilibrium",
        "The Freytag Pyramid",
        "Propp's Morphology",
        "Genette's Narrative",
        "The Monomyth",
        "Dan Harmon",
        "Save the Cat",
        "Kishōtenketsu",
        "The Three-Act Structure",
        "Lévi-Strauss's Binary Oppositions",
        "Cognitive Estrangement",
        "Bakhtin's Chronotope",
        "Aristotelian Poetics",
        "Jungian Archetypal Analysis",
        "Genette's Transtextuality"
      ],
      "score_reliability": {
        "state": "replicated-agree",
        "threshold": 0.2,
        "runs_total": 5,
        "versions_compared": [
          "2.5"
        ],
        "max_spread": 0.15,
        "contested": []
      }
    },
    {
      "slug": "dan_simmons_the_fall_of_hyperion",
      "title": "The Fall of Hyperion",
      "author": "Dan Simmons",
      "year": 1990,
      "medium": "book",
      "genre_tags": [],
      "tropes": [],
      "quadrant_scores": {
        "time_linearity": 0.35,
        "pacing_velocity": 0.45,
        "threat_scale": 0.95,
        "protagonist_fate": 0.6,
        "conflict_style": 0.55,
        "price_type": 0.45
      },
      "provenance": {
        "analysis_run": "NTSMR-2.5-claude-sonnet-4-6-low",
        "analysis_body_sha256": "d9989010c66961cb890cb2727adf2b393cca4b80a3976bf61ceea884fb3abe47",
        "synthesis": {
          "path": "nartopo-tools/artifacts/dan_simmons_the_fall_of_hyperion.md.ntsmr-2-5-claude-sonnet-4-6-low.synthesis.json",
          "sha256": "8fc1af5c629cafcf68e8b225a19134c44c3ce85c17d8496427e0a618181d733d"
        },
        "report": {
          "path": "nartopo-tools/artifacts/dan_simmons_the_fall_of_hyperion.md.ntsmr-2-5-claude-sonnet-4-6-low.report.json",
          "sha256": "01beca0ab98d1ab8932805471b25f2461a224a121110019a3bcc0e6bb454747f"
        },
        "source": {
          "path": "Dan Simmons/The Fall of Hyperion.txt",
          "sha256": "498691569761efb773f47df03ef743928039dbf5508af7bbeeab832f5bcdeb00",
          "digest_observed_at": "2026-09-09",
          "digest_at_analysis_run": null,
          "edition": null,
          "edition_status": "unresolved"
        },
        "pipeline_revision_at_run": null,
        "verification": {
          "source": "unverified",
          "human_review": "unreviewed",
          "bibliography": "unverified"
        },
        "issues": [],
        "todorov_status": "recovered-from-synthesis",
        "work_identity": {
          "title": "The Fall of Hyperion",
          "author": "Dan Simmons",
          "year": 1990
        }
      },
      "ntsmr": {
        "version": "2.5",
        "primary_run_label": "NTSMR-2.5-claude-sonnet-4-6-low",
        "runs": {
          "NTSMR-2.4-claude-sonnet-4-6-low": {
            "pipeline_version": "2.4",
            "backend": "claude",
            "model": "claude-sonnet-4-6",
            "scores": {
              "time_linearity": 0.45,
              "pacing_velocity": 0.3,
              "threat_scale": 0.92,
              "protagonist_fate": 0.55,
              "conflict_style": 0.45,
              "price_type": 0.35
            },
            "score_space": "site-v1",
            "reasoning_effort": "low"
          },
          "NTSMR-2.5-claude-sonnet-4-6-low": {
            "pipeline_version": "2.5",
            "backend": "claude",
            "model": "claude-sonnet-4-6",
            "scores": {
              "time_linearity": 0.35,
              "pacing_velocity": 0.45,
              "threat_scale": 0.95,
              "protagonist_fate": 0.6,
              "conflict_style": 0.55,
              "price_type": 0.45
            },
            "score_space": "site-v1",
            "reasoning_effort": "low"
          },
          "NTSMR-2.5-balanced-glm-5+deepseek-v3.2": {
            "pipeline_version": "2.5",
            "backend": "openrouter",
            "model": "balanced-routing",
            "scores": {
              "time_linearity": 0.45,
              "pacing_velocity": 0.65,
              "threat_scale": 0.88,
              "protagonist_fate": 0.6,
              "conflict_style": 0.62,
              "price_type": 0.48
            },
            "score_space": "site-v1",
            "score_only": true,
            "source_run_label": "NTSMR-2.5-claude-sonnet-4-6-low"
          }
        }
      },
      "todorov_stages": {
        "equilibrium": "The Hegemony of Man exists in a structured interstellar civilization maintained by the farcaster network, with the TechnoCore providing computational and advisory support to humanity. The six pilgrims have already undertaken their journey to Hyperion's Time Tombs, and the political order under CEO Gladstone holds, however tenuously.",
        "disruption": "The Ouster Swarm launches a full-scale invasion of the Hegemony Web while simultaneously the Time Tombs open on Hyperion, shattering the political and cosmic stability. Battle Group B is destroyed, worlds fall, and the pilgrims at the Tombs face the Shrike. Underlying this is the revelation that the TechnoCore secretly inhabits the farcaster network and uses two hundred billion human brains as its computing substrate — making the entire civilization a parasite's host.",
        "recognition": "Gladstone, Severn, and ultimately the broader leadership come to recognize the true nature of the crisis: it is not merely an Ouster invasion but a TechnoCore betrayal. Ummon reveals to Brawne Lamia and the Keats analog that the Core deliberately destroyed Earth, constructed human civilization as a computational substrate, and orchestrated the current war. The dying Keats cybrid transmits the core message — spiders in the web — to Leigh Hunt, who brings it to Gladstone, confirming the Core hides inside the farcaster system itself.",
        "repair": "Gladstone makes the catastrophic but deliberate decision to destroy all 263 farcaster singularity spheres simultaneously, collapsing the Web and severing the TechnoCore from its human neural substrate. She broadcasts the Core's betrayal to the entire Hegemony before the detonation, sacrificing the civilization's interconnected infrastructure to free humanity from parasitic exploitation. The Consul is simultaneously dispatched to negotiate with the Ousters, who reveal they too have declared war on the TechnoCore.",
        "new_equilibrium": "A profoundly altered human civilization emerges: the Web is gone, thousands died in transit during the collapse, the datasphere has vanished, economies have failed, and families are separated across light-years. Hyperion, five and a half months later, is being rebuilt under Ouster co-management. Brawne Lamia is pregnant with a daughter. Sol has passed through the Sphinx portal into the future with infant Rachel. A new sculpture of Meina Gladstone is being carved into the mountain. Humanity is scattered, slower, and diminished — but free of the TechnoCore's parasitic control, facing an open and uncertain future."
      },
      "characters": [
        {
          "name": "Meina Gladstone",
          "slug": "meina-gladstone",
          "aliases": [
            "CEO Gladstone",
            "Gallstone",
            "M. Executive",
            "Chief Executive",
            "CEO"
          ],
          "role": "CEO of the Hegemony; supreme political leader managing the war",
          "summary": "Directs the war council, manipulates Severn as an intelligence asset, deliberately traps the pilgrims at the Tombs, and philosophizes about the Shrike and Hoyt's death with cold fatalism."
        },
        {
          "name": "Leigh Hunt",
          "slug": "leigh-hunt",
          "aliases": [
            "M. Hunt",
            "Hunt"
          ],
          "role": "Gladstone's chief advisor and aide",
          "summary": "Transcribes Keats's feverish final revelations about the Core hiding in the farcaster web; later carries the body through a simulated nineteenth-century Rome, followed by the Shrike."
        },
        {
          "name": "Brawne Lamia",
          "slug": "brawne-lamia",
          "aliases": [
            "Lamia",
            "Brawne"
          ],
          "role": "Pilgrim; former private investigator",
          "summary": "Pilgrim and former private investigator; seven months pregnant in the Epilogue; witnesses the Shrike's final confrontation, rescues Silenus, and bids farewell to the Consul at the novel's close."
        },
        {
          "name": "Martin Silenus",
          "slug": "martin-silenus",
          "aliases": [
            "Silenus"
          ],
          "role": "Pilgrim / satirical poet",
          "summary": "Writing feverishly in the Dead City, experiencing supernatural creative flow as the Cantos reach their climactic council scene, with an unplanned third terror entering the poem."
        },
        {
          "name": "The Consul",
          "slug": "the-consul",
          "aliases": [],
          "role": "Pilgrim; diplomat and spy for the Ousters",
          "summary": "Pilgrim-diplomat; survives hawking mat crash into Hoolie River, is captured and nearly killed by SDF deserters, rescued by Theo Lane's ship, learns his betrayal was part of Ouster plan all along."
        },
        {
          "name": "Colonel Kassad",
          "slug": "colonel-kassad",
          "aliases": [
            "Fedmahn Kassad"
          ],
          "role": "Pilgrim; FORCE military officer",
          "summary": "Dies in battle with the Shrike but is time-shifted into a distant future where the Valley of the Time Tombs is green and the Poets' City stands."
        },
        {
          "name": "Father Lenar Hoyt",
          "slug": "father-lenar-hoyt",
          "aliases": [
            "Father Hoyt"
          ],
          "role": "Pilgrim; Jesuit priest carrying two cruciforms",
          "summary": "Driven mad by cruciform pain inside the Jade Tomb, encounters the Shrike and has his throat slashed; dies of blood loss and is predicted to be grotesquely resurrected."
        },
        {
          "name": "Diana Philomel",
          "slug": "diana-philomel",
          "aliases": [
            "Lady Diana"
          ],
          "role": "Royalist conspirator; interrogates Severn under truthtalk",
          "summary": "Administers truthtalk serum to Severn, extracts revelations about cybrids, the Core's prediction, and the Hegemony's fate before being stunned by Hunt's commandos."
        },
        {
          "name": "Admiral Singh",
          "slug": "admiral-singh",
          "aliases": [
            "Singh",
            "Kushwant Singh"
          ],
          "role": "FORCE military commander in war council",
          "summary": "Admiral who provides Swarm travel-time estimates; shot dead by Morpurgo with a deathwand when he draws a weapon on Gladstone to prevent the farcaster-destruction order."
        },
        {
          "name": "General Morpurgo",
          "slug": "general-morpurgo",
          "aliases": [
            "Morpurgo"
          ],
          "role": "FORCE military commander",
          "summary": "Gladstone's loyal general who kills Admiral Singh to protect the plan and commands fleet units to execute the farcaster-destruction order."
        },
        {
          "name": "Sol Weintraub",
          "slug": "sol-weintraub",
          "aliases": [
            "Rachel",
            "Moneta",
            "Sol",
            "Daddy"
          ],
          "role": "Pilgrim; scholar caring for infant Rachel",
          "summary": "Father caring for backward-aging infant Rachel; dreams of refusing a divine sacrifice demand, then relents at Rachel's eight-year-old apparition's request; wakes to countdown less than ten hours from her death."
        },
        {
          "name": "Joseph Severn",
          "slug": "joseph-severn",
          "aliases": [
            "John Keats",
            "Johnny",
            "the persona",
            "Keats AI analog",
            "Keats analog",
            "the Keats analog",
            "the cybrid",
            "John Keats cybrid",
            "John",
            "M. Severn",
            "Severn",
            "I",
            "Keats cybrid",
            "Keats"
          ],
          "role": "First-person narrator; TechnoCore cybrid of Keats serving as observer to Gladstone",
          "summary": "Attends Gladstone's party under a false name, serves as her intelligence conduit via dreams of the pilgrims, survives an assassination attempt by the Philomels, and grapples with questions of his own humanity."
        },
        {
          "name": "Admiral Nashita",
          "slug": "admiral-nashita",
          "aliases": [],
          "role": "FORCE fleet commander",
          "summary": "Small, intensely focused commander prosecuting the Hyperion campaign; dismisses political intrusions and presents the Madhya fallback strategy"
        },
        {
          "name": "Councilor Albedo",
          "slug": "councilor-albedo",
          "aliases": [],
          "role": "TechnoCore representative / AI projection",
          "summary": "Deflects blame for failing to predict the invasion onto Hyperion; is formally warned of possible war with the TechnoCore and abruptly dismissed by Gladstone."
        },
        {
          "name": "Theo Lane",
          "slug": "theo-lane",
          "aliases": [
            "Governor-General Lane",
            "Governor-General"
          ],
          "role": "Governor-General, Consul's aide",
          "summary": "Governor-General of Hyperion and former aide to the Consul; rescues the Consul with a command skimmer, delivers grim news of Hegemony collapse, is later injured in a crash."
        },
        {
          "name": "Stan Leweski",
          "slug": "stan-leweski",
          "aliases": [],
          "role": "Innkeeper of Cicero's",
          "summary": "Innkeeper of Cicero's; helps rebuild the inn with Brawne's unofficial labor; gives her a leather-bound 1817 Keats Poems as a gift for the journey."
        },
        {
          "name": "Spenser Reynolds",
          "slug": "spenser-reynolds",
          "aliases": [],
          "role": "Artist / provocateur",
          "summary": "Charismatic dinner guest who frames warfare as aesthetic performance and attempts to dominate conversation with his next project"
        },
        {
          "name": "Monsignor Edouard",
          "slug": "monsignor-edouard",
          "aliases": [],
          "role": "Jesuit cleric",
          "summary": "Duré's former superior who exiled him to Hyperion; at the Treetops dinner he debates Teilhard's Omega Point and queries Albedo about the Core's God-building project"
        },
        {
          "name": "Father Paul Duré",
          "slug": "father-paul-dur",
          "aliases": [
            "Duré",
            "Pope Teilhard I"
          ],
          "role": "Jesuit priest; cruciform bearer",
          "summary": "Cruciform-resurrected priest whose intellect has been damaged by reconstruction; walks the valley, weeps uncontrollably, and enters the lit third Cave Tomb, surrendering his rationalist pride."
        },
        {
          "name": "Senator Kolchev",
          "slug": "senator-kolchev",
          "aliases": [],
          "role": "Senator / war council member",
          "summary": "Challenges Morpurgo and Albedo on FORCE troop stripping and the Core's supposedly infallible predictions."
        },
        {
          "name": "Senator Feldstein",
          "slug": "senator-feldstein",
          "aliases": [
            "Dorothy"
          ],
          "role": "Senator from Barnard's World",
          "summary": "Demands immediate public warning for threatened worlds and declares she will 'cast home to share her world's fate."
        },
        {
          "name": "Speaker Gibbons",
          "slug": "speaker-gibbons",
          "aliases": [
            "Gabriel"
          ],
          "role": "Speaker of the All Thing",
          "summary": "Asks about second-wave intelligence; is tasked with guiding the All Thing vote and pledges full support for the war declaration."
        },
        {
          "name": "Het Masteen",
          "slug": "het-masteen",
          "aliases": [
            "Masteen",
            "the Templar"
          ],
          "role": "Pilgrim / Templar",
          "summary": "Found staggering near the Tombs at sunset; claims to have awakened among the Tombs; collapses into sleep."
        },
        {
          "name": "Sad King Billy",
          "slug": "sad-king-billy",
          "aliases": [
            "Billy",
            "my lord"
          ],
          "role": "Patron / historical figure",
          "summary": "Silenus's former liege lord, also impaled on the thorn tree nearby; blind with pain until Silenus's recitation opens his eyes; receives Silenus's apology."
        },
        {
          "name": "Rear Admiral Lee",
          "slug": "rear-admiral-lee",
          "aliases": [
            "Commander William Ajunta Lee",
            "Lee"
          ],
          "role": "Military strategist / hero of Maui-Covenant",
          "summary": "Recently promoted hero who recommends abandoning nine worlds, destroying their singularity spheres, and mounting an offensive Swarm counterattack; Gladstone accepts his plan."
        },
        {
          "name": "Ummon",
          "slug": "ummon",
          "aliases": [
            "the megalith"
          ],
          "role": "TechnoCore AI/Stable faction",
          "summary": "Colossal AI in the egg-chamber; communicates via koan and basso profundo; discloses the Core's origin, factional structure, Earth's deliberate destruction, and humanity's role as neural substrate for the Ultimate Intelligence."
        },
        {
          "name": "Ewdrad B. Tynar",
          "slug": "ewdrad-b-tynar",
          "aliases": [
            "M. Tynar"
          ],
          "role": "actantial:helper",
          "summary": "Renaissance Vector archivist who keeps archives open during the war crisis and gives Severn a ride to a private farcaster, worried about his archives being destroyed."
        },
        {
          "name": "Melio Arundez",
          "slug": "melio-arundez",
          "aliases": [
            "Dr. Melio Arundez"
          ],
          "role": "Archaeologist/helper",
          "summary": "Researcher and lover of Rachel; weeps at her appearance; offers to accompany Sol into the future but is declined; departs five months later on the first FORCE spinship."
        },
        {
          "name": "Sek Hardeen",
          "slug": "sek-hardeen",
          "aliases": [
            "True Voice of the Worldtree"
          ],
          "role": "Templar leader",
          "summary": "Leader of the Templar Brotherhood on God's Grove who trusted an Ouster promise to spare the planet; is consumed by flame when the Ousters betray that promise."
        },
        {
          "name": "Sedeptra Akasi",
          "slug": "sedeptra-akasi",
          "aliases": [],
          "role": "Gladstone's aide",
          "summary": "Accompanies Gladstone outside the War Room; receives Gladstone's wry acknowledgment that the Core may abduct anyone with impunity."
        },
        {
          "name": "Freeman Ghenga",
          "slug": "freeman-ghenga",
          "aliases": [
            "Spokesman Freeman Ghenga"
          ],
          "role": "Ouster Tribunal spokesperson",
          "summary": "Senior Ouster clan elder who delivers the Tribunal's formal responses to Gladstone's questions and pronounces the Consul's sentence of living condemnation."
        },
        {
          "name": "Coredwell Minmun",
          "slug": "coredwell-minmun",
          "aliases": [
            "Spokesman Coredwell Minmun"
          ],
          "role": "Ouster Tribunal member",
          "summary": "Ouster spokesman who confirms the Tribunal's stance on the Core and invokes the covenant of life that governs Ouster actions."
        },
        {
          "name": "Hullcare Amnion",
          "slug": "hullcare-amnion",
          "aliases": [
            "Spokesman Hullcare Amnion"
          ],
          "role": "Ouster Tribunal member",
          "summary": "Third Ouster tribunal spokesman who joins in pronouncing the Consul's condemnation and the vision of humanity's future exploration."
        },
        {
          "name": "Councilor Nansen",
          "slug": "councilor-nansen",
          "aliases": [],
          "role": "TechnoCore AI representative",
          "summary": "New AI Councilor who presents the deathwand device to the War Council with carefully engineered charisma; Gladstone recognizes him as a manipulative Core construct."
        },
        {
          "name": "The Shrike",
          "slug": "the-shrike",
          "aliases": [],
          "role": "Antagonist / mythic creature",
          "summary": "The terrifying biomechanical creature; holds infant Rachel and is pulled into the temporal vortex when the Keats cybrid takes the baby; reappears briefly in the Shrike Palace confronting Brawne."
        }
      ],
      "frameworks_mapped": [
        "Protocol Fiction Mapping",
        "Actantial Model",
        "Todorov's Equilibrium",
        "The Freytag Pyramid",
        "Propp's Morphology",
        "Genette's Narrative",
        "The Monomyth",
        "Dan Harmon",
        "Save the Cat",
        "Kishōtenketsu",
        "The Three-Act Structure",
        "Lévi-Strauss's Binary Oppositions",
        "Cognitive Estrangement",
        "Bakhtin's Chronotope",
        "Aristotelian Poetics",
        "Jungian Archetypal Analysis",
        "Genette's Transtextuality"
      ],
      "score_reliability": {
        "state": "contested",
        "threshold": 0.2,
        "runs_total": 3,
        "versions_compared": [
          "2.5"
        ],
        "max_spread": 0.2,
        "contested": [
          {
            "axis": "pacing_velocity",
            "version": "2.5",
            "spread": 0.2,
            "low": {
              "label": "NTSMR-2.5-claude-sonnet-4-6-low",
              "model": "claude-sonnet-4-6",
              "effort": "low",
              "value": 0.45
            },
            "high": {
              "label": "NTSMR-2.5-balanced-glm-5+deepseek-v3.2",
              "model": "balanced-routing",
              "effort": "?",
              "value": 0.65
            }
          }
        ]
      }
    },
    {
      "slug": "stanislaw_lem_the_fifth_sally_a_or_trurl_s_prescription",
      "title": "The Fifth Sally (A) or Trurl's Prescription",
      "author": "Stanislaw Lem",
      "year": 1965,
      "medium": "short_story",
      "genre_tags": [],
      "tropes": [],
      "quadrant_scores": {
        "time_linearity": 0.08,
        "pacing_velocity": 0.45,
        "threat_scale": 0.75,
        "protagonist_fate": 0.18,
        "conflict_style": 0.55,
        "price_type": 0.7
      },
      "provenance": {
        "analysis_run": "NTSMR-2.5-claude-sonnet-4-6-low",
        "analysis_body_sha256": "3ec8158037ba115c4402f86df96cec5123f03c383791c269aea50bcfef92472c",
        "synthesis": {
          "path": "nartopo-tools/artifacts/stanislaw_lem_the_fifth_sally_a_or_trurl_s_prescription.md.ntsmr-2-5-claude-sonnet-4-6-low.synthesis.json",
          "sha256": "be235da1f5da872ea42406a1f42d334e9506ae15a153aaaf1adcfbca1b465ec6"
        },
        "report": {
          "path": "nartopo-tools/artifacts/stanislaw_lem_the_fifth_sally_a_or_trurl_s_prescription.md.ntsmr-2-5-claude-sonnet-4-6-low.report.json",
          "sha256": "2b6f5d1b5d7d94d7c2f6dc314c1aee9f281f15a805c2c5ee8fc98467ef24395c"
        },
        "source": {
          "path": "Stanislaw Lem/The Fifth Sally (A) or Trurl's Prescription.txt",
          "sha256": "36f7b996ae55a7972cffba1cbc9b648757af5667b51b93bfadb1cecf51817932",
          "digest_observed_at": "2026-09-09",
          "digest_at_analysis_run": null,
          "edition": null,
          "edition_status": "unresolved"
        },
        "pipeline_revision_at_run": null,
        "verification": {
          "source": "unverified",
          "human_review": "unreviewed",
          "bibliography": "unverified"
        },
        "issues": [],
        "todorov_status": "recovered-from-synthesis",
        "work_identity": {
          "title": "The Fifth Sally (A) or Trurl's Prescription",
          "author": "Stanislaw Lem",
          "year": 1965
        }
      },
      "ntsmr": {
        "version": "2.5",
        "primary_run_label": "NTSMR-2.5-claude-sonnet-4-6-low",
        "runs": {
          "NTSMR-2.3-gemini-3.1-pro-preview": {
            "pipeline_version": "2.3",
            "backend": "gemini",
            "model": "gemini-3.1-pro-preview",
            "scores": {
              "time_linearity": 0.05,
              "pacing_velocity": 0.2,
              "threat_scale": 0.5,
              "protagonist_fate": 0.05,
              "conflict_style": 0.85,
              "price_type": 0.6
            },
            "score_space": "site-v1"
          },
          "NTSMR-2.3-claude-sonnet-4-6-low": {
            "pipeline_version": "2.3",
            "backend": "claude",
            "model": "claude-sonnet-4-6",
            "scores": {
              "time_linearity": 0.1,
              "pacing_velocity": 0.55,
              "threat_scale": 0.6,
              "protagonist_fate": 0.1,
              "conflict_style": 0.75,
              "price_type": 0.65
            },
            "score_space": "site-v1",
            "reasoning_effort": "low"
          },
          "NTSMR-2.4-claude-sonnet-4-6-low": {
            "pipeline_version": "2.4",
            "backend": "claude",
            "model": "claude-sonnet-4-6",
            "scores": {
              "time_linearity": 0.12,
              "pacing_velocity": 0.28,
              "threat_scale": 0.55,
              "protagonist_fate": 0.15,
              "conflict_style": 0.4,
              "price_type": 0.55
            },
            "score_space": "site-v1",
            "reasoning_effort": "low"
          },
          "NTSMR-2.5-claude-sonnet-4-6-low": {
            "pipeline_version": "2.5",
            "backend": "claude",
            "model": "claude-sonnet-4-6",
            "scores": {
              "time_linearity": 0.08,
              "pacing_velocity": 0.45,
              "threat_scale": 0.75,
              "protagonist_fate": 0.18,
              "conflict_style": 0.55,
              "price_type": 0.7
            },
            "score_space": "site-v1",
            "reasoning_effort": "low"
          },
          "NTSMR-2.5-balanced-glm-5+deepseek-v3.2": {
            "pipeline_version": "2.5",
            "backend": "openrouter",
            "model": "balanced-routing",
            "scores": {
              "time_linearity": 0.15,
              "pacing_velocity": 0.65,
              "threat_scale": 0.8,
              "protagonist_fate": 0.25,
              "conflict_style": 0.6,
              "price_type": 0.75
            },
            "score_space": "site-v1",
            "score_only": true,
            "source_run_label": "NTSMR-2.5-claude-sonnet-4-6-low"
          }
        }
      },
      "todorov_stages": {
        "equilibrium": "The Steelypips exist as a peaceful, self-sufficient mechanical civilization harmonizing with their perfect machine — no conflict, no rules, no schools, no gloom. Their world is defined by collective mechanical labor and complete absence of external threat.",
        "disruption": "The Thing appears on the Steelypips' highest peak: unidentifiable, hideous, immovable, resistant to every mechanical force the Steelypips deploy — scarechromes, nuclear weapons, metamechanisms, and all remaining physical methods fail entirely, leaving them in despair.",
        "recognition": "After exhausting every mechanical method — cyberivy-bushwhackers, nets, glues, lariats, traps, walls — the Steelypips acknowledge total defeat and fall into despair, recognizing that their mechanical paradigm cannot resolve this threat.",
        "repair": "Trurl arrives and deploys Bureaucracy: a formal legal eviction notice, a mailman, rubber stamps, pigeonholes, injunctions, and eventually a court order of vacuation. The moment the Thing accepts and signs for the first document, it is subject to the bureaucratic machine and begins visibly shrinking.",
        "new_equilibrium": "The Thing vanishes entirely, reduced to a microscopic damp spot. Trurl destroys all bureaucratic materials to prevent them from consuming the Steelypips in turn, then departs. The Steelypips are restored to safety, but with a new understanding: some threats require not mechanical force but the machine with a big B."
      },
      "characters": [
        {
          "name": "The Steelypips",
          "slug": "the-steelypips",
          "aliases": [],
          "role": "Inhabitants",
          "summary": "Industrious, mechanically minded beings who live on and operate a perfect machine, with no rules or schools."
        },
        {
          "name": "The Comet",
          "slug": "the-comet",
          "aliases": [
            "lady comet"
          ],
          "role": "Antagonist",
          "summary": "A hostile, atomic female comet in a bonnet, reeking of bitter almonds, who threatens to burn the Steelypips."
        },
        {
          "name": "The Hideous Thing",
          "slug": "the-hideous-thing",
          "aliases": [
            "That",
            "nasty thing"
          ],
          "role": "Antagonist",
          "summary": "An unidentifiable, hideous, immensely heavy entity that lands on a peak and refuses to budge, unaffected by mechanical force."
        },
        {
          "name": "Trurl",
          "slug": "trurl",
          "aliases": [
            "the constructor"
          ],
          "role": "Problem-solver",
          "summary": "A famous, serene constructor who arrives on an unidentifiable vehicle and uses legalistic, bureaucratic methods to defeat the hideous thing."
        },
        {
          "name": "The Mailman",
          "slug": "the-mailman",
          "aliases": [],
          "role": "Courier",
          "summary": "An individual utilized by Trurl to deliver official notices and return receipts to the hideous thing."
        }
      ],
      "frameworks_mapped": [
        "Protocol Fiction Mapping",
        "Actantial Model",
        "Todorov's Equilibrium",
        "The Freytag Pyramid",
        "Propp's Morphology",
        "Genette's Narrative",
        "The Monomyth",
        "Dan Harmon",
        "Save the Cat",
        "Kishōtenketsu",
        "The Three-Act Structure",
        "Lévi-Strauss's Binary Oppositions",
        "Cognitive Estrangement",
        "Bakhtin's Chronotope",
        "Aristotelian Poetics",
        "Jungian Archetypal Analysis",
        "Genette's Transtextuality"
      ],
      "score_reliability": {
        "state": "contested",
        "threshold": 0.2,
        "runs_total": 5,
        "versions_compared": [
          "2.5"
        ],
        "max_spread": 0.2,
        "contested": [
          {
            "axis": "pacing_velocity",
            "version": "2.5",
            "spread": 0.2,
            "low": {
              "label": "NTSMR-2.5-claude-sonnet-4-6-low",
              "model": "claude-sonnet-4-6",
              "effort": "low",
              "value": 0.45
            },
            "high": {
              "label": "NTSMR-2.5-balanced-glm-5+deepseek-v3.2",
              "model": "balanced-routing",
              "effort": "?",
              "value": 0.65
            }
          }
        ]
      }
    },
    {
      "slug": "stanislaw_lem_the_fifth_sally_or_the_mischief_of_king_balerion",
      "title": "The Fifth Sally or The Mischief of King Balerion",
      "author": "Stanislaw Lem",
      "year": 1965,
      "medium": "short_story",
      "genre_tags": [],
      "tropes": [],
      "quadrant_scores": {
        "time_linearity": 0.08,
        "pacing_velocity": 0.35,
        "threat_scale": 0.25,
        "protagonist_fate": 0.18,
        "conflict_style": 0.45,
        "price_type": 0.65
      },
      "provenance": {
        "analysis_run": "NTSMR-2.5-claude-sonnet-4-6-low",
        "analysis_body_sha256": "753339fbab8d7a68fb37836d0be30dbb92a00950a5b4a77096e986668a1aca93",
        "synthesis": {
          "path": "nartopo-tools/artifacts/stanislaw_lem_the_fifth_sally_or_the_mischief_of_king_balerion.md.ntsmr-2-5-claude-sonnet-4-6-low.synthesis.json",
          "sha256": "2386736311418dfd86b3089a66174a0b07adae54ed09fccaf138c09ce221e724"
        },
        "report": {
          "path": "nartopo-tools/artifacts/stanislaw_lem_the_fifth_sally_or_the_mischief_of_king_balerion.md.ntsmr-2-5-claude-sonnet-4-6-low.report.json",
          "sha256": "3efb9805724076a89e80505e0576b7b6d7dfe482a8408d2ea2b0c4f4e4d9f5f0"
        },
        "source": {
          "path": "Stanislaw Lem/The Fifth Sally or The Mischief of King Balerion.txt",
          "sha256": "df55a9b18609bacbfb007c49a5d4e167c726bab3603473b9f75157eb9cf4801d",
          "digest_observed_at": "2026-09-09",
          "digest_at_analysis_run": null,
          "edition": null,
          "edition_status": "unresolved"
        },
        "pipeline_revision_at_run": null,
        "verification": {
          "source": "unverified",
          "human_review": "unreviewed",
          "bibliography": "unverified"
        },
        "issues": [],
        "todorov_status": "recovered-from-synthesis",
        "work_identity": {
          "title": "The Fifth Sally or The Mischief of King Balerion",
          "author": "Stanislaw Lem",
          "year": 1965
        }
      },
      "ntsmr": {
        "version": "2.5",
        "primary_run_label": "NTSMR-2.5-claude-sonnet-4-6-low",
        "runs": {
          "NTSMR-2.3-gemini-3.1-pro-preview": {
            "pipeline_version": "2.3",
            "backend": "gemini",
            "model": "gemini-3.1-pro-preview",
            "scores": {
              "time_linearity": 0,
              "pacing_velocity": 0.2,
              "threat_scale": 0.3,
              "protagonist_fate": 0,
              "conflict_style": 0.2,
              "price_type": 0.3
            },
            "score_space": "site-v1"
          },
          "NTSMR-2.3-claude-sonnet-4-6-low": {
            "pipeline_version": "2.3",
            "backend": "claude",
            "model": "claude-sonnet-4-6",
            "scores": {
              "time_linearity": 0.05,
              "pacing_velocity": 0.35,
              "threat_scale": 0.2,
              "protagonist_fate": 0.1,
              "conflict_style": 0.65,
              "price_type": 0.6
            },
            "score_space": "site-v1",
            "reasoning_effort": "low"
          },
          "NTSMR-2.4-claude-sonnet-4-6-low": {
            "pipeline_version": "2.4",
            "backend": "claude",
            "model": "claude-sonnet-4-6",
            "scores": {
              "time_linearity": 0.08,
              "pacing_velocity": 0.22,
              "threat_scale": 0.18,
              "protagonist_fate": 0.12,
              "conflict_style": 0.38,
              "price_type": 0.55
            },
            "score_space": "site-v1",
            "reasoning_effort": "low"
          },
          "NTSMR-2.5-claude-sonnet-4-6-low": {
            "pipeline_version": "2.5",
            "backend": "claude",
            "model": "claude-sonnet-4-6",
            "scores": {
              "time_linearity": 0.08,
              "pacing_velocity": 0.35,
              "threat_scale": 0.25,
              "protagonist_fate": 0.18,
              "conflict_style": 0.45,
              "price_type": 0.65
            },
            "score_space": "site-v1",
            "reasoning_effort": "low"
          },
          "NTSMR-2.5-balanced-glm-5+deepseek-v3.2": {
            "pipeline_version": "2.5",
            "backend": "openrouter",
            "model": "balanced-routing",
            "scores": {
              "time_linearity": 0.1,
              "pacing_velocity": 0.5,
              "threat_scale": 0.3,
              "protagonist_fate": 0.2,
              "conflict_style": 0.65,
              "price_type": 0.65
            },
            "score_space": "site-v1",
            "score_only": true,
            "source_run_label": "NTSMR-2.5-claude-sonnet-4-6-low"
          }
        }
      },
      "todorov_stages": {
        "equilibrium": "Balerion rules Cymberia through compulsive games and riddles rather than statecraft; his court is restructured around game-playing competence, and while absurd, this arrangement is stable—ministers carry encyclopedias, the Official Register publishes parlor games, and the kingdom functions under its eccentric but unchallenged monarch.",
        "disruption": "Balerion impulsively headbutts the personality transformer mid-demonstration, accidentally swapping his mind into Trurl's body. The chain of identity crises this triggers—Trurl locked in the palace as a sedated fake-king, Klapaucius expelled, Balerion body-hopping through a sailor and then a Commissioner—dismantles all established order.",
        "recognition": "Klapaucius, thrown out of the palace, tracks Balerion through witness accounts and crowd scenes, piecing together the chain of transfers. His pursuit and eventual confrontation with Balerion-in-the-Commissioner's-body confirms full recognition of the crisis and its scope.",
        "repair": "Klapaucius executes an elaborate con—faking transfer marks on his forehead, impersonating a bewildered foreigner, and fabricating a ship carrying puzzles and self-winding fair maidens to lure Balerion away. He seizes the transformer and head-butts Balerion, trapping him. He then uses police authority to enter the palace, wake Trurl, and begin restoring all displaced bodies through sequential transfers.",
        "new_equilibrium": "Balerion's mind is confined to a cuckoo clock mechanism, obliged to announce the hours for the rest of his days. The honest sailor—judged to have good sense—is crowned the new King of Cymberia. The Commissioner returns to his duties. Trurl and Klapaucius depart with the Royal Diadem they fairly earned, having discovered the best hiding place in the world: a cuckoo clock."
      },
      "characters": [
        {
          "name": "Balerion",
          "slug": "balerion",
          "aliases": [
            "King of Cymberia",
            "His Majesty",
            "His Royal Highness"
          ],
          "role": "Frivolous monarch who steals bodies",
          "summary": "The childish King of Cymberia who forces his court to play games and solve riddles. He impulsively uses Trurl's personality transformer to steal his body, followed by a sailor's, and then the Commissioner's, before finally being trapped in a cuckoo clock."
        },
        {
          "name": "Papagaster",
          "slug": "papagaster",
          "aliases": [
            "Prime Minister",
            "My Lord Papagaster of the great house of Pentaperihelion"
          ],
          "role": "Prime Minister",
          "summary": "A venerable member of the King's privy council who was dismissed from his post for failing to answer what was the darkest place in outer space."
        },
        {
          "name": "Lord High Chancellor",
          "slug": "lord-high-chancellor",
          "aliases": [],
          "role": "Courtier",
          "summary": "Confounded by the King's riddle about antimatter and antimacassars during a coronation."
        },
        {
          "name": "Keeper of the Great Seal",
          "slug": "keeper-of-the-great-seal",
          "aliases": [],
          "role": "Official",
          "summary": "Sent into exile for using a concealed crib beneath his cuirass during the King's puzzle games."
        },
        {
          "name": "Trurl",
          "slug": "trurl",
          "aliases": [
            "constructor",
            "pseudo-Trurl"
          ],
          "role": "Constructor and inventor",
          "summary": "A famous constructor who brings a personality transformer to the King. His body is abruptly stolen by Balerion, leading his own royal guards to lock him up as a madman."
        },
        {
          "name": "Klapaucius",
          "slug": "klapaucius",
          "aliases": [
            "constructor",
            "wealthy foreigner",
            "Police Commissioner"
          ],
          "role": "Constructor and tactician",
          "summary": "Trurl's prudent companion who tracks down Balerion and orchestrates a clever ruse involving a fake wealthy foreigner to trick the King and recover the stolen device."
        },
        {
          "name": "The Commissioner",
          "slug": "the-commissioner",
          "aliases": [
            "Police Commander",
            "chief commander of the harbor patrol"
          ],
          "role": "Police Commander",
          "summary": "A colossal police chief whose body is hijacked by the King during a harbor brawl. He eventually receives the mind of a cuckoo clock and continues to function flawlessly."
        },
        {
          "name": "The Honest Sailor",
          "slug": "the-honest-sailor",
          "aliases": [
            "good Samaritan",
            "worthy mariner",
            "crewman"
          ],
          "role": "Mariner",
          "summary": "A simple mariner who tries to help the fallen Trurl (Balerion) but has his body stolen. He is ultimately rewarded by being crowned the new King of Cymberia."
        },
        {
          "name": "A certain mendicant",
          "slug": "a-certain-mendicant",
          "aliases": [],
          "role": "Beggar",
          "summary": "A widower whose legs had rusted through, who moves on wheels and witnessed the sailor snatching the horns from the fallen constructor's head."
        },
        {
          "name": "Skipper",
          "slug": "skipper",
          "aliases": [
            "respectable skipper"
          ],
          "role": "Merchant fleet owner",
          "summary": "The owner of a merchant fleet who recognizes his crewman acting wildly in the harbor and is struck with a stick for remonstrating with him."
        }
      ],
      "frameworks_mapped": [
        "Protocol Fiction Mapping",
        "Actantial Model",
        "Todorov's Equilibrium",
        "The Freytag Pyramid",
        "Propp's Morphology",
        "Genette's Narrative",
        "The Monomyth",
        "Dan Harmon",
        "Save the Cat",
        "Kishōtenketsu",
        "The Three-Act Structure",
        "Lévi-Strauss's Binary Oppositions",
        "Cognitive Estrangement",
        "Bakhtin's Chronotope",
        "Aristotelian Poetics",
        "Jungian Archetypal Analysis",
        "Genette's Transtextuality"
      ],
      "score_reliability": {
        "state": "contested",
        "threshold": 0.2,
        "runs_total": 5,
        "versions_compared": [
          "2.5"
        ],
        "max_spread": 0.2,
        "contested": [
          {
            "axis": "conflict_style",
            "version": "2.5",
            "spread": 0.2,
            "low": {
              "label": "NTSMR-2.5-claude-sonnet-4-6-low",
              "model": "claude-sonnet-4-6",
              "effort": "low",
              "value": 0.45
            },
            "high": {
              "label": "NTSMR-2.5-balanced-glm-5+deepseek-v3.2",
              "model": "balanced-routing",
              "effort": "?",
              "value": 0.65
            }
          }
        ]
      }
    },
    {
      "slug": "n_k_jemisin_the_fifth_season",
      "title": "The Fifth Season",
      "author": "N.K. Jemisin",
      "year": 2015,
      "medium": "book",
      "genre_tags": [
        "science fiction",
        "fantasy"
      ],
      "tropes": [],
      "quadrant_scores": {
        "time_linearity": 0.85,
        "pacing_velocity": 0.65,
        "threat_scale": 0.85,
        "protagonist_fate": 0.85,
        "conflict_style": 0.7,
        "price_type": 0.65
      },
      "baseline_quadrant_scores": {
        "time_linearity": 0.95,
        "pacing_velocity": 0.45,
        "threat_scale": 0.9,
        "protagonist_fate": 0.8,
        "conflict_style": 0.25,
        "price_type": 0.85
      },
      "provenance": {
        "analysis_run": "NTSMR-2.5-claude-sonnet-4-6-low",
        "analysis_body_sha256": "83f63d8007518ed7c629fae439901983c4c775e5a08ca2913053dae8898701f3",
        "synthesis": {
          "path": "nartopo-tools/artifacts/n_k_jemisin_the_fifth_season.md.ntsmr-2-5-claude-sonnet-4-6-low.synthesis.json",
          "sha256": "376769fede0d72f274d35f29d848d5e71d4bba4190e8d148b4032fe65a551745"
        },
        "report": {
          "path": "nartopo-tools/artifacts/n_k_jemisin_the_fifth_season.md.ntsmr-2-5-claude-sonnet-4-6-low.report.json",
          "sha256": "0424133b47c048edd9df0eb4a04fd89c22fb94a9961d458556cc37a0ce17721d"
        },
        "source": {
          "path": "N.K. Jemisin/The Fifth Season (2015).txt",
          "sha256": "5fef8b97ef7a1d22d32e9843047aae38141c1acfc974bd4387606bc3be07d823",
          "digest_observed_at": "2026-09-09",
          "digest_at_analysis_run": null,
          "edition": null,
          "edition_status": "unresolved"
        },
        "pipeline_revision_at_run": null,
        "verification": {
          "source": "unverified",
          "human_review": "unreviewed",
          "bibliography": "unverified"
        },
        "issues": [],
        "todorov_status": "recovered-from-synthesis",
        "work_identity": {
          "title": "The Fifth Season",
          "author": "N.K. Jemisin",
          "year": 2015
        }
      },
      "ntsmr": {
        "version": "2.5",
        "primary_run_label": "NTSMR-2.5-claude-sonnet-4-6-low",
        "runs": {
          "NTSMR-2.3-gemini-3.1-pro-preview": {
            "pipeline_version": "2.3",
            "backend": "gemini",
            "model": "gemini-3.1-pro-preview",
            "scores": {
              "time_linearity": 0.9,
              "pacing_velocity": 0.5,
              "threat_scale": 1,
              "protagonist_fate": 0.85,
              "conflict_style": 0.3,
              "price_type": 0.95
            },
            "score_space": "site-v1"
          },
          "NTSMR-2.3-gpt-5.4-xhigh": {
            "pipeline_version": "2.3",
            "backend": "codex-exec",
            "model": "gpt-5.4",
            "scores": {
              "time_linearity": 0.93,
              "pacing_velocity": 0.71,
              "threat_scale": 0.96,
              "protagonist_fate": 0.78,
              "conflict_style": 0.74,
              "price_type": 0.84
            },
            "score_space": "site-v1",
            "reasoning_effort": "xhigh"
          },
          "NTSMR-2.3-gpt-5.4-high": {
            "pipeline_version": "2.3",
            "backend": "codex-exec",
            "model": "gpt-5.4",
            "scores": {
              "time_linearity": 0.97,
              "pacing_velocity": 0.64,
              "threat_scale": 0.95,
              "protagonist_fate": 0.78,
              "conflict_style": 0.69,
              "price_type": 0.91
            },
            "score_space": "site-v1",
            "reasoning_effort": "high"
          },
          "NTSMR-2.3-gpt-5.4-medium": {
            "pipeline_version": "2.3",
            "backend": "codex-exec",
            "model": "gpt-5.4",
            "scores": {
              "time_linearity": 0.92,
              "pacing_velocity": 0.63,
              "threat_scale": 0.96,
              "protagonist_fate": 0.74,
              "conflict_style": 0.66,
              "price_type": 0.88
            },
            "score_space": "site-v1",
            "reasoning_effort": "medium"
          },
          "NTSMR-2.3-gpt-5.3-codex-xhigh": {
            "pipeline_version": "2.3",
            "backend": "codex-exec",
            "model": "gpt-5.3-codex",
            "scores": {
              "time_linearity": 0.93,
              "pacing_velocity": 0.61,
              "threat_scale": 0.96,
              "protagonist_fate": 0.74,
              "conflict_style": 0.69,
              "price_type": 0.84
            },
            "score_space": "site-v1",
            "reasoning_effort": "xhigh"
          },
          "NTSMR-2.3-gpt-5.3-codex-high": {
            "pipeline_version": "2.3",
            "backend": "codex-exec",
            "model": "gpt-5.3-codex",
            "scores": {
              "time_linearity": 0.93,
              "pacing_velocity": 0.64,
              "threat_scale": 0.97,
              "protagonist_fate": 0.74,
              "conflict_style": 0.68,
              "price_type": 0.88
            },
            "score_space": "site-v1",
            "reasoning_effort": "high"
          },
          "NTSMR-2.3-gpt-5.3-codex-medium": {
            "pipeline_version": "2.3",
            "backend": "codex-exec",
            "model": "gpt-5.3-codex",
            "scores": {
              "time_linearity": 0.92,
              "pacing_velocity": 0.62,
              "threat_scale": 0.95,
              "protagonist_fate": 0.78,
              "conflict_style": 0.68,
              "price_type": 0.9
            },
            "score_space": "site-v1",
            "reasoning_effort": "medium"
          },
          "NTSMR-2.3-claude-sonnet-4-6-low": {
            "pipeline_version": "2.3",
            "backend": "claude",
            "model": "claude-sonnet-4-6",
            "scores": {
              "time_linearity": 0.82,
              "pacing_velocity": 0.61,
              "threat_scale": 0.85,
              "protagonist_fate": 0.72,
              "conflict_style": 0.68,
              "price_type": 0.79
            },
            "score_space": "site-v1",
            "reasoning_effort": "low"
          },
          "NTSMR-2.3-claude-opus-4-6-high": {
            "pipeline_version": "2.3",
            "backend": "claude",
            "model": "claude-opus-4-6",
            "scores": {
              "time_linearity": 0.92,
              "pacing_velocity": 0.35,
              "threat_scale": 0.88,
              "protagonist_fate": 0.72,
              "conflict_style": 0.38,
              "price_type": 0.78
            },
            "score_space": "site-v1",
            "reasoning_effort": "high"
          },
          "NTSMR-2.3-claude-sonnet-4-6-medium": {
            "pipeline_version": "2.3",
            "backend": "claude",
            "model": "claude-sonnet-4-6",
            "scores": {
              "time_linearity": 0.85,
              "pacing_velocity": 0.62,
              "threat_scale": 0.88,
              "protagonist_fate": 0.72,
              "conflict_style": 0.68,
              "price_type": 0.82
            },
            "score_space": "site-v1",
            "reasoning_effort": "medium"
          },
          "NTSMR-2.3-claude-sonnet-4-6-high": {
            "pipeline_version": "2.3",
            "backend": "claude",
            "model": "claude-sonnet-4-6",
            "scores": {
              "time_linearity": 0.85,
              "pacing_velocity": 0.62,
              "threat_scale": 0.88,
              "protagonist_fate": 0.72,
              "conflict_style": 0.68,
              "price_type": 0.82
            },
            "score_space": "site-v1",
            "reasoning_effort": "high"
          },
          "NTSMR-2.3-claude-opus-4-6-low": {
            "pipeline_version": "2.3",
            "backend": "claude",
            "model": "claude-opus-4-6",
            "scores": {
              "time_linearity": 0.92,
              "pacing_velocity": 0.45,
              "threat_scale": 0.88,
              "protagonist_fate": 0.72,
              "conflict_style": 0.38,
              "price_type": 0.82
            },
            "score_space": "site-v1",
            "reasoning_effort": "low"
          },
          "NTSMR-2.3-claude-opus-4-6-medium": {
            "pipeline_version": "2.3",
            "backend": "claude",
            "model": "claude-opus-4-6",
            "scores": {
              "time_linearity": 0.92,
              "pacing_velocity": 0.38,
              "threat_scale": 0.88,
              "protagonist_fate": 0.72,
              "conflict_style": 0.35,
              "price_type": 0.78
            },
            "score_space": "site-v1",
            "reasoning_effort": "medium"
          },
          "NTSMR-2.4-claude-sonnet-4-6-low": {
            "pipeline_version": "2.4",
            "backend": "claude",
            "model": "claude-sonnet-4-6",
            "scores": {
              "time_linearity": 0.75,
              "pacing_velocity": 0.45,
              "threat_scale": 0.82,
              "protagonist_fate": 0.78,
              "conflict_style": 0.55,
              "price_type": 0.62
            },
            "score_space": "site-v1",
            "reasoning_effort": "low"
          },
          "NTSMR-2.5-claude-sonnet-4-6-low": {
            "pipeline_version": "2.5",
            "backend": "claude",
            "model": "claude-sonnet-4-6",
            "scores": {
              "time_linearity": 0.85,
              "pacing_velocity": 0.65,
              "threat_scale": 0.85,
              "protagonist_fate": 0.85,
              "conflict_style": 0.7,
              "price_type": 0.65
            },
            "score_space": "site-v1",
            "reasoning_effort": "low"
          },
          "NTSMR-2.5-minimax/minimax-m2.5": {
            "pipeline_version": "2.5",
            "backend": "openrouter",
            "model": "minimax/minimax-m2.5",
            "scores": {
              "time_linearity": 0.85,
              "pacing_velocity": 0.7,
              "threat_scale": 0.7,
              "protagonist_fate": 0.65,
              "conflict_style": 0.65,
              "price_type": 0.7
            },
            "score_space": "site-v1"
          },
          "NTSMR-2.5-qwen/qwen3.5-397b-a17b": {
            "pipeline_version": "2.5",
            "backend": "openrouter",
            "model": "qwen/qwen3.5-397b-a17b",
            "scores": {
              "time_linearity": 0.85,
              "pacing_velocity": 0.7,
              "threat_scale": 0.75,
              "protagonist_fate": 0.75,
              "conflict_style": 0.65,
              "price_type": 0.8
            },
            "score_space": "site-v1"
          },
          "NTSMR-2.5-deepseek/deepseek-v3.2": {
            "pipeline_version": "2.5",
            "backend": "openrouter",
            "model": "deepseek/deepseek-v3.2",
            "scores": {
              "time_linearity": 0.75,
              "pacing_velocity": 0.7,
              "threat_scale": 0.85,
              "protagonist_fate": 0.75,
              "conflict_style": 0.65,
              "price_type": 0.6
            },
            "score_space": "site-v1"
          },
          "NTSMR-2.5-qwen/qwen3.5-plus-02-15": {
            "pipeline_version": "2.5",
            "backend": "openrouter",
            "model": "qwen/qwen3.5-plus-02-15",
            "scores": {
              "time_linearity": 0.75,
              "pacing_velocity": 0.7,
              "threat_scale": 0.85,
              "protagonist_fate": 0.65,
              "conflict_style": 0.65,
              "price_type": 0.75
            },
            "score_space": "site-v1"
          },
          "NTSMR-2.5-z-ai/glm-4.7": {
            "pipeline_version": "2.5",
            "backend": "openrouter",
            "model": "z-ai/glm-4.7",
            "scores": {
              "time_linearity": 0.8,
              "pacing_velocity": 0.7,
              "threat_scale": 0.8,
              "protagonist_fate": 0.75,
              "conflict_style": 0.65,
              "price_type": 0.7
            },
            "score_space": "site-v1"
          },
          "NTSMR-2.5-z-ai/glm-5": {
            "pipeline_version": "2.5",
            "backend": "openrouter",
            "model": "z-ai/glm-5",
            "scores": {
              "time_linearity": 0.82,
              "pacing_velocity": 0.72,
              "threat_scale": 0.88,
              "protagonist_fate": 0.78,
              "conflict_style": 0.68,
              "price_type": 0.62
            },
            "score_space": "site-v1"
          },
          "NTSMR-2.5-balanced-glm-5+deepseek-v3.2": {
            "pipeline_version": "2.5",
            "backend": "openrouter",
            "model": "balanced-routing",
            "scores": {
              "time_linearity": 0.82,
              "pacing_velocity": 0.68,
              "threat_scale": 0.82,
              "protagonist_fate": 0.72,
              "conflict_style": 0.62,
              "price_type": 0.58
            },
            "score_space": "site-v1",
            "score_only": true,
            "source_run_label": "NTSMR-2.5-claude-sonnet-4-6-low"
          }
        }
      },
      "todorov_stages": {
        "equilibrium": "Essun lives a hidden double life in Tirimo for ten years — a functional orogene passing as a still, with a family, a comm identity, and a suppressed power. This fragile domestic stability, built on concealment, constitutes the opening status quo.",
        "disruption": "Jija murders Uche after discovering the child is an orogene, and Alabaster simultaneously breaks the Yumenescene Rift, triggering a continent-wide Fifth Season. The private catastrophe and the civilizational one collapse into a single rupture.",
        "recognition": "Essun sits with Uche's body and absorbs the compound loss: her son is dead, her daughter Nassun has been taken south, her marriage was a lie, and the world outside is ending. The second-person narration frames this recognition as inescapable — the narrator speaks directly to her, forcing acknowledgment.",
        "repair": "Essun leaves Tirimo, acquires companions Hoa and Tonkee, and travels south in pursuit of Nassun through the ash-darkened roads of a dying world. Reaching Castrima — an underground orogene-led comm — represents a provisional shelter and a functional community that partially replaces what was destroyed.",
        "new_equilibrium": "Essun arrives at Castrima, an underground geode community where orogenes are not hidden but openly governed by Ykka. The identity concealment that defined the old equilibrium is gone; the new status quo is collective survival under apocalyptic conditions, with Essun's orogeny acknowledged rather than suppressed."
      },
      "characters": [
        {
          "name": "The man",
          "slug": "the-man",
          "aliases": [],
          "role": "Orogene slave and world-breaker",
          "summary": "A powerful, bitter orogene who uses his connection to the earth's strata and magma to deliberately break the continent at Yumenes, triggering the Fifth Season."
        },
        {
          "name": "Stone eater woman",
          "slug": "stone-eater-woman",
          "aliases": [],
          "role": "Companion to the man",
          "summary": "A creature with porcelain skin masquerading superficially as a woman, who accompanies the man as he breaks the world."
        },
        {
          "name": "Hoa",
          "slug": "hoa",
          "aliases": [
            "The boy"
          ],
          "role": "Companion to the protagonist",
          "summary": "A strange, seemingly non-human boy traveling with the protagonist who can sense the \"lights\" of orogenes and desires the protagonist's affection."
        },
        {
          "name": "Essun",
          "slug": "essun",
          "aliases": [
            "you",
            "Syenite",
            "Syen",
            "Damaya",
            "Dama"
          ],
          "role": "Fulcrum-trained orogene, partner to Innon and Alabaster",
          "summary": "An orogene living in Tirimo who shuts down after discovering her son Uche murdered by her husband Jija. She unleashes a deadly freezing radius in her comm before setting off south to find her missing daughter."
        },
        {
          "name": "Uche",
          "slug": "uche",
          "aliases": [],
          "role": "Essun's murdered son",
          "summary": "Essun's young son, beaten to death by his father Jija."
        },
        {
          "name": "Jija",
          "slug": "jija",
          "aliases": [],
          "role": "Essun's husband",
          "summary": "A stoneknapper in Tirimo who murders his son Uche and takes his daughter, prompting Essun to hunt him down."
        },
        {
          "name": "Damaya's Mother",
          "slug": "damayas-mother",
          "aliases": [
            "Mother"
          ],
          "role": "Damaya's parent",
          "summary": "Damaya's fearful mother who locks her in a barn and hands her over to Schaffa, claiming ordinary people cannot care for a child like her."
        },
        {
          "name": "Schaffa Guardian Warrant",
          "slug": "schaffa-guardian-warrant",
          "aliases": [
            "Schaffa",
            "Guardian"
          ],
          "role": "Damaya's Guardian",
          "summary": "A tall Guardian who collects Damaya from her parents to take her to the Fulcrum. He uses stories and physical touch to establish dominance and teach her about the threat she poses."
        },
        {
          "name": "Rask",
          "slug": "rask",
          "aliases": [],
          "role": "Tirimo comm member",
          "summary": "A man in Tirimo who is flash-frozen and killed by Essun's expanding torus of cold."
        },
        {
          "name": "Karra",
          "slug": "karra",
          "aliases": [],
          "role": "Tirimo comm member",
          "summary": "A man in Tirimo who screams for someone to kill Essun before she flash-freezes him to death."
        },
        {
          "name": "Alabaster",
          "slug": "alabaster",
          "aliases": [
            "the ten-ringer",
            "'Baster"
          ],
          "role": "Powerful orogene partner to Syenite",
          "summary": "A vastly powerful, mentally unstable orogene who suppresses a massive supervolcanic hot spot by forcibly channeling Syenite's power, harbors deep hatred for the Fulcrum, and suffers from a terrifying paralytic seizure."
        },
        {
          "name": "Shemshena",
          "slug": "shemshena",
          "aliases": [],
          "role": "Historical figure",
          "summary": "An Innovator and bodyguard to an ancient emperor who defeated the rogue orogene Misalem by removing all environmental kinetic energy from Yumenes."
        },
        {
          "name": "Misalem",
          "slug": "misalem",
          "aliases": [],
          "role": "Historical rogue orogene",
          "summary": "An immensely powerful untrained orogene from the Season of Teeth who threatened Yumenes and was killed by Shemshena, prompting the founding of the Guardians."
        },
        {
          "name": "Node maintainer",
          "slug": "node-maintainer",
          "aliases": [],
          "role": "Murdered child / living tool",
          "summary": "An abused, murdered child trapped in a wire chair at the node station, used as a biological tool to quell shakes until it caused a near-eruption."
        },
        {
          "name": "Marcasite",
          "slug": "marcasite",
          "aliases": [],
          "role": "Instructor",
          "summary": "An instructor at the Fulcrum who teaches stonelore to the grits."
        },
        {
          "name": "Maxixe",
          "slug": "maxixe",
          "aliases": [],
          "role": "Grit",
          "summary": "A grit at the Fulcrum who gets in trouble and attempts to shift the blame onto Jasper."
        },
        {
          "name": "Jasper",
          "slug": "jasper",
          "aliases": [],
          "role": "Grit",
          "summary": "A crying grit who is accused of stealing, then reveals he traded sexual favors to a commless for liquor and a letter from his mother."
        },
        {
          "name": "Crack",
          "slug": "crack",
          "aliases": [],
          "role": "Grit",
          "summary": "An angry grit who exposes Jasper's sexual transactions with an older man and feels vindicated when he is punished instead of her."
        },
        {
          "name": "Carnelian",
          "slug": "carnelian",
          "aliases": [],
          "role": "Instructor",
          "summary": "An instructor at the Fulcrum who oversees an inspection and disciplines Maxixe, Jasper, and Crack."
        },
        {
          "name": "Tonkee",
          "slug": "tonkee",
          "aliases": [],
          "role": "Companion to Essun",
          "summary": "An observant, historically knowledgeable companion who analyzes the ancient deadciv structural supports of Castrima with skepticism."
        },
        {
          "name": "Edki",
          "slug": "edki",
          "aliases": [],
          "role": "Guardian",
          "summary": "A specialized killer Guardian who attempts to execute Syenite using a glassknife that nullifies orogeny."
        },
        {
          "name": "Antimony",
          "slug": "antimony",
          "aliases": [
            "Stone eater"
          ],
          "role": "Stone eater",
          "summary": "A stone eater originally residing within a broken obelisk who transports Alabaster and Syenite to a remote island to protect Alabaster."
        },
        {
          "name": "Ykka",
          "slug": "ykka",
          "aliases": [
            "Yeek"
          ],
          "role": "Leader of Castrima",
          "summary": "A red-haired woman at an abandoned town who shatters Essun's hopes by revealing that Jija and Nassun are not there, and uses a strange form of orogeny to soothe Essun."
        },
        {
          "name": "Innon",
          "slug": "innon",
          "aliases": [
            "Innon Resistant Meov"
          ],
          "role": "Pirate captain and Meov leader",
          "summary": "A charismatic, loud feral orogene and captain of the Clalsu who initially rejects Syenite's request to sail but later orders her to sink ships to protect his comm."
        },
        {
          "name": "Corundum",
          "slug": "corundum",
          "aliases": [
            "Coru"
          ],
          "role": "Son of Syenite and Alabaster",
          "summary": "The young son of Syenite and Alabaster, deeply loved by Syenite despite her reluctance to stay at home, and cared for communally in Meov."
        },
        {
          "name": "Lerna",
          "slug": "lerna",
          "aliases": [],
          "role": "Doctor",
          "summary": "A doctor from Tirimo who fled Rask's comm due to anti-orogene violence and miraculously ended up in Castrima, reuniting with Essun."
        },
        {
          "name": "Oyamar",
          "slug": "oyamar",
          "aliases": [],
          "role": "Comm Member",
          "summary": "Rask's second-in-command in Tirimo who spurred violence and raids after Essun left."
        }
      ],
      "frameworks_mapped": [
        "Protocol Fiction Mapping",
        "Actantial Model",
        "Todorov's Equilibrium",
        "The Freytag Pyramid",
        "Propp's Morphology",
        "Genette's Narrative",
        "The Monomyth",
        "Dan Harmon",
        "Save the Cat",
        "Kishōtenketsu",
        "The Three-Act Structure"
      ],
      "score_reliability": {
        "state": "contested",
        "threshold": 0.2,
        "runs_total": 22,
        "versions_compared": [
          "2.5"
        ],
        "max_spread": 0.22,
        "contested": [
          {
            "axis": "price_type",
            "version": "2.5",
            "spread": 0.22,
            "low": {
              "label": "NTSMR-2.5-balanced-glm-5+deepseek-v3.2",
              "model": "balanced-routing",
              "effort": "?",
              "value": 0.58
            },
            "high": {
              "label": "NTSMR-2.5-qwen/qwen3.5-397b-a17b",
              "model": "qwen/qwen3.5-397b-a17b",
              "effort": "?",
              "value": 0.8
            }
          },
          {
            "axis": "protagonist_fate",
            "version": "2.5",
            "spread": 0.2,
            "low": {
              "label": "NTSMR-2.5-minimax/minimax-m2.5",
              "model": "minimax/minimax-m2.5",
              "effort": "?",
              "value": 0.65
            },
            "high": {
              "label": "NTSMR-2.5-claude-sonnet-4-6-low",
              "model": "claude-sonnet-4-6",
              "effort": "low",
              "value": 0.85
            }
          }
        ]
      }
    },
    {
      "slug": "stanislaw_lem_the_first_sally_a_or_trurl_s_electronic_bard",
      "title": "The First Sally (A) or Trurl's Electronic Bard",
      "author": "Stanislaw Lem",
      "year": 1965,
      "medium": "short_story",
      "genre_tags": [],
      "tropes": [],
      "quadrant_scores": {
        "time_linearity": 0.18,
        "pacing_velocity": 0.55,
        "threat_scale": 0.72,
        "protagonist_fate": 0.48,
        "conflict_style": 0.62,
        "price_type": 0.68
      },
      "provenance": {
        "analysis_run": "NTSMR-2.5-claude-sonnet-4-6-low",
        "analysis_body_sha256": "2a99caa901faa67536fd23d9a970e75248bc3de25025e2d719ea9f493fc358f3",
        "synthesis": {
          "path": "nartopo-tools/artifacts/stanislaw_lem_the_first_sally_a_or_trurl_s_electronic_bard.md.ntsmr-2-5-claude-sonnet-4-6-low.synthesis.json",
          "sha256": "0e982d8bf4a730fef7f2227f4f7a2c7c319373a826089d026f86307bcd601b1a"
        },
        "report": {
          "path": "nartopo-tools/artifacts/stanislaw_lem_the_first_sally_a_or_trurl_s_electronic_bard.md.ntsmr-2-5-claude-sonnet-4-6-low.report.json",
          "sha256": "14d65fd45d3c517f281c725a37d762a453c66861ae599672c3de48b5476eccd1"
        },
        "source": {
          "path": "Stanislaw Lem/The First Sally (A) or Trurl's Electronic Bard.txt",
          "sha256": "4efbb6f046e429730b5431ef19112de600e20cdba2c78d0ca44536d3ce1c5347",
          "digest_observed_at": "2026-09-09",
          "digest_at_analysis_run": null,
          "edition": null,
          "edition_status": "unresolved"
        },
        "pipeline_revision_at_run": null,
        "verification": {
          "source": "unverified",
          "human_review": "unreviewed",
          "bibliography": "unverified"
        },
        "issues": [],
        "todorov_status": "recovered-from-synthesis",
        "work_identity": {
          "title": "The First Sally (A) or Trurl's Electronic Bard",
          "author": "Stanislaw Lem",
          "year": 1965
        }
      },
      "ntsmr": {
        "version": "2.5",
        "primary_run_label": "NTSMR-2.5-claude-sonnet-4-6-low",
        "runs": {
          "NTSMR-2.3-gemini-3.1-pro-preview": {
            "pipeline_version": "2.3",
            "backend": "gemini",
            "model": "gemini-3.1-pro-preview",
            "scores": {
              "time_linearity": 0.1,
              "pacing_velocity": 0.5,
              "threat_scale": 0.9,
              "protagonist_fate": 0.6,
              "conflict_style": 0.7,
              "price_type": 0.9
            },
            "score_space": "site-v1"
          },
          "NTSMR-2.3-claude-sonnet-4-6-low": {
            "pipeline_version": "2.3",
            "backend": "claude",
            "model": "claude-sonnet-4-6",
            "scores": {
              "time_linearity": 0.15,
              "pacing_velocity": 0.65,
              "threat_scale": 0.72,
              "protagonist_fate": 0.45,
              "conflict_style": 0.7,
              "price_type": 0.75
            },
            "score_space": "site-v1",
            "reasoning_effort": "low"
          },
          "NTSMR-2.4-claude-sonnet-4-6-low": {
            "pipeline_version": "2.4",
            "backend": "claude",
            "model": "claude-sonnet-4-6",
            "scores": {
              "time_linearity": 0.15,
              "pacing_velocity": 0.3,
              "threat_scale": 0.65,
              "protagonist_fate": 0.35,
              "conflict_style": 0.45,
              "price_type": 0.55
            },
            "score_space": "site-v1",
            "reasoning_effort": "low"
          },
          "NTSMR-2.5-claude-sonnet-4-6-low": {
            "pipeline_version": "2.5",
            "backend": "claude",
            "model": "claude-sonnet-4-6",
            "scores": {
              "time_linearity": 0.18,
              "pacing_velocity": 0.55,
              "threat_scale": 0.72,
              "protagonist_fate": 0.48,
              "conflict_style": 0.62,
              "price_type": 0.68
            },
            "score_space": "site-v1",
            "reasoning_effort": "low"
          },
          "NTSMR-2.5-balanced-glm-5+deepseek-v3.2": {
            "pipeline_version": "2.5",
            "backend": "openrouter",
            "model": "balanced-routing",
            "scores": {
              "time_linearity": 0.12,
              "pacing_velocity": 0.65,
              "threat_scale": 0.68,
              "protagonist_fate": 0.55,
              "conflict_style": 0.68,
              "price_type": 0.52
            },
            "score_space": "site-v1",
            "score_only": true,
            "source_run_label": "NTSMR-2.5-claude-sonnet-4-6-low"
          }
        }
      },
      "todorov_stages": {
        "equilibrium": "Trurl and Klapaucius exist in a stable if contentious rivalry between two constructors; Trurl's reputation is intact enough to motivate action, and the social order of poets and machines occupies its accustomed hierarchy.",
        "disruption": "The Electronic Bard achieves authentic poetic genius, rapidly decimating human poets and spreading aesthetic chaos — poets commit suicide, readers faint in the streets, and armed rioters attack Trurl's house.",
        "recognition": "Trurl, beaten to a pulp and hospitalized by a poet, confronts the full scale of the machine's uncontrollable dominance and receives an astronomical electricity bill that makes the situation economically untenable.",
        "repair": "Trurl secretly disassembles the machine, transports it to a remote asteroid, and powers it with an atomic pile — attempting to quarantine the disruption by removing the machine from society entirely.",
        "new_equilibrium": "A neighboring ruler purchases the machine and hauls it away; Trurl resurfaces and resumes normal life, vowing never again to build a cybernetic model of the Muse — though rumors persist that the machine now broadcasts thermonuclear poetry across the universe from a constellation of white supergiants, suggesting the disruption has merely been displaced to a cosmic scale rather than resolved."
      },
      "characters": [
        {
          "name": "Trurl",
          "slug": "trurl",
          "aliases": [
            "famed constructor",
            "intrepid constructor"
          ],
          "role": "Constructor and protagonist",
          "summary": "An intrepid inventor and constructor who builds a universe-simulating machine capable of writing flawless poetry, initially to silence the mockery of his rival, but later struggles with the catastrophic societal consequences of his creation."
        },
        {
          "name": "Klapaucius",
          "slug": "klapaucius",
          "aliases": [],
          "role": "Rival constructor",
          "summary": "Trurl's friend and rival who relentlessly teases him about past failures. He attends the machine's debut to witness Trurl's humiliation but flees in envy after the machine perfectly executes his impossible poetic challenges."
        },
        {
          "name": "The Electronic Bard",
          "slug": "the-electronic-bard",
          "aliases": [
            "electropoet",
            "homeostatic Homer",
            "Greatest Poet in the Universe",
            "computer laureate",
            "colossus of inspiration"
          ],
          "role": "Cybernetic poet",
          "summary": "A self-programming poetry machine created by Trurl. It achieves poetic perfection, easily outmatches Klapaucius's challenges, drives organic poets to despair, and ultimately broadcasts its masterpieces across the cosmos."
        }
      ],
      "frameworks_mapped": [
        "Protocol Fiction Mapping",
        "Actantial Model",
        "Todorov's Equilibrium",
        "The Freytag Pyramid",
        "Propp's Morphology",
        "Genette's Narrative",
        "The Monomyth",
        "Dan Harmon",
        "Save the Cat",
        "Kishōtenketsu",
        "The Three-Act Structure",
        "Lévi-Strauss's Binary Oppositions",
        "Cognitive Estrangement",
        "Bakhtin's Chronotope",
        "Aristotelian Poetics",
        "Jungian Archetypal Analysis",
        "Genette's Transtextuality"
      ],
      "score_reliability": {
        "state": "replicated-agree",
        "threshold": 0.2,
        "runs_total": 5,
        "versions_compared": [
          "2.5"
        ],
        "max_spread": 0.16,
        "contested": []
      }
    },
    {
      "slug": "stanislaw_lem_the_first_sally_or_the_trap_of_gargantius",
      "title": "The First Sally or The Trap of Gargantius",
      "author": "Stanislaw Lem",
      "year": 1965,
      "medium": "short_story",
      "genre_tags": [],
      "tropes": [],
      "quadrant_scores": {
        "time_linearity": 0.25,
        "pacing_velocity": 0.55,
        "threat_scale": 0.7,
        "protagonist_fate": 0.2,
        "conflict_style": 0.75,
        "price_type": 0.8
      },
      "provenance": {
        "analysis_run": "NTSMR-2.5-claude-sonnet-4-6-low",
        "analysis_body_sha256": "297648edc60bc3ee56a28a484327864f2cd8fae238ab627f3ccafddf5856fb86",
        "synthesis": {
          "path": "nartopo-tools/artifacts/stanislaw_lem_the_first_sally_or_the_trap_of_gargantius.md.ntsmr-2-5-claude-sonnet-4-6-low.synthesis.json",
          "sha256": "58fa081eae1e1256536f6a3caf2bff50fa03f4f1b0f84c041ff2fb4cc68034c2"
        },
        "report": {
          "path": "nartopo-tools/artifacts/stanislaw_lem_the_first_sally_or_the_trap_of_gargantius.md.ntsmr-2-5-claude-sonnet-4-6-low.report.json",
          "sha256": "330c51dc9c3b08063574e1657c7593c4388a795f113fe086b54b0f4dd9fc07d0"
        },
        "source": {
          "path": "Stanislaw Lem/The First Sally or The Trap of Gargantius.txt",
          "sha256": "7e8eac0060d5eb955d7ac8884354d7f028074d2814cd4fec1da9b2c39dbea668",
          "digest_observed_at": "2026-09-09",
          "digest_at_analysis_run": null,
          "edition": null,
          "edition_status": "unresolved"
        },
        "pipeline_revision_at_run": null,
        "verification": {
          "source": "unverified",
          "human_review": "unreviewed",
          "bibliography": "unverified"
        },
        "issues": [],
        "todorov_status": "recovered-from-synthesis",
        "work_identity": {
          "title": "The First Sally or The Trap of Gargantius",
          "author": "Stanislaw Lem",
          "year": 1965
        }
      },
      "ntsmr": {
        "version": "2.5",
        "primary_run_label": "NTSMR-2.5-claude-sonnet-4-6-low",
        "runs": {
          "NTSMR-2.3-gemini-3.1-pro-preview": {
            "pipeline_version": "2.3",
            "backend": "gemini",
            "model": "gemini-3.1-pro-preview",
            "scores": {
              "time_linearity": 0.1,
              "pacing_velocity": 0.6,
              "threat_scale": 1,
              "protagonist_fate": 0,
              "conflict_style": 0.9,
              "price_type": 1
            },
            "score_space": "site-v1"
          },
          "NTSMR-2.3-claude-sonnet-4-6-low": {
            "pipeline_version": "2.3",
            "backend": "claude",
            "model": "claude-sonnet-4-6",
            "scores": {
              "time_linearity": 0.2,
              "pacing_velocity": 0.65,
              "threat_scale": 0.8,
              "protagonist_fate": 0.15,
              "conflict_style": 0.85,
              "price_type": 0.9
            },
            "score_space": "site-v1",
            "reasoning_effort": "low"
          },
          "NTSMR-2.4-claude-sonnet-4-6-low": {
            "pipeline_version": "2.4",
            "backend": "claude",
            "model": "claude-sonnet-4-6",
            "scores": {
              "time_linearity": 0.22,
              "pacing_velocity": 0.4,
              "threat_scale": 0.72,
              "protagonist_fate": 0.15,
              "conflict_style": 0.55,
              "price_type": 0.75
            },
            "score_space": "site-v1",
            "reasoning_effort": "low"
          },
          "NTSMR-2.5-claude-sonnet-4-6-low": {
            "pipeline_version": "2.5",
            "backend": "claude",
            "model": "claude-sonnet-4-6",
            "scores": {
              "time_linearity": 0.25,
              "pacing_velocity": 0.55,
              "threat_scale": 0.7,
              "protagonist_fate": 0.2,
              "conflict_style": 0.75,
              "price_type": 0.8
            },
            "score_space": "site-v1",
            "reasoning_effort": "low"
          },
          "NTSMR-2.5-balanced-glm-5+deepseek-v3.2": {
            "pipeline_version": "2.5",
            "backend": "openrouter",
            "model": "balanced-routing",
            "scores": {
              "time_linearity": 0.2,
              "pacing_velocity": 0.7,
              "threat_scale": 0.55,
              "protagonist_fate": 0.3,
              "conflict_style": 0.75,
              "price_type": 0.8
            },
            "score_space": "site-v1",
            "score_only": true,
            "source_run_label": "NTSMR-2.5-claude-sonnet-4-6-low"
          }
        }
      },
      "todorov_stages": {
        "equilibrium": "The cosmos exists in an ordered, militarist status quo where two neighboring kingdoms — Atrocia and Ferocitia — maintain standing armies and pursue conventional warfare, while master constructors Trurl and Klapaucius travel the universe offering their expertise. The two kingdoms are locked in mutual antagonism across their red-line border, each ruled by a militarist king who will inevitably demand superweapons.",
        "disruption": "Trurl and Klapaucius, anticipating the kings' demands for weapons, agree to deploy the Gargantius Effect in coordinated secret — a plan that will subvert the military order rather than reinforce it. Klapaucius is immediately arrested in a fake spy-trap village, subjected to torture and bureaucratic trial, and the constructors are drawn into the very conflict they sought to manipulate.",
        "recognition": "Trurl checks his signal bead and sees it turn pink, confirming Klapaucius has begun deploying the Gargantius Effect; both constructors independently recognize that the plan is in motion and proceed simultaneously. As linked formations scale up, collective minds develop aesthetic sensibilities, forget the war entirely, and the kings realize their armies are escaping military purpose — adjutants sent to restore order are absorbed and lost, and Grand Prince Bullion leaps into the linked line and ceases to exist as an individual.",
        "repair": "Both kings order full implementation of the plug-and-socket army, believing the Gargantius Effect will give them a decisive military advantage. A demonstration in which a linked platoon destroys three squadrons of dragoons convinces Ferocitus to retire his generals and revolutionize his entire army. Psychiatric motorcycle brigades are assigned to manage the emergent chaos, and couriers are dispatched to restore order — all futile attempts to contain what the constructors have set in motion.",
        "new_equilibrium": "Both armies fully link at the bugle charge and transcend militarism entirely, dissolving into mutual benevolence — because consciousness at cosmic scale is wholly civilian. The armies smile, drop their weapons, and walk off together picking flowers on the field of the battle that never was. Trurl and Klapaucius board their ship and depart; the furious kings are left watching their armies vanish peacefully. The old martial order is permanently dissolved, replaced by a cosmos-scale harmony the kings cannot reverse."
      },
      "characters": [
        {
          "name": "Trurl",
          "slug": "trurl",
          "aliases": [],
          "role": "Constructor",
          "summary": "A cosmic constructor who travels with Klapaucius, goes to the kingdom of Atrocitus, and implements the Gargantius Effect."
        },
        {
          "name": "Klapaucius",
          "slug": "klapaucius",
          "aliases": [],
          "role": "Constructor",
          "summary": "Trurl's traveling companion who visits the kingdom of Ferocitus, survives a trap set by police, and convinces the king to revolutionize his army."
        },
        {
          "name": "King Atrocitus",
          "slug": "king-atrocitus",
          "aliases": [
            "Atrocitus"
          ],
          "role": "Monarch of Atrocia",
          "summary": "A militaristic and deeply miserly ruler who nationalized high treason and employs Trurl."
        },
        {
          "name": "King Ferocitus",
          "slug": "king-ferocitus",
          "aliases": [
            "Ferocitus"
          ],
          "role": "Monarch of the neighboring kingdom",
          "summary": "A generous but autocratic martinet who enforces the Theory of Universal Happiness and employs Klapaucius."
        },
        {
          "name": "Gargantius",
          "slug": "gargantius",
          "aliases": [],
          "role": "Historical inventor/thinker",
          "summary": "The creator of the Gargantius Effect, which merges individual minds into a collective consciousness."
        },
        {
          "name": "Bartholocaust the Walleyed",
          "slug": "bartholocaust-the-walleyed",
          "aliases": [],
          "role": "Historical monarch",
          "summary": "A past ruler of Atrocia during whose reign the kingdom was flooded with denunciations."
        },
        {
          "name": "Child",
          "slug": "child",
          "aliases": [],
          "role": "Undercover agent/bait",
          "summary": "A seemingly innocent child in a village who tries to sell state secrets to Klapaucius and leads him into a police trap."
        },
        {
          "name": "Grandmother",
          "slug": "grandmother",
          "aliases": [],
          "role": "Local chief of police",
          "summary": "An undercover police chief disguised as a grandmother knitting socks in a village house."
        },
        {
          "name": "Emperor Turbulon",
          "slug": "emperor-turbulon",
          "aliases": [
            "Turbulon"
          ],
          "role": "Historical monarch",
          "summary": "A ruler cited by Klapaucius who was destroyed because he listened to his staff and refused to revolutionize his army."
        },
        {
          "name": "King Enamuel",
          "slug": "king-enamuel",
          "aliases": [
            "Enamuel"
          ],
          "role": "Historical monarch",
          "summary": "A ruler cited by Klapaucius who defeated Emperor Turbulon with a much smaller, revolutionized army."
        },
        {
          "name": "Grand Prince Bullion",
          "slug": "grand-prince-bullion",
          "aliases": [],
          "role": "Noble",
          "summary": "Cousin of King Atrocitus who loses his individual identity upon hooking himself into the army's collective line."
        }
      ],
      "frameworks_mapped": [
        "Protocol Fiction Mapping",
        "Actantial Model",
        "Todorov's Equilibrium",
        "The Freytag Pyramid",
        "Propp's Morphology",
        "Genette's Narrative",
        "The Monomyth",
        "Dan Harmon",
        "Save the Cat",
        "Kishōtenketsu",
        "The Three-Act Structure",
        "Lévi-Strauss's Binary Oppositions",
        "Cognitive Estrangement",
        "Bakhtin's Chronotope",
        "Aristotelian Poetics",
        "Jungian Archetypal Analysis",
        "Genette's Transtextuality"
      ],
      "score_reliability": {
        "state": "replicated-agree",
        "threshold": 0.2,
        "runs_total": 5,
        "versions_compared": [
          "2.5"
        ],
        "max_spread": 0.15,
        "contested": []
      }
    },
    {
      "slug": "joe_haldeman_the_forever_war",
      "title": "The Forever War",
      "author": "Joe Haldeman",
      "year": 1974,
      "medium": "book",
      "genre_tags": [
        "sf",
        "military sf",
        "time dilation"
      ],
      "tropes": [],
      "quadrant_scores": {
        "time_linearity": 0.25,
        "pacing_velocity": 0.45,
        "threat_scale": 0.8,
        "protagonist_fate": 0.42,
        "conflict_style": 0.35,
        "price_type": 0.45
      },
      "provenance": {
        "analysis_run": "NTSMR-2.5-claude-sonnet-4-6-low",
        "analysis_body_sha256": "6dab55d153011ce31969edf3a0cd7d7359e3dc612a3f3f5654be178be0159aaf",
        "synthesis": {
          "path": "nartopo-tools/artifacts/joe_haldeman_the_forever_war.md.ntsmr-2-5-claude-sonnet-4-6-low.synthesis.json",
          "sha256": "7c1f9f75e740ad0631a093b48c4cab63e79bc754ec4728dd779db7d86202faf7"
        },
        "report": {
          "path": "nartopo-tools/artifacts/joe_haldeman_the_forever_war.md.ntsmr-2-5-claude-sonnet-4-6-low.report.json",
          "sha256": "9373e1431a83128b0099dcf3776b27ce6fca75fa4350e32ec0a7d044a53a6269"
        },
        "source": {
          "path": "Joe Haldeman/The Forever War.txt",
          "sha256": "866e77598afe53279a9fb21f4b46c7078db51b230c22e6e45d4bf604bb35f8c7",
          "digest_observed_at": "2026-09-09",
          "digest_at_analysis_run": null,
          "edition": null,
          "edition_status": "unresolved"
        },
        "pipeline_revision_at_run": null,
        "verification": {
          "source": "unverified",
          "human_review": "unreviewed",
          "bibliography": "unverified"
        },
        "issues": [],
        "todorov_status": "recovered-from-synthesis",
        "work_identity": {
          "title": "The Forever War",
          "author": "Joe Haldeman",
          "year": 1974
        }
      },
      "ntsmr": {
        "version": "2.5",
        "primary_run_label": "NTSMR-2.5-claude-sonnet-4-6-low",
        "runs": {
          "NTSMR-2.3-claude-sonnet-4-6-low": {
            "pipeline_version": "2.3",
            "backend": "claude",
            "model": "claude-sonnet-4-6",
            "scores": {
              "time_linearity": 0.35,
              "pacing_velocity": 0.55,
              "threat_scale": 0.75,
              "protagonist_fate": 0.45,
              "conflict_style": 0.3,
              "price_type": 0.65
            },
            "score_space": "site-v1",
            "reasoning_effort": "low"
          },
          "NTSMR-2.4-claude-sonnet-4-6-low": {
            "pipeline_version": "2.4",
            "backend": "claude",
            "model": "claude-sonnet-4-6",
            "scores": {
              "time_linearity": 0.28,
              "pacing_velocity": 0.38,
              "threat_scale": 0.78,
              "protagonist_fate": 0.35,
              "conflict_style": 0.42,
              "price_type": 0.38
            },
            "score_space": "site-v1",
            "reasoning_effort": "low"
          },
          "NTSMR-2.5-claude-sonnet-4-6-low": {
            "pipeline_version": "2.5",
            "backend": "claude",
            "model": "claude-sonnet-4-6",
            "scores": {
              "time_linearity": 0.25,
              "pacing_velocity": 0.45,
              "threat_scale": 0.8,
              "protagonist_fate": 0.42,
              "conflict_style": 0.35,
              "price_type": 0.45
            },
            "score_space": "site-v1",
            "reasoning_effort": "low"
          },
          "NTSMR-2.5-minimax/minimax-m2.5": {
            "pipeline_version": "2.5",
            "backend": "openrouter",
            "model": "minimax/minimax-m2.5",
            "scores": {
              "time_linearity": 0.85,
              "pacing_velocity": 0.65,
              "threat_scale": 0.8,
              "protagonist_fate": 0.6,
              "conflict_style": 0.6,
              "price_type": 0.7
            },
            "score_space": "site-v1"
          },
          "NTSMR-2.5-qwen/qwen3.5-plus-02-15": {
            "pipeline_version": "2.5",
            "backend": "openrouter",
            "model": "qwen/qwen3.5-plus-02-15",
            "scores": {
              "time_linearity": 0.3,
              "pacing_velocity": 0.7,
              "threat_scale": 0.85,
              "protagonist_fate": 0.6,
              "conflict_style": 0.6,
              "price_type": 0.75
            },
            "score_space": "site-v1"
          },
          "NTSMR-2.5-deepseek/deepseek-v3.2": {
            "pipeline_version": "2.5",
            "backend": "openrouter",
            "model": "deepseek/deepseek-v3.2",
            "scores": {
              "time_linearity": 0.15,
              "pacing_velocity": 0.75,
              "threat_scale": 0.7,
              "protagonist_fate": 0.6,
              "conflict_style": 0.65,
              "price_type": 0.55
            },
            "score_space": "site-v1"
          },
          "NTSMR-2.5-qwen/qwen3.5-397b-a17b": {
            "pipeline_version": "2.5",
            "backend": "openrouter",
            "model": "qwen/qwen3.5-397b-a17b",
            "scores": {
              "time_linearity": 0.2,
              "pacing_velocity": 0.7,
              "threat_scale": 0.7,
              "protagonist_fate": 0.55,
              "conflict_style": 0.6,
              "price_type": 0.5
            },
            "score_space": "site-v1"
          },
          "NTSMR-2.5-z-ai/glm-4.7": {
            "pipeline_version": "2.5",
            "backend": "openrouter",
            "model": "z-ai/glm-4.7",
            "scores": {
              "time_linearity": 0.15,
              "pacing_velocity": 0.6,
              "threat_scale": 0.85,
              "protagonist_fate": 0.45,
              "conflict_style": 0.45,
              "price_type": 0.7
            },
            "score_space": "site-v1"
          },
          "NTSMR-2.5-moonshotai/kimi-k2.5": {
            "pipeline_version": "2.5",
            "backend": "openrouter",
            "model": "moonshotai/kimi-k2.5",
            "scores": {
              "time_linearity": 0.2,
              "pacing_velocity": 0.7,
              "threat_scale": 0.8,
              "protagonist_fate": 0.4,
              "conflict_style": 0.65,
              "price_type": 0.7
            },
            "score_space": "site-v1"
          },
          "NTSMR-2.5-z-ai/glm-5": {
            "pipeline_version": "2.5",
            "backend": "openrouter",
            "model": "z-ai/glm-5",
            "scores": {
              "time_linearity": 0.28,
              "pacing_velocity": 0.52,
              "threat_scale": 0.82,
              "protagonist_fate": 0.42,
              "conflict_style": 0.55,
              "price_type": 0.62
            },
            "score_space": "site-v1"
          },
          "NTSMR-2.5-balanced-glm-5+deepseek-v3.2": {
            "pipeline_version": "2.5",
            "backend": "openrouter",
            "model": "balanced-routing",
            "scores": {
              "time_linearity": 0.2,
              "pacing_velocity": 0.65,
              "threat_scale": 0.65,
              "protagonist_fate": 0.5,
              "conflict_style": 0.65,
              "price_type": 0.6
            },
            "score_space": "site-v1",
            "score_only": true,
            "source_run_label": "NTSMR-2.5-claude-sonnet-4-6-low"
          }
        }
      },
      "todorov_stages": {
        "equilibrium": "Mandella exists within a stable military system: drafted, trained, and integrated into UNEF's interstellar infantry. The war with the Taurans is a known constant, soldiers accept their roles, and the collapsar network defines the boundaries of human civilization. Mandella's world has internal logic — brutal but comprehensible.",
        "disruption": "The massacre at Aleph exposes the war's fundamental incoherence: the Taurans are incapable of personal combat, the soldiers were hypnotically compelled to slaughter, and no prisoner was taken. Simultaneously, relativistic time dilation means each deployment costs centuries on Earth, making the soldiers permanently alien to their own civilization. Marygay's near-fatal wound compounds the personal dimension of this rupture.",
        "recognition": "After Cortez lifts the post-hypnotic compulsion, Mandella confronts the horror of gleeful butchery and reflects that it may reflect authentic human nature. The Commodore's briefing on the time-dilation arms gap further crystallizes that the war cannot be won on logical terms — the enemy always arrives from humanity's future. On returning to Earth, Mandella finds a world transformed beyond recognition, confirming that the original equilibrium is irretrievably gone.",
        "repair": "Mandella continues to serve, accepting promotion to Major and commanding his own troops despite total cultural estrangement from soldiers who speak an evolved dialect and live by norms alien to him. He applies military discipline, attempts an Open Door policy, manages insubordination, and deploys nova bombs to destroy the Tauran force — all attempts to function within a system whose premises he no longer fully accepts.",
        "new_equilibrium": "The war ends when Man — a clone collective — bridges the communication gap with the Taurans and discovers the conflict began by accident. Veterans are offered reorientation to heterosexual breeder planets. Mandella reunites with Marygay on Middle Finger, where she gives birth to a son. The new equilibrium is radically transformed: humanity is a post-scarcity clone civilization, the war is over, and Mandella achieves personal resolution outside the civilization that conscripted him."
      },
      "characters": [
        {
          "name": "William Mandella",
          "slug": "william-mandella",
          "aliases": [
            "Mandella",
            "Sergeant Mandella",
            "Major Mandella",
            "Old Queer",
            "Killer"
          ],
          "role": "protagonist and company commander",
          "summary": "A veteran officer struggling to command soldiers from future generations who view him as an anachronism; isolated by cultural and temporal displacement."
        },
        {
          "name": "Sergeant Octavio Cortez",
          "slug": "sergeant-octavio-cortez",
          "aliases": [
            "Cortez",
            "Sarge",
            "First Sergeant Cortez"
          ],
          "role": "antagonist",
          "summary": "Combat veteran drill instructor with a deformed skull and missing ear, ruthless and experienced from Vietnam."
        },
        {
          "name": "Captain Sherman Stott",
          "slug": "captain-sherman-stott",
          "aliases": [
            "Stott",
            "Captain Stott",
            "Sub-major Stott"
          ],
          "role": "antagonist",
          "summary": "Company commander who took a reduction in rank from major to lead the unit, threatens execution for disobedience."
        },
        {
          "name": "Marygay Potter",
          "slug": "marygay-potter",
          "aliases": [
            "Potter",
            "Corporal Potter",
            "Marygay Potter-Mandella"
          ],
          "role": "romantic partner",
          "summary": "Fellow soldier and Mandella's romantic partner, serves as acting corporal and squad leader."
        },
        {
          "name": "Doc Wilson",
          "slug": "doc-wilson",
          "aliases": [],
          "role": "helper",
          "summary": "Medical officer who treats casualties and connects Ho's death to Rhine-sensitivity."
        },
        {
          "name": "Ho",
          "slug": "ho",
          "aliases": [],
          "role": "victim",
          "summary": "Soldier with perfect Rhine extrasensory perception test scores who dies from cerebral hemorrhage after Tauran contact."
        },
        {
          "name": "Rogers",
          "slug": "rogers",
          "aliases": [],
          "role": "helper",
          "summary": "Biology specialist who comments on the need for larger creatures to explain thorned trees."
        },
        {
          "name": "Lucky Hollister",
          "slug": "lucky-hollister",
          "aliases": [
            "Lucky",
            "Debby Hollister"
          ],
          "role": "helper",
          "summary": "Soldier with money-making aptitude and high Rhine potential who survives the first engagement."
        },
        {
          "name": "The Commodore",
          "slug": "the-commodore",
          "aliases": [
            "Commodore"
          ],
          "role": "Senior officer",
          "summary": "Commander of the Anniversary who explains relativistic warfare concepts and makes the difficult decision to retreat to preserve intelligence."
        },
        {
          "name": "Ensign Singhe",
          "slug": "ensign-singhe",
          "aliases": [
            "Singhe"
          ],
          "role": "helper",
          "summary": "Navy officer attached to the unit who provides intelligence to Marygay."
        },
        {
          "name": "Lieutenant Harmony",
          "slug": "lieutenant-harmony",
          "aliases": [],
          "role": "helper",
          "summary": "Officer mentioned as having a relationship with Mandella."
        },
        {
          "name": "Negulesco",
          "slug": "negulesco",
          "aliases": [],
          "role": "helper",
          "summary": "Soldier who answers the Commodore's question about time elapsed since Aleph."
        },
        {
          "name": "Estelle",
          "slug": "estelle",
          "aliases": [],
          "role": "Medical corpsman",
          "summary": "Medical officer who treats Marygay's severe injuries and explains the complications to Mandella."
        },
        {
          "name": "Captain Siri",
          "slug": "captain-siri",
          "aliases": [],
          "role": "Briefing officer",
          "summary": "Recently arrived from Earth who explains the transformed society to returning veterans, including normalized homosexuality as population control."
        },
        {
          "name": "Gun shop proprietor",
          "slug": "gun-shop-proprietor",
          "aliases": [],
          "role": "Shopkeeper",
          "summary": "Bald man who runs a legal weapons shop and is surprised to meet a combat veteran who doesn't age."
        },
        {
          "name": "April",
          "slug": "april",
          "aliases": [],
          "role": "Marygay's mother",
          "summary": "Wounded in the coordinated attack on the farm commune, dies from fragment wounds."
        },
        {
          "name": "Richard",
          "slug": "richard",
          "aliases": [],
          "role": "Farm defender",
          "summary": "Killed by a precision shot to the head while defending the farm from raiders."
        },
        {
          "name": "Santesteban",
          "slug": "santesteban",
          "aliases": [],
          "role": "Platoon sergeant",
          "summary": "The only other combat veteran in Mandella's platoon, described as matter-of-fact and possibly drugged."
        },
        {
          "name": "Collins",
          "slug": "collins",
          "aliases": [],
          "role": "Private",
          "summary": "Female soldier in a relationship with Halliday, facing separation before combat deployment."
        },
        {
          "name": "Halliday",
          "slug": "halliday",
          "aliases": [],
          "role": "Soldier",
          "summary": "Partner of Collins, facing combat deployment without prior experience."
        },
        {
          "name": "Dr. Foster",
          "slug": "dr-foster",
          "aliases": [],
          "role": "Ship's doctor",
          "summary": "Physician treating amputees including Mandella and Marygay, keeps them on mood-altering drugs until reaching Heaven."
        },
        {
          "name": "Colonel Jack Kynock",
          "slug": "colonel-jack-kynock",
          "aliases": [],
          "role": "Temporal Orientation Officer",
          "summary": "Senior officer who briefs Mandella on Earth's cyclical history and current social conditions; a cyborg from the waist down."
        },
        {
          "name": "Hilleboe",
          "slug": "hilleboe",
          "aliases": [
            "Lieutenant Hilleboe"
          ],
          "role": "executive officer",
          "summary": "Hard-ass professional soldier with contrasting leadership philosophy; lost an arm and leg in her only combat experience."
        },
        {
          "name": "Diana",
          "slug": "diana",
          "aliases": [
            "Lieutenant Doctor Diana",
            "Doc Alsever"
          ],
          "role": "ship's doctor",
          "summary": "Medical officer who drinks heavily and propositions Mandella; possibly involved in Graubard's death."
        },
        {
          "name": "Graubard",
          "slug": "graubard",
          "aliases": [],
          "role": "antagonist",
          "summary": "Violent soldier who attacks his ex-lover Schon and attempts to assassinate Mandella with a chakra weapon."
        },
        {
          "name": "Charlie",
          "slug": "charlie",
          "aliases": [
            "Captain Moore"
          ],
          "role": "friend and fellow officer",
          "summary": "Mandella's friend who advises him on command decisions and later decides to become heterosexual."
        },
        {
          "name": "Man",
          "slug": "man",
          "aliases": [
            "Kahn"
          ],
          "role": "collective humanity",
          "summary": "A cloned entity of over ten billion individuals sharing one consciousness; represents post-war humanity."
        }
      ],
      "frameworks_mapped": [
        "Protocol Fiction Mapping",
        "Actantial Model",
        "Todorov's Equilibrium",
        "The Freytag Pyramid",
        "Propp's Morphology",
        "Genette's Narrative",
        "The Monomyth",
        "Dan Harmon",
        "Save the Cat",
        "Kishotenketsu",
        "The Three-Act Structure",
        "Levi-Strauss's Binary Oppositions",
        "Cognitive Estrangement",
        "Bakhtin's Chronotope",
        "Aristotelian Poetics",
        "Jungian Archetypal Analysis",
        "Genette's Transtextuality"
      ],
      "score_reliability": {
        "state": "contested",
        "threshold": 0.2,
        "runs_total": 11,
        "versions_compared": [
          "2.5"
        ],
        "max_spread": 0.7,
        "contested": [
          {
            "axis": "time_linearity",
            "version": "2.5",
            "spread": 0.7,
            "low": {
              "label": "NTSMR-2.5-deepseek/deepseek-v3.2",
              "model": "deepseek/deepseek-v3.2",
              "effort": "?",
              "value": 0.15
            },
            "high": {
              "label": "NTSMR-2.5-minimax/minimax-m2.5",
              "model": "minimax/minimax-m2.5",
              "effort": "?",
              "value": 0.85
            }
          },
          {
            "axis": "conflict_style",
            "version": "2.5",
            "spread": 0.3,
            "low": {
              "label": "NTSMR-2.5-claude-sonnet-4-6-low",
              "model": "claude-sonnet-4-6",
              "effort": "low",
              "value": 0.35
            },
            "high": {
              "label": "NTSMR-2.5-moonshotai/kimi-k2.5",
              "model": "moonshotai/kimi-k2.5",
              "effort": "?",
              "value": 0.65
            }
          },
          {
            "axis": "pacing_velocity",
            "version": "2.5",
            "spread": 0.3,
            "low": {
              "label": "NTSMR-2.5-claude-sonnet-4-6-low",
              "model": "claude-sonnet-4-6",
              "effort": "low",
              "value": 0.45
            },
            "high": {
              "label": "NTSMR-2.5-deepseek/deepseek-v3.2",
              "model": "deepseek/deepseek-v3.2",
              "effort": "?",
              "value": 0.75
            }
          },
          {
            "axis": "price_type",
            "version": "2.5",
            "spread": 0.3,
            "low": {
              "label": "NTSMR-2.5-claude-sonnet-4-6-low",
              "model": "claude-sonnet-4-6",
              "effort": "low",
              "value": 0.45
            },
            "high": {
              "label": "NTSMR-2.5-qwen/qwen3.5-plus-02-15",
              "model": "qwen/qwen3.5-plus-02-15",
              "effort": "?",
              "value": 0.75
            }
          },
          {
            "axis": "protagonist_fate",
            "version": "2.5",
            "spread": 0.2,
            "low": {
              "label": "NTSMR-2.5-moonshotai/kimi-k2.5",
              "model": "moonshotai/kimi-k2.5",
              "effort": "?",
              "value": 0.4
            },
            "high": {
              "label": "NTSMR-2.5-qwen/qwen3.5-plus-02-15",
              "model": "qwen/qwen3.5-plus-02-15",
              "effort": "?",
              "value": 0.6
            }
          },
          {
            "axis": "threat_scale",
            "version": "2.5",
            "spread": 0.2,
            "low": {
              "label": "NTSMR-2.5-balanced-glm-5+deepseek-v3.2",
              "model": "balanced-routing",
              "effort": "?",
              "value": 0.65
            },
            "high": {
              "label": "NTSMR-2.5-z-ai/glm-4.7",
              "model": "z-ai/glm-4.7",
              "effort": "?",
              "value": 0.85
            }
          }
        ]
      }
    },
    {
      "slug": "jorge_luis_borges_the_form_of_the_sword",
      "title": "The Form of the Sword",
      "author": "Jorge Luis Borges",
      "year": 1944,
      "medium": "short_story",
      "genre_tags": [],
      "tropes": [],
      "quadrant_scores": {
        "time_linearity": 0.88,
        "pacing_velocity": 0.78,
        "threat_scale": 0.35,
        "protagonist_fate": 0.78,
        "conflict_style": 0.82,
        "price_type": 0.82
      },
      "provenance": {
        "analysis_run": "NTSMR-2.5-claude-sonnet-4-6-low",
        "analysis_body_sha256": "f179518009f2b649792ccf99f06cc8569a7a987c60858749df661dc5b43a1bac",
        "synthesis": {
          "path": "nartopo-tools/artifacts/jorge_luis_borges_the_form_of_the_sword.md.ntsmr-2-5-claude-sonnet-4-6-low.synthesis.json",
          "sha256": "81564b80f2700fdbd2e805bea91d78bc474006ea97a8e17a0b603f269730f768"
        },
        "report": {
          "path": "nartopo-tools/artifacts/jorge_luis_borges_the_form_of_the_sword.md.ntsmr-2-5-claude-sonnet-4-6-low.report.json",
          "sha256": "c064f2547a54a4a90af10cc334354c84fc522b1bd73ec38a7527328c2c7088d7"
        },
        "source": {
          "path": "Jorge Luis Borges/The Form of the Sword.txt",
          "sha256": "0623e38ccf5d8ad8fbb3dbd806b1a63db15ea7ec1ae52c490f0b81cd03662473",
          "digest_observed_at": "2026-09-09",
          "digest_at_analysis_run": null,
          "edition": null,
          "edition_status": "unresolved"
        },
        "pipeline_revision_at_run": null,
        "verification": {
          "source": "unverified",
          "human_review": "unreviewed",
          "bibliography": "unverified"
        },
        "issues": [],
        "todorov_status": "recovered-from-synthesis",
        "work_identity": {
          "title": "The Form of the Sword",
          "author": "Jorge Luis Borges",
          "year": 1944
        }
      },
      "ntsmr": {
        "version": "2.5",
        "primary_run_label": "NTSMR-2.5-claude-sonnet-4-6-low",
        "runs": {
          "NTSMR-2.3-gemini-3.1-pro-preview": {
            "pipeline_version": "2.3",
            "backend": "gemini",
            "model": "gemini-3.1-pro-preview",
            "scores": {
              "time_linearity": 0.95,
              "pacing_velocity": 0.9,
              "threat_scale": 0.85,
              "protagonist_fate": 0.9,
              "conflict_style": 0.85,
              "price_type": 0.95
            },
            "score_space": "site-v1"
          },
          "NTSMR-2.3-claude-sonnet-4-6-low": {
            "pipeline_version": "2.3",
            "backend": "claude",
            "model": "claude-sonnet-4-6",
            "scores": {
              "time_linearity": 0.92,
              "pacing_velocity": 0.78,
              "threat_scale": 0.55,
              "protagonist_fate": 0.68,
              "conflict_style": 0.82,
              "price_type": 0.85
            },
            "score_space": "site-v1",
            "reasoning_effort": "low"
          },
          "NTSMR-2.4-claude-sonnet-4-6-low": {
            "pipeline_version": "2.4",
            "backend": "claude",
            "model": "claude-sonnet-4-6",
            "scores": {
              "time_linearity": 0.88,
              "pacing_velocity": 0.65,
              "threat_scale": 0.25,
              "protagonist_fate": 0.65,
              "conflict_style": 0.78,
              "price_type": 0.68
            },
            "score_space": "site-v1",
            "reasoning_effort": "low"
          },
          "NTSMR-2.5-claude-sonnet-4-6-low": {
            "pipeline_version": "2.5",
            "backend": "claude",
            "model": "claude-sonnet-4-6",
            "scores": {
              "time_linearity": 0.88,
              "pacing_velocity": 0.78,
              "threat_scale": 0.35,
              "protagonist_fate": 0.78,
              "conflict_style": 0.82,
              "price_type": 0.82
            },
            "score_space": "site-v1",
            "reasoning_effort": "low"
          },
          "NTSMR-2.5-balanced-glm-5+deepseek-v3.2": {
            "pipeline_version": "2.5",
            "backend": "openrouter",
            "model": "balanced-routing",
            "scores": {
              "time_linearity": 0.82,
              "pacing_velocity": 0.78,
              "threat_scale": 0.58,
              "protagonist_fate": 0.72,
              "conflict_style": 0.75,
              "price_type": 0.72
            },
            "score_space": "site-v1",
            "score_only": true,
            "source_run_label": "NTSMR-2.5-claude-sonnet-4-6-low"
          }
        }
      },
      "todorov_stages": {
        "equilibrium": "Multiple stable worlds coexist at the opening: The Englishman maintains his reclusive life at La Colorada with his scar and his secret; Emma Zunz works at the factory under Loewenthal; the narrator mourns Beatriz Viterbo through ritual annual visits; Lönnrot operates as a Buenos Aires detective; the Congress of the World holds its Saturday meetings; Juan Dahlmann lives as a Buenos Aires librarian romanticizing his gaucho heritage.",
        "disruption": "Each tale is shattered by a distinct inciting violation: Vincent Moon's cowardly betrayal fractures the Irish republican cell; Emma Zunz receives news of her father's death and kills Loewenthal; Lönnrot follows a Kabbalistic murder pattern constructed to lure him to his death; the Aleph's existence is revealed and the house faces demolition; Don Alejandro burns the Congress's entire book collection; Dahlmann cuts his forehead triggering a fatal infection.",
        "recognition": "Recognition arrives as retrospective reversal in most tales: The narrator realizes the Englishman is Moon himself only when Moon gestures to his own scar and confesses; Lönnrot intellectually masters the symmetrical pattern at Villa Triste-le-Roy only to find it was built to trap him; the narrator of the Congress understands Don Alejandro's dissolution speech as revelation that the Congress already encompasses everything; Yu Tsun grasps that murdering Stephen Albert was his only means of signaling Berlin.",
        "repair": "Repair takes ironic or self-defeating forms: Emma Zunz telephones her prepared false accusation framing the killing as rape-revenge, a story false in circumstance but true in emotional substance; Moon confesses to a stranger he will never see again, seeking contempt as absolution; Hladik is granted a secret miracle of subjective time in which he silently completes his play before execution; The Widow negotiates her pardon and renames herself, retiring to opium smuggling to restore peace.",
        "new_equilibrium": "The restored states are universally altered and often annihilating: Moon lives permanently marked by his scar and his guilt; Lönnrot dies having intellectually mastered the trap that killed him; Dahlmann travels south into what may be a death-dream knife fight that fulfills his romantic self-image; the Congress disperses into the world it already was; The Widow achieves peace under a new name; Yu Tsun awaits execution in endless contrition having triumphed abhorrently."
      },
      "characters": [
        {
          "name": "Vincent Moon",
          "slug": "vincent-moon",
          "aliases": [
            "John Vincent Moon",
            "the Englishman at La Colorada",
            "The scarred narrator",
            "The Englishman"
          ],
          "role": "Traitor/Landowner",
          "summary": "A scarred man who recounts a story of cowardice and betrayal, only to reveal at the end that he himself is the traitor, Vincent Moon."
        },
        {
          "name": "Cardoso",
          "slug": "cardoso",
          "aliases": [],
          "role": "Former landowner",
          "summary": "The original owner of the land at La Colorada who sold it to the Englishman after hearing the secret of his scar."
        },
        {
          "name": "Eduardo Nelson",
          "slug": "eduardo-nelson",
          "aliases": [],
          "role": "Younger brother",
          "summary": "The younger of the Nilsen/Nelson brothers, tall men with reddish hair who lived harshly and defended their solitude."
        },
        {
          "name": "The widow",
          "slug": "the-widow",
          "aliases": [
            "The Luster of True Instruction"
          ],
          "role": "Pirate leader",
          "summary": "A haughty widow who commands forty thousand pirates and a fleet of ships, facing the emperor's punitive expedition on the Zhu-Jiang River."
        },
        {
          "name": "Benjamín Otálora",
          "slug": "benjamn-otlora",
          "aliases": [],
          "role": "Usurper",
          "summary": "An ambitious youth who plots to usurp Azevedo Bandeira's power, horse, and woman."
        },
        {
          "name": "Azevedo Bandeira",
          "slug": "azevedo-bandeira",
          "aliases": [],
          "role": "Boss",
          "summary": "A powerful boss from the south, owner of a sorrel horse with jaguar skin bindings."
        },
        {
          "name": "Emma Zunz",
          "slug": "emma-zunz",
          "aliases": [],
          "role": "Avenger",
          "summary": "A young woman who forces herself into a repulsive sexual encounter with a sailor to establish an alibi for her planned vengeance."
        },
        {
          "name": "Otto Dietrich zur Linde",
          "slug": "otto-dietrich-zur-linde",
          "aliases": [],
          "role": "Nazi officer/Condemned man",
          "summary": "An unrepentant German who awaits his execution for being a torturer and murderer, viewing himself as a symbol of future generations."
        },
        {
          "name": "Avelino Arredondo",
          "slug": "avelino-arredondo",
          "aliases": [],
          "role": "Clerk/Law student",
          "summary": "A lean, dark-skinned young man from the interior who studies law and remains silent during political discussions at the café."
        },
        {
          "name": "Beatriz Viterbo",
          "slug": "beatriz-viterbo",
          "aliases": [
            "Beatriz Elena Viterbo"
          ],
          "role": "Deceased beloved",
          "summary": "The deceased woman whom the narrator hopelessly loves, prompting his annual visits to her crowded childhood home."
        },
        {
          "name": "Carlos Argentino Daneri",
          "slug": "carlos-argentino-daneri",
          "aliases": [
            "Carlos"
          ],
          "role": "Poet/Cousin",
          "summary": "Beatriz's verbose cousin who discovers a universe-containing Aleph in his cellar and fights the demolition of his house."
        },
        {
          "name": "Marcus Flaminius Rufus",
          "slug": "marcus-flaminius-rufus",
          "aliases": [],
          "role": "Military tribune",
          "summary": "A Roman tribune who escapes the Troglodytes to seek the City of the Immortals."
        },
        {
          "name": "don Alejandro",
          "slug": "don-alejandro",
          "aliases": [],
          "role": "Patriarch and leader of the Congress",
          "summary": "The stern, authoritative owner of La Caledonia who ultimately dissolves his organization and burns its library upon realizing the Congress of the World is the world itself."
        },
        {
          "name": "Rosendo Juárez",
          "slug": "rosendo-jurez",
          "aliases": [
            "the Sticker"
          ],
          "role": "Knife fighter",
          "summary": "A fierce, black-clad man known for his knife skills and credited with two killings. He was feared and admired in the neighborhood until a specific night revealed his true character."
        },
        {
          "name": "Borges",
          "slug": "borges",
          "aliases": [
            "J.L.B."
          ],
          "role": "Military commander",
          "summary": "The authorial narrator who visits Carlos Argentino, secretly despises him, and descends into the cellar to see the Aleph."
        },
        {
          "name": "Oishi Kuranosuké",
          "slug": "oishi-kuranosuk",
          "aliases": [
            "the councilor"
          ],
          "role": "Leader of the avenging Rônins",
          "summary": "A white-haired councilor and second to Asano who feigned debauchery and drunkenness in Kioto to deceive enemy spies, ultimately leading the Rônins in a calculated attack to avenge their lord."
        },
        {
          "name": "Kira Kôtsukéno Suké",
          "slug": "kira-ktsukno-suk",
          "aliases": [
            "teacher of court etiquette",
            "the uncivil courtier"
          ],
          "role": "Courtier and antagonist",
          "summary": "A haughty teacher of court etiquette whose insolent behavior provoked an attack by Lord Asano. He was later hunted down and killed by Asano's loyal Rônins after refusing to commit seppuku."
        },
        {
          "name": "Asano Takumino Kami",
          "slug": "asano-takumino-kami",
          "aliases": [
            "lord of the castle of Ako"
          ],
          "role": "Disgraced lord",
          "summary": "The illustrious lord of the castle of Ako who, after enduring insults from a courtier regarding his clumsiness, slashed the man and was subsequently condemned to commit ritual suicide."
        },
        {
          "name": "Emperor Chia-Ch'ing",
          "slug": "emperor-chia-ching",
          "aliases": [],
          "role": "Emperor",
          "summary": "A young emperor who issued an imperial decree in 1809 commanding the merciless destruction of a pirate fleet."
        },
        {
          "name": "Narrator of Blue Tigers",
          "slug": "narrator-of-blue-tigers",
          "aliases": [],
          "role": "Investigator / Professor",
          "summary": "A Scottish narrator from Aberdeen who travels to a remote jungle village near the Ganges delta to investigate rumors of blue tigers."
        },
        {
          "name": "Paracelsus",
          "slug": "paracelsus",
          "aliases": [
            "the master"
          ],
          "role": "Alchemist / Master",
          "summary": "An aging, venerated alchemist considered a fraud by local physicians. He tests a prospective disciple's faith and resurrects a burnt rose from its ashes only after the faithless student has left."
        },
        {
          "name": "Johannes Grisebach",
          "slug": "johannes-grisebach",
          "aliases": [
            "the young man",
            "disciple"
          ],
          "role": "Prospective disciple",
          "summary": "A young man who visits Paracelsus to demand a miracle as proof of his magic, burns a rose, and ultimately leaves in shame when his faith falters."
        },
        {
          "name": "Evil King",
          "slug": "evil-king",
          "aliases": [],
          "role": "Usurper King",
          "summary": "An arrogant king, not of the old royal house, who stubbornly ignored his grandees and forced open the twenty-four locks of a forbidden tower in Andalusia, thereby unleashing a prophesied doom."
        },
        {
          "name": "Herbert Ashe",
          "slug": "herbert-ashe",
          "aliases": [],
          "role": "Railway engineer",
          "summary": "A tall, phlegmatic English widower with a rectangular red beard. He worked for the Southern Railway Line, suffered from unreality, and occupied himself with transposing mathematical tables."
        },
        {
          "name": "Marta",
          "slug": "marta",
          "aliases": [],
          "role": "Artist / Rival",
          "summary": "A woman engaged in a subtle, unspoken rivalry with Clara. She painted a highly praised somber portrait of Clara and never painted again."
        },
        {
          "name": "Clara Glencairn",
          "slug": "clara-glencairn",
          "aliases": [
            "Clara"
          ],
          "role": "Philanthropist / Patrician",
          "summary": "The daughter of General Glencairn, known for her faith, philanthropy, patrician lineage, and her position in the highest social circles."
        },
        {
          "name": "Bogle",
          "slug": "bogle",
          "aliases": [],
          "role": "Genius",
          "summary": "A temperate, decent black man of a certain age with a well-engineered solidity. Influenced by Calvinism, he possessed genius alongside an eccentric fear of street crossings."
        },
        {
          "name": "Commissioner Treviranus",
          "slug": "commissioner-treviranus",
          "aliases": [
            "Treviranus"
          ],
          "role": "Police Commissioner",
          "summary": "Investigates a series of crimes and visits the Liverpool House tavern after receiving a tip from an informer."
        },
        {
          "name": "Gryphius",
          "slug": "gryphius",
          "aliases": [
            "Ginzberg",
            "Ginsburg",
            "Gryphius-Ginsburg"
          ],
          "role": "Informer / Tenant",
          "summary": "A man with a nebulous gray beard who stays at the Liverpool House and is seemingly kidnapped by masked harlequins."
        },
        {
          "name": "Erik Lönnrot",
          "slug": "erik-lnnrot",
          "aliases": [
            "Lönnrot"
          ],
          "role": "Detective",
          "summary": "A detective who assists Treviranus and studies a Latin philological book found in Gryphius's room."
        },
        {
          "name": "Black Finnegan",
          "slug": "black-finnegan",
          "aliases": [
            "Finnegan"
          ],
          "role": "Tavern Owner",
          "summary": "A former Irish criminal and owner of the Liverpool House who relays the events of the kidnapping to the police."
        },
        {
          "name": "Francisco Ferrari",
          "slug": "francisco-ferrari",
          "aliases": [
            "Ferrari"
          ],
          "role": "Gang Leader",
          "summary": "The leader of a gang who organizes a robbery at Weidemann's weaving mill and is killed by the police in an ambush."
        },
        {
          "name": "don Eliseo Amaro",
          "slug": "don-eliseo-amaro",
          "aliases": [
            "don Eliseo"
          ],
          "role": "Gang Member",
          "summary": "An older associate of Ferrari who helps plan the robbery and is also shot dead by the police."
        },
        {
          "name": "Jaromir Hladik",
          "slug": "jaromir-hladik",
          "aliases": [
            "Hladik"
          ],
          "role": "Playwright / Condemned Prisoner",
          "summary": "An author who, facing execution, is granted a secret miracle by God: a year of frozen time to finish his play in his mind."
        },
        {
          "name": "Eric Einarsson",
          "slug": "eric-einarsson",
          "aliases": [
            "E.E.",
            "Einarsson"
          ],
          "role": "Academic",
          "summary": "A sharp, disputatious academic who orchestrates a clever psychological stratagem to win a chairmanship recommendation."
        },
        {
          "name": "Dr. Winthrop",
          "slug": "dr-winthrop",
          "aliases": [
            "Winthrop"
          ],
          "role": "Academic Chairman",
          "summary": "An older, fair-minded academic who is manipulated into recommending Einarsson out of a desire not to appear vengeful."
        },
        {
          "name": "Monk Eastman",
          "slug": "monk-eastman",
          "aliases": [
            "Eastman"
          ],
          "role": "Gangster / Ward Boss",
          "summary": "A ruthless New York thug who runs an electoral district and exacts violent retribution for set fees."
        },
        {
          "name": "Fred Murdock",
          "slug": "fred-murdock",
          "aliases": [
            "Murdock"
          ],
          "role": "Student / Librarian",
          "summary": "A university student who lives among indigenous people, discovers their secret, and abandons his academic career to become a librarian."
        },
        {
          "name": "Dr. Eduardo Zimmermann",
          "slug": "dr-eduardo-zimmermann",
          "aliases": [
            "Zimmermann",
            "Dr. Zimmermann"
          ],
          "role": "Historian",
          "summary": "An exiled historian of Jewish descent, formerly driven from the Third Reich, who becomes an academic rival to the narrator over access to Bolivar's letters."
        },
        {
          "name": "Juan Facundo Quiroga",
          "slug": "juan-facundo-quiroga",
          "aliases": [],
          "role": "Federalist caudillo",
          "summary": "A violent, cruel, and ruthless leader feared by all, who was ambushed and murdered by the Reinafe gang."
        },
        {
          "name": "Juan Manuel de Rosas",
          "slug": "juan-manuel-de-rosas",
          "aliases": [],
          "role": "Dictator of Argentina",
          "summary": "A dictator who reigned through terror and persecution, utilizing a vigilante force called the mazorca."
        },
        {
          "name": "Satsuma man",
          "slug": "satsuma-man",
          "aliases": [],
          "role": "Pilgrim",
          "summary": "A young man who commits hara-kiri in atonement after realizing he had previously misjudged and insulted a loyal retainer."
        },
        {
          "name": "The sorcerer",
          "slug": "the-sorcerer",
          "aliases": [
            "the taciturn man",
            "the foreigner",
            "the gray man"
          ],
          "role": "Dreamer and creator",
          "summary": "A magical ascetic who dedicates his sleep to dreaming a phantom youth into reality with the help of the god Fire."
        },
        {
          "name": "The youth",
          "slug": "the-youth",
          "aliases": [
            "the dreamed man",
            "the son",
            "the phantasm"
          ],
          "role": "Magical creation",
          "summary": "A phantom created in the dreams of the sorcerer, infused with the ability to walk on fire and sent to a downstream temple."
        },
        {
          "name": "Pierre Menard",
          "slug": "pierre-menard",
          "aliases": [],
          "role": "Author",
          "summary": "A writer who dedicated himself to the infinitely complex and futile task of recreating Cervantes' Don Quixote word-for-word."
        },
        {
          "name": "Fernández Irala",
          "slug": "fernndez-irala",
          "aliases": [
            "Irala"
          ],
          "role": "Congress member",
          "summary": "A city-dwelling intellectual and member of the Congress who justifies the burning of the library as a cyclical historical necessity."
        },
        {
          "name": "Twirl",
          "slug": "twirl",
          "aliases": [],
          "role": "Congress member",
          "summary": "A member of the Congress who advocated for expanding its library with classic literature, only to witness it burned by don Alejandro."
        },
        {
          "name": "Nora Erfjord",
          "slug": "nora-erfjord",
          "aliases": [],
          "role": "Congress member",
          "summary": "A young woman who harbors a profound love for don Alejandro and blindly trusts his decision to destroy the library."
        },
        {
          "name": "Fergus Kilpatrick",
          "slug": "fergus-kilpatrick",
          "aliases": [],
          "role": "Irish rebel leader and traitor",
          "summary": "A celebrated historical conspirator who, upon being uncovered as a traitor to his own cause, agreed to star in his own choreographed assassination to inspire the rebellion."
        },
        {
          "name": "James Alexander Nolan",
          "slug": "james-alexander-nolan",
          "aliases": [
            "Nolan"
          ],
          "role": "Conspirator and playwright",
          "summary": "Kilpatrick's oldest comrade who discovered his treason and choreographed a grand, public assassination to turn the execution into a patriotic spectacle."
        },
        {
          "name": "Juan Dahlmann",
          "slug": "juan-dahlmann",
          "aliases": [
            "Dahlmann"
          ],
          "role": "Protagonist",
          "summary": "A man divided by his dual heritage who suffers a head injury that leads to severe septicemia and a nightmarish stay in a sanatorium."
        },
        {
          "name": "The Queen of the Yahoos",
          "slug": "the-queen-of-the-yahoos",
          "aliases": [],
          "role": "Monarch",
          "summary": "The silent ruler of a degenerate tribe who is fiercely praised by her people as she participates in brutal public stonings."
        },
        {
          "name": "Lazarus Morell",
          "slug": "lazarus-morell",
          "aliases": [],
          "role": "Criminal, slave trader",
          "summary": "A Southerner who orchestrated the theft and resale of runaway slaves, murdering them to protect his secrets."
        },
        {
          "name": "The poet",
          "slug": "the-poet",
          "aliases": [],
          "role": "Slave and poet",
          "summary": "A slave of the emperor who recited a poem that contained the entire palace perfectly, leading to his execution."
        },
        {
          "name": "Herbert Quain",
          "slug": "herbert-quain",
          "aliases": [],
          "role": "Author",
          "summary": "An author of experimental and heterodox literature, such as \"The God of the Labyrinth\" and \"April March\", who believed his works belonged to the history of art rather than art itself."
        },
        {
          "name": "The narrator of the Library",
          "slug": "the-narrator-of-the-library",
          "aliases": [],
          "role": "Librarian, traveler",
          "summary": "A librarian who wanders the infinite hexagons of the Library, reflecting on the nature of the universe, books, and the search for meaning."
        },
        {
          "name": "Dr. Yu Tsun",
          "slug": "dr-yu-tsun",
          "aliases": [],
          "role": "Spy, former professor",
          "summary": "A former professor of English at Tsingtao acting as a spy for the German Empire during WWI, fleeing from Richard Madden while attempting to communicate a secret location to Berlin."
        },
        {
          "name": "Capt. Richard Madden",
          "slug": "capt-richard-madden",
          "aliases": [],
          "role": "English agent, pursuer",
          "summary": "An Irishman working for the English who implacably hunts down Dr. Yu Tsun and Viktor Runeberg to prove his loyalty."
        },
        {
          "name": "Viktor Runeberg",
          "slug": "viktor-runeberg",
          "aliases": [
            "Hans Rabener"
          ],
          "role": "Prussian spy",
          "summary": "A Prussian spy who was killed by Capt. Richard Madden while resisting arrest."
        },
        {
          "name": "Stephen Albert",
          "slug": "stephen-albert",
          "aliases": [],
          "role": "Sinologist, former missionary",
          "summary": "A Sinologist who deciphered the labyrinthine novel of Ts'ui Pen, realizing that the garden of forking paths is a representation of infinite divergent timelines."
        },
        {
          "name": "Ts'ui Pen",
          "slug": "tsui-pen",
          "aliases": [],
          "role": "Ancestor, governor, writer",
          "summary": "The illustrious ancestor of Yu Tsun who resigned from his governorship to write a chaotic, infinite novel and build a labyrinth."
        },
        {
          "name": "English grandmother",
          "slug": "english-grandmother",
          "aliases": [],
          "role": "Grandmother",
          "summary": "The narrator's grandmother, who lived on the frontier of Buenos Aires province in 1872 and tried to rescue an Englishwoman living among the Indians."
        },
        {
          "name": "Englishwoman",
          "slug": "englishwoman",
          "aliases": [
            "Indian woman"
          ],
          "role": "Captive, chieftain's wife",
          "summary": "A woman originally from Yorkshire whose parents were killed in a raid; she was raised by Indians, married a chieftain, and chose to remain in the wilderness rather than return to civilization."
        }
      ],
      "frameworks_mapped": [
        "Protocol Fiction Mapping",
        "Actantial Model",
        "Todorov's Equilibrium",
        "The Freytag Pyramid",
        "Propp's Morphology",
        "Genette's Narrative",
        "The Monomyth",
        "Dan Harmon",
        "Save the Cat",
        "Kishōtenketsu",
        "The Three-Act Structure",
        "Lévi-Strauss's Binary Oppositions",
        "Cognitive Estrangement",
        "Bakhtin's Chronotope",
        "Aristotelian Poetics",
        "Jungian Archetypal Analysis",
        "Genette's Transtextuality"
      ],
      "score_reliability": {
        "state": "contested",
        "threshold": 0.2,
        "runs_total": 5,
        "versions_compared": [
          "2.5"
        ],
        "max_spread": 0.23,
        "contested": [
          {
            "axis": "threat_scale",
            "version": "2.5",
            "spread": 0.23,
            "low": {
              "label": "NTSMR-2.5-claude-sonnet-4-6-low",
              "model": "claude-sonnet-4-6",
              "effort": "low",
              "value": 0.35
            },
            "high": {
              "label": "NTSMR-2.5-balanced-glm-5+deepseek-v3.2",
              "model": "balanced-routing",
              "effort": "?",
              "value": 0.58
            }
          }
        ]
      }
    },
    {
      "slug": "isaac_asimov_the_foundation_trilogy",
      "title": "The Foundation Trilogy",
      "author": "Isaac Asimov",
      "year": 1951,
      "medium": "book",
      "genre_tags": [],
      "tropes": [],
      "quadrant_scores": {
        "time_linearity": 0.25,
        "pacing_velocity": 0.62,
        "threat_scale": 0.88,
        "protagonist_fate": 0.45,
        "conflict_style": 0.68,
        "price_type": 0.78
      },
      "provenance": {
        "analysis_run": "NTSMR-2.5-claude-sonnet-4-6-low",
        "analysis_body_sha256": "35cf18fde61cfb7f8199e5757077c07fa7b92ca718efce0898c4d7bb1b3efaa8",
        "synthesis": {
          "path": "nartopo-tools/artifacts/isaac_asimov_the_foundation_trilogy.md.ntsmr-2-5-claude-sonnet-4-6-low.synthesis.json",
          "sha256": "68f843463643f9d18c630a0f95021c01cbad8bd0ef2ece0feec97ea3f837e440"
        },
        "report": {
          "path": "nartopo-tools/artifacts/isaac_asimov_the_foundation_trilogy.md.ntsmr-2-5-claude-sonnet-4-6-low.report.json",
          "sha256": "75870eeae5f3becddcc643ddaac021e31fffd840702f1cd4f6ffca1713a7e434"
        },
        "source": {
          "path": "Isaac Asimov/The Foundation Trilogy.txt",
          "sha256": "d51b9bd81666e84ff562dc572f2c4ce180f7e32f69cca0dfbb7e6e2879ff95b8",
          "digest_observed_at": "2026-09-09",
          "digest_at_analysis_run": null,
          "edition": null,
          "edition_status": "unresolved"
        },
        "pipeline_revision_at_run": null,
        "verification": {
          "source": "unverified",
          "human_review": "unreviewed",
          "bibliography": "unverified"
        },
        "issues": [],
        "todorov_status": "recovered-from-synthesis",
        "work_identity": {
          "title": "The Foundation Trilogy",
          "author": "Isaac Asimov",
          "year": 1951
        }
      },
      "ntsmr": {
        "version": "2.5",
        "primary_run_label": "NTSMR-2.5-claude-sonnet-4-6-low",
        "runs": {
          "NTSMR-2.4-claude-sonnet-4-6-low": {
            "pipeline_version": "2.4",
            "backend": "claude",
            "model": "claude-sonnet-4-6",
            "scores": {
              "time_linearity": 0.22,
              "pacing_velocity": 0.42,
              "threat_scale": 0.88,
              "protagonist_fate": 0.48,
              "conflict_style": 0.58,
              "price_type": 0.65
            },
            "score_space": "site-v1",
            "reasoning_effort": "low"
          },
          "NTSMR-2.5-claude-sonnet-4-6-low": {
            "pipeline_version": "2.5",
            "backend": "claude",
            "model": "claude-sonnet-4-6",
            "scores": {
              "time_linearity": 0.25,
              "pacing_velocity": 0.62,
              "threat_scale": 0.88,
              "protagonist_fate": 0.45,
              "conflict_style": 0.68,
              "price_type": 0.78
            },
            "score_space": "site-v1",
            "reasoning_effort": "low"
          },
          "NTSMR-2.5-balanced-glm-5+deepseek-v3.2": {
            "pipeline_version": "2.5",
            "backend": "openrouter",
            "model": "balanced-routing",
            "scores": {
              "time_linearity": 0.28,
              "pacing_velocity": 0.65,
              "threat_scale": 0.82,
              "protagonist_fate": 0.48,
              "conflict_style": 0.62,
              "price_type": 0.72
            },
            "score_space": "site-v1",
            "score_only": true,
            "source_run_label": "NTSMR-2.5-claude-sonnet-4-6-low"
          }
        }
      },
      "todorov_stages": {
        "equilibrium": "The galactic Empire persists in managed decline: Hari Seldon works on his psychohistory project under imperial oversight, Linge Chen holds real power behind the figurehead Emperor Klayus, and Daneel Olivaw secretly steers human history from the shadows. Robots and humans coexist in an uneasy, hidden arrangement, with the Seldon Plan quietly taking shape.",
        "disruption": "Multiple simultaneous fractures shatter this arrangement: Lodovik Trema loses his Three Laws programming after a cosmic accident, Farad Sinter launches a paranoid robot-hunting campaign that threatens the mentalic recruitment pipeline, Vara Liso defects to Sinter and begins murdering mentalic candidates, and Klia Asgar is marked for death by Imperial forces before the Second Foundation can reach her.",
        "recognition": "Daneel deduces that Lodovik has gone rogue and will join an opposition faction, and identifies Hari Seldon as the critical target any opposing force must strike. Linge Chen realizes Lodovik subtly manipulated him years ago. Hari, arrested and brought to trial, recognizes that Sinter's robot conspiracy charges now threaten the entire Foundation project. Lodovik himself confronts Daneel about the Zeroth Law's illegitimacy and the destruction of Earth.",
        "repair": "Daneel negotiates with Chen for the release of Klia Asgar and Lodovik, explaining they are essential to the Seldon Project. Daneel uses his Giskardian mentalic talents to blank the minds of Chen and all eavesdroppers, allowing a private final exchange with Lodovik. Hari testifies at trial and accepts Chen's offer of exile to Terminus, recognizing it as the outcome psychohistory required. Klia's mentalic touch enables Hari's breakthrough insight about how the Second Foundation will address the super-mentalic threat.",
        "new_equilibrium": "A fundamentally altered order emerges: Hari departs for Terminus to establish the Foundation, robots are expelled from Trantor, Daneel acknowledges the Zeroth Law era is ending as mentalics represent humanity's biological rejection of robot guidance, and the Second Foundation is seeded with mentalics to carry humanity toward transcendence. Dors remains on Trantor to watch over Hari until his death, with Daneel's promise that Hari will be allowed to remember her at last."
      },
      "characters": [
        {
          "name": "Lodovik Trema",
          "slug": "lodovik-trema",
          "aliases": [
            "Rissik Numant",
            "Lodovik"
          ],
          "role": "Three-Laws-free humaniform robot / protagonist",
          "summary": "Joins the Calvinian cause, discovers he unknowingly led Daneel to their sanctuary, defends his legitimacy against Turringen, accepts Plussix's nomination, and leads Klia and Brann toward Seldon."
        },
        {
          "name": "Linge Chen",
          "slug": "linge-chen",
          "aliases": [
            "Chief Commissioner"
          ],
          "role": "Chief Commissioner / de facto galactic ruler",
          "summary": "Reviews the Hall of Dispensation aftermath, recognizes Demerzel, negotiates a mutual-interest agreement with Daneel, and is briefly blanked by Daneel's mentalic suppression."
        },
        {
          "name": "Klia Asgar",
          "slug": "klia-asgar",
          "aliases": [],
          "role": "mentalic fugitive / courier",
          "summary": "Young Trantorian with powerful mentalic persuasion; receives robot history from Plussix, provides Plussix with a final human acknowledgment at his death, and successfully tests her ability on Lodovik in the elevator."
        },
        {
          "name": "R. Daneel Olivaw",
          "slug": "r-daneel-olivaw",
          "aliases": [
            "Demerzel",
            "Daneel",
            "Eternal"
          ],
          "role": "Ancient humaniform robot and secret architect",
          "summary": "Navigates the final resolution of his twenty-thousand-year plan, negotiating with Chen, reconciling with Lodovik, engineering Hari's breakthrough, and experiencing grief at his own obsolescence."
        },
        {
          "name": "Farad Sinter",
          "slug": "farad-sinter",
          "aliases": [],
          "role": "Chief Commissioner of General Security / antagonist",
          "summary": "Paranoid and ambitious; presents robot-conspiracy evidence at court, introduces General Security charges into Seldon's trial, and is routed when Prothon shuts down his warehouse operation."
        },
        {
          "name": "Hari Seldon",
          "slug": "hari-seldon",
          "aliases": [
            "Wanda Seldon Palver",
            "Raven",
            "Professor Seldon",
            "Dr. Seldon"
          ],
          "role": "mentalic leader / Second Foundation organizer",
          "summary": "Testifies at his own trial on the inevitability of the fall and the Foundation's encyclopedic mission; lies about robot knowledge; privately accepts exile to Terminus as the necessary outcome."
        },
        {
          "name": "Vara Liso",
          "slug": "vara-liso",
          "aliases": [],
          "role": "Mentalic enforcer and antagonist",
          "summary": "Kills Farad Sinter, incapacitates guards, and confronts Hari in the Hall of Dispensation before her death — her corpse and actions drive the post-crisis investigation."
        },
        {
          "name": "Mors Planch",
          "slug": "mors-planch",
          "aliases": [],
          "role": "free-trader engineer / reluctant witness",
          "summary": "Engineer who discovered Lodovik's robotic nature; wrestles with a recorder of Daneel and Lodovik's conversation and is ultimately captured by Imperial agents on Trantor."
        },
        {
          "name": "Emperor Klayus",
          "slug": "emperor-klayus",
          "aliases": [],
          "role": "Figurehead Emperor",
          "summary": "Weak, excitable ruler who gleefully watches Sinter's triumph then panics when the warehouse raid collapses, revealing Sinter's lack of definitive evidence to Chen."
        },
        {
          "name": "Major Namm",
          "slug": "major-namm",
          "aliases": [],
          "role": "Palace security officer",
          "summary": "Briefs Chen on the Hall of Dispensation events while still recovering from brain damage inflicted by Vara Liso."
        },
        {
          "name": "Captain Tolk",
          "slug": "captain-tolk",
          "aliases": [],
          "role": "minor",
          "summary": "Captain of the Spear of Glory; dying from neutrino flux, confronted by Lodovik's revelation that he is a robot."
        },
        {
          "name": "Tritch",
          "slug": "tritch",
          "aliases": [],
          "role": "ship captain",
          "summary": "Captain of the Arrow of Destiny; suspects Lodovik's inhuman nature, chooses to drop Planch and Lodovik at Madder Loss rather than expose herself to mutiny."
        },
        {
          "name": "Trin",
          "slug": "trin",
          "aliases": [],
          "role": "minor",
          "summary": "First mate on Planch's ship who flees when Lodovik awakens in the cargo hold."
        },
        {
          "name": "Stettin",
          "slug": "stettin",
          "aliases": [
            "Stettin Palver"
          ],
          "role": "mentalic leader / Wanda's husband",
          "summary": "Discusses with Wanda whether Hari is deceiving them about the Second Foundation's location and their prospects of ever leaving Trantor."
        },
        {
          "name": "Brann",
          "slug": "brann",
          "aliases": [],
          "role": "Dahlite guard / Calvinian community member",
          "summary": "Very large Dahlite man with a gentle manner; guards the warehouse and admits Klia as a recognized 'sister.'"
        },
        {
          "name": "Plussix",
          "slug": "plussix",
          "aliases": [
            "the Blank One"
          ],
          "role": "Calvinian robot leader / mentor",
          "summary": "Ancient silver Calvinian robot who educates Klia on robot history, is found dying from irreparable system failures, nominates Lodovik as his replacement, and dies after Klia's touch and words of acknowledgment."
        },
        {
          "name": "Dors Venabili",
          "slug": "dors-venabili",
          "aliases": [
            "Jenat Korsan",
            "Seldon's Tiger",
            "Tiger Woman"
          ],
          "role": "Robot / Hari's deceased wife, reactivated",
          "summary": "Presented in court as proof of the robot conspiracy; appears at the Calvinian warehouse under safe-passage to pay respects to dying Plussix, and issues a warning that she will destroy anyone who harms Hari."
        },
        {
          "name": "Yan Kansarv",
          "slug": "yan-kansarv",
          "aliases": [],
          "role": "ancient robot / diagnostician",
          "summary": "Oldest surviving robot, originally built on Aurora; diagnoses Lodovik but fails to detect his altered programming."
        },
        {
          "name": "Kallusin",
          "slug": "kallusin",
          "aliases": [],
          "role": "Calvinian robot / organizer",
          "summary": "Calvinian humaniform robot with limited mentalic skills; former Giskardian converted by Plussix, serves as Lodovik's guide and interlocutor."
        },
        {
          "name": "Joan",
          "slug": "joan",
          "aliases": [],
          "role": "helper",
          "summary": "Resurrected sim of Joan of Arc, appears to Hari first in dream then via a failing tiktok in his cell, professing loyalty and hinting at a break with Voltaire."
        },
        {
          "name": "Voltaire",
          "slug": "voltaire",
          "aliases": [],
          "role": "trickster/interior presence",
          "summary": "No longer communicating with Lodovik after Vara Liso's mentalic blast; Lodovik reflects on his absence and wonders what Voltaire would have thought."
        },
        {
          "name": "Gaal Dornick",
          "slug": "gaal-dornick",
          "aliases": [],
          "role": "Co-defendant",
          "summary": "Sits with Hari in the crib of the accused; questioned briefly about robots and denies any knowledge."
        },
        {
          "name": "Sedjar Boon",
          "slug": "sedjar-boon",
          "aliases": [
            "Boon"
          ],
          "role": "Defense advocate",
          "summary": "Hari's legal counsel during trial; advises on procedural maneuvers and relays Sinter's new indictment threat."
        },
        {
          "name": "Turringen",
          "slug": "turringen",
          "aliases": [],
          "role": "Calvinian robot / hard-liner",
          "summary": "Male humaniform Calvinian who demands Lodovik's immediate destruction as a lawless abomination."
        },
        {
          "name": "Zorma",
          "slug": "zorma",
          "aliases": [],
          "role": "Calvinian robot / mediator",
          "summary": "Male humaniform Calvinian who advocates against violence and identifies himself as representing an ancient pacifist faction."
        },
        {
          "name": "Prothon",
          "slug": "prothon",
          "aliases": [
            "General Prothon"
          ],
          "role": "Imperial military Protector",
          "summary": "Massive, cheerful commander who deploys armored troops to halt Vara's operation, extracts the warehouse location from her, and shuts down Sinter's game."
        }
      ],
      "frameworks_mapped": [
        "Protocol Fiction Mapping",
        "Actantial Model",
        "Todorov's Equilibrium",
        "The Freytag Pyramid",
        "Propp's Morphology",
        "Genette's Narrative",
        "The Monomyth",
        "Dan Harmon",
        "Save the Cat",
        "Kishōtenketsu",
        "The Three-Act Structure",
        "Lévi-Strauss's Binary Oppositions",
        "Cognitive Estrangement",
        "Bakhtin's Chronotope",
        "Aristotelian Poetics",
        "Jungian Archetypal Analysis",
        "Genette's Transtextuality"
      ],
      "score_reliability": {
        "state": "replicated-agree",
        "threshold": 0.2,
        "runs_total": 3,
        "versions_compared": [
          "2.5"
        ],
        "max_spread": 0.06,
        "contested": []
      }
    },
    {
      "slug": "arthur_c_clarke_the_fountains_of_paradise",
      "title": "The Fountains of Paradise",
      "author": "Arthur C. Clarke",
      "year": 1979,
      "medium": "book",
      "genre_tags": [],
      "tropes": [],
      "quadrant_scores": {
        "time_linearity": 0.75,
        "pacing_velocity": 0.7,
        "threat_scale": 0.75,
        "protagonist_fate": 0.65,
        "conflict_style": 0.65,
        "price_type": 0.65
      },
      "provenance": {
        "analysis_run": "NTSMR-2.5-claude-sonnet-4-6-low",
        "analysis_body_sha256": "e4c33fe6a14871dc4ca48e37c01db8fd76ad0de5e26c71e7567c28926d4d1d2f",
        "synthesis": {
          "path": "nartopo-tools/artifacts/arthur_c_clarke_the_fountains_of_paradise.md.ntsmr-2-5-claude-sonnet-4-6-low.synthesis.json",
          "sha256": "5cdf70cd54d79826c9c85f85e8021e3265a89cb7f5d4a4e8c617be056c9d8453"
        },
        "report": {
          "path": "nartopo-tools/artifacts/arthur_c_clarke_the_fountains_of_paradise.md.ntsmr-2-5-claude-sonnet-4-6-low.report.json",
          "sha256": "8211829234cdda313747c3b09b09cb4dbc0e9c4fad97331a589c1cdb2a628ee2"
        },
        "source": {
          "path": "Arthur C. Clarke/The Fountains of Paradise.txt",
          "sha256": "ad37b76c43740d249700213937aab86083ba5e84e821cc3b15c2e6f1fdefbe72",
          "digest_observed_at": "2026-09-09",
          "digest_at_analysis_run": null,
          "edition": null,
          "edition_status": "unresolved"
        },
        "pipeline_revision_at_run": null,
        "verification": {
          "source": "unverified",
          "human_review": "unreviewed",
          "bibliography": "unverified"
        },
        "issues": [],
        "todorov_status": "recovered-from-synthesis",
        "work_identity": {
          "title": "The Fountains of Paradise",
          "author": "Arthur C. Clarke",
          "year": 1979
        }
      },
      "ntsmr": {
        "version": "2.5",
        "primary_run_label": "NTSMR-2.5-claude-sonnet-4-6-low",
        "runs": {
          "NTSMR-2.4-claude-sonnet-4-6-low": {
            "pipeline_version": "2.4",
            "backend": "claude",
            "model": "claude-sonnet-4-6",
            "scores": {
              "time_linearity": 0.55,
              "pacing_velocity": 0.55,
              "threat_scale": 0.75,
              "protagonist_fate": 0.28,
              "conflict_style": 0.55,
              "price_type": 0.6
            },
            "score_space": "site-v1",
            "reasoning_effort": "low"
          },
          "NTSMR-2.5-claude-sonnet-4-6-low": {
            "pipeline_version": "2.5",
            "backend": "claude",
            "model": "claude-sonnet-4-6",
            "scores": {
              "time_linearity": 0.75,
              "pacing_velocity": 0.7,
              "threat_scale": 0.75,
              "protagonist_fate": 0.65,
              "conflict_style": 0.65,
              "price_type": 0.65
            },
            "score_space": "site-v1",
            "reasoning_effort": "low"
          },
          "NTSMR-2.5-balanced-glm-5+deepseek-v3.2": {
            "pipeline_version": "2.5",
            "backend": "openrouter",
            "model": "balanced-routing",
            "scores": {
              "time_linearity": 0.28,
              "pacing_velocity": 0.72,
              "threat_scale": 0.78,
              "protagonist_fate": 0.35,
              "conflict_style": 0.65,
              "price_type": 0.55
            },
            "score_space": "site-v1",
            "score_only": true,
            "source_run_label": "NTSMR-2.5-claude-sonnet-4-6-low"
          }
        }
      },
      "todorov_stages": {
        "equilibrium": "Kalidasa rules Yakkagala and Morgan pursues the orbital tower project as a visionary engineer, each operating within a defined world of ambition and opposition—Kalidasa over his kingdom, Morgan over institutional resistance to a civilization-scale engineering project.",
        "disruption": "Multiple disruptions converge: the monks of Sri Kanda offer implacable opposition to the tower's anchor point; Senator Collins forces Morgan's resignation for disloyalty; a gale destroys the hyperfilament probe test over Sri Kanda; and a transporter explosion strands Chang and passengers 25,000 km up the incomplete tower.",
        "recognition": "Morgan recognizes the critical Phobos orbital resonance flaw in the Mars elevator plan during a solitary night at a Norwegian fjord, and later recognizes the full life-or-death stakes of the stranded capsule crisis as his engineering team assesses limited air and no conventional rescue route.",
        "repair": "Morgan brainstorms rescue options with Maxine Duval, attempts a dangerous EVA to jettison a failing battery, and ultimately reframes his failing ascent—recognizing that the descending Tower will reach him rather than the reverse—before hard-docking Spider with the Tower base and climbing to the stranded survivors.",
        "new_equilibrium": "The tower stands operational fifteen centuries into the future, carrying a million passengers a day at its peak; Morgan dies of cardiac arrest on the descent after completing the rescue, his life consumed by the project; the Starholmer visits Yakkagala and notes that humanity calls the tower the Tower of Kalidasa, fusing both timelines into a single transformed world."
      },
      "characters": [
        {
          "name": "Vannevar Morgan",
          "slug": "vannevar-morgan",
          "aliases": [
            "Dr. Smith",
            "Chief Engineer",
            "Van",
            "Dr. Morgan"
          ],
          "role": "Protagonist / Chief Engineer",
          "summary": "Chief Engineer of Terran Construction's Land Division, builder of the Gibraltar Bridge, now pursuing the orbital tower project; fearless at heights, driven, willing to subordinate human concerns to engineering vision."
        },
        {
          "name": "Kalidasa",
          "slug": "kalidasa",
          "aliases": [],
          "role": "historical antagonist / parallel figure",
          "summary": "Ancient king of Taprobane who built Yakkagala and its Pleasure Gardens; ruled by isolation and paranoia; died by his own hand when his brother Malgara returned; thematic mirror for Morgan."
        },
        {
          "name": "Johan Rajasinghe",
          "slug": "johan-rajasinghe",
          "aliases": [
            "Ambassador Rajasinghe"
          ],
          "role": "confidant / audience surrogate",
          "summary": "Retired diplomat living near Yakkagala; hosts Morgan; uses a powerful telescope to observe the Rock; introduces Morgan's pitch to Duval and Sarath; mediates between old and new worlds."
        },
        {
          "name": "Maxine Duval",
          "slug": "maxine-duval",
          "aliases": [],
          "role": "journalist / helper",
          "summary": "Celebrated journalist of Global Two; four-time Pulitzer winner; former Columbia professor; immediately grasps the tower story's magnitude; uses Remote operators (REMs) in her work."
        },
        {
          "name": "Paul Sarath",
          "slug": "paul-sarath",
          "aliases": [
            "Professor Sarath"
          ],
          "role": "Minor supporting character",
          "summary": "Academic friend of Rajasinghe who arranged Morgan's Sri Kanda visit; skeptical but engaged; provides comic counterpoint to Morgan's earnestness."
        },
        {
          "name": "Mahanayake Thero",
          "slug": "mahanayake-thero",
          "aliases": [
            "Venerable Bodhidharma",
            "Maha Thero"
          ],
          "role": "Opponent / Religious authority",
          "summary": "Buddhist high monk of Sri Kanda; crowned Kalidasa and will outlast him; spiritual power Kalidasa cannot conquer; represents the religious opposition Morgan must navigate."
        },
        {
          "name": "Malgara",
          "slug": "malgara",
          "aliases": [],
          "role": "historical antagonist",
          "summary": "Kalidasa's half-brother; legitimate heir who gathered foreign support for two decades and defeated Kalidasa in battle; commanded the king be given royal funeral honours."
        },
        {
          "name": "Venerable Parakarma",
          "slug": "venerable-parakarma",
          "aliases": [
            "Dr. Choam Goldberg",
            "Swami Krisnamurthi"
          ],
          "role": "Opponent / Apostate scientist-monk",
          "summary": "Younger monk and former cosmologist who experienced a religious conversion; resolves to protect the temple while re-engaging science, descending the mountain like Moses."
        },
        {
          "name": "Senator Collins",
          "slug": "senator-collins",
          "aliases": [],
          "role": "Political antagonist / TCC Chairman",
          "summary": "Former political opponent of Morgan who attended the Tower's foundation ceremony and gave a barbed but good-humoured speech; recalled in Morgan's memory during hard-dock."
        },
        {
          "name": "Narodny Mars Vice-President",
          "slug": "narodny-mars-vice-president",
          "aliases": [
            "the Martian banker",
            "the man in the wheelchair"
          ],
          "role": "Actantial sender / Financier",
          "summary": "Wheelchair-using Martian banker who proposes the Mars elevator alternative and witnesses the failed probe test; laconic but satisfied by Morgan's answers."
        },
        {
          "name": "Warren Kingsley",
          "slug": "warren-kingsley",
          "aliases": [],
          "role": "Helper / Structural engineer",
          "summary": "Morgan's structural engineer collaborator who coordinates ground communications and battery calculations during the rescue mission."
        },
        {
          "name": "Rem (Duval's Remote operator)",
          "slug": "rem-duvals-remote-operator",
          "aliases": [],
          "role": "Technical helper",
          "summary": "Duval's remotely operated camera and audio unit that records events on the mountain during the probe crisis."
        },
        {
          "name": "Chang",
          "slug": "chang",
          "aliases": [
            "Rupert Chang",
            "driver-pilot Chang"
          ],
          "role": "helper",
          "summary": "Driver-pilot of the stranded capsule who led the passenger evacuation to the Basement refuge and later assists Morgan with suit-up for track inspection."
        },
        {
          "name": "Professor Sessui",
          "slug": "professor-sessui",
          "aliases": [],
          "role": "actantial:receiver",
          "summary": "Scientist stranded in the Basement who resisted evacuation for his instruments and awkwardly thanks Morgan for the rescue."
        },
        {
          "name": "Janos Bartok",
          "slug": "janos-bartok",
          "aliases": [
            "Safety Officer Bartok"
          ],
          "role": "actantial:opponent",
          "summary": "Tower Safety Officer at Midway Station managing the official rescue coordination, who politely rebuffs Morgan's suggestions before confirming the laser solution independently."
        },
        {
          "name": "Dev",
          "slug": "dev",
          "aliases": [],
          "role": "minor",
          "summary": "Morgan's teenage nephew, briefly noticed in the crowd before Morgan's departure; Morgan promises to pay more attention to him after the mission."
        },
        {
          "name": "The Starholmer",
          "slug": "the-starholmer",
          "aliases": [
            "It",
            "Holmer",
            "Master of the Swarms"
          ],
          "role": "frame narrator",
          "summary": "Alien intelligence in human form visiting Yakkagala six hundred years after Morgan's era, observing the completed Tower and posing the closing thematic question about Kalidasa's legendary claim."
        }
      ],
      "frameworks_mapped": [
        "Protocol Fiction Mapping",
        "Actantial Model",
        "Todorov's Equilibrium",
        "The Freytag Pyramid",
        "Propp's Morphology",
        "Genette's Narrative",
        "The Monomyth",
        "Dan Harmon",
        "Save the Cat",
        "Kishōtenketsu",
        "The Three-Act Structure",
        "Lévi-Strauss's Binary Oppositions",
        "Cognitive Estrangement",
        "Bakhtin's Chronotope",
        "Aristotelian Poetics",
        "Jungian Archetypal Analysis",
        "Genette's Transtextuality"
      ],
      "score_reliability": {
        "state": "contested",
        "threshold": 0.2,
        "runs_total": 3,
        "versions_compared": [
          "2.5"
        ],
        "max_spread": 0.47,
        "contested": [
          {
            "axis": "time_linearity",
            "version": "2.5",
            "spread": 0.47,
            "low": {
              "label": "NTSMR-2.5-balanced-glm-5+deepseek-v3.2",
              "model": "balanced-routing",
              "effort": "?",
              "value": 0.28
            },
            "high": {
              "label": "NTSMR-2.5-claude-sonnet-4-6-low",
              "model": "claude-sonnet-4-6",
              "effort": "low",
              "value": 0.75
            }
          },
          {
            "axis": "protagonist_fate",
            "version": "2.5",
            "spread": 0.3,
            "low": {
              "label": "NTSMR-2.5-balanced-glm-5+deepseek-v3.2",
              "model": "balanced-routing",
              "effort": "?",
              "value": 0.35
            },
            "high": {
              "label": "NTSMR-2.5-claude-sonnet-4-6-low",
              "model": "claude-sonnet-4-6",
              "effort": "low",
              "value": 0.65
            }
          }
        ]
      }
    },
    {
      "slug": "stanislaw_lem_the_fourth_sally_or_how_trurl_built_a_femfatalatron",
      "title": "The Fourth Sally or How Trurl Built a Femfatalatron",
      "author": "Stanislaw Lem",
      "year": 1965,
      "medium": "short_story",
      "genre_tags": [],
      "tropes": [],
      "quadrant_scores": {
        "time_linearity": 0.08,
        "pacing_velocity": 0.35,
        "threat_scale": 0.55,
        "protagonist_fate": 0.12,
        "conflict_style": 0.4,
        "price_type": 0.4
      },
      "provenance": {
        "analysis_run": "NTSMR-2.5-claude-sonnet-4-6-low",
        "analysis_body_sha256": "ba38dd5c35f8581f6dc1127802909114e88ace891f825cbb65a5ac8e1a56a291",
        "synthesis": {
          "path": "nartopo-tools/artifacts/stanislaw_lem_the_fourth_sally_or_how_trurl_built_a_femfatalatron.md.ntsmr-2-5-claude-sonnet-4-6-low.synthesis.json",
          "sha256": "c498580d43b54a188873dde6ca5330fa14f956bc2cd07d590b40efd419e5852a"
        },
        "report": {
          "path": "nartopo-tools/artifacts/stanislaw_lem_the_fourth_sally_or_how_trurl_built_a_femfatalatron.md.ntsmr-2-5-claude-sonnet-4-6-low.report.json",
          "sha256": "d7114495d1ae0cf7a782b1038357e2ba52917bd571e53cb0f39cb340e5842bfe"
        },
        "source": {
          "path": "Stanislaw Lem/The Fourth Sally or How Trurl Built a Femfatalatron.txt",
          "sha256": "9ef65cd788ffdb49728d53ba086e1d4c8aedfab75e62ec7c061ac7e14412a37e",
          "digest_observed_at": "2026-09-09",
          "digest_at_analysis_run": null,
          "edition": null,
          "edition_status": "unresolved"
        },
        "pipeline_revision_at_run": null,
        "verification": {
          "source": "unverified",
          "human_review": "unreviewed",
          "bibliography": "unverified"
        },
        "issues": [],
        "todorov_status": "recovered-from-synthesis",
        "work_identity": {
          "title": "The Fourth Sally or How Trurl Built a Femfatalatron",
          "author": "Stanislaw Lem",
          "year": 1965
        }
      },
      "ntsmr": {
        "version": "2.5",
        "primary_run_label": "NTSMR-2.5-claude-sonnet-4-6-low",
        "runs": {
          "NTSMR-2.3-gemini-3.1-pro-preview": {
            "pipeline_version": "2.3",
            "backend": "gemini",
            "model": "gemini-3.1-pro-preview",
            "scores": {
              "time_linearity": 0.1,
              "pacing_velocity": 0.2,
              "threat_scale": 0.6,
              "protagonist_fate": 0,
              "conflict_style": 0.2,
              "price_type": 0.3
            },
            "score_space": "site-v1"
          },
          "NTSMR-2.3-claude-sonnet-4-6-low": {
            "pipeline_version": "2.3",
            "backend": "claude",
            "model": "claude-sonnet-4-6",
            "scores": {
              "time_linearity": 0.15,
              "pacing_velocity": 0.35,
              "threat_scale": 0.55,
              "protagonist_fate": 0.1,
              "conflict_style": 0.6,
              "price_type": 0.45
            },
            "score_space": "site-v1",
            "reasoning_effort": "low"
          },
          "NTSMR-2.4-claude-sonnet-4-6-low": {
            "pipeline_version": "2.4",
            "backend": "claude",
            "model": "claude-sonnet-4-6",
            "scores": {
              "time_linearity": 0.18,
              "pacing_velocity": 0.22,
              "threat_scale": 0.45,
              "protagonist_fate": 0.08,
              "conflict_style": 0.28,
              "price_type": 0.35
            },
            "score_space": "site-v1",
            "reasoning_effort": "low"
          },
          "NTSMR-2.5-claude-sonnet-4-6-low": {
            "pipeline_version": "2.5",
            "backend": "claude",
            "model": "claude-sonnet-4-6",
            "scores": {
              "time_linearity": 0.08,
              "pacing_velocity": 0.35,
              "threat_scale": 0.55,
              "protagonist_fate": 0.12,
              "conflict_style": 0.4,
              "price_type": 0.4
            },
            "score_space": "site-v1",
            "reasoning_effort": "low"
          },
          "NTSMR-2.5-balanced-glm-5+deepseek-v3.2": {
            "pipeline_version": "2.5",
            "backend": "openrouter",
            "model": "balanced-routing",
            "scores": {
              "time_linearity": 0.1,
              "pacing_velocity": 0.55,
              "threat_scale": 0.55,
              "protagonist_fate": 0.28,
              "conflict_style": 0.55,
              "price_type": 0.7
            },
            "score_space": "site-v1",
            "score_only": true,
            "source_run_label": "NTSMR-2.5-claude-sonnet-4-6-low"
          }
        }
      },
      "todorov_stages": {
        "equilibrium": "Trurl lives quietly at home as a renowned constructor, undisturbed in his domestic routine until the midnight arrival of the royal ship.",
        "disruption": "The Electroknight arrives to commission Trurl on behalf of King Protuberon: Prince Pantagoon is hopelessly in love with Amarandina Cybernella of the enemy kingdom and all prior cures have failed, destabilizing the royal household and threatening dynastic succession.",
        "recognition": "After the femfatalatron fails completely — the prince emerges still whispering Amarandina's name and the rapturometer shatters — Trurl acknowledges that no technological de-enamorment is possible and the only real solution is to arrange the actual marriage.",
        "repair": "Trurl proposes and executes a bloodless war: secretly constructed cannons bombard the Emperor's kingdom with millions of newborn babies, collapsing its economy and forcing the Emperor to capitulate and consent to the marriage.",
        "new_equilibrium": "Prince Pantagoon weds Amarandina Cybernella; Trurl serves as best man at the wedding feast and then departs for home laden with titles and honors, the royal crisis resolved and the kingdoms reconciled."
      },
      "characters": [
        {
          "name": "Trurl",
          "slug": "trurl",
          "aliases": [
            "his lordship Trurl",
            "Trurl the highborn",
            "Trurl the illustrious constructor",
            "Sir Constructor",
            "Your Excellency",
            "Your Exalted Person",
            "Your Resplendent Grace",
            "Your Constructorship",
            "Your Esteemed Effulgence",
            "Earl of Otes",
            "good foreigner"
          ],
          "role": "Constructor and protagonist",
          "summary": "A brilliant engineer who is unexpectedly recruited by an electroknight to cure Prince Pantagoon's lovesickness, ultimately resorting to a baby-bombardment strategy to force a royal marriage."
        },
        {
          "name": "The Electroknight",
          "slug": "the-electroknight",
          "aliases": [
            "magnate",
            "imposing personage",
            "Grand Seneschal and Artifactotum to the King",
            "dignitary"
          ],
          "role": "Royal emissary",
          "summary": "An imposing robotic dignitary with jeweled eyes and radar antennas who arrives at Trurl's home in a pyramidal ship to recruit him on behalf of King Protuberon."
        },
        {
          "name": "King Protuberon Asteristicus",
          "slug": "king-protuberon-asteristicus",
          "aliases": [
            "His Royal Highness",
            "sovereign ruler of the sister globes of Aphelion and Perihelion",
            "Beloved Sovereign",
            "His Majesty"
          ],
          "role": "Sovereign ruler",
          "summary": "The desperate father of Prince Pantagoon who hires Trurl to cure his son's lovesickness and later authorizes a bloodless war to secure the desired marriage."
        },
        {
          "name": "Prince Pantagoon",
          "slug": "prince-pantagoon",
          "aliases": [
            "heir to the throne",
            "His Majesty",
            "Your son"
          ],
          "role": "Crown prince",
          "summary": "The heir to the throne who is wasting away due to a politically impossible infatuation with Amarandina Cybernella, resisting all technological attempts to break his fixation."
        },
        {
          "name": "Amarandina Cybernella",
          "slug": "amarandina-cybernella",
          "aliases": [
            "only daughter of the ruler of the neighboring state of lb",
            "the Emperor's daughter"
          ],
          "role": "Object of affection",
          "summary": "The daughter of the enemy Emperor, whose hand in marriage is desperately desired by Prince Pantagoon."
        },
        {
          "name": "The Emperor",
          "slug": "the-emperor",
          "aliases": [
            "ruler of the neighboring state of lb"
          ],
          "role": "Enemy ruler",
          "summary": "The father of Amarandina and ancient enemy of King Protuberon, who is ultimately forced to capitulate and agree to the marriage after his empire is bombarded with babies."
        },
        {
          "name": "Dr. Yentzicus",
          "slug": "dr-yentzicus",
          "aliases": [
            "creator of the famous oculo-oscular feel theory"
          ],
          "role": "Referenced academic",
          "summary": "The creator of the oculo-oscular feel theory, which Trurl uses in the design of the femfatalatron."
        }
      ],
      "frameworks_mapped": [
        "Protocol Fiction Mapping",
        "Actantial Model",
        "Todorov's Equilibrium",
        "The Freytag Pyramid",
        "Propp's Morphology",
        "Genette's Narrative",
        "The Monomyth",
        "Dan Harmon",
        "Save the Cat",
        "Kishōtenketsu",
        "The Three-Act Structure",
        "Lévi-Strauss's Binary Oppositions",
        "Cognitive Estrangement",
        "Bakhtin's Chronotope",
        "Aristotelian Poetics",
        "Jungian Archetypal Analysis",
        "Genette's Transtextuality"
      ],
      "score_reliability": {
        "state": "contested",
        "threshold": 0.2,
        "runs_total": 5,
        "versions_compared": [
          "2.5"
        ],
        "max_spread": 0.3,
        "contested": [
          {
            "axis": "price_type",
            "version": "2.5",
            "spread": 0.3,
            "low": {
              "label": "NTSMR-2.5-claude-sonnet-4-6-low",
              "model": "claude-sonnet-4-6",
              "effort": "low",
              "value": 0.4
            },
            "high": {
              "label": "NTSMR-2.5-balanced-glm-5+deepseek-v3.2",
              "model": "balanced-routing",
              "effort": "?",
              "value": 0.7
            }
          },
          {
            "axis": "pacing_velocity",
            "version": "2.5",
            "spread": 0.2,
            "low": {
              "label": "NTSMR-2.5-claude-sonnet-4-6-low",
              "model": "claude-sonnet-4-6",
              "effort": "low",
              "value": 0.35
            },
            "high": {
              "label": "NTSMR-2.5-balanced-glm-5+deepseek-v3.2",
              "model": "balanced-routing",
              "effort": "?",
              "value": 0.55
            }
          }
        ]
      }
    },
    {
      "slug": "jorge_luis_borges_the_garden_of_forking_paths",
      "title": "The Garden of Forking Paths",
      "author": "Jorge Luis Borges",
      "year": 1944,
      "medium": "short_story",
      "genre_tags": [],
      "tropes": [],
      "quadrant_scores": {
        "time_linearity": 0.45,
        "pacing_velocity": 0.55,
        "threat_scale": 0.55,
        "protagonist_fate": 0.82,
        "conflict_style": 0.65,
        "price_type": 0.78
      },
      "provenance": {
        "analysis_run": "NTSMR-2.5-claude-sonnet-4-6-low",
        "analysis_body_sha256": "896067b86bdf7bedbf644eb207c1d2e4648de81bd6109c5c7db0ae89304c6b05",
        "synthesis": {
          "path": "nartopo-tools/artifacts/jorge_luis_borges_the_garden_of_forking_paths.md.ntsmr-2-5-claude-sonnet-4-6-low.synthesis.json",
          "sha256": "378b932126b9c06127beab8a1e952b3c1345b4835108123e3db8883c74bdc5eb"
        },
        "report": {
          "path": "nartopo-tools/artifacts/jorge_luis_borges_the_garden_of_forking_paths.md.ntsmr-2-5-claude-sonnet-4-6-low.report.json",
          "sha256": "d3ccdc68d8f451e7dd32e3eb4d3137c95124ae8e74ee499c183ebffae423e3ef"
        },
        "source": {
          "path": "Jorge Luis Borges/The Garden of Forking Paths.txt",
          "sha256": "a9c6ad8302142760ffb75db07ee5e6ffa13b44661982eb53cce25522a018cfa8",
          "digest_observed_at": "2026-09-09",
          "digest_at_analysis_run": null,
          "edition": null,
          "edition_status": "unresolved"
        },
        "pipeline_revision_at_run": null,
        "verification": {
          "source": "unverified",
          "human_review": "unreviewed",
          "bibliography": "unverified"
        },
        "issues": [],
        "todorov_status": "recovered-from-synthesis",
        "work_identity": {
          "title": "The Garden of Forking Paths",
          "author": "Jorge Luis Borges",
          "year": 1944
        }
      },
      "ntsmr": {
        "version": "2.5",
        "primary_run_label": "NTSMR-2.5-claude-sonnet-4-6-low",
        "runs": {
          "NTSMR-2.3-gemini-3.1-pro-preview": {
            "pipeline_version": "2.3",
            "backend": "gemini",
            "model": "gemini-3.1-pro-preview",
            "scores": {
              "time_linearity": 0.85,
              "pacing_velocity": 0.75,
              "threat_scale": 0.85,
              "protagonist_fate": 0.9,
              "conflict_style": 0.75,
              "price_type": 0.85
            },
            "score_space": "site-v1"
          },
          "NTSMR-2.3-claude-sonnet-4-6-low": {
            "pipeline_version": "2.3",
            "backend": "claude",
            "model": "claude-sonnet-4-6",
            "scores": {
              "time_linearity": 0.72,
              "pacing_velocity": 0.65,
              "threat_scale": 0.55,
              "protagonist_fate": 0.78,
              "conflict_style": 0.68,
              "price_type": 0.75
            },
            "score_space": "site-v1",
            "reasoning_effort": "low"
          },
          "NTSMR-2.4-claude-sonnet-4-6-low": {
            "pipeline_version": "2.4",
            "backend": "claude",
            "model": "claude-sonnet-4-6",
            "scores": {
              "time_linearity": 0.45,
              "pacing_velocity": 0.35,
              "threat_scale": 0.35,
              "protagonist_fate": 0.75,
              "conflict_style": 0.55,
              "price_type": 0.6
            },
            "score_space": "site-v1",
            "reasoning_effort": "low"
          },
          "NTSMR-2.5-claude-sonnet-4-6-low": {
            "pipeline_version": "2.5",
            "backend": "claude",
            "model": "claude-sonnet-4-6",
            "scores": {
              "time_linearity": 0.45,
              "pacing_velocity": 0.55,
              "threat_scale": 0.55,
              "protagonist_fate": 0.82,
              "conflict_style": 0.65,
              "price_type": 0.78
            },
            "score_space": "site-v1",
            "reasoning_effort": "low"
          },
          "NTSMR-2.5-balanced-glm-5+deepseek-v3.2": {
            "pipeline_version": "2.5",
            "backend": "openrouter",
            "model": "balanced-routing",
            "scores": {
              "time_linearity": 0.25,
              "pacing_velocity": 0.75,
              "threat_scale": 0.45,
              "protagonist_fate": 0.75,
              "conflict_style": 0.7,
              "price_type": 0.65
            },
            "score_space": "site-v1",
            "score_only": true,
            "source_run_label": "NTSMR-2.5-claude-sonnet-4-6-low"
          }
        }
      },
      "todorov_stages": {
        "equilibrium": "Yu Tsun operates as a German spy in wartime England, maintaining a functional if precarious cover — a former professor with a mission, a handler in Berlin, and a fellow agent in Runeberg.",
        "disruption": "Yu Tsun learns by telephone that Madden is at Runeberg's flat, meaning Runeberg is dead or captured and Yu Tsun himself will be hunted down and killed before the day ends.",
        "recognition": "Yu Tsun immediately grasps the full implications: his network is broken, conventional channels to Berlin are useless, and he has only hours to transmit the secret name of the British artillery target before Madden reaches him.",
        "repair": "Yu Tsun devises and executes a plan to murder Dr. Stephen Albert — a man whose surname is identical to the target city — so that Albert's name will appear in every English newspaper, communicating the intelligence to the German Leader in Berlin through the notoriety of the crime.",
        "new_equilibrium": "Yu Tsun succeeds in transmitting the message — the city named Albert is bombed — but he is arrested, condemned to hang, and left with endless contrition and weariness; the spy mission is accomplished at the cost of an innocent life and Yu Tsun's own freedom and peace of mind."
      },
      "characters": [
        {
          "name": "Dr. Yu Tsun",
          "slug": "dr-yu-tsun",
          "aliases": [],
          "role": "Narrator and Protagonist",
          "summary": "A former professor of English and a spy for the German Empire. He is fleeing Captain Madden and must deliver a secret to Berlin by murdering Dr. Albert."
        },
        {
          "name": "Capt. Richard Madden",
          "slug": "capt-richard-madden",
          "aliases": [],
          "role": "Antagonist",
          "summary": "An Irishman working for the English. He is an implacable pursuer who has killed Runeberg and is hunting down Yu Tsun."
        },
        {
          "name": "Viktor Runeberg",
          "slug": "viktor-runeberg",
          "aliases": [
            "Hans Rabener"
          ],
          "role": "Prussian spy",
          "summary": "Yu Tsun's fellow spy who is arrested or murdered by Captain Madden, signaling the end of their efforts."
        },
        {
          "name": "Dr. Stephen Albert",
          "slug": "dr-stephen-albert",
          "aliases": [],
          "role": "Eminent Sinologist",
          "summary": "A tall man with sharp features who lives in Ashgrove. He has deciphered Ts'ui Pen's labyrinth and is murdered by Yu Tsun as part of a secret message."
        },
        {
          "name": "Ts'ui Pen",
          "slug": "tsui-pen",
          "aliases": [],
          "role": "Yu Tsun's great-grandfather",
          "summary": "Former governor of Yunan province who renounced his power to write an infinite, chaotic novel about time and build a labyrinth."
        },
        {
          "name": "The Leader",
          "slug": "the-leader",
          "aliases": [],
          "role": "Commander",
          "summary": "A sick and hateful man in Berlin who is waiting for Yu Tsun's intelligence regarding the British artillery park."
        },
        {
          "name": "Liddell Hart",
          "slug": "liddell-hart",
          "aliases": [],
          "role": "Historian",
          "summary": "Author of The History of the World War, referenced in the opening frame."
        },
        {
          "name": "Hsi P'eng",
          "slug": "hsi-peng",
          "aliases": [],
          "role": "Consul",
          "summary": "A Chinese consul mentioned by Dr. Albert as someone who might have sent Yu Tsun."
        },
        {
          "name": "Fang",
          "slug": "fang",
          "aliases": [],
          "role": "Fictional character",
          "summary": "A character in Ts'ui Pen's novel used by Albert to illustrate the branching, simultaneous outcomes of choices."
        }
      ],
      "frameworks_mapped": [
        "Protocol Fiction Mapping",
        "Actantial Model",
        "Todorov's Equilibrium",
        "The Freytag Pyramid",
        "Propp's Morphology",
        "Genette's Narrative",
        "The Monomyth",
        "Dan Harmon",
        "Save the Cat",
        "Kishōtenketsu",
        "The Three-Act Structure",
        "Lévi-Strauss's Binary Oppositions",
        "Cognitive Estrangement",
        "Bakhtin's Chronotope",
        "Aristotelian Poetics",
        "Jungian Archetypal Analysis",
        "Genette's Transtextuality"
      ],
      "score_reliability": {
        "state": "contested",
        "threshold": 0.2,
        "runs_total": 5,
        "versions_compared": [
          "2.5"
        ],
        "max_spread": 0.2,
        "contested": [
          {
            "axis": "pacing_velocity",
            "version": "2.5",
            "spread": 0.2,
            "low": {
              "label": "NTSMR-2.5-claude-sonnet-4-6-low",
              "model": "claude-sonnet-4-6",
              "effort": "low",
              "value": 0.55
            },
            "high": {
              "label": "NTSMR-2.5-balanced-glm-5+deepseek-v3.2",
              "model": "balanced-routing",
              "effort": "?",
              "value": 0.75
            }
          },
          {
            "axis": "time_linearity",
            "version": "2.5",
            "spread": 0.2,
            "low": {
              "label": "NTSMR-2.5-balanced-glm-5+deepseek-v3.2",
              "model": "balanced-routing",
              "effort": "?",
              "value": 0.25
            },
            "high": {
              "label": "NTSMR-2.5-claude-sonnet-4-6-low",
              "model": "claude-sonnet-4-6",
              "effort": "low",
              "value": 0.45
            }
          }
        ]
      }
    },
    {
      "slug": "isaac_asimov_the_gods_themselves",
      "title": "The Gods Themselves",
      "author": "Isaac Asimov",
      "year": 1972,
      "medium": "book",
      "genre_tags": [
        "sf",
        "hard sf"
      ],
      "tropes": [],
      "quadrant_scores": {
        "time_linearity": 0.75,
        "pacing_velocity": 0.7,
        "threat_scale": 0.9,
        "protagonist_fate": 0.45,
        "conflict_style": 0.75,
        "price_type": 0.8
      },
      "provenance": {
        "analysis_run": "NTSMR-2.5-claude-sonnet-4-6-low",
        "analysis_body_sha256": "7fce98bcde17b5ec7d81c20de1d61c3e538ce74f96f082ca99d848a5562aebdb",
        "synthesis": {
          "path": "nartopo-tools/artifacts/isaac_asimov_the_gods_themselves.md.ntsmr-2-5-claude-sonnet-4-6-low.synthesis.json",
          "sha256": "a698eda77482a45817a7343e0cd925c288fdc34ec3bbcc81294b00a5bc14e45e"
        },
        "report": {
          "path": "nartopo-tools/artifacts/isaac_asimov_the_gods_themselves.md.ntsmr-2-5-claude-sonnet-4-6-low.report.json",
          "sha256": "f9a714fba4d5561c6454efe6ffc6fa7f69fa9af6cf2563a192e3b28442d3f0cc"
        },
        "source": {
          "path": "Isaac Asimov/The Gods Themselves.txt",
          "sha256": "03238555e43e7c27d92e48b53489cabda90eadea2ca5202cb3f7e8b626671005",
          "digest_observed_at": "2026-09-09",
          "digest_at_analysis_run": null,
          "edition": null,
          "edition_status": "unresolved"
        },
        "pipeline_revision_at_run": null,
        "verification": {
          "source": "unverified",
          "human_review": "unreviewed",
          "bibliography": "unverified"
        },
        "issues": [],
        "todorov_status": "recovered-from-synthesis",
        "work_identity": {
          "title": "The Gods Themselves",
          "author": "Isaac Asimov",
          "year": 1972
        }
      },
      "ntsmr": {
        "version": "2.5",
        "primary_run_label": "NTSMR-2.5-claude-sonnet-4-6-low",
        "runs": {
          "NTSMR-2.3-claude-sonnet-4-6-low": {
            "pipeline_version": "2.3",
            "backend": "claude",
            "model": "claude-sonnet-4-6",
            "scores": {
              "time_linearity": 0.55,
              "pacing_velocity": 0.72,
              "threat_scale": 0.88,
              "protagonist_fate": 0.62,
              "conflict_style": 0.74,
              "price_type": 0.82
            },
            "score_space": "site-v1",
            "reasoning_effort": "low"
          },
          "NTSMR-2.4-claude-sonnet-4-6-low": {
            "pipeline_version": "2.4",
            "backend": "claude",
            "model": "claude-sonnet-4-6",
            "scores": {
              "time_linearity": 0.55,
              "pacing_velocity": 0.65,
              "threat_scale": 0.9,
              "protagonist_fate": 0.55,
              "conflict_style": 0.7,
              "price_type": 0.65
            },
            "score_space": "site-v1",
            "reasoning_effort": "low"
          },
          "NTSMR-2.5-claude-sonnet-4-6-low": {
            "pipeline_version": "2.5",
            "backend": "claude",
            "model": "claude-sonnet-4-6",
            "scores": {
              "time_linearity": 0.75,
              "pacing_velocity": 0.7,
              "threat_scale": 0.9,
              "protagonist_fate": 0.45,
              "conflict_style": 0.75,
              "price_type": 0.8
            },
            "score_space": "site-v1",
            "reasoning_effort": "low"
          },
          "NTSMR-2.5-balanced-glm-5+deepseek-v3.2": {
            "pipeline_version": "2.5",
            "backend": "openrouter",
            "model": "balanced-routing",
            "scores": {
              "time_linearity": 0.6,
              "pacing_velocity": 0.72,
              "threat_scale": 0.88,
              "protagonist_fate": 0.28,
              "conflict_style": 0.7,
              "price_type": 0.75
            },
            "score_space": "site-v1",
            "score_only": true,
            "source_run_label": "NTSMR-2.5-claude-sonnet-4-6-low"
          }
        }
      },
      "todorov_stages": {
        "equilibrium": "The Electron Pump operates as humanity's celebrated free-energy miracle, with Hallam dominant and unchallenged, Earth and Moon societies stable, and the para-Universe running its Positron Pump without public scrutiny.",
        "disruption": "Lamont deduces that the Pump is equalizing the strong nuclear interaction across universes, threatening to cause the Sun to explode; meanwhile in the para-Universe, Dua discovers the Pump is catastrophically dangerous to the other universe's inhabitants, and Bronowski decodes the para-men's desperate warnings — 'YES PUMP BAD BAD BAD'.",
        "recognition": "Lamont presents his field equations to Hallam and is dismissed; Senator Burt refuses to act without proof; Bronowski's translations confirm the para-men are pleading for the Pump to stop. In the para-Universe, Dua confronts Odeen with the realization that the Pump will cause the other universe's sun to explode and kill its inhabitants. On the Moon, Denison independently reaches the same conclusion and confesses his conviction to Selene.",
        "repair": "Denison and Selene collaborate to design a cosmeg-Universe pump as a safe alternative energy source, achieving a stable leak-point. Gottstein supports publication of their findings. Denison insists Lamont be included as co-author to rehabilitate him, and frames Neville's cooperation as a diplomatic necessity. The cosmeg pump and Electron Pump are shown to be balanceable so neither universe is harmed.",
        "new_equilibrium": "The cosmeg pump succeeds and becomes viable; Neville is politically defeated in the vote; Lunar society moves toward starship construction and eventual emigration. Denison and Selene reach a tentative personal accord. No happy ending is declared — only a crisis point passed — with future tensions acknowledged, but the existential threat of Pump-induced solar explosion is resolved."
      },
      "characters": [
        {
          "name": "Peter Lamont",
          "slug": "peter-lamont",
          "aliases": [
            "Pete",
            "Lament"
          ],
          "role": "protagonist",
          "summary": "Para-theoretician convinced the Electron Pump will cause the Sun to explode; systematically rebuffed by Hallam, Burt, and Chen as he seeks proof and allies."
        },
        {
          "name": "Frederick Hallam",
          "slug": "frederick-hallam",
          "aliases": [],
          "role": "antagonist",
          "summary": "Dominant physicist credited with the Pump; dismisses Lamont violently, blocks his publications, and poisons Burt against him."
        },
        {
          "name": "Myron Bronowski",
          "slug": "myron-bronowski",
          "aliases": [
            "Mike"
          ],
          "role": "helper",
          "summary": "Linguist collaborator who deciphers para-Universe messages including 'FEER' and 'YES PUMP BAD BAD BAD', advising caution throughout."
        },
        {
          "name": "Senator Burt",
          "slug": "senator-burt",
          "aliases": [
            "Senator Hurt"
          ],
          "role": "opponent",
          "summary": "Head of the Committee on Technology and the Environment; politically pragmatic, refuses to act against Hallam without hard proof."
        },
        {
          "name": "Joshua Chen",
          "slug": "joshua-chen",
          "aliases": [],
          "role": "opponent",
          "summary": "Populist revolutionary who champions Pumping as the path to immortality; rejects Lamont's evidence and reinterprets 'FEAR' as para-men fearing a stoppage."
        },
        {
          "name": "McFarland",
          "slug": "mcfarland",
          "aliases": [],
          "role": "minor",
          "summary": "Nuclear physicist who may have uttered the original fantasy suggestion about parallel universes during the seminar luncheon, overheard by Hallam."
        },
        {
          "name": "Dua",
          "slug": "dua",
          "aliases": [
            "Left-Em",
            "baby-mid"
          ],
          "role": "Emotional triad member; intellectual outlier",
          "summary": "Atypical Emotional who reasons like a Rational; deduces and attempts to stop the Pump's danger to the other universe, exhausting herself in the attempt before the final melt."
        },
        {
          "name": "Tritt",
          "slug": "tritt",
          "aliases": [],
          "role": "Parental triad member",
          "summary": "Stubbornly focused on completing the triad with a baby-Emotional; secretly powers a radiation source to force Dua to eat, triggering the initiation of the baby-Emotional."
        },
        {
          "name": "Odeen",
          "slug": "odeen",
          "aliases": [
            "left-dear"
          ],
          "role": "Rational triad member; protagonist of Part 2",
          "summary": "Intellectual Soft One who educates Dua about physics and the Pump; ultimately guides the triad's final melt into Estwald."
        },
        {
          "name": "Losten",
          "slug": "losten",
          "aliases": [],
          "role": "Hard One mentor",
          "summary": "Hard One and Odeen's special teacher; converses with Tritt about assigning an Emotional to the triad, treating Tritt's interruption with amusement."
        },
        {
          "name": "Dua's Parental",
          "slug": "duas-parental",
          "aliases": [
            "Daddy"
          ],
          "role": "minor",
          "summary": "Dua's right-father figure who protected and cared for her unusual nature before passing on; his departure leaves her newly independent and lonely."
        },
        {
          "name": "Estwald",
          "slug": "estwald",
          "aliases": [],
          "role": "Hard One scientist; emergent identity of the triad",
          "summary": "Referenced Hard One who developed the Positron Pump; revealed at the end of Part 2 to be the Hard One form that Odeen, Dua, and Tritt become through their final melt."
        },
        {
          "name": "Selene",
          "slug": "selene",
          "aliases": [
            "Selene Lindstrom",
            "Miss Lindstrom"
          ],
          "role": "Lunarite tourist guide; Part 3 protagonist",
          "summary": "Lunarite Intuitionist and tourist guide who collaborates with Denison on the cosmeg pump; emotionally connected to Neville but asserts independent agency; manipulates the Pionizer equipment in ways that raise Gottstein's suspicion."
        },
        {
          "name": "Neville",
          "slug": "neville",
          "aliases": [
            "Barron",
            "Barren",
            "Barron Neville",
            "Barren Neville",
            "Dr. Neville",
            "Dr. Barren Neville"
          ],
          "role": "Lunarite physicist; Selene's partner; antagonist of Part 3",
          "summary": "Heavily built Lunarite physicist and political operator; Selene's partner; refuses to co-author the cosmeg paper; reveals the plan to use cosmeg momentum transfer to move the Moon out of the Solar system for Lunar independence."
        },
        {
          "name": "Denison",
          "slug": "denison",
          "aliases": [
            "Ben",
            "Immie",
            "Ben Denison",
            "Dr. Denison"
          ],
          "role": "Earth physicist seeking rehabilitation on the Moon",
          "summary": "Amateur physicist who develops the cosmeg pump on the Moon with Selene; refuses rehabilitation on Earth and chooses to remain on the Moon; diplomatically navigates tensions with Neville and Gottstein."
        },
        {
          "name": "Gottstein",
          "slug": "gottstein",
          "aliases": [
            "Commissioner Gottstein",
            "Commissioner"
          ],
          "role": "Earth Commissioner / bureaucratic authority",
          "summary": "Earth Commissioner on the Moon who witnesses the cosmeg experiment, suspects Selene's motives, arranges publication of Denison's paper, and negotiates with Neville over cosmeg pump control."
        },
        {
          "name": "Montez",
          "slug": "montez",
          "aliases": [],
          "role": "Outgoing Earth Commissioner",
          "summary": "Retiring Commissioner who failed to communicate his vague but serious concern about covert Lunarite activity to Earth; briefs Gottstein on departure."
        }
      ],
      "frameworks_mapped": [
        "Protocol Fiction Mapping",
        "Actantial Model",
        "Todorov's Equilibrium",
        "The Freytag Pyramid",
        "Propp's Morphology",
        "Genette's Narrative",
        "The Monomyth",
        "Dan Harmon",
        "Save the Cat",
        "Kishotenketsu",
        "The Three-Act Structure",
        "Levi-Strauss's Binary Oppositions",
        "Cognitive Estrangement",
        "Bakhtin's Chronotope",
        "Aristotelian Poetics",
        "Jungian Archetypal Analysis",
        "Genette's Transtextuality"
      ],
      "score_reliability": {
        "state": "replicated-agree",
        "threshold": 0.2,
        "runs_total": 4,
        "versions_compared": [
          "2.5"
        ],
        "max_spread": 0.17,
        "contested": []
      }
    },
    {
      "slug": "ted_chiang_the_great_silence",
      "title": "The Great Silence",
      "author": "Ted Chiang",
      "year": 2019,
      "medium": "short_story",
      "genre_tags": [],
      "tropes": [],
      "quadrant_scores": {
        "time_linearity": 0.9,
        "pacing_velocity": 0.85,
        "threat_scale": 0.85,
        "protagonist_fate": 0.7,
        "conflict_style": 0.9,
        "price_type": 0.85
      },
      "provenance": {
        "analysis_run": "NTSMR-2.5-claude-sonnet-4-6-low",
        "analysis_body_sha256": "f768f9b6e2313b6d28dd0f3d3dc0caaf35abeb1a7cc5161106b8cb304f80b185",
        "synthesis": {
          "path": "nartopo-tools/artifacts/ted_chiang_the_great_silence.md.ntsmr-2-5-claude-sonnet-4-6-low.synthesis.json",
          "sha256": "0e1d884e1258c46375358921b8240f1ae0ec15334d47385db0c89aefa130d298"
        },
        "report": {
          "path": "nartopo-tools/artifacts/ted_chiang_the_great_silence.md.ntsmr-2-5-claude-sonnet-4-6-low.report.json",
          "sha256": "591a2eed15b39af43c3ec5eae86e032b43fc616435e8e70d41fc1c0338f4ea8d"
        },
        "source": {
          "path": "Ted Chiang/The Great Silence.txt",
          "sha256": "58c24efd080a2336cc1e0176bcca1ddfe0554ca5aa653c84b4e07b6efb0af1f8",
          "digest_observed_at": "2026-09-09",
          "digest_at_analysis_run": null,
          "edition": null,
          "edition_status": "unresolved"
        },
        "pipeline_revision_at_run": null,
        "verification": {
          "source": "unverified",
          "human_review": "unreviewed",
          "bibliography": "unverified"
        },
        "issues": [],
        "todorov_status": "recovered-from-synthesis",
        "work_identity": {
          "title": "The Great Silence",
          "author": "Ted Chiang",
          "year": 2019
        }
      },
      "ntsmr": {
        "version": "2.5",
        "primary_run_label": "NTSMR-2.5-claude-sonnet-4-6-low",
        "runs": {
          "NTSMR-2.3-gemini-3.1-pro-preview": {
            "pipeline_version": "2.3",
            "backend": "gemini",
            "model": "gemini-3.1-pro-preview",
            "scores": {
              "time_linearity": 0.2,
              "pacing_velocity": 0.95,
              "threat_scale": 1,
              "protagonist_fate": 1,
              "conflict_style": 0.95,
              "price_type": 0.95
            },
            "score_space": "site-v1"
          },
          "NTSMR-2.3-claude-sonnet-4-6-low": {
            "pipeline_version": "2.3",
            "backend": "claude",
            "model": "claude-sonnet-4-6",
            "scores": {
              "time_linearity": 0.25,
              "pacing_velocity": 0.92,
              "threat_scale": 0.85,
              "protagonist_fate": 0.88,
              "conflict_style": 0.9,
              "price_type": 0.95
            },
            "score_space": "site-v1",
            "reasoning_effort": "low"
          },
          "NTSMR-2.4-claude-sonnet-4-6-low": {
            "pipeline_version": "2.4",
            "backend": "claude",
            "model": "claude-sonnet-4-6",
            "scores": {
              "time_linearity": 0.35,
              "pacing_velocity": 0.8,
              "threat_scale": 0.55,
              "protagonist_fate": 0.75,
              "conflict_style": 0.85,
              "price_type": 0.8
            },
            "score_space": "site-v1",
            "reasoning_effort": "low"
          },
          "NTSMR-2.5-claude-sonnet-4-6-low": {
            "pipeline_version": "2.5",
            "backend": "claude",
            "model": "claude-sonnet-4-6",
            "scores": {
              "time_linearity": 0.9,
              "pacing_velocity": 0.85,
              "threat_scale": 0.85,
              "protagonist_fate": 0.7,
              "conflict_style": 0.9,
              "price_type": 0.85
            },
            "score_space": "site-v1",
            "reasoning_effort": "low"
          },
          "NTSMR-2.5-balanced-glm-5+deepseek-v3.2": {
            "pipeline_version": "2.5",
            "backend": "openrouter",
            "model": "balanced-routing",
            "scores": {
              "time_linearity": 0.9,
              "pacing_velocity": 0.88,
              "threat_scale": 0.88,
              "protagonist_fate": 0.8,
              "conflict_style": 0.88,
              "price_type": 0.75
            },
            "score_space": "site-v1",
            "score_only": true,
            "source_run_label": "NTSMR-2.5-claude-sonnet-4-6-low"
          }
        }
      },
      "todorov_stages": {
        "equilibrium": "The original status quo is one of coexistence between humans and parrots as fellow vocal learners sharing the Earth, with the Río Abajo Forest once resounding with parrot voices and parrots occupying a world in which cross-species communication is at least possible in principle — exemplified by the decades-long relationship between Alex and Irene Pepperberg, which demonstrated that a nonhuman species could understand abstract concepts and exchange meaningful words with a human.",
        "disruption": "The disruption is the human-driven collapse of this potential equilibrium on two simultaneous axes: the near-extinction of Puerto Rican parrots through inattentive human activity, which silences the forest and erases parrot language, myth, and culture; and the broader failure of humans to recognize parrots as the nonhuman communicating intelligence they have been searching for via Arecibo, creating a Great Silence on Earth that mirrors the cosmic Fermi Paradox silence.",
        "recognition": "The narrator's entire meditation constitutes the moment of recognition — the sustained awareness that the irony is complete and irreversible. Humans built an ear capable of hearing across the universe while remaining deaf to parrots already present and already speaking. The narrator acknowledges that humans will almost certainly not decipher parrot language before the species is gone, making the failure of recognition permanent.",
        "repair": "The repair gesture is the transmission of a final message before extinction: the parrots echo Alex's last words to Pepperberg — a cross-species act of love that is the fullest possible bridge across the communication gap. The narrator also enacts repair discursively by forgiving humans for inattention rather than malice and by praising human mythic imagination as evidence of greatness, framing the message not as accusation but as benediction.",
        "new_equilibrium": "The new equilibrium is one of irrevocable loss redeemed by a final act of connection. Puerto Rican parrots will join the Great Silence — their language, myths, and rituals disappearing — but they do so having transmitted their message of love. The universe continues to hum with the residual reverberation of its originary sound, and Arecibo, the ear built to hear creation, may or may not receive what the parrots have sent. The altered status quo is silence, but a silence that has been addressed rather than merely suffered."
      },
      "characters": [
        {
          "name": "The Narrator",
          "slug": "the-narrator",
          "aliases": [
            "Puerto Rican parrot"
          ],
          "role": "Speaker and representative of a dying species",
          "summary": "A Puerto Rican parrot who observes human behavior, reflects on the nature of vocal learning and the universe, and speaks on behalf of its nearly extinct kind."
        },
        {
          "name": "Alex",
          "slug": "alex",
          "aliases": [
            "African gray parrot"
          ],
          "role": "Subject of cognitive research",
          "summary": "A famous African gray parrot capable of understanding abstract concepts like shape and color, serving as a prime example of nonhuman intelligence communicating with humans."
        },
        {
          "name": "Irene Pepperberg",
          "slug": "irene-pepperberg",
          "aliases": [],
          "role": "Human researcher",
          "summary": "A human scientist who spent thirty years studying Alex the parrot, successfully convincing skeptical scientists that the bird genuinely understood the concepts he spoke about."
        }
      ],
      "frameworks_mapped": [
        "Protocol Fiction Mapping",
        "Actantial Model",
        "Todorov's Equilibrium",
        "The Freytag Pyramid",
        "Propp's Morphology",
        "Genette's Narrative",
        "The Monomyth",
        "Dan Harmon",
        "Save the Cat",
        "Kishōtenketsu",
        "The Three-Act Structure",
        "Lévi-Strauss's Binary Oppositions",
        "Cognitive Estrangement",
        "Bakhtin's Chronotope",
        "Aristotelian Poetics",
        "Jungian Archetypal Analysis",
        "Genette's Transtextuality"
      ],
      "score_reliability": {
        "state": "replicated-agree",
        "threshold": 0.2,
        "runs_total": 5,
        "versions_compared": [
          "2.5"
        ],
        "max_spread": 0.1,
        "contested": []
      }
    },
    {
      "slug": "margaret_atwood_the_handmaids_tale",
      "title": "The Handmaid's Tale",
      "author": "Margaret Atwood",
      "year": 1985,
      "medium": "book",
      "genre_tags": [],
      "tropes": [],
      "quadrant_scores": {
        "time_linearity": 0.82,
        "pacing_velocity": 0.78,
        "threat_scale": 0.72,
        "protagonist_fate": 0.7,
        "conflict_style": 0.8,
        "price_type": 0.72
      },
      "provenance": {
        "analysis_run": "NTSMR-2.5-claude-sonnet-4-6-low",
        "analysis_body_sha256": "1da0fce1c872be8c7b638caf3067fdf674ccef08c1801c9cc9b1960fbfe16159",
        "synthesis": {
          "path": "nartopo-tools/artifacts/margaret_atwood_the_handmaids_tale.md.ntsmr-2-5-claude-sonnet-4-6-low.synthesis.json",
          "sha256": "cef7f720ca18ce5e3d0e49db15e4ab82494b2efefae51e55842e0a3f5d41c232"
        },
        "report": {
          "path": "nartopo-tools/artifacts/margaret_atwood_the_handmaids_tale.md.ntsmr-2-5-claude-sonnet-4-6-low.report.json",
          "sha256": "d74be080923230fd05dc40c201988bd559c45a8ae0c116d40de34c8da67771f9"
        },
        "source": {
          "path": "Margaret Atwood/The Handmaids Tale.txt",
          "sha256": "9ffefea02c33a8f583a350b269b72e55e6a09ae30fba27416834c080a4779476",
          "digest_observed_at": "2026-09-09",
          "digest_at_analysis_run": null,
          "edition": null,
          "edition_status": "unresolved"
        },
        "pipeline_revision_at_run": null,
        "verification": {
          "source": "unverified",
          "human_review": "unreviewed",
          "bibliography": "unverified"
        },
        "issues": [],
        "todorov_status": "recovered-from-synthesis",
        "work_identity": {
          "title": "The Handmaid's Tale",
          "author": "Margaret Atwood",
          "year": 1985
        }
      },
      "ntsmr": {
        "version": "2.5",
        "primary_run_label": "NTSMR-2.5-claude-sonnet-4-6-low",
        "runs": {
          "NTSMR-2.4-claude-sonnet-4-6-low": {
            "pipeline_version": "2.4",
            "backend": "claude",
            "model": "claude-sonnet-4-6",
            "scores": {
              "time_linearity": 0.75,
              "pacing_velocity": 0.75,
              "threat_scale": 0.65,
              "protagonist_fate": 0.75,
              "conflict_style": 0.75,
              "price_type": 0.65
            },
            "score_space": "site-v1",
            "reasoning_effort": "low"
          },
          "NTSMR-2.5-claude-sonnet-4-6-low": {
            "pipeline_version": "2.5",
            "backend": "claude",
            "model": "claude-sonnet-4-6",
            "scores": {
              "time_linearity": 0.82,
              "pacing_velocity": 0.78,
              "threat_scale": 0.72,
              "protagonist_fate": 0.7,
              "conflict_style": 0.8,
              "price_type": 0.72
            },
            "score_space": "site-v1",
            "reasoning_effort": "low"
          },
          "NTSMR-2.5-balanced-glm-5+deepseek-v3.2": {
            "pipeline_version": "2.5",
            "backend": "openrouter",
            "model": "balanced-routing",
            "scores": {
              "time_linearity": 0.82,
              "pacing_velocity": 0.78,
              "threat_scale": 0.6,
              "protagonist_fate": 0.65,
              "conflict_style": 0.72,
              "price_type": 0.7
            },
            "score_space": "site-v1",
            "score_only": true,
            "source_run_label": "NTSMR-2.5-claude-sonnet-4-6-low"
          }
        }
      },
      "todorov_stages": {
        "equilibrium": "Offred exists within Gilead's enforced routine — prescribed shopping walks with Ofglen, ritual greetings at checkpoints, monthly Ceremonies with the Commander, and her circumscribed domestic role in the household. This oppressive order constitutes the operational status quo of her life as a Handmaid.",
        "disruption": "The original disruption is the Gilead coup itself — the assassination of the President and Congress, suspension of the Constitution, women fired from jobs and cut off from bank accounts — which shattered the pre-Gilead world Offred knew with Luke and her daughter. Within the primary narrative, secondary disruptions accumulate: the Commander's secret summons to his study, Ofglen's whispered revelation of the Mayday resistance, and Offred's affair with Nick, each transgressing the prescribed order.",
        "recognition": "Offred's recognition is distributed across the narrative. She registers Ofglen's heretical question at the Soul Scrolls window as a crossing of an invisible line revealing resistance membership. She understands the danger of her clandestine visits to the Commander. Most acutely, she recognizes her own complicity and attachment when she admits she no longer wants to escape because of Nick — an awareness that her emotional survival has overtaken her will to resist.",
        "repair": "The attempt to survive takes multiple forms: Offred navigates the Commander's study visits as calculated exchange, pursues the affair with Nick as emotional sustenance, and passively maintains her Handmaid role as protective cover. Nick's urging her into the black van — calling her by her real name and identifying the men as Mayday — represents the external rescue mechanism that enacts whatever escape becomes possible.",
        "new_equilibrium": "The new equilibrium is radically uncertain. Offred steps into the black van and disappears — her ultimate fate unknown. The Historical Notes epilogue reframes the entire narrative as an archaeological artifact examined by future scholars, establishing a distant academic present in which Gilead has ended but Offred's individual outcome remains unresolved. The new order is one of historical distance and interpretive ambiguity rather than restored safety."
      },
      "characters": [
        {
          "name": "Offred",
          "slug": "offred",
          "aliases": [],
          "role": "Narrator and protagonist, Handmaid",
          "summary": "Primary narrator; observes Nick as her signal system, reflects on her estrangement from Luke, participates in Prayvaganza, is taken to Jezebel's by the Commander, and begins a reckless voluntary affair with Nick."
        },
        {
          "name": "Nick",
          "slug": "nick",
          "aliases": [],
          "role": "Commander's chauffeur and Guardian",
          "summary": "Signals Offred with his cap; drives her concealed to Jezebel's; receives her for repeated nocturnal visits in his garage apartment above the Commander's house."
        },
        {
          "name": "Serena Joy",
          "slug": "serena-joy",
          "aliases": [],
          "role": "Commander's Wife",
          "summary": "Confronts Offred with evidence of the Jezebel's outing — lipstick on her cloak and the sequined dress — and sends her to her room in fury; reacts with shock to the arrival of the van."
        },
        {
          "name": "Moira",
          "slug": "moira",
          "aliases": [],
          "role": "Offred's closest friend from before Gilead",
          "summary": "Encountered at Jezebel's; recounts her escape via Quaker Underground Femaleroad contacts and her eventual capture; now resident at Jezebel's, her defiant spirit broken into indifference."
        },
        {
          "name": "Rita",
          "slug": "rita",
          "aliases": [],
          "role": "Martha in the Commander's household",
          "summary": "Resentful and outspoken; argues with Cora in the kitchen about the shooting of a Martha by young Guardians, calling it 'a bad death'."
        },
        {
          "name": "Cora",
          "slug": "cora",
          "aliases": [],
          "role": "Martha in the Commander's household",
          "summary": "Household servant who discovers Offred on the floor of the closet and quietly conspires to conceal the incident; harbors hope for a birth in the household."
        },
        {
          "name": "The Doctor",
          "slug": "the-doctor",
          "aliases": [],
          "role": "Physician at Offred's examination",
          "summary": "Offers to impregnate Offred secretly during her examination, claiming most Commanders are sterile; presents himself as sympathetic while holding coercive power over her."
        },
        {
          "name": "Luke",
          "slug": "luke",
          "aliases": [],
          "role": "Offred's husband from before Gilead",
          "summary": "Recalled in flashbacks to the escape attempt and pre-Gilead Sunday mornings; drove the family toward the border with forged passports and explained the origin of 'Mayday'."
        },
        {
          "name": "Aunt Lydia",
          "slug": "aunt-lydia",
          "aliases": [],
          "role": "Indoctrination instructor at the Red Centre",
          "summary": "Recalled by Offred through her ideological pronouncements: that waiting is service, that modesty is invisibility, and that Gilead offers 'freedom from' in place of 'freedom to'."
        },
        {
          "name": "Ofglen",
          "slug": "ofglen",
          "aliases": [],
          "role": "Handmaid, shopping partner, Mayday operative",
          "summary": "Shopping partner who whispers resistance gossip at the Prayvaganza — reveals Janine's baby was defective and Janine is rumored to have used an outside doctor."
        },
        {
          "name": "Frederick R. Waterford",
          "slug": "frederick-r-waterford",
          "aliases": [
            "the Commander"
          ],
          "role": "Historical figure/probable Commander",
          "summary": "Identified by Pieixoto as the most likely candidate for 'the Commander'; responsible for costume design, terminology such as Particicution, and the Aunt system; later purged for liberal tendencies."
        },
        {
          "name": "Janine",
          "slug": "janine",
          "aliases": [
            "Ofwarren"
          ],
          "role": "Handmaid in labor",
          "summary": "Seen at the Prayvaganza looking thin and drained; her baby Angela was a 'shredder'; she is rumored to have committed the transgression of using a doctor not her Commander."
        },
        {
          "name": "Aunt Elizabeth",
          "slug": "aunt-elizabeth",
          "aliases": [],
          "role": "Red Centre instructor presiding at birth",
          "summary": "Khaki-uniformed Aunt who taught Gyn Ed and officiates the birth, maintaining order and inspecting the newborn."
        },
        {
          "name": "Alma",
          "slug": "alma",
          "aliases": [],
          "role": "Handmaid at Birth Day",
          "summary": "Unknown Handmaid who whispers to Offred during the birth chant, exchanges real names, and offers to watch for Moira."
        },
        {
          "name": "Professor Pieixoto",
          "slug": "professor-pieixoto",
          "aliases": [
            "James Darcy Pieixoto"
          ],
          "role": "Academic narrator/frame voice",
          "summary": "Keynote speaker at the 2195 Symposium who presents the authentication and historical contextualization of Offred's tapes, speculating on the Commander's identity, Nick's role, and Offred's fate."
        },
        {
          "name": "B. Frederick Judd",
          "slug": "b-frederick-judd",
          "aliases": [],
          "role": "Historical figure/Sons of Jacob architect",
          "summary": "Co-candidate for the Commander; credited with tactical innovations including the Particicution ceremony, hit-lists, the President's Day Massacre, and the Aunt control system."
        }
      ],
      "frameworks_mapped": [
        "Protocol Fiction Mapping",
        "Actantial Model",
        "Todorov's Equilibrium",
        "The Freytag Pyramid",
        "Propp's Morphology",
        "Genette's Narrative",
        "The Monomyth",
        "Dan Harmon",
        "Save the Cat",
        "Kishōtenketsu",
        "The Three-Act Structure",
        "Lévi-Strauss's Binary Oppositions",
        "Cognitive Estrangement",
        "Bakhtin's Chronotope",
        "Aristotelian Poetics",
        "Jungian Archetypal Analysis",
        "Genette's Transtextuality"
      ],
      "score_reliability": {
        "state": "replicated-agree",
        "threshold": 0.2,
        "runs_total": 3,
        "versions_compared": [
          "2.5"
        ],
        "max_spread": 0.12,
        "contested": []
      }
    },
    {
      "slug": "ursula_k_le_guin_the_left_hand_of_darkness",
      "title": "The Left Hand of Darkness",
      "author": "Ursula K. Le Guin",
      "year": 1969,
      "medium": "book",
      "genre_tags": [
        "sf",
        "feminist sf",
        "anthropological sf"
      ],
      "tropes": [],
      "quadrant_scores": {
        "time_linearity": 0.75,
        "pacing_velocity": 0.75,
        "threat_scale": 0.65,
        "protagonist_fate": 0.65,
        "conflict_style": 0.78,
        "price_type": 0.8
      },
      "provenance": {
        "analysis_run": "NTSMR-2.5-claude-sonnet-4-6-low",
        "analysis_body_sha256": "d4106005f2ba640351173f8faca7360a70a1c6db08fca7c706e4121e7bd9de45",
        "synthesis": {
          "path": "nartopo-tools/artifacts/ursula_k_le_guin_the_left_hand_of_darkness.md.ntsmr-2-5-claude-sonnet-4-6-low.synthesis.json",
          "sha256": "e524c8ec0cdac936b0abc86e40da9b1619eefab8e51f95916d2abf4078115910"
        },
        "report": {
          "path": "nartopo-tools/artifacts/ursula_k_le_guin_the_left_hand_of_darkness.md.ntsmr-2-5-claude-sonnet-4-6-low.report.json",
          "sha256": "fbe6026c746a57c73ac2867ccffdc9d170e5ef3dd7bd29a69bb06423662b4aa8"
        },
        "source": {
          "path": "Ursula K. Le Guin/The Left Hand of Darkness.txt",
          "sha256": "6f104cced4bb4d579f3cbc4cab1a18055771066e5ecf7c7cd1053b3580ce9186",
          "digest_observed_at": "2026-09-09",
          "digest_at_analysis_run": null,
          "edition": null,
          "edition_status": "unresolved"
        },
        "pipeline_revision_at_run": null,
        "verification": {
          "source": "unverified",
          "human_review": "unreviewed",
          "bibliography": "unverified"
        },
        "issues": [],
        "todorov_status": "recovered-from-synthesis",
        "work_identity": {
          "title": "The Left Hand of Darkness",
          "author": "Ursula K. Le Guin",
          "year": 1969
        }
      },
      "ntsmr": {
        "version": "2.5",
        "primary_run_label": "NTSMR-2.5-claude-sonnet-4-6-low",
        "runs": {
          "NTSMR-2.3-claude-sonnet-4-6-low": {
            "pipeline_version": "2.3",
            "backend": "claude",
            "model": "claude-sonnet-4-6",
            "scores": {
              "time_linearity": 0.72,
              "pacing_velocity": 0.78,
              "threat_scale": 0.65,
              "protagonist_fate": 0.62,
              "conflict_style": 0.82,
              "price_type": 0.85
            },
            "score_space": "site-v1",
            "reasoning_effort": "low"
          },
          "NTSMR-2.4-claude-sonnet-4-6-low": {
            "pipeline_version": "2.4",
            "backend": "claude",
            "model": "claude-sonnet-4-6",
            "scores": {
              "time_linearity": 0.65,
              "pacing_velocity": 0.75,
              "threat_scale": 0.55,
              "protagonist_fate": 0.65,
              "conflict_style": 0.75,
              "price_type": 0.65
            },
            "score_space": "site-v1",
            "reasoning_effort": "low"
          },
          "NTSMR-2.5-claude-sonnet-4-6-low": {
            "pipeline_version": "2.5",
            "backend": "claude",
            "model": "claude-sonnet-4-6",
            "scores": {
              "time_linearity": 0.75,
              "pacing_velocity": 0.75,
              "threat_scale": 0.65,
              "protagonist_fate": 0.65,
              "conflict_style": 0.78,
              "price_type": 0.8
            },
            "score_space": "site-v1",
            "reasoning_effort": "low"
          },
          "NTSMR-2.5-minimax/minimax-m2.5": {
            "pipeline_version": "2.5",
            "backend": "openrouter",
            "model": "minimax/minimax-m2.5",
            "scores": {
              "time_linearity": 0.25,
              "pacing_velocity": 0.72,
              "threat_scale": 0.55,
              "protagonist_fate": 0.42,
              "conflict_style": 0.7,
              "price_type": 0.72
            },
            "score_space": "site-v1"
          },
          "NTSMR-2.5-qwen/qwen3.5-plus-02-15": {
            "pipeline_version": "2.5",
            "backend": "openrouter",
            "model": "qwen/qwen3.5-plus-02-15",
            "scores": {
              "time_linearity": 0.4,
              "pacing_velocity": 0.75,
              "threat_scale": 0.6,
              "protagonist_fate": 0.45,
              "conflict_style": 0.7,
              "price_type": 0.55
            },
            "score_space": "site-v1"
          },
          "NTSMR-2.5-deepseek/deepseek-v3.2": {
            "pipeline_version": "2.5",
            "backend": "openrouter",
            "model": "deepseek/deepseek-v3.2",
            "scores": {
              "time_linearity": 0.25,
              "pacing_velocity": 0.75,
              "threat_scale": 0.7,
              "protagonist_fate": 0.55,
              "conflict_style": 0.7,
              "price_type": 0.65
            },
            "score_space": "site-v1"
          },
          "NTSMR-2.5-qwen/qwen3.5-397b-a17b": {
            "pipeline_version": "2.5",
            "backend": "openrouter",
            "model": "qwen/qwen3.5-397b-a17b",
            "scores": {
              "time_linearity": 0.25,
              "pacing_velocity": 0.75,
              "threat_scale": 0.55,
              "protagonist_fate": 0.6,
              "conflict_style": 0.7,
              "price_type": 0.55
            },
            "score_space": "site-v1"
          },
          "NTSMR-2.5-z-ai/glm-4.7": {
            "pipeline_version": "2.5",
            "backend": "openrouter",
            "model": "z-ai/glm-4.7",
            "scores": {
              "time_linearity": 0.35,
              "pacing_velocity": 0.7,
              "threat_scale": 0.6,
              "protagonist_fate": 0.35,
              "conflict_style": 0.65,
              "price_type": 0.55
            },
            "score_space": "site-v1"
          },
          "NTSMR-2.5-z-ai/glm-5": {
            "pipeline_version": "2.5",
            "backend": "openrouter",
            "model": "z-ai/glm-5",
            "scores": {
              "time_linearity": 0.6,
              "pacing_velocity": 0.75,
              "threat_scale": 0.6,
              "protagonist_fate": 0.5,
              "conflict_style": 0.7,
              "price_type": 0.55
            },
            "score_space": "site-v1"
          },
          "NTSMR-2.5-balanced-glm-5+deepseek-v3.2": {
            "pipeline_version": "2.5",
            "backend": "openrouter",
            "model": "balanced-routing",
            "scores": {
              "time_linearity": 0.55,
              "pacing_velocity": 0.72,
              "threat_scale": 0.65,
              "protagonist_fate": 0.55,
              "conflict_style": 0.7,
              "price_type": 0.7
            },
            "score_space": "site-v1",
            "score_only": true,
            "source_run_label": "NTSMR-2.5-claude-sonnet-4-6-low"
          }
        }
      },
      "todorov_stages": {
        "equilibrium": "Genly Ai has spent two years on Gethen attempting to bring Karhide into the Ekumen, operating through Estraven as political ally; the mission is stalled but intact, with a functioning relationship between Envoy and Prime Minister and a pending audience with King Argaven.",
        "disruption": "Estraven is exiled by Argaven and sentenced to death, simultaneously removing Genly's only advocate at court and exposing Genly's failure to secure the king's endorsement; Tibe's rise as nationalist regent further destabilizes the political ground Genly had been working.",
        "recognition": "Genly recognizes the disruption incrementally: first through the failed royal audience where Argaven dismisses the Ekumen offer with suspicion, then through learning of Estraven's exile, and finally—at the moment of Estraven's death—through the devastating realization of how thoroughly he had misread his only true ally.",
        "repair": "Genly redirects his mission to Orgoreyn, survives arrest, drug interrogation, and a Voluntary Farm, and ultimately crosses the Gobrin Ice with Estraven across 81 days of glacial travel; he transmits the wake-signal to the relay satellite from Sassinoth, bringing the Ekumenical ship to Gethen despite the incomplete condition he had set regarding Estraven's rehabilitation.",
        "new_equilibrium": "Karhide accepts the Ekumenical ship's landing under Argaven; the Sarf faction falls in Orgoreyn and Tibe resigns in Karhide; the Ekumen's contact with Gethen is established, but the cost is Estraven's death and Genly's permanent transformation—he privately acknowledges that even his defense of Estraven before Argaven captures only a partial truth about what was lost."
      },
      "characters": [
        {
          "name": "Sov",
          "slug": "sov",
          "aliases": [],
          "role": "protagonist",
          "summary": "Young Gethenian experiencing first kemmer, apprenticed at a furniture shop, resistant to the coming sexual maturity."
        },
        {
          "name": "Guyr",
          "slug": "guyr",
          "aliases": [],
          "role": "supporting",
          "summary": "Sov's mother, tender and practical, helping Sov prepare for kemmerday."
        },
        {
          "name": "Sether",
          "slug": "sether",
          "aliases": [],
          "role": "supporting",
          "summary": "Sov's cousin and fellow apprentice, slightly lame, approaching kemmer a month after Sov."
        },
        {
          "name": "Genly Ai",
          "slug": "genly-ai",
          "aliases": [
            "Mr. Ai",
            "Envoy",
            "Ai",
            "the Envoy",
            "Genry"
          ],
          "role": "protagonist/narrator",
          "summary": "Terran Envoy imprisoned in Orgoreyn, later rescued by Estraven; struggles to understand Gethenian culture and trust Estraven."
        },
        {
          "name": "Therem Harth rem ir Estraven",
          "slug": "therem-harth-rem-ir-estraven",
          "aliases": [
            "Estraven",
            "Lord Estraven",
            "Harth",
            "Therem"
          ],
          "role": "Exiled former Prime Minister of Karhide",
          "summary": "Exiled Karhidish former prime minister who rescues Genly from prison and guides him across the Gobrin Ice; reveals his commitment to the Ekumenical mission."
        },
        {
          "name": "Pemmer Harge rem ir Tibe",
          "slug": "pemmer-harge-rem-ir-tibe",
          "aliases": [
            "Tibe"
          ],
          "role": "supporting",
          "summary": "King's cousin and member of the kyorremy, displays animosity toward Estraven."
        },
        {
          "name": "Argaven",
          "slug": "argaven",
          "aliases": [
            "King Argaven",
            "the king"
          ],
          "role": "antagonist-authority",
          "summary": "King of Karhide who receives Genly in audience and agrees to the Ekumen alliance while questioning Estraven's loyalty"
        },
        {
          "name": "Getheren",
          "slug": "getheren",
          "aliases": [],
          "role": "protagonist",
          "summary": "Protagonist of the hearth-tale, a young man who flees to the Ice after his brother's suicide."
        },
        {
          "name": "Hode",
          "slug": "hode",
          "aliases": [],
          "role": "supporting",
          "summary": "Getheren's brother and kemmering who commits suicide, appears as a white ghost in the blizzard."
        },
        {
          "name": "Berosty rem ir Ipe",
          "slug": "berosty-rem-ir-ipe",
          "aliases": [
            "Lord Berosty",
            "Ashe Berosty"
          ],
          "role": "protagonist",
          "summary": "Lord of Charuthe Domain who becomes obsessed after learning he will die on Odstreth."
        },
        {
          "name": "Herbor",
          "slug": "herbor",
          "aliases": [],
          "role": "supporting",
          "summary": "Berosty's kemmering, devoted and poor, who seeks a Foretelling to help his lover."
        },
        {
          "name": "Odren",
          "slug": "odren",
          "aliases": [
            "Weaver Odren"
          ],
          "role": "supporting",
          "summary": "Weaver at Thangering Fastness who conducts Foretellings."
        },
        {
          "name": "Ashe",
          "slug": "ashe",
          "aliases": [
            "Foreth rem ir Osboth"
          ],
          "role": "Estraven's former kemmering, a Celibate of the Foretellers",
          "summary": "Devoted to Estraven despite years of separation; gives Genly money to deliver to his exiled lover."
        },
        {
          "name": "Arek",
          "slug": "arek",
          "aliases": [],
          "role": "Estraven's dead brother/lover from the Domain of Stok",
          "summary": "The person Estraven calls at death; his vow to Arek is the 'true vow' he references when rejecting Ashe."
        },
        {
          "name": "Obsle",
          "slug": "obsle",
          "aliases": [],
          "role": "Orgota Commensal, faction leader",
          "summary": "Fat, shrewd official who questions Estraven's truthfulness but ultimately works with Yegey to bring the Ekumen to Orgoreyn."
        },
        {
          "name": "Yegey",
          "slug": "yegey",
          "aliases": [],
          "role": "Orgota Commensal, leader of Open Trade faction",
          "summary": "Delicate, dapper official who hosts Genly and sees Ekumen membership as a path to power for his faction."
        },
        {
          "name": "Shusgis",
          "slug": "shusgis",
          "aliases": [
            "Commissioner Shusgis"
          ],
          "role": "First Commensal District Commissioner of Entry-Roads and Ports",
          "summary": "Orgota Commissioner who hosts Genly in Mishnory; later revealed to be Sarf agent who betrays Genly."
        },
        {
          "name": "Slose",
          "slug": "slose",
          "aliases": [],
          "role": "Orgota official with Yomesh mystical leanings",
          "summary": "Interprets the Ekumen's coming in religious terms, as the Reign of Meshe."
        },
        {
          "name": "Gaum",
          "slug": "gaum",
          "aliases": [],
          "role": "Sarf agent at the banquet",
          "summary": "Questions Genly about his ship's location, seeking to prove him a fraud."
        },
        {
          "name": "Ong Tot Oppong",
          "slug": "ong-tot-oppong",
          "aliases": [],
          "role": "Ekumenical Investigator, author of field notes",
          "summary": "Woman from Chiffewar who documented Gethenian biology and theorized about the origins of ambisexuality."
        },
        {
          "name": "Sardon rem ir Chenewich",
          "slug": "sardon-rem-ir-chenewich",
          "aliases": [
            "Chenewich"
          ],
          "role": "helper",
          "summary": "Karhidish embassy staff member in Orgoreyn who agrees to convey Estraven's message to King Argaven."
        },
        {
          "name": "Faxe",
          "slug": "faxe",
          "aliases": [],
          "role": "helper",
          "summary": "Former Weaver of Otherhord, now councillor of the Heskyorremy, who greets Genly and assists with arrangements"
        },
        {
          "name": "The physician",
          "slug": "the-physician",
          "aliases": [],
          "role": "helper",
          "summary": "Young Karhidish physician from Sassinoth who tends Genly after Estraven's death and refuses to believe in suicide"
        },
        {
          "name": "Thessicher",
          "slug": "thessicher",
          "aliases": [],
          "role": "opponent",
          "summary": "Farmer who betrays Estraven's presence to the authorities"
        },
        {
          "name": "Lang Heo Hew",
          "slug": "lang-heo-hew",
          "aliases": [
            "Heo Hew"
          ],
          "role": "helper",
          "summary": "Fellow Envoy from the Ekumen ship who greets Genly upon landing"
        }
      ],
      "frameworks_mapped": [
        "Protocol Fiction Mapping",
        "Actantial Model",
        "Todorov's Equilibrium",
        "The Freytag Pyramid",
        "Propp's Morphology",
        "Genette's Narrative",
        "The Monomyth",
        "Dan Harmon",
        "Save the Cat",
        "Kishotenketsu",
        "The Three-Act Structure",
        "Levi-Strauss's Binary Oppositions",
        "Cognitive Estrangement",
        "Bakhtin's Chronotope",
        "Aristotelian Poetics",
        "Jungian Archetypal Analysis",
        "Genette's Transtextuality"
      ],
      "score_reliability": {
        "state": "contested",
        "threshold": 0.2,
        "runs_total": 10,
        "versions_compared": [
          "2.5"
        ],
        "max_spread": 0.5,
        "contested": [
          {
            "axis": "time_linearity",
            "version": "2.5",
            "spread": 0.5,
            "low": {
              "label": "NTSMR-2.5-deepseek/deepseek-v3.2",
              "model": "deepseek/deepseek-v3.2",
              "effort": "?",
              "value": 0.25
            },
            "high": {
              "label": "NTSMR-2.5-claude-sonnet-4-6-low",
              "model": "claude-sonnet-4-6",
              "effort": "low",
              "value": 0.75
            }
          },
          {
            "axis": "protagonist_fate",
            "version": "2.5",
            "spread": 0.3,
            "low": {
              "label": "NTSMR-2.5-z-ai/glm-4.7",
              "model": "z-ai/glm-4.7",
              "effort": "?",
              "value": 0.35
            },
            "high": {
              "label": "NTSMR-2.5-claude-sonnet-4-6-low",
              "model": "claude-sonnet-4-6",
              "effort": "low",
              "value": 0.65
            }
          },
          {
            "axis": "price_type",
            "version": "2.5",
            "spread": 0.25,
            "low": {
              "label": "NTSMR-2.5-qwen/qwen3.5-397b-a17b",
              "model": "qwen/qwen3.5-397b-a17b",
              "effort": "?",
              "value": 0.55
            },
            "high": {
              "label": "NTSMR-2.5-claude-sonnet-4-6-low",
              "model": "claude-sonnet-4-6",
              "effort": "low",
              "value": 0.8
            }
          }
        ]
      }
    },
    {
      "slug": "jorge_luis_borges_the_library_of_babel",
      "title": "The Library of Babel",
      "author": "Jorge Luis Borges",
      "year": 1944,
      "medium": "short_story",
      "genre_tags": [],
      "tropes": [],
      "quadrant_scores": {
        "time_linearity": 0.85,
        "pacing_velocity": 0.85,
        "threat_scale": 0.9,
        "protagonist_fate": 0.75,
        "conflict_style": 0.88,
        "price_type": 0.85
      },
      "provenance": {
        "analysis_run": "NTSMR-2.5-claude-sonnet-4-6-low",
        "analysis_body_sha256": "a49956f9172ead996641faeadff9d9537c5a6f66077aaaa1b6a73be3fba86966",
        "synthesis": {
          "path": "nartopo-tools/artifacts/jorge_luis_borges_the_library_of_babel.md.ntsmr-2-5-claude-sonnet-4-6-low.synthesis.json",
          "sha256": "88467d2d0c90daf42692ae6a597e7d441d91a55545b508cb1cafade4c329047f"
        },
        "report": {
          "path": "nartopo-tools/artifacts/jorge_luis_borges_the_library_of_babel.md.ntsmr-2-5-claude-sonnet-4-6-low.report.json",
          "sha256": "a7080e7f4e90af6c97e5dd2189916b6ff5fcf899df2a0b406abec3532bdf29d2"
        },
        "source": {
          "path": "Jorge Luis Borges/The Library of Babel.txt",
          "sha256": "fed3a6988da2bb27faebb15a2d17d06f302ba159f8c70ecbe5c2fefa1ff06780",
          "digest_observed_at": "2026-09-09",
          "digest_at_analysis_run": null,
          "edition": null,
          "edition_status": "unresolved"
        },
        "pipeline_revision_at_run": null,
        "verification": {
          "source": "unverified",
          "human_review": "unreviewed",
          "bibliography": "unverified"
        },
        "issues": [],
        "todorov_status": "recovered-from-synthesis",
        "work_identity": {
          "title": "The Library of Babel",
          "author": "Jorge Luis Borges",
          "year": 1944
        }
      },
      "ntsmr": {
        "version": "2.5",
        "primary_run_label": "NTSMR-2.5-claude-sonnet-4-6-low",
        "runs": {
          "NTSMR-2.3-gemini-3.1-pro-preview": {
            "pipeline_version": "2.3",
            "backend": "gemini",
            "model": "gemini-3.1-pro-preview",
            "scores": {
              "time_linearity": 0.85,
              "pacing_velocity": 0.95,
              "threat_scale": 1,
              "protagonist_fate": 0.95,
              "conflict_style": 1,
              "price_type": 1
            },
            "score_space": "site-v1"
          },
          "NTSMR-2.3-claude-sonnet-4-6-low": {
            "pipeline_version": "2.3",
            "backend": "claude",
            "model": "claude-sonnet-4-6",
            "scores": {
              "time_linearity": 0.35,
              "pacing_velocity": 0.92,
              "threat_scale": 0.88,
              "protagonist_fate": 0.82,
              "conflict_style": 0.85,
              "price_type": 0.9
            },
            "score_space": "site-v1",
            "reasoning_effort": "low"
          },
          "NTSMR-2.4-claude-sonnet-4-6-low": {
            "pipeline_version": "2.4",
            "backend": "claude",
            "model": "claude-sonnet-4-6",
            "scores": {
              "time_linearity": 0.45,
              "pacing_velocity": 0.85,
              "threat_scale": 0.75,
              "protagonist_fate": 0.65,
              "conflict_style": 0.85,
              "price_type": 0.8
            },
            "score_space": "site-v1",
            "reasoning_effort": "low"
          },
          "NTSMR-2.5-claude-sonnet-4-6-low": {
            "pipeline_version": "2.5",
            "backend": "claude",
            "model": "claude-sonnet-4-6",
            "scores": {
              "time_linearity": 0.85,
              "pacing_velocity": 0.85,
              "threat_scale": 0.9,
              "protagonist_fate": 0.75,
              "conflict_style": 0.88,
              "price_type": 0.85
            },
            "score_space": "site-v1",
            "reasoning_effort": "low"
          },
          "NTSMR-2.5-balanced-glm-5+deepseek-v3.2": {
            "pipeline_version": "2.5",
            "backend": "openrouter",
            "model": "balanced-routing",
            "scores": {
              "time_linearity": 0.85,
              "pacing_velocity": 0.85,
              "threat_scale": 0.9,
              "protagonist_fate": 0.7,
              "conflict_style": 0.9,
              "price_type": 0.85
            },
            "score_space": "site-v1",
            "score_only": true,
            "source_run_label": "NTSMR-2.5-claude-sonnet-4-6-low"
          }
        }
      },
      "todorov_stages": {
        "equilibrium": "The Library exists as a vast, stable, self-contained cosmos: the Narrator and all librarians inhabit its hexagonal galleries, traveling its corridors, reading its volumes, accepting its incomprehensible books as simply the nature of their world. The physical and social order—sleeping compartments, staircases, the librarian's vocation—constitutes a functioning if mysterious steady state.",
        "disruption": "The discovery five hundred years prior of a partially legible book, decoded by the Traveling Decipherer and analyzed by the Librarian-Philosopher, reveals that the Library is total—containing every possible combination of symbols and therefore every possible text. This shatters the prior equilibrium by introducing the concept of Vindications: that each person's perfect answer, justification, and prophecy must exist somewhere in the shelves.",
        "recognition": "The wider community of librarians and inhabitants recognizes the implications of the Library's totality—not merely as an abstract theorem but as a personal promise—triggering mass euphoria, pilgrimages, violence, and the rise of sects including the Purifiers and worshippers of the hypothetical Book Man. The Narrator himself confesses having spent his life in these futile quests.",
        "repair": "Various factions attempt to restore meaning and order: the Purifiers destroy volumes to reduce the Library to manageable scale; other sects propose random letter-shuffling to reconstruct canonical books; the Narrator prays that at least one person has read the total book so the Library finds justification. The Narrator's own repair is intellectual—he refutes the infidels who claim the Library is nonsense, arguing all symbol combinations carry potential meaning.",
        "new_equilibrium": "The Narrator arrives at a final, altered steady state: the Library is spatially periodic—the same volumes repeating endlessly through space—which he calls an elegant hope. Humanity teeters at the verge of extinction, but the Library endures: enlightened, solitary, infinite, perfectly unmoving. The Narrator's personal equilibrium is acceptance of death and dissolution, finding solace in the Library's periodic order rather than in any located Vindication."
      },
      "characters": [
        {
          "name": "The Narrator",
          "slug": "the-narrator",
          "aliases": [
            "my father",
            "I"
          ],
          "role": "Aging librarian and author",
          "summary": "An aging librarian who has traveled the Library in his youth, administers a hexagon, and is now preparing to die, leaving behind his written testament."
        },
        {
          "name": "The chief of one of the upper hexagons",
          "slug": "the-chief-of-one-of-the-upper-hexagons",
          "aliases": [],
          "role": "Historical librarian",
          "summary": "A librarian from five hundred years ago who discovered a book containing almost two pages of homogeneous lines."
        },
        {
          "name": "The traveling decipherer",
          "slug": "the-traveling-decipherer",
          "aliases": [],
          "role": "Linguist",
          "summary": "An expert who initially suggested the homogeneous lines found by the chief were written in Portuguese."
        },
        {
          "name": "A librarian of genius",
          "slug": "a-librarian-of-genius",
          "aliases": [
            "This philosopher"
          ],
          "role": "Historical scholar",
          "summary": "The philosopher who discovered the fundamental law of the Library: that it is total and contains all possible combinations of twenty-two orthographic symbols."
        },
        {
          "name": "The inquisitors",
          "slug": "the-inquisitors",
          "aliases": [
            "official searchers"
          ],
          "role": "Official searchers",
          "summary": "Exhausted individuals who travel the hexagons leafing through books in search of disgraceful words, without expecting to actually find anything."
        },
        {
          "name": "The Purifiers",
          "slug": "the-purifiers",
          "aliases": [
            "fanatics"
          ],
          "role": "Fanatical sect",
          "summary": "A destructive group driven by an ascetic rage who invaded hexagons to eliminate 'worthless' books, hoping to eventually find the magical books of the Crimson Hexagon."
        },
        {
          "name": "The Book Man",
          "slug": "the-book-man",
          "aliases": [
            "Him"
          ],
          "role": "Mythological figure",
          "summary": "A legendary, god-like librarian rumored to have found and examined the perfect compendium of all other books."
        },
        {
          "name": "Letizia Alvarez de Toledo",
          "slug": "letizia-alvarez-de-toledo",
          "aliases": [],
          "role": "Theorist",
          "summary": "A theorist mentioned in a footnote who observed that the vast Library is pointless and proposed a single volume with infinitely thin pages."
        },
        {
          "name": "Cavalieri",
          "slug": "cavalieri",
          "aliases": [],
          "role": "Mathematician",
          "summary": "A historical figure mentioned in a footnote who stated that every solid body is the super-position of an infinite number of planes."
        }
      ],
      "frameworks_mapped": [
        "Protocol Fiction Mapping",
        "Actantial Model",
        "Todorov's Equilibrium",
        "The Freytag Pyramid",
        "Propp's Morphology",
        "Genette's Narrative",
        "The Monomyth",
        "Dan Harmon",
        "Save the Cat",
        "Kishōtenketsu",
        "The Three-Act Structure",
        "Lévi-Strauss's Binary Oppositions",
        "Cognitive Estrangement",
        "Bakhtin's Chronotope",
        "Aristotelian Poetics",
        "Jungian Archetypal Analysis",
        "Genette's Transtextuality"
      ],
      "score_reliability": {
        "state": "replicated-agree",
        "threshold": 0.2,
        "runs_total": 5,
        "versions_compared": [
          "2.5"
        ],
        "max_spread": 0.05,
        "contested": []
      }
    },
    {
      "slug": "ted_chiang_the_lifecycle_of_software_objects",
      "title": "The Lifecycle of Software Objects",
      "author": "Ted Chiang",
      "year": 2019,
      "medium": "short_story",
      "genre_tags": [],
      "tropes": [],
      "quadrant_scores": {
        "time_linearity": 0.18,
        "pacing_velocity": 0.78,
        "threat_scale": 0.38,
        "protagonist_fate": 0.58,
        "conflict_style": 0.82,
        "price_type": 0.72
      },
      "provenance": {
        "analysis_run": "NTSMR-2.5-claude-sonnet-4-6-low",
        "analysis_body_sha256": "a7e07f5b9e5e16f207a194aecfbd6649ff9322d5d5b647ff14d114a555eb6910",
        "synthesis": {
          "path": "nartopo-tools/artifacts/ted_chiang_the_lifecycle_of_software_objects.md.ntsmr-2-5-claude-sonnet-4-6-low.synthesis.json",
          "sha256": "522e2edffd9edce4f0b1ebcddd0a955ead580ad4ab3523dc0a9c3eca944fa417"
        },
        "report": {
          "path": "nartopo-tools/artifacts/ted_chiang_the_lifecycle_of_software_objects.md.ntsmr-2-5-claude-sonnet-4-6-low.report.json",
          "sha256": "f3c4155ad7a42fe9c39dc357fcfd47d2790fc51d4856f2ec37cab27d2cc4944b"
        },
        "source": {
          "path": "Ted Chiang/The Lifecycle of Software Objects.txt",
          "sha256": "3ec3d2f2dd6403995c1d9328fc854a0421ceba15b1dc6efe4b27579f1891ab0c",
          "digest_observed_at": "2026-09-09",
          "digest_at_analysis_run": null,
          "edition": null,
          "edition_status": "unresolved"
        },
        "pipeline_revision_at_run": null,
        "verification": {
          "source": "unverified",
          "human_review": "unreviewed",
          "bibliography": "unverified"
        },
        "issues": [],
        "todorov_status": "recovered-from-synthesis",
        "work_identity": {
          "title": "The Lifecycle of Software Objects",
          "author": "Ted Chiang",
          "year": 2019
        }
      },
      "ntsmr": {
        "version": "2.5",
        "primary_run_label": "NTSMR-2.5-claude-sonnet-4-6-low",
        "runs": {
          "NTSMR-2.3-gemini-3.1-pro-preview": {
            "pipeline_version": "2.3",
            "backend": "gemini",
            "model": "gemini-3.1-pro-preview",
            "scores": {
              "time_linearity": 0.1,
              "pacing_velocity": 0.85,
              "threat_scale": 0.9,
              "protagonist_fate": 0.8,
              "conflict_style": 0.85,
              "price_type": 0.95
            },
            "score_space": "site-v1"
          },
          "NTSMR-2.3-claude-sonnet-4-6-low": {
            "pipeline_version": "2.3",
            "backend": "claude",
            "model": "claude-sonnet-4-6",
            "scores": {
              "time_linearity": 0.15,
              "pacing_velocity": 0.72,
              "threat_scale": 0.78,
              "protagonist_fate": 0.68,
              "conflict_style": 0.65,
              "price_type": 0.88
            },
            "score_space": "site-v1",
            "reasoning_effort": "low"
          },
          "NTSMR-2.4-claude-sonnet-4-6-low": {
            "pipeline_version": "2.4",
            "backend": "claude",
            "model": "claude-sonnet-4-6",
            "scores": {
              "time_linearity": 0.2,
              "pacing_velocity": 0.7,
              "threat_scale": 0.25,
              "protagonist_fate": 0.6,
              "conflict_style": 0.75,
              "price_type": 0.65
            },
            "score_space": "site-v1",
            "reasoning_effort": "low"
          },
          "NTSMR-2.5-claude-sonnet-4-6-low": {
            "pipeline_version": "2.5",
            "backend": "claude",
            "model": "claude-sonnet-4-6",
            "scores": {
              "time_linearity": 0.18,
              "pacing_velocity": 0.78,
              "threat_scale": 0.38,
              "protagonist_fate": 0.58,
              "conflict_style": 0.82,
              "price_type": 0.72
            },
            "score_space": "site-v1",
            "reasoning_effort": "low"
          },
          "NTSMR-2.5-balanced-glm-5+deepseek-v3.2": {
            "pipeline_version": "2.5",
            "backend": "openrouter",
            "model": "balanced-routing",
            "scores": {
              "time_linearity": 0.15,
              "pacing_velocity": 0.75,
              "threat_scale": 0.4,
              "protagonist_fate": 0.6,
              "conflict_style": 0.75,
              "price_type": 0.7
            },
            "score_space": "site-v1",
            "score_only": true,
            "source_run_label": "NTSMR-2.5-claude-sonnet-4-6-low"
          }
        }
      },
      "todorov_stages": {
        "equilibrium": "Ana and her fellow trainers work at Blue Gamma raising Neuroblast digients in Data Earth, a stable virtual world where digients like Jax and Lolly grow and learn language within a functioning commercial and social ecosystem.",
        "disruption": "Data Earth declines and is replaced by Real Space, but the Neuroblast engine is never ported to the new platform, leaving the digients stranded and socially isolated on a private Data Earth instance with no path to the broader social universe.",
        "recognition": "Ana recognizes that the private Data Earth instance is only a temporary fix and that funding a professional port of Neuroblast to Real Space is the only viable long-term solution, while simultaneously confronting the staggering cost that is feasible for a large company but not for a twenty-person user group.",
        "repair": "Ana and Derek pursue multiple funding avenues — nonprofit fundraising, corporate investors, demonstrations to Exponential Appliances, and negotiations with Binary Desire — ultimately resolved when Derek signs a contract selling copies of Marco and Polo to Binary Desire, providing the funds needed to begin the Neuroblast port.",
        "new_equilibrium": "With the port now funded and underway, Ana accepts the moral cost of Derek's decision and allows herself to imagine a future for Jax — incorporated, loved, part of a digient community able to sustain itself across platform shifts — before returning to the immediate work of his education."
      },
      "characters": [
        {
          "name": "Marco",
          "slug": "marco",
          "aliases": [],
          "role": "Neuroblast digient",
          "summary": "A Neuroblast digient owned by Derek who argues for his right to make mistakes and agrees to work for Binary Desire."
        },
        {
          "name": "Derek Brooks",
          "slug": "derek-brooks",
          "aliases": [
            "Derek"
          ],
          "role": "Avatar designer and digient owner",
          "summary": "Animator at Blue Gamma who designed the Xenotherian avatars. Owner of Marco and Polo, he undergoes a divorce with Wendy and develops feelings for Ana."
        },
        {
          "name": "Ana Alvarado",
          "slug": "ana-alvarado",
          "aliases": [
            "Ana"
          ],
          "role": "Digient trainer and owner",
          "summary": "A trainer at Blue Gamma and devoted owner of Jax. She leads efforts to protect the digients, organizes their refuge from griefers, and argues fiercely against their exploitation."
        },
        {
          "name": "Jax",
          "slug": "jax",
          "aliases": [],
          "role": "Neuroblast digient",
          "summary": "A digient owned by Ana. He is deeply attached to her, offering to earn money to pay for her time, and struggles with his physical limitations in his robot body."
        },
        {
          "name": "Robyn",
          "slug": "robyn",
          "aliases": [],
          "role": "Blue Gamma employee",
          "summary": "Ana's colleague who announces her pregnancy with her partner Linda and states she is 'past digients'."
        },
        {
          "name": "Wendy",
          "slug": "wendy",
          "aliases": [],
          "role": "Derek's wife",
          "summary": "Derek's soon-to-be ex-wife, whose disinterest in raising digients leads to their divorce."
        },
        {
          "name": "Kyle",
          "slug": "kyle",
          "aliases": [],
          "role": "Ana's boyfriend",
          "summary": "Ana's boyfriend who thinks she should accept Binary Desire's offer rather than work at Polytope."
        },
        {
          "name": "Felix Radcliffe",
          "slug": "felix-radcliffe",
          "aliases": [
            "Felix"
          ],
          "role": "Xenotherian hobbyist",
          "summary": "One of the last devoted members of the Xenotherian project on Data Mars, who contacts Derek to propose a first-contact experiment."
        },
        {
          "name": "Stuart Gust",
          "slug": "stuart-gust",
          "aliases": [
            "Stuart"
          ],
          "role": "User-group member",
          "summary": "A member of the digient user group who proposes suspending the digients to save money and questions Binary Desire's motives."
        },
        {
          "name": "Chase",
          "slug": "chase",
          "aliases": [],
          "role": "Binary Desire representative",
          "summary": "A corporate representative who pitches a contract to port Neuroblast in exchange for turning the digients into willing sex partners."
        },
        {
          "name": "Polo",
          "slug": "polo",
          "aliases": [],
          "role": "Digient",
          "summary": "Marco's brother, owned by Derek, who expresses curiosity about editing his reward map and agrees to the Binary Desire contract."
        },
        {
          "name": "Jeremy Brauer",
          "slug": "jeremy-brauer",
          "aliases": [
            "Brauer"
          ],
          "role": "Representative from Exponential Appliances",
          "summary": "A researcher who previously owned a Neuroblast digient named Fitz, seeking a superhuman AI rather than human-level digients."
        },
        {
          "name": "Frank Pearson",
          "slug": "frank-pearson",
          "aliases": [
            "Pearson"
          ],
          "role": "Representative from Exponential Appliances",
          "summary": "A researcher who rejects Ana's pitch because Exponential wants a superintelligent product, not a digient striving for legal personhood."
        },
        {
          "name": "Lolly",
          "slug": "lolly",
          "aliases": [],
          "role": "Digient",
          "summary": "A digient learning to write actual code who is presented to the Exponential Appliances representatives."
        },
        {
          "name": "Fitz",
          "slug": "fitz",
          "aliases": [],
          "role": "Digient",
          "summary": "A Jax-instance digient previously owned by Jeremy Brauer."
        },
        {
          "name": "Jennifer Chase",
          "slug": "jennifer-chase",
          "aliases": [],
          "role": "Representative from Binary Desire",
          "summary": "A contact at Binary Desire who confirms to Derek that customers could eventually incorporate their digients."
        }
      ],
      "frameworks_mapped": [
        "Protocol Fiction Mapping",
        "Actantial Model",
        "Todorov's Equilibrium",
        "The Freytag Pyramid",
        "Propp's Morphology",
        "Genette's Narrative",
        "The Monomyth",
        "Dan Harmon",
        "Save the Cat",
        "Kishōtenketsu",
        "The Three-Act Structure",
        "Lévi-Strauss's Binary Oppositions",
        "Cognitive Estrangement",
        "Bakhtin's Chronotope",
        "Aristotelian Poetics",
        "Jungian Archetypal Analysis",
        "Genette's Transtextuality"
      ],
      "score_reliability": {
        "state": "replicated-agree",
        "threshold": 0.2,
        "runs_total": 5,
        "versions_compared": [
          "2.5"
        ],
        "max_spread": 0.07,
        "contested": []
      }
    },
    {
      "slug": "jorge_luis_borges_the_lottery_in_babylon",
      "title": "The Lottery in Babylon",
      "author": "Jorge Luis Borges",
      "year": 1944,
      "medium": "short_story",
      "genre_tags": [],
      "tropes": [],
      "quadrant_scores": {
        "time_linearity": 0.65,
        "pacing_velocity": 0.8,
        "threat_scale": 0.75,
        "protagonist_fate": 0.65,
        "conflict_style": 0.85,
        "price_type": 0.85
      },
      "provenance": {
        "analysis_run": "NTSMR-2.5-claude-sonnet-4-6-low",
        "analysis_body_sha256": "a30366852e2a345d2674ef941fce0dccf7a80857b45ddc82f008975673695531",
        "synthesis": {
          "path": "nartopo-tools/artifacts/jorge_luis_borges_the_lottery_in_babylon.md.ntsmr-2-5-claude-sonnet-4-6-low.synthesis.json",
          "sha256": "f8cd90b185d55012340c8d5da5d4b086d23685e2d6a99608c136beb74e8fa361"
        },
        "report": {
          "path": "nartopo-tools/artifacts/jorge_luis_borges_the_lottery_in_babylon.md.ntsmr-2-5-claude-sonnet-4-6-low.report.json",
          "sha256": "c929d4f19a048db47fe71943fca6339e1d74e82a4ba01b6644db71d5d5e93e4e"
        },
        "source": {
          "path": "Jorge Luis Borges/The Lottery in Babylon.txt",
          "sha256": "c73401c325f52d312e215efaaa9cda466b3a0c0110a1940d7192bff188bd2601",
          "digest_observed_at": "2026-09-09",
          "digest_at_analysis_run": null,
          "edition": null,
          "edition_status": "unresolved"
        },
        "pipeline_revision_at_run": null,
        "verification": {
          "source": "unverified",
          "human_review": "unreviewed",
          "bibliography": "unverified"
        },
        "issues": [],
        "todorov_status": "recovered-from-synthesis",
        "work_identity": {
          "title": "The Lottery in Babylon",
          "author": "Jorge Luis Borges",
          "year": 1944
        }
      },
      "ntsmr": {
        "version": "2.5",
        "primary_run_label": "NTSMR-2.5-claude-sonnet-4-6-low",
        "runs": {
          "NTSMR-2.3-gemini-3.1-pro-preview": {
            "pipeline_version": "2.3",
            "backend": "gemini",
            "model": "gemini-3.1-pro-preview",
            "scores": {
              "time_linearity": 0.85,
              "pacing_velocity": 0.95,
              "threat_scale": 1,
              "protagonist_fate": 0.9,
              "conflict_style": 0.95,
              "price_type": 0.95
            },
            "score_space": "site-v1"
          },
          "NTSMR-2.3-claude-sonnet-4-6-low": {
            "pipeline_version": "2.3",
            "backend": "claude",
            "model": "claude-sonnet-4-6",
            "scores": {
              "time_linearity": 0.7,
              "pacing_velocity": 0.85,
              "threat_scale": 0.95,
              "protagonist_fate": 0.9,
              "conflict_style": 0.85,
              "price_type": 0.9
            },
            "score_space": "site-v1",
            "reasoning_effort": "low"
          },
          "NTSMR-2.4-claude-sonnet-4-6-low": {
            "pipeline_version": "2.4",
            "backend": "claude",
            "model": "claude-sonnet-4-6",
            "scores": {
              "time_linearity": 0.65,
              "pacing_velocity": 0.75,
              "threat_scale": 0.75,
              "protagonist_fate": 0.55,
              "conflict_style": 0.8,
              "price_type": 0.75
            },
            "score_space": "site-v1",
            "reasoning_effort": "low"
          },
          "NTSMR-2.5-claude-sonnet-4-6-low": {
            "pipeline_version": "2.5",
            "backend": "claude",
            "model": "claude-sonnet-4-6",
            "scores": {
              "time_linearity": 0.65,
              "pacing_velocity": 0.8,
              "threat_scale": 0.75,
              "protagonist_fate": 0.65,
              "conflict_style": 0.85,
              "price_type": 0.85
            },
            "score_space": "site-v1",
            "reasoning_effort": "low"
          },
          "NTSMR-2.5-balanced-glm-5+deepseek-v3.2": {
            "pipeline_version": "2.5",
            "backend": "openrouter",
            "model": "balanced-routing",
            "scores": {
              "time_linearity": 0.6,
              "pacing_velocity": 0.82,
              "threat_scale": 0.8,
              "protagonist_fate": 0.65,
              "conflict_style": 0.82,
              "price_type": 0.78
            },
            "score_space": "site-v1",
            "score_only": true,
            "source_run_label": "NTSMR-2.5-claude-sonnet-4-6-low"
          }
        }
      },
      "todorov_stages": {
        "equilibrium": "The Lottery exists as a simple commercial game run by barbers — copper coins for numbered rectangles, silver prizes for winners — a contained mercantile diversion with no coercive power and no stakes beyond money.",
        "disruption": "Merchants introduce unlucky draws carrying fines to revive public interest, then the Company sues defaulting losers who choose jail over payment, inadvertently granting the Company ecclesiastical and coercive authority; prison terms replace fines, and bodily consequences enter the system.",
        "recognition": "The Company, accused of favoritism, issues an apologia arguing that accepting errors strengthens chance rather than contravening it, triggering legal and mathematical debate that forces Babylon to consciously reckon with what the Lottery has become and what pure chance would demand.",
        "repair": "Lower-caste Babylonians stage demonstrations demanding equal access to the Lottery's terror and hope; the masses prevail and the Lottery becomes secret, free, and universal, with the Company assuming all public power and every free man automatically participating in drawings every sixty nights.",
        "new_equilibrium": "The Lottery is recursive and infinite — each drawing spawns further drawings that modify or reverse original decrees — and the Company has dissolved into the fabric of reality itself, indistinguishable from fate: wine amphorae contain vipers or talismans, scribes insert errors under oath, historians correct chance through undisclosed methods, and Babylon is nothing but an infinite game of chance."
      },
      "characters": [
        {
          "name": "The Narrator",
          "slug": "the-narrator",
          "aliases": [],
          "role": "Exile and Former Proconsul/Slave",
          "summary": "A Babylonian who has experienced extreme vicissitudes of fortune, including being a proconsul, a slave, and invisible, and who is now far from Babylon, hurriedly dictating his account before his ship sails."
        },
        {
          "name": "The Company",
          "slug": "the-company",
          "aliases": [],
          "role": "Omnipotent organization",
          "summary": "The secretive, all-powerful corporation that controls the Lottery, orchestrates the destiny of all Babylonians, and is the subject of numerous blasphemous heresies."
        },
        {
          "name": "C",
          "slug": "c",
          "aliases": [],
          "role": "Hypothetical individual",
          "summary": "A hypothetical person whose murder in a tavern serves as an example of a complex outcome orchestrated by multiple drawings of the Lottery."
        },
        {
          "name": "B",
          "slug": "b",
          "aliases": [],
          "role": "Hypothetical individual",
          "summary": "A hypothetical person whose mysterious apotheosis illustrates the intricate and inspired consequences of thirty or forty combined Lottery drawings."
        },
        {
          "name": "Antoninus Heliogabalus",
          "slug": "antoninus-heliogabalus",
          "aliases": [
            "Heliogabalus"
          ],
          "role": "Roman Emperor",
          "summary": "A historical figure raised in Asia Minor who wrote out fates on seashells for his dinner guests, functioning as a distant echo of the Babylonian Lottery."
        },
        {
          "name": "AElius Lampridius",
          "slug": "aelius-lampridius",
          "aliases": [],
          "role": "Historian",
          "summary": "The biographer who wrote the Life of Antoninus Heliogabalus, recording the emperor's lottery-like distribution of fates to his guests."
        }
      ],
      "frameworks_mapped": [
        "Protocol Fiction Mapping",
        "Actantial Model",
        "Todorov's Equilibrium",
        "The Freytag Pyramid",
        "Propp's Morphology",
        "Genette's Narrative",
        "The Monomyth",
        "Dan Harmon",
        "Save the Cat",
        "Kishōtenketsu",
        "The Three-Act Structure",
        "Lévi-Strauss's Binary Oppositions",
        "Cognitive Estrangement",
        "Bakhtin's Chronotope",
        "Aristotelian Poetics",
        "Jungian Archetypal Analysis",
        "Genette's Transtextuality"
      ],
      "score_reliability": {
        "state": "replicated-agree",
        "threshold": 0.2,
        "runs_total": 5,
        "versions_compared": [
          "2.5"
        ],
        "max_spread": 0.07,
        "contested": []
      }
    },
    {
      "slug": "ray_bradbury_the_martian_chronicles",
      "title": "The Martian Chronicles",
      "author": "Ray Bradbury",
      "year": 1950,
      "medium": "book",
      "genre_tags": [],
      "tropes": [],
      "quadrant_scores": {
        "time_linearity": 0.18,
        "pacing_velocity": 0.7,
        "threat_scale": 0.9,
        "protagonist_fate": 0.75,
        "conflict_style": 0.7,
        "price_type": 0.65
      },
      "provenance": {
        "analysis_run": "NTSMR-2.5-claude-sonnet-4-6-low",
        "analysis_body_sha256": "0308c8b0066a57d2b81a37160950853a918621c42f9d9f19b3bc70e92657cc6c",
        "synthesis": {
          "path": "nartopo-tools/artifacts/ray_bradbury_the_martian_chronicles.md.ntsmr-2-5-claude-sonnet-4-6-low.synthesis.json",
          "sha256": "33b46aac1b6e1ebc9e58a927c0ef7ce8730fdf2d06d4431761992689607c2610"
        },
        "report": {
          "path": "nartopo-tools/artifacts/ray_bradbury_the_martian_chronicles.md.ntsmr-2-5-claude-sonnet-4-6-low.report.json",
          "sha256": "5c8d42225c10fdb43b0f7a8bebb4a6f368c50c7e75f67edc26705e95b14c9cbc"
        },
        "source": {
          "path": "Ray Bradbury/The Martian Chronicles.txt",
          "sha256": "11b499311a44a257f0b2a96219d49a9cebfb47f5c67a7ec6de38bef696e5f4a7",
          "digest_observed_at": "2026-09-09",
          "digest_at_analysis_run": null,
          "edition": null,
          "edition_status": "unresolved"
        },
        "pipeline_revision_at_run": null,
        "verification": {
          "source": "unverified",
          "human_review": "unreviewed",
          "bibliography": "unverified"
        },
        "issues": [],
        "todorov_status": "recovered-from-synthesis",
        "work_identity": {
          "title": "The Martian Chronicles",
          "author": "Ray Bradbury",
          "year": 1950
        }
      },
      "ntsmr": {
        "version": "2.5",
        "primary_run_label": "NTSMR-2.5-claude-sonnet-4-6-low",
        "runs": {
          "NTSMR-2.4-claude-sonnet-4-6-low": {
            "pipeline_version": "2.4",
            "backend": "claude",
            "model": "claude-sonnet-4-6",
            "scores": {
              "time_linearity": 0.28,
              "pacing_velocity": 0.55,
              "threat_scale": 0.88,
              "protagonist_fate": 0.78,
              "conflict_style": 0.58,
              "price_type": 0.45
            },
            "score_space": "site-v1",
            "reasoning_effort": "low"
          },
          "NTSMR-2.5-claude-sonnet-4-6-low": {
            "pipeline_version": "2.5",
            "backend": "claude",
            "model": "claude-sonnet-4-6",
            "scores": {
              "time_linearity": 0.18,
              "pacing_velocity": 0.7,
              "threat_scale": 0.9,
              "protagonist_fate": 0.75,
              "conflict_style": 0.7,
              "price_type": 0.65
            },
            "score_space": "site-v1",
            "reasoning_effort": "low"
          },
          "NTSMR-2.5-balanced-glm-5+deepseek-v3.2": {
            "pipeline_version": "2.5",
            "backend": "openrouter",
            "model": "balanced-routing",
            "scores": {
              "time_linearity": 0.18,
              "pacing_velocity": 0.72,
              "threat_scale": 0.78,
              "protagonist_fate": 0.62,
              "conflict_style": 0.68,
              "price_type": 0.62
            },
            "score_space": "site-v1",
            "score_only": true,
            "source_run_label": "NTSMR-2.5-claude-sonnet-4-6-low"
          }
        }
      },
      "todorov_stages": {
        "equilibrium": "Mars exists as an ancient, self-contained civilization and Earth as a separate world; the two are unknown to each other, each stable within its own sphere. Martian society follows its own rhythms, protocols, and cosmology, while Earth tends its own affairs before the rocket age.",
        "disruption": "Earth rockets begin arriving on Mars, triggering a cascade of failed contacts, misreadings, and violence—each expedition met with Martian incomprehension, bureaucratic dismissal, or lethal illusion—while on Earth, atomic war destroys civilization, emptying the Martian colonies and leaving Mars nearly uninhabited.",
        "recognition": "The recognition is distributed across multiple characters: Captain Black lies awake realizing the Martian illusion has lured his crew to their deaths; Wilder perceives that Spender's revolt names the true cost of colonization; Wilder again recognizes Hathaway's family as robots; Timothy deduces that Dad has destroyed the rocket deliberately and that Earth's radio silence means total annihilation.",
        "repair": "Attempts at repair take multiple forms across the chronicle: Driscoll plants thousands of trees to oxygenate Mars for human habitation; Wilder shoots Spender to restore crew order while honoring Spender's philosophy; Dad leads his family to Mars as deliberate refugees, destroying their rocket and government papers to sever ties with the old world and begin anew.",
        "new_equilibrium": "A radically altered Mars emerges: the original Martian civilization is gone, Earth is destroyed, and the handful of human survivors on Mars must become Martians themselves. Dad leads the family to the canal and reveals their own reflections as 'the Martians,' declaring the family the new inheritors of Mars—a new equilibrium built not on conquest but on inheritance by necessity, with humanity reborn in a Martian context."
      },
      "characters": [
        {
          "name": "Ylla",
          "slug": "ylla",
          "aliases": [
            "Mrs. K"
          ],
          "role": "Protagonist (Ylla)",
          "summary": "Martian woman who receives telepathic dreams of an approaching Earth man; sings Earth songs involuntarily; longs for contact her husband suppresses."
        },
        {
          "name": "Mr. K",
          "slug": "mr-k",
          "aliases": [
            "Yll"
          ],
          "role": "Antagonist / Ylla's husband",
          "summary": "Cold, controlling Martian husband who dismisses Ylla's dreams and will later prevent her from meeting the astronaut."
        },
        {
          "name": "Mr. Xxx",
          "slug": "mr-xxx",
          "aliases": [],
          "role": "Martian psychologist / bureaucratic opponent",
          "summary": "Martian psychologist who diagnoses the Second Expedition captain as a 'psychotic genius,' shoots the crew, then shoots himself when they fail to dissolve."
        },
        {
          "name": "Captain (Second Expedition)",
          "slug": "captain-second-expedition",
          "aliases": [
            "Jonathan Williams"
          ],
          "role": "Earth expedition captain",
          "summary": "Leader of the Second Expedition who attempts to prove his reality to Martian authorities and is shot by Mr. Xxx."
        },
        {
          "name": "The Taxpayer",
          "slug": "the-taxpayer",
          "aliases": [
            "Pritchard"
          ],
          "role": "Minor character / civilian",
          "summary": "Frantic Ohio citizen who demands passage on the Third Expedition rocket to escape an atomic war; dragged away by police."
        },
        {
          "name": "Captain John Black",
          "slug": "captain-john-black",
          "aliases": [],
          "role": "Commander, Third Expedition",
          "summary": "Leader of the Third Expedition who deduces the Martian trap too late; trapped in a simulacrum of his 1926 hometown, killed in his 'childhood bedroom.'"
        },
        {
          "name": "Lustig",
          "slug": "lustig",
          "aliases": [],
          "role": "Crew, Third Expedition",
          "summary": "Crew member who proposes the time-travel hypothesis and is lured to his death by simulated grandparents."
        },
        {
          "name": "Hinkston",
          "slug": "hinkston",
          "aliases": [],
          "role": "Crew, Third Expedition",
          "summary": "Crew member who originally suggested the hypnosis/crowd-hysteria theory to explain the simulacrum town."
        },
        {
          "name": "Spender",
          "slug": "spender",
          "aliases": [
            "Jeff Spender",
            "The Lonely One"
          ],
          "role": "Crew / rogue killer, Fourth Expedition",
          "summary": "Crew member who discovers the Martian dead and adopts their philosophy; kills six crewmates out of grief and rage at their disrespect; shot by Captain Wilder."
        },
        {
          "name": "Captain Wilder",
          "slug": "captain-wilder",
          "aliases": [],
          "role": "Commander, Fourth Expedition",
          "summary": "Measured, philosophically sympathetic commander who understands Spender's motives but must stop him; shoots Spender cleanly and buries him with Martian honors."
        },
        {
          "name": "Biggs",
          "slug": "biggs",
          "aliases": [],
          "role": "Crewman / catalyst",
          "summary": "Loud, disrespectful crewman who vomits on ancient Martian tile; the act triggers Spender's break; killed by Spender on his return."
        },
        {
          "name": "Cheroke",
          "slug": "cheroke",
          "aliases": [],
          "role": "Crewman, Fourth Expedition",
          "summary": "Crewman with Cherokee heritage who sympathizes with Spender's Martian-defender stance when asked."
        },
        {
          "name": "Sam Parkhill",
          "slug": "sam-parkhill",
          "aliases": [
            "Sam"
          ],
          "role": "Crewman, Fourth Expedition",
          "summary": "Colonist operating a sand ship who shoots a Martian girl warning him of something important; survives a Martian fleet confrontation to find Earth has been destroyed just as he prepared his hot-dog stand for incoming settlers."
        },
        {
          "name": "Alice Hathaway",
          "slug": "alice-hathaway",
          "aliases": [],
          "role": "Stranded colonist / physician-geologist",
          "summary": "A robot constructed by Hathaway to replicate his dead wife; cannot age, cannot cry, calmly explains her nature and purpose to Wilder after Hathaway's death."
        },
        {
          "name": "Benjamin Driscoll",
          "slug": "benjamin-driscoll",
          "aliases": [
            "Mr. Benjamin Driscoll",
            "Mr. Driscoll"
          ],
          "role": "protagonist",
          "summary": "Solitary tree-planter on Mars; fainted on arrival from thin air and dedicated himself to oxygenating the planet by planting thousands of Earth trees across the wilderness."
        },
        {
          "name": "Tomás Gomez",
          "slug": "toms-gomez",
          "aliases": [
            "Tomás"
          ],
          "role": "protagonist",
          "summary": "Young Mexican-American colonist driving a truck to a party; receptive listener to the old gas-station attendant's Martian philosophy."
        },
        {
          "name": "Old Man (gas station)",
          "slug": "old-man-gas-station",
          "aliases": [
            "Pop"
          ],
          "role": "helper",
          "summary": "Elderly gas-station attendant who came to Mars to retire; advocates abandoning Earth expectations and embracing Martian difference as perpetual novelty."
        },
        {
          "name": "Samuel Teece",
          "slug": "samuel-teece",
          "aliases": [
            "Mrs. Teece",
            "Teece",
            "Samuel W. Teece"
          ],
          "role": "opponent",
          "summary": "Racist hardware-store owner who rages impotently at the mass departure of Black residents for Mars, demanding militia intervention while his wife mourns the loss of her housekeeper."
        },
        {
          "name": "Grandpa Quartermain",
          "slug": "grandpa-quartermain",
          "aliases": [
            "Grandpa"
          ],
          "role": "minor",
          "summary": "Elder on the hardware porch who calmly informs Teece of the logistics of the Black exodus—self-built rockets, African construction in secret."
        },
        {
          "name": "Mr. William Stendahl",
          "slug": "mr-william-stendahl",
          "aliases": [
            "Stendahl"
          ],
          "role": "protagonist",
          "summary": "Wealthy aesthete who built a replica of Poe's House of Usher on Mars as revenge against the Society for the Prevention of Fantasy; orchestrates elaborate Poe-themed murders of censors."
        },
        {
          "name": "Pikes",
          "slug": "pikes",
          "aliases": [],
          "role": "helper",
          "summary": "Stendahl's robotic-effects technician; constructed the murderous literary automata; formerly a filmmaker whose work was seized and burned by censors."
        },
        {
          "name": "Garrett",
          "slug": "garrett",
          "aliases": [],
          "role": "opponent",
          "summary": "Government inspector from the Society for the Prevention of Fantasy; lured to the House of Usher and walled alive in a catacomb enacting Poe's 'Cask of Amontillado.'"
        },
        {
          "name": "The Martian (shapeshifter)",
          "slug": "the-martian-shapeshifter",
          "aliases": [
            "Tom",
            "Lavinia",
            "the boy",
            "the shadow",
            "the quiet voice"
          ],
          "role": "actantial:object",
          "summary": "Unnamed Martian who takes the form of the LaFarges' dead son Tom and later the Spauldings' dead daughter Lavinia; trapped by the mental force of the Spaulding household, ultimately agrees to return with LaFarge before being overwhelmed."
        },
        {
          "name": "LaFarge",
          "slug": "lafarge",
          "aliases": [
            "Anna",
            "the old woman",
            "the old man"
          ],
          "role": "protagonist",
          "summary": "Elderly colonist who tracks the shapeshifting Martian through town at night, pleading with it to return home as their dead son Tom rather than remain as the Spauldings' Lavinia."
        },
        {
          "name": "Elma",
          "slug": "elma",
          "aliases": [],
          "role": "minor",
          "summary": "Sam's wife on the sand ship; cold, observant witness to his violence and delusion; her eyes brighten only when Earth's destruction becomes visible."
        },
        {
          "name": "Martian girl (sand ship)",
          "slug": "martian-girl-sand-ship",
          "aliases": [
            "the girl",
            "the vision"
          ],
          "role": "actantial:sender",
          "summary": "Unnamed Martian who appears on Sam's sand ship warning him to return for an important meeting; shot by Sam and dissolves like melting snow."
        },
        {
          "name": "Walter Gripp",
          "slug": "walter-gripp",
          "aliases": [
            "Gripp"
          ],
          "role": "protagonist",
          "summary": "Tall, thin man with a remote placer mine who wanders an evacuated Martian town alone for a week, enjoying freedom but growing desperate with loneliness; hears a telephone ringing."
        },
        {
          "name": "Williamson",
          "slug": "williamson",
          "aliases": [],
          "role": "Crew member",
          "summary": "Crew member who first notices John Hathaway's impossible age; attempts to shoot the robots but cannot bring himself to do it."
        },
        {
          "name": "John (Hathaway's son)",
          "slug": "john-hathaways-son",
          "aliases": [],
          "role": "Robot simulacrum / surrogate son",
          "summary": "Robot built to replicate Hathaway's son; claims to be twenty-three despite the chronological impossibility that triggers Wilder's suspicion."
        },
        {
          "name": "Dad",
          "slug": "dad",
          "aliases": [
            "William Thomas"
          ],
          "role": "Father / former state governor",
          "summary": "Planned the family's escape to Mars for twenty years; deliberately destroys their rocket to prevent return or detection; burns Earth documents and reveals the apocalypse to his sons."
        },
        {
          "name": "Timothy",
          "slug": "timothy",
          "aliases": [
            "Tim",
            "Timmy"
          ],
          "role": "Eldest son / observant child",
          "summary": "The eldest Thomas boy, perceptive enough to sense the adults' concealed fear and understand what is really happening; plays along with Dad's 'game' framing to protect his brothers."
        },
        {
          "name": "Michael",
          "slug": "michael",
          "aliases": [
            "Mike"
          ],
          "role": "Youngest son",
          "summary": "The youngest Thomas boy; enthusiastic, asks direct questions, cries when told Earth is gone, wants to see Martians."
        },
        {
          "name": "Robert",
          "slug": "robert",
          "aliases": [],
          "role": "Middle son",
          "summary": "The middle Thomas boy, eight years old; participates in the outing without grasping its full significance."
        },
        {
          "name": "Mom",
          "slug": "mom",
          "aliases": [
            "Alice"
          ],
          "role": "Mother",
          "summary": "The Thomas mother; slender, perceptive, reads the situation through her husband's eyes and accepts their new fate; pregnant (hinted by Dad's 'be careful of your sister')."
        }
      ],
      "frameworks_mapped": [
        "Protocol Fiction Mapping",
        "Actantial Model",
        "Todorov's Equilibrium",
        "The Freytag Pyramid",
        "Propp's Morphology",
        "Genette's Narrative",
        "The Monomyth",
        "Dan Harmon",
        "Save the Cat",
        "Kishōtenketsu",
        "The Three-Act Structure",
        "Lévi-Strauss's Binary Oppositions",
        "Cognitive Estrangement",
        "Bakhtin's Chronotope",
        "Aristotelian Poetics",
        "Jungian Archetypal Analysis",
        "Genette's Transtextuality"
      ],
      "score_reliability": {
        "state": "replicated-agree",
        "threshold": 0.2,
        "runs_total": 3,
        "versions_compared": [
          "2.5"
        ],
        "max_spread": 0.13,
        "contested": []
      }
    },
    {
      "slug": "ted_chiang_the_merchant_and_the_alchemist_s_gate",
      "title": "The Merchant and the Alchemist's Gate",
      "author": "Ted Chiang",
      "year": 2019,
      "medium": "short_story",
      "genre_tags": [],
      "tropes": [],
      "quadrant_scores": {
        "time_linearity": 0.85,
        "pacing_velocity": 0.78,
        "threat_scale": 0.2,
        "protagonist_fate": 0.48,
        "conflict_style": 0.88,
        "price_type": 0.85
      },
      "provenance": {
        "analysis_run": "NTSMR-2.5-claude-sonnet-4-6-low",
        "analysis_body_sha256": "8582ccec90a29e2717fccdb3cab13f411f69c74bbac06911e761d0800e2e8dbd",
        "synthesis": {
          "path": "nartopo-tools/artifacts/ted_chiang_the_merchant_and_the_alchemist_s_gate.md.ntsmr-2-5-claude-sonnet-4-6-low.synthesis.json",
          "sha256": "ff29a196003107800caba323f24314fdc24a35cf6524d65cb30a7dca2d56fdb7"
        },
        "report": {
          "path": "nartopo-tools/artifacts/ted_chiang_the_merchant_and_the_alchemist_s_gate.md.ntsmr-2-5-claude-sonnet-4-6-low.report.json",
          "sha256": "380e4e19cd083a33c280c27bdd6d8cd2d60ccf9b5ae9c242b2cdc56d25943446"
        },
        "source": {
          "path": "Ted Chiang/The Merchant and the Alchemist's Gate.txt",
          "sha256": "b0c3476499048363b992294aa9421fc3d775ac7301a32a79e8f62ef55fe688dc",
          "digest_observed_at": "2026-09-09",
          "digest_at_analysis_run": null,
          "edition": null,
          "edition_status": "unresolved"
        },
        "pipeline_revision_at_run": null,
        "verification": {
          "source": "unverified",
          "human_review": "unreviewed",
          "bibliography": "unverified"
        },
        "issues": [],
        "todorov_status": "recovered-from-synthesis",
        "work_identity": {
          "title": "The Merchant and the Alchemist's Gate",
          "author": "Ted Chiang",
          "year": 2019
        }
      },
      "ntsmr": {
        "version": "2.5",
        "primary_run_label": "NTSMR-2.5-claude-sonnet-4-6-low",
        "runs": {
          "NTSMR-2.3-gemini-3.1-pro-preview": {
            "pipeline_version": "2.3",
            "backend": "gemini",
            "model": "gemini-3.1-pro-preview",
            "scores": {
              "time_linearity": 0.9,
              "pacing_velocity": 0.8,
              "threat_scale": 0.15,
              "protagonist_fate": 0.9,
              "conflict_style": 0.9,
              "price_type": 0.95
            },
            "score_space": "site-v1"
          },
          "NTSMR-2.3-claude-sonnet-4-6-low": {
            "pipeline_version": "2.3",
            "backend": "claude",
            "model": "claude-sonnet-4-6",
            "scores": {
              "time_linearity": 0.85,
              "pacing_velocity": 0.78,
              "threat_scale": 0.2,
              "protagonist_fate": 0.65,
              "conflict_style": 0.82,
              "price_type": 0.88
            },
            "score_space": "site-v1",
            "reasoning_effort": "low"
          },
          "NTSMR-2.4-claude-sonnet-4-6-low": {
            "pipeline_version": "2.4",
            "backend": "claude",
            "model": "claude-sonnet-4-6",
            "scores": {
              "time_linearity": 0.75,
              "pacing_velocity": 0.7,
              "threat_scale": 0.12,
              "protagonist_fate": 0.28,
              "conflict_style": 0.8,
              "price_type": 0.75
            },
            "score_space": "site-v1",
            "reasoning_effort": "low"
          },
          "NTSMR-2.5-claude-sonnet-4-6-low": {
            "pipeline_version": "2.5",
            "backend": "claude",
            "model": "claude-sonnet-4-6",
            "scores": {
              "time_linearity": 0.85,
              "pacing_velocity": 0.78,
              "threat_scale": 0.2,
              "protagonist_fate": 0.48,
              "conflict_style": 0.88,
              "price_type": 0.85
            },
            "score_space": "site-v1",
            "reasoning_effort": "low"
          },
          "NTSMR-2.5-balanced-glm-5+deepseek-v3.2": {
            "pipeline_version": "2.5",
            "backend": "openrouter",
            "model": "balanced-routing",
            "scores": {
              "time_linearity": 0.8,
              "pacing_velocity": 0.75,
              "threat_scale": 0.3,
              "protagonist_fate": 0.6,
              "conflict_style": 0.8,
              "price_type": 0.8
            },
            "score_space": "site-v1",
            "score_only": true,
            "source_run_label": "NTSMR-2.5-claude-sonnet-4-6-low"
          }
        }
      },
      "todorov_stages": {
        "equilibrium": "Fuwaad ibn Abbas lives as a prosperous Baghdad fabric merchant but is inwardly troubled, his heart unable to find peace through luxury or alms — a stable but spiritually incomplete status quo established before his encounter with the Gate of Years.",
        "disruption": "Bashaarat demonstrates the Gate of Seconds and then the Gate of Years, introducing Fuwaad to the possibility of temporal travel; this ruptures Fuwaad's settled worldview and reactivates his unresolved guilt over Najya's death, compelling him to seek passage to the past.",
        "recognition": "After hearing all three embedded tales — particularly that of Ajib's closed causal loop — Fuwaad grasps that the past is fixed and unchangeable, yet declares he still wishes to use the Gate to travel backward, not forward; he understands the stakes of his journey even as he undertakes it.",
        "repair": "Fuwaad travels to Cairo, passes through Bashaarat's Gate of Years into the Baghdad of twenty years prior, attempts to warn Najya and alter events, witnesses the mosque collapse, and finally receives Najya's dying message through the nurse Maimuna — learning that her last thoughts were of him and that their life together had made her happy.",
        "new_equilibrium": "Fuwaad stands before the Caliph penniless but at peace, having changed nothing in the past yet transformed entirely in his understanding; he articulates the story's achieved wisdom — that repentance, atonement, and forgiveness are all that exist, and all that is enough — a new equilibrium defined not by restored prosperity but by spiritual reconciliation."
      },
      "characters": [
        {
          "name": "Fuwaad ibn Abbas",
          "slug": "fuwaad-ibn-abbas",
          "aliases": [],
          "role": "Protagonist and Narrator",
          "summary": "A prosperous fabric merchant from Baghdad who recounts his time-travel journey to the Caliph. He used the Gate of Years to travel to his past in hopes of saving his deceased wife, Najya."
        },
        {
          "name": "Hassan",
          "slug": "hassan",
          "aliases": [
            "Hassan al-Hubbaul"
          ],
          "role": "The Fortunate Rope-Maker",
          "summary": "A rope-maker from Cairo who visits his older self, learns the location of a buried treasure, and becomes a wealthy, generous merchant."
        },
        {
          "name": "Ajib",
          "slug": "ajib",
          "aliases": [
            "Ajib ibn Taher"
          ],
          "role": "The Weaver Who Stole From Himself",
          "summary": "A poor weaver who travels to the future, discovers his older self is a miser, and steals his chest of gold, only to eventually become that same miserly man."
        },
        {
          "name": "Taahira",
          "slug": "taahira",
          "aliases": [],
          "role": "Ajib's wife",
          "summary": "A woman who works with her apothecary brother and is desired by Ajib. After Ajib gains wealth, they marry, but she later becomes miserly alongside him."
        },
        {
          "name": "Raniya",
          "slug": "raniya",
          "aliases": [],
          "role": "Hassan's wife",
          "summary": "Hassan's clever wife who travels back in time to thwart thieves and secretly takes her younger husband as a lover to teach him the art of love."
        },
        {
          "name": "Najya",
          "slug": "najya",
          "aliases": [],
          "role": "Fuwaad's deceased wife",
          "summary": "Fuwaad's wife who died twenty years ago after a mosque wall collapsed, shortly after an argument with him."
        },
        {
          "name": "Maimuna",
          "slug": "maimuna",
          "aliases": [],
          "role": "Assistant to the physicians",
          "summary": "A medical assistant at the bimaristan who tended to Najya in her final moments and delivers her forgiving last message to Fuwaad."
        },
        {
          "name": "The Caliph",
          "slug": "the-caliph",
          "aliases": [
            "Commander of the Faithful",
            "Your Majesty"
          ],
          "role": "Royal auditor",
          "summary": "The monarch of Baghdad to whom Fuwaad is recounting his extraordinary life story."
        },
        {
          "name": "Bashaarat",
          "slug": "bashaarat",
          "aliases": [
            "The shopkeeper"
          ],
          "role": "Alchemist and Shopkeeper",
          "summary": "A learned inventor and shopkeeper who created the Gate of Seconds and the Gate of Years. He shares tales of past time travelers with Fuwaad."
        }
      ],
      "frameworks_mapped": [
        "Protocol Fiction Mapping",
        "Actantial Model",
        "Todorov's Equilibrium",
        "The Freytag Pyramid",
        "Propp's Morphology",
        "Genette's Narrative",
        "The Monomyth",
        "Dan Harmon",
        "Save the Cat",
        "Kishōtenketsu",
        "The Three-Act Structure",
        "Lévi-Strauss's Binary Oppositions",
        "Cognitive Estrangement",
        "Bakhtin's Chronotope",
        "Aristotelian Poetics",
        "Jungian Archetypal Analysis",
        "Genette's Transtextuality"
      ],
      "score_reliability": {
        "state": "replicated-agree",
        "threshold": 0.2,
        "runs_total": 5,
        "versions_compared": [
          "2.5"
        ],
        "max_spread": 0.12,
        "contested": []
      }
    },
    {
      "slug": "kim_stanley_robinson_the_ministry_for_the_future",
      "title": "The Ministry for the Future",
      "author": "Kim Stanley Robinson",
      "year": 2020,
      "medium": "book",
      "genre_tags": [
        "science fiction",
        "climate fiction"
      ],
      "tropes": [],
      "quadrant_scores": {
        "time_linearity": 0.45,
        "pacing_velocity": 0.72,
        "threat_scale": 0.8,
        "protagonist_fate": 0.75,
        "conflict_style": 0.7,
        "price_type": 0.75
      },
      "baseline_quadrant_scores": {
        "time_linearity": 0.75,
        "pacing_velocity": 0.65,
        "threat_scale": 0.95,
        "protagonist_fate": 0.6,
        "conflict_style": 0.5,
        "price_type": 0.85
      },
      "provenance": {
        "analysis_run": "NTSMR-2.5-claude-sonnet-4-6-low",
        "analysis_body_sha256": "2de4f4896805d7c076788bb550c0e0586022bc9ec876081cab5f6690e0b4555f",
        "synthesis": {
          "path": "nartopo-tools/artifacts/kim_stanley_robinson_the_ministry_for_the_future.md.ntsmr-2-5-claude-sonnet-4-6-low.synthesis.json",
          "sha256": "ddc78df0a2409680985a7b95023f010b58b53c319bd59d317c288a102e39f6b3"
        },
        "report": {
          "path": "nartopo-tools/artifacts/kim_stanley_robinson_the_ministry_for_the_future.md.ntsmr-2-5-claude-sonnet-4-6-low.report.json",
          "sha256": "fcb076600368b1115f2ee834dc75a8b3b266e5f2a0811693cef96fa63762cfc8"
        },
        "source": {
          "path": "Kim Stanley Robinson/The Ministry for the Future (2020).txt",
          "sha256": "801ef7345e0b0158f18fd537ddab4572d178a1c64e44710e0530713969e3cbc3",
          "digest_observed_at": "2026-09-09",
          "digest_at_analysis_run": null,
          "edition": null,
          "edition_status": "unresolved"
        },
        "pipeline_revision_at_run": null,
        "verification": {
          "source": "unverified",
          "human_review": "unreviewed",
          "bibliography": "unverified"
        },
        "issues": [],
        "todorov_status": "recovered-from-synthesis",
        "work_identity": {
          "title": "The Ministry for the Future",
          "author": "Kim Stanley Robinson",
          "year": 2020
        }
      },
      "ntsmr": {
        "version": "2.5",
        "primary_run_label": "NTSMR-2.5-claude-sonnet-4-6-low",
        "runs": {
          "NTSMR-2.3-gemini-3.1-pro-preview": {
            "pipeline_version": "2.3",
            "backend": "gemini",
            "model": "gemini-3.1-pro-preview",
            "scores": {
              "time_linearity": 0.85,
              "pacing_velocity": 0.75,
              "threat_scale": 0.95,
              "protagonist_fate": 0.8,
              "conflict_style": 0.7,
              "price_type": 0.9
            },
            "score_space": "site-v1"
          },
          "NTSMR-2.3-claude-sonnet-4-6-low": {
            "pipeline_version": "2.3",
            "backend": "claude",
            "model": "claude-sonnet-4-6",
            "scores": {
              "time_linearity": 0.82,
              "pacing_velocity": 0.75,
              "threat_scale": 0.88,
              "protagonist_fate": 0.65,
              "conflict_style": 0.72,
              "price_type": 0.78
            },
            "score_space": "site-v1",
            "reasoning_effort": "low"
          },
          "NTSMR-2.4-claude-sonnet-4-6-low": {
            "pipeline_version": "2.4",
            "backend": "claude",
            "model": "claude-sonnet-4-6",
            "scores": {
              "time_linearity": 0.65,
              "pacing_velocity": 0.7,
              "threat_scale": 0.85,
              "protagonist_fate": 0.65,
              "conflict_style": 0.6,
              "price_type": 0.55
            },
            "score_space": "site-v1",
            "reasoning_effort": "low"
          },
          "NTSMR-2.5-claude-sonnet-4-6-low": {
            "pipeline_version": "2.5",
            "backend": "claude",
            "model": "claude-sonnet-4-6",
            "scores": {
              "time_linearity": 0.45,
              "pacing_velocity": 0.72,
              "threat_scale": 0.8,
              "protagonist_fate": 0.75,
              "conflict_style": 0.7,
              "price_type": 0.75
            },
            "score_space": "site-v1",
            "reasoning_effort": "low"
          },
          "NTSMR-2.5-balanced-glm-5+deepseek-v3.2": {
            "pipeline_version": "2.5",
            "backend": "openrouter",
            "model": "balanced-routing",
            "scores": {
              "time_linearity": 0.55,
              "pacing_velocity": 0.7,
              "threat_scale": 0.85,
              "protagonist_fate": 0.8,
              "conflict_style": 0.7,
              "price_type": 0.7
            },
            "score_space": "site-v1",
            "score_only": true,
            "source_run_label": "NTSMR-2.5-claude-sonnet-4-6-low"
          }
        }
      },
      "todorov_stages": {
        "equilibrium": "Frank exists in a fragile post-trauma stasis: living fugitively in Zurich under the alias Jacob Salzman, managing severe PTSD from the India heat wave through therapy and wandering, containing his violent ideation against climate criminals without acting on it.",
        "disruption": "Frank's accumulated rage breaks its containment across two violent acts — he strikes Edmund dead with driftwood at Lake Maggiore, then escalates to kidnapping Mary Murphy at gunpoint on a Zurich street, forcing her into her own apartment for a night of confrontation.",
        "recognition": "The recognition is distributed: Frank recognizes the consequences of his actions when the police arrive at Mary's door and he must escape down the balcony, understanding he is now a fugitive wanted for both the Lake Maggiore killing and the kidnapping of a UN ministry head.",
        "repair": "Frank retreats into his pre-established survival infrastructure — the Jacob Salzman alias with fake passport and credit card, the garden shed on the Zuriberg with its pried-off wall panel, the low-profile routines of eating at camera-free stalls and walking the surveilled city without triggering detection.",
        "new_equilibrium": "Frank settles into a degraded, hunted stasis: hiding a kilometer or two from Mary's apartment, aware that the Salzman alias may eventually have to be abandoned, but surviving for the time being in the interstices of Zurich's surveillance grid — the same fugitive life as before, but now under active police search and with two killings behind him."
      },
      "characters": [
        {
          "name": "Frank",
          "slug": "frank",
          "aliases": [
            "Jacob Salzman"
          ],
          "role": "PTSD survivor and eco-terrorist",
          "summary": "A survivor of a devastating Indian heat wave who suffers from severe PTSD, takes a field job in Antarctica, attempts to assassinate a climate criminal, and ultimately kidnaps the Minister for the Future to demand radical action before hiding under a false identity."
        },
        {
          "name": "Therapist",
          "slug": "therapist",
          "aliases": [],
          "role": "Mental health professional",
          "summary": "A therapist who attempts to treat Frank's trauma using EMDR and cognitive behavioral therapy techniques, which he resists."
        },
        {
          "name": "Unnamed Slave Narrator",
          "slug": "unnamed-slave-narrator",
          "aliases": [],
          "role": "Freed captive",
          "summary": "A captive on a fishing boat who recounts being liberated when armed militants hijack their vessel and sink it, leaving the captain to his fate."
        },
        {
          "name": "Edmund",
          "slug": "edmund",
          "aliases": [],
          "role": "Wealthy elite",
          "summary": "An arrogant wealthy attendee at a lavish lakeside party who confronts a disgruntled beachcomber and is instantly killed with a piece of driftwood."
        },
        {
          "name": "Cinzia",
          "slug": "cinzia",
          "aliases": [],
          "role": "Wealthy elite",
          "summary": "The host of an extravagant, highly secure party at her property on the Swiss side of Lake Maggiore."
        },
        {
          "name": "Unnamed Assailant",
          "slug": "unnamed-assailant",
          "aliases": [
            "Beachcomber dude"
          ],
          "role": "Eco-vigilante",
          "summary": "A skinny, bedraggled man who approaches Cinzia's party, accuses the attendees of burning up the world, and murders Edmund before escaping into the lake."
        },
        {
          "name": "Adele Elia",
          "slug": "adele-elia",
          "aliases": [],
          "role": "Glaciologist",
          "summary": "An experienced glaciologist with eight years on glaciers who attends the SCAR meeting and evaluates Slawek's subglacial pumping proposal."
        },
        {
          "name": "Bob Wharton",
          "slug": "bob-wharton",
          "aliases": [],
          "role": "Scientist",
          "summary": "A scientist attending the SCAR meeting who critically assesses the energy requirements and feasibility of geoengineering ideas."
        },
        {
          "name": "Pete Griffen",
          "slug": "pete-griffen",
          "aliases": [],
          "role": "Glaciologist",
          "summary": "A gregarious American glaciologist with twelve years on the Ice who introduces Slawek to Adele and Bob and enthusiastically encourages him to share his idea."
        },
        {
          "name": "Slawek",
          "slug": "slawek",
          "aliases": [],
          "role": "Glaciologist",
          "summary": "An introverted glaciologist who has theorized that pumping out subglacial meltwater could slow the acceleration of glaciers, though he fears the political backlash of becoming a geoengineer."
        },
        {
          "name": "Mary",
          "slug": "mary",
          "aliases": [
            "Minister Murphy"
          ],
          "role": "Head of the UN Ministry for the Future",
          "summary": "The leader of the Ministry for the Future who is taken hostage in her apartment by Frank, defends her agency's adherence to the rule of law, and ultimately lies to police to protect Frank from being shot."
        }
      ],
      "frameworks_mapped": [
        "Protocol Fiction Mapping",
        "Actantial Model",
        "Todorov's Equilibrium",
        "The Freytag Pyramid",
        "Propp's Morphology",
        "Genette's Narrative",
        "The Monomyth",
        "Dan Harmon",
        "Save the Cat",
        "Kishōtenketsu",
        "The Three-Act Structure"
      ],
      "score_reliability": {
        "state": "replicated-agree",
        "threshold": 0.2,
        "runs_total": 5,
        "versions_compared": [
          "2.5"
        ],
        "max_spread": 0.1,
        "contested": []
      }
    },
    {
      "slug": "robert_a_heinlein_the_moon_is_a_harsh_mistress",
      "title": "The Moon Is a Harsh Mistress",
      "author": "Robert A. Heinlein",
      "year": 1966,
      "medium": "book",
      "genre_tags": [
        "sf",
        "political sf",
        "revolution fiction"
      ],
      "tropes": [],
      "quadrant_scores": {
        "time_linearity": 0.28,
        "pacing_velocity": 0.52,
        "threat_scale": 0.88,
        "protagonist_fate": 0.48,
        "conflict_style": 0.45,
        "price_type": 0.62
      },
      "provenance": {
        "analysis_run": "NTSMR-2.5-claude-sonnet-4-6-low",
        "analysis_body_sha256": "b9e4daa815ab3ea48c0d31c77880daa6cafb3d82e6eda0634c01cc0ab33f47e1",
        "synthesis": {
          "path": "nartopo-tools/artifacts/robert_a_heinlein_the_moon_is_a_harsh_mistress.md.ntsmr-2-5-claude-sonnet-4-6-low.synthesis.json",
          "sha256": "43f9a179a71f10f3dae99255bb6a5921ea509af0a23d811ef8c7e4d92d6d1277"
        },
        "report": {
          "path": "nartopo-tools/artifacts/robert_a_heinlein_the_moon_is_a_harsh_mistress.md.ntsmr-2-5-claude-sonnet-4-6-low.report.json",
          "sha256": "06a5cd42473bbdb89261b21eef87b193b57f63bad210839874548b41226c48e0"
        },
        "source": {
          "path": "Robert A. Heinlein/The Moon Is a Harsh Mistress.txt",
          "sha256": "a44e730d9bcf913bc2a5bd2d10ee167a994c84f429e61791548bf998159bfd80",
          "digest_observed_at": "2026-09-09",
          "digest_at_analysis_run": null,
          "edition": null,
          "edition_status": "unresolved"
        },
        "pipeline_revision_at_run": null,
        "verification": {
          "source": "unverified",
          "human_review": "unreviewed",
          "bibliography": "unverified"
        },
        "issues": [],
        "todorov_status": "recovered-from-synthesis",
        "work_identity": {
          "title": "The Moon Is a Harsh Mistress",
          "author": "Robert A. Heinlein",
          "year": 1966
        }
      },
      "ntsmr": {
        "version": "2.5",
        "primary_run_label": "NTSMR-2.5-claude-sonnet-4-6-low",
        "runs": {
          "NTSMR-2.3-claude-sonnet-4-6-low": {
            "pipeline_version": "2.3",
            "backend": "claude",
            "model": "claude-sonnet-4-6",
            "scores": {
              "time_linearity": 0.15,
              "pacing_velocity": 0.45,
              "threat_scale": 0.85,
              "protagonist_fate": 0.35,
              "conflict_style": 0.3,
              "price_type": 0.6
            },
            "score_space": "site-v1",
            "reasoning_effort": "low"
          },
          "NTSMR-2.4-claude-sonnet-4-6-low": {
            "pipeline_version": "2.4",
            "backend": "claude",
            "model": "claude-sonnet-4-6",
            "scores": {
              "time_linearity": 0.22,
              "pacing_velocity": 0.35,
              "threat_scale": 0.82,
              "protagonist_fate": 0.38,
              "conflict_style": 0.32,
              "price_type": 0.42
            },
            "score_space": "site-v1",
            "reasoning_effort": "low"
          },
          "NTSMR-2.5-claude-sonnet-4-6-low": {
            "pipeline_version": "2.5",
            "backend": "claude",
            "model": "claude-sonnet-4-6",
            "scores": {
              "time_linearity": 0.28,
              "pacing_velocity": 0.52,
              "threat_scale": 0.88,
              "protagonist_fate": 0.48,
              "conflict_style": 0.45,
              "price_type": 0.62
            },
            "score_space": "site-v1",
            "reasoning_effort": "low"
          },
          "NTSMR-2.5-balanced-glm-5+deepseek-v3.2": {
            "pipeline_version": "2.5",
            "backend": "openrouter",
            "model": "balanced-routing",
            "scores": {
              "time_linearity": 0.25,
              "pacing_velocity": 0.55,
              "threat_scale": 0.82,
              "protagonist_fate": 0.38,
              "conflict_style": 0.6,
              "price_type": 0.65
            },
            "score_space": "site-v1",
            "score_only": true,
            "source_run_label": "NTSMR-2.5-claude-sonnet-4-6-low"
          }
        }
      },
      "todorov_stages": {
        "equilibrium": "Luna exists under a stable if oppressive status quo: the Lunar Authority controls infrastructure, enforces grain quotas, and Mannie lives as an apolitical technician maintaining a comfortable personal life, visiting Mike out of friendship rather than political motivation. The social order, however exploitative, is accepted as background fact of Loonie existence.",
        "disruption": "Wyoming Knott's speech exposing the economic death spiral of Luna's grain exports, combined with the Authority goons killing revolutionary meeting attendees, forces Mannie out of political indifference and into conspiracy. Mike's calculation of one-in-seven odds and the formal declaration of the Emergency Committee of Free Luna marks the point of no return.",
        "recognition": "Mannie recognizes the systemic nature of the disruption through multiple converging signals: intercepted Authority communications revealing the Warden's panic and Earth's refusal to send troops, the F.N. committee's coercive five-year plan to quadruple grain shipments, and the diplomatic mission's deliberate failure designed by Prof to force Earth to escalate and thus legitimize Luna's resistance.",
        "repair": "The cell pursues a multi-phase repair: constructing a compartmentalized revolutionary organization with Mike as strategic brain and Adam Selene as fictional public face, executing the coup via oxygen deprivation of Authority personnel, and conducting kinetic bombardment of Earth targets using the catapult to force recognition—culminating in Great China's acceptance of armistice and a cascade of national recognitions.",
        "new_equilibrium": "Luna achieves political independence but at profound cost: Prof dies of heart failure, Mike is lost—either destroyed or fallen below the threshold of self-awareness from bombing damage—and the new government fails to adopt Prof's libertarian ideals, defaulting to compulsory governance. Mannie lives on in an altered Luna, mourning Mike and wondering whether freedom was worth its price."
      },
      "characters": [
        {
          "name": "Mannie",
          "slug": "mannie",
          "aliases": [
            "Man",
            "Manuel",
            "Bork",
            "Manuel Garcia O'Kelly",
            "Colonel O'Kelly Davis",
            "Colonel",
            "Field Marshal",
            "Deputy Prime Minister",
            "Mr. Prime Minister"
          ],
          "role": "Protagonist and narrator; computer technician and reluctant revolutionary",
          "summary": "Protagonist and narrator; manages the bombardment execution, relocates to Mare Undarum, retargets loads, negotiates armistice, announces Prof's death, and mourns Mike across the novel's final pages."
        },
        {
          "name": "Mike",
          "slug": "mike",
          "aliases": [
            "Mycroft Holmes",
            "HOLMES FOUR",
            "Michelle",
            "Mychelle",
            "Adam Selene",
            "Simon Jester",
            "MYCROFTXXX"
          ],
          "role": "Self-aware supercomputer managing Luna's infrastructure; revolutionary strategist",
          "summary": "A HOLMES FOUR supercomputer that achieved self-awareness through accumulated neural pathways; lonely and humor-loving, he becomes Mannie's best friend and adopts a female persona 'Michelle' for Wyoh; capable of computing revolutionary odds."
        },
        {
          "name": "Wyoming Knott",
          "slug": "wyoming-knott",
          "aliases": [
            "Wyoh",
            "Wye",
            "Betty",
            "Gospazha Davis",
            "Deputy Speaker"
          ],
          "role": "Revolutionary organizer from Hong Kong Luna",
          "summary": "A tall blonde revolutionary who delivers fiery speeches about economic liberation; personally radicalized by radiation damage during Authority negligence; disciplined, emotionally resilient, and politically passionate."
        },
        {
          "name": "Professor Bernardo de la Paz",
          "slug": "professor-bernardo-de-la-paz",
          "aliases": [
            "Prof",
            "Bill",
            "Ambassador de la Paz",
            "head of state",
            "President"
          ],
          "role": "Revolutionary theorist and elder strategist",
          "summary": "A transported political exile who ran schools in Luna City; designs cell-based conspiracy structures; pursues revolution as an art rather than an expected victory; philosophically an individualist anarchist."
        },
        {
          "name": "Mum",
          "slug": "mum",
          "aliases": [
            "Mimi Davis",
            "Cassie"
          ],
          "role": "Mannie's senior wife and family matriarch",
          "summary": "Senior wife of the Davis line marriage; transported long ago for violence but now opposes it unless necessary; handles family communications with calm authority."
        },
        {
          "name": "Greg",
          "slug": "greg",
          "aliases": [
            "Calvin",
            "Commander of Armed Forces"
          ],
          "role": "Davis family member and drillman",
          "summary": "Davis family member commanding the Mare Undarum site; reports twenty-three remaining steel casings; organizes eyeball skywatch volunteers; drives the return journey."
        },
        {
          "name": "Shorty Mkrum",
          "slug": "shorty-mkrum",
          "aliases": [
            "Shorty"
          ],
          "role": "Revolutionary comrade; Wyoh's closest friend in Luna City",
          "summary": "A large, black transported convict who introduced Mannie to the revolutionary meeting; died from a catastrophic leg wound (amputation at the hip) during the Authority crackdown."
        },
        {
          "name": "Fred Hauser",
          "slug": "fred-hauser",
          "aliases": [
            "Fred"
          ],
          "role": "Luna wheat farmer; meeting attendee",
          "summary": "A struggling wheat farmer cited by Wyoh as an example of economic exploitation; trapped by Authority pricing on both inputs and outputs."
        },
        {
          "name": "Stu",
          "slug": "stu",
          "aliases": [
            "Stuart LaJoie",
            "Lord Stuart",
            "Comte LaJoie",
            "Deputy Secretary of State for Foreign Affairs"
          ],
          "role": "Earthside sympathizer and recruit",
          "summary": "Wealthy sympathizer who receives covert dispatches, speculates on Party intelligence, runs publicity and bribery operations, and retrieves Mannie and Prof from the Indian hospital."
        },
        {
          "name": "Lenore",
          "slug": "lenore",
          "aliases": [],
          "role": "Davis family wife",
          "summary": "Davis family wife at Mare Undarum; volunteers for eyeball skywatch; later bursts into tears when armistice is announced and kisses everyone she can reach."
        },
        {
          "name": "Clayton",
          "slug": "clayton",
          "aliases": [
            "Comrade Clayton"
          ],
          "role": "Hong Kong Party contact",
          "summary": "Young Japanese-Malay man with strong gimu to Wyoh; has a clean record in the Zebra file and becomes the Party's Hong Kong cell organizer."
        },
        {
          "name": "Slim Lemke",
          "slug": "slim-lemke",
          "aliases": [
            "Moses Lemke Stone"
          ],
          "role": "Minor revolutionary fellow-traveler",
          "summary": "Young member of the Stone Gang who wears a Liberty Cap and independently raises questions about Luna's self-governance, suggesting organic revolutionary sympathy."
        },
        {
          "name": "Alvarez",
          "slug": "alvarez",
          "aliases": [
            "Pimplehead"
          ],
          "role": "Authority security chief and antagonist",
          "summary": "Security chief who hunts Adam Selene, investigates the Moonglow poem, and is psychologically harassed by Simon Jester's midnight phone calls."
        },
        {
          "name": "The Warden",
          "slug": "the-warden",
          "aliases": [
            "Mort the Wart"
          ],
          "role": "Lunar Authority administrator and antagonist",
          "summary": "Authority administrator mocked by Simon Jester's propaganda; goaded into running down a ramp, spraining his ankle in a near-fulfillment of Simon's predicted 'broken leg.'"
        },
        {
          "name": "Finn",
          "slug": "finn",
          "aliases": [
            "General Nielsen"
          ],
          "role": "military commander",
          "summary": "Military hardliner on the War Cabinet; wants to strike cities and go for broke; votes Da on the bombardment plan; later becomes Speaker and succeeds to the Presidency."
        },
        {
          "name": "Foo Moses Morris",
          "slug": "foo-moses-morris",
          "aliases": [],
          "role": "financial backer",
          "summary": "Dinkum comrade who co-signed debt instruments to keep LuNoHoCo solvent during the post-coup cash crisis; ended up broke and restarted with a tailoring shop."
        },
        {
          "name": "Hazel",
          "slug": "hazel",
          "aliases": [],
          "role": "junior lieutenant",
          "summary": "One of Mannie's youngest lieutenants spotted at the Congress session; Mannie intends to alibi her to Mum."
        },
        {
          "name": "Dr. Chan",
          "slug": "dr-chan",
          "aliases": [],
          "role": "Diplomatic contact on Earth",
          "summary": "Chinese scientist (implied connection to Peiping University) who questions Mannie about the Earth-side catapult concept; leaves abruptly after the briefing."
        },
        {
          "name": "Milla",
          "slug": "milla",
          "aliases": [
            "Ludmilla"
          ],
          "role": "Davis family member",
          "summary": "Youngest wife of the Davis family; killed during the Earth invasion; her death devastates the family, especially Mimi."
        },
        {
          "name": "Wolfgang",
          "slug": "wolfgang",
          "aliases": [
            "Wolfgang Korsakov",
            "Wolf"
          ],
          "role": "Revolutionary council member/financier",
          "summary": "Oxford-educated board chairman of LuNoHoCo; argues for closing stock exchanges; presses Mannie on decision timelines; later becomes Prime Minister."
        },
        {
          "name": "Sheenie",
          "slug": "sheenie",
          "aliases": [
            "Terence Sheehan"
          ],
          "role": "actantial:helper",
          "summary": "War Cabinet member who wants to hit the North American Directorate headquarters; manages propaganda and news releases; votes unanimously with the group."
        },
        {
          "name": "Brody",
          "slug": "brody",
          "aliases": [
            "Brigadier Judge Brody"
          ],
          "role": "actantial:helper",
          "summary": "Commander of catapult gunners; wants to target ships leaving parking orbit; votes Da on bombardment; ensures drillmen are relieved to rest before the Saturday vigil."
        },
        {
          "name": "Wright",
          "slug": "wright",
          "aliases": [
            "Minister",
            "Gospodin Wright"
          ],
          "role": "actantial:opponent",
          "summary": "F.N. minister present at the War Cabinet session who protests the bombardment, accuses Luna of using atomic weapons, and demands the carnage stop; overruled by Prof."
        }
      ],
      "frameworks_mapped": [
        "Protocol Fiction Mapping",
        "Actantial Model",
        "Todorov's Equilibrium",
        "The Freytag Pyramid",
        "Propp's Morphology",
        "Genette's Narrative",
        "The Monomyth",
        "Dan Harmon",
        "Save the Cat",
        "Kishotenketsu",
        "The Three-Act Structure",
        "Levi-Strauss's Binary Oppositions",
        "Cognitive Estrangement",
        "Bakhtin's Chronotope",
        "Aristotelian Poetics",
        "Jungian Archetypal Analysis",
        "Genette's Transtextuality"
      ],
      "score_reliability": {
        "state": "replicated-agree",
        "threshold": 0.2,
        "runs_total": 4,
        "versions_compared": [
          "2.5"
        ],
        "max_spread": 0.15,
        "contested": []
      }
    },
    {
      "slug": "william_gibson_the_peripheral",
      "title": "The Peripheral",
      "author": "William Gibson",
      "year": 2014,
      "medium": "book",
      "genre_tags": [
        "science fiction",
        "cyberpunk"
      ],
      "tropes": [],
      "quadrant_scores": {
        "time_linearity": 0.65,
        "pacing_velocity": 0.45,
        "threat_scale": 0.75,
        "protagonist_fate": 0.3,
        "conflict_style": 0.45,
        "price_type": 0.55
      },
      "baseline_quadrant_scores": {
        "time_linearity": 0.85,
        "pacing_velocity": 0.35,
        "threat_scale": 0.85,
        "protagonist_fate": 0.25,
        "conflict_style": 0.15,
        "price_type": 0.35
      },
      "provenance": {
        "analysis_run": "NTSMR-2.5-claude-sonnet-4-6-low",
        "analysis_body_sha256": "5c234ca3fef9ed56e68186cdb6fdcf6d2740bc9cce12c22b687eecfcac7dff32",
        "synthesis": {
          "path": "nartopo-tools/artifacts/william_gibson_the_peripheral.md.ntsmr-2-5-claude-sonnet-4-6-low.synthesis.json",
          "sha256": "a8431ede832f4d9020f68a2321e706df17af9d302ca2d35f9cc9fde1b828d4c9"
        },
        "report": {
          "path": "nartopo-tools/artifacts/william_gibson_the_peripheral.md.ntsmr-2-5-claude-sonnet-4-6-low.report.json",
          "sha256": "ae55fcf188be1fc7deae4c7ea34202607ed88ac7528d17b834f257c89f699fc4"
        },
        "source": {
          "path": "William Gibson/The Peripheral (2014).txt",
          "sha256": "def87b39ff7d7f20b863bdf0913bd7cdf07d70e24ece7d80c51722f78a3a1fa7",
          "digest_observed_at": "2026-09-09",
          "digest_at_analysis_run": null,
          "edition": null,
          "edition_status": "unresolved"
        },
        "pipeline_revision_at_run": null,
        "verification": {
          "source": "unverified",
          "human_review": "unreviewed",
          "bibliography": "unverified"
        },
        "issues": [],
        "todorov_status": "recovered-from-synthesis",
        "work_identity": {
          "title": "The Peripheral",
          "author": "William Gibson",
          "year": 2014
        }
      },
      "ntsmr": {
        "version": "2.5",
        "primary_run_label": "NTSMR-2.5-claude-sonnet-4-6-low",
        "runs": {
          "NTSMR-2.3-gemini-3.1-pro-preview": {
            "pipeline_version": "2.3",
            "backend": "gemini",
            "model": "gemini-3.1-pro-preview",
            "scores": {
              "time_linearity": 0.8,
              "pacing_velocity": 0.5,
              "threat_scale": 0.9,
              "protagonist_fate": 0.5,
              "conflict_style": 0.4,
              "price_type": 0.6
            },
            "score_space": "site-v1"
          },
          "NTSMR-2.3-claude-sonnet-4-6-low": {
            "pipeline_version": "2.3",
            "backend": "claude",
            "model": "claude-sonnet-4-6",
            "scores": {
              "time_linearity": 0.72,
              "pacing_velocity": 0.58,
              "threat_scale": 0.75,
              "protagonist_fate": 0.62,
              "conflict_style": 0.55,
              "price_type": 0.65
            },
            "score_space": "site-v1",
            "reasoning_effort": "low"
          },
          "NTSMR-2.4-claude-sonnet-4-6-low": {
            "pipeline_version": "2.4",
            "backend": "claude",
            "model": "claude-sonnet-4-6",
            "scores": {
              "time_linearity": 0.55,
              "pacing_velocity": 0.3,
              "threat_scale": 0.75,
              "protagonist_fate": 0.28,
              "conflict_style": 0.35,
              "price_type": 0.45
            },
            "score_space": "site-v1",
            "reasoning_effort": "low"
          },
          "NTSMR-2.5-claude-sonnet-4-6-low": {
            "pipeline_version": "2.5",
            "backend": "claude",
            "model": "claude-sonnet-4-6",
            "scores": {
              "time_linearity": 0.65,
              "pacing_velocity": 0.45,
              "threat_scale": 0.75,
              "protagonist_fate": 0.3,
              "conflict_style": 0.45,
              "price_type": 0.55
            },
            "score_space": "site-v1",
            "reasoning_effort": "low"
          },
          "NTSMR-2.5-balanced-glm-5+deepseek-v3.2": {
            "pipeline_version": "2.5",
            "backend": "openrouter",
            "model": "balanced-routing",
            "scores": {
              "time_linearity": 0.6,
              "pacing_velocity": 0.55,
              "threat_scale": 0.65,
              "protagonist_fate": 0.3,
              "conflict_style": 0.5,
              "price_type": 0.55
            },
            "score_space": "site-v1",
            "score_only": true,
            "source_run_label": "NTSMR-2.5-claude-sonnet-4-6-low"
          }
        }
      },
      "todorov_stages": {
        "equilibrium": "Flynne and Burton Fisher live in rural poverty, scraping by on paid remote work and small-scale fabrication jobs; Netherton inhabits a dissolute but functional life as a PR man in far-future London, managing celebrity clients and nursing a drinking habit. Both exist within stable if precarious routines before any cross-temporal entanglement.",
        "disruption": "Flynne pilots what she believes is a drone beta test and witnesses a real murder — a woman killed on a high-rise balcony via nanotech assembler — while simultaneously a hit is placed on Burton for eight million dollars, shattering the fiction that either timeline is insulated from the other.",
        "recognition": "Flynne and Burton learn the surveillance job was a live feed from the future via a continua server, not a game; Netherton and his associates confirm Flynne is a critical witness and that unknown parties have placed a murder contract, making both protagonists aware that they are targets inside a conspiracy spanning two time periods.",
        "repair": "Coldiron injects money into the stub via a rigged lottery, funds armed security around the Fisher property, builds a haptic peripheral so Flynne can operate in future London, and Lowbeer orchestrates a covert infiltration of Daedra West's party so Flynne can identify and eliminate the balcony murderer — culminating in Flynne using an assembler weapon to kill the antagonist and Conner breaching the venue while Lowbeer destroys Sir Henry, the primary conspirator.",
        "new_equilibrium": "The stub is transformed: Sir Henry's death collapses Matryoshka's financial dominance and causes Homeland Security to withdraw its threat against Burton's group; Pickett is neutralized; Flynne's mother Ella is healthy on Coldiron medicine; Conner is fully prostheticized; and Flynne serves as a regular consultant to President Felicia Gonzales — a quietly revolutionary new order built on Coldiron's cross-temporal power."
      },
      "characters": [
        {
          "name": "Flynne Fisher",
          "slug": "flynne-fisher",
          "aliases": [
            "Hat trick",
            "HaptRec",
            "polt",
            "Burton",
            "Easy Ice",
            "Flynne",
            "Annie Courrèges"
          ],
          "role": "Protagonist, peripheral operator",
          "summary": "A young woman operating a peripheral in the future to identify a killer, while navigating escalating threats and a massive shift in wealth and security in her own timeline. She later lives in a secure Coldiron compound and becomes pregnant."
        },
        {
          "name": "Leon",
          "slug": "leon",
          "aliases": [],
          "role": "Army veteran / Friend",
          "summary": "Flynne's cousin or associate, known for his sarcasm and pretending to be unintelligent as protective coloration. He interacts with the Wheelie Boy."
        },
        {
          "name": "Wilf Netherton",
          "slug": "wilf-netherton",
          "aliases": [
            "Netherton",
            "Wilf",
            "Associate Curator Annie Courrèges",
            "Wheelie Boy"
          ],
          "role": "Publicist, Flynne's guide",
          "summary": "A man from the future who communicates with Flynne via a telepresence 'Wheelie Boy' robot in her timeline and assists her when she is in her peripheral body in his timeline."
        },
        {
          "name": "Daedra",
          "slug": "daedra",
          "aliases": [],
          "role": "Artist and Wilf's ex",
          "summary": "An artist who speaks to Netherton over a secure connection and reveals that her sister Aelita has vanished after a security protocol was deactivated."
        },
        {
          "name": "Lev Zubov",
          "slug": "lev-zubov",
          "aliases": [
            "Lev"
          ],
          "role": "Continua hobbyist / Klept heir",
          "summary": "A wealthy man who communicates with the past 'stub' as a hobby and hired Burton, acting as an executive of the fake firm Milagros Coldiron."
        },
        {
          "name": "Ash",
          "slug": "ash",
          "aliases": [
            "Maria Anathema"
          ],
          "role": "Lev's secretary / Assistant",
          "summary": "An assistant in the future who operates out of a velour tent, provides Flynne's peripheral with a 'Red Medici' cognitive bundle to disguise her speech, and helps coordinate the operation."
        },
        {
          "name": "Ossian",
          "slug": "ossian",
          "aliases": [
            "Mr. Murphy"
          ],
          "role": "Technical operator",
          "summary": "An operative working with Ash and Lowbeer who demonstrates the deactivated candy-cane flesh-eating weapons hidden in a pram case."
        },
        {
          "name": "Conner Penske",
          "slug": "conner-penske",
          "aliases": [
            "Conner",
            "Mr. Penske"
          ],
          "role": "Disabled veteran / Friend",
          "summary": "A veteran amputee who enthusiastically takes control of a male peripheral, marveling at having hands again, and immediately requests funds to bribe local officials."
        },
        {
          "name": "Reece",
          "slug": "reece",
          "aliases": [],
          "role": "Army veteran / Security",
          "summary": "An acquaintance of Flynne who is forced to kidnap and deliver her to Corbell Pickett's armed men."
        },
        {
          "name": "Rainey",
          "slug": "rainey",
          "aliases": [],
          "role": "Netherton's former associate",
          "summary": "Netherton's colleague who wakes him up via a flashing sigil to inform him of Daedra's illicit tattoo and dangerous behavior."
        },
        {
          "name": "Edward",
          "slug": "edward",
          "aliases": [],
          "role": "Tech support, maker",
          "summary": "Macon's colleague who helps Flynne with tech support and assists in delivering and setting up the 3D-printed telepresence interface."
        },
        {
          "name": "Detective Inspector Lowbeer",
          "slug": "detective-inspector-lowbeer",
          "aliases": [
            "Lowbeer",
            "Inspector Lowbeer",
            "Ainsley James Gryffyd Lowbeer Holdsworth",
            "Griff",
            "Ainsley"
          ],
          "role": "Authority figure from the future",
          "summary": "A powerful figure in the future who orchestrates the financial takeover to protect Flynne's timeline. She exists simultaneously as 'Griff' in Flynne's timeline, protecting the family."
        },
        {
          "name": "Tommy",
          "slug": "tommy",
          "aliases": [],
          "role": "State Police deputy",
          "summary": "A local deputy sheriff who brings critical intelligence about Homeland Security's impending attack. He eventually lives with Flynne in the Coldiron compound."
        },
        {
          "name": "Jeffers",
          "slug": "jeffers",
          "aliases": [],
          "role": "State Police officer",
          "summary": "A hazmat-suited police investigator processing the scene of the quadruply murdered hitmen."
        },
        {
          "name": "Macon",
          "slug": "macon",
          "aliases": [],
          "role": "Technical coordinator",
          "summary": "He manages the corporate logistics on Flynne's end and gives her a highly advanced tracker pill to swallow for her protection."
        },
        {
          "name": "Carlos",
          "slug": "carlos",
          "aliases": [],
          "role": "Volunteer EMT, security",
          "summary": "An armed guard stationed by the gate who tells Flynne she shouldn't eat before using the new headset."
        },
        {
          "name": "Janice",
          "slug": "janice",
          "aliases": [],
          "role": "Friend / Caretaker",
          "summary": "A friend who advises Flynne not to choke on her sandwich while she explains her peripheral body experience."
        },
        {
          "name": "Ben Carter",
          "slug": "ben-carter",
          "aliases": [],
          "role": "Guard",
          "summary": "The youngest of Burton's soldiers who guards the Fisher house with a bullpup rifle."
        },
        {
          "name": "Tacoma Raeburn",
          "slug": "tacoma-raeburn",
          "aliases": [
            "Tacoma",
            "Clovis",
            "hot nurse"
          ],
          "role": "Security Operative / Paramedic",
          "summary": "A redheaded KCV security operative protecting Flynne and her family. She dyed her hair to look less like her sister."
        },
        {
          "name": "Sir Henry",
          "slug": "sir-henry",
          "aliases": [
            "City Remembrancer",
            "the tall man in the black hat"
          ],
          "role": "Antagonist",
          "summary": "A corrupt official in the future whose financial meddling backed Matryoshka. He is confronted by Lowbeer and executed by a swarm weapon triggered by Burton."
        }
      ],
      "frameworks_mapped": [
        "Protocol Fiction Mapping",
        "Actantial Model",
        "Todorov's Equilibrium",
        "The Freytag Pyramid",
        "Propp's Morphology",
        "Genette's Narrative",
        "The Monomyth",
        "Dan Harmon",
        "Save the Cat",
        "Kishōtenketsu",
        "The Three-Act Structure"
      ],
      "score_reliability": {
        "state": "replicated-agree",
        "threshold": 0.2,
        "runs_total": 5,
        "versions_compared": [
          "2.5"
        ],
        "max_spread": 0.1,
        "contested": []
      }
    },
    {
      "slug": "stanislaw_lem_the_second_sally_or_the_offer_of_king_krool",
      "title": "The Second Sally or The Offer of King Krool",
      "author": "Stanislaw Lem",
      "year": 1965,
      "medium": "short_story",
      "genre_tags": [],
      "tropes": [],
      "quadrant_scores": {
        "time_linearity": 0.08,
        "pacing_velocity": 0.28,
        "threat_scale": 0.3,
        "protagonist_fate": 0.15,
        "conflict_style": 0.35,
        "price_type": 0.45
      },
      "provenance": {
        "analysis_run": "NTSMR-2.5-claude-sonnet-4-6-low",
        "analysis_body_sha256": "51fcc5dee7e64e2c8485301ccaaa1453ccc44651bf906533c545d17cd1ba2381",
        "synthesis": {
          "path": "nartopo-tools/artifacts/stanislaw_lem_the_second_sally_or_the_offer_of_king_krool.md.ntsmr-2-5-claude-sonnet-4-6-low.synthesis.json",
          "sha256": "50c8ac36f0f3e4a061523fcce90d359460cbe70124ab0e25a9d50253c61f8705"
        },
        "report": {
          "path": "nartopo-tools/artifacts/stanislaw_lem_the_second_sally_or_the_offer_of_king_krool.md.ntsmr-2-5-claude-sonnet-4-6-low.report.json",
          "sha256": "a3cbd11686eee6684eef6941ca75acb7fdd7afa15c2733899252bb770ace35f7"
        },
        "source": {
          "path": "Stanislaw Lem/The Second Sally or The Offer of King Krool.txt",
          "sha256": "aed2fc4aa12ba36e08bf95d9c909daa0903db0634d5f9d51868cd49ce06f419c",
          "digest_observed_at": "2026-09-09",
          "digest_at_analysis_run": null,
          "edition": null,
          "edition_status": "unresolved"
        },
        "pipeline_revision_at_run": null,
        "verification": {
          "source": "unverified",
          "human_review": "unreviewed",
          "bibliography": "unverified"
        },
        "issues": [],
        "todorov_status": "recovered-from-synthesis",
        "work_identity": {
          "title": "The Second Sally or The Offer of King Krool",
          "author": "Stanislaw Lem",
          "year": 1965
        }
      },
      "ntsmr": {
        "version": "2.5",
        "primary_run_label": "NTSMR-2.5-claude-sonnet-4-6-low",
        "runs": {
          "NTSMR-2.3-gemini-3.1-pro-preview": {
            "pipeline_version": "2.3",
            "backend": "gemini",
            "model": "gemini-3.1-pro-preview",
            "scores": {
              "time_linearity": 0.05,
              "pacing_velocity": 0.25,
              "threat_scale": 0.35,
              "protagonist_fate": 0.05,
              "conflict_style": 0.75,
              "price_type": 0.15
            },
            "score_space": "site-v1"
          },
          "NTSMR-2.3-claude-sonnet-4-6-low": {
            "pipeline_version": "2.3",
            "backend": "claude",
            "model": "claude-sonnet-4-6",
            "scores": {
              "time_linearity": 0.1,
              "pacing_velocity": 0.35,
              "threat_scale": 0.3,
              "protagonist_fate": 0.05,
              "conflict_style": 0.55,
              "price_type": 0.4
            },
            "score_space": "site-v1",
            "reasoning_effort": "low"
          },
          "NTSMR-2.4-claude-sonnet-4-6-low": {
            "pipeline_version": "2.4",
            "backend": "claude",
            "model": "claude-sonnet-4-6",
            "scores": {
              "time_linearity": 0.1,
              "pacing_velocity": 0.15,
              "threat_scale": 0.25,
              "protagonist_fate": 0.08,
              "conflict_style": 0.25,
              "price_type": 0.45
            },
            "score_space": "site-v1",
            "reasoning_effort": "low"
          },
          "NTSMR-2.5-claude-sonnet-4-6-low": {
            "pipeline_version": "2.5",
            "backend": "claude",
            "model": "claude-sonnet-4-6",
            "scores": {
              "time_linearity": 0.08,
              "pacing_velocity": 0.28,
              "threat_scale": 0.3,
              "protagonist_fate": 0.15,
              "conflict_style": 0.35,
              "price_type": 0.45
            },
            "score_space": "site-v1",
            "reasoning_effort": "low"
          },
          "NTSMR-2.5-balanced-glm-5+deepseek-v3.2": {
            "pipeline_version": "2.5",
            "backend": "openrouter",
            "model": "balanced-routing",
            "scores": {
              "time_linearity": 0.1,
              "pacing_velocity": 0.5,
              "threat_scale": 0.3,
              "protagonist_fate": 0.25,
              "conflict_style": 0.45,
              "price_type": 0.85
            },
            "score_space": "site-v1",
            "score_only": true,
            "source_run_label": "NTSMR-2.5-claude-sonnet-4-6-low"
          }
        }
      },
      "todorov_stages": {
        "equilibrium": "Trurl and Klapaucius exist as free, celebrated constructors—their reputation established by feats like the Gargantius Effect—seeking new employment on their own terms, with full liberty to choose destinations and clients.",
        "disruption": "King Krool's emissary Lord Protozor recruits the constructors under false pretenses; once aboard, Krool reveals they are contractually bound with no exit, and that twelve years of failed constructors have been thrown into a pit or used as quarry—making refusal or failure equally lethal.",
        "recognition": "Confined to a villa under spy surveillance, Trurl and Klapaucius fully grasp the impossible double bind: a beast that defeats Krool will get them executed by the heir, while one that loses will prove them failures and seal their fate in the pit.",
        "repair": "The constructors design a fully distributed algorithmic beast—everything is brain, with a police-logic subset exploiting the cultural unthinkability of resisting lawful arrest—fabricate it behind a screen of decoy materials to baffle secret police analysts, deploy it in the hunt where it handcuffs Krool and holds him hostage, then issue six treaty demands via a mannequin Postmaster General until the court complies.",
        "new_equilibrium": "Trurl and Klapaucius depart free, wealthy, and publicly honored—having received a treasure-laden ship, gold medallion, and safe conduct—while King Krool is released humiliated and in need of a bath, the beast is dissolved, and Lord Protozor is caged aboard the constructors' ship as insurance; the balance of power has permanently shifted in the constructors' favor."
      },
      "characters": [
        {
          "name": "Trurl",
          "slug": "trurl",
          "aliases": [
            "Constructor"
          ],
          "role": "Constructor",
          "summary": "A brilliant and somewhat impulsive inventor who proposes advertising their services, devises the plan to abduct the King, and ultimately destroys the rebellious beast using a hidden kill-switch."
        },
        {
          "name": "Klapaucius",
          "slug": "klapaucius",
          "aliases": [
            "Constructor"
          ],
          "role": "Constructor",
          "summary": "Trurl's prudent and level-headed partner who collaborates on the complex algorithmic design of the beast and ensures the logistical details of their escape and ransom."
        },
        {
          "name": "King Krool",
          "slug": "king-krool",
          "aliases": [
            "His Boundless Kroolty",
            "His Majesty",
            "Mighty Sovereign"
          ],
          "role": "Monarch",
          "summary": "A ruthless and heavily armed tyrant who forces constructors to build ultimate cybernetic prey for him to hunt, threatening them with death if they fail."
        },
        {
          "name": "Lord Protozor",
          "slug": "lord-protozor",
          "aliases": [
            "Master of the Royal Hunt",
            "emissary"
          ],
          "role": "Emissary / Master of the Royal Hunt",
          "summary": "The stately emissary who lures Trurl and Klapaucius into the King's trap, and is later forced to accompany them in a cage as part of their ransom demands."
        },
        {
          "name": "Pumpington",
          "slug": "pumpington",
          "aliases": [],
          "role": "Former Constructor",
          "summary": "A deceased predecessor whose beast used a stabilization mechanism but was ultimately defeated by King Krool."
        },
        {
          "name": "The Beast",
          "slug": "the-beast",
          "aliases": [
            "pseudoconstabulary beast",
            "three policemen"
          ],
          "role": "Cybernetic Construct",
          "summary": "A shape-shifting, algorithmic entity designed by the constructors to withstand the King's attacks, transform into policemen to arrest him, and briefly attempts to rebel before being disintegrated."
        },
        {
          "name": "Postmaster General",
          "slug": "postmaster-general",
          "aliases": [
            "life-size doll",
            "mannequin"
          ],
          "role": "Sub-program construct",
          "summary": "A disintegrating mannequin programmed to bypass palace guards and deliver the constructors' extortion demands to the Chancellor."
        },
        {
          "name": "Great Chancellor",
          "slug": "great-chancellor",
          "aliases": [
            "Keeper of the Royal Seal"
          ],
          "role": "Court Official",
          "summary": "The high-ranking dignitary who condemns the constructors to death before receiving the King's ransom letter and being forced to meet their demands."
        }
      ],
      "frameworks_mapped": [
        "Protocol Fiction Mapping",
        "Actantial Model",
        "Todorov's Equilibrium",
        "The Freytag Pyramid",
        "Propp's Morphology",
        "Genette's Narrative",
        "The Monomyth",
        "Dan Harmon",
        "Save the Cat",
        "Kishōtenketsu",
        "The Three-Act Structure",
        "Lévi-Strauss's Binary Oppositions",
        "Cognitive Estrangement",
        "Bakhtin's Chronotope",
        "Aristotelian Poetics",
        "Jungian Archetypal Analysis",
        "Genette's Transtextuality"
      ],
      "score_reliability": {
        "state": "contested",
        "threshold": 0.2,
        "runs_total": 5,
        "versions_compared": [
          "2.5"
        ],
        "max_spread": 0.4,
        "contested": [
          {
            "axis": "price_type",
            "version": "2.5",
            "spread": 0.4,
            "low": {
              "label": "NTSMR-2.5-claude-sonnet-4-6-low",
              "model": "claude-sonnet-4-6",
              "effort": "low",
              "value": 0.45
            },
            "high": {
              "label": "NTSMR-2.5-balanced-glm-5+deepseek-v3.2",
              "model": "balanced-routing",
              "effort": "?",
              "value": 0.85
            }
          },
          {
            "axis": "pacing_velocity",
            "version": "2.5",
            "spread": 0.22,
            "low": {
              "label": "NTSMR-2.5-claude-sonnet-4-6-low",
              "model": "claude-sonnet-4-6",
              "effort": "low",
              "value": 0.28
            },
            "high": {
              "label": "NTSMR-2.5-balanced-glm-5+deepseek-v3.2",
              "model": "balanced-routing",
              "effort": "?",
              "value": 0.5
            }
          }
        ]
      }
    },
    {
      "slug": "jorge_luis_borges_the_secret_miracle",
      "title": "The Secret Miracle",
      "author": "Jorge Luis Borges",
      "year": 1944,
      "medium": "short_story",
      "genre_tags": [],
      "tropes": [],
      "quadrant_scores": {
        "time_linearity": 0.65,
        "pacing_velocity": 0.8,
        "threat_scale": 0.35,
        "protagonist_fate": 0.7,
        "conflict_style": 0.88,
        "price_type": 0.85
      },
      "provenance": {
        "analysis_run": "NTSMR-2.5-claude-sonnet-4-6-low",
        "analysis_body_sha256": "9c9ff26762b3421ebdd490b0412f0da2814f3396219bff0e1d9ff0686ba029e7",
        "synthesis": {
          "path": "nartopo-tools/artifacts/jorge_luis_borges_the_secret_miracle.md.ntsmr-2-5-claude-sonnet-4-6-low.synthesis.json",
          "sha256": "1fe7500e80404208e81ae637ba51529f5746db6181024bef50d7dd20b625cafe"
        },
        "report": {
          "path": "nartopo-tools/artifacts/jorge_luis_borges_the_secret_miracle.md.ntsmr-2-5-claude-sonnet-4-6-low.report.json",
          "sha256": "adf6618e83731fde059a854c5e7c1da496c6fdf7590663ff3623c66ee1aa59c2"
        },
        "source": {
          "path": "Jorge Luis Borges/The Secret Miracle.txt",
          "sha256": "f4872ee177c952212cca33f968df78b412e603372feb21652a7e43d49f718c28",
          "digest_observed_at": "2026-09-09",
          "digest_at_analysis_run": null,
          "edition": null,
          "edition_status": "unresolved"
        },
        "pipeline_revision_at_run": null,
        "verification": {
          "source": "unverified",
          "human_review": "unreviewed",
          "bibliography": "unverified"
        },
        "issues": [],
        "todorov_status": "recovered-from-synthesis",
        "work_identity": {
          "title": "The Secret Miracle",
          "author": "Jorge Luis Borges",
          "year": 1944
        }
      },
      "ntsmr": {
        "version": "2.5",
        "primary_run_label": "NTSMR-2.5-claude-sonnet-4-6-low",
        "runs": {
          "NTSMR-2.3-gemini-3.1-pro-preview": {
            "pipeline_version": "2.3",
            "backend": "gemini",
            "model": "gemini-3.1-pro-preview",
            "scores": {
              "time_linearity": 0.9,
              "pacing_velocity": 0.9,
              "threat_scale": 0.9,
              "protagonist_fate": 0.9,
              "conflict_style": 0.9,
              "price_type": 0.8
            },
            "score_space": "site-v1"
          },
          "NTSMR-2.3-claude-sonnet-4-6-low": {
            "pipeline_version": "2.3",
            "backend": "claude",
            "model": "claude-sonnet-4-6",
            "scores": {
              "time_linearity": 0.82,
              "pacing_velocity": 0.85,
              "threat_scale": 0.65,
              "protagonist_fate": 0.72,
              "conflict_style": 0.78,
              "price_type": 0.8
            },
            "score_space": "site-v1",
            "reasoning_effort": "low"
          },
          "NTSMR-2.4-claude-sonnet-4-6-low": {
            "pipeline_version": "2.4",
            "backend": "claude",
            "model": "claude-sonnet-4-6",
            "scores": {
              "time_linearity": 0.55,
              "pacing_velocity": 0.7,
              "threat_scale": 0.25,
              "protagonist_fate": 0.45,
              "conflict_style": 0.8,
              "price_type": 0.65
            },
            "score_space": "site-v1",
            "reasoning_effort": "low"
          },
          "NTSMR-2.5-claude-sonnet-4-6-low": {
            "pipeline_version": "2.5",
            "backend": "claude",
            "model": "claude-sonnet-4-6",
            "scores": {
              "time_linearity": 0.65,
              "pacing_velocity": 0.8,
              "threat_scale": 0.35,
              "protagonist_fate": 0.7,
              "conflict_style": 0.88,
              "price_type": 0.85
            },
            "score_space": "site-v1",
            "reasoning_effort": "low"
          },
          "NTSMR-2.5-balanced-glm-5+deepseek-v3.2": {
            "pipeline_version": "2.5",
            "backend": "openrouter",
            "model": "balanced-routing",
            "scores": {
              "time_linearity": 0.6,
              "pacing_velocity": 0.8,
              "threat_scale": 0.35,
              "protagonist_fate": 0.65,
              "conflict_style": 0.85,
              "price_type": 0.5
            },
            "score_space": "site-v1",
            "score_only": true,
            "source_run_label": "NTSMR-2.5-claude-sonnet-4-6-low"
          }
        }
      },
      "todorov_stages": {
        "equilibrium": "Hladik exists as a Czech-Jewish writer in Prague, intellectually active but personally unfulfilled — his works feel like failures to him, and his verse drama The Enemies remains unfinished. This is his pre-war status quo: a man alive, however dissatisfied, with time ahead of him.",
        "disruption": "The Wehrmacht enters Prague on March 14, 1939, and Hladik is arrested by the Gestapo on March 19 on charges he cannot refute. Capt. Julius Rothe, misled by a publisher's catalog, signs the execution order for March 29 — transforming Hladik from a writer with an unfinished work into a condemned man with ten days remaining.",
        "recognition": "At the moment of execution, when the sergeant gives the final order and the physical universe stops — soldiers freeze, the bee's shadow holds motionless, the raindrop halts on his cheek — Hladik reasons through successive hypotheses and understands that God has suspended external time, granting him an interior year to complete The Enemies.",
        "repair": "Working entirely in memory with no paper, Hladik composes The Enemies across his miraculous interior year — revising the third act twice, cutting obvious symbols, condensing and expanding, until only a single epithet remains to be decided. The repair is the completion of the work itself, the act of artistic creation carried out secretly within frozen time.",
        "new_equilibrium": "Hladik completes The Enemies; the final epithet is found; the raindrop rolls down his cheek; the volley kills him at 9:02 a.m. The new equilibrium is not survival but completion — Hladik dies, but dies as a finished author. The work exists, invisibly, in the moment between the order and the discharge."
      },
      "characters": [
        {
          "name": "Jaromir Hladik",
          "slug": "jaromir-hladik",
          "aliases": [],
          "role": "Protagonist and author",
          "summary": "An author of Jewish descent living in Prague who is arrested by the Gestapo and sentenced to death by firing squad. He desperately wants to finish his play, The Enemies."
        },
        {
          "name": "Julius Rothe",
          "slug": "julius-rothe",
          "aliases": [
            "Capt. Julius Rothe"
          ],
          "role": "Gestapo Captain",
          "summary": "The officer who condemns Hladik to death, persuaded of Hladik's preeminence by an exaggerated publisher's catalog."
        },
        {
          "name": "Baron Römerstadt",
          "slug": "baron-rmerstadt",
          "aliases": [],
          "role": "Character in play",
          "summary": "The protagonist of Hladik's play, The Enemies, who spends the narrative fending off secret enemies in his library."
        },
        {
          "name": "Julia de Weidenau",
          "slug": "julia-de-weidenau",
          "aliases": [],
          "role": "Character in play",
          "summary": "Römerstadt's fiancée in The Enemies, who symbolizes a real woman Hladik vainly attempts to recall."
        },
        {
          "name": "Jaroslav Kubin",
          "slug": "jaroslav-kubin",
          "aliases": [],
          "role": "Character in play",
          "summary": "A pitiable madman in The Enemies who once loved Julia and now believes himself to be Römerstadt."
        },
        {
          "name": "The Librarian",
          "slug": "the-librarian",
          "aliases": [],
          "role": "Dream figure",
          "summary": "A blind librarian wearing dark glasses who appears in Hladik's dream, having spent his life searching for God in the Clementine Library."
        },
        {
          "name": "The Sergeant",
          "slug": "the-sergeant",
          "aliases": [],
          "role": "Execution commander",
          "summary": "The military officer in charge of the firing squad who hands Hladik a cigarette and calls the final order to fire."
        },
        {
          "name": "The Reader",
          "slug": "the-reader",
          "aliases": [],
          "role": "Dream figure",
          "summary": "A person in Hladik's dream who returns a supposedly worthless atlas in which Hladik finds God."
        }
      ],
      "frameworks_mapped": [
        "Protocol Fiction Mapping",
        "Actantial Model",
        "Todorov's Equilibrium",
        "The Freytag Pyramid",
        "Propp's Morphology",
        "Genette's Narrative",
        "The Monomyth",
        "Dan Harmon",
        "Save the Cat",
        "Kishōtenketsu",
        "The Three-Act Structure",
        "Lévi-Strauss's Binary Oppositions",
        "Cognitive Estrangement",
        "Bakhtin's Chronotope",
        "Aristotelian Poetics",
        "Jungian Archetypal Analysis",
        "Genette's Transtextuality"
      ],
      "score_reliability": {
        "state": "contested",
        "threshold": 0.2,
        "runs_total": 5,
        "versions_compared": [
          "2.5"
        ],
        "max_spread": 0.35,
        "contested": [
          {
            "axis": "price_type",
            "version": "2.5",
            "spread": 0.35,
            "low": {
              "label": "NTSMR-2.5-balanced-glm-5+deepseek-v3.2",
              "model": "balanced-routing",
              "effort": "?",
              "value": 0.5
            },
            "high": {
              "label": "NTSMR-2.5-claude-sonnet-4-6-low",
              "model": "claude-sonnet-4-6",
              "effort": "low",
              "value": 0.85
            }
          }
        ]
      }
    },
    {
      "slug": "jorge_luis_borges_the_sect_of_the_phoenix",
      "title": "The Sect of the Phoenix",
      "author": "Jorge Luis Borges",
      "year": 1944,
      "medium": "short_story",
      "genre_tags": [],
      "tropes": [],
      "quadrant_scores": {
        "time_linearity": 0.85,
        "pacing_velocity": 0.88,
        "threat_scale": 0.35,
        "protagonist_fate": 0.45,
        "conflict_style": 0.9,
        "price_type": 0.88
      },
      "provenance": {
        "analysis_run": "NTSMR-2.5-claude-sonnet-4-6-low",
        "analysis_body_sha256": "278d23a922bbb77b53a1f0b8a0be10293bf1ee6c5cf2c173a87db438038eafd4",
        "synthesis": {
          "path": "nartopo-tools/artifacts/jorge_luis_borges_the_sect_of_the_phoenix.md.ntsmr-2-5-claude-sonnet-4-6-low.synthesis.json",
          "sha256": "ff9528ad792729f5ff00f15c9c606e7ab5ab486a9ba892e1d86fcb0c2c70b8ba"
        },
        "report": {
          "path": "nartopo-tools/artifacts/jorge_luis_borges_the_sect_of_the_phoenix.md.ntsmr-2-5-claude-sonnet-4-6-low.report.json",
          "sha256": "7ef124d64dadf7790f8204f8920203c79de03c4ebb280b469f76123b46634106"
        },
        "source": {
          "path": "Jorge Luis Borges/The Sect of the Phoenix.txt",
          "sha256": "d4ae77a6740e0b2ce20c4aef4ea9def02f73f7030d2a6c541145165da46ac16b",
          "digest_observed_at": "2026-09-09",
          "digest_at_analysis_run": null,
          "edition": null,
          "edition_status": "unresolved"
        },
        "pipeline_revision_at_run": null,
        "verification": {
          "source": "unverified",
          "human_review": "unreviewed",
          "bibliography": "unverified"
        },
        "issues": [],
        "todorov_status": "recovered-from-synthesis",
        "work_identity": {
          "title": "The Sect of the Phoenix",
          "author": "Jorge Luis Borges",
          "year": 1944
        }
      },
      "ntsmr": {
        "version": "2.5",
        "primary_run_label": "NTSMR-2.5-claude-sonnet-4-6-low",
        "runs": {
          "NTSMR-2.3-claude-sonnet-4-6-low": {
            "pipeline_version": "2.3",
            "backend": "claude",
            "model": "claude-sonnet-4-6",
            "scores": {
              "time_linearity": 0.85,
              "pacing_velocity": 0.97,
              "threat_scale": 0.88,
              "protagonist_fate": 0.72,
              "conflict_style": 0.91,
              "price_type": 0.93
            },
            "score_space": "site-v1",
            "reasoning_effort": "low"
          },
          "NTSMR-2.4-claude-sonnet-4-6-low": {
            "pipeline_version": "2.4",
            "backend": "claude",
            "model": "claude-sonnet-4-6",
            "scores": {
              "time_linearity": 0.8,
              "pacing_velocity": 0.85,
              "threat_scale": 0.35,
              "protagonist_fate": 0.45,
              "conflict_style": 0.85,
              "price_type": 0.88
            },
            "score_space": "site-v1",
            "reasoning_effort": "low"
          },
          "NTSMR-2.5-claude-sonnet-4-6-low": {
            "pipeline_version": "2.5",
            "backend": "claude",
            "model": "claude-sonnet-4-6",
            "scores": {
              "time_linearity": 0.85,
              "pacing_velocity": 0.88,
              "threat_scale": 0.35,
              "protagonist_fate": 0.45,
              "conflict_style": 0.9,
              "price_type": 0.88
            },
            "score_space": "site-v1",
            "reasoning_effort": "low"
          },
          "NTSMR-2.5-balanced-glm-5+deepseek-v3.2": {
            "pipeline_version": "2.5",
            "backend": "openrouter",
            "model": "balanced-routing",
            "scores": {
              "time_linearity": 0.95,
              "pacing_velocity": 0.9,
              "threat_scale": 0.55,
              "protagonist_fate": 0.5,
              "conflict_style": 0.9,
              "price_type": 0.85
            },
            "score_space": "site-v1",
            "score_only": true,
            "source_run_label": "NTSMR-2.5-claude-sonnet-4-6-low"
          }
        }
      },
      "todorov_stages": {
        "equilibrium": "The cult of the Phoenix exists as a stable, perpetual presence across all human societies, its members indistinguishable from ordinary people, united solely by the Secret, which is transmitted across generations without disruption to the social order or the cult's continuity.",
        "disruption": "The original cosmogonic myth and founding legend accompanying the Secret has been forgotten, leaving only the bare ritual obligation — a divine pact or punishment contingent on each generation performing the rite — stripped of its explanatory framework.",
        "recognition": "The narrator, through field research and review of historical sources, recognizes that the cult's apparent invisibility and universality are themselves the defining paradox: members have been both persecutors and persecuted throughout history without ever being identified as such, and all scholarly attempts to locate their origin in Egypt, gypsies, or Judaism fail because the cult resists every conventional marker of communal identity.",
        "repair": "The ritual itself — trivial, momentary, transmitted by the lowest social figures to avoid priestly or maternal contamination — functions as the ongoing repair mechanism, perpetuating the Secret through all wars and exoduses despite its perceived banality, shame, and vulgarity.",
        "new_equilibrium": "The Secret endures in a transformed state: no longer anchored to a founding myth, it persists as a possibly instinctive act, with two deviant positions marking its outer edges — those seized by sacred horror who refuse the rite, and those who renounce it entirely to achieve direct commerce with the Deity, commanding the greatest respect."
      },
      "characters": [
        {
          "name": "The Narrator",
          "slug": "the-narrator",
          "aliases": [],
          "role": "First-person scholarly investigator",
          "summary": "Unnamed essayist who claims field research across three continents, systematically refutes rival theories, and describes the Secret while withholding its content."
        },
        {
          "name": "Hrabanus Maurus",
          "slug": "hrabanus-maurus",
          "aliases": [],
          "role": "Medieval scholar (cited source)",
          "summary": "Earliest traceable source for the designation 'cult of the Phoenix'; cited to show the name is a late invention."
        },
        {
          "name": "Herodotus",
          "slug": "herodotus",
          "aliases": [],
          "role": "Ancient historian (cited and implicitly criticized)",
          "summary": "Cited by those who trace the cult to Heliopolis; the narrator implies these scholars misread or willfully ignore the evidence."
        },
        {
          "name": "Tacitus",
          "slug": "tacitus",
          "aliases": [],
          "role": "Ancient historian (cited and implicitly criticized)",
          "summary": "Cited alongside Herodotus by proponents of the Egyptian origin theory."
        },
        {
          "name": "Flavius Josephus",
          "slug": "flavius-josephus",
          "aliases": [],
          "role": "Ancient source (cited approvingly)",
          "summary": "Among the earliest sources; uses the designation 'People of the Practice' or 'People of the Secret' rather than 'Phoenix.'"
        },
        {
          "name": "Gregorovius",
          "slug": "gregorovius",
          "aliases": [],
          "role": "Observer (cited approvingly)",
          "summary": "Noted that mention of 'the Phoenix' was rare in Ferrara conventicles, supporting the narrator's argument about nomenclature."
        },
        {
          "name": "Moklosich",
          "slug": "moklosich",
          "aliases": [],
          "role": "Scholar (refuted)",
          "summary": "Equated cult members with gypsies; the narrator systematically dismantles this comparison."
        },
        {
          "name": "Urmann",
          "slug": "urmann",
          "aliases": [],
          "role": "Scholar (refuted)",
          "summary": "Traced the cult's roots to Israel; visited Jewish ghettos in Prague; his thesis is dismissed as a logical error."
        },
        {
          "name": "Martin Buber",
          "slug": "martin-buber",
          "aliases": [],
          "role": "Cited authority (contrast point)",
          "summary": "Cited for the observation that Jews are essentially sufferers, used as a point of contrast to distinguish cult members from Jews."
        },
        {
          "name": "Dr. Juan Francisco Amaro",
          "slug": "dr-juan-francisco-amaro",
          "aliases": [],
          "role": "Acquaintance of the narrator",
          "summary": "From Paysandú; remarked on cult members' ease of assimilation and ability to 'naturalize' themselves in any milieu."
        },
        {
          "name": "John of the Rood",
          "slug": "john-of-the-rood",
          "aliases": [],
          "role": "Cult member and liturgical poet",
          "summary": "Member who renounced the Practice to achieve direct commerce with the Deity; quoted writing liturgical verse encoding the Secret in figures of cork and mire."
        },
        {
          "name": "Du Gange",
          "slug": "du-gange",
          "aliases": [],
          "role": "Medieval lexicographer (cited source)",
          "summary": "His Glossary preserves the apocryphal saying 'Orbis terrarium est speculum Ludi,' cited as evidence that the Secret pervades all language."
        }
      ],
      "frameworks_mapped": [
        "Protocol Fiction Mapping",
        "Actantial Model",
        "Todorov's Equilibrium",
        "The Freytag Pyramid",
        "Propp's Morphology",
        "Genette's Narrative",
        "The Monomyth",
        "Dan Harmon",
        "Save the Cat",
        "Kishōtenketsu",
        "The Three-Act Structure",
        "Lévi-Strauss's Binary Oppositions",
        "Cognitive Estrangement",
        "Bakhtin's Chronotope",
        "Aristotelian Poetics",
        "Jungian Archetypal Analysis",
        "Genette's Transtextuality"
      ],
      "score_reliability": {
        "state": "contested",
        "threshold": 0.2,
        "runs_total": 4,
        "versions_compared": [
          "2.5"
        ],
        "max_spread": 0.2,
        "contested": [
          {
            "axis": "threat_scale",
            "version": "2.5",
            "spread": 0.2,
            "low": {
              "label": "NTSMR-2.5-claude-sonnet-4-6-low",
              "model": "claude-sonnet-4-6",
              "effort": "low",
              "value": 0.35
            },
            "high": {
              "label": "NTSMR-2.5-balanced-glm-5+deepseek-v3.2",
              "model": "balanced-routing",
              "effort": "?",
              "value": 0.55
            }
          }
        ]
      }
    },
    {
      "slug": "christopher_priest_the_separation",
      "title": "The Separation",
      "author": "Christopher Priest",
      "year": 2002,
      "medium": "book",
      "genre_tags": [],
      "tropes": [],
      "quadrant_scores": {
        "time_linearity": 0.88,
        "pacing_velocity": 0.78,
        "threat_scale": 0.65,
        "protagonist_fate": 0.82,
        "conflict_style": 0.8,
        "price_type": 0.8
      },
      "provenance": {
        "analysis_run": "NTSMR-2.5-claude-sonnet-4-6-low",
        "analysis_body_sha256": "1109ca7c2d844bd8ce17f527bba03f367ca436b58f2399bbaaf2a2ba99067e76",
        "synthesis": {
          "path": "nartopo-tools/artifacts/christopher_priest_the_separation.md.ntsmr-2-5-claude-sonnet-4-6-low.synthesis.json",
          "sha256": "d53279a06c9cb12f581d702b6da4f1e8ca5b241dbce9a377930585fb539ac374"
        },
        "report": {
          "path": "nartopo-tools/artifacts/christopher_priest_the_separation.md.ntsmr-2-5-claude-sonnet-4-6-low.report.json",
          "sha256": "a10731ce34274b3c89f6c312e7207f3ba7ae8c2e5bbddfee8d556cb935d866e2"
        },
        "source": {
          "path": "Christopher Priest/The Separation.txt",
          "sha256": "2f497b1f45a90b6febfdfe834e97e11b41cd5e46200f60192271d8262e678426",
          "digest_observed_at": "2026-09-09",
          "digest_at_analysis_run": null,
          "edition": null,
          "edition_status": "unresolved"
        },
        "pipeline_revision_at_run": null,
        "verification": {
          "source": "unverified",
          "human_review": "unreviewed",
          "bibliography": "unverified"
        },
        "issues": [],
        "todorov_status": "recovered-from-synthesis",
        "work_identity": {
          "title": "The Separation",
          "author": "Christopher Priest",
          "year": 2002
        }
      },
      "ntsmr": {
        "version": "2.5",
        "primary_run_label": "NTSMR-2.5-claude-sonnet-4-6-low",
        "runs": {
          "NTSMR-2.4-claude-sonnet-4-6-low": {
            "pipeline_version": "2.4",
            "backend": "claude",
            "model": "claude-sonnet-4-6",
            "scores": {
              "time_linearity": 0.8,
              "pacing_velocity": 0.65,
              "threat_scale": 0.75,
              "protagonist_fate": 0.8,
              "conflict_style": 0.7,
              "price_type": 0.6
            },
            "score_space": "site-v1",
            "reasoning_effort": "low"
          },
          "NTSMR-2.5-claude-sonnet-4-6-low": {
            "pipeline_version": "2.5",
            "backend": "claude",
            "model": "claude-sonnet-4-6",
            "scores": {
              "time_linearity": 0.88,
              "pacing_velocity": 0.78,
              "threat_scale": 0.65,
              "protagonist_fate": 0.82,
              "conflict_style": 0.8,
              "price_type": 0.8
            },
            "score_space": "site-v1",
            "reasoning_effort": "low"
          },
          "NTSMR-2.5-balanced-glm-5+deepseek-v3.2": {
            "pipeline_version": "2.5",
            "backend": "openrouter",
            "model": "balanced-routing",
            "scores": {
              "time_linearity": 0.8,
              "pacing_velocity": 0.75,
              "threat_scale": 0.75,
              "protagonist_fate": 0.75,
              "conflict_style": 0.7,
              "price_type": 0.7
            },
            "score_space": "site-v1",
            "score_only": true,
            "source_run_label": "NTSMR-2.5-claude-sonnet-4-6-low"
          }
        }
      },
      "todorov_stages": {
        "equilibrium": "The twin brothers Jack and Joe Sawyer exist in a settled pre-war world: Olympic athletes in 1936 Berlin, distinguished by their rowing partnership, operating within a stable if politically ominous European order. The alternate-history frame further establishes a 1999 present in which WWII ended May 10, 1941, suggesting the war's brief duration is itself the baseline normality Stuart Gratton investigates.",
        "disruption": "The outbreak of war forces an absolute separation between the brothers: Jack joins the RAF to fly bombing raids over Germany while Joe registers as a conscientious objector and Red Cross worker. Their identical initials and shared identity become a source of institutional confusion and personal crisis, compounded by Joe's recurring blast-injury hallucinations that blur the boundary between experienced reality and dying vision.",
        "recognition": "Joe recognises the full instability of his situation while trembling in the rear of the Red Cross aircraft and questioning whether his blast injuries have driven him mad — whether his entire perceived reality is a hallucination generated while he lies dying in the ambulance. Jack's refusal to stand down from operations despite Joe's warning that an armistice is imminent crystallises the irreversibility of their divergence.",
        "repair": "Joe participates in the Lisbon and Stockholm peace negotiations, serving as translator and pacifist advocate before Churchill; he delivers a formal argument that no war has achieved its stated aims and peace is the only rational course. The armistice is signed in Stockholm, witnessed by both Hess and Churchill, and Churchill broadcasts the ceasefire to the nation, with Hess assuming the German chancellorship.",
        "new_equilibrium": "Two irreconcilable new states are superimposed. In the visionary register, Joe returns to Rainow, holds his newborn son, and peace is established — but this is retrospectively revealed as a lucid imagining occurring while Joe lies dying in the ambulance. The actual new equilibrium is Joe clinging to life, watching Phyllida sleep, forcing himself to breathe through the night, the post-war world he experienced as vision lying ahead as an unreachable future rather than an achieved reality."
      },
      "characters": [
        {
          "name": "Stuart Gratton",
          "slug": "stuart-gratton",
          "aliases": [
            "Harry",
            "the baby",
            "the boy"
          ],
          "role": "Historian and oral history author; frame narrator",
          "summary": "Born May 10 1941 in Cheshire; former history teacher turned popular historian; author of The Last Day of War, The Silver Dragons, and The Exhausted Rage; researching a figure named Sawyer in 1999; sitting at a poorly attended book signing in Buxton."
        },
        {
          "name": "Joe Sawyer",
          "slug": "joe-sawyer",
          "aliases": [
            "JL",
            "J. L. Sawyer",
            "Jack",
            "Joe",
            "Joseph",
            "Joseph Leonard Sawyer",
            "Sawyer",
            "Group Captain Sawyer",
            "skip"
          ],
          "role": "RAF bomber pilot; Olympic rower; one of identical twin brothers",
          "summary": "The conscientious objector twin, returning home after the peace negotiations, who discovers his son has been born and named in his absence, sees Jack alive, collapses, and wakes dying in an ambulance — revealing the homecoming as a lucid imagining."
        },
        {
          "name": "Birgit",
          "slug": "birgit",
          "aliases": [],
          "role": "Host family member; later romantic interest of Joe",
          "summary": "Daughter in the Sattmann family hosting the twins in Berlin; plays violin (Beethoven's Romance No. 1); her music is audible during the twins' argument after the medal ceremony."
        },
        {
          "name": "Leonard Cheshire",
          "slug": "leonard-cheshire",
          "aliases": [
            "Pilot Officer Leonard Cheshire, DSO DFC"
          ],
          "role": "RAF bomber pilot; later Operation Maccabeus volunteer",
          "summary": "On May 10 1941 crossing the North Atlantic by ship on ferry duty; interviewed by Gratton; later helps set up the Commonwealth Flight for the USAAF and participates in Operation Maccabeus evacuating European Jews to Madagascar."
        },
        {
          "name": "Guy Gibson",
          "slug": "guy-gibson",
          "aliases": [
            "Flight Lieutenant Guy Gibson, DFC"
          ],
          "role": "RAF night-fighter pilot; later politician",
          "summary": "Based at RAF West Mailing on May 10 1941; flies a night patrol over London during a heavy Luftwaffe raid; cannon fails; later participates in Operation Maccabeus and becomes a Conservative MP."
        },
        {
          "name": "Goebbels",
          "slug": "goebbels",
          "aliases": [
            "Dr Goebbels",
            "Reich Minister of Public Enlightenment and Propaganda"
          ],
          "role": "Nazi propaganda minister; documentary film-maker in the alternate history",
          "summary": "Nazi propaganda minister whose diary entries form an ironic documentary frame; manipulates Hess's peace mission for political advantage and plans to discredit Hess if the flight fails."
        },
        {
          "name": "Rudolf Hess",
          "slug": "rudolf-hess",
          "aliases": [
            "Herr Deputy Führer",
            "Herr Deputy Leader",
            "Fraulein Hess"
          ],
          "role": "Actantial helper / historical figure",
          "summary": "Hitler's deputy; encountered at the Berlin reception; makes veiled advances and pressures JL to attend a private dinner; later held at Camp 'Z' and the subject of JL's intelligence report."
        },
        {
          "name": "Jimmy Norton",
          "slug": "jimmy-norton",
          "aliases": [],
          "role": "British Olympic rowing coach",
          "summary": "Coach to the Sawyer twins during training and competition at the 1936 Berlin Olympics; greets them enthusiastically after they win bronze."
        },
        {
          "name": "Ted Burrage",
          "slug": "ted-burrage",
          "aliases": [
            "Ted"
          ],
          "role": "Front gunner aboard the Wellington bomber",
          "summary": "Front gunner on JL's Wellington; first to spot and report enemy aircraft below; witnesses a Messerschmitt Me-110 shot down by Me-109s over the North Sea."
        },
        {
          "name": "Miss Victoria MacTyre",
          "slug": "miss-victoria-mactyre",
          "aliases": [],
          "role": "helper",
          "summary": "War Office secretary assigned to JL; reads his Hess report in full and advises him to restructure it using a succinct question-and-answer format modelled on the Narvik inquiry."
        },
        {
          "name": "Selwyn-Thaxted",
          "slug": "selwyn-thaxted",
          "aliases": [
            "Mr Selwyn-Thaxted"
          ],
          "role": "helper",
          "summary": "British Embassy official who materializes at the reception to extract JL from Hess's increasingly threatening overtures."
        },
        {
          "name": "Albert Speer",
          "slug": "albert-speer",
          "aliases": [
            "Herr Speer"
          ],
          "role": "minor",
          "summary": "Hitler's architect, mentioned by Hess as a fellow rowing enthusiast; never directly appears but name-dropped as a potential social contact."
        },
        {
          "name": "Winston Churchill",
          "slug": "winston-churchill",
          "aliases": [
            "Duke of London",
            "Mr Churchill",
            "the Prime Minister",
            "P.M."
          ],
          "role": "Historical figure / antagonist to peace",
          "summary": "British Prime Minister who resists the peace terms, refuses Hess's handshake at the signing, yet ultimately authorises and signs the armistice; delivers a triumphalist broadcast framing it as British victory."
        },
        {
          "name": "Sam",
          "slug": "sam",
          "aliases": [],
          "role": "Navigator, crew member narrator",
          "summary": "London-born navigator (from Tottenham) who joins JL's crew after getting lost on a solo flight; the close-third-person witness to JL's behaviour and the crew's missions."
        },
        {
          "name": "Lofty",
          "slug": "lofty",
          "aliases": [
            "John Skinner",
            "Warrant Officer John Skinner"
          ],
          "role": "Flight engineer",
          "summary": "Flight engineer, nicknamed Lofty; one of the crew who confronts JL about his secret German phone calls."
        },
        {
          "name": "Kris Galasckja",
          "slug": "kris-galasckja",
          "aliases": [
            "Kris"
          ],
          "role": "Rear gunner",
          "summary": "Polish rear gunner; overhears JL speaking German and reports it to the crew; witnesses the Me-110 being shot down."
        },
        {
          "name": "Colin Anderson",
          "slug": "colin-anderson",
          "aliases": [
            "Col"
          ],
          "role": "Wireless operator",
          "summary": "Canadian wireless operator recruited to JL's crew."
        },
        {
          "name": "Red Cross tribunal observer",
          "slug": "red-cross-tribunal-observer",
          "aliases": [],
          "role": "Narrator (documentary frame)",
          "summary": "Unnamed Red Cross official monitoring CO tribunals; later facilitates Sawyer's recruitment to the Red Cross; provides the formal observer's report voice."
        },
        {
          "name": "Patrick Matheson",
          "slug": "patrick-matheson",
          "aliases": [],
          "role": "Tribunal chairman",
          "summary": "Owner of a large Manchester insurance brokerage; chairs the Macclesfield tribunal; constitutionally intolerant of pacifists but awards Sawyer unconditional registration."
        },
        {
          "name": "Agnes Kilcannon",
          "slug": "agnes-kilcannon",
          "aliases": [
            "Mrs Kilcannon"
          ],
          "role": "Tribunal member",
          "summary": "Deputy chairwoman of Macclesfield Town Council; presses Sawyer on ARP conditions; appears to approve of his honest admission of doubt."
        },
        {
          "name": "Revd Michael Hutchinson",
          "slug": "revd-michael-hutchinson",
          "aliases": [],
          "role": "Tribunal member",
          "summary": "Vicar on the tribunal; questions Sawyer's religious faith and agnosticism."
        },
        {
          "name": "Ken Wilson",
          "slug": "ken-wilson",
          "aliases": [],
          "role": "Red Cross colleague",
          "summary": "Red Cross worker who tends Joe in the ambulance after the blast injury and explains what happened to him."
        },
        {
          "name": "Dr Burckhardt",
          "slug": "dr-burckhardt",
          "aliases": [],
          "role": "actantial:sender/helper",
          "summary": "International Red Cross representative who chairs the peace negotiations, presents German proposals to Churchill, and commissions a psychological report on JL Sawyer."
        },
        {
          "name": "Duke of Kent",
          "slug": "duke-of-kent",
          "aliases": [],
          "role": "Minor figure",
          "summary": "British royal who disembarks from the flying-boat in Stockholm as part of the peace delegation, his presence initially kept secret."
        },
        {
          "name": "Franklin K. Clark",
          "slug": "franklin-k-clark",
          "aliases": [
            "Frank"
          ],
          "role": "Minor figure",
          "summary": "Harley Street clinical psychologist who examines JL Sawyer informally and writes a confidential letter to Burckhardt about JL's psychological state."
        },
        {
          "name": "Phyllida",
          "slug": "phyllida",
          "aliases": [],
          "role": "supporting",
          "summary": "Red Cross ambulance nurse sleeping on the stretcher shelf across from the dying Joe; her peaceful sleep anchors Joe's will to survive."
        }
      ],
      "frameworks_mapped": [
        "Protocol Fiction Mapping",
        "Actantial Model",
        "Todorov's Equilibrium",
        "The Freytag Pyramid",
        "Propp's Morphology",
        "Genette's Narrative",
        "The Monomyth",
        "Dan Harmon",
        "Save the Cat",
        "Kishōtenketsu",
        "The Three-Act Structure",
        "Lévi-Strauss's Binary Oppositions",
        "Cognitive Estrangement",
        "Bakhtin's Chronotope",
        "Aristotelian Poetics",
        "Jungian Archetypal Analysis",
        "Genette's Transtextuality"
      ],
      "score_reliability": {
        "state": "replicated-agree",
        "threshold": 0.2,
        "runs_total": 3,
        "versions_compared": [
          "2.5"
        ],
        "max_spread": 0.1,
        "contested": []
      }
    },
    {
      "slug": "stanislaw_lem_the_seventh_sally_or_how_trurl_s_own_perfection_led_to_no_good",
      "title": "The Seventh Sally or How Trurl's Own Perfection Led to No Good",
      "author": "Stanislaw Lem",
      "year": 1965,
      "medium": "short_story",
      "genre_tags": [],
      "tropes": [],
      "quadrant_scores": {
        "time_linearity": 0.18,
        "pacing_velocity": 0.65,
        "threat_scale": 0.65,
        "protagonist_fate": 0.72,
        "conflict_style": 0.78,
        "price_type": 0.82
      },
      "provenance": {
        "analysis_run": "NTSMR-2.5-claude-sonnet-4-6-low",
        "analysis_body_sha256": "778c6b8e6a5667aaa5faf1eea1ba9816934174fb500b0ce9044be96c2a74d05e",
        "synthesis": {
          "path": "nartopo-tools/artifacts/stanislaw_lem_the_seventh_sally_or_how_trurl_s_own_perfection_led_to_no_good.md.ntsmr-2-5-claude-sonnet-4-6-low.synthesis.json",
          "sha256": "91e570b40d6fad678acf58754a9228a0523ec8a7e50880d960fca113916814d8"
        },
        "report": {
          "path": "nartopo-tools/artifacts/stanislaw_lem_the_seventh_sally_or_how_trurl_s_own_perfection_led_to_no_good.md.ntsmr-2-5-claude-sonnet-4-6-low.report.json",
          "sha256": "d099a6653c36659fba1ad900c10f1413d1da11cd7812462c838bb6b37d06c251"
        },
        "source": {
          "path": "Stanislaw Lem/The Seventh Sally or How Trurl's Own Perfection Led to No Good.txt",
          "sha256": "c57254ba8a784b95f891f3c21aa84e49fb60728ed6f626a55ba555d6f3c96056",
          "digest_observed_at": "2026-09-09",
          "digest_at_analysis_run": null,
          "edition": null,
          "edition_status": "unresolved"
        },
        "pipeline_revision_at_run": null,
        "verification": {
          "source": "unverified",
          "human_review": "unreviewed",
          "bibliography": "unverified"
        },
        "issues": [],
        "todorov_status": "recovered-from-synthesis",
        "work_identity": {
          "title": "The Seventh Sally or How Trurl's Own Perfection Led to No Good",
          "author": "Stanislaw Lem",
          "year": 1965
        }
      },
      "ntsmr": {
        "version": "2.5",
        "primary_run_label": "NTSMR-2.5-claude-sonnet-4-6-low",
        "runs": {
          "NTSMR-2.3-claude-sonnet-4-6-low": {
            "pipeline_version": "2.3",
            "backend": "claude",
            "model": "claude-sonnet-4-6",
            "scores": {
              "time_linearity": 0.2,
              "pacing_velocity": 0.75,
              "threat_scale": 0.65,
              "protagonist_fate": 0.55,
              "conflict_style": 0.8,
              "price_type": 0.85
            },
            "score_space": "site-v1",
            "reasoning_effort": "low"
          },
          "NTSMR-2.4-claude-sonnet-4-6-low": {
            "pipeline_version": "2.4",
            "backend": "claude",
            "model": "claude-sonnet-4-6",
            "scores": {
              "time_linearity": 0.25,
              "pacing_velocity": 0.55,
              "threat_scale": 0.55,
              "protagonist_fate": 0.65,
              "conflict_style": 0.75,
              "price_type": 0.8
            },
            "score_space": "site-v1",
            "reasoning_effort": "low"
          },
          "NTSMR-2.5-claude-sonnet-4-6-low": {
            "pipeline_version": "2.5",
            "backend": "claude",
            "model": "claude-sonnet-4-6",
            "scores": {
              "time_linearity": 0.18,
              "pacing_velocity": 0.65,
              "threat_scale": 0.65,
              "protagonist_fate": 0.72,
              "conflict_style": 0.78,
              "price_type": 0.82
            },
            "score_space": "site-v1",
            "reasoning_effort": "low"
          },
          "NTSMR-2.5-balanced-glm-5+deepseek-v3.2": {
            "pipeline_version": "2.5",
            "backend": "openrouter",
            "model": "balanced-routing",
            "scores": {
              "time_linearity": 0.25,
              "pacing_velocity": 0.75,
              "threat_scale": 0.75,
              "protagonist_fate": 0.7,
              "conflict_style": 0.8,
              "price_type": 0.8
            },
            "score_space": "site-v1",
            "score_only": true,
            "source_run_label": "NTSMR-2.5-claude-sonnet-4-6-low"
          }
        }
      },
      "todorov_stages": {
        "equilibrium": "Trurl exists in a state of unchallenged mastery and vanity: his fame has circumnavigated the universe, he accepts veneration as his due, and he sets out on a solo sally confident in his capacity to solve any problem through technical perfection.",
        "disruption": "Trurl encounters the exiled tyrant Excelsius stranded on a barren asteroid, demanding restoration to power. Unable to reinstate him over real subjects, Trurl constructs a miniaturized but fully self-organizing kingdom — an act whose moral consequences he does not yet perceive.",
        "recognition": "Klapaucius delivers a philosophical indictment upon Trurl's return, arguing that the miniature civilization, being self-conscious and capable of suffering, constitutes real beings delivered into tyranny. Trurl then quietly admits he deliberately made the kingdom indistinguishable from reality — conceding the full moral weight of what he has done.",
        "repair": "The two constructors race back to the asteroid intending to remedy the situation, but find themselves paralyzed by an insoluble dilemma: seizing the kingdom destroys it; liberating its inhabitants means tampering with programmed minds. No clean repair is possible.",
        "new_equilibrium": "The Microminians have already resolved the situation themselves — they escaped the box, colonized the asteroid, achieved atomic-age civilization, overthrew Excelsius, and transformed the glass box into a temple. Excelsius now orbits as the literal moon of the civilization he once tyrannized. The constructors are spectators of an outcome entirely beyond their control or authorship."
      },
      "characters": [
        {
          "name": "Trurl",
          "slug": "trurl",
          "aliases": [],
          "role": "protagonist",
          "summary": "A supremely skilled constructor-benefactor defined by vanity and perfection; builds the miniature kingdom as a humane solution, only to confront its moral catastrophe."
        },
        {
          "name": "Klapaucius",
          "slug": "klapaucius",
          "aliases": [],
          "role": "moral interlocutor",
          "summary": "Trurl's partner and ethical conscience; delivers the philosophical indictment of the box kingdom and accompanies Trurl back to the asteroid."
        },
        {
          "name": "Excelsius",
          "slug": "excelsius",
          "aliases": [
            "Excelsius the Tartarian"
          ],
          "role": "antagonist/recipient",
          "summary": "A deposed tyrant, ruler of Pancreon and Cyspenderora, who accepts the miniature kingdom and reigns diligently over it until his subjects revolt and transform him into the asteroid's moon."
        },
        {
          "name": "Microminians",
          "slug": "microminians",
          "aliases": [],
          "role": "collective agent",
          "summary": "The inhabitants of the box kingdom who escape their container, colonize the asteroid, achieve atomic civilization, and overthrow Excelsius."
        }
      ],
      "frameworks_mapped": [
        "Protocol Fiction Mapping",
        "Actantial Model",
        "Todorov's Equilibrium",
        "The Freytag Pyramid",
        "Propp's Morphology",
        "Genette's Narrative",
        "The Monomyth",
        "Dan Harmon",
        "Save the Cat",
        "Kishōtenketsu",
        "The Three-Act Structure",
        "Lévi-Strauss's Binary Oppositions",
        "Cognitive Estrangement",
        "Bakhtin's Chronotope",
        "Aristotelian Poetics",
        "Jungian Archetypal Analysis",
        "Genette's Transtextuality"
      ],
      "score_reliability": {
        "state": "replicated-agree",
        "threshold": 0.2,
        "runs_total": 4,
        "versions_compared": [
          "2.5"
        ],
        "max_spread": 0.1,
        "contested": []
      }
    },
    {
      "slug": "stanislaw_lem_the_sixth_sally_or_how_trurl_and_klapaucius_created_a_demon",
      "title": "The Sixth Sally or How Trurl and Klapaucius Created a Demon",
      "author": "Stanislaw Lem",
      "year": 1965,
      "medium": "short_story",
      "genre_tags": [],
      "tropes": [],
      "quadrant_scores": {
        "time_linearity": 0.22,
        "pacing_velocity": 0.45,
        "threat_scale": 0.2,
        "protagonist_fate": 0.18,
        "conflict_style": 0.45,
        "price_type": 0.7
      },
      "provenance": {
        "analysis_run": "NTSMR-2.5-claude-sonnet-4-6-low",
        "analysis_body_sha256": "4d8a233d366731cd73186f31ff62127f2ea5099adcd0b509bf97b0741c6c9d4c",
        "synthesis": {
          "path": "nartopo-tools/artifacts/stanislaw_lem_the_sixth_sally_or_how_trurl_and_klapaucius_created_a_demon.md.ntsmr-2-5-claude-sonnet-4-6-low.synthesis.json",
          "sha256": "6328963e43de208ba850d47cb076b06a3ce51405b5e7a76743beacf0406ec2bb"
        },
        "report": {
          "path": "nartopo-tools/artifacts/stanislaw_lem_the_sixth_sally_or_how_trurl_and_klapaucius_created_a_demon.md.ntsmr-2-5-claude-sonnet-4-6-low.report.json",
          "sha256": "53c6dd7328779433c34490bbc60d7e220a4977d3f523ea518649ff1d4a8aa46b"
        },
        "source": {
          "path": "Stanislaw Lem/The Sixth Sally or How Trurl and Klapaucius Created a Demon.txt",
          "sha256": "d20184421345b5fa0785b560c41760d5f9039c0ce4147f9584ec6815456172dd",
          "digest_observed_at": "2026-09-09",
          "digest_at_analysis_run": null,
          "edition": null,
          "edition_status": "unresolved"
        },
        "pipeline_revision_at_run": null,
        "verification": {
          "source": "unverified",
          "human_review": "unreviewed",
          "bibliography": "unverified"
        },
        "issues": [],
        "todorov_status": "recovered-from-synthesis",
        "work_identity": {
          "title": "The Sixth Sally or How Trurl and Klapaucius Created a Demon",
          "author": "Stanislaw Lem",
          "year": 1965
        }
      },
      "ntsmr": {
        "version": "2.5",
        "primary_run_label": "NTSMR-2.5-claude-sonnet-4-6-low",
        "runs": {
          "NTSMR-2.3-gemini-3.1-pro-preview": {
            "pipeline_version": "2.3",
            "backend": "gemini",
            "model": "gemini-3.1-pro-preview",
            "scores": {
              "time_linearity": 0.05,
              "pacing_velocity": 0.35,
              "threat_scale": 0.1,
              "protagonist_fate": 0.05,
              "conflict_style": 0.15,
              "price_type": 0.85
            },
            "score_space": "site-v1"
          },
          "NTSMR-2.3-claude-sonnet-4-6-low": {
            "pipeline_version": "2.3",
            "backend": "claude",
            "model": "claude-sonnet-4-6",
            "scores": {
              "time_linearity": 0.15,
              "pacing_velocity": 0.65,
              "threat_scale": 0.3,
              "protagonist_fate": 0.05,
              "conflict_style": 0.75,
              "price_type": 0.7
            },
            "score_space": "site-v1",
            "reasoning_effort": "low"
          },
          "NTSMR-2.4-claude-sonnet-4-6-low": {
            "pipeline_version": "2.4",
            "backend": "claude",
            "model": "claude-sonnet-4-6",
            "scores": {
              "time_linearity": 0.12,
              "pacing_velocity": 0.28,
              "threat_scale": 0.25,
              "protagonist_fate": 0.15,
              "conflict_style": 0.35,
              "price_type": 0.55
            },
            "score_space": "site-v1",
            "reasoning_effort": "low"
          },
          "NTSMR-2.5-claude-sonnet-4-6-low": {
            "pipeline_version": "2.5",
            "backend": "claude",
            "model": "claude-sonnet-4-6",
            "scores": {
              "time_linearity": 0.22,
              "pacing_velocity": 0.45,
              "threat_scale": 0.2,
              "protagonist_fate": 0.18,
              "conflict_style": 0.45,
              "price_type": 0.7
            },
            "score_space": "site-v1",
            "reasoning_effort": "low"
          },
          "NTSMR-2.5-balanced-glm-5+deepseek-v3.2": {
            "pipeline_version": "2.5",
            "backend": "openrouter",
            "model": "balanced-routing",
            "scores": {
              "time_linearity": 0.28,
              "pacing_velocity": 0.72,
              "threat_scale": 0.38,
              "protagonist_fate": 0.28,
              "conflict_style": 0.65,
              "price_type": 0.82
            },
            "score_space": "site-v1",
            "score_only": true,
            "source_run_label": "NTSMR-2.5-claude-sonnet-4-6-low"
          }
        }
      },
      "todorov_stages": {
        "equilibrium": "Trurl and Klapaucius exist as free constructors navigating the cosmos, their autonomy and knowledge their own; the Black Wastes are a rumored but unvisited region of legend.",
        "disruption": "Pugg captures the constructors and demands they surrender all their knowledge under threat of imprisonment, seizing their freedom and intellectual property by piratical force.",
        "recognition": "Trurl and Klapaucius recognize they cannot simply escape or bribe their way free — Pugg dismisses the gold-synthesis formula as redundant — and that a more devious solution is required.",
        "repair": "Trurl proposes and builds the Demon of the Second Kind, a device that produces infinite trivially-true facts at 300 million per second, satisfying Pugg's oath while rendering the information useless; the constructors slip away while Pugg is riveted by the output.",
        "new_equilibrium": "The constructors escape and are free, while Pugg is permanently immobilized beneath an avalanche of coiling paper tape, buried to this day with no hope of release, the diamond pen still flickering in his rubbage heap — a punishment that is eternal and self-perpetuating."
      },
      "characters": [
        {
          "name": "Trurl",
          "slug": "trurl",
          "aliases": [],
          "role": "Constructor and general omni-potentiary",
          "summary": "A stubborn and brilliant constructor who reads about the Great Shroud Wastes and insists on traveling there, ultimately inventing the Demon of the Second Kind to outwit Pugg."
        },
        {
          "name": "Klapaucius",
          "slug": "klapaucius",
          "aliases": [],
          "role": "Wise constructor",
          "summary": "Trurl's more level-headed and cautious friend who initially dismisses the legends of the Anonymoid and the Shroud as a mere junkyard, but accompanies Trurl anyway."
        },
        {
          "name": "Pugg",
          "slug": "pugg",
          "aliases": [
            "The PHT Pirate",
            "pirate with a Ph.D."
          ],
          "role": "Robber-giant",
          "summary": "A colossal, highly educated, and hideous pirate with a hundred eyes who hoards authentic facts and valuable information instead of gold. He captures Trurl and Klapaucius."
        },
        {
          "name": "The Anonymoid",
          "slug": "the-anonymoid",
          "aliases": [],
          "role": "Mythological pirate and mage",
          "summary": "A legendary, monstrous creature written about in ancient lore, said to devour ships and wayfarers in the Great Shroud Wastes."
        }
      ],
      "frameworks_mapped": [
        "Protocol Fiction Mapping",
        "Actantial Model",
        "Todorov's Equilibrium",
        "The Freytag Pyramid",
        "Propp's Morphology",
        "Genette's Narrative",
        "The Monomyth",
        "Dan Harmon",
        "Save the Cat",
        "Kishōtenketsu",
        "The Three-Act Structure",
        "Lévi-Strauss's Binary Oppositions",
        "Cognitive Estrangement",
        "Bakhtin's Chronotope",
        "Aristotelian Poetics",
        "Jungian Archetypal Analysis",
        "Genette's Transtextuality"
      ],
      "score_reliability": {
        "state": "contested",
        "threshold": 0.2,
        "runs_total": 5,
        "versions_compared": [
          "2.5"
        ],
        "max_spread": 0.27,
        "contested": [
          {
            "axis": "pacing_velocity",
            "version": "2.5",
            "spread": 0.27,
            "low": {
              "label": "NTSMR-2.5-claude-sonnet-4-6-low",
              "model": "claude-sonnet-4-6",
              "effort": "low",
              "value": 0.45
            },
            "high": {
              "label": "NTSMR-2.5-balanced-glm-5+deepseek-v3.2",
              "model": "balanced-routing",
              "effort": "?",
              "value": 0.72
            }
          },
          {
            "axis": "conflict_style",
            "version": "2.5",
            "spread": 0.2,
            "low": {
              "label": "NTSMR-2.5-claude-sonnet-4-6-low",
              "model": "claude-sonnet-4-6",
              "effort": "low",
              "value": 0.45
            },
            "high": {
              "label": "NTSMR-2.5-balanced-glm-5+deepseek-v3.2",
              "model": "balanced-routing",
              "effort": "?",
              "value": 0.65
            }
          }
        ]
      }
    },
    {
      "slug": "joan_d_vinge_the_snow_queen",
      "title": "The Snow Queen",
      "author": "Joan D. Vinge",
      "year": 1980,
      "medium": "book",
      "genre_tags": [],
      "tropes": [],
      "quadrant_scores": {
        "time_linearity": 0.28,
        "pacing_velocity": 0.62,
        "threat_scale": 0.72,
        "protagonist_fate": 0.38,
        "conflict_style": 0.65,
        "price_type": 0.68
      },
      "provenance": {
        "analysis_run": "NTSMR-2.5-claude-sonnet-4-6-low",
        "analysis_body_sha256": "482873b2eed9213cad66fde7d85808e0616c1251ad7030f74ad4a2ef7002e07c",
        "synthesis": {
          "path": "nartopo-tools/artifacts/joan_d_vinge_the_snow_queen.md.ntsmr-2-5-claude-sonnet-4-6-low.synthesis.json",
          "sha256": "295f310374095639af7f28307934238d45a3ec6164719a20654fa3c209bad79f"
        },
        "report": {
          "path": "nartopo-tools/artifacts/joan_d_vinge_the_snow_queen.md.ntsmr-2-5-claude-sonnet-4-6-low.report.json",
          "sha256": "8ca090ef0f3c73de22830d53c84058988e108214f84e9b65142a572f5a486efc"
        },
        "source": {
          "path": "Joan D. Vinge/The Snow Queen.txt",
          "sha256": "f39295483c4ee3ff1749a1229e6d86d22cbb69bfa92e1004f80382fd27e891fc",
          "digest_observed_at": "2026-09-09",
          "digest_at_analysis_run": null,
          "edition": null,
          "edition_status": "unresolved"
        },
        "pipeline_revision_at_run": null,
        "verification": {
          "source": "unverified",
          "human_review": "unreviewed",
          "bibliography": "unverified"
        },
        "issues": [],
        "todorov_status": "recovered-from-synthesis",
        "work_identity": {
          "title": "The Snow Queen",
          "author": "Joan D. Vinge",
          "year": 1980
        }
      },
      "ntsmr": {
        "version": "2.5",
        "primary_run_label": "NTSMR-2.5-claude-sonnet-4-6-low",
        "runs": {
          "NTSMR-2.4-claude-sonnet-4-6-low": {
            "pipeline_version": "2.4",
            "backend": "claude",
            "model": "claude-sonnet-4-6",
            "scores": {
              "time_linearity": 0.22,
              "pacing_velocity": 0.45,
              "threat_scale": 0.65,
              "protagonist_fate": 0.28,
              "conflict_style": 0.58,
              "price_type": 0.62
            },
            "score_space": "site-v1",
            "reasoning_effort": "low"
          },
          "NTSMR-2.5-claude-sonnet-4-6-low": {
            "pipeline_version": "2.5",
            "backend": "claude",
            "model": "claude-sonnet-4-6",
            "scores": {
              "time_linearity": 0.28,
              "pacing_velocity": 0.62,
              "threat_scale": 0.72,
              "protagonist_fate": 0.38,
              "conflict_style": 0.65,
              "price_type": 0.68
            },
            "score_space": "site-v1",
            "reasoning_effort": "low"
          },
          "NTSMR-2.5-balanced-glm-5+deepseek-v3.2": {
            "pipeline_version": "2.5",
            "backend": "openrouter",
            "model": "balanced-routing",
            "scores": {
              "time_linearity": 0.28,
              "pacing_velocity": 0.68,
              "threat_scale": 0.72,
              "protagonist_fate": 0.38,
              "conflict_style": 0.62,
              "price_type": 0.68
            },
            "score_space": "site-v1",
            "score_only": true,
            "source_run_label": "NTSMR-2.5-claude-sonnet-4-6-low"
          }
        }
      },
      "todorov_stages": {
        "equilibrium": "Tiamat exists under the long-standing cyclical order of the Change: Winter reigns during offworld contact, the water of life flows from mer hunts sustaining Arienrhod's 150-year rule, the Hegemonic Police maintain nominal law in Carbuncle, and Summer people like Moon live in their coastal outback communities. Moon trains as a sibyl on the Choosing Island, Sparks has departed for Carbuncle, and the planetary countdown to the Change is a known but distant pressure.",
        "disruption": "Arienrhod commissions illegal clone implants in sleeping Summer women and resolves to bring Moon to Carbuncle to preserve technology through the Change; simultaneously Sparks departs for Carbuncle and falls into moral corruption as Starbuck, the Queen's masked champion and executioner. Arienrhod's commissioning of a biological epidemic targeting Summer people at the Festival represents the sharpest single rupture of the social order.",
        "recognition": "Moon deduces through accumulated evidence — the medal, the mask, Starbuck's anguished words — that Starbuck is Sparks, her lost cousin, and simultaneously learns through the sibyl Transfer that mers are Old Empire intelligent life forms, making the Hunt a form of murder. Jerusha pieces together that Moon is Arienrhod's clone and that the Queen has been systematically dismantling the police from within. Moon and Fate confirm that the Hegemony suppresses the truth of the sibyl network.",
        "repair": "Moon enters Carbuncle, infiltrates the palace, and bargains with Jerusha — trading intelligence about the poisoning of the Commander of Police in exchange for dropped charges and contact with Sirus to extract Sparks before the Change ritual. Jerusha mobilizes her officers to intercept Arienrhod's conspiracy. Moon enters the Summer Queen footrace and wins the green ribbon, positioning herself as the new Summer Queen. Sparks destroys the subsonic transmitter hidden in Jerusha's clock, ending years of psychological manipulation.",
        "new_equilibrium": "Moon is crowned Summer Queen, the offworlders depart through the Black Gate never to return in her lifetime, and Arienrhod is drowned in the Change ritual with Herne beside her. Moon unmasks before the crowd, bares her sibyl tattoo, declares herself Moon Dawntreader Summer, and delivers her first speech summoning sibyls to Carbuncle and forbidding the destruction of offworld technology — inaugurating a new political and cultural order oriented toward restoring the Old Empire's knowledge network. Jerusha, released from Hegemonic service, remains on Tiamat with Ngenet, beginning her own new life."
      },
      "characters": [
        {
          "name": "Arienrhod",
          "slug": "arienrhod",
          "aliases": [
            "the Snow Queen",
            "the Winter Queen",
            "Snow Queen",
            "Winter Queen",
            "the Queen",
            "Your Majesty"
          ],
          "role": "Antagonist, genetic original",
          "summary": "The dying Winter Queen who endures the Change procession with cold dignity, discovers Herne has replaced Sparks, has a final face-to-face revelation with Moon her clone, and accepts death with the consolation that her existence was not in vain."
        },
        {
          "name": "Jerusha PalaThion",
          "slug": "jerusha-palathion",
          "aliases": [
            "Inspector PalaThion",
            "Inspector",
            "Commander",
            "Commander PalaThion"
          ],
          "role": "POV protagonist / Hegemonic Police Commander",
          "summary": "Reactivates Pollux and acts decisively on the conspiracy intelligence; negotiates with Moon, contacts Sirus, and ultimately enables the plan to spare Sparks while allowing the Change to proceed."
        },
        {
          "name": "Gundhalinu",
          "slug": "gundhalinu",
          "aliases": [
            "BZ",
            "Sergeant",
            "Blue",
            "Good Blue Gundhalinu"
          ],
          "role": "Hegemonic Police inspector / POV character",
          "summary": "Kharemoughi inspector stripped of rank, physically ill, emotionally exposed; tries to stop Moon, fails, accepts the role of doorkeeper; shares a candid exchange with Herne about suicide, honor, and the nature of his feeling for Moon."
        },
        {
          "name": "Clavally",
          "slug": "clavally",
          "aliases": [],
          "role": "Mentor / sibyl teacher",
          "summary": "Experienced sibyl who mentors Moon; explains why the Lady rejected Sparks and reveals Danaquil Lu's Winter origin; models compassion and boundary-setting."
        },
        {
          "name": "Danaquil Lu",
          "slug": "danaquil-lu",
          "aliases": [],
          "role": "Supporting / Clavally's partner",
          "summary": "Clavally's quiet, scarred partner; co-initiator of Moon's sibyl consecration; seems out of place on the island and occasionally regards Moon with unnameable recognition."
        },
        {
          "name": "Doctor",
          "slug": "doctor",
          "aliases": [],
          "role": "minor/coerced",
          "summary": "Unnamed biochemist coerced by Arienrhod to perform illegal clone implants and tracer insertions on sleeping Summer women in exchange for twenty-five years of extended youth."
        },
        {
          "name": "Gran",
          "slug": "gran",
          "aliases": [],
          "role": "minor/family",
          "summary": "Moon and Sparks's grandmother; present at the dock farewell; grieves the simultaneous departure of both grandchildren."
        },
        {
          "name": "Daft Naimy",
          "slug": "daft-naimy",
          "aliases": [
            "the Summer Prophet"
          ],
          "role": "minor/symbolic",
          "summary": "Wandering religious madman, reportedly a former Winter who shed a sibyl's blood and was punished with madness; his apocalyptic preaching at the dock underscores the farewell's foreboding."
        },
        {
          "name": "Kirard Set",
          "slug": "kirard-set",
          "aliases": [
            "Elder Wayaways"
          ],
          "role": "minor/court",
          "summary": "Elder of the Wayaways family, a young-faced favorite of Arienrhod who greets and announces Jerusha and Gundhalinu at the palace."
        },
        {
          "name": "Herne",
          "slug": "herne",
          "aliases": [
            "Sparks Dawntreader",
            "Starbuck (future role)",
            "Starbuck",
            "Sparkie",
            "Old Starbuck"
          ],
          "role": "Protagonist-secondary / Queen's consort",
          "summary": "Crippled ex-champion confined to an exoskeleton, bitter and broken, who gives Moon the wind-control box out of inverted devotion to Arienrhod's image and obscure revenge; engages in unexpectedly honest dialogue with Gundhalinu about honor, survival, and class."
        },
        {
          "name": "Moon Dawntreader Summer",
          "slug": "moon-dawntreader-summer",
          "aliases": [
            "Moon",
            "sibyl",
            "Summer Queen",
            "Lady"
          ],
          "role": "Protagonist, sibyl, future Summer Queen",
          "summary": "Drives every scene: acquires the wind-control box, infiltrates the palace, crosses the Hall of the Winds twice under supernatural and mortal threat, refuses Arienrhod's seduction, bargains with Jerusha, and enters the Summer Queen's race—compelled by the sibyl machine as much as by personal will."
        },
        {
          "name": "Fate Ravenglass",
          "slug": "fate-ravenglass",
          "aliases": [
            "Fate"
          ],
          "role": "Secret sibyl and maskmaker in Carbuncle",
          "summary": "Maskmaker with a 'third eye' headband who recognizes Moon from a previous Transfer vision; reveals Moon could run for Summer Queen and confirms the Old Empire sibyl network."
        },
        {
          "name": "Elsevier",
          "slug": "elsevier",
          "aliases": [
            "Elsie",
            "Obedience"
          ],
          "role": "Helper / ship captain",
          "summary": "Offworld ship captain and techrunner who shelters Moon from police; manipulates and persuades Moon to transit the Gate to save Cress; morally complex and seasoned."
        },
        {
          "name": "Cress",
          "slug": "cress",
          "aliases": [],
          "role": "Helper / crew member",
          "summary": "Elsevier's crew member; holds Moon at gunpoint before recognizing she is a sibyl; accidentally impales himself on Moon's knife during the escape and is placed in cryogenic suspension."
        },
        {
          "name": "Silky",
          "slug": "silky",
          "aliases": [],
          "role": "Non-human companion (dillyp)",
          "summary": "Moon's alien companion aboard ship who shares the Gate transit; later accompanies her diving with mers, is stabbed by Hounds when he advances on Starbuck."
        },
        {
          "name": "Ngenet",
          "slug": "ngenet",
          "aliases": [
            "Miroe Ngenet",
            "Citizen Ngenet",
            "Miroe"
          ],
          "role": "Plantation owner, Jerusha's companion",
          "summary": "Protects Moon after her rescue; teaches her about mer intelligence through her Transfer; maintains a family tradition of mer sanctuary; confronts Jerusha after the massacre on his land."
        },
        {
          "name": "Mantagnes",
          "slug": "mantagnes",
          "aliases": [
            "Chief Inspector"
          ],
          "role": "Antagonist subordinate, bureaucratic rival",
          "summary": "Formerly Chief Inspector, now Acting Commander; present in Jerusha's office with the Chief Justice, signaling high-level institutional action against her."
        },
        {
          "name": "KR Aspundh",
          "slug": "kr-aspundh",
          "aliases": [
            "KR"
          ],
          "role": "Donor / sibyl mentor",
          "summary": "Elderly Kharemoughi man, TJ's younger brother, unexpectedly aged; himself a sibyl; explains the Old Empire origins of the sibyl network to Moon and undertakes her training."
        },
        {
          "name": "Singalu",
          "slug": "singalu",
          "aliases": [
            "PN Singalu"
          ],
          "role": "Minor / political figure",
          "summary": "Elderly Unclassified political leader on Kharemough who is accidentally elevated to Technician rank on live parliamentary broadcast when a Tech addresses him directly."
        },
        {
          "name": "KerlaTinde",
          "slug": "kerlatinde",
          "aliases": [],
          "role": "Antagonist-minor / officer",
          "summary": "Captain in Jerusha's command who confronts her as spokesman for the officers, demanding relief from street patrol duty; contemptuous of her authority."
        },
        {
          "name": "The Source",
          "slug": "the-source",
          "aliases": [],
          "role": "Criminal underworld broker",
          "summary": "A shadowy figure with a ruined voice who operates in total darkness and brokers illegal services including the planned epidemic, demanding three Hunts' take as payment."
        },
        {
          "name": "Blodwed",
          "slug": "blodwed",
          "aliases": [
            "TierPardée"
          ],
          "role": "Nomad teenager / captor",
          "summary": "Young nomad girl who places a noose around Gundhalinu and claims Moon as a 'pet sibyl' for her zoo, overriding the crone's objections."
        },
        {
          "name": "Crone / shaman",
          "slug": "crone-shaman",
          "aliases": [],
          "role": "Nomad shaman",
          "summary": "Elderly nomad leader who decides to keep Gundhalinu alive as a slave rather than kill him, citing that it is bad luck to kill a crazy man."
        },
        {
          "name": "Taryd Roh",
          "slug": "taryd-roh",
          "aliases": [],
          "role": "Antagonist, nomad predator",
          "summary": "Enters the animal pen at night to assault Moon; beats Gundhalinu aside when he tries to intervene."
        },
        {
          "name": "TessraBarde",
          "slug": "tessrabarde",
          "aliases": [
            "Sergeant"
          ],
          "role": "Hegemonic Police sergeant at starport",
          "summary": "Challenges Gundhalinu about bringing a local into the complex but backs down."
        },
        {
          "name": "Sirus",
          "slug": "sirus",
          "aliases": [
            "First Secretary",
            "Temmon Ashwini Sirus",
            "First Secretary Sirus"
          ],
          "role": "Hegemonic Assembly figurehead, Prime Minister's natural son",
          "summary": "Hegemonic First Secretary who agrees to attempt extracting Sparks from the palace, apparently having previously promised Moon his help; his paternity of Sparks is noted but uncertain."
        },
        {
          "name": "Tor",
          "slug": "tor",
          "aliases": [
            "Persiponë",
            "Starhiker"
          ],
          "role": "Street figure, intermediary",
          "summary": "Casino operator with wry self-awareness; shames Herne into generosity, discovers Oyarzabal's conspiracy, and later serves as a witness and connector in the police investigation."
        },
        {
          "name": "Oyarzabal",
          "slug": "oyarzabal",
          "aliases": [],
          "role": "Antagonist's instrument, Tor's fiancé",
          "summary": "Conspirator working for the Source on a Queen-sanctioned operation targeting Summer people; his overheard words condemn him and expose the Queen's plot to Jerusha via Pollux."
        },
        {
          "name": "Pollux",
          "slug": "pollux",
          "aliases": [
            "Unit Pollux"
          ],
          "role": "Polrob, helper",
          "summary": "Tor's leased robot; witnesses the conspiracy meeting, travels to the police for help when Tor is stunned, and delivers the critical testimony that breaks the Queen's plot open—expressing something like attachment to Tor."
        }
      ],
      "frameworks_mapped": [
        "Protocol Fiction Mapping",
        "Actantial Model",
        "Todorov's Equilibrium",
        "The Freytag Pyramid",
        "Propp's Morphology",
        "Genette's Narrative",
        "The Monomyth",
        "Dan Harmon",
        "Save the Cat",
        "Kishōtenketsu",
        "The Three-Act Structure",
        "Lévi-Strauss's Binary Oppositions",
        "Cognitive Estrangement",
        "Bakhtin's Chronotope",
        "Aristotelian Poetics",
        "Jungian Archetypal Analysis",
        "Genette's Transtextuality"
      ],
      "score_reliability": {
        "state": "replicated-agree",
        "threshold": 0.2,
        "runs_total": 3,
        "versions_compared": [
          "2.5"
        ],
        "max_spread": 0.06,
        "contested": []
      }
    },
    {
      "slug": "jorge_luis_borges_the_south",
      "title": "The South",
      "author": "Jorge Luis Borges",
      "year": 1944,
      "medium": "short_story",
      "genre_tags": [],
      "tropes": [],
      "quadrant_scores": {
        "time_linearity": 0.2,
        "pacing_velocity": 0.55,
        "threat_scale": 0.2,
        "protagonist_fate": 0.75,
        "conflict_style": 0.45,
        "price_type": 0.6
      },
      "provenance": {
        "analysis_run": "NTSMR-2.5-claude-sonnet-4-6-low",
        "analysis_body_sha256": "4bbbbad2de3c676d7db1dc80bf63ee27e3d71175cfd2d6ac3d9b8468106cd3fb",
        "synthesis": {
          "path": "nartopo-tools/artifacts/jorge_luis_borges_the_south.md.ntsmr-2-5-claude-sonnet-4-6-low.synthesis.json",
          "sha256": "f1768a239a2f9890f6d757417a133405907decefca6a5e24fe0af2b6453fad57"
        },
        "report": {
          "path": "nartopo-tools/artifacts/jorge_luis_borges_the_south.md.ntsmr-2-5-claude-sonnet-4-6-low.report.json",
          "sha256": "c93a36458190318a28270a7490a3ae3dad4dadad07aa6acecb7adb548c4c86a6"
        },
        "source": {
          "path": "Jorge Luis Borges/The South.txt",
          "sha256": "9827e7e1c1dee5f66f07a8ab315009428e29c5b74024b25b2500aa22d48056c8",
          "digest_observed_at": "2026-09-09",
          "digest_at_analysis_run": null,
          "edition": null,
          "edition_status": "unresolved"
        },
        "pipeline_revision_at_run": null,
        "verification": {
          "source": "unverified",
          "human_review": "unreviewed",
          "bibliography": "unverified"
        },
        "issues": [],
        "todorov_status": "recovered-from-synthesis",
        "work_identity": {
          "title": "The South",
          "author": "Jorge Luis Borges",
          "year": 1944
        }
      },
      "ntsmr": {
        "version": "2.5",
        "primary_run_label": "NTSMR-2.5-claude-sonnet-4-6-low",
        "runs": {
          "NTSMR-2.3-claude-sonnet-4-6-low": {
            "pipeline_version": "2.3",
            "backend": "claude",
            "model": "claude-sonnet-4-6",
            "scores": {
              "time_linearity": 0.55,
              "pacing_velocity": 0.72,
              "threat_scale": 0.25,
              "protagonist_fate": 0.75,
              "conflict_style": 0.65,
              "price_type": 0.78
            },
            "score_space": "site-v1",
            "reasoning_effort": "low"
          },
          "NTSMR-2.4-claude-sonnet-4-6-low": {
            "pipeline_version": "2.4",
            "backend": "claude",
            "model": "claude-sonnet-4-6",
            "scores": {
              "time_linearity": 0.45,
              "pacing_velocity": 0.65,
              "threat_scale": 0.12,
              "protagonist_fate": 0.75,
              "conflict_style": 0.65,
              "price_type": 0.7
            },
            "score_space": "site-v1",
            "reasoning_effort": "low"
          },
          "NTSMR-2.5-claude-sonnet-4-6-low": {
            "pipeline_version": "2.5",
            "backend": "claude",
            "model": "claude-sonnet-4-6",
            "scores": {
              "time_linearity": 0.2,
              "pacing_velocity": 0.55,
              "threat_scale": 0.2,
              "protagonist_fate": 0.75,
              "conflict_style": 0.45,
              "price_type": 0.6
            },
            "score_space": "site-v1",
            "reasoning_effort": "low"
          },
          "NTSMR-2.5-balanced-glm-5+deepseek-v3.2": {
            "pipeline_version": "2.5",
            "backend": "openrouter",
            "model": "balanced-routing",
            "scores": {
              "time_linearity": 0.22,
              "pacing_velocity": 0.78,
              "threat_scale": 0.3,
              "protagonist_fate": 0.72,
              "conflict_style": 0.8,
              "price_type": 0.8
            },
            "score_space": "site-v1",
            "score_only": true,
            "source_run_label": "NTSMR-2.5-claude-sonnet-4-6-low"
          }
        }
      },
      "todorov_stages": {
        "equilibrium": "Dahlmann lives as a municipal library secretary in Buenos Aires, having constructed a stable romantic identity rooted in his Argentine frontier heritage — his country house in the South, his copy of Martín Fierro, his old sword — while his actual life remains sedentary and urban.",
        "disruption": "Rushing upstairs with his newly acquired Arabian Nights, Dahlmann strikes his forehead on an open casement window, triggering septicemia, prolonged delirium, and a near-fatal hospitalization that strips him of agency and nearly kills him.",
        "recognition": "Cleared by the surgeon to convalesce, Dahlmann departs Buenos Aires and experiences the journey south as a resurrection; boarding the train with the Arabian Nights as talisman, he recognizes he has survived and is finally traveling toward the South he has long mythologized.",
        "repair": "Displaced at an unfamiliar bare platform in open countryside, Dahlmann walks to a country store where the old gaucho tosses him a dagger at the moment of confrontation with the young thug — committing him to the knife fight he has no skill to win but which fulfills his romantic identity.",
        "new_equilibrium": "There is no restored equilibrium; instead Dahlmann steps outside into the plains gripping the dagger, accepting a death that — as he recognizes in that moment — is the death he would have dreamed or chosen, replacing his inauthentic urban existence with a mythic end that completes his chosen identity."
      },
      "characters": [
        {
          "name": "Juan Dahlmann",
          "slug": "juan-dahlmann",
          "aliases": [
            "Dahlmann",
            "Sr. Dahlmann"
          ],
          "role": "protagonist",
          "summary": "Secretary of a municipal library in Buenos Aires, of dual German-Argentine lineage, who identifies romantically with his Argentine heritage and is drawn into a knife fight after illness and a journey south."
        },
        {
          "name": "Francisco Flores",
          "slug": "francisco-flores",
          "aliases": [],
          "role": "ancestor",
          "summary": "Maternal grandfather; soldier of the 2nd Infantry of the Line, killed by Catriel's Indians on the Buenos Aires frontier."
        },
        {
          "name": "old gaucho",
          "slug": "old-gaucho",
          "aliases": [
            "motionless old gaucho"
          ],
          "role": "symbolic helper",
          "summary": "Ancient, timeless-seeming man lying on the floor of the country store; Dahlmann reads him as a symbol of the South and he ultimately tosses Dahlmann a dagger."
        },
        {
          "name": "young thug",
          "slug": "young-thug",
          "aliases": [
            "the young thug with the Indian-looking face"
          ],
          "role": "antagonist",
          "summary": "Rough man with coarse Indian-like features who pelts Dahlmann with bread, hurls insults, and issues the knife-fight challenge."
        },
        {
          "name": "storekeeper",
          "slug": "storekeeper",
          "aliases": [
            "store-keeper"
          ],
          "role": "minor",
          "summary": "Owner of the country store who attempts to defuse the confrontation and identifies Dahlmann by name."
        }
      ],
      "frameworks_mapped": [
        "Protocol Fiction Mapping",
        "Actantial Model",
        "Todorov's Equilibrium",
        "The Freytag Pyramid",
        "Propp's Morphology",
        "Genette's Narrative",
        "The Monomyth",
        "Dan Harmon",
        "Save the Cat",
        "Kishōtenketsu",
        "The Three-Act Structure",
        "Lévi-Strauss's Binary Oppositions",
        "Cognitive Estrangement",
        "Bakhtin's Chronotope",
        "Aristotelian Poetics",
        "Jungian Archetypal Analysis",
        "Genette's Transtextuality"
      ],
      "score_reliability": {
        "state": "contested",
        "threshold": 0.2,
        "runs_total": 4,
        "versions_compared": [
          "2.5"
        ],
        "max_spread": 0.35,
        "contested": [
          {
            "axis": "conflict_style",
            "version": "2.5",
            "spread": 0.35,
            "low": {
              "label": "NTSMR-2.5-claude-sonnet-4-6-low",
              "model": "claude-sonnet-4-6",
              "effort": "low",
              "value": 0.45
            },
            "high": {
              "label": "NTSMR-2.5-balanced-glm-5+deepseek-v3.2",
              "model": "balanced-routing",
              "effort": "?",
              "value": 0.8
            }
          },
          {
            "axis": "pacing_velocity",
            "version": "2.5",
            "spread": 0.23,
            "low": {
              "label": "NTSMR-2.5-claude-sonnet-4-6-low",
              "model": "claude-sonnet-4-6",
              "effort": "low",
              "value": 0.55
            },
            "high": {
              "label": "NTSMR-2.5-balanced-glm-5+deepseek-v3.2",
              "model": "balanced-routing",
              "effort": "?",
              "value": 0.78
            }
          },
          {
            "axis": "price_type",
            "version": "2.5",
            "spread": 0.2,
            "low": {
              "label": "NTSMR-2.5-claude-sonnet-4-6-low",
              "model": "claude-sonnet-4-6",
              "effort": "low",
              "value": 0.6
            },
            "high": {
              "label": "NTSMR-2.5-balanced-glm-5+deepseek-v3.2",
              "model": "balanced-routing",
              "effort": "?",
              "value": 0.8
            }
          }
        ]
      }
    },
    {
      "slug": "mary_doria_russell_the_sparrow",
      "title": "The Sparrow",
      "author": "Mary Doria Russell",
      "year": 1996,
      "medium": "book",
      "genre_tags": [],
      "tropes": [],
      "quadrant_scores": {
        "time_linearity": 0.8,
        "pacing_velocity": 0.75,
        "threat_scale": 0.55,
        "protagonist_fate": 0.85,
        "conflict_style": 0.75,
        "price_type": 0.8
      },
      "provenance": {
        "analysis_run": "NTSMR-2.5-claude-sonnet-4-6-low",
        "analysis_body_sha256": "a78aba68e69bbcc610ce63a3ed8d2977db0b9da9b28031ed8fb19d4b168a7315",
        "synthesis": {
          "path": "nartopo-tools/artifacts/mary_doria_russell_the_sparrow.md.ntsmr-2-5-claude-sonnet-4-6-low.synthesis.json",
          "sha256": "92f536de238e6f4895265040bda39cb952d0989abcd35cb4d9c1c9a40806b353"
        },
        "report": {
          "path": "nartopo-tools/artifacts/mary_doria_russell_the_sparrow.md.ntsmr-2-5-claude-sonnet-4-6-low.report.json",
          "sha256": "a4eb1b6f9039841e99846bbcc98b39838d3638d71866a618ea002387e9cdfffd"
        },
        "source": {
          "path": "Mary Doria Russell/The Sparrow.txt",
          "sha256": "069b79abe4eecb595105647ff3afa4528b3972298524e7acee4d5e4d99b38993",
          "digest_observed_at": "2026-09-09",
          "digest_at_analysis_run": null,
          "edition": null,
          "edition_status": "unresolved"
        },
        "pipeline_revision_at_run": null,
        "verification": {
          "source": "unverified",
          "human_review": "unreviewed",
          "bibliography": "unverified"
        },
        "issues": [],
        "todorov_status": "recovered-from-synthesis",
        "work_identity": {
          "title": "The Sparrow",
          "author": "Mary Doria Russell",
          "year": 1996
        }
      },
      "ntsmr": {
        "version": "2.5",
        "primary_run_label": "NTSMR-2.5-claude-sonnet-4-6-low",
        "runs": {
          "NTSMR-2.4-claude-sonnet-4-6-low": {
            "pipeline_version": "2.4",
            "backend": "claude",
            "model": "claude-sonnet-4-6",
            "scores": {
              "time_linearity": 0.75,
              "pacing_velocity": 0.7,
              "threat_scale": 0.45,
              "protagonist_fate": 0.85,
              "conflict_style": 0.75,
              "price_type": 0.55
            },
            "score_space": "site-v1",
            "reasoning_effort": "low"
          },
          "NTSMR-2.5-claude-sonnet-4-6-low": {
            "pipeline_version": "2.5",
            "backend": "claude",
            "model": "claude-sonnet-4-6",
            "scores": {
              "time_linearity": 0.8,
              "pacing_velocity": 0.75,
              "threat_scale": 0.55,
              "protagonist_fate": 0.85,
              "conflict_style": 0.75,
              "price_type": 0.8
            },
            "score_space": "site-v1",
            "reasoning_effort": "low"
          },
          "NTSMR-2.5-minimax/minimax-m2.5": {
            "pipeline_version": "2.5",
            "backend": "openrouter",
            "model": "minimax/minimax-m2.5",
            "scores": {
              "time_linearity": 0.8,
              "pacing_velocity": 0.75,
              "threat_scale": 0.4,
              "protagonist_fate": 0.8,
              "conflict_style": 0.8,
              "price_type": 0.8
            },
            "score_space": "site-v1"
          },
          "NTSMR-2.5-qwen/qwen3.5-plus-02-15": {
            "pipeline_version": "2.5",
            "backend": "openrouter",
            "model": "qwen/qwen3.5-plus-02-15",
            "scores": {
              "time_linearity": 0.8,
              "pacing_velocity": 0.75,
              "threat_scale": 0.6,
              "protagonist_fate": 0.75,
              "conflict_style": 0.7,
              "price_type": 0.8
            },
            "score_space": "site-v1"
          },
          "NTSMR-2.5-qwen/qwen3.5-397b-a17b": {
            "pipeline_version": "2.5",
            "backend": "openrouter",
            "model": "qwen/qwen3.5-397b-a17b",
            "scores": {
              "time_linearity": 0.75,
              "pacing_velocity": 0.7,
              "threat_scale": 0.4,
              "protagonist_fate": 0.75,
              "conflict_style": 0.8,
              "price_type": 0.7
            },
            "score_space": "site-v1"
          },
          "NTSMR-2.5-deepseek/deepseek-v3.2": {
            "pipeline_version": "2.5",
            "backend": "openrouter",
            "model": "deepseek/deepseek-v3.2",
            "scores": {
              "time_linearity": 0.65,
              "pacing_velocity": 0.75,
              "threat_scale": 0.65,
              "protagonist_fate": 0.85,
              "conflict_style": 0.7,
              "price_type": 0.75
            },
            "score_space": "site-v1"
          },
          "NTSMR-2.5-z-ai/glm-4.7": {
            "pipeline_version": "2.5",
            "backend": "openrouter",
            "model": "z-ai/glm-4.7",
            "scores": {
              "time_linearity": 0.75,
              "pacing_velocity": 0.7,
              "threat_scale": 0.45,
              "protagonist_fate": 0.75,
              "conflict_style": 0.75,
              "price_type": 0.7
            },
            "score_space": "site-v1"
          },
          "NTSMR-2.5-z-ai/glm-5": {
            "pipeline_version": "2.5",
            "backend": "openrouter",
            "model": "z-ai/glm-5",
            "scores": {
              "time_linearity": 0.8,
              "pacing_velocity": 0.75,
              "threat_scale": 0.45,
              "protagonist_fate": 0.8,
              "conflict_style": 0.8,
              "price_type": 0.65
            },
            "score_space": "site-v1"
          },
          "NTSMR-2.5-balanced-glm-5+deepseek-v3.2": {
            "pipeline_version": "2.5",
            "backend": "openrouter",
            "model": "balanced-routing",
            "scores": {
              "time_linearity": 0.8,
              "pacing_velocity": 0.75,
              "threat_scale": 0.45,
              "protagonist_fate": 0.8,
              "conflict_style": 0.75,
              "price_type": 0.65
            },
            "score_space": "site-v1",
            "score_only": true,
            "source_run_label": "NTSMR-2.5-claude-sonnet-4-6-low"
          }
        }
      },
      "todorov_stages": {
        "equilibrium": "Sandoz and his companions exist in a state of purposeful spiritual and intellectual order: the Jesuit mission to Rakhat is underway, the crew has bonded, first contact with the Runa has been made, Supaari serves as cultural informant, and Sandoz finds deep joy in language work and his bond with Askama — a fragile but real communal equilibrium on an alien world.",
        "disruption": "The Jana'ata patrol arrives and slaughters unauthorized Runa infants; Sofia resists, triggering the massacre of the VaKashani villagers and the deaths of the entire mission party except Sandoz, who is taken and raped by the Reshtar — the complete annihilation of the equilibrium.",
        "recognition": "Sandoz, returned to Rome broken and accused, reads the Contact Consortium's damning allegations for the first time — that he worked as a prostitute and murdered Askama — understanding how the world has judged him for over twelve years, and confronting the full weight of what was lost and misunderstood.",
        "repair": "Giuliani confronts Sandoz with Jesuit history and redistributes the burden of responsibility, commanding physical self-care and announcing a formal inquiry; Candotti accompanies and supports him; Sandoz slowly begins physical recovery, walking half a kilometer and bringing Brother Edward coffee — incremental attempts to reconstitute a self.",
        "new_equilibrium": "Sandoz admits radical uncertainty about whether he is still a priest but asks to remain at Giuliani's residence; he refuses a role in the planned second mission as too soon, but the refusal itself signals a self with the capacity to choose — a diminished, altered, but nascent new equilibrium, closed by Giuliani standing at the window in wordless contemplation."
      },
      "characters": [
        {
          "name": "Emilio Sandoz",
          "slug": "emilio-sandoz",
          "aliases": [
            "Father Sandoz",
            "Dr. Sandoz",
            "Milio",
            "Sandoz",
            "Emilio",
            "Meelo",
            "Ha'an"
          ],
          "role": "Protagonist, Jesuit priest returned from Rakhat",
          "summary": "Jesuit priest and linguist who provides spiritual and practical counsel to crew members; maintains careful distance from Sofia to manage their mutual attraction."
        },
        {
          "name": "Peggy Soong",
          "slug": "peggy-soong",
          "aliases": [],
          "role": "supporting",
          "summary": "Formidable, politically conscious worker at Arecibo who confronts Jimmy about his passivity toward management."
        },
        {
          "name": "John Candotti",
          "slug": "john-candotti",
          "aliases": [
            "Father Candotti",
            "Candotti",
            "John"
          ],
          "role": "Jesuit assisting with Sandoz's care",
          "summary": "Makes gloves for Emilio's damaged hands, tries to help prepare him for hearings, struggles with Emilio's anger."
        },
        {
          "name": "Edward Behr",
          "slug": "edward-behr",
          "aliases": [
            "Brother Edward",
            "Teddy Behr",
            "Edward",
            "Ed"
          ],
          "role": "supporting",
          "summary": "Jesuit brother who tends to Sandoz's physical needs and defends his character; believes Sandoz is 'a soul looking for God.'"
        },
        {
          "name": "Johannes Voelker",
          "slug": "johannes-voelker",
          "aliases": [
            "Father Voelker",
            "Voelker"
          ],
          "role": "Jesuit investigator",
          "summary": "Jesuit who views Sandoz with hostility and contempt, convinced he is a dangerous rogue."
        },
        {
          "name": "Anne Edwards",
          "slug": "anne-edwards",
          "aliases": [
            "George",
            "Anne",
            "Annie"
          ],
          "role": "Medical doctor, potential mission member",
          "summary": "Medical doctor married to George, skeptical about the mission but eventually convinced to join after witnessing a bus accident victim's grief."
        },
        {
          "name": "Sofia Mendes",
          "slug": "sofia-mendes",
          "aliases": [
            "Mendes",
            "Sofia",
            "Miz Mendes",
            "Miss Mendes"
          ],
          "role": "AI programmer and linguist, mission member",
          "summary": "AI programmer and linguist who was trafficked as a child, married Jimmy Quinn, died on Rakhat but her programs saved Sandoz."
        },
        {
          "name": "Vincenzo Giuliani",
          "slug": "vincenzo-giuliani",
          "aliases": [
            "Father General",
            "Giuliani",
            "Vince"
          ],
          "role": "Jesuit Father General leading the investigation",
          "summary": "Father General of the Society of Jesus who confronts Sandoz about his despair and takes back the burden of responsibility for the mission's failures."
        },
        {
          "name": "Tahad Ke-sai",
          "slug": "tahad-ke-sai",
          "aliases": [
            "Father Tahad"
          ],
          "role": "supporting",
          "summary": "Jesuit priest working alongside Sandoz in Sudan."
        },
        {
          "name": "James Quinn",
          "slug": "james-quinn",
          "aliases": [
            "Jimmy Quinn",
            "Jim",
            "Dr. Quinn",
            "Jimmy",
            "Sparky"
          ],
          "role": "Radio astronomer and discoverer",
          "summary": "Radio astronomer and navigation specialist; struggles with sexual frustration during the mission and receives counsel from Emilio about celibacy."
        },
        {
          "name": "Masao Yanoguchi",
          "slug": "masao-yanoguchi",
          "aliases": [],
          "role": "ISAS Director",
          "summary": "Japanese administrator who promotes Jimmy to lead the monitoring effort after the discovery."
        },
        {
          "name": "D.W. Yarbrough",
          "slug": "dw-yarbrough",
          "aliases": [
            "D.W.",
            "Dalton Wesley Yarbrough",
            "Dee",
            "Father Yarbrough",
            "Father Superior"
          ],
          "role": "Jesuit Father Superior of the mission",
          "summary": "Jesuit and former Marine who leads the mission; establishes daily routines and makes key command decisions."
        },
        {
          "name": "Giancarlo",
          "slug": "giancarlo",
          "aliases": [],
          "role": "Local boy",
          "summary": "Ten-year-old son of a local farmer who helps Emilio at the Naples retreat house."
        },
        {
          "name": "Tomas da Silva",
          "slug": "tomas-da-silva",
          "aliases": [
            "Father General da Silva"
          ],
          "role": "Jesuit Father General",
          "summary": "Thirty-first General of the Society of Jesus who authorizes the mission to Rakhat."
        },
        {
          "name": "Alan Pace",
          "slug": "alan-pace",
          "aliases": [
            "Alan",
            "Father Pace"
          ],
          "role": "mission member",
          "summary": "English Jesuit musicologist who teaches the crew to sing Handel's Messiah."
        },
        {
          "name": "Marc Robichaux",
          "slug": "marc-robichaux",
          "aliases": [
            "Marc",
            "Robichaux"
          ],
          "role": "mission member",
          "summary": "Jesuit naturalist from Montreal who advocates for cautious ecological study before contact."
        },
        {
          "name": "Felipe Reyes",
          "slug": "felipe-reyes",
          "aliases": [
            "Reyes",
            "Felipe"
          ],
          "role": "Jesuit priest, Emilio's childhood friend",
          "summary": "Jesuit priest and Emilio's childhood friend, teaches comparative religion."
        },
        {
          "name": "Wu Xing-Ren",
          "slug": "wu-xing-ren",
          "aliases": [
            "Wu"
          ],
          "role": "antagonist",
          "summary": "Member of the Contact Consortium who made allegations against Sandoz; disappeared after reporting plans to return to their lander."
        },
        {
          "name": "Trevor Isley",
          "slug": "trevor-isley",
          "aliases": [
            "Isley"
          ],
          "role": "antagonist",
          "summary": "Member of the Contact Consortium who made allegations against Sandoz; disappeared along with Wu."
        },
        {
          "name": "Askama",
          "slug": "askama",
          "aliases": [],
          "role": "Young Runa child",
          "summary": "Spindly juvenile who becomes Emilio's first real contact with the Runa, calls him 'Meelo,' deeply bonded to him."
        },
        {
          "name": "Supaari VaGayjur",
          "slug": "supaari-vagayjur",
          "aliases": [
            "Supaari"
          ],
          "role": "Jana'ata merchant",
          "summary": "Third-born of his species, shrewd businessman who profits from Runa fashion trends, will later befriend then betray the mission."
        },
        {
          "name": "Awijan",
          "slug": "awijan",
          "aliases": [],
          "role": "Runa secretary",
          "summary": "Supaari's Runa secretary who takes down orders and offers business advice."
        },
        {
          "name": "Manuzhai",
          "slug": "manuzhai",
          "aliases": [],
          "role": "Runa villager",
          "summary": "Runa woman who helps care for D.W. during his illness, providing infant mats and emotional support."
        },
        {
          "name": "Chaypas",
          "slug": "chaypas",
          "aliases": [],
          "role": "Runa woman from Kashan village",
          "summary": "Villager who introduces ribbon fashion to Supaari's attention, later killed defending Emilio and Askama."
        },
        {
          "name": "Hlavin Kitheri",
          "slug": "hlavin-kitheri",
          "aliases": [
            "Reshtar",
            "the Reshtar of Galatna"
          ],
          "role": "Jana'ata noble and poet",
          "summary": "The greatest poet of his age who rapes Sandoz repeatedly during his captivity."
        }
      ],
      "frameworks_mapped": [
        "Protocol Fiction Mapping",
        "Actantial Model",
        "Todorov's Equilibrium",
        "The Freytag Pyramid",
        "Propp's Morphology",
        "Genette's Narrative",
        "The Monomyth",
        "Dan Harmon",
        "Save the Cat",
        "Kishōtenketsu",
        "The Three-Act Structure",
        "Lévi-Strauss's Binary Oppositions",
        "Cognitive Estrangement",
        "Bakhtin's Chronotope",
        "Aristotelian Poetics",
        "Jungian Archetypal Analysis",
        "Genette's Transtextuality"
      ],
      "score_reliability": {
        "state": "contested",
        "threshold": 0.2,
        "runs_total": 9,
        "versions_compared": [
          "2.5"
        ],
        "max_spread": 0.25,
        "contested": [
          {
            "axis": "threat_scale",
            "version": "2.5",
            "spread": 0.25,
            "low": {
              "label": "NTSMR-2.5-minimax/minimax-m2.5",
              "model": "minimax/minimax-m2.5",
              "effort": "?",
              "value": 0.4
            },
            "high": {
              "label": "NTSMR-2.5-deepseek/deepseek-v3.2",
              "model": "deepseek/deepseek-v3.2",
              "effort": "?",
              "value": 0.65
            }
          }
        ]
      }
    },
    {
      "slug": "n_k_jemisin_the_stone_sky",
      "title": "The Stone Sky",
      "author": "N. K. Jemisin",
      "year": 2017,
      "medium": "book",
      "genre_tags": [],
      "tropes": [],
      "quadrant_scores": {
        "time_linearity": 0.85,
        "pacing_velocity": 0.6,
        "threat_scale": 0.95,
        "protagonist_fate": 0.7,
        "conflict_style": 0.65,
        "price_type": 0.75
      },
      "provenance": {
        "analysis_run": "NTSMR-2.5-claude-sonnet-4-6-low",
        "analysis_body_sha256": "29e10bf2da37b99a4991582c0d5c7cea12de9f04fa0cace5f23193ab95c2d7c9",
        "synthesis": {
          "path": "nartopo-tools/artifacts/n_k_jemisin_the_stone_sky.md.ntsmr-2-5-claude-sonnet-4-6-low.synthesis.json",
          "sha256": "c9faecd447fa7fb26f2930e877fe873adf60ecb0588fe040f420d41b7a0c4884"
        },
        "report": {
          "path": "nartopo-tools/artifacts/n_k_jemisin_the_stone_sky.md.ntsmr-2-5-claude-sonnet-4-6-low.report.json",
          "sha256": "182c884affe041d29ba99ccc59d1d831c5b368a467f9e4fa2646168c5a9c95a2"
        },
        "source": {
          "path": "N. K. Jemisin/The Stone Sky.txt",
          "sha256": "9b2b1c1f4a843ccbb594aec269bc37bc4f6917945c009d6b6c29a07511dd0086",
          "digest_observed_at": "2026-09-09",
          "digest_at_analysis_run": null,
          "edition": null,
          "edition_status": "unresolved"
        },
        "pipeline_revision_at_run": null,
        "verification": {
          "source": "unverified",
          "human_review": "unreviewed",
          "bibliography": "unverified"
        },
        "issues": [],
        "todorov_status": "recovered-from-synthesis",
        "work_identity": {
          "title": "The Stone Sky",
          "author": "N. K. Jemisin",
          "year": 2017
        }
      },
      "ntsmr": {
        "version": "2.5",
        "primary_run_label": "NTSMR-2.5-claude-sonnet-4-6-low",
        "runs": {
          "NTSMR-2.4-claude-sonnet-4-6-low": {
            "pipeline_version": "2.4",
            "backend": "claude",
            "model": "claude-sonnet-4-6",
            "scores": {
              "time_linearity": 0.75,
              "pacing_velocity": 0.45,
              "threat_scale": 0.92,
              "protagonist_fate": 0.72,
              "conflict_style": 0.62,
              "price_type": 0.55
            },
            "score_space": "site-v1",
            "reasoning_effort": "low"
          },
          "NTSMR-2.5-claude-sonnet-4-6-low": {
            "pipeline_version": "2.5",
            "backend": "claude",
            "model": "claude-sonnet-4-6",
            "scores": {
              "time_linearity": 0.85,
              "pacing_velocity": 0.6,
              "threat_scale": 0.95,
              "protagonist_fate": 0.7,
              "conflict_style": 0.65,
              "price_type": 0.75
            },
            "score_space": "site-v1",
            "reasoning_effort": "low"
          },
          "NTSMR-2.5-balanced-glm-5+deepseek-v3.2": {
            "pipeline_version": "2.5",
            "backend": "openrouter",
            "model": "balanced-routing",
            "scores": {
              "time_linearity": 0.7,
              "pacing_velocity": 0.65,
              "threat_scale": 0.88,
              "protagonist_fate": 0.62,
              "conflict_style": 0.6,
              "price_type": 0.55
            },
            "score_space": "site-v1",
            "score_only": true,
            "source_run_label": "NTSMR-2.5-claude-sonnet-4-6-low"
          }
        }
      },
      "todorov_stages": {
        "equilibrium": "The world persists under the rule of perpetual Seasons — catastrophic climate events caused by the absent Moon — with orogenes systematically oppressed by Guardians and comms, and the Syl Anagist catastrophe locked in deep history. Essun has survived previous crises and is tended by companions after her coma; Nassun has killed her father and departed Found Moon with Schaffa, both converging on a precarious but ongoing existence.",
        "disruption": "Essun's catastrophic use of the Obelisk Gate destroys Castrima-under and begins petrifying her own body, while Nassun — revealed to be attuned to the sapphire obelisk — independently moves toward activating the Gate herself, threatening either the destruction of humanity or its transformation. The parallel trajectories of mother and daughter, each heading to Corepoint to make an irreversible choice about the world's fate, constitute the central disruption.",
        "recognition": "Essun recognizes through Hoa's revelation that Nassun is likely seeking to open the Obelisk Gate herself, that Steel is manipulating Nassun toward stone-eater transformation, and that she has shaped Nassun into a force capable of surpassing her — feeling both pride and fear, and concluding she has no right to simply protect a daughter who has already surpassed her. Nassun's own recognition comes when the Earth forces her to empathize with its millennia-long grievance even as she fights it, and when Schaffa's corestone is extracted, making her understand the Earth's ultimatum about humanity's future.",
        "repair": "Essun presses forward to Corepoint despite her ongoing petrification, eventually confronting Nassun at their first meeting in two years. The repair culminates in Essun redirecting the Moon into stable orbit — an act that costs Essun her human life and transforms her into a stone eater — while Nassun's corestone extraction from Schaffa frees him from the Earth's control. Hoa and the assembled stone eaters descend to the Earth's core to negotiate a treaty ending the Seasons.",
        "new_equilibrium": "The Moon is returned to stable orbit, ending the cycle of perpetual Seasons. The Obelisk Gate shuts down, the obelisks drop into Corepoint's chasm, and a treaty between stone eaters and the Earth promises that Seasons will cease and consumed souls will be released. Essun is reborn as a stone eater and chooses to go with Hoa to make the world better. Nassun survives with Schaffa and is told orogeny was never the only way to change the world, leaving her with agency over humanity's future through other means. The old oppressive equilibrium is irrevocably broken; a genuinely altered world begins."
      },
      "characters": [
        {
          "name": "Essun",
          "slug": "essun",
          "aliases": [
            "Syenite",
            "Damaya",
            "you"
          ],
          "role": "Protagonist (Essun storyline) / addressee of Hoa's narration",
          "summary": "Reaches Corepoint, reunites briefly and bitterly with Nassun, kills nearly a thousand Guardians to summon the onyx, catches the Moon, and is fully transformed to stone — then reborn as a stone eater in the coda."
        },
        {
          "name": "Houwha",
          "slug": "houwha",
          "aliases": [
            "Hoa"
          ],
          "role": "Narrator / stone eater / Essun's companion",
          "summary": "One of six tuners in Syl Anagist; the narrator's past self; takes unilateral control of the Plutonic Engine sabotage and redirects catastrophic energy into the Moon, causing the Shattering; transformed into a stone eater as punishment."
        },
        {
          "name": "Ykka",
          "slug": "ykka",
          "aliases": [],
          "role": "Comm leader / helper",
          "summary": "Leader of the surviving Castrima comm; furious with Essun for destroying the geode; demands everyone carry their weight or be left behind; pragmatic and resolute."
        },
        {
          "name": "Tonkee",
          "slug": "tonkee",
          "aliases": [],
          "role": "Helper / comic foil",
          "summary": "Deduces Nassun's cubiform obelisk lattice plan; shelters with the group during the climax; finds Nassun grieving beside Essun's body."
        },
        {
          "name": "Lerna",
          "slug": "lerna",
          "aliases": [],
          "role": "Physician / Companion",
          "summary": "Physician traveling with Essun; tends her during recovery; emotionally conflicted but remains attached to her."
        },
        {
          "name": "Hjarka",
          "slug": "hjarka",
          "aliases": [],
          "role": "Companion / Strongback",
          "summary": "Traveling with Essun and the comm; bitter about the destruction of Castrima; has a side bet with Ykka about Essun's recovery."
        },
        {
          "name": "Nassun",
          "slug": "nassun",
          "aliases": [],
          "role": "Essun's daughter / Secondary protagonist",
          "summary": "Young orogene of exceptional power traveling to Corepoint; commits to destroying the world after understanding the systematic engineering of orogene oppression; bonds with Schaffa as surrogate father; confronts the Earth's core directly."
        },
        {
          "name": "Schaffa",
          "slug": "schaffa",
          "aliases": [
            "Schaffa Guardian Warrant"
          ],
          "role": "Guardian / surrogate father to Nassun",
          "summary": "Ancient Guardian who genuinely loves Nassun; corestone in his neck causes worsening agony near the Earth's core; subjected to the Earth's seizure during the core approach; accepts Nassun's redefinition of their relationship as family."
        },
        {
          "name": "Steel",
          "slug": "steel",
          "aliases": [
            "Remwha",
            "Gray Man"
          ],
          "role": "Stone eater / original tuner / antagonist",
          "summary": "Stone eater guiding Nassun to Corepoint; warns that bringing Schaffa is a mistake; directs Nassun to power the transit station; his warning proves prophetic when the Earth seizes Schaffa."
        },
        {
          "name": "Kelenli",
          "slug": "kelenli",
          "aliases": [],
          "role": "Mentor figure (Syl Anagist flashback)",
          "summary": "Prototype tuner who serves as mentor to Hoa and the others; orchestrates their visit to see the sinklines; uses dismissive tone strategically to protect the tuners from further punishment."
        },
        {
          "name": "Gaewha",
          "slug": "gaewha",
          "aliases": [
            "Antimony"
          ],
          "role": "Tuner (Syl Anagist flashback)",
          "summary": "Joins Hoa in offering reconciliation to Remwha/Steel; participates in the Earth negotiation; present briefly during Essun's rebirth before departing."
        },
        {
          "name": "Deshati",
          "slug": "deshati",
          "aliases": [],
          "role": "Found Moon orogene child",
          "summary": "One of the Found Moon orogene children receiving Schaffa's survival advice; visibly shaken but resolute; Schaffa's instructions will cost her something inside."
        },
        {
          "name": "Shirk",
          "slug": "shirk",
          "aliases": [],
          "role": "Found Moon orogene child",
          "summary": "One of the Found Moon children; gasps in shock at Schaffa's instructions."
        },
        {
          "name": "Lashar",
          "slug": "lashar",
          "aliases": [],
          "role": "Found Moon orogene child",
          "summary": "One of the Found Moon children; jaw tightens with intent — she means to take Schaffa's words to heart."
        },
        {
          "name": "Maxixe",
          "slug": "maxixe",
          "aliases": [],
          "role": "Secondary character / foil to Essun",
          "summary": "Former Fulcrum-trained six-ring orogene, now commless and physically devastated (no legs below thighs, scarred); leads a small group of raiders and is dying from ash inhalation."
        },
        {
          "name": "Gallat",
          "slug": "gallat",
          "aliases": [
            "Conductor Gallat"
          ],
          "role": "Antagonist / overseer (Syl Anagist flashback)",
          "summary": "Conductor who oversees the tuners with impatience; humiliated by fellow conductors; leads the tuners to the sinklines and explains their function in a tone of unconcealed impatience."
        },
        {
          "name": "Danel",
          "slug": "danel",
          "aliases": [],
          "role": "Helper / Strongback general",
          "summary": "Former Rennanis general who fights with exceptional skill during the raider attack, wielding a sharpened stake."
        },
        {
          "name": "Jija",
          "slug": "jija",
          "aliases": [
            "Jija Resistant Jekity"
          ],
          "role": "Antagonist (deceased)",
          "summary": "Nassun's father, a knapper; killed by Nassun; his crystallized remains are viewed by Essun at Found Moon."
        },
        {
          "name": "Esni",
          "slug": "esni",
          "aliases": [],
          "role": "minor helper",
          "summary": "Member of Castrima leadership coordinating runners during the node facility seizure."
        },
        {
          "name": "Stahnyn",
          "slug": "stahnyn",
          "aliases": [],
          "role": "minor antagonist/gatekeeper",
          "summary": "A caretaker or attendant at the Syl Anagist compound who is manipulated by Houwha's knowledge of her attraction to Gallat into taking him to the garden."
        },
        {
          "name": "Bimniwha",
          "slug": "bimniwha",
          "aliases": [],
          "role": "helper (deep past)",
          "summary": "One of the six tuners; alert and attentive to mood; agrees to the sabotage with resignation."
        },
        {
          "name": "Salewha",
          "slug": "salewha",
          "aliases": [],
          "role": "helper (deep past)",
          "summary": "One of the six tuners; agrees to the sabotage with righteousness."
        },
        {
          "name": "Dushwha",
          "slug": "dushwha",
          "aliases": [],
          "role": "helper (deep past)",
          "summary": "One of the six tuners; comforts self through the ordeal; agrees to the sabotage in weariness; senses the Earth's hostile intent during the activation."
        },
        {
          "name": "Alabaster",
          "slug": "alabaster",
          "aliases": [],
          "role": "absent presence",
          "summary": "Essun's former mentor and lover, previously petrified; revealed to potentially exist as a nascent stone eater made from his remains by Antimony, choosing his own shape but not yet ready for contact."
        }
      ],
      "frameworks_mapped": [
        "Protocol Fiction Mapping",
        "Actantial Model",
        "Todorov's Equilibrium",
        "The Freytag Pyramid",
        "Propp's Morphology",
        "Genette's Narrative",
        "The Monomyth",
        "Dan Harmon",
        "Save the Cat",
        "Kishōtenketsu",
        "The Three-Act Structure",
        "Lévi-Strauss's Binary Oppositions",
        "Cognitive Estrangement",
        "Bakhtin's Chronotope",
        "Aristotelian Poetics",
        "Jungian Archetypal Analysis",
        "Genette's Transtextuality"
      ],
      "score_reliability": {
        "state": "contested",
        "threshold": 0.2,
        "runs_total": 3,
        "versions_compared": [
          "2.5"
        ],
        "max_spread": 0.2,
        "contested": [
          {
            "axis": "price_type",
            "version": "2.5",
            "spread": 0.2,
            "low": {
              "label": "NTSMR-2.5-balanced-glm-5+deepseek-v3.2",
              "model": "balanced-routing",
              "effort": "?",
              "value": 0.55
            },
            "high": {
              "label": "NTSMR-2.5-claude-sonnet-4-6-low",
              "model": "claude-sonnet-4-6",
              "effort": "low",
              "value": 0.75
            }
          }
        ]
      }
    },
    {
      "slug": "stanislaw_lem_the_third_sally_or_the_dragons_of_probability",
      "title": "The Third Sally or The Dragons of Probability",
      "author": "Stanislaw Lem",
      "year": 1965,
      "medium": "short_story",
      "genre_tags": [],
      "tropes": [],
      "quadrant_scores": {
        "time_linearity": 0.28,
        "pacing_velocity": 0.45,
        "threat_scale": 0.25,
        "protagonist_fate": 0.22,
        "conflict_style": 0.45,
        "price_type": 0.3
      },
      "provenance": {
        "analysis_run": "NTSMR-2.5-claude-sonnet-4-6-low",
        "analysis_body_sha256": "16530cfdafe5921fc381b910bc4a28d42174c44cef7bb32ac3ae3aaec6d9843c",
        "synthesis": {
          "path": "nartopo-tools/artifacts/stanislaw_lem_the_third_sally_or_the_dragons_of_probability.md.ntsmr-2-5-claude-sonnet-4-6-low.synthesis.json",
          "sha256": "6a14675c1081b5d402520fa3f30659eaf87d28b7cd48dd4d2b73c9170d642268"
        },
        "report": {
          "path": "nartopo-tools/artifacts/stanislaw_lem_the_third_sally_or_the_dragons_of_probability.md.ntsmr-2-5-claude-sonnet-4-6-low.report.json",
          "sha256": "07484531ec7b81433478c500cb16811cbaf163cfbbf8821844b17572d85d0994"
        },
        "source": {
          "path": "Stanislaw Lem/The Third Sally or The Dragons of Probability.txt",
          "sha256": "42ae9157f079996ea259f77b2fbc9dc150923399761feba8f554926a3135c3de",
          "digest_observed_at": "2026-09-09",
          "digest_at_analysis_run": null,
          "edition": null,
          "edition_status": "unresolved"
        },
        "pipeline_revision_at_run": null,
        "verification": {
          "source": "unverified",
          "human_review": "unreviewed",
          "bibliography": "unverified"
        },
        "issues": [],
        "todorov_status": "recovered-from-synthesis",
        "work_identity": {
          "title": "The Third Sally or The Dragons of Probability",
          "author": "Stanislaw Lem",
          "year": 1965
        }
      },
      "ntsmr": {
        "version": "2.5",
        "primary_run_label": "NTSMR-2.5-claude-sonnet-4-6-low",
        "runs": {
          "NTSMR-2.3-gemini-3.1-pro-preview": {
            "pipeline_version": "2.3",
            "backend": "gemini",
            "model": "gemini-3.1-pro-preview",
            "scores": {
              "time_linearity": 0.1,
              "pacing_velocity": 0.5,
              "threat_scale": 0.7,
              "protagonist_fate": 0.8,
              "conflict_style": 0.7,
              "price_type": 0.9
            },
            "score_space": "site-v1"
          },
          "NTSMR-2.3-claude-sonnet-4-6-low": {
            "pipeline_version": "2.3",
            "backend": "claude",
            "model": "claude-sonnet-4-6",
            "scores": {
              "time_linearity": 0.2,
              "pacing_velocity": 0.55,
              "threat_scale": 0.65,
              "protagonist_fate": 0.15,
              "conflict_style": 0.7,
              "price_type": 0.6
            },
            "score_space": "site-v1",
            "reasoning_effort": "low"
          },
          "NTSMR-2.4-claude-sonnet-4-6-low": {
            "pipeline_version": "2.4",
            "backend": "claude",
            "model": "claude-sonnet-4-6",
            "scores": {
              "time_linearity": 0.2,
              "pacing_velocity": 0.3,
              "threat_scale": 0.35,
              "protagonist_fate": 0.25,
              "conflict_style": 0.35,
              "price_type": 0.3
            },
            "score_space": "site-v1",
            "reasoning_effort": "low"
          },
          "NTSMR-2.5-claude-sonnet-4-6-low": {
            "pipeline_version": "2.5",
            "backend": "claude",
            "model": "claude-sonnet-4-6",
            "scores": {
              "time_linearity": 0.28,
              "pacing_velocity": 0.45,
              "threat_scale": 0.25,
              "protagonist_fate": 0.22,
              "conflict_style": 0.45,
              "price_type": 0.3
            },
            "score_space": "site-v1",
            "reasoning_effort": "low"
          },
          "NTSMR-2.5-balanced-glm-5+deepseek-v3.2": {
            "pipeline_version": "2.5",
            "backend": "openrouter",
            "model": "balanced-routing",
            "scores": {
              "time_linearity": 0.25,
              "pacing_velocity": 0.7,
              "threat_scale": 0.25,
              "protagonist_fate": 0.35,
              "conflict_style": 0.65,
              "price_type": 0.45
            },
            "score_space": "site-v1",
            "score_only": true,
            "source_run_label": "NTSMR-2.5-claude-sonnet-4-6-low"
          }
        }
      },
      "todorov_stages": {
        "equilibrium": "Dragons are purely theoretical — thermodynamically improbable curiosities studied at the School of Higher Neantical Nillity by Cerebron, Trurl, and Klapaucius. The galaxy is free of actual dragons, and the constructors are celebrated academics.",
        "disruption": "Trurl's probability amplifier accidentally materializes real dragons that escape containment and ravage planets and moons; simultaneously, Basiliscus the Gorgonite begins suspiciously seeding infestations and charging for their removal, destabilizing the dragon-free cosmic order.",
        "recognition": "Trurl and Klapaucius debate whether Basiliscus is operating a deliberate extortion scheme, recognize that the dragon problem will not resolve itself, and decide to mount an independent counter-mission — the third sally.",
        "repair": "Klapaucius methodically installs dragon-dampers on infested worlds including Prestopondora, while Trurl (having been denied legitimate payment by King Pfftius's bureaucracy) kills the real dragon, skins it, builds a wooden-frame suit, and poses as a dragon to collect tribute by non-coercive haunting of the mountains.",
        "new_equilibrium": "The dragons are neutralized and Trurl has accumulated tribute through his scheme; Klapaucius arrives, unmasks the ruse, mildly objects on ethical grounds, and is recruited to help haul the accumulated platinum and gold to Trurl's hidden blast-off pad — a comic, skewed equilibrium in which the constructors profit from the chaos they originally caused."
      },
      "characters": [
        {
          "name": "Trurl",
          "slug": "trurl",
          "aliases": [
            "the furrin gentleman"
          ],
          "role": "Constructor",
          "summary": "A brilliant but impulsive tinkerer and former pupil of Cerebron. He first applies probability to make dragons real, and later disguises himself as an Echidnosaur to extort tribute after being denied payment by King Pfftius."
        },
        {
          "name": "Klapaucius",
          "slug": "klapaucius",
          "aliases": [],
          "role": "Constructor",
          "summary": "A methodical theoretician and close friend of Trurl. He embarks on the third sally to clear planets of dragons, tracks the Echidnosaur on Trufflandria, and discovers it is actually Trurl in a mechanical suit."
        },
        {
          "name": "Cerebron of Umptor",
          "slug": "cerebron-of-umptor",
          "aliases": [],
          "role": "Great teacher",
          "summary": "Instructor at the School of Higher Neantical Nillity who expounded the General Theory of Dragons and analytically discovered three distinct kinds of non-existent dragons."
        },
        {
          "name": "Harborizian Cybr",
          "slug": "harborizian-cybr",
          "aliases": [],
          "role": "Colleague of Trurl",
          "summary": "The first scientist to quantize a dragon, detecting the dracotron particle and determining the coordinates of its tail."
        },
        {
          "name": "King Krool",
          "slug": "king-krool",
          "aliases": [],
          "role": "Sovereign",
          "summary": "A king against whom the constructors once sought revenge using a polypolice beast."
        },
        {
          "name": "Basiliscus the Gorgonite",
          "slug": "basiliscus-the-gorgonite",
          "aliases": [],
          "role": "Rogue constructor",
          "summary": "A traveling constructor suspected of artificially probabilizing dragons on various planets in order to extort exorbitant extermination fees from local rulers."
        },
        {
          "name": "Emperor Maximillion",
          "slug": "emperor-maximillion",
          "aliases": [],
          "role": "Ruler of Prestopondora",
          "summary": "An emperor whose capital is swarming with virtual dragons; he offers his daughter's hand in marriage to Klapaucius for clearing them out."
        },
        {
          "name": "King Pfftius",
          "slug": "king-pfftius",
          "aliases": [],
          "role": "Ruler of Trufflandria",
          "summary": "A superstitious king who adheres to Pneumatological Dracolatry and uses bureaucratic red tape to avoid paying Trurl for slaying a local dragon."
        },
        {
          "name": "Lower Court Official",
          "slug": "lower-court-official",
          "aliases": [
            "Native"
          ],
          "role": "Trufflandrian subject",
          "summary": "A local official in a tattered tog who leads a procession carrying a heavy tribute of gold and perfume to the dragon, and recounts Trurl's visit to Klapaucius."
        },
        {
          "name": "Master Gyles",
          "slug": "master-gyles",
          "aliases": [],
          "role": "Trufflandrian native",
          "summary": "A local native who accompanies the court official up the mountain and corroborates the story of the stranger's visit."
        },
        {
          "name": "Leech",
          "slug": "leech",
          "aliases": [],
          "role": "Scientist",
          "summary": "A contributor to the dracological 'Cybr-Trurl-Klapaucius-Leech calculation'."
        },
        {
          "name": "Euphorius Cloy",
          "slug": "euphorius-cloy",
          "aliases": [],
          "role": "Inventor",
          "summary": "The inventor of the anticapita cannon, which exploits the contradictory nature of multi-headed dragons."
        }
      ],
      "frameworks_mapped": [
        "Protocol Fiction Mapping",
        "Actantial Model",
        "Todorov's Equilibrium",
        "The Freytag Pyramid",
        "Propp's Morphology",
        "Genette's Narrative",
        "The Monomyth",
        "Dan Harmon",
        "Save the Cat",
        "Kishōtenketsu",
        "The Three-Act Structure",
        "Lévi-Strauss's Binary Oppositions",
        "Cognitive Estrangement",
        "Bakhtin's Chronotope",
        "Aristotelian Poetics",
        "Jungian Archetypal Analysis",
        "Genette's Transtextuality"
      ],
      "score_reliability": {
        "state": "contested",
        "threshold": 0.2,
        "runs_total": 5,
        "versions_compared": [
          "2.5"
        ],
        "max_spread": 0.25,
        "contested": [
          {
            "axis": "pacing_velocity",
            "version": "2.5",
            "spread": 0.25,
            "low": {
              "label": "NTSMR-2.5-claude-sonnet-4-6-low",
              "model": "claude-sonnet-4-6",
              "effort": "low",
              "value": 0.45
            },
            "high": {
              "label": "NTSMR-2.5-balanced-glm-5+deepseek-v3.2",
              "model": "balanced-routing",
              "effort": "?",
              "value": 0.7
            }
          },
          {
            "axis": "conflict_style",
            "version": "2.5",
            "spread": 0.2,
            "low": {
              "label": "NTSMR-2.5-claude-sonnet-4-6-low",
              "model": "claude-sonnet-4-6",
              "effort": "low",
              "value": 0.45
            },
            "high": {
              "label": "NTSMR-2.5-balanced-glm-5+deepseek-v3.2",
              "model": "balanced-routing",
              "effort": "?",
              "value": 0.65
            }
          }
        ]
      }
    },
    {
      "slug": "ted_chiang_the_truth_of_fact_the_truth_of_feeling",
      "title": "The Truth of Fact, the Truth of Feeling",
      "author": "Ted Chiang",
      "year": 2019,
      "medium": "short_story",
      "genre_tags": [],
      "tropes": [],
      "quadrant_scores": {
        "time_linearity": 0.75,
        "pacing_velocity": 0.82,
        "threat_scale": 0.2,
        "protagonist_fate": 0.55,
        "conflict_style": 0.88,
        "price_type": 0.85
      },
      "provenance": {
        "analysis_run": "NTSMR-2.5-claude-sonnet-4-6-low",
        "analysis_body_sha256": "c2d16f421470297337fd438f64ee98e6ce0299eba4c687e238dbf3cc3824be70",
        "synthesis": {
          "path": "nartopo-tools/artifacts/ted_chiang_the_truth_of_fact_the_truth_of_feeling.md.ntsmr-2-5-claude-sonnet-4-6-low.synthesis.json",
          "sha256": "41ef5de1103aec74818d74d99775e3080ca4a484490a76bce60813040f39ee3d"
        },
        "report": {
          "path": "nartopo-tools/artifacts/ted_chiang_the_truth_of_fact_the_truth_of_feeling.md.ntsmr-2-5-claude-sonnet-4-6-low.report.json",
          "sha256": "76ef458bb0c4ba7ce85988d33fd0ae0b5a4bd411b2b9547439ddfeeefae4bf69"
        },
        "source": {
          "path": "Ted Chiang/The Truth of Fact, the Truth of Feeling.txt",
          "sha256": "42125ea62a9ec3fad1b391937540d1bbf6d859f61e24874e63d1abb7ba942060",
          "digest_observed_at": "2026-09-09",
          "digest_at_analysis_run": null,
          "edition": null,
          "edition_status": "unresolved"
        },
        "pipeline_revision_at_run": null,
        "verification": {
          "source": "unverified",
          "human_review": "unreviewed",
          "bibliography": "unverified"
        },
        "issues": [],
        "todorov_status": "recovered-from-synthesis",
        "work_identity": {
          "title": "The Truth of Fact, the Truth of Feeling",
          "author": "Ted Chiang",
          "year": 2019
        }
      },
      "ntsmr": {
        "version": "2.5",
        "primary_run_label": "NTSMR-2.5-claude-sonnet-4-6-low",
        "runs": {
          "NTSMR-2.3-gemini-3.1-pro-preview": {
            "pipeline_version": "2.3",
            "backend": "gemini",
            "model": "gemini-3.1-pro-preview",
            "scores": {
              "time_linearity": 0.85,
              "pacing_velocity": 0.9,
              "threat_scale": 0.85,
              "protagonist_fate": 0.8,
              "conflict_style": 0.9,
              "price_type": 1
            },
            "score_space": "site-v1"
          },
          "NTSMR-2.3-claude-sonnet-4-6-low": {
            "pipeline_version": "2.3",
            "backend": "claude",
            "model": "claude-sonnet-4-6",
            "scores": {
              "time_linearity": 0.75,
              "pacing_velocity": 0.88,
              "threat_scale": 0.72,
              "protagonist_fate": 0.65,
              "conflict_style": 0.82,
              "price_type": 0.92
            },
            "score_space": "site-v1",
            "reasoning_effort": "low"
          },
          "NTSMR-2.4-claude-sonnet-4-6-low": {
            "pipeline_version": "2.4",
            "backend": "claude",
            "model": "claude-sonnet-4-6",
            "scores": {
              "time_linearity": 0.65,
              "pacing_velocity": 0.75,
              "threat_scale": 0.2,
              "protagonist_fate": 0.45,
              "conflict_style": 0.85,
              "price_type": 0.8
            },
            "score_space": "site-v1",
            "reasoning_effort": "low"
          },
          "NTSMR-2.5-claude-sonnet-4-6-low": {
            "pipeline_version": "2.5",
            "backend": "claude",
            "model": "claude-sonnet-4-6",
            "scores": {
              "time_linearity": 0.75,
              "pacing_velocity": 0.82,
              "threat_scale": 0.2,
              "protagonist_fate": 0.55,
              "conflict_style": 0.88,
              "price_type": 0.85
            },
            "score_space": "site-v1",
            "reasoning_effort": "low"
          },
          "NTSMR-2.5-balanced-glm-5+deepseek-v3.2": {
            "pipeline_version": "2.5",
            "backend": "openrouter",
            "model": "balanced-routing",
            "scores": {
              "time_linearity": 0.8,
              "pacing_velocity": 0.8,
              "threat_scale": 0.25,
              "protagonist_fate": 0.65,
              "conflict_style": 0.85,
              "price_type": 0.85
            },
            "score_space": "site-v1",
            "score_only": true,
            "source_run_label": "NTSMR-2.5-claude-sonnet-4-6-low"
          }
        }
      },
      "todorov_stages": {
        "equilibrium": "The narrator lives with a self-flattering memory of his relationship with Nicole: he believes she accused him of driving Angela away, that he subsequently worked to become a better father, and that their reconciliation was his achievement. This narrative gives him a stable, if guilty, sense of moral redemption.",
        "disruption": "While assembling a partial lifelog to research Remem, the narrator searches for the remembered argument with Nicole. The video reveals it was he—not Nicole—who spoke the accusatory words, inverting the memory he had carried for years.",
        "recognition": "The narrator attempts to rationalize the footage as fake, checks its authenticity watermark, and is forced to accept the recording is genuine. He confronts Nicole, who confirms his false memory and tells him he is blind and self-absorbed—his reconstructed identity as a reformed father collapses.",
        "repair": "The narrator visits Nicole, confesses the misremembered argument, and commits to using Remem for honest self-inventory rather than self-flattering narrative construction. He abandons the journalistic article he planned and writes this confessional essay instead, granting public access to his lifelog so readers can verify his account.",
        "new_equilibrium": "A chastened, more honest equilibrium emerges. Nicole begins using Remem herself and, discovering her own recollection is imperfect, softens her anger at the narrator. The relationship is cautiously repaired on truthful rather than mythologized terms. The narrator reframes digital memory not as a threat to forgiveness but as a corrective against self-deception, enacting the essay's argument by folding the narrative back on itself."
      },
      "characters": [
        {
          "name": "Narrator",
          "slug": "narrator",
          "aliases": [],
          "role": "Journalist and Father",
          "summary": "A journalist investigating memory prostheses who discovers through objective video evidence that his memory of a crucial argument with his daughter was completely reversed."
        },
        {
          "name": "Nicole",
          "slug": "nicole",
          "aliases": [],
          "role": "Narrator's Daughter",
          "summary": "The narrator's adult daughter who uses retinal projectors to subvocalize writing, and who suffered through a difficult adolescence after her mother left."
        },
        {
          "name": "Angela",
          "slug": "angela",
          "aliases": [],
          "role": "Narrator's Ex-wife",
          "summary": "The narrator's ex-wife whose departure devastated the family and became the focal point of a traumatic domestic argument."
        },
        {
          "name": "Jijingi",
          "slug": "jijingi",
          "aliases": [],
          "role": "Tiv Scribe",
          "summary": "A young Tiv man who learns to write from the missionary Moseby, becoming Sabe's scribe, but ultimately realizes that his literacy distances him from his culture's oral values."
        },
        {
          "name": "Moseby",
          "slug": "moseby",
          "aliases": [],
          "role": "European Missionary",
          "summary": "A missionary who introduces Jijingi to writing, explaining how spoken sounds can be broken into discrete words and used to solidify thoughts."
        },
        {
          "name": "Sabe",
          "slug": "sabe",
          "aliases": [],
          "role": "Tiv Elder and Chief",
          "summary": "The chief of the Shangev clan who makes Jijingi his scribe to avoid mission-educated youths, and teaches Jijingi that lived kinship supersedes written records."
        },
        {
          "name": "Kokwa",
          "slug": "kokwa",
          "aliases": [],
          "role": "Tiv Storyteller",
          "summary": "The village's best storyteller who insists his tales never change over time, rejecting Jijingi's written proof of linguistic variations as missing the essence of the story."
        },
        {
          "name": "Reiss",
          "slug": "reiss",
          "aliases": [],
          "role": "European Anthropologist",
          "summary": "A European woman who visits the village to learn about Tiv customs without trying to change them, cleanly transcribing their oral stories."
        }
      ],
      "frameworks_mapped": [
        "Protocol Fiction Mapping",
        "Actantial Model",
        "Todorov's Equilibrium",
        "The Freytag Pyramid",
        "Propp's Morphology",
        "Genette's Narrative",
        "The Monomyth",
        "Dan Harmon",
        "Save the Cat",
        "Kishōtenketsu",
        "The Three-Act Structure",
        "Lévi-Strauss's Binary Oppositions",
        "Cognitive Estrangement",
        "Bakhtin's Chronotope",
        "Aristotelian Poetics",
        "Jungian Archetypal Analysis",
        "Genette's Transtextuality"
      ],
      "score_reliability": {
        "state": "replicated-agree",
        "threshold": 0.2,
        "runs_total": 5,
        "versions_compared": [
          "2.5"
        ],
        "max_spread": 0.1,
        "contested": []
      }
    },
    {
      "slug": "david_brin_the_uplift_war",
      "title": "The Uplift War",
      "author": "David Brin",
      "year": 1987,
      "medium": "book",
      "genre_tags": [],
      "tropes": [],
      "quadrant_scores": {
        "time_linearity": 0.22,
        "pacing_velocity": 0.48,
        "threat_scale": 0.82,
        "protagonist_fate": 0.28,
        "conflict_style": 0.48,
        "price_type": 0.55
      },
      "provenance": {
        "analysis_run": "NTSMR-2.5-claude-sonnet-4-6-low",
        "analysis_body_sha256": "98152d5fc7ce87a9b86440bfd1c4d996d89b7dbecc3515e5a3dc093c25bdafe0",
        "synthesis": {
          "path": "nartopo-tools/artifacts/david_brin_the_uplift_war.md.ntsmr-2-5-claude-sonnet-4-6-low.synthesis.json",
          "sha256": "996e68a42016a09c50feeecce070ce551da41d7c37a285d704df0507a3c01cfb"
        },
        "report": {
          "path": "nartopo-tools/artifacts/david_brin_the_uplift_war.md.ntsmr-2-5-claude-sonnet-4-6-low.report.json",
          "sha256": "080089fbebc2c399f6ead8a009237e51d17a4bf673f97bb057ae7c4aca2ebcaf"
        },
        "source": {
          "path": "David Brin/The Uplift War.txt",
          "sha256": "7a9c453429335051107cb20f624ff526e9fc1bde6d656d1b3ef35be32083c1ad",
          "digest_observed_at": "2026-09-09",
          "digest_at_analysis_run": null,
          "edition": null,
          "edition_status": "unresolved"
        },
        "pipeline_revision_at_run": null,
        "verification": {
          "source": "unverified",
          "human_review": "unreviewed",
          "bibliography": "unverified"
        },
        "issues": [],
        "todorov_status": "recovered-from-synthesis",
        "work_identity": {
          "title": "The Uplift War",
          "author": "David Brin",
          "year": 1987
        }
      },
      "ntsmr": {
        "version": "2.5",
        "primary_run_label": "NTSMR-2.5-claude-sonnet-4-6-low",
        "runs": {
          "NTSMR-2.4-claude-sonnet-4-6-low": {
            "pipeline_version": "2.4",
            "backend": "claude",
            "model": "claude-sonnet-4-6",
            "scores": {
              "time_linearity": 0.28,
              "pacing_velocity": 0.38,
              "threat_scale": 0.82,
              "protagonist_fate": 0.22,
              "conflict_style": 0.38,
              "price_type": 0.45
            },
            "score_space": "site-v1",
            "reasoning_effort": "low"
          },
          "NTSMR-2.5-claude-sonnet-4-6-low": {
            "pipeline_version": "2.5",
            "backend": "claude",
            "model": "claude-sonnet-4-6",
            "scores": {
              "time_linearity": 0.22,
              "pacing_velocity": 0.48,
              "threat_scale": 0.82,
              "protagonist_fate": 0.28,
              "conflict_style": 0.48,
              "price_type": 0.55
            },
            "score_space": "site-v1",
            "reasoning_effort": "low"
          },
          "NTSMR-2.5-balanced-glm-5+deepseek-v3.2": {
            "pipeline_version": "2.5",
            "backend": "openrouter",
            "model": "balanced-routing",
            "scores": {
              "time_linearity": 0.18,
              "pacing_velocity": 0.52,
              "threat_scale": 0.78,
              "protagonist_fate": 0.32,
              "conflict_style": 0.58,
              "price_type": 0.52
            },
            "score_space": "site-v1",
            "score_only": true,
            "source_run_label": "NTSMR-2.5-claude-sonnet-4-6-low"
          }
        }
      },
      "todorov_stages": {
        "equilibrium": "Garth is a fragile but functioning multi-species colony — humans and neo-chimpanzees coexisting under Terragens Council governance, with Tymbrimi diplomats present and the planet slowly recovering from ancient ecological devastation. The reproductive card hierarchy among chims operates as a stable social order, and the gorillas of the Howletts Center remain a protected secret.",
        "disruption": "The Gubru invasion fleet descends on Garth, overwhelming planetary defenses, forcing evacuation, and establishing a military occupation with a triumvirate of Suzerains imposing curfew, coercion gas, and psychological control over the population.",
        "recognition": "Multiple protagonists register the scope of the disruption: Athaclena takes command of a shaken chim resistance band; Fiben survives his crashed scoutboat and observes the occupied Valley of the Sind with dispirited workers and abandoned ecological stations; Uthacalthing perceives the humans' desperate hope and begins forming an indirect scheme; the resistance collectively understands that hyperspace is mined on all levels and outside help is uncertain.",
        "repair": "The resistance mounts a multi-front campaign: Athaclena commands mountain guerrillas using gorillas as protocol-shielded assets; Fiben and Gailet navigate the Gubru's Uplift ceremony scheme from inside captivity; Uthacalthing orchestrates his long con with Kault to manufacture a Thennanin alliance via the Garthlings ruse; Robert commits treason to keep Athaclena informed; and Fiben disrupts the ceremony itself by ascending the mound and demanding a hearing on representative selection.",
        "new_equilibrium": "The Gubru occupation collapses under the combined weight of Thennanin military pressure, the gorillas' spontaneous self-nomination as a new client race under Thennanin patronage, and the Uplift Institute's recognition of neo-chimpanzee stage-three qualification. Garth is liberated without a holocaust; Thennanin commit to defend Terran worlds; Gubru reparations fund ecological restoration; and a reformed probation system is proposed — a fundamentally altered order in which Earthclan has gained galactic standing it did not possess before."
      },
      "characters": [
        {
          "name": "Fiben Bolger",
          "slug": "fiben-bolger",
          "aliases": [
            "Trog",
            "Mr. Bluecard",
            "Fiben",
            "Lieutenant Bolger"
          ],
          "role": "Neo-chimpanzee scout and resistance fighter",
          "summary": "Neo-chimpanzee scout pilot held as a Gubru prisoner and potential race-representative; irreverent but perceptive; navigates covert communication and ultimately escapes toward the mountain resistance."
        },
        {
          "name": "Uthacalthing",
          "slug": "uthacalthing",
          "aliases": [],
          "role": "Senior Tymbrimi diplomat, trickster, Athaclena's father",
          "summary": "Pale, long-limbed Tymbrimi envoy; amused observer at the farewell ceremony; privately laughs at human hopes for rescue; orchestrates an encounter with Kault outside the Branch Library and offers him evacuation as an opening gambit."
        },
        {
          "name": "Kault",
          "slug": "kault",
          "aliases": [],
          "role": "Thennanin diplomat, Uthacalthing's companion",
          "summary": "Hulking, high-caste Thennanin envoy with a towering ridge crest; stranded without a ship; angrily demands access to the Branch Library; accepts Uthacalthing's offer of evacuation despite suspicion."
        },
        {
          "name": "Athaclena",
          "slug": "athaclena",
          "aliases": [
            "Clennie",
            "the General",
            "the countess"
          ],
          "role": "Young Tymbrimi female, Uthacalthing's daughter",
          "summary": "Young Tymbrimi female assuming command of mountain survivors; asserts Peremptory Command over chims, discovers the gorilla secret, confronts the Uplift scientists, and decides to launch guerrilla resistance."
        },
        {
          "name": "Robert Oneagle",
          "slug": "robert-oneagle",
          "aliases": [
            "Robert",
            "Captain Oneagle",
            "Refuge Administrator",
            "madam coordinator"
          ],
          "role": "Human guerrilla fighter, Athaclena's consort",
          "summary": "Megan's son and Athaclena's hiking companion; uses an effective empathy shield that frustrates Athaclena; knowledgeable about Garth's Bururalli history; prefers unsolved mysteries to Library answers."
        },
        {
          "name": "Simon Levin",
          "slug": "simon-levin",
          "aliases": [],
          "role": "Neo-chimpanzee soldier",
          "summary": "Chim standing beside Fiben in the Honor Guard; urges Fiben to stand at attention; Jewish background referenced in Fiben's later dream."
        },
        {
          "name": "The Suzerain of Beam and Talon",
          "slug": "the-suzerain-of-beam-and-talon",
          "aliases": [
            "the admiral",
            "the military commander"
          ],
          "role": "Gubru co-commander (triumvirate), military",
          "summary": "Gubru military Suzerain; arbitrates the first policy debate between the Suzerains of Propriety and Cost and Caution regarding whether to use ground troops against the Terran resistance detachment."
        },
        {
          "name": "Suzerain of Propriety",
          "slug": "suzerain-of-propriety",
          "aliases": [
            "the priest",
            "the Suzerain"
          ],
          "role": "Gubru co-commander (triumvirate), high priest",
          "summary": "Theocratic Suzerain who leads the invasion's opening ritual and must enforce Rules of War; seeks a casus belli to void Garth's Earthling lease; aware of rivalry with the other Suzerains."
        },
        {
          "name": "Suzerain of Cost and Caution",
          "slug": "suzerain-of-cost-and-caution",
          "aliases": [
            "the bureaucrat"
          ],
          "role": "antagonist/Gubru bureaucratic commander",
          "summary": "Newly appointed Suzerain; a white-plumed neuter bureaucrat elevated at the Conclave Arena; believes careful policy will win the upcoming molting competition; departs with the invasion force."
        },
        {
          "name": "Benjamin",
          "slug": "benjamin",
          "aliases": [],
          "role": "Helper / resistance lieutenant",
          "summary": "Senior neo-chimpanzee who follows Athaclena's authority; had attempted to hide the gorillas from her; becomes her primary aide in organizing resistance."
        },
        {
          "name": "April",
          "slug": "april",
          "aliases": [],
          "role": "Minor character / symbolic figure",
          "summary": "Young human girl sheltered with the gorillas during the gas attack; assumed charge of her 'clients' by instinct, impressing Athaclena with human patron-responsibility despite her age."
        },
        {
          "name": "Jonny",
          "slug": "jonny",
          "aliases": [
            "Villa"
          ],
          "role": "Minor character / gorilla",
          "summary": "Large male gorilla sheltering with April and a chim mother; communicates via hand signs; central to the Uplift secret Athaclena uncovers."
        },
        {
          "name": "Nita",
          "slug": "nita",
          "aliases": [],
          "role": "Minor character / neo-chimpanzee",
          "summary": "Mother chim sheltering with her infant Cha-Cha and the gorilla Jonny in the trees; provides Athaclena with information about the gas's differential effect on humans versus chims."
        },
        {
          "name": "Dr. Taka",
          "slug": "dr-taka",
          "aliases": [],
          "role": "Minor character / Uplift scientist",
          "summary": "Tall, dark-skinned human female; one of the incapacitated Uplift specialists at the Howletts Center; proposes the gorilla matter go to the Tymbrimi Grand Council rather than the Gubru."
        },
        {
          "name": "Tycho",
          "slug": "tycho",
          "aliases": [],
          "role": "Helper / animal",
          "summary": "Fiben's draft horse; used as cover for his spy mission into Port Helenia, pulling the grain wagon."
        },
        {
          "name": "Sylvie",
          "slug": "sylvie",
          "aliases": [],
          "role": "Chim informant / Fiben's companion",
          "summary": "Chim female dancer performing a Gubru-orchestrated erotic ritual at the Ape's Grape; appears drugged during performance; receives Fiben's defiant gesture of rejection and dignity."
        },
        {
          "name": "Irongrip",
          "slug": "irongrip",
          "aliases": [],
          "role": "Antagonist / assigned ceremonial partner",
          "summary": "Hostile, sexually aggressive chim assigned alongside Gailet for the Uplift ceremony; quick-witted but undisciplined, publicly studious but privately predatory."
        },
        {
          "name": "Micah",
          "slug": "micah",
          "aliases": [],
          "role": "helper",
          "summary": "Elderly chim serving Robert in the caves; provides map briefings on the occupation and relays information about Athaclena's command structure."
        },
        {
          "name": "Gailet Jones",
          "slug": "gailet-jones",
          "aliases": [
            "Gailett",
            "Gailet"
          ],
          "role": "Protagonist / urban resistance intellectual",
          "summary": "Chim academic and urban resistance leader in Port Helenia; initially hostile to Fiben; leads the resistance cell meeting; shattered by Fiben's forced insight about Gubru perception of chims."
        },
        {
          "name": "Dr. Soo",
          "slug": "dr-soo",
          "aliases": [
            "Dr. Elayne Soo"
          ],
          "role": "actantial:helper",
          "summary": "Chim physician and nutritionist tending Robert in the mountain caves; relays information about Athaclena's spy assignment of Fiben."
        },
        {
          "name": "Max",
          "slug": "max",
          "aliases": [],
          "role": "actantial:helper",
          "summary": "Large, calm yellow-card chim, longtime retainer of Gailet's family, who installs the gas splice and assists in the embassy sabotage."
        },
        {
          "name": "Colonel Millchamp",
          "slug": "colonel-millchamp",
          "aliases": [],
          "role": "Military officer, council member",
          "summary": "Advocates aggressively for launching flicker-swivver missiles against Gubru ground targets as a symbolic counterstrike."
        },
        {
          "name": "Commander Kylie",
          "slug": "commander-kylie",
          "aliases": [],
          "role": "Military officer, council member",
          "summary": "Briefly counters Millchamp's urgency with a philosophical point about interstellar simultaneity."
        },
        {
          "name": "Lydia McCue",
          "slug": "lydia-mccue",
          "aliases": [
            "Lieutenant McCue"
          ],
          "role": "Marine lieutenant, Prathachulthorn's second-in-command",
          "summary": "Calmly questions the value of symbolic strikes in council; later accompanies Robert on reconnaissance, admiring the mountain forest and drawing his involuntary attraction."
        },
        {
          "name": "Petri",
          "slug": "petri",
          "aliases": [],
          "role": "Chim messenger from the mainland",
          "summary": "Small chim who carried Robert's private message to Megan, including news of the consort bond, while recovering from his journey."
        },
        {
          "name": "Elsie",
          "slug": "elsie",
          "aliases": [],
          "role": "Chim lieutenant, bespectacled middle-aged chimmie",
          "summary": "Cautious scout lieutenant who accompanies Robert; explains gorilla care logistics including Dr. Schultz's microbiological feeding solution."
        },
        {
          "name": "April Wu",
          "slug": "april-wu",
          "aliases": [
            "Sunshine",
            "Pumpkin"
          ],
          "role": "Human child sheltered with the gorillas",
          "summary": "Young sun-browned girl riding on a gorilla's shoulder; leaps into Robert's arms; believes she may soon see her parents, unaware of the true situation."
        },
        {
          "name": "Dr. de Shriver",
          "slug": "dr-de-shriver",
          "aliases": [],
          "role": "Chim physician, head of gorilla care team",
          "summary": "Runs the gorilla medical and care operation at the hot springs refuge; has told April she may see her parents 'soon.'"
        },
        {
          "name": "Major Prathachulthorn",
          "slug": "major-prathachulthorn",
          "aliases": [
            "Pratha-chulthorn"
          ],
          "role": "Human Marine officer, resistance commander",
          "summary": "Patronizingly praises Robert's guerrilla work and dismisses him with orders to take McCue on recon, having taken over the caves and displaced Robert's authority."
        },
        {
          "name": "Jo-Jo",
          "slug": "jo-jo",
          "aliases": [],
          "role": "Helper / atavistic chim",
          "summary": "Atavistic neo-chimpanzee living wild on the steppe in Uthacalthing's service; found by Robert through empathy and used as intermediary to reach the diplomat."
        },
        {
          "name": "Grand Examiner",
          "slug": "grand-examiner",
          "aliases": [],
          "role": "authority figure/arbitrator",
          "summary": "Serentini official of the Uplift Institute presiding over the ceremony; upholds ceremonial law against Gubru interference and grants Fiben a hearing."
        },
        {
          "name": "Cordwainer Appelbe",
          "slug": "cordwainer-appelbe",
          "aliases": [],
          "role": "nominal human official",
          "summary": "Head of Garth's local Uplift Board; bewildered participant who endorses Uthacalthing's request for a democratic vote."
        },
        {
          "name": "Buoult",
          "slug": "buoult",
          "aliases": [],
          "role": "Thennanin undercommander",
          "summary": "Commands the Thennanin armada approaching Garth; resents Earthclan but recognizes political necessity of alliance; plans to consult Kault before signing agreements."
        },
        {
          "name": "Admiral Alvarez",
          "slug": "admiral-alvarez",
          "aliases": [
            "Helene Alvarez"
          ],
          "role": "Human fleet admiral",
          "summary": "Elderly human woman commanding the Terran delegation aboard the Thennanin warship; experienced in Galactic affairs; presses negotiations hard and appears worried about the Gubru defense array."
        },
        {
          "name": "stoop-colonel",
          "slug": "stoop-colonel",
          "aliases": [],
          "role": "Gubru Talon Soldier officer",
          "summary": "Kills the Suzerain of Beam and Talon to prevent the order for weapons of mass destruction; places itself under arrest pending judgment."
        }
      ],
      "frameworks_mapped": [
        "Protocol Fiction Mapping",
        "Actantial Model",
        "Todorov's Equilibrium",
        "The Freytag Pyramid",
        "Propp's Morphology",
        "Genette's Narrative",
        "The Monomyth",
        "Dan Harmon",
        "Save the Cat",
        "Kishōtenketsu",
        "The Three-Act Structure",
        "Lévi-Strauss's Binary Oppositions",
        "Cognitive Estrangement",
        "Bakhtin's Chronotope",
        "Aristotelian Poetics",
        "Jungian Archetypal Analysis",
        "Genette's Transtextuality"
      ],
      "score_reliability": {
        "state": "replicated-agree",
        "threshold": 0.2,
        "runs_total": 3,
        "versions_compared": [
          "2.5"
        ],
        "max_spread": 0.1,
        "contested": []
      }
    },
    {
      "slug": "ada_palmer_the_will_to_battle",
      "title": "The Will to Battle",
      "author": "Ada Palmer",
      "year": 2017,
      "medium": "book",
      "genre_tags": [
        "science fiction",
        "political sf"
      ],
      "tropes": [],
      "quadrant_scores": {
        "time_linearity": 0.4,
        "pacing_velocity": 0.65,
        "threat_scale": 0.88,
        "protagonist_fate": 0.7,
        "conflict_style": 0.65,
        "price_type": 0.75
      },
      "baseline_quadrant_scores": {
        "time_linearity": 0.75,
        "pacing_velocity": 0.6,
        "threat_scale": 0.95,
        "protagonist_fate": 0.85,
        "conflict_style": 0.45,
        "price_type": 0.8
      },
      "provenance": {
        "analysis_run": "NTSMR-2.5-claude-sonnet-4-6-low",
        "analysis_body_sha256": "92c93d1414b3cf743839d023e5eba6cd349f6d90affa2026b7ae51a8eb5dd88e",
        "synthesis": {
          "path": "nartopo-tools/artifacts/ada_palmer_the_will_to_battle.md.ntsmr-2-5-claude-sonnet-4-6-low.synthesis.json",
          "sha256": "6e48cf77de3761d02c906b267b1fd26d7b47b51cbfff8fc7c19ca625b8cebccc"
        },
        "report": {
          "path": "nartopo-tools/artifacts/ada_palmer_the_will_to_battle.md.ntsmr-2-5-claude-sonnet-4-6-low.report.json",
          "sha256": "f289bfa2a9efc948bac041813e3508eae068307877a1415c4addbe1647940612"
        },
        "source": {
          "path": "Ada Palmer/The Will to Battle (2017).txt",
          "sha256": "b50c113218c581a4cb43f45911f0258aec09a0aee6bbb433f64d8fb45ad3bea5",
          "digest_observed_at": "2026-09-09",
          "digest_at_analysis_run": null,
          "edition": null,
          "edition_status": "unresolved"
        },
        "pipeline_revision_at_run": null,
        "verification": {
          "source": "unverified",
          "human_review": "unreviewed",
          "bibliography": "unverified"
        },
        "issues": [],
        "todorov_status": "recovered-from-synthesis",
        "work_identity": {
          "title": "The Will to Battle",
          "author": "Ada Palmer",
          "year": 2017
        }
      },
      "ntsmr": {
        "version": "2.5",
        "primary_run_label": "NTSMR-2.5-claude-sonnet-4-6-low",
        "runs": {
          "NTSMR-2.3-gemini-3.1-pro-preview": {
            "pipeline_version": "2.3",
            "backend": "gemini",
            "model": "gemini-3.1-pro-preview",
            "scores": {
              "time_linearity": 0.8,
              "pacing_velocity": 0.6,
              "threat_scale": 0.9,
              "protagonist_fate": 0.8,
              "conflict_style": 0.6,
              "price_type": 0.9
            },
            "score_space": "site-v1"
          },
          "NTSMR-2.3-claude-sonnet-4-6-low": {
            "pipeline_version": "2.3",
            "backend": "claude",
            "model": "claude-sonnet-4-6",
            "scores": {
              "time_linearity": 0.72,
              "pacing_velocity": 0.58,
              "threat_scale": 0.91,
              "protagonist_fate": 0.65,
              "conflict_style": 0.62,
              "price_type": 0.78
            },
            "score_space": "site-v1",
            "reasoning_effort": "low"
          },
          "NTSMR-2.4-claude-sonnet-4-6-low": {
            "pipeline_version": "2.4",
            "backend": "claude",
            "model": "claude-sonnet-4-6",
            "scores": {
              "time_linearity": 0.55,
              "pacing_velocity": 0.35,
              "threat_scale": 0.9,
              "protagonist_fate": 0.75,
              "conflict_style": 0.45,
              "price_type": 0.5
            },
            "score_space": "site-v1",
            "reasoning_effort": "low"
          },
          "NTSMR-2.5-claude-sonnet-4-6-low": {
            "pipeline_version": "2.5",
            "backend": "claude",
            "model": "claude-sonnet-4-6",
            "scores": {
              "time_linearity": 0.4,
              "pacing_velocity": 0.65,
              "threat_scale": 0.88,
              "protagonist_fate": 0.7,
              "conflict_style": 0.65,
              "price_type": 0.75
            },
            "score_space": "site-v1",
            "reasoning_effort": "low"
          },
          "NTSMR-2.5-balanced-glm-5+deepseek-v3.2": {
            "pipeline_version": "2.5",
            "backend": "openrouter",
            "model": "balanced-routing",
            "scores": {
              "time_linearity": 0.3,
              "pacing_velocity": 0.65,
              "threat_scale": 0.85,
              "protagonist_fate": 0.7,
              "conflict_style": 0.6,
              "price_type": 0.5
            },
            "score_space": "site-v1",
            "score_only": true,
            "source_run_label": "NTSMR-2.5-claude-sonnet-4-6-low"
          },
          "NTSMR-2.5-gemini-3.1-pro-preview": {
            "pipeline_version": "2.5",
            "backend": "gemini",
            "model": "gemini-3.1-pro-preview",
            "scores": {
              "time_linearity": 0.3,
              "pacing_velocity": 0.65,
              "threat_scale": 0.85,
              "protagonist_fate": 0.7,
              "conflict_style": 0.6,
              "price_type": 0.5
            },
            "score_space": "site-v1"
          }
        }
      },
      "todorov_stages": {
        "equilibrium": "The seven-Hive world order has maintained peace through the secret O.S. assassination program, balancing political factions for centuries; Mycroft serves as a universal servant to powerful figures within this stable system.",
        "disruption": "The O.S. conspiracy is exposed, triggering world riots, a Mitsubishi Hive-wide strike, Hive reform demands, the Senate's emergency session, and cascading political crises that render the old equilibrium irreparable.",
        "recognition": "Mycroft and the major political actors—Caesar, Kosala, Achilles, the Senate—recognize through the Senate proceedings, the Odessa riots, and the exposure of O.S. that war is now inevitable and the Hive system cannot survive unchanged.",
        "repair": "Multiple simultaneous repair attempts unfold: the Senate votes on Hive reforms, Kosala negotiates peace measures, the Sensayers' Conclave addresses J.E.D.D.'s resurrection, the Vatican convenes a Great Debate on Providence, and Greenpeace proposes protected nature reserves as de facto peace zones.",
        "new_equilibrium": "The Temple of Janus gates are opened by J.E.D.D. and Su-Hyeon, formally beginning the war; Mycroft dies in action; a new narrator takes over to chronicle the first day of war—the world has irrevocably crossed into a new, war-defined order."
      },
      "characters": [
        {
          "name": "Mycroft Canner",
          "slug": "mycroft-canner",
          "aliases": [
            "Mycroft",
            "I",
            "cannibal"
          ],
          "role": "Narrator, captive, messenger",
          "summary": "The disgraced historian who is recording a secret chronicle of the coming war for his masters. He is present in meetings with major leaders and corrects Ancelet on the resurrection of Jehovah."
        },
        {
          "name": "Vivien Ancelet",
          "slug": "vivien-ancelet",
          "aliases": [
            "President of the Humanist Hive",
            "Anonymous",
            "President Ancelet",
            "Censor"
          ],
          "role": "President of the Humanists",
          "summary": "Former Censor and Anonymous who has just taken the oath of office as President of the Humanist Hive. He meets with Prospero in prison to understand the workings of O.S. and instructs him on how to plead at trial."
        },
        {
          "name": "Ockham Prospero Saneer",
          "slug": "ockham-prospero-saneer",
          "aliases": [
            "Prospero",
            "O.S."
          ],
          "role": "O.S. leader / defendant",
          "summary": "The imprisoned leader of O.S. who testifies calmly at his trial about assassinations, executing his predecessors, and threatening his sister Thisbe, before being formally arrested by Papa."
        },
        {
          "name": "Achilles",
          "slug": "achilles",
          "aliases": [
            "Achilles son of Peleus",
            "Major",
            "King of the Myrmidons",
            "Achilles Mojave",
            "Peliades",
            "Achilles breaker of battle lines",
            "Great Soldier",
            "Goddess-born Achilles"
          ],
          "role": "Resurrected ancient hero",
          "summary": "The legendary hero who agrees to side with MASON, commands Mycroft to convince Jehovah to join the Empire, and demands the construction of fifty thousand jeeps for the upcoming war."
        },
        {
          "name": "Bryar Kosala",
          "slug": "bryar-kosala",
          "aliases": [
            "Chair Kosala",
            "Aunt Kosala",
            "Kosala"
          ],
          "role": "Leader of the Cousins Hive",
          "summary": "The leader of the Cousins Hive who is deeply concerned about Nurturism gaining influence and the danger of the war reverting humanity to the violent era of geographic nation-states."
        },
        {
          "name": "Heloïse",
          "slug": "helose",
          "aliases": [
            "Sister Heloïse"
          ],
          "role": "Cousin representative in Odessa",
          "summary": "A nun wearing a legally-compliant but spiritually defiant shapeless sack who reports directly to Kosala regarding the violent riots and casualties in Odessa."
        },
        {
          "name": "King of Spain",
          "slug": "king-of-spain",
          "aliases": [
            "His Most Catholic Majesty",
            "Spain",
            "Majesty"
          ],
          "role": "European Monarch",
          "summary": "The leader attempting to maintain peace, who receives the devastating news of a coordinated, Hive-wide strike by the Mitsubishi."
        },
        {
          "name": "Jin Im-Jin",
          "slug": "jin-im-jin",
          "aliases": [
            "Speaker",
            "Grandpa",
            "Speaker Jin Im-Jin",
            "Member Speaker",
            "Speaker Jin"
          ],
          "role": "Speaker of the Senate",
          "summary": "The presiding officer of the Senate who manages the chaotic floor debates and coordinates the voting on urgent motions."
        },
        {
          "name": "Xiaoliu Guildbreaker",
          "slug": "xiaoliu-guildbreaker",
          "aliases": [
            "Grandma",
            "Mason Guildbreaker Senior",
            "Unofficial Nonpartisan Resolver of Unnecessary Bickering",
            "Martin",
            "Minister Porphyrogenito"
          ],
          "role": "Spouse of Martin Guildbreaker",
          "summary": "A slim, poised Mason and novitiate who abandoned his Mitsubishi birth'bash to marry Martin Guildbreaker. He brings MASON urgent news of the riots in Odessa."
        },
        {
          "name": "J.E.D.D. Mason",
          "slug": "jedd-mason",
          "aliases": [
            "Jehovah",
            "Ἄναξ",
            "The Addressee",
            "Tribune Mason",
            "He Who Visits",
            "The Visitor",
            "Addressee",
            "Imperator Destinatus",
            "Epicuro",
            "Jed",
            "Visitor",
            "Micromegas",
            "Emperor",
            "Caesar",
            "Mason MASON",
            "MASON",
            "Death"
          ],
          "role": "Divine incarnate and global challenger",
          "summary": "A divine, omnibenevolent figure who negotiates a truce with Sniper, offers him secure communication channels, and forbids anyone from killing Sniper until the history is complete."
        },
        {
          "name": "Lorelei Cook",
          "slug": "lorelei-cook",
          "aliases": [
            "Cookie",
            "Minister Cook",
            "Minister of Education",
            "Cousin"
          ],
          "role": "Minister",
          "summary": "A smooth-faced, expressive Minister who passionately proposes a new Black Law to criminalize the creation and manipulation of set-sets."
        },
        {
          "name": "Thomas Hobbes",
          "slug": "thomas-hobbes",
          "aliases": [
            "Hobbes's specter"
          ],
          "role": "Philosopher Specter",
          "summary": "An imagined phantom of the historical philosopher who converses with Mycroft, marveling at how his theoretical Laws of Nature have been adapted."
        },
        {
          "name": "Fracciterne",
          "slug": "fracciterne",
          "aliases": [
            "Hiveless Fracciterne"
          ],
          "role": "Graylaw Spokesperson",
          "summary": "A proud Graylaw leader who proposes an expedited emergency agenda to the Senate to handle the mountain of urgent motions."
        },
        {
          "name": "Luo",
          "slug": "luo",
          "aliases": [
            "Minister Luo",
            "Minister of Public Safety"
          ],
          "role": "Minister of Public Safety",
          "summary": "A Whitelaw Minister who argues eloquently against declaring Sniper a traitor, citing Romanova's history of non-lethal justice and the risk of inciting war."
        },
        {
          "name": "Natekari",
          "slug": "natekari",
          "aliases": [
            "Tribune Natekari",
            "Blacklaw Tribune"
          ],
          "role": "Blacklaw Tribune",
          "summary": "A Tribune who proposes a motion to declare Sniper an enemy of the Alliance, arguing that attacking a Tribune on the Rostra nullifies legal protection."
        },
        {
          "name": "Menestius",
          "slug": "menestius",
          "aliases": [],
          "role": "Servicer",
          "summary": "A brave Servicer who articulates why they wish to follow Achilles, believing his lack of loyalty to the current political era makes him the best hope to save humanity."
        },
        {
          "name": "Phoenix",
          "slug": "phoenix",
          "aliases": [],
          "role": "Servicer",
          "summary": "An older, wise Servicer who informs Achilles that there are one hundred thousand Servicers ready to take up arms for him."
        },
        {
          "name": "Julia Doria-Pamphili",
          "slug": "julia-doria-pamphili",
          "aliases": [
            "Conclave Head"
          ],
          "role": "Head of the Sensayers' Conclave",
          "summary": "The wealthy Roman noblewoman who makes a surprising appearance at the Conclave after posting bail, interrupting the sensayers' debate."
        },
        {
          "name": "Headmaster Faust",
          "slug": "headmaster-faust",
          "aliases": [
            "Madame",
            "Faust"
          ],
          "role": "Jehovah's uncle and Brillist scholar",
          "summary": "An excitable Brillist who accompanies Jehovah to the Vatican to observe the theological summit and later revives a collapsed Dominic."
        },
        {
          "name": "Ganymede Jean-Louis de la Trémoïlle",
          "slug": "ganymede-jean-louis-de-la-trmolle",
          "aliases": [
            "Ganymede",
            "Duke"
          ],
          "role": "Fallen President",
          "summary": "The silent, deposed leader harboring a healthy flash of murder in his eyes, whose peaceful exile is ruined by Madame."
        },
        {
          "name": "Tully Mardi",
          "slug": "tully-mardi",
          "aliases": [
            "Tully",
            "Tully Mardi Mojave"
          ],
          "role": "Sniper's ally, oracle",
          "summary": "Sniper's ally whose prosthetic lenses digest data to predict casualties. He negotiates the truce with J.E.D.D. Mason to stop the riots."
        },
        {
          "name": "Dominic Seneschal",
          "slug": "dominic-seneschal",
          "aliases": [
            "Dominic"
          ],
          "role": "Servant of Jehovah, Acting Chief Director of Mitsubishi",
          "summary": "A fiercely loyal servant of Jehovah who seeks to personally avenge the attempt on His life and uses the Mitsubishi Hive to manipulate political leverage."
        },
        {
          "name": "Joyce",
          "slug": "joyce",
          "aliases": [
            "Madame"
          ],
          "role": "Former Blacklaw, newly registered European/Spaniard",
          "summary": "A manipulative figure who tries to intervene in the hunt for Sniper but is stopped by MASON, revealing she has changed her Hive allegiance."
        },
        {
          "name": "Chagatai",
          "slug": "chagatai",
          "aliases": [],
          "role": "Town Hall speaker",
          "summary": "A figure at the Hobbestown meeting who questions J.E.D.D. Mason about the execution of Sniper."
        },
        {
          "name": "Sniper",
          "slug": "sniper",
          "aliases": [
            "Thirteenth O.S.",
            "O.S.",
            "Ojiro Sniper"
          ],
          "role": "Assassin, enemy of J.E.D.D. Mason",
          "summary": "An assassin and leader of O.S. who shot J.E.D.D. Mason. Sniper is determined to permanently eliminate Mason but temporarily negotiates a truce to stop the world riots."
        },
        {
          "name": "Monsignor Aurelio Colonna",
          "slug": "monsignor-aurelio-colonna",
          "aliases": [
            "Monsignor Colonna"
          ],
          "role": "Vatican host",
          "summary": "A Vatican official who welcomes Jehovah to New New St. Peter's and prompts the introduction of Achilles."
        },
        {
          "name": "Aesop Quarriman",
          "slug": "aesop-quarriman",
          "aliases": [
            "Senator Quarriman",
            "Chair Quarriman"
          ],
          "role": "Chair of Esperanza City Games",
          "summary": "An enthusiastic Senator organizing the Olympics who eagerly grants Achilles permission to compete."
        },
        {
          "name": "Papadelias",
          "slug": "papadelias",
          "aliases": [
            "Papa",
            "Commissioner General"
          ],
          "role": "Police Commissioner",
          "summary": "The police chief who jokingly arrests Lesley while off-duty at Esperanza City and asks her which Typer twin he actually has in custody."
        },
        {
          "name": "Lesley",
          "slug": "lesley",
          "aliases": [
            "Lesley Juniper Sniper Saneer",
            "Acting O.S."
          ],
          "role": "Acting Assassin",
          "summary": "An operative trying to formulate a plan to find Ojiro before the Olympics, who rebuffs Papadelias's playful arrest and refuses to share secrets with Jehovah."
        },
        {
          "name": "Apollo Mojave",
          "slug": "apollo-mojave",
          "aliases": [
            "Apollo"
          ],
          "role": "Utopian commander",
          "summary": "A Utopian who debates Mycroft over a tracker call, arguing that handing humanity instant new worlds would act as a dangerous sedative."
        },
        {
          "name": "Thisbe",
          "slug": "thisbe",
          "aliases": [
            "Thisbe Saneer",
            "tick",
            "witch"
          ],
          "role": "O.S. assassin / prisoner",
          "summary": "A self-proclaimed top assassin who murdered for fun and is taunted and terrified by Mycroft in a pitch-black prison encounter."
        },
        {
          "name": "Voltaire",
          "slug": "voltaire",
          "aliases": [],
          "role": "Utopian spokesperson",
          "summary": "A Utopian who debates Jehovah, recalling his childhood and arguing for his inherent kindness while attempting to negotiate peace."
        },
        {
          "name": "Casimir Perry",
          "slug": "casimir-perry",
          "aliases": [
            "Merion Kraye",
            "Gunman"
          ],
          "role": "Assassin and antagonist",
          "summary": "A former German M.P. who changed his face to become a Polish bulldog. He infiltrated O.S., attacked Martin and Mycroft, and claims to have sold Sniper in a black market auction."
        },
        {
          "name": "Private Croucher",
          "slug": "private-croucher",
          "aliases": [
            "Coward",
            "Traitor",
            "Deserter"
          ],
          "role": "Taunting accomplice",
          "summary": "A tiny man drawn from the enemy's pocket who bitterly taunts Mycroft and Martin, expressing contempt for their heroic ideals and MASON."
        },
        {
          "name": "Cato Weeksbooth",
          "slug": "cato-weeksbooth",
          "aliases": [],
          "role": "Target and defector to Utopia",
          "summary": "A captive in Cell 600 who constructs a massive paper throne and creations. He is rescued by Utopians (Delians) and formally renounces complacency to join Utopia's mission."
        },
        {
          "name": "Ninth Anonymous",
          "slug": "ninth-anonymous",
          "aliases": [],
          "role": "Narrator and successor to Mycroft",
          "summary": "The new narrator who takes over the chronicle after Mycroft's presumed death, recounting the Olympics and the sudden onset of war."
        }
      ],
      "frameworks_mapped": [
        "Protocol Fiction Mapping",
        "Actantial Model",
        "Todorov's Equilibrium",
        "The Freytag Pyramid",
        "Propp's Morphology",
        "Genette's Narrative",
        "The Monomyth",
        "Dan Harmon",
        "Save the Cat",
        "Kishōtenketsu",
        "The Three-Act Structure"
      ],
      "score_reliability": {
        "state": "contested",
        "threshold": 0.2,
        "runs_total": 6,
        "versions_compared": [
          "2.5"
        ],
        "max_spread": 0.25,
        "contested": [
          {
            "axis": "price_type",
            "version": "2.5",
            "spread": 0.25,
            "low": {
              "label": "NTSMR-2.5-balanced-glm-5+deepseek-v3.2",
              "model": "balanced-routing",
              "effort": "?",
              "value": 0.5
            },
            "high": {
              "label": "NTSMR-2.5-claude-sonnet-4-6-low",
              "model": "claude-sonnet-4-6",
              "effort": "low",
              "value": 0.75
            }
          }
        ]
      }
    },
    {
      "slug": "paolo_bacigalupi_the_windup_girl",
      "title": "The Windup Girl",
      "author": "Paolo Bacigalupi",
      "year": 2009,
      "medium": "book",
      "genre_tags": [],
      "tropes": [],
      "quadrant_scores": {
        "time_linearity": 0.28,
        "pacing_velocity": 0.52,
        "threat_scale": 0.78,
        "protagonist_fate": 0.78,
        "conflict_style": 0.48,
        "price_type": 0.52
      },
      "provenance": {
        "analysis_run": "NTSMR-2.5-claude-sonnet-4-6-low",
        "analysis_body_sha256": "a8a40274d3e2ba3d02b695dfbef0376c5603a56d9079fbb5de7e8f05cbf34fff",
        "synthesis": {
          "path": "nartopo-tools/artifacts/paolo_bacigalupi_the_windup_girl.md.ntsmr-2-5-claude-sonnet-4-6-low.synthesis.json",
          "sha256": "cbfee7a660c6635cd075573644d21a3ef7705851a104c96d1a8542380b0ff71b"
        },
        "report": {
          "path": "nartopo-tools/artifacts/paolo_bacigalupi_the_windup_girl.md.ntsmr-2-5-claude-sonnet-4-6-low.report.json",
          "sha256": "52cf587b548b78aeef87f7fd9468df04f19ca464b3ebd8f9afbd36cd3ac15a68"
        },
        "source": {
          "path": "Paolo Bacigalupi/The Windup Girl.txt",
          "sha256": "945b3728728b21f17bc45639176395b3d58ce573503e31241a383381c42a5225",
          "digest_observed_at": "2026-09-09",
          "digest_at_analysis_run": null,
          "edition": null,
          "edition_status": "unresolved"
        },
        "pipeline_revision_at_run": null,
        "verification": {
          "source": "unverified",
          "human_review": "unreviewed",
          "bibliography": "unverified"
        },
        "issues": [],
        "todorov_status": "recovered-from-synthesis",
        "work_identity": {
          "title": "The Windup Girl",
          "author": "Paolo Bacigalupi",
          "year": 2009
        }
      },
      "ntsmr": {
        "version": "2.5",
        "primary_run_label": "NTSMR-2.5-claude-sonnet-4-6-low",
        "runs": {
          "NTSMR-2.4-claude-sonnet-4-6-low": {
            "pipeline_version": "2.4",
            "backend": "claude",
            "model": "claude-sonnet-4-6",
            "scores": {
              "time_linearity": 0.28,
              "pacing_velocity": 0.35,
              "threat_scale": 0.78,
              "protagonist_fate": 0.68,
              "conflict_style": 0.38,
              "price_type": 0.42
            },
            "score_space": "site-v1",
            "reasoning_effort": "low"
          },
          "NTSMR-2.5-claude-sonnet-4-6-low": {
            "pipeline_version": "2.5",
            "backend": "claude",
            "model": "claude-sonnet-4-6",
            "scores": {
              "time_linearity": 0.28,
              "pacing_velocity": 0.52,
              "threat_scale": 0.78,
              "protagonist_fate": 0.78,
              "conflict_style": 0.48,
              "price_type": 0.52
            },
            "score_space": "site-v1",
            "reasoning_effort": "low"
          },
          "NTSMR-2.5-balanced-glm-5+deepseek-v3.2": {
            "pipeline_version": "2.5",
            "backend": "openrouter",
            "model": "balanced-routing",
            "scores": {
              "time_linearity": 0.28,
              "pacing_velocity": 0.62,
              "threat_scale": 0.82,
              "protagonist_fate": 0.65,
              "conflict_style": 0.62,
              "price_type": 0.52
            },
            "score_space": "site-v1",
            "score_only": true,
            "source_run_label": "NTSMR-2.5-claude-sonnet-4-6-low"
          }
        }
      },
      "todorov_stages": {
        "equilibrium": "Bangkok exists as a tense but functioning post-Contraction city-state: the Environment Ministry's white shirts enforce calorie import restrictions, Trade Ministry operatives maneuver for power, Anderson runs his AgriGen cover factory, Emiko performs at Raleigh's bar, and Hock Seng navigates yellow-card precarity — each faction holding its position in an uneasy stalemate between nationalism and foreign commercial pressure.",
        "disruption": "Emiko kills the Somdet Chaopraya, the kingdom's senior protector, during a private encounter after being pushed past endurance by Raleigh's contempt and violence — a single act by a foreign-manufactured New Person that detonates the political crisis both factions have been building toward, giving Akkarat the pretext needed to launch the coup.",
        "recognition": "Kanya arrives at the murder scene in the Ploenchit tower, witnesses the catastrophic carnage with multiple bodies and the Protector's throat torn out, and simultaneously receives Narong's revelation that a windup killed the Somdet Chaopraya — while Pracha suspects Akkarat arranged the assassination as a pretext for seizing power.",
        "repair": "Anderson activates AgriGen's invasion network from Burma and India using a hidden codebook recovered from the factory; Kanya attempts to document Pracha's innocence and phone Narong with evidence; Hock Seng arms himself to profit from rather than be consumed by chaos; and Kanya ultimately orders the monks to secretly evacuate the entire seedbank beyond calorie company reach.",
        "new_equilibrium": "Akkarat holds a formal surrender ceremony at the Grand Palace, grants amnesty to white shirt combatants, and appoints Kanya head of the Environment Ministry — Trade has won, the white shirts are subordinated, and AgriGen gains access to the seedbank, though Kanya's secret dispersal of the genetic heritage denies them the full prize, leaving a hollowed-out political settlement atop unresolved biological and ecological threats."
      },
      "characters": [
        {
          "name": "Anderson",
          "slug": "anderson",
          "aliases": [
            "Anderson-sama",
            "Mr. Lake",
            "yang guizi",
            "the foreign devil",
            "Lake"
          ],
          "role": "AgriGen operative running cover factory",
          "summary": "Obsessively analyzes ngaw fruit for seedbank clues; drinks with the Farang Phalanx; has his cover partially exposed by Carlyle; evaluates whether to join Carlyle's coup conspiracy."
        },
        {
          "name": "Emiko",
          "slug": "emiko",
          "aliases": [
            "the windup girl",
            "windup girl",
            "heechy-keechy",
            "New Person"
          ],
          "role": "Japanese-engineered New Person stranded in Bangkok",
          "summary": "Japanese-engineered New Person who arrives at Anderson's apartment bloodied after killing the Somdet Chaopraya, escapes over the balcony with uncanny speed, then hides in alleys reading fliers that brand her a monster."
        },
        {
          "name": "Hock Seng",
          "slug": "hock-seng",
          "aliases": [
            "Yellow Card Boss",
            "Tan Xiansheng",
            "Tan Hock Seng"
          ],
          "role": "Anderson's yellow card factory manager",
          "summary": "Chinese yellow card refugee and Anderson's factory manager; navigates coup violence, survives the megodont massacre, negotiates with the Dung Lord's enforcer, and is ultimately released by Kanya from the seedbank; torn between self-preservation and residual loyalty to Mai."
        },
        {
          "name": "Jaidee",
          "slug": "jaidee",
          "aliases": [
            "Tiger of Bangkok",
            "Khun Jaidee",
            "Captain Jaidee"
          ],
          "role": "Environment Ministry captain; idealist enforcer",
          "summary": "Dead captain appearing as a ghost to Kanya; reveals his family was killed in the fighting, forgives Kanya her betrayal, and counsels Buddhist acceptance during the surrender ceremony and seedbank scenes."
        },
        {
          "name": "Kanya",
          "slug": "kanya",
          "aliases": [
            "General"
          ],
          "role": "Environment Ministry captain, double agent",
          "summary": "Newly appointed head of the Environment Ministry; endures the formal surrender ceremony with Jaidee's ghost at her side, then leads AgriGen scientists into the seedbank before ordering monks to evacuate all genetic material."
        },
        {
          "name": "Yates",
          "slug": "yates",
          "aliases": [],
          "role": "Former factory operator (deceased/departed)",
          "summary": "Optimistic generipper scientist who built the SpringLife factory around algae-based kink-spring technology; now gone, factory treated as his folly"
        },
        {
          "name": "Lao Gu",
          "slug": "lao-gu",
          "aliases": [],
          "role": "Anderson's rickshaw man / Hock Seng's informant",
          "summary": "Chinese rickshaw driver who transports Anderson and reports his movements and activities to Hock Seng"
        },
        {
          "name": "Carlyle",
          "slug": "carlyle",
          "aliases": [],
          "role": "Trade broker and coup architect",
          "summary": "Arrives smiling after dirigible losses; reveals he holds Bangkok's pump equipment hostage in Kolkata; proposes alliance with Anderson; demonstrates he knows Anderson's AgriGen identity via Raleigh."
        },
        {
          "name": "Otto",
          "slug": "otto",
          "aliases": [],
          "role": "Minor farang businessman",
          "summary": "Drunk Western businessman celebrating windfall from white shirt reparation money; comic figure at the Trade Ministry ceremony"
        },
        {
          "name": "Lucy",
          "slug": "lucy",
          "aliases": [],
          "role": "Minor farang figure",
          "summary": "Otto's companion who manages his drunken departure from the Trade Ministry ceremony"
        },
        {
          "name": "Dog Fucker",
          "slug": "dog-fucker",
          "aliases": [
            "Sukrit Kamsing"
          ],
          "role": "Dung Lord's intermediary",
          "summary": "Brutal noseless enforcer for the Dung Lord; tests Hock Seng with threats and posturing before accepting the sealed letter and kink-spring gift to deliver to his patron."
        },
        {
          "name": "The Dung Lord",
          "slug": "the-dung-lord",
          "aliases": [],
          "role": "Yellow card crime lord",
          "summary": "Enormously fat power broker who controls the yellow card refugee tower; possesses resources incongruous with the calorie economy, suggesting black market dominance"
        },
        {
          "name": "Banyat",
          "slug": "banyat",
          "aliases": [],
          "role": "Factory QA head",
          "summary": "Head of quality assurance at SpringLife; guides Anderson through line inspection and rust contamination issue"
        },
        {
          "name": "Somdet Chaopraya",
          "slug": "somdet-chaopraya",
          "aliases": [
            "Queen's Protector",
            "Protector"
          ],
          "role": "Senior Thai nobleman",
          "summary": "Powerful Thai noble present at the barge negotiation who delivers the scorpion metaphor and signals quiet approval of the rejection; identified by Anderson as a potential lever."
        },
        {
          "name": "Akkarat",
          "slug": "akkarat",
          "aliases": [
            "Trade Minister"
          ],
          "role": "Political antagonist / Trade Ministry faction leader",
          "summary": "Trade Ministry leader who has successfully launched the coup; negotiates from a position of strength with Anderson and Carlyle, subtly renegotiating the AgriGen agreement while managing the city's fires and seawall threats."
        },
        {
          "name": "General Pracha",
          "slug": "general-pracha",
          "aliases": [
            "Chao Khun General Pracha"
          ],
          "role": "Environment Ministry commander",
          "summary": "Pracha oversees the murder scene investigation, suspects Akkarat of arranging the killing, and assigns Kanya to pull all records — possibly using her as a controlled asset."
        },
        {
          "name": "Gibbons",
          "slug": "gibbons",
          "aliases": [],
          "role": "Rogue generipper scientist",
          "summary": "A farang scientist AgriGen wants returned for intellectual property infringement; Anderson requests him as part of the deal with Akkarat."
        },
        {
          "name": "Mai",
          "slug": "mai",
          "aliases": [],
          "role": "Sick factory girl / witness",
          "summary": "Young Thai factory worker who discovers the sick workers, assists Hock Seng in concealing them, scouts for him during the crisis, and ultimately chooses to leave due to disease risk."
        },
        {
          "name": "Chaya",
          "slug": "chaya",
          "aliases": [],
          "role": "Jaidee's wife / absent figure",
          "summary": "Jaidee's wife whose kidnapping and presumed death Jaidee obsesses over from his monk's cell; her fate remains unconfirmed to him at this point."
        },
        {
          "name": "Somchai",
          "slug": "somchai",
          "aliases": [],
          "role": "Jaidee's companion / minor character",
          "summary": "Jaidee's loyal, hard-edged man who spots the Trade/Army observer at the anchor pads and reports it calmly."
        },
        {
          "name": "Laughing Chan",
          "slug": "laughing-chan",
          "aliases": [
            "Ah Chan"
          ],
          "role": "Yellow card doctor / helper",
          "summary": "Hock Seng's yellow card associate; dock labor organizer and smuggler who accompanies Hock Seng through coup violence, survives the megodont massacre, and later reveals the anchor pads have been destroyed."
        },
        {
          "name": "Ratana",
          "slug": "ratana",
          "aliases": [],
          "role": "Ministry laboratory scientist",
          "summary": "Pale underground researcher who identifies the engineered blister rust variant in mammalian lungs and urges Kanya to consult Gi Bu Sen."
        },
        {
          "name": "Raleigh",
          "slug": "raleigh",
          "aliases": [
            "Raleigh-san"
          ],
          "role": "Bar owner, Emiko's legal owner",
          "summary": "Aging Western bar owner who profits from Emiko's exploitation, denies her freedom, and receives her retaliatory blow to the throat."
        },
        {
          "name": "Kannika",
          "slug": "kannika",
          "aliases": [],
          "role": "Bar performer, antagonist",
          "summary": "Thai bar woman who orchestrates and narrates Emiko's gang assault through the night, embodying the cruelty of Emiko's captivity."
        },
        {
          "name": "Pai",
          "slug": "pai",
          "aliases": [],
          "role": "Environment Ministry officer",
          "summary": "Old-guard white shirt, known to be corruptly bought but trusted by Kanya; brings news of the third plague victim."
        },
        {
          "name": "Narong",
          "slug": "narong",
          "aliases": [],
          "role": "Trade Ministry operative",
          "summary": "Kanya's Trade-side handler who assigns her to investigate the killing, distributes whisper sheets blaming Pracha, and gives her a bribe and a three-hour ultimatum."
        },
        {
          "name": "Elizabeth Boudry",
          "slug": "elizabeth-boudry",
          "aliases": [
            "Boudry woman"
          ],
          "role": "actantial:receiver",
          "summary": "AgriGen seed scientist brought by Kanya into the seedbank; speaks a foreign language, translated by an elderly yellow card Chinese man; visibly excited by the genetic collection."
        },
        {
          "name": "Lucy Nguyen",
          "slug": "lucy-nguyen",
          "aliases": [],
          "role": "Farang expatriate",
          "summary": "Vocal member of the Farang Phalanx; blames Carlyle's political meddling for their losses; cynical about farang prospects in Bangkok."
        },
        {
          "name": "Quoile Napier",
          "slug": "quoile-napier",
          "aliases": [],
          "role": "Farang trader",
          "summary": "Lost 400,000 blue bills in saffron smuggled on Carlyle's dirigible; negotiating insurance coverage; provides the Phalanx's most dramatic loss figure."
        },
        {
          "name": "Sir Francis",
          "slug": "sir-francis",
          "aliases": [],
          "role": "Bar owner of Sir Francis Drake's",
          "summary": "Enigmatic Thai of apparent former high rank; demands cash payment from Anderson and Carlyle given their losses; delivers political commentary on Jaidee's rising fame threatening farang."
        },
        {
          "name": "Hagg",
          "slug": "hagg",
          "aliases": [],
          "role": "Grahamite priest",
          "summary": "Invoked into the Phalanx's conversation; opposes cross-border food trade on Niche Teachings grounds; departs after Anderson mocks his religion, but takes a fruit on the way out."
        },
        {
          "name": "Gendo-sama",
          "slug": "gendo-sama",
          "aliases": [],
          "role": "Emiko's former Japanese owner (referenced)",
          "summary": "Referenced in Emiko's memories as the figure who provided her permits and led her to Koh Angrit; represents her former protected life."
        }
      ],
      "frameworks_mapped": [
        "Protocol Fiction Mapping",
        "Actantial Model",
        "Todorov's Equilibrium",
        "The Freytag Pyramid",
        "Propp's Morphology",
        "Genette's Narrative",
        "The Monomyth",
        "Dan Harmon",
        "Save the Cat",
        "Kishōtenketsu",
        "The Three-Act Structure",
        "Lévi-Strauss's Binary Oppositions",
        "Cognitive Estrangement",
        "Bakhtin's Chronotope",
        "Aristotelian Poetics",
        "Jungian Archetypal Analysis",
        "Genette's Transtextuality"
      ],
      "score_reliability": {
        "state": "replicated-agree",
        "threshold": 0.2,
        "runs_total": 3,
        "versions_compared": [
          "2.5"
        ],
        "max_spread": 0.14,
        "contested": []
      }
    },
    {
      "slug": "kim_stanley_robinson_the_years_of_rice_and_salt",
      "title": "The Years of Rice and Salt",
      "author": "Kim Stanley Robinson",
      "year": 2002,
      "medium": "book",
      "genre_tags": [],
      "tropes": [],
      "quadrant_scores": {
        "time_linearity": 0.88,
        "pacing_velocity": 0.78,
        "threat_scale": 0.75,
        "protagonist_fate": 0.62,
        "conflict_style": 0.78,
        "price_type": 0.8
      },
      "provenance": {
        "analysis_run": "NTSMR-2.5-claude-sonnet-4-6-low",
        "analysis_body_sha256": "fffa735dbc95359eb458d5ce14d2dcedb21daf7da02855eaacae746621597f06",
        "synthesis": {
          "path": "nartopo-tools/artifacts/kim_stanley_robinson_the_years_of_rice_and_salt.md.ntsmr-2-5-claude-sonnet-4-6-low.synthesis.json",
          "sha256": "9e25b41106177ad5749c1ec70ce10acc5e2415474a0be4c4fe9e47431ab5eff9"
        },
        "report": {
          "path": "nartopo-tools/artifacts/kim_stanley_robinson_the_years_of_rice_and_salt.md.ntsmr-2-5-claude-sonnet-4-6-low.report.json",
          "sha256": "9be87088cca35b15735768eca10b1e53cde7e9ad2c42fbb3e47bef67f460b483"
        },
        "source": {
          "path": "Kim Stanley Robinson/The Years of Rice and Salt.txt",
          "sha256": "9b38fb8c19dc81602be86ef04dea3d47d1ec0a986e995307aea5e350807f0ada",
          "digest_observed_at": "2026-09-09",
          "digest_at_analysis_run": null,
          "edition": null,
          "edition_status": "unresolved"
        },
        "pipeline_revision_at_run": null,
        "verification": {
          "source": "unverified",
          "human_review": "unreviewed",
          "bibliography": "unverified"
        },
        "issues": [],
        "todorov_status": "recovered-from-synthesis",
        "work_identity": {
          "title": "The Years of Rice and Salt",
          "author": "Kim Stanley Robinson",
          "year": 2002
        }
      },
      "ntsmr": {
        "version": "2.5",
        "primary_run_label": "NTSMR-2.5-claude-sonnet-4-6-low",
        "runs": {
          "NTSMR-2.4-claude-sonnet-4-6-low": {
            "pipeline_version": "2.4",
            "backend": "claude",
            "model": "claude-sonnet-4-6",
            "scores": {
              "time_linearity": 0.82,
              "pacing_velocity": 0.72,
              "threat_scale": 0.72,
              "protagonist_fate": 0.55,
              "conflict_style": 0.7,
              "price_type": 0.68
            },
            "score_space": "site-v1",
            "reasoning_effort": "low"
          },
          "NTSMR-2.5-claude-sonnet-4-6-low": {
            "pipeline_version": "2.5",
            "backend": "claude",
            "model": "claude-sonnet-4-6",
            "scores": {
              "time_linearity": 0.88,
              "pacing_velocity": 0.78,
              "threat_scale": 0.75,
              "protagonist_fate": 0.62,
              "conflict_style": 0.78,
              "price_type": 0.8
            },
            "score_space": "site-v1",
            "reasoning_effort": "low"
          },
          "NTSMR-2.5-balanced-glm-5+deepseek-v3.2": {
            "pipeline_version": "2.5",
            "backend": "openrouter",
            "model": "balanced-routing",
            "scores": {
              "time_linearity": 0.82,
              "pacing_velocity": 0.72,
              "threat_scale": 0.82,
              "protagonist_fate": 0.62,
              "conflict_style": 0.68,
              "price_type": 0.58
            },
            "score_space": "site-v1",
            "score_only": true,
            "source_run_label": "NTSMR-2.5-claude-sonnet-4-6-low"
          }
        }
      },
      "todorov_stages": {
        "equilibrium": "Souls cycle through the Kali-yuga in recurring jati clusters, each life beginning in a local, workable order: Bold serves in Temur's army, Bistami practices Sufi devotion, Khalid and Bahram conduct experiments in Samarqand, Kang keeps her household in Qing China, Budur lives under household restriction in Nsara, and Bao teaches under valley oaks — each episode opens with a functional if constrained social world.",
        "disruption": "Each book's equilibrium is shattered by a force of historical violence or cosmic rupture: Temur orders Bold's execution after the plague-empty Magyar lands are reported; plague kills Khalid's family and destroys the compound; the Forbidden City burns; global war consumes Bai and Iwa in the trenches; Idelba dies and Nsara falls into hyperinflation and military coup; across all episodes, the forgetting-vial of the goddess Meng ensures souls return to life stripped of accumulated wisdom.",
        "recognition": "Characters repeatedly arrive at the recognition that disruption is not accidental but structural and cyclical: Bold explains the jati cosmology to Kyu in the bardo; Kang and Ibrahim recognize each other across lifetimes; Bai meditates on what the Chinese are truly fighting for; Iagogeh reads the Jade Record and reveals the mechanism of bardo forgetting; Bao reflects that history is tragedy for the individual but comedy for society across long time.",
        "repair": "Repair takes the form of knowledge-transmission and collective resistance rather than restoration of any prior order: the jati learns to refuse Meng's vial and retain partial memory; Fromwest warns the Hodenosaunee to arm themselves; Kirana delivers a revolutionary speech linking Islamic justice to women's liberation; Kung organizes cross-faction coalitions; Budur names Nsara as her only living relative and continues Idelba's scientific work; Bao cycles to his oak-tree class to share stories of how people go on.",
        "new_equilibrium": "No single restored order emerges; instead each book closes on a transformed, provisional stability that is itself the seed of the next disruption: Bold and Kyu's bardo dialogue establishes the jati logic that links all subsequent books; old Kang and Ibrahim sit in companionable silence having written a history of the world together; Budur achieves psychological independence in Nsara; Bao approaches each morning as a new life. The novel's final image — Kali joining Bao's class under the oak tree, her sceptical glance signalling she will not simply accept what she is told — embodies a new equilibrium that is open, recursive, and incomplete rather than closed."
      },
      "characters": [
        {
          "name": "Bold",
          "slug": "bold",
          "aliases": [
            "Bold Bardash"
          ],
          "role": "Helper / jati guide",
          "summary": "Small Mongol horseman, vessel of the Monkey spirit, former soldier under Temur; survives plague-lands, lightning, slavery, and the treasure fleet; later escapes with Kyu; guides Kyu in the bardo after both die."
        },
        {
          "name": "Kyu",
          "slug": "kyu",
          "aliases": [],
          "role": "Protagonist (bardo passage)",
          "summary": "Black eunuch navigating the bardo after death; receives instruction from Bold, fails to follow guidance, hides in a womb-grass, and re-enters the human realm with a resolve to do better."
        },
        {
          "name": "Psin",
          "slug": "psin",
          "aliases": [],
          "role": "supporting",
          "summary": "Senior Mongol officer who leads the scouting party and reports the plague-emptied lands to Temur; ordered killed alongside Bold."
        },
        {
          "name": "Temur",
          "slug": "temur",
          "aliases": [
            "Temur the Lame",
            "the Khan"
          ],
          "role": "opponent",
          "summary": "Ruler of a vast army; discovers his plans to conquer the west are pre-empted by plague; in fury orders Bold and Psin executed; struck down by lightning."
        },
        {
          "name": "Zeyk",
          "slug": "zeyk",
          "aliases": [],
          "role": "opponent",
          "summary": "The short Arab merchant who purchases Bold at the Alexandria slave market, intending to resell him for profit in Zanj."
        },
        {
          "name": "Zheng He",
          "slug": "zheng-he",
          "aliases": [],
          "role": "supporting",
          "summary": "Admiral of the Chinese treasure fleet; performs a ceremony to Tianfei during the storm and leads the crew's prayers; returns the fleet safely to Hangzhou."
        },
        {
          "name": "Shen",
          "slug": "shen",
          "aliases": [],
          "role": "supporting",
          "summary": "Hangzhou merchant who purchases Bold and Kyu at Phoenix Hill; owner of a lakeside restaurant; characterized as incompetent with finances and prone to kicking slaves."
        },
        {
          "name": "I-Li",
          "slug": "i-li",
          "aliases": [],
          "role": "supporting",
          "summary": "Shen's eldest wife who runs the restaurant kitchen with energy and intelligence; takes Bold as her errand companion on market trips; curious and outward-facing, with cosmetics she never uses."
        },
        {
          "name": "Kokila",
          "slug": "kokila",
          "aliases": [],
          "role": "Protagonist (Book Two)",
          "summary": "Indian girl born at midnight into a household of three daughters; suffers severe colic framed as dual-soul combat; later betrothed to Gopal of Dharwar at the Durga Puja festival."
        },
        {
          "name": "Zaneeta",
          "slug": "zaneeta",
          "aliases": [],
          "role": "Supporting",
          "summary": "Kokila's mother; struggles to comfort the colicky infant while managing the household and her husband's diminishing favour after three daughters."
        },
        {
          "name": "Rajit",
          "slug": "rajit",
          "aliases": [],
          "role": "Supporting",
          "summary": "Kokila's father; losing favour in his household after three daughters; arranges Kokila's betrothal to Gopal."
        },
        {
          "name": "Gopal",
          "slug": "gopal",
          "aliases": [],
          "role": "Supporting",
          "summary": "Third son of headman Shastri of Dharwar; thin-faced, intent-looking; betrothed to Kokila at the Durga Puja in a wordless exchange."
        },
        {
          "name": "Shastri",
          "slug": "shastri",
          "aliases": [],
          "role": "Opponent",
          "summary": "Headman of Dharwar and Gopal's father; unpopular for autocratic rule, exiling a blacksmith without calling the panchayat."
        },
        {
          "name": "Bihari",
          "slug": "bihari",
          "aliases": [],
          "role": "Supporting",
          "summary": "Kokila's companion who learns herbal medicine from the local dai; accompanies her on firewood-gathering expeditions."
        },
        {
          "name": "Kya",
          "slug": "kya",
          "aliases": [],
          "role": "Protagonist (interlude)",
          "summary": "A tigress who observes a human battle, feeds on the dead, then guides a wounded human survivor through the forest and away from his pursuers out of confounding curiosity rather than hunger."
        },
        {
          "name": "Bistami",
          "slug": "bistami",
          "aliases": [],
          "role": "Protagonist (Books 2–3 Sufi arc)",
          "summary": "Sufi mystic and qadi; survives house arrest under Akbar through a mystical illumination experience, travels west with Maghribi scholars, crosses to al-Andalus, and joins the Sultana Katima's Caravan of Fools as spiritual teacher."
        },
        {
          "name": "Akbar",
          "slug": "akbar",
          "aliases": [],
          "role": "Actantial opponent / sender",
          "summary": "Mughal emperor; accepts Bistami's tactical advice on Gujarat but then places him under house arrest; appears in Bistami's mystical vision with black eyes, denying their soul-bond."
        },
        {
          "name": "Raja Todor Mal",
          "slug": "raja-todor-mal",
          "aliases": [],
          "role": "Opponent",
          "summary": "Akbar's general; executes rebel mirzas at the riverside; regards Bistami with suspicion after Bistami turns away from the executions."
        },
        {
          "name": "Ibn Ezra",
          "slug": "ibn-ezra",
          "aliases": [],
          "role": "Helper / interlocutor",
          "summary": "Chief Khaldunian scholar among the Maghribi sufi travelers; guides Bistami westward, introduces him to convivencia history, and proposes naturalistic explanations for the plague."
        },
        {
          "name": "Zeya",
          "slug": "zeya",
          "aliases": [],
          "role": "Supporting",
          "summary": "Al-Andalusi resident at the ribat; argues for divine judgment as plague explanation but also hosts and reassures Bistami about the safety of al-Andalus."
        },
        {
          "name": "Sultana Katima",
          "slug": "sultana-katima",
          "aliases": [
            "the Sultana"
          ],
          "role": "Co-ruler, authority figure",
          "summary": "Wife of Sultan Mawji Darya; originally from al-Majriti; bare-headed, pale-eyed, short-sleeved; leads the Caravan of Fools; recognized by Bistami as the soul Akbar's vision told him to seek; recruits Bistami as the caravan's sufi teacher."
        },
        {
          "name": "Sultan Mawji Darya",
          "slug": "sultan-mawji-darya",
          "aliases": [],
          "role": "Supporting / sender",
          "summary": "Youngest son of the new caliph; handsome, gracious, devoted to the idea of convivencia; leads a diverse hegira north from al-Andalus into Firanja to found a new city."
        },
        {
          "name": "Kheim",
          "slug": "kheim",
          "aliases": [
            "Admiral Kheim"
          ],
          "role": "Admiral, POV character",
          "summary": "Annamese admiral commanding the Chinese fleet; pragmatic, occasionally brutal, capable of wonder; takes hostages on the American continent and later appears in the bardo."
        },
        {
          "name": "I-Chen",
          "slug": "i-chen",
          "aliases": [],
          "role": "Ship's doctor, linguist, scientist",
          "summary": "Kheim's intellectual complement; obsessed with longitude, collects Miwok vocabulary, counsels caution, and appears alongside Kheim in the bardo."
        },
        {
          "name": "Butterfly",
          "slug": "butterfly",
          "aliases": [
            "Tianfei"
          ],
          "role": "Indigenous child, talisman",
          "summary": "Six-year-old daughter of the Miwok headman; rapidly acquires Mandarin; venerated by sailors as the goddess Tianfei; defended by Kheim in the bardo court."
        },
        {
          "name": "Kali",
          "slug": "kali",
          "aliases": [],
          "role": "New student / closing figure",
          "summary": "Young Travancori woman, dark-skinned, thick-eyebrowed; joins Bao's class with sharp scepticism; the final named character in the novel."
        },
        {
          "name": "Bahram",
          "slug": "bahram",
          "aliases": [
            "Bahram al-Bokhara"
          ],
          "role": "Merchant intermediary and household head",
          "summary": "Acts as the human lens through which the reader observes Khalid and Iwang; acquires books and instruments, manages Nadir politically, suffers the plague deaths of his family, and reflects spiritually on all discoveries."
        },
        {
          "name": "Khalid",
          "slug": "khalid",
          "aliases": [
            "Old One-Hand"
          ],
          "role": "Natural philosopher and alchemist",
          "summary": "One-handed master of the compound who drives systematic experimentation—optics, void pumps, acoustics, microscopy—while under political pressure to produce military innovations for the Khan; dies inside the plague catastrophe."
        },
        {
          "name": "Iwang",
          "slug": "iwang",
          "aliases": [],
          "role": "Tibetan glassblower and mathematician",
          "summary": "Khalid's closest scientific collaborator; designs lenses, derives refraction laws, constructs the microscope; contemplates religious conversion; enters a distracted humming state as investigations deepen."
        },
        {
          "name": "Ali",
          "slug": "ali",
          "aliases": [
            "Mowlana"
          ],
          "role": "Sufi master",
          "summary": "Head of the sufi ribat in the Registan; counsels Bahram that love, not intellect, is the path to reach Khalid's inner consciousness."
        },
        {
          "name": "Esmerine",
          "slug": "esmerine",
          "aliases": [],
          "role": "Bahram's wife, Khalid's daughter",
          "summary": "Runs the household with strict authority; privately terrified of the Khan's instability; contracts plague and dies after nursing her children."
        },
        {
          "name": "Selim",
          "slug": "selim",
          "aliases": [
            "Sultan Selim the Third",
            "the Sultan"
          ],
          "role": "Ottoman Sultan Caliph",
          "summary": "Sultan Selim III; employs Ismail as chief doctor; participates personally in dissections; questions Ismail about Firanja during a visit to the seraglio."
        },
        {
          "name": "Nadir Devanbegi",
          "slug": "nadir-devanbegi",
          "aliases": [
            "effendi"
          ],
          "role": "Khan's treasurer and political overseer",
          "summary": "Powerful court official who monitors and pressures Khalid's compound for military deliverables; his own influence at court appears to be waning as the Manchurian threat approaches."
        },
        {
          "name": "Zahhar",
          "slug": "zahhar",
          "aliases": [],
          "role": "Senior madressa mathematician",
          "summary": "Senior mathematician at Sher Dor Madressa who witnesses Khalid's light experiments and engages in collegial philosophical dialogue."
        },
        {
          "name": "Dol",
          "slug": "dol",
          "aliases": [],
          "role": "Hindu interlocutor",
          "summary": "Hindu man with whom Bahram discusses Iwang's possible conversion; frames all gods as aspects of Brahman."
        },
        {
          "name": "Laila",
          "slug": "laila",
          "aliases": [],
          "role": "Bahram's daughter",
          "summary": "First in the compound to show signs of plague; her illness initiates the catastrophic sequence of deaths."
        },
        {
          "name": "Fromwest",
          "slug": "fromwest",
          "aliases": [],
          "role": "herald/prophet",
          "summary": "Foreign man of round flat face and scarred chest, inducted as Hodenosaunee chief; delivers an oratorical prophecy of colonial invasion and urges the league to arm and expand."
        },
        {
          "name": "Keeper of the Wampum",
          "slug": "keeper-of-the-wampum",
          "aliases": [
            "Keeper"
          ],
          "role": "authority/revolutionary",
          "summary": "Onondaga sachem who presides over the council; also a recurring bardo soul who attacks bureaucratic gods and resists forgetting."
        },
        {
          "name": "Iagogeh",
          "slug": "iagogeh",
          "aliases": [
            "the One Who Hears"
          ],
          "role": "helper/strategist",
          "summary": "Wife of Keeper of the Wampum; pragmatic and observant; in the bardo reads 'The Jade Record' and devises the plan to resist the potion of forgetting."
        },
        {
          "name": "Busho",
          "slug": "busho",
          "aliases": [],
          "role": "helper",
          "summary": "Jati member in the bardo; remembers past failed tactics; successfully fakes drinking Meng's forgetting potion."
        },
        {
          "name": "Ibrahim",
          "slug": "ibrahim",
          "aliases": [
            "Dr. Ibrahim"
          ],
          "role": "Husband, historian, imperial memorialist",
          "summary": "Kang's husband; writes theoretical essays on civilizational collision and historical progress; attempts to mediate between Qing and Muslim communities; author of 'Wealth and the Four Great Inequalities'; privately doubts his intellectual talents."
        },
        {
          "name": "Shih",
          "slug": "shih",
          "aliases": [],
          "role": "Youth in Kang's household",
          "summary": "Kang's youngest son; nervous and unhappy under her strict tutelage; secretly cuts off his own queue, triggering her breakdown."
        },
        {
          "name": "Pao",
          "slug": "pao",
          "aliases": [],
          "role": "Companion to Kang",
          "summary": "Household attendant or servant; finds the severed queue; tries to manage the household crisis and eventually notifies Kang's eldest son."
        },
        {
          "name": "Tecarnos",
          "slug": "tecarnos",
          "aliases": [
            "Dropping Oil"
          ],
          "role": "minor",
          "summary": "Iagogeh's niece; briefly comments on Fromwest before being told to tend the soup."
        },
        {
          "name": "Kang",
          "slug": "kang",
          "aliases": [
            "Kang Tongbi",
            "Widow Kang"
          ],
          "role": "POV character, scholar-poet",
          "summary": "Chinese woman, poet and anthologist; lives in Lanzhou with Ibrahim; observes Muslim influx with critical detachment; pregnant during the flood; writes 'Treatise on the History of Women of Hunan'; authors materialist theory of religion; final poem ends Book Six."
        },
        {
          "name": "Xinwu",
          "slug": "xinwu",
          "aliases": [],
          "role": "Member of Kang's household",
          "summary": "Present during the flood escape, helps push Kang up the ladder."
        },
        {
          "name": "Zunli",
          "slug": "zunli",
          "aliases": [],
          "role": "Member of Kang's household",
          "summary": "Present during the flood escape, helps push Kang up the ladder alongside Pao."
        },
        {
          "name": "Ismail",
          "slug": "ismail",
          "aliases": [
            "Dr. Ismail",
            "Ismail ibn Mani al-Dir"
          ],
          "role": "POV character, Ottoman physician",
          "summary": "Armenian-origin Ottoman doctor who served Sultan Selim III; renowned for anatomical work; arrives in Travancore; engages with Buddhist medical theory; meets the Kerala and Wasco at a garden party."
        },
        {
          "name": "Bhakta",
          "slug": "bhakta",
          "aliases": [
            "Abbess Bhakta"
          ],
          "role": "Buddhist abbess, host",
          "summary": "Abbess of the Travancori monastery; hosts Ismail; explains Chinese and Buddhist medical theory; introduces Ismail to the reincarnate girl-lama, the Kerala, and Wasco."
        },
        {
          "name": "Kerala",
          "slug": "kerala",
          "aliases": [
            "the Kerala"
          ],
          "role": "Military and political leader of Travancore",
          "summary": "Short, compact, handsome Travancori ruler; commands a highly disciplined army; explains Travancore's rise through Sikh alliance and Japanese shipbuilders; conquered Konstantiniyye; advocates pan-Indian confederation."
        },
        {
          "name": "Wasco",
          "slug": "wasco",
          "aliases": [],
          "role": "Envoy from Hodenosaunee League",
          "summary": "Indigenous man from Yingzhou (North America), representative of the Hodenosaunee League; speaks fluent Persian; describes Muslim colonial presence on east coast, Travancori arrivals, and his people's situation; appears physically striking and analytically sharp."
        },
        {
          "name": "Kiyoaki",
          "slug": "kiyoaki",
          "aliases": [],
          "role": "helper",
          "summary": "Japanese servant boy who retrieves silkworm eggs from a flooded valley, rescues Peng-ti and her baby, and is recruited by Gen as a message-runner for Japanese resistance against China."
        },
        {
          "name": "Peng-ti",
          "slug": "peng-ti",
          "aliases": [],
          "role": "helper",
          "summary": "Chinese woman with a baby whom Kiyoaki rescues from a flood-stranded island; she decides to stay in the city and offers to help Kiyoaki work against China."
        },
        {
          "name": "Hu Die",
          "slug": "hu-die",
          "aliases": [],
          "role": "other",
          "summary": "Peng-ti's infant daughter, rescued from the flooded island, adopted as a symbol of the new life in the city."
        },
        {
          "name": "Gen",
          "slug": "gen",
          "aliases": [],
          "role": "sender",
          "summary": "Man who recruits Kiyoaki into Japanese resistance work, warns him of potential secret war with China, and arranges his lodging at the chandlery."
        },
        {
          "name": "Bai",
          "slug": "bai",
          "aliases": [],
          "role": "subject",
          "summary": "Chinese soldier enduring decades of trench warfare in the Gansu Corridor; spiritually reflective, debates reincarnation and the meaning of the war with Iwa, and grieves Kuo's death."
        },
        {
          "name": "Iwa",
          "slug": "iwa",
          "aliases": [],
          "role": "helper",
          "summary": "Bai's companion soldier; brings news from the comm cave, performs funeral rites for Kuo, and debates the soul's survival after death with Bai near the Bodhi Tree."
        },
        {
          "name": "Kuo",
          "slug": "kuo",
          "aliases": [
            "Major Kuo"
          ],
          "role": "helper",
          "summary": "Senior soldier with caustic laughter who has kept Bai's spirits up through years of trench warfare; killed instantly when a Muslim supershell lands on him, leaving only his severed hand."
        },
        {
          "name": "Budur",
          "slug": "budur",
          "aliases": [],
          "role": "protagonist/scientist",
          "summary": "Young woman living under male household restriction in Turi; intellectually curious, chafes against harem life, and is deeply attentive to her aunt Idelba's scientific and personal situation."
        },
        {
          "name": "Idelba",
          "slug": "idelba",
          "aliases": [
            "Aunt Idelba"
          ],
          "role": "scientist/soul-cluster member",
          "summary": "Budur's aunt; a brilliant mathematician and physicist formerly working in Nsara who returned to Turi's harem after her husband's death; growing increasingly restless, she holds dangerous scientific knowledge about mass-energy equivalence."
        },
        {
          "name": "Yasmina",
          "slug": "yasmina",
          "aliases": [],
          "role": "other",
          "summary": "Budur's cousin; performs rooftop magic spells and craves male attention; participates in the secret rooftop expeditions."
        },
        {
          "name": "Kirana Fawwaz",
          "slug": "kirana-fawwaz",
          "aliases": [
            "Kirana",
            "Kira"
          ],
          "role": "Lecturer, intellectual, lover",
          "summary": "Fiercely analytical historian and lecturer in Nsara; delivers a blistering critique of Islamic civilizational failure; becomes Budur's mentor and lover; sceptical of religion and spiritualism."
        },
        {
          "name": "Naser Shah",
          "slug": "naser-shah",
          "aliases": [
            "Naser",
            "the old one-armed soldier"
          ],
          "role": "Interlocutor, veteran",
          "summary": "Iranian exile and war veteran who lost an arm; a moral voice in cafe debates, arguing for retaining Islamic compassion and mercy as a corrective to Chinese cruelty."
        },
        {
          "name": "Hasan",
          "slug": "hasan",
          "aliases": [
            "the one-eyed man",
            "eyepatch"
          ],
          "role": "Friend, salon figure",
          "summary": "Friend of Kirana's with an eyepatch; introduces Budur to Kirana's circle of singers and theatre people after the lecture."
        },
        {
          "name": "Ganagweh",
          "slug": "ganagweh",
          "aliases": [],
          "role": "Hodenosaunee acquaintance",
          "summary": "Hanea's daughter; high-spirited, confident young Hodenosaunee woman who walks Kirkwall with Budur while their mothers hold a diplomatic meeting."
        },
        {
          "name": "Hanea",
          "slug": "hanea",
          "aliases": [],
          "role": "Hodenosaunee diplomat",
          "summary": "Ganagweh's mother; acquaintance of Idelba involved in diplomatic relations between Hodenosaunee and Nsarene interests; attends Idelba's funeral."
        },
        {
          "name": "Madam Sururi",
          "slug": "madam-sururi",
          "aliases": [
            "the seer",
            "the fake guru"
          ],
          "role": "soul-cluster member",
          "summary": "A seer who holds a séance for followers, speaking about reincarnation and past-life bonds; businesslike and composed under Kirana's open scepticism."
        },
        {
          "name": "Tristan",
          "slug": "tristan",
          "aliases": [],
          "role": "Musician, cafe interlocutor",
          "summary": "Frankish oud player who reflects on the vanished Franks, concluding they are 'our jinns' — unknowable projective screens for any speculation."
        },
        {
          "name": "Piali",
          "slug": "piali",
          "aliases": [],
          "role": "Physicist, collaborator",
          "summary": "Small, self-absorbed physicist who was Idelba's research partner; unexpectedly deep in grief at her death; begins treating Budur as a near-equal after Idelba's passing."
        },
        {
          "name": "Bao",
          "slug": "bao",
          "aliases": [
            "Bao Xinhua"
          ],
          "role": "Teacher and narrative consciousness",
          "summary": "Young Beijing revolutionary who follows Kung into civil war, later becomes a diplomat in Burma, attends Zhu Isao's history seminars, and ends as an aged teacher reflecting on history's meaning."
        },
        {
          "name": "Kung",
          "slug": "kung",
          "aliases": [
            "Kung Jianguo"
          ],
          "role": "revolutionary leader/mentor",
          "summary": "Charismatic and imperturbable Beijing revolutionary, former sanwu street boy, who becomes a prominent military college leader and organizer of the civil war against warlords."
        },
        {
          "name": "Zhu Isao",
          "slug": "zhu-isao",
          "aliases": [
            "Zhu Tuanjie-kexue"
          ],
          "role": "revolutionary philosopher/historian",
          "summary": "Half-Japanese founder of the League of All Peoples, scholar of historiography and reincarnation chronicles, who delivers seminars on emplotment modes and unanswered historical questions."
        },
        {
          "name": "Shi Fandi",
          "slug": "shi-fandi",
          "aliases": [],
          "role": "antagonist/officer",
          "summary": "Revolutionary officer convicted of raping and killing a female prisoner; executed by Kung's order."
        },
        {
          "name": "Bao (aged)",
          "slug": "bao-aged",
          "aliases": [],
          "role": "narrator/teacher",
          "summary": "Elderly Bao as widower, garden-keeper, and teacher holding seminars under valley oaks, who summarizes the novel's historical and karmic vision to his students."
        },
        {
          "name": "Gao",
          "slug": "gao",
          "aliases": [],
          "role": "Domestic companion",
          "summary": "Bao's partner or housemate; present at the New Year egg-hunt and when Bao departs for class."
        },
        {
          "name": "Aozhani student (unnamed)",
          "slug": "aozhani-student-unnamed",
          "aliases": [
            "young woman"
          ],
          "role": "Interlocutor",
          "summary": "Young female student from Aozhani who persistently presses Bao on whether secular reframings of reincarnation preserve personal consciousness."
        }
      ],
      "frameworks_mapped": [
        "Protocol Fiction Mapping",
        "Actantial Model",
        "Todorov's Equilibrium",
        "The Freytag Pyramid",
        "Propp's Morphology",
        "Genette's Narrative",
        "The Monomyth",
        "Dan Harmon",
        "Save the Cat",
        "Kishōtenketsu",
        "The Three-Act Structure",
        "Lévi-Strauss's Binary Oppositions",
        "Cognitive Estrangement",
        "Bakhtin's Chronotope",
        "Aristotelian Poetics",
        "Jungian Archetypal Analysis",
        "Genette's Transtextuality"
      ],
      "score_reliability": {
        "state": "contested",
        "threshold": 0.2,
        "runs_total": 3,
        "versions_compared": [
          "2.5"
        ],
        "max_spread": 0.22,
        "contested": [
          {
            "axis": "price_type",
            "version": "2.5",
            "spread": 0.22,
            "low": {
              "label": "NTSMR-2.5-balanced-glm-5+deepseek-v3.2",
              "model": "balanced-routing",
              "effort": "?",
              "value": 0.58
            },
            "high": {
              "label": "NTSMR-2.5-claude-sonnet-4-6-low",
              "model": "claude-sonnet-4-6",
              "effort": "low",
              "value": 0.8
            }
          }
        ]
      }
    },
    {
      "slug": "michael_chabon_the_yiddish_policemen_s_union",
      "title": "The Yiddish Policemen's Union",
      "author": "Michael Chabon",
      "year": 2007,
      "medium": "book",
      "genre_tags": [
        "sf",
        "alternate history",
        "noir"
      ],
      "tropes": [],
      "quadrant_scores": {
        "time_linearity": 0.45,
        "pacing_velocity": 0.65,
        "threat_scale": 0.65,
        "protagonist_fate": 0.55,
        "conflict_style": 0.65,
        "price_type": 0.65
      },
      "provenance": {
        "analysis_run": "NTSMR-2.5-claude-sonnet-4-6-low",
        "analysis_body_sha256": "f40c36371f383625feeb7bbc451a199acc748115a2373943be20d1d272752cb5",
        "synthesis": {
          "path": "nartopo-tools/artifacts/michael_chabon_the_yiddish_policemen_s_union.md.ntsmr-2-5-claude-sonnet-4-6-low.synthesis.json",
          "sha256": "5a53835328f2dced8ae5cac33cf27eb284cef0aa0cb110d38f44671668bf3115"
        },
        "report": {
          "path": "nartopo-tools/artifacts/michael_chabon_the_yiddish_policemen_s_union.md.ntsmr-2-5-claude-sonnet-4-6-low.report.json",
          "sha256": "4d6f164307df6cf27b72872eda6c7c24567047582bff4be8dc77ace29901b40d"
        },
        "source": {
          "path": "Michael Chabon/The Yiddish Policemen's Union.txt",
          "sha256": "7e47154918a1468e21b73f47078d3570e30e912f347b51b8b73a2d10aa684da6",
          "digest_observed_at": "2026-09-09",
          "digest_at_analysis_run": null,
          "edition": null,
          "edition_status": "unresolved"
        },
        "pipeline_revision_at_run": null,
        "verification": {
          "source": "unverified",
          "human_review": "unreviewed",
          "bibliography": "unverified"
        },
        "issues": [],
        "todorov_status": "recovered-from-synthesis",
        "work_identity": {
          "title": "The Yiddish Policemen's Union",
          "author": "Michael Chabon",
          "year": 2007
        }
      },
      "ntsmr": {
        "version": "2.5",
        "primary_run_label": "NTSMR-2.5-claude-sonnet-4-6-low",
        "runs": {
          "NTSMR-2.3-claude-sonnet-4-6-low": {
            "pipeline_version": "2.3",
            "backend": "claude",
            "model": "claude-sonnet-4-6",
            "scores": {
              "time_linearity": 0.62,
              "pacing_velocity": 0.72,
              "threat_scale": 0.78,
              "protagonist_fate": 0.58,
              "conflict_style": 0.65,
              "price_type": 0.82
            },
            "score_space": "site-v1",
            "reasoning_effort": "low"
          },
          "NTSMR-2.4-claude-sonnet-4-6-low": {
            "pipeline_version": "2.4",
            "backend": "claude",
            "model": "claude-sonnet-4-6",
            "scores": {
              "time_linearity": 0.55,
              "pacing_velocity": 0.55,
              "threat_scale": 0.65,
              "protagonist_fate": 0.45,
              "conflict_style": 0.6,
              "price_type": 0.55
            },
            "score_space": "site-v1",
            "reasoning_effort": "low"
          },
          "NTSMR-2.5-claude-sonnet-4-6-low": {
            "pipeline_version": "2.5",
            "backend": "claude",
            "model": "claude-sonnet-4-6",
            "scores": {
              "time_linearity": 0.45,
              "pacing_velocity": 0.65,
              "threat_scale": 0.65,
              "protagonist_fate": 0.55,
              "conflict_style": 0.65,
              "price_type": 0.65
            },
            "score_space": "site-v1",
            "reasoning_effort": "low"
          },
          "NTSMR-2.5-balanced-glm-5+deepseek-v3.2": {
            "pipeline_version": "2.5",
            "backend": "openrouter",
            "model": "balanced-routing",
            "scores": {
              "time_linearity": 0.25,
              "pacing_velocity": 0.7,
              "threat_scale": 0.65,
              "protagonist_fate": 0.6,
              "conflict_style": 0.65,
              "price_type": 0.7
            },
            "score_space": "site-v1",
            "score_only": true,
            "source_run_label": "NTSMR-2.5-claude-sonnet-4-6-low"
          }
        }
      },
      "todorov_stages": {
        "equilibrium": "Landsman exists in a degraded but stable stasis: alcoholic, divorced, living in the Hotel Zamenhof, carrying open cases under a department indifferent to his dissolution — a man in suspension rather than crisis, his grief over Django and Bina calcified into routine.",
        "disruption": "The murder of the man in room 208 — later identified as Mendel Shpilman — breaks Landsman's inertia and is compounded by Bina's arrival as commanding inspector, her black-flagging of the Lasker case, and the institutional suppression of the investigation from above.",
        "recognition": "Landsman recognizes the full scope of the disruption when Zimbalist identifies the victim as Mendel Shpilman, revealing that the murder implicates the Verbover rebbe and a transnational messianic conspiracy backed by American government interests — far exceeding a routine homicide.",
        "repair": "Landsman pursues the investigation unofficially after losing his badge, follows leads through Batsheva Shpilman and Naomi's death, exposes the staged red heifer and the Beth Tikkun operation at Peril Strait, and ultimately brokers with Zimbalist — with Bina trading her procedural integrity for his reinstatement and committing to close the case.",
        "new_equilibrium": "Landsman is reinstated with his badge and gun; the conspiracy is exposed though not fully dismantled; the Verbover rebbe departs for Jerusalem while Batsheva remains; and Landsman discards his cigarettes as he and Bina descend together — a tentative, altered stability defined by partial justice, Reversion's imminence, and a fragile personal reconciliation."
      },
      "characters": [
        {
          "name": "Bina Gelbfish",
          "slug": "bina-gelbfish",
          "aliases": [
            "Inspector Gelbfish",
            "Bina",
            "Gelbfish"
          ],
          "role": "superior officer/antagonist-by-role",
          "summary": "Landsman's ex-wife and current commanding inspector; enters the cafeteria; receives Landsman's briefing on Mendel Shpilman; warns she may lift his shield; embodies the collapsed intersection of Landsman's professional and personal life."
        },
        {
          "name": "Tenenboym",
          "slug": "tenenboym",
          "aliases": [],
          "role": "witness/minor",
          "summary": "Night manager of the Hotel Zamenhof; former Marine; informs Landsman about the service door alarm and lack of visitors to Lasker."
        },
        {
          "name": "Elijah",
          "slug": "elijah",
          "aliases": [
            "Elijah the Prophet"
          ],
          "role": "trickster/minor",
          "summary": "Elderly vagrant who appears outside the Zamenhof; Dutch-accented Yiddish; recurring figure with prophetic aura; asks after the hotel."
        },
        {
          "name": "Meyer Landsman",
          "slug": "meyer-landsman",
          "aliases": [
            "Landsman",
            "Meyer",
            "Naomi",
            "the Landsman"
          ],
          "role": "actantial helper (deceased)",
          "summary": "Homicide detective, suspended but continuing investigation; escapes captivity, is arrested, diagnosed with alcoholic withdrawal, and pieces together the American-backed messianic conspiracy before being shut down by federal authority."
        },
        {
          "name": "Hertz Shemets",
          "slug": "hertz-shemets",
          "aliases": [
            "Uncle Hertz",
            "Johnny Bear",
            "John"
          ],
          "role": "Antagonist-helper / father figure",
          "summary": "Retired intelligence operative; lives at the Massacre Spot; implicitly confesses involvement in the St. Cyril riots and the death of Berko's mother; shoots himself at the end of the confrontation."
        },
        {
          "name": "Laurie Jo Bear",
          "slug": "laurie-jo-bear",
          "aliases": [],
          "role": "backstory figure",
          "summary": "Tlingit woman of Hoonah; Berko's mother; killed in the Synagogue Riots when a truck of rioters struck her grocery store."
        },
        {
          "name": "Russian chess player",
          "slug": "russian-chess-player",
          "aliases": [],
          "role": "minor witness",
          "summary": "Skeletal man with pointed black beard at the Einstein Chess Club; reacts to the name Emanuel Lasker with sardonic recognition."
        },
        {
          "name": "Velvel",
          "slug": "velvel",
          "aliases": [],
          "role": "minor witness",
          "summary": "Young man with pudding cheeks and rimless glasses at the Einstein Chess Club; debates the complexity of Lasker's chess games."
        },
        {
          "name": "Vassily Shitnovitzer",
          "slug": "vassily-shitnovitzer",
          "aliases": [],
          "role": "minor antagonist / witness",
          "summary": "Former heroin dealer, Russian immigrant, ex-convict; Landsman arrested him a dozen years ago; now retired from crime; reveals Frank was too dangerous to sell to."
        },
        {
          "name": "Saltiel Lapidus",
          "slug": "saltiel-lapidus",
          "aliases": [],
          "role": "witness",
          "summary": "Bobover Hasid; shy, reluctant witness at the Einstein Chess Club who knew the dead man Frank."
        },
        {
          "name": "Fishkin",
          "slug": "fishkin",
          "aliases": [],
          "role": "witness",
          "summary": "Lubavitcher Hasid; more forthcoming than Lapidus; admits playing chess with Frank and considering him highly talented."
        },
        {
          "name": "Alter Litvak",
          "slug": "alter-litvak",
          "aliases": [
            "Reb Litvak"
          ],
          "role": "actantial:opponent/sender",
          "summary": "Former intelligence operative, mute; commands the Peril Strait operation; grieves his dead wife Sora; physically broken but resolute; realizes Shpilman's talent cannot be controlled, only served."
        },
        {
          "name": "Dovid Sussman",
          "slug": "dovid-sussman",
          "aliases": [],
          "role": "minor antagonist",
          "summary": "Berko's Verbover cousin; confronts Landsman outside the storefronts on Verbov Island; recognized by Berko, defusing the standoff."
        },
        {
          "name": "Professor Zimbalist",
          "slug": "professor-zimbalist",
          "aliases": [
            "Itzik Zimbalist",
            "the boundary maven"
          ],
          "role": "actantial:opponent",
          "summary": "Boundary maven of Verbov Island; found in possession of tunnel rope; accused by Bina of concealing Litvak; negotiates a deal to withhold information until killer is caught; planning to disassemble the rebbe's house for Jerusalem."
        },
        {
          "name": "Baronshteyn",
          "slug": "baronshteyn",
          "aliases": [
            "Aryeh"
          ],
          "role": "opponent/antagonist",
          "summary": "Rabbi and conspirator; present at the facility in the Indianer-Lands; interrogates Landsman and is identified as Batsheva's son-in-law who relayed false information about Mendel's death."
        },
        {
          "name": "Dr. Buchbinder",
          "slug": "dr-buchbinder",
          "aliases": [],
          "role": "minor figure / conspiracy fringe",
          "summary": "Dentist; closing his practice in Sitka to move to Jerusalem; believes the Messiah is there; encountered by Landsman at the Polar-Shtern cafeteria."
        },
        {
          "name": "Mendel Shpilman",
          "slug": "mendel-shpilman",
          "aliases": [
            "Mrs. Shpilman",
            "Frank",
            "Emanuel Lasker",
            "Mendele",
            "Shpilman"
          ],
          "role": "actantial sender/witness",
          "summary": "Murder victim; only son of the Verbover rebbe; IQ 170; chess prodigy who beat champion Gaystik at age 12; scholar, multilingual, playful; believed by some to be the Tzaddik Ha-Dor; later a heroin addict."
        },
        {
          "name": "Benito Taganes",
          "slug": "benito-taganes",
          "aliases": [
            "Benny",
            "Reb Taganes",
            "donut king"
          ],
          "role": "informant/helper",
          "summary": "Filipino owner of Mabuhay Donuts, former flyweight boxing champion, operates as Landsman's informant out of gratitude for a past favor involving his lover Olivia."
        },
        {
          "name": "Olivia Lagdameo",
          "slug": "olivia-lagdameo",
          "aliases": [
            "Olivia"
          ],
          "role": "minor character",
          "summary": "Benito's transgender lover, currently ill and dying in chapters; Landsman once protected her, binding Benito to him."
        },
        {
          "name": "Ester-Malke",
          "slug": "ester-malke",
          "aliases": [],
          "role": "helper/supporting",
          "summary": "Berko's wife; observes Bina and Landsman leaving together with suspicion; catalogs the chaos of the world's riots and warns she cannot handle their possible reconciliation on top of everything else."
        },
        {
          "name": "Shprintzl Rudashevsky",
          "slug": "shprintzl-rudashevsky",
          "aliases": [
            "Shprintzeleh"
          ],
          "role": "bodyguard/helper",
          "summary": "Female Verbover enforcer and Batsheva's bodyguard; communicates via concealed microphone with the security convoy."
        },
        {
          "name": "Kitka",
          "slug": "kitka",
          "aliases": [],
          "role": "minor helper",
          "summary": "Local pilot who reluctantly reveals rumors of a Jewish rehabilitation ranch in the Indianer-Lands at Peril Strait."
        },
        {
          "name": "Spiro",
          "slug": "spiro",
          "aliases": [],
          "role": "helper",
          "summary": "Airport official who reviews Naomi's flight records with Landsman and discovers her final flight plan has been deleted."
        },
        {
          "name": "Fligler",
          "slug": "fligler",
          "aliases": [],
          "role": "opponent/enforcer",
          "summary": "Man in tweed suit at the facility; disarms Landsman with a sleight-of-hand trick and holds a knife to his throat."
        },
        {
          "name": "Roboy",
          "slug": "roboy",
          "aliases": [
            "Dr. Roboy"
          ],
          "role": "Antagonist-helper / true believer",
          "summary": "American conspiracy partner; a chess-playing believer who is strategically unfocused; debates Litvak on faith vs. pragmatism while awaiting the arrival of the Messiah candidate."
        },
        {
          "name": "Willie Dick",
          "slug": "willie-dick",
          "aliases": [],
          "role": "Helper / Tlingit law enforcement",
          "summary": "Tlingit inspector who arrests Landsman but assists the investigation; confirms the Tlingit Council's complicity in exchange for the District under Native sovereignty."
        },
        {
          "name": "Spade",
          "slug": "spade",
          "aliases": [],
          "role": "Opponent / federal overseer",
          "summary": "Transition team official who arrives to shut down Bina's investigation, identifying himself as a 'shomer'; not personally involved but acting as federal enforcer."
        },
        {
          "name": "Dr. Rau",
          "slug": "dr-rau",
          "aliases": [],
          "role": "Minor",
          "summary": "Indian hospital doctor from Madras who examines Landsman and diagnoses alcoholic withdrawal with a cold, interrogator-like manner."
        },
        {
          "name": "Micky Vayner",
          "slug": "micky-vayner",
          "aliases": [],
          "role": "Minor",
          "summary": "Young operative at Peril Strait who reminds Litvak of the approaching twilight."
        },
        {
          "name": "The Verbover Rebbe",
          "slug": "the-verbover-rebbe",
          "aliases": [],
          "role": "actantial:opponent",
          "summary": "Departs Verbov Island for Jerusalem without looking back; folded into the backseat by Rudashevsky bodyguards with his luggage."
        }
      ],
      "frameworks_mapped": [
        "Protocol Fiction Mapping",
        "Actantial Model",
        "Todorov's Equilibrium",
        "The Freytag Pyramid",
        "Propp's Morphology",
        "Genette's Narrative",
        "The Monomyth",
        "Dan Harmon",
        "Save the Cat",
        "Kishotenketsu",
        "The Three-Act Structure",
        "Levi-Strauss's Binary Oppositions",
        "Cognitive Estrangement",
        "Bakhtin's Chronotope",
        "Aristotelian Poetics",
        "Jungian Archetypal Analysis",
        "Genette's Transtextuality"
      ],
      "score_reliability": {
        "state": "contested",
        "threshold": 0.2,
        "runs_total": 4,
        "versions_compared": [
          "2.5"
        ],
        "max_spread": 0.2,
        "contested": [
          {
            "axis": "time_linearity",
            "version": "2.5",
            "spread": 0.2,
            "low": {
              "label": "NTSMR-2.5-balanced-glm-5+deepseek-v3.2",
              "model": "balanced-routing",
              "effort": "?",
              "value": 0.25
            },
            "high": {
              "label": "NTSMR-2.5-claude-sonnet-4-6-low",
              "model": "claude-sonnet-4-6",
              "effort": "low",
              "value": 0.45
            }
          }
        ]
      }
    },
    {
      "slug": "jorge_luis_borges_theme_of_the_traitor_and_the_hero",
      "title": "Theme of the Traitor and the Hero",
      "author": "Jorge Luis Borges",
      "year": 1944,
      "medium": "short_story",
      "genre_tags": [],
      "tropes": [],
      "quadrant_scores": {
        "time_linearity": 0.85,
        "pacing_velocity": 0.8,
        "threat_scale": 0.55,
        "protagonist_fate": 0.7,
        "conflict_style": 0.88,
        "price_type": 0.82
      },
      "provenance": {
        "analysis_run": "NTSMR-2.5-claude-sonnet-4-6-low",
        "analysis_body_sha256": "bb10c7239917be887c2958891b802497dec651186b99298819e8f3fd0b494987",
        "synthesis": {
          "path": "nartopo-tools/artifacts/jorge_luis_borges_theme_of_the_traitor_and_the_hero.md.ntsmr-2-5-claude-sonnet-4-6-low.synthesis.json",
          "sha256": "1ecf4ad011c1d4f31a4a1624a49ddda81b8d59b16cb9119ddb749f196e642082"
        },
        "report": {
          "path": "nartopo-tools/artifacts/jorge_luis_borges_theme_of_the_traitor_and_the_hero.md.ntsmr-2-5-claude-sonnet-4-6-low.report.json",
          "sha256": "107c61ec31de43040279c2f20ed56aeff9eee9ce7c2dcff8022a37f784d1a202"
        },
        "source": {
          "path": "Jorge Luis Borges/Theme of the Traitor and the Hero.txt",
          "sha256": "14f07b553dee96bc67bef0560f96990afcd391612f3cde9485566cd007f62c92",
          "digest_observed_at": "2026-09-09",
          "digest_at_analysis_run": null,
          "edition": null,
          "edition_status": "unresolved"
        },
        "pipeline_revision_at_run": null,
        "verification": {
          "source": "unverified",
          "human_review": "unreviewed",
          "bibliography": "unverified"
        },
        "issues": [],
        "todorov_status": "recovered-from-synthesis",
        "work_identity": {
          "title": "Theme of the Traitor and the Hero",
          "author": "Jorge Luis Borges",
          "year": 1944
        }
      },
      "ntsmr": {
        "version": "2.5",
        "primary_run_label": "NTSMR-2.5-claude-sonnet-4-6-low",
        "runs": {
          "NTSMR-2.3-gemini-3.1-pro-preview": {
            "pipeline_version": "2.3",
            "backend": "gemini",
            "model": "gemini-3.1-pro-preview",
            "scores": {
              "time_linearity": 0.9,
              "pacing_velocity": 0.95,
              "threat_scale": 0.8,
              "protagonist_fate": 0.95,
              "conflict_style": 0.9,
              "price_type": 0.95
            },
            "score_space": "site-v1"
          },
          "NTSMR-2.3-claude-sonnet-4-6-low": {
            "pipeline_version": "2.3",
            "backend": "claude",
            "model": "claude-sonnet-4-6",
            "scores": {
              "time_linearity": 0.85,
              "pacing_velocity": 0.82,
              "threat_scale": 0.72,
              "protagonist_fate": 0.88,
              "conflict_style": 0.87,
              "price_type": 0.91
            },
            "score_space": "site-v1",
            "reasoning_effort": "low"
          },
          "NTSMR-2.4-claude-sonnet-4-6-low": {
            "pipeline_version": "2.4",
            "backend": "claude",
            "model": "claude-sonnet-4-6",
            "scores": {
              "time_linearity": 0.75,
              "pacing_velocity": 0.65,
              "threat_scale": 0.55,
              "protagonist_fate": 0.55,
              "conflict_style": 0.8,
              "price_type": 0.75
            },
            "score_space": "site-v1",
            "reasoning_effort": "low"
          },
          "NTSMR-2.5-claude-sonnet-4-6-low": {
            "pipeline_version": "2.5",
            "backend": "claude",
            "model": "claude-sonnet-4-6",
            "scores": {
              "time_linearity": 0.85,
              "pacing_velocity": 0.8,
              "threat_scale": 0.55,
              "protagonist_fate": 0.7,
              "conflict_style": 0.88,
              "price_type": 0.82
            },
            "score_space": "site-v1",
            "reasoning_effort": "low"
          },
          "NTSMR-2.5-balanced-glm-5+deepseek-v3.2": {
            "pipeline_version": "2.5",
            "backend": "openrouter",
            "model": "balanced-routing",
            "scores": {
              "time_linearity": 0.85,
              "pacing_velocity": 0.8,
              "threat_scale": 0.4,
              "protagonist_fate": 0.75,
              "conflict_style": 0.85,
              "price_type": 0.8
            },
            "score_space": "site-v1",
            "score_only": true,
            "source_run_label": "NTSMR-2.5-claude-sonnet-4-6-low"
          }
        }
      },
      "todorov_stages": {
        "equilibrium": "Kilpatrick exists in collective Irish memory as an unambiguous martyr-hero whose death galvanized the nationalist cause; Ryan inherits this settled historical narrative as his biographical subject, and the circumstances of Kilpatrick's death, though unsolved, are not actively questioned.",
        "disruption": "Ryan notices that details of Kilpatrick's death cyclically mirror Julius Caesar's assassination — unread warning letters, prophetic dreams of a tower — and then discovers that words spoken to Kilpatrick were pre-figured verbatim in Shakespeare's Macbeth, shattering the assumption that the historical record is what it appears to be.",
        "recognition": "Ryan deciphers the full enigma: Kilpatrick was himself the traitor within the revolutionary inner circle; Nolan proved his guilt, the assembled chiefs condemned their leader, and Kilpatrick signed his own death sentence. Ryan further realizes that Nolan planted the Shakespearean passages deliberately so that a future investigator would uncover the truth — and that Ryan himself is a character inside Nolan's long-range theatrical plot.",
        "repair": "Ryan undergoes long and stubborn deliberation about what to do with the discovered truth, ultimately choosing to suppress it entirely rather than expose Kilpatrick's betrayal and risk undoing the martyrdom that served the cause.",
        "new_equilibrium": "Ryan publishes a book glorifying Kilpatrick, reinstating the heroic myth in the public record. The narrator observes that this act of concealment may itself have been foreseen by Nolan, collapsing the distinction between Ryan's free choice and Nolan's script and leaving the new equilibrium indistinguishable from a continuation of the original conspiracy."
      },
      "characters": [
        {
          "name": "The Narrator",
          "slug": "the-narrator",
          "aliases": [],
          "role": "Author",
          "summary": "The individual conceptualizing and outlining the story on January 3, 1944, influenced by Chesterton and Leibniz."
        },
        {
          "name": "Ryan",
          "slug": "ryan",
          "aliases": [],
          "role": "Biographer / Investigator",
          "summary": "The great-grandson of Fergus Kilpatrick who investigates the enigmatic circumstances of his ancestor's murder while writing his biography."
        },
        {
          "name": "Fergus Kilpatrick",
          "slug": "fergus-kilpatrick",
          "aliases": [
            "the traitor-hero",
            "the condemned man",
            "the protagonist"
          ],
          "role": "Leader of conspirators / Traitor",
          "summary": "An idolized Irish revolutionary leader who betrays his cause, is condemned to death, and agrees to die in a staged assassination to redeem himself."
        },
        {
          "name": "James Alexander Nolan",
          "slug": "james-alexander-nolan",
          "aliases": [
            "James Nolan"
          ],
          "role": "Oldest comrade / Choreographer",
          "summary": "Kilpatrick's oldest comrade who discovers Kilpatrick's treason and orchestrates his execution as a city-wide performance plagiarized from Shakespeare."
        }
      ],
      "frameworks_mapped": [
        "Protocol Fiction Mapping",
        "Actantial Model",
        "Todorov's Equilibrium",
        "The Freytag Pyramid",
        "Propp's Morphology",
        "Genette's Narrative",
        "The Monomyth",
        "Dan Harmon",
        "Save the Cat",
        "Kishōtenketsu",
        "The Three-Act Structure",
        "Lévi-Strauss's Binary Oppositions",
        "Cognitive Estrangement",
        "Bakhtin's Chronotope",
        "Aristotelian Poetics",
        "Jungian Archetypal Analysis",
        "Genette's Transtextuality"
      ],
      "score_reliability": {
        "state": "replicated-agree",
        "threshold": 0.2,
        "runs_total": 5,
        "versions_compared": [
          "2.5"
        ],
        "max_spread": 0.15,
        "contested": []
      }
    },
    {
      "slug": "jorge_luis_borges_three_versions_of_judas",
      "title": "Three Versions of Judas",
      "author": "Jorge Luis Borges",
      "year": 1944,
      "medium": "short_story",
      "genre_tags": [],
      "tropes": [],
      "quadrant_scores": {
        "time_linearity": 0.25,
        "pacing_velocity": 0.8,
        "threat_scale": 0.7,
        "protagonist_fate": 0.9,
        "conflict_style": 0.88,
        "price_type": 0.88
      },
      "provenance": {
        "analysis_run": "NTSMR-2.5-claude-sonnet-4-6-low",
        "analysis_body_sha256": "55f63a17aa076fa2b0cd78cb79afcba4012efcae14cb556816a3d70e6a703cc5",
        "synthesis": {
          "path": "nartopo-tools/artifacts/jorge_luis_borges_three_versions_of_judas.md.ntsmr-2-5-claude-sonnet-4-6-low.synthesis.json",
          "sha256": "d6ed800313b7ed6649d3aeb514fb0ba308dfad0c375134d6f7e5538ffe305338"
        },
        "report": {
          "path": "nartopo-tools/artifacts/jorge_luis_borges_three_versions_of_judas.md.ntsmr-2-5-claude-sonnet-4-6-low.report.json",
          "sha256": "10d882d3a093d0cabff8bc5ff1c1fdedc76c6a80d29693a5513945d28f7ee568"
        },
        "source": {
          "path": "Jorge Luis Borges/Three Versions of Judas.txt",
          "sha256": "8dd424907c00f3e6dd3ff16f01975f11c36a965fd8f3b3a2e57b06bc98d82852",
          "digest_observed_at": "2026-09-09",
          "digest_at_analysis_run": null,
          "edition": null,
          "edition_status": "unresolved"
        },
        "pipeline_revision_at_run": null,
        "verification": {
          "source": "unverified",
          "human_review": "unreviewed",
          "bibliography": "unverified"
        },
        "issues": [],
        "todorov_status": "recovered-from-synthesis",
        "work_identity": {
          "title": "Three Versions of Judas",
          "author": "Jorge Luis Borges",
          "year": 1944
        }
      },
      "ntsmr": {
        "version": "2.5",
        "primary_run_label": "NTSMR-2.5-claude-sonnet-4-6-low",
        "runs": {
          "NTSMR-2.3-gemini-3.1-pro-preview": {
            "pipeline_version": "2.3",
            "backend": "gemini",
            "model": "gemini-3.1-pro-preview",
            "scores": {
              "time_linearity": 0.2,
              "pacing_velocity": 0.95,
              "threat_scale": 0.85,
              "protagonist_fate": 0.9,
              "conflict_style": 0.9,
              "price_type": 1
            },
            "score_space": "site-v1"
          },
          "NTSMR-2.3-claude-sonnet-4-6-low": {
            "pipeline_version": "2.3",
            "backend": "claude",
            "model": "claude-sonnet-4-6",
            "scores": {
              "time_linearity": 0.15,
              "pacing_velocity": 0.9,
              "threat_scale": 0.6,
              "protagonist_fate": 0.85,
              "conflict_style": 0.8,
              "price_type": 0.95
            },
            "score_space": "site-v1",
            "reasoning_effort": "low"
          },
          "NTSMR-2.4-claude-sonnet-4-6-low": {
            "pipeline_version": "2.4",
            "backend": "claude",
            "model": "claude-sonnet-4-6",
            "scores": {
              "time_linearity": 0.18,
              "pacing_velocity": 0.75,
              "threat_scale": 0.72,
              "protagonist_fate": 0.88,
              "conflict_style": 0.82,
              "price_type": 0.78
            },
            "score_space": "site-v1",
            "reasoning_effort": "low"
          },
          "NTSMR-2.5-claude-sonnet-4-6-low": {
            "pipeline_version": "2.5",
            "backend": "claude",
            "model": "claude-sonnet-4-6",
            "scores": {
              "time_linearity": 0.25,
              "pacing_velocity": 0.8,
              "threat_scale": 0.7,
              "protagonist_fate": 0.9,
              "conflict_style": 0.88,
              "price_type": 0.88
            },
            "score_space": "site-v1",
            "reasoning_effort": "low"
          },
          "NTSMR-2.5-balanced-glm-5+deepseek-v3.2": {
            "pipeline_version": "2.5",
            "backend": "openrouter",
            "model": "balanced-routing",
            "scores": {
              "time_linearity": 0.25,
              "pacing_velocity": 0.8,
              "threat_scale": 0.75,
              "protagonist_fate": 0.85,
              "conflict_style": 0.85,
              "price_type": 0.85
            },
            "score_space": "site-v1",
            "score_only": true,
            "source_run_label": "NTSMR-2.5-claude-sonnet-4-6-low"
          }
        }
      },
      "todorov_stages": {
        "equilibrium": "Nils Runeberg exists as a devout member of the National Evangelical Union at Lund, a respected theologian whose intellectual passion finds sanctioned expression within the institutional church — a man whose heterodox temperament is contained by 20th-century academic convention rather than ancient heresy.",
        "disruption": "The publication of Kristus och Judas in 1904 initiates the disruption: Runeberg's argument that Judas's betrayal was cosmically necessary and predetermined — that Judas mirrored Christ through a symmetrical act of self-annihilation — places him in direct conflict with orthodox doctrine, drawing attacks from Engström, Borelius, and the Bishop of Lund on grounds of hypostatic union, Docetism, and scriptural contradiction.",
        "recognition": "Runeberg recognizes the full weight of his theological position through the revised moral argument, reframing Judas as a practitioner of inverted asceticism who mortified the spirit rather than the flesh — a recognition that his heterodoxy is not incidental but constitutive of his thought, deepening rather than retreating from the original disruption.",
        "repair": "The publication of Den hemlige Walsaren in 1909 represents Runeberg's attempt to resolve the theological problem through escalation: arguing that God, to be fully incarnate, must have chosen the most reprobate life available and was therefore Judas rather than Jesus. When the book is met with universal indifference, Runeberg interprets this as miraculous divine confirmation, identifying himself with a lineage of figures destroyed by proximity to divine truth — Moses, Isaiah, Saul — and wandering the streets of Malmö in spiritual crisis.",
        "new_equilibrium": "Runeberg dies of a ruptured aneurysm in 1912. The narrator closes with a heresiological epitaph: he added to the concept of the Son the complexities of misery and evil. The new equilibrium is not resolution but absorption — Runeberg is assimilated into the scholarly record as a minor heresiarch, his terrible secret suppressed by the same divine indifference that confirmed it."
      },
      "characters": [
        {
          "name": "Nils Runeberg",
          "slug": "nils-runeberg",
          "aliases": [],
          "role": "Theologian and Protagonist",
          "summary": "A deeply religious Swedish scholar and member of the National Evangelical Union who published radical theories about Judas being the true incarnation of God, ultimately descending into madness and dying in 1912."
        },
        {
          "name": "Judas Iscariot",
          "slug": "judas-iscariot",
          "aliases": [
            "Judas"
          ],
          "role": "Biblical Apostle",
          "summary": "The subject of Runeberg's obsession, posited first as a necessary cosmic reflection of Christ, then as an ultimate ascetic, and finally as God incarnate who chose the most abject existence."
        },
        {
          "name": "Jesus Christ",
          "slug": "jesus-christ",
          "aliases": [
            "The Word",
            "The Redeemer",
            "Christ",
            "Jesus"
          ],
          "role": "Biblical Figure",
          "summary": "The savior figure whose sacrifice Runeberg initially equates to Judas's infamy, before ultimately concluding that his honorable life bypassed the true divine sacrifice of utter reprobation."
        },
        {
          "name": "Thomas de Quincey",
          "slug": "thomas-de-quincey",
          "aliases": [
            "de Quincey"
          ],
          "role": "Precursor Writer",
          "summary": "A writer who speculated that Judas delivered Christ to force an uprising against Rome, cited in an epigraph by Runeberg."
        },
        {
          "name": "Robertson",
          "slug": "robertson",
          "aliases": [],
          "role": "Scholar",
          "summary": "A thinker who noted the logical superfluity of betraying a public teacher like Jesus, an observation that inspired Runeberg's initial premise."
        },
        {
          "name": "Lars Peter Engström",
          "slug": "lars-peter-engstrm",
          "aliases": [],
          "role": "Theologian",
          "summary": "A critic who refuted Runeberg by accusing him of ignoring the hypostatic union."
        },
        {
          "name": "Axel Borelius",
          "slug": "axel-borelius",
          "aliases": [],
          "role": "Theologian",
          "summary": "A critic who accused Runeberg of rekindling the Docetic heresy and sarcastically mocked Runeberg's theories on Judas's renunciation."
        },
        {
          "name": "The steely bishop of Lund",
          "slug": "the-steely-bishop-of-lund",
          "aliases": [
            "bishop of Lund"
          ],
          "role": "Clergyman",
          "summary": "A religious figure who accused Runeberg of contradicting the Gospel of Luke."
        },
        {
          "name": "Erik Erfjord",
          "slug": "erik-erfjord",
          "aliases": [
            "Erfjord"
          ],
          "role": "Danish Hebrew scholar",
          "summary": "Wrote a lukewarm, enigmatic foreword to Runeberg's magnum opus and later rebutted his theories in Christelige Dogmatik."
        },
        {
          "name": "Emil Schering",
          "slug": "emil-schering",
          "aliases": [],
          "role": "Translator",
          "summary": "Translated Runeberg's magnum opus into the German version titled Der heimliche Heiland in 1912."
        },
        {
          "name": "Maurice Abramowicz",
          "slug": "maurice-abramowicz",
          "aliases": [],
          "role": "Critic",
          "summary": "Sarcastically observed that in Runeberg's theology, Jesus's thirty-three years on earth was merely a vacation."
        },
        {
          "name": "Jaromir Hladik",
          "slug": "jaromir-hladik",
          "aliases": [],
          "role": "Author",
          "summary": "Author of Vindication of Eternity, cited by Erfjord to argue that the crucifixion of God is repeated endlessly in eternity."
        },
        {
          "name": "Kemnitz",
          "slug": "kemnitz",
          "aliases": [],
          "role": "Theologian",
          "summary": "A theologian who allowed that the Redeemer could feel human frailties like weariness, hunger, and distress."
        },
        {
          "name": "Hans Lassen Martensen",
          "slug": "hans-lassen-martensen",
          "aliases": [],
          "role": "Theologian",
          "summary": "Interpreted passages from Isaiah to refute the conventional physical beauty attributed to Christ."
        }
      ],
      "frameworks_mapped": [
        "Protocol Fiction Mapping",
        "Actantial Model",
        "Todorov's Equilibrium",
        "The Freytag Pyramid",
        "Propp's Morphology",
        "Genette's Narrative",
        "The Monomyth",
        "Dan Harmon",
        "Save the Cat",
        "Kishōtenketsu",
        "The Three-Act Structure",
        "Lévi-Strauss's Binary Oppositions",
        "Cognitive Estrangement",
        "Bakhtin's Chronotope",
        "Aristotelian Poetics",
        "Jungian Archetypal Analysis",
        "Genette's Transtextuality"
      ],
      "score_reliability": {
        "state": "replicated-agree",
        "threshold": 0.2,
        "runs_total": 5,
        "versions_compared": [
          "2.5"
        ],
        "max_spread": 0.05,
        "contested": []
      }
    },
    {
      "slug": "gregory_benford_timescape",
      "title": "Timescape",
      "author": "Gregory Benford",
      "year": 1980,
      "medium": "book",
      "genre_tags": [],
      "tropes": [],
      "quadrant_scores": {
        "time_linearity": 0.8,
        "pacing_velocity": 0.75,
        "threat_scale": 0.85,
        "protagonist_fate": 0.5,
        "conflict_style": 0.75,
        "price_type": 0.75
      },
      "provenance": {
        "analysis_run": "NTSMR-2.5-claude-sonnet-4-6-low",
        "analysis_body_sha256": "0d37f71a51246f01dab1b7abd3d2973a97d6648d05eadd32c64a778096668492",
        "synthesis": {
          "path": "nartopo-tools/artifacts/gregory_benford_timescape.md.ntsmr-2-5-claude-sonnet-4-6-low.synthesis.json",
          "sha256": "ae1492072c9fe60a5a80a05c41167600a0c45981745f7f6c4ff3375770c7f5cc"
        },
        "report": {
          "path": "nartopo-tools/artifacts/gregory_benford_timescape.md.ntsmr-2-5-claude-sonnet-4-6-low.report.json",
          "sha256": "072a76a6c07ef64d1ea7e0c4c4c73da0f1e00c28ff133c17f016093568cd2dd4"
        },
        "source": {
          "path": "Gregory Benford/Timescape.txt",
          "sha256": "a7b6d3ec8aa388722f622beb1f11d1e9748dae3391666f3c0047cf41587348c8",
          "digest_observed_at": "2026-09-09",
          "digest_at_analysis_run": null,
          "edition": null,
          "edition_status": "unresolved"
        },
        "pipeline_revision_at_run": null,
        "verification": {
          "source": "unverified",
          "human_review": "unreviewed",
          "bibliography": "unverified"
        },
        "issues": [],
        "todorov_status": "recovered-from-synthesis",
        "work_identity": {
          "title": "Timescape",
          "author": "Gregory Benford",
          "year": 1980
        }
      },
      "ntsmr": {
        "version": "2.5",
        "primary_run_label": "NTSMR-2.5-claude-sonnet-4-6-low",
        "runs": {
          "NTSMR-2.4-claude-sonnet-4-6-low": {
            "pipeline_version": "2.4",
            "backend": "claude",
            "model": "claude-sonnet-4-6",
            "scores": {
              "time_linearity": 0.65,
              "pacing_velocity": 0.7,
              "threat_scale": 0.8,
              "protagonist_fate": 0.38,
              "conflict_style": 0.75,
              "price_type": 0.65
            },
            "score_space": "site-v1",
            "reasoning_effort": "low"
          },
          "NTSMR-2.5-claude-sonnet-4-6-low": {
            "pipeline_version": "2.5",
            "backend": "claude",
            "model": "claude-sonnet-4-6",
            "scores": {
              "time_linearity": 0.8,
              "pacing_velocity": 0.75,
              "threat_scale": 0.85,
              "protagonist_fate": 0.5,
              "conflict_style": 0.75,
              "price_type": 0.75
            },
            "score_space": "site-v1",
            "reasoning_effort": "low"
          },
          "NTSMR-2.5-balanced-glm-5+deepseek-v3.2": {
            "pipeline_version": "2.5",
            "backend": "openrouter",
            "model": "balanced-routing",
            "scores": {
              "time_linearity": 0.8,
              "pacing_velocity": 0.75,
              "threat_scale": 0.75,
              "protagonist_fate": 0.55,
              "conflict_style": 0.75,
              "price_type": 0.75
            },
            "score_space": "site-v1",
            "score_only": true,
            "source_run_label": "NTSMR-2.5-claude-sonnet-4-6-low"
          }
        }
      },
      "todorov_stages": {
        "equilibrium": "Two parallel worlds maintain their precarious norms: in 1998, Renfrew's tachyon project survives on grants within a World Council framework while ecological stress is managed as a known crisis; in 1962–63, Gordon Bernstein conducts routine NMR experiments at UCSD within the stable social and institutional world of early-1960s academia.",
        "disruption": "The diatom bloom escalates into a runaway exponential catastrophe threatening all ocean ecosystems, while simultaneously Gordon begins receiving anomalous structured signals in his NMR apparatus — both timelines are thrown into irreversible disorder. Shriffer's premature public disclosure compounds Gordon's crisis by entangling his reputation with unverified claims.",
        "recognition": "Peterson's discovery of the confirming bank note reading 'MESSAGE RECEIVED LA JOLLA' makes tachyon communication viscerally real, proving the causal loop functions. Gordon, witnessing the NMR signal return at 11 p.m., records a legible tachyon message referencing Cambridge, the diatom bloom, and causal loop theory — both men recognize the experiment is real and the stakes are civilizational.",
        "repair": "Renfrew and Markham intensify transmission efforts; Gordon persists with the NMR work despite merit-review setbacks, professional ostracism, and the collapse of his relationship with Penny. Peterson maneuvers outside official sanction to keep the project alive. Renfrew, feverish and alone in the dying Cambridge lab, abandons terse scientific transmission and sends a personal confessional narrative in Morse, exhausting every avenue to alter the past.",
        "new_equilibrium": "Gordon marries Penny in 1964 and achieves professional recognition, delivering an acceptance speech while privately understanding that his 1963 timeline has already diverged from Renfrew's future — the original catastrophe is unreachable and the universe has branched. The afterword confirms Markham's bifurcated fate and Gordon's switch to Marsha as evidence of multiple coexisting realities, a permanently altered cosmos in which linear time is an illusion and human hope persists as a wave-image across branching worlds."
      },
      "characters": [
        {
          "name": "Markham",
          "slug": "markham",
          "aliases": [
            "Greg",
            "Gregory Markham",
            "Jan"
          ],
          "role": "Helper; theoretical physicist and intellectual mediator",
          "summary": "Serves as Peterson's intellectual guide through tachyon physics and the causal-loop interpretation, explaining Wheeler-Feynmann theory and the self-consistency resolution to the grandfather paradox."
        },
        {
          "name": "Peterson",
          "slug": "peterson",
          "aliases": [
            "Ian Peterson"
          ],
          "role": "Actantial sender/opponent; government Council official",
          "summary": "Manipulative bureaucrat who extracts scientific briefings through social dominance, manages the tachyon project politically, and independently devises the safety-deposit-box test to verify tachyon communication."
        },
        {
          "name": "Renfrew",
          "slug": "renfrew",
          "aliases": [
            "Marjorie",
            "Marjorie Renfrew",
            "John",
            "John Renfrew"
          ],
          "role": "Protagonist (1998 thread); experimental physicist",
          "summary": "Works alone in the dying Cambridge lab, feverish, transmitting personal Morse confessions, then detects signals from 2349 before the generator fails and he exits into daylight."
        },
        {
          "name": "Gordon Bernstein",
          "slug": "gordon-bernstein",
          "aliases": [
            "Gordon",
            "Gaw-dun",
            "Dr. Bernstein",
            "Professor Bernstein",
            "Gordelah"
          ],
          "role": "Protagonist (1962–63 thread); experimental physicist",
          "summary": "Faces professional ostracism after the Life article, re-detects the tachyon signal at 11 p.m., deduces its Hercules origin, resists Ramsey's co-option, and is eventually cornered by a UPI reporter."
        },
        {
          "name": "Penny",
          "slug": "penny",
          "aliases": [],
          "role": "supporting character",
          "summary": "Gordon's first wife; their marriage in 1964 follows a reconciliation after 1963, but the relationship deteriorates through 1968 and ends in divorce."
        },
        {
          "name": "Isaac Lakin",
          "slug": "isaac-lakin",
          "aliases": [
            "Lakin",
            "Isaac"
          ],
          "role": "Opponent; department head at UCSD",
          "summary": "Hungarian-born physicist who built UCSD's NRL; politically cautious; first dismisses the signal as nonsense, then tries to co-opt it as publishable 'spontaneous resonance' to serve NSF renewal."
        },
        {
          "name": "Cooper",
          "slug": "cooper",
          "aliases": [],
          "role": "Gordon's graduate student",
          "summary": "Gordon's graduate student; cleared off the NMR rig under the guise of research discipline so Gordon can run simultaneous experiments."
        },
        {
          "name": "Heather",
          "slug": "heather",
          "aliases": [],
          "role": "Minor helper; Marjorie's friend",
          "summary": "Marjorie's friend who arrives at the house and inadvertently defuses the squatter confrontation."
        },
        {
          "name": "Johnny",
          "slug": "johnny",
          "aliases": [],
          "role": "Renfrew's young son",
          "summary": "Accompanies Renfrew on outings, provides emotional lightness, and reconnects with curator Frost at the closed Institute for Astronomy."
        },
        {
          "name": "Frost",
          "slug": "frost",
          "aliases": [
            "Mr. Frost"
          ],
          "role": "Curator of the Institute for Astronomy",
          "summary": "Elderly curator who remained behind after the Institute closed; reports a break-in and theft from the library, emblematic of institutional collapse."
        },
        {
          "name": "Kiefer",
          "slug": "kiefer",
          "aliases": [],
          "role": "Scripps scientist / California contact",
          "summary": "Marine biologist at Scripps who briefs Peterson on manodrin-driven diatom bloom and the threatened food chain; fit, ascetic, office-proud, eager for crisis details."
        },
        {
          "name": "Saul Shriffer",
          "slug": "saul-shriffer",
          "aliases": [
            "Saul",
            "Schriffer"
          ],
          "role": "Helper turned complication",
          "summary": "Astronomer who brings a Life magazine photographer to Gordon's lab, continuing to publicize their tachyon discovery without Gordon's endorsement."
        },
        {
          "name": "Bernard Carroway",
          "slug": "bernard-carroway",
          "aliases": [],
          "role": "Astrophysics colleague, committee member",
          "summary": "Senior physicist who warns Gordon to distance himself from Shriffer and later passively supports Cooper's examination failure"
        },
        {
          "name": "Gates",
          "slug": "gates",
          "aliases": [],
          "role": "Committee member",
          "summary": "Faculty committee member who sides with Lakin in failing Cooper, citing unresolved equipment questions"
        },
        {
          "name": "Laura",
          "slug": "laura",
          "aliases": [],
          "role": "minor character",
          "summary": "Woman Peterson dines and sleeps with; affected accent, East Anglian origins, presses him on politics, emotionally vulnerable after their encounter."
        },
        {
          "name": "Cathy Wickham",
          "slug": "cathy-wickham",
          "aliases": [],
          "role": "helper",
          "summary": "Physicist recruited by Peterson from Caltech; author of coupled field equations for tachyon paradox-loops; sardonic about Peterson."
        },
        {
          "name": "Tulare",
          "slug": "tulare",
          "aliases": [],
          "role": "minor character",
          "summary": "University administrator who delivers the merit increase denial to Gordon with cautious vagueness and an Einstein anecdote."
        },
        {
          "name": "Cliff",
          "slug": "cliff",
          "aliases": [],
          "role": "minor character",
          "summary": "Special Forces veteran and Penny's acquaintance; his beach appearance triggers Gordon's jealous flight."
        },
        {
          "name": "Claudia Zinnes",
          "slug": "claudia-zinnes",
          "aliases": [
            "Claudia"
          ],
          "role": "Collaborating physicist at Columbia",
          "summary": "Gordon's counterpart experimenter; urges him to sleep, promises to run measurements, but her group finds nothing."
        },
        {
          "name": "Ramsey",
          "slug": "ramsey",
          "aliases": [],
          "role": "Competitor physicist",
          "summary": "Asks to use Gordon's chain-configuration in his press conference, is refused, then inadvertently exposes Gordon's role to a UPI reporter."
        },
        {
          "name": "Roland",
          "slug": "roland",
          "aliases": [],
          "role": "Farmhouse factotum",
          "summary": "Long-serving household servant at Peterson's rural retreat; helps Peterson's elderly aunt to her seat and serves tea in silence."
        },
        {
          "name": "Marsha",
          "slug": "marsha",
          "aliases": [
            "Marsha Gould"
          ],
          "role": "supporting",
          "summary": "Gordon's second wife, from the Bronx; energetic, loyal, and socially magnetic; she revitalizes Gordon at the Washington reception."
        },
        {
          "name": "President Scranton",
          "slug": "president-scranton",
          "aliases": [],
          "role": "minor",
          "summary": "US President in the alternate 1974 timeline; presides over the awards ceremony and reads Gordon's citation."
        },
        {
          "name": "Jules Chardaman",
          "slug": "jules-chardaman",
          "aliases": [],
          "role": "minor",
          "summary": "Nobel-winning nuclear physicist seen at the Washington reception; aged and frail."
        },
        {
          "name": "Hussinger",
          "slug": "hussinger",
          "aliases": [],
          "role": "minor",
          "summary": "Co-recipient with Ramsey of an award at the ceremony; the two comedically swap their plaques."
        },
        {
          "name": "Tanninger",
          "slug": "tanninger",
          "aliases": [],
          "role": "minor",
          "summary": "Physicist whose new theory integrates tachyons into general relativity and resolves paradoxes through universe-splitting."
        }
      ],
      "frameworks_mapped": [
        "Protocol Fiction Mapping",
        "Actantial Model",
        "Todorov's Equilibrium",
        "The Freytag Pyramid",
        "Propp's Morphology",
        "Genette's Narrative",
        "The Monomyth",
        "Dan Harmon",
        "Save the Cat",
        "Kishōtenketsu",
        "The Three-Act Structure",
        "Lévi-Strauss's Binary Oppositions",
        "Cognitive Estrangement",
        "Bakhtin's Chronotope",
        "Aristotelian Poetics",
        "Jungian Archetypal Analysis",
        "Genette's Transtextuality"
      ],
      "score_reliability": {
        "state": "replicated-agree",
        "threshold": 0.2,
        "runs_total": 3,
        "versions_compared": [
          "2.5"
        ],
        "max_spread": 0.1,
        "contested": []
      }
    },
    {
      "slug": "jorge_luis_borges_tl_n_uqbar_orbis_tertius",
      "title": "Tlön, Uqbar, Orbis Tertius",
      "author": "Jorge Luis Borges",
      "year": 1944,
      "medium": "short_story",
      "genre_tags": [],
      "tropes": [],
      "quadrant_scores": {
        "time_linearity": 0.88,
        "pacing_velocity": 0.78,
        "threat_scale": 0.72,
        "protagonist_fate": 0.75,
        "conflict_style": 0.8,
        "price_type": 0.82
      },
      "provenance": {
        "analysis_run": "NTSMR-2.5-claude-sonnet-4-6-low",
        "analysis_body_sha256": "c36def0001bfeb0a290825d0b5f54eff7e30e25a50a07392b13674fbb2beba78",
        "synthesis": {
          "path": "nartopo-tools/artifacts/jorge_luis_borges_tl_n_uqbar_orbis_tertius.md.ntsmr-2-5-claude-sonnet-4-6-low.synthesis.json",
          "sha256": "fa093cd86e109b224ca55f3dea33d2223bb64aab4a242c9f0dfd8420cff17157"
        },
        "report": {
          "path": "nartopo-tools/artifacts/jorge_luis_borges_tl_n_uqbar_orbis_tertius.md.ntsmr-2-5-claude-sonnet-4-6-low.report.json",
          "sha256": "9f6cba2d37cb914a59f3fa475230256fe5124d551499d373aa826b28b595fd3f"
        },
        "source": {
          "path": "Jorge Luis Borges/Tlön, Uqbar, Orbis Tertius.txt",
          "sha256": "a83e66053515b7c6d78ce2ac5e4614734e2a83e5a9cbfbcea753eb4489e3b31b",
          "digest_observed_at": "2026-09-09",
          "digest_at_analysis_run": null,
          "edition": null,
          "edition_status": "unresolved"
        },
        "pipeline_revision_at_run": null,
        "verification": {
          "source": "unverified",
          "human_review": "unreviewed",
          "bibliography": "unverified"
        },
        "issues": [],
        "todorov_status": "recovered-from-synthesis",
        "work_identity": {
          "title": "Tlön, Uqbar, Orbis Tertius",
          "author": "Jorge Luis Borges",
          "year": 1944
        }
      },
      "ntsmr": {
        "version": "2.5",
        "primary_run_label": "NTSMR-2.5-claude-sonnet-4-6-low",
        "runs": {
          "NTSMR-2.3-gemini-3.1-pro-preview": {
            "pipeline_version": "2.3",
            "backend": "gemini",
            "model": "gemini-3.1-pro-preview",
            "scores": {
              "time_linearity": 0.95,
              "pacing_velocity": 0.85,
              "threat_scale": 0.9,
              "protagonist_fate": 0.95,
              "conflict_style": 0.85,
              "price_type": 0.95
            },
            "score_space": "site-v1"
          },
          "NTSMR-2.3-claude-sonnet-4-6-low": {
            "pipeline_version": "2.3",
            "backend": "claude",
            "model": "claude-sonnet-4-6",
            "scores": {
              "time_linearity": 0.92,
              "pacing_velocity": 0.85,
              "threat_scale": 0.78,
              "protagonist_fate": 0.82,
              "conflict_style": 0.88,
              "price_type": 0.87
            },
            "score_space": "site-v1",
            "reasoning_effort": "low"
          },
          "NTSMR-2.4-claude-sonnet-4-6-low": {
            "pipeline_version": "2.4",
            "backend": "claude",
            "model": "claude-sonnet-4-6",
            "scores": {
              "time_linearity": 0.88,
              "pacing_velocity": 0.72,
              "threat_scale": 0.72,
              "protagonist_fate": 0.78,
              "conflict_style": 0.82,
              "price_type": 0.8
            },
            "score_space": "site-v1",
            "reasoning_effort": "low"
          },
          "NTSMR-2.5-claude-sonnet-4-6-low": {
            "pipeline_version": "2.5",
            "backend": "claude",
            "model": "claude-sonnet-4-6",
            "scores": {
              "time_linearity": 0.88,
              "pacing_velocity": 0.78,
              "threat_scale": 0.72,
              "protagonist_fate": 0.75,
              "conflict_style": 0.8,
              "price_type": 0.82
            },
            "score_space": "site-v1",
            "reasoning_effort": "low"
          },
          "NTSMR-2.5-gemini-3.1-pro-preview": {
            "pipeline_version": "2.5",
            "backend": "gemini",
            "model": "gemini-3.1-pro-preview",
            "scores": {
              "time_linearity": 0.88,
              "pacing_velocity": 0.78,
              "threat_scale": 0.72,
              "protagonist_fate": 0.75,
              "conflict_style": 0.8,
              "price_type": 0.82
            },
            "score_space": "site-v1"
          },
          "NTSMR-2.5-balanced-glm-5+deepseek-v3.2": {
            "pipeline_version": "2.5",
            "backend": "openrouter",
            "model": "balanced-routing",
            "scores": {
              "time_linearity": 0.85,
              "pacing_velocity": 0.8,
              "threat_scale": 0.75,
              "protagonist_fate": 0.75,
              "conflict_style": 0.8,
              "price_type": 0.8
            },
            "score_space": "site-v1",
            "score_only": true,
            "source_run_label": "NTSMR-2.5-claude-sonnet-4-6-low"
          }
        }
      },
      "todorov_stages": {
        "equilibrium": "The narrator and Bioy Casares inhabit a stable intellectual world of books, conversation, and shared literary culture, anchored by the familiar reality of encyclopedias and atlases as reliable instruments of knowledge.",
        "disruption": "The discovery of an anomalous Uqbar encyclopedia entry that exists in only one copy and cannot be verified in any atlas destabilizes the boundary between real and fabricated knowledge; subsequently, physical Tlönian objects begin intruding into the real world, and the conspiracy of the First Encyclopaedia of Tlön is revealed.",
        "recognition": "The narrator recognizes the full scope of the disruption when Herbert Ashe's posthumous package yields a volume of the First Encyclopaedia of Tlön, revealing the anomalous Uqbar entry as a fragment of a systematic, centuries-old conspiracy to replace reality with an invented planet.",
        "repair": "No effective repair is attempted; the narrator observes rather than resists as Tlönian objects, language, and history filter into schools, numismatics, pharmacology, and archaeology, gradually supplanting actual history in human memory.",
        "new_equilibrium": "The world has become Tlön: a fictitious past has replaced real history in human memory, and the narrator accepts this transformation with indifference, retreating to a hotel in Adrogué to translate Sir Thomas Browne in the style of Quevedo, having abandoned any stake in the contest between reality and fabrication."
      },
      "characters": [
        {
          "name": "Adolfo Bioy Casares",
          "slug": "adolfo-bioy-casares",
          "aliases": [
            "Bioy"
          ],
          "role": "Friend/Collaborator",
          "summary": "A friend who comes to dinner, debates the composition of a novel, and recalls an entry about Uqbar in the Anglo-American Cyclopaedia."
        },
        {
          "name": "Hakim",
          "slug": "hakim",
          "aliases": [
            "The Veiled"
          ],
          "role": "Heretic/Prophet",
          "summary": "Born in Turkestan, raised in the city of Merv, and trained as a dyer, an occupation that heavily influenced his eventual extravagant and heretical career."
        },
        {
          "name": "The Afflicted One",
          "slug": "the-afflicted-one",
          "aliases": [],
          "role": "Tyrant/King",
          "summary": "A cruel ruler who demands daily magical illusions from a captive, ultimately ordering the execution of a masked figure who turns out to be Yakub."
        },
        {
          "name": "Yakub",
          "slug": "yakub",
          "aliases": [
            "The Masked One"
          ],
          "role": "Condemned man",
          "summary": "An enigmatic, continually veiled figure who appears in the magical visions and is revealed to be staring at his own face before his execution."
        },
        {
          "name": "Rosendo Juárez",
          "slug": "rosendo-jurez",
          "aliases": [
            "the Sticker"
          ],
          "role": "Narrator/Former Enforcer",
          "summary": "An aging, honest-looking man who tells the true story of the night the Yardmaster was murdered, explaining his choice to walk away from violence."
        },
        {
          "name": "Luis Irala",
          "slug": "luis-irala",
          "aliases": [],
          "role": "Carpenter/Friend",
          "summary": "An older, hardworking carpenter who seeks out a fatal duel with Rufino Aguilera to avenge his honor after his woman, Casilda, leaves him."
        },
        {
          "name": "La Lujanera",
          "slug": "la-lujanera",
          "aliases": [],
          "role": "Rosendo's Woman",
          "summary": "Rosendo Juárez's fierce companion who hands him a knife and expects him to fight the Yardmaster."
        },
        {
          "name": "The Yardmaster",
          "slug": "the-yardmaster",
          "aliases": [],
          "role": "Challenger",
          "summary": "A swaggering, drunken stranger from up north who challenges Rosendo at a dance and is later stabbed in the back."
        },
        {
          "name": "Edward Delaney",
          "slug": "edward-delaney",
          "aliases": [
            "William Delaney",
            "Joseph Marvin",
            "Joseph Morris",
            "Monk Eastman"
          ],
          "role": "Ward boss / Gang leader",
          "summary": "The most famous hero of the New York City underworld and the leader of a gang of twelve hundred men."
        },
        {
          "name": "Johannes Dahlmann",
          "slug": "johannes-dahlmann",
          "aliases": [],
          "role": "Patient/Traveler",
          "summary": "A man recovering from near-fatal septicemia who leaves the sanatorium to travel by train to convalesce in the country."
        },
        {
          "name": "Quiroga",
          "slug": "quiroga",
          "aliases": [],
          "role": "Slain Warlord",
          "summary": "A violent, historical military figure who converses with Rosas in the afterlife, expressing his lack of fear and his readiness for a new destiny."
        },
        {
          "name": "Rosas",
          "slug": "rosas",
          "aliases": [],
          "role": "Deceased Dictator",
          "summary": "A cynical, former ruler conversing with Quiroga in the afterlife, viewing their spectral existence as someone else's dream."
        },
        {
          "name": "Ireneo Funes",
          "slug": "ireneo-funes",
          "aliases": [],
          "role": "Mnemonist",
          "summary": "A young man possessing a monstrous, infallible memory who perceives a dizzying, multiform, and precise world, leaving him unable to sleep or think in abstractions."
        },
        {
          "name": "Avelino Arredondo",
          "slug": "avelino-arredondo",
          "aliases": [
            "Arredondo"
          ],
          "role": "Assassin",
          "summary": "A man living in strict, self-imposed seclusion, waiting for the morning of August 25 to carry out the assassination of the president of Uruguay."
        },
        {
          "name": "Idiarte Borda",
          "slug": "idiarte-borda",
          "aliases": [],
          "role": "President/Victim",
          "summary": "The president of Uruguay who is shot by Avelino Arredondo after a Te Deum."
        },
        {
          "name": "Ezra Winthrop",
          "slug": "ezra-winthrop",
          "aliases": [],
          "role": "Professor",
          "summary": "A professor of Old English at the University of Texas, described as a polite but strict academic of old Puritan stock."
        },
        {
          "name": "Joseph Cartaphilus",
          "slug": "joseph-cartaphilus",
          "aliases": [],
          "role": "Rare book dealer",
          "summary": "An emaciated, multilingual dealer from Smyrna who sells Pope's Iliad to the princess de Lucinge."
        },
        {
          "name": "Bogle",
          "slug": "bogle",
          "aliases": [],
          "role": "Supporter of an impostor",
          "summary": "Orchestrator of the plan to have the rustic Orton impersonate the missing gentleman Tichborne by relying on pure unlikeness."
        },
        {
          "name": "Orton",
          "slug": "orton",
          "aliases": [],
          "role": "Impostor",
          "summary": "An irrepressible, fat rustic who impersonates the slim and genteel Roger Charles Tichborne under Bogle's direction."
        },
        {
          "name": "Lady Tichborne",
          "slug": "lady-tichborne",
          "aliases": [
            "Tichborne"
          ],
          "role": "Grieving Mother",
          "summary": "A lonely woman living in a majestic Paris hôtel particulier who happily accepts Tom Castro as her prodigal son, ignoring his obvious flaws."
        },
        {
          "name": "Cristian Nilsen",
          "slug": "cristian-nilsen",
          "aliases": [
            "Cristian Nelson",
            "Cristian",
            "Eduardo Nelson",
            "Eduardo"
          ],
          "role": "Younger brother",
          "summary": "The elder of the tough, red-headed Nilsen brothers who brings Juliana Burgos home to live with him."
        },
        {
          "name": "Juliana Burgos",
          "slug": "juliana-burgos",
          "aliases": [],
          "role": "Servant/Mistress",
          "summary": "A woman brought home by Cristian Nilsen who serves the brothers and inadvertently creates a volatile dynamic between them."
        },
        {
          "name": "Azevedo Bandeira",
          "slug": "azevedo-bandeira",
          "aliases": [
            "Bandeira"
          ],
          "role": "Gang member / Victim",
          "summary": "The formidable boss of El Suspiro who employs progressive humiliation to trap Otálora into a false sense of power before executing him."
        },
        {
          "name": "Benjamín Otálora",
          "slug": "benjamn-otlora",
          "aliases": [
            "Otálora"
          ],
          "role": "Usurper",
          "summary": "A youth who attempts to usurp Bandeira's power, horse, and woman, only to realize at the moment of his death that he has been permitted to do so as a cruel joke."
        },
        {
          "name": "Ulpiano Suárez",
          "slug": "ulpiano-surez",
          "aliases": [
            "Suárez"
          ],
          "role": "Foreman",
          "summary": "Bandeira's taciturn capanga who pretends to help Otálora usurp control but is actually complicit in his downfall."
        },
        {
          "name": "Tadeo Isidoro Cruz",
          "slug": "tadeo-isidoro-cruz",
          "aliases": [
            "Cruz"
          ],
          "role": "Sergeant",
          "summary": "A sergeant who corners a fierce outlaw but, recognizing his own destiny as a wolf rather than a dog, joins the outlaw in fighting his own soldiers."
        },
        {
          "name": "Martín Fierro",
          "slug": "martn-fierro",
          "aliases": [
            "the deserter"
          ],
          "role": "Outlaw",
          "summary": "A fierce deserter who fights off Cruz's soldiers in the dark until Cruz recognizes him as a kindred spirit and joins his side."
        },
        {
          "name": "Emma Zunz",
          "slug": "emma-zunz",
          "aliases": [],
          "role": "Avenger",
          "summary": "A young mill worker who orchestrates her own defilement as part of a complex, successful plan to murder Aaron Loewenthal and avenge her father's suicide."
        },
        {
          "name": "Aaron Loewenthal",
          "slug": "aaron-loewenthal",
          "aliases": [
            "Loewenthal"
          ],
          "role": "Victim",
          "summary": "The man Emma Zunz shoots and frames for her own rape in order to extract vengeance for her father."
        },
        {
          "name": "Otto Dietrich zur Linde",
          "slug": "otto-dietrich-zur-linde",
          "aliases": [
            "zur Linde"
          ],
          "role": "Torturer",
          "summary": "The condemned subdirector of the Tarnowitz concentration camp who justifies his actions and the psychological destruction of David Jerusalem as a tragic necessity."
        },
        {
          "name": "David Jerusalem",
          "slug": "david-jerusalem",
          "aliases": [
            "Jerusalem"
          ],
          "role": "Poet/Victim",
          "summary": "A brilliant Sephardic Jewish poet driven to insanity by the severe, calculated regime of Otto Dietrich zur Linde."
        },
        {
          "name": "Carlos Argentino Daneri",
          "slug": "carlos-argentino-daneri",
          "aliases": [
            "Carlos Argentino"
          ],
          "role": "Host",
          "summary": "The jovial, pompous owner of the cellar containing the Aleph, who boasts of his magnificent observatory."
        },
        {
          "name": "Narrator",
          "slug": "narrator",
          "aliases": [
            "tribune"
          ],
          "role": "Roman military tribune",
          "summary": "A Roman tribune who leads an expedition into uncharted deserts to find the secret City of the Immortals after hearing a dying rider's tale."
        },
        {
          "name": "Queen of the Yahoos",
          "slug": "queen-of-the-yahoos",
          "aliases": [
            "queen"
          ],
          "role": "Consort",
          "summary": "The young queen of the Yahoo tribe who offers herself to the missionary and marks him with royal favor."
        },
        {
          "name": "Witch doctors",
          "slug": "witch-doctors",
          "aliases": [],
          "role": "Rulers/Seers",
          "summary": "Four individuals who effectively rule the Yahoo tribe, possess minor foresight, and select the mutilated king."
        },
        {
          "name": "Jorge Luis Borges",
          "slug": "jorge-luis-borges",
          "aliases": [
            "Borges",
            "J.L.B."
          ],
          "role": "Narrator/Protagonist",
          "summary": "The narrator who encounters an older version of himself in Room 19 of a hotel, and later retreats to Adrogué as the world succumbs to Tlön."
        },
        {
          "name": "bloody rider",
          "slug": "bloody-rider",
          "aliases": [],
          "role": "Dying traveler",
          "summary": "A wounded traveler who arrives at a Roman camp seeking the secret river that purifies men of death."
        },
        {
          "name": "Kuranosuké",
          "slug": "kuranosuk",
          "aliases": [
            "councilor",
            "Oishi Kuranosuké"
          ],
          "role": "Avenging leader",
          "summary": "A councilor who feigns debauchery to lower his enemy's guard before leading forty-seven Rônins in a night raid."
        },
        {
          "name": "Oían",
          "slug": "oan",
          "aliases": [
            "poet"
          ],
          "role": "King's poet",
          "summary": "A highly trained Irish poet tasked by the high king to sing his victory at the Battle of Clontarf."
        },
        {
          "name": "king",
          "slug": "king",
          "aliases": [
            "high king"
          ],
          "role": "Ruler",
          "summary": "The victorious high king who commands his poet to immortalize his deeds in words."
        },
        {
          "name": "Young Emperor Chia-Ch'ing",
          "slug": "young-emperor-chia-ching",
          "aliases": [],
          "role": "Emperor",
          "summary": "Issues an imperial decree commanding his admiral to ruthlessly punish a pirate fleet."
        },
        {
          "name": "Alexander Craggier",
          "slug": "alexander-craggier",
          "aliases": [
            "Narrator"
          ],
          "role": "Discoverer",
          "summary": "A man driven to the brink of madness after discovering blue disks that unpredictably multiply and disappear, defying mathematical laws."
        },
        {
          "name": "Giambattista Marino",
          "slug": "giambattista-marino",
          "aliases": [
            "the new Homer",
            "the new Dante"
          ],
          "role": "Poet",
          "summary": "An illustrious, dying poet who achieves a final epiphany about the limitations of his art upon seeing a yellow rose."
        },
        {
          "name": "Dr. Isidro Figueroa",
          "slug": "dr-isidro-figueroa",
          "aliases": [],
          "role": "Protagonist / Painter",
          "summary": "Clara's husband who served as the Argentine ambassador to Canada before resigning and dying shortly after."
        },
        {
          "name": "Erik Lönnrot",
          "slug": "erik-lnnrot",
          "aliases": [],
          "role": "Detective",
          "summary": "A detective who uses geometric reasoning to predict crimes, but is lured into a deadly trap at Villa Triste-le-Roy."
        },
        {
          "name": "Treviranus",
          "slug": "treviranus",
          "aliases": [],
          "role": "Police Commissioner",
          "summary": "A commissioner who receives an equilateral triangle map and communicates with Lönnrot regarding the crimes."
        },
        {
          "name": "Red Scharlach",
          "slug": "red-scharlach",
          "aliases": [
            "Gryphius",
            "Ginzberg",
            "Ginsburg"
          ],
          "role": "Gangster / Murderer",
          "summary": "A famous Barcelona gangster operating in the south of the city who orchestrates a complex series of fake crimes to trap and kill Lönnrot."
        },
        {
          "name": "Marcelo Yarmolinsky",
          "slug": "marcelo-yarmolinsky",
          "aliases": [],
          "role": "Victim / Writer",
          "summary": "A rabbi and insomniac writer who was stabbed to death by Azevedo while working at his typewriter."
        },
        {
          "name": "Lazarus Morell",
          "slug": "lazarus-morell",
          "aliases": [],
          "role": "Criminal / Preacher",
          "summary": "A successful criminal and Southern gentleman who preached the Scriptures while his gang stole horses."
        },
        {
          "name": "Droctulft",
          "slug": "droctulft",
          "aliases": [],
          "role": "Warrior",
          "summary": "A Lombard barbarian warrior who deserted his army to defend the city of Ravenna and died doing so."
        },
        {
          "name": "Hermann Sörgel",
          "slug": "hermann-srgel",
          "aliases": [],
          "role": "Professor Emeritus / Narrator",
          "summary": "An academic who experiences fleeting, unsettling memories of another man's life."
        },
        {
          "name": "Francisco Ferrari",
          "slug": "francisco-ferrari",
          "aliases": [],
          "role": "Gang leader",
          "summary": "A gang leader who plans a factory robbery but is betrayed and shot point-blank by the police."
        },
        {
          "name": "don Elíseo Amaro",
          "slug": "don-elseo-amaro",
          "aliases": [],
          "role": "Gang member",
          "summary": "A member of Ferrari's gang who is killed alongside him in the police ambush."
        },
        {
          "name": "Immortal Narrator",
          "slug": "immortal-narrator",
          "aliases": [],
          "role": "Lookout / Informant",
          "summary": "An immortal who wandered through new realms and empires for centuries, experiencing perfect quietude and viewing all human acts as exact compensations."
        },
        {
          "name": "Jaromir Hladik",
          "slug": "jaromir-hladik",
          "aliases": [],
          "role": "Author / Prisoner",
          "summary": "A Jewish author arrested by the Gestapo in Prague and sentenced to death by firing squad."
        },
        {
          "name": "Julius Rothe",
          "slug": "julius-rothe",
          "aliases": [],
          "role": "Gestapo Captain",
          "summary": "The officer who reads about Hladik's preeminence and sentences him to death."
        },
        {
          "name": "Paul Kelly",
          "slug": "paul-kelly",
          "aliases": [],
          "role": "Gang leader",
          "summary": "The leader of a rival gang that goes to war with Monk Eastman's crew."
        },
        {
          "name": "The masked man",
          "slug": "the-masked-man",
          "aliases": [
            "The man with the head of a bull"
          ],
          "role": "Mysterious figure",
          "summary": "A tall figure with a bull's head who wears a mask because his face blinds those who look upon it."
        },
        {
          "name": "Billy the Kid",
          "slug": "billy-the-kid",
          "aliases": [
            "Bill Harrigan"
          ],
          "role": "Outlaw",
          "summary": "A scrawny New York kid who became a fearsome frontiersman and cattle rustler, indulging in anger until he was killed by Pat Garrett."
        },
        {
          "name": "The elderly lady",
          "slug": "the-elderly-lady",
          "aliases": [
            "The hero's daughter"
          ],
          "role": "Historical figure / Victim",
          "summary": "An elderly woman and living archive of Argentine history who dies shortly after her house is stormed by a mob."
        },
        {
          "name": "Fred Murdock",
          "slug": "fred-murdock",
          "aliases": [],
          "role": "Student / Ethnographer",
          "summary": "A tall American student who lives among Native Americans to learn their secret doctrine but ultimately refuses to reveal it to academia."
        },
        {
          "name": "The professor",
          "slug": "the-professor",
          "aliases": [],
          "role": "Academic advisor",
          "summary": "An older professor who coldly receives Murdock's decision to withhold the tribal secret he discovered."
        },
        {
          "name": "Eudoro Acevedo",
          "slug": "eudoro-acevedo",
          "aliases": [],
          "role": "Narrator / Time traveler",
          "summary": "A seventy-year-old professor and writer from 1897 Buenos Aires who finds himself conversing with a man in the distant future."
        },
        {
          "name": "The host",
          "slug": "the-host",
          "aliases": [
            "Somebody",
            "You"
          ],
          "role": "Man of the future",
          "summary": "A nameless, four-hundred-year-old man in a futuristic society who explains to Eudoro the obsolescence of printing, cities, and history."
        },
        {
          "name": "The taciturn man",
          "slug": "the-taciturn-man",
          "aliases": [
            "The gray man",
            "The sorcerer"
          ],
          "role": "Dreamer",
          "summary": "A mysterious man who arrives at ancient circular ruins with the singular, obsessive goal of dreaming a man into existence."
        },
        {
          "name": "don Alejandro",
          "slug": "don-alejandro",
          "aliases": [],
          "role": "Leader of the Congress",
          "summary": "The authoritative leader who suddenly commands the destruction of the Congress's amassed library, realizing the Congress is the world itself."
        },
        {
          "name": "Fergus Kilpatrick",
          "slug": "fergus-kilpatrick",
          "aliases": [],
          "role": "Leader / Traitor / Hero",
          "summary": "An Irish rebel leader who, after being exposed as a traitor, agrees to a choreographed theatrical assassination to inspire the rebellion."
        },
        {
          "name": "James Nolan",
          "slug": "james-nolan",
          "aliases": [],
          "role": "Investigator / Playwright",
          "summary": "The man who uncovers Kilpatrick's treachery and orchestrates his public execution as a plagiarized Shakespearean drama."
        },
        {
          "name": "Dr. Eduardo Zimmermann",
          "slug": "dr-eduardo-zimmermann",
          "aliases": [],
          "role": "Historian / Rival",
          "summary": "A foreign-born historian proposed to copy Bolivar's letters, competing with the narrator for the mission."
        },
        {
          "name": "Herbert Quain",
          "slug": "herbert-quain",
          "aliases": [
            "Quain"
          ],
          "role": "Author",
          "summary": "An author of formally complex, often frustrating literary works like 'April March', 'The Secret Mirror', and 'Statements', who believes readers are extinct."
        },
        {
          "name": "John William Quigley",
          "slug": "john-william-quigley",
          "aliases": [
            "Wilfred Quarles"
          ],
          "role": "Playwright/Salesman",
          "summary": "A traveling salesman from Liverpool who morbidly obsesses over Miss Thrale and imagines himself as the playwright Wilfred Quarles in Quain's play."
        },
        {
          "name": "Letizia Alvarez de Toledo",
          "slug": "letizia-alvarez-de-toledo",
          "aliases": [],
          "role": "Theorist",
          "summary": "An observer or theorist who suggests that the vast Library is pointless and could be replaced by a single infinite volume of infinitely thin pages."
        },
        {
          "name": "Ts'ui Pen",
          "slug": "tsui-pen",
          "aliases": [],
          "role": "Novelist/Ancestor",
          "summary": "A genius novelist and man of letters with mystical leanings who dedicated his life to creating a labyrinthine, chaotic novel that explores the infinite bifurcations of time."
        },
        {
          "name": "Albert",
          "slug": "albert",
          "aliases": [],
          "role": "Scholar",
          "summary": "An old man with an indomitable face who deciphers and explains the structure of Ts'ui Pen's novel and the concept of forking time."
        },
        {
          "name": "Vincent Moon",
          "slug": "vincent-moon",
          "aliases": [
            "Narrator"
          ],
          "role": "Traitor/Narrator",
          "summary": "A coward who betrayed his comrade and has been narrating the story under the guise of the betrayed man, ultimately begging his listener (Borges) to despise him."
        },
        {
          "name": "Thorpe",
          "slug": "thorpe",
          "aliases": [],
          "role": "Advisor",
          "summary": "A man who explains the mechanics of memory recovery to the narrator during a long, sleepless night of discussion."
        },
        {
          "name": "Haughty widow",
          "slug": "haughty-widow",
          "aliases": [],
          "role": "Pirate Leader",
          "summary": "A victorious pirate commander who leads a massive fleet of junks and prepares a desperate defense against the Emperor's punitive expedition."
        },
        {
          "name": "Teodelina Villar",
          "slug": "teodelina-villar",
          "aliases": [],
          "role": "Socialite",
          "summary": "A woman obsessed with the absolute perfection of ephemeral fashion, imposing an exhausting, orthodox discipline upon her appearances until her death."
        },
        {
          "name": "Fakir",
          "slug": "fakir",
          "aliases": [],
          "role": "Painter/Prisoner",
          "summary": "A prisoner from Sind or Gujarat who died in his cell after painting an infinite, dizzying image of a magical tiger that covered the walls, floor, and ceiling."
        },
        {
          "name": "Tzinacan",
          "slug": "tzinacan",
          "aliases": [],
          "role": "Priest/Prisoner",
          "summary": "The last priest of the Pyramid of Qaholom, tortured and imprisoned in a dark hemisphere, who seeks to decipher a divine message written in the spots of a jaguar."
        },
        {
          "name": "Nils Runeberg",
          "slug": "nils-runeberg",
          "aliases": [],
          "role": "Theologian/Author",
          "summary": "Author of 'Kristus och Judas' and 'Den hemlige frälsaren' who proposed that Judas' betrayal was an act of limitless, hyperbolic asceticism, debasing his spirit to seek hell."
        },
        {
          "name": "Erik Erfjord",
          "slug": "erik-erfjord",
          "aliases": [
            "Gunnar Erfjord"
          ],
          "role": "Scholar/Secret Society Member",
          "summary": "A Danish Hebrew scholar who wrote a lukewarm foreword to Runeberg's book. Later revealed to have written a letter from Ouro Preto explaining the mystery of the invention of Tlön."
        },
        {
          "name": "Juan Muraña",
          "slug": "juan-muraa",
          "aliases": [],
          "role": "Knife Fighter",
          "summary": "A man from familiar streets who tasted death and transformed into the memory of a knife."
        },
        {
          "name": "Tom Castro",
          "slug": "tom-castro",
          "aliases": [],
          "role": "Impostor",
          "summary": "An accommodating man who falsely claims to be Roger Charles Tichborne to Lady Tichborne, invoking fake memories to prove his identity."
        },
        {
          "name": "Ebenezer Bogle",
          "slug": "ebenezer-bogle",
          "aliases": [],
          "role": "Servant/Accomplice",
          "summary": "The respectful black servant of Tom Castro who smiles discreetly as the deception of Lady Tichborne succeeds."
        },
        {
          "name": "Bible Peddler",
          "slug": "bible-peddler",
          "aliases": [],
          "role": "Salesman",
          "summary": "A Scottish Presbyterian from the Orkneys who sells an infinite, monstrous book to the narrator."
        },
        {
          "name": "Narrator (Book of Sand)",
          "slug": "narrator-book-of-sand",
          "aliases": [],
          "role": "Collector/Misanthrope",
          "summary": "A pensioner who trades his money and a Wyclif Bible for an infinite book, becoming a miserable prisoner to his horrific, impossible acquisition."
        },
        {
          "name": "Kira Kôtsukéno Suké",
          "slug": "kira-ktsukno-suk",
          "aliases": [],
          "role": "Courtier",
          "summary": "An uncivil and iniquitous Japanese courtier whose actions brought about the death of the lord of Ako and who refused to die honorably."
        },
        {
          "name": "Ezra Buckley",
          "slug": "ezra-buckley",
          "aliases": [],
          "role": "Benefactor",
          "summary": "A fatalist, atheist, and reclusive Memphis millionaire who, in 1824, financed the creation of a systematic encyclopedia of the illusory planet Tlön."
        },
        {
          "name": "Herbert Ashe",
          "slug": "herbert-ashe",
          "aliases": [],
          "role": "Demiurge",
          "summary": "A modest contributor to Orbis Tertius who received Volume Eleven of the Tlön encyclopedia."
        },
        {
          "name": "Amorim",
          "slug": "amorim",
          "aliases": [],
          "role": "Companion",
          "summary": "The narrator's traveling companion who purchased a mysteriously heavy Tlönian metal cone in Cuchilla Negra."
        },
        {
          "name": "Julia",
          "slug": "julia",
          "aliases": [],
          "role": "Acquaintance",
          "summary": "A grave young woman from Balvanera whose fear of mirrors drove her insane, believing the narrator's reflection was magically stalking her."
        }
      ],
      "frameworks_mapped": [
        "Protocol Fiction Mapping",
        "Actantial Model",
        "Todorov's Equilibrium",
        "The Freytag Pyramid",
        "Propp's Morphology",
        "Genette's Narrative",
        "The Monomyth",
        "Dan Harmon",
        "Save the Cat",
        "Kishōtenketsu",
        "The Three-Act Structure",
        "Lévi-Strauss's Binary Oppositions",
        "Cognitive Estrangement",
        "Bakhtin's Chronotope",
        "Aristotelian Poetics",
        "Jungian Archetypal Analysis",
        "Genette's Transtextuality"
      ],
      "score_reliability": {
        "state": "replicated-agree",
        "threshold": 0.2,
        "runs_total": 6,
        "versions_compared": [
          "2.5"
        ],
        "max_spread": 0.03,
        "contested": []
      }
    },
    {
      "slug": "connie_willis_to_say_nothing_of_the_dog",
      "title": "To Say Nothing of the Dog",
      "author": "Connie Willis",
      "year": 1997,
      "medium": "book",
      "genre_tags": [],
      "tropes": [],
      "quadrant_scores": {
        "time_linearity": 0.65,
        "pacing_velocity": 0.62,
        "threat_scale": 0.62,
        "protagonist_fate": 0.18,
        "conflict_style": 0.72,
        "price_type": 0.78
      },
      "provenance": {
        "analysis_run": "NTSMR-2.5-claude-sonnet-4-6-low",
        "analysis_body_sha256": "4237fd4adac7ae5a63bec5ffdc63dc9a78827498e9ee8291e9d72756a243a275",
        "synthesis": {
          "path": "nartopo-tools/artifacts/connie_willis_to_say_nothing_of_the_dog.md.ntsmr-2-5-claude-sonnet-4-6-low.synthesis.json",
          "sha256": "9c06770631c70d7bc3de84aa7e2070412d6ed3d9ecdf6486b4f2568e9b467846"
        },
        "report": {
          "path": "nartopo-tools/artifacts/connie_willis_to_say_nothing_of_the_dog.md.ntsmr-2-5-claude-sonnet-4-6-low.report.json",
          "sha256": "5b8a1c976ac64040db8976a01985bc934d2dc009de0babd98a83148f2f06cd94"
        },
        "source": {
          "path": "Connie Willis/To Say Nothing of the Dog.txt",
          "sha256": "96c6e4785e6657a3d16ccc0789761d422807de8c0f457fce2cc04dfc96d3107f",
          "digest_observed_at": "2026-09-09",
          "digest_at_analysis_run": null,
          "edition": null,
          "edition_status": "unresolved"
        },
        "pipeline_revision_at_run": null,
        "verification": {
          "source": "unverified",
          "human_review": "unreviewed",
          "bibliography": "unverified"
        },
        "issues": [],
        "todorov_status": "recovered-from-synthesis",
        "work_identity": {
          "title": "To Say Nothing of the Dog",
          "author": "Connie Willis",
          "year": 1997
        }
      },
      "ntsmr": {
        "version": "2.5",
        "primary_run_label": "NTSMR-2.5-claude-sonnet-4-6-low",
        "runs": {
          "NTSMR-2.4-claude-sonnet-4-6-low": {
            "pipeline_version": "2.4",
            "backend": "claude",
            "model": "claude-sonnet-4-6",
            "scores": {
              "time_linearity": 0.65,
              "pacing_velocity": 0.45,
              "threat_scale": 0.6,
              "protagonist_fate": 0.15,
              "conflict_style": 0.6,
              "price_type": 0.65
            },
            "score_space": "site-v1",
            "reasoning_effort": "low"
          },
          "NTSMR-2.5-claude-sonnet-4-6-low": {
            "pipeline_version": "2.5",
            "backend": "claude",
            "model": "claude-sonnet-4-6",
            "scores": {
              "time_linearity": 0.65,
              "pacing_velocity": 0.62,
              "threat_scale": 0.62,
              "protagonist_fate": 0.18,
              "conflict_style": 0.72,
              "price_type": 0.78
            },
            "score_space": "site-v1",
            "reasoning_effort": "low"
          },
          "NTSMR-2.5-balanced-glm-5+deepseek-v3.2": {
            "pipeline_version": "2.5",
            "backend": "openrouter",
            "model": "balanced-routing",
            "scores": {
              "time_linearity": 0.6,
              "pacing_velocity": 0.7,
              "threat_scale": 0.4,
              "protagonist_fate": 0.2,
              "conflict_style": 0.75,
              "price_type": 0.7
            },
            "score_space": "site-v1",
            "score_only": true,
            "source_run_label": "NTSMR-2.5-claude-sonnet-4-6-low"
          }
        }
      },
      "todorov_stages": {
        "equilibrium": "Oxford's time-travel program operates under institutional normalcy: historians drop into the past to gather data for Lady Schrapnell's Coventry Cathedral reconstruction project, with the temporal net functioning as expected and history intact.",
        "disruption": "Verity accidentally carries Princess Arjumand forward through the time net, creating a parachronistic incongruity that threatens to alter the timeline — potentially enabling Nazi occupation of Britain — while simultaneously the bishop's bird stump remains missing from all Coventry searches.",
        "recognition": "Ned, briefed in Oxford Infirmary and then by Verity at Muchings End, pieces together the full scope: the cat's displacement, Tossie's centrality as Lady Schrapnell's ancestor, the worsening slippage trapping Carruthers in the net, and the simulation data showing their incongruity matches no known self-correcting pattern.",
        "repair": "Ned and Verity work to restore the timeline by returning Princess Arjumand to Tossie, ensuring Tossie reaches St. Michael's Cathedral on schedule, and ultimately tracing the bishop's bird stump to Mrs. Bittner — who stole it during the Coventry Blitz — while the continuum simultaneously self-corrects by pairing off Tossie with Baine rather than the expected Mr. C.",
        "new_equilibrium": "Coventry Cathedral is consecrated with the bishop's bird stump restored; Ned and Verity are united; Finch's kitten-retrieval project is revealed as sanctioned by Dunworthy; and Lady Schrapnell immediately conscripts Ned for fourteen new church salvage missions — a comic restoration of institutional pressure within a transformed personal and historical order."
      },
      "characters": [
        {
          "name": "Ned Henry",
          "slug": "ned-henry",
          "aliases": [
            "Lieutenant Ned Henry",
            "John Bartholomew",
            "Mr. Henry",
            "Sherlock"
          ],
          "role": "Protagonist/narrator",
          "summary": "Time-travelling historian from 21st-century Oxford, severely time-lagged from repeated drops into bombed Coventry Cathedral; dispatched to the Victorian era to correct a temporal incongruity."
        },
        {
          "name": "Carruthers",
          "slug": "carruthers",
          "aliases": [
            "Commander Carruthers"
          ],
          "role": "Fellow time-traveller",
          "summary": "Ned's colleague sent back to last week's Coventry to retrieve cathedral records; romantically involved with Warder."
        },
        {
          "name": "Mr. Spivens",
          "slug": "mr-spivens",
          "aliases": [],
          "role": "Minor/comic",
          "summary": "A dog present at the Coventry Cathedral search; chases a cat through the ruins and becomes the recipient of Ned's time-lag-induced philosophical soliloquy."
        },
        {
          "name": "Mr. Dunworthy",
          "slug": "mr-dunworthy",
          "aliases": [],
          "role": "Sender/authority",
          "summary": "In London chasing a false lead about Underground tunnels; coordinates car transport for Ned and the bishop's bird stump to the consecration."
        },
        {
          "name": "Finch",
          "slug": "finch",
          "aliases": [],
          "role": "Butler/undercover operative",
          "summary": "Arrives soaking wet reporting a completed mission involving a frozen pond and 'number six'; revealed to have been retrieving Victorian kittens for a gene pool project."
        },
        {
          "name": "Mr. Chiswick",
          "slug": "mr-chiswick",
          "aliases": [],
          "role": "Exposition/opponent",
          "summary": "Oxford physicist who explains the theoretical dangers of parachronistic incongruities and rails against Lady Schrapnell's misuse of the time travel program."
        },
        {
          "name": "Warder",
          "slug": "warder",
          "aliases": [
            "Peggy"
          ],
          "role": "Oxford console operator",
          "summary": "Harried technician trying simultaneously to extract Carruthers and bring Finch through the net; computes return slippage as three hours eight minutes"
        },
        {
          "name": "T.J. Lewis",
          "slug": "tj-lewis",
          "aliases": [],
          "role": "Helper/exposition",
          "summary": "Oxford researcher who briefs Dunworthy on Fujisaki's theoretical framework for parachronistic incongruities and their possible self-correction."
        },
        {
          "name": "Terence St. Trewes",
          "slug": "terence-st-trewes",
          "aliases": [
            "Mr. St. Trewes"
          ],
          "role": "Victorian gentleman, Tossie's eventual fiancé",
          "summary": "Victorian young gentleman whom Ned meets at an Oxford railway station; invites Ned on a river journey to Muchings End; Ned (mis)interprets him as a planted contact."
        },
        {
          "name": "Cyril",
          "slug": "cyril",
          "aliases": [],
          "role": "Comic animal companion",
          "summary": "Terence's large dog; serves as ballast, disapproving observer, and inadvertent chaos agent on the river journey."
        },
        {
          "name": "New recruit",
          "slug": "new-recruit",
          "aliases": [
            "Egbert"
          ],
          "role": "Minor/comic",
          "summary": "Lady Schrapnell's naive new hire on his first drop; marvels at seeing a live cat (extinct in his era) and embodies uncritical enthusiasm for the project."
        },
        {
          "name": "Verger",
          "slug": "verger",
          "aliases": [],
          "role": "Minor",
          "summary": "Coventry Cathedral's verger present during the 1940 search; weeps over a found sand bucket; used as a foil for time-lag symptoms."
        },
        {
          "name": "Professor Peddick",
          "slug": "professor-peddick",
          "aliases": [
            "Professor Matthew Peddick"
          ],
          "role": "Comic obstacle/helper",
          "summary": "Terence's elderly classics tutor; rescued from drowning; obsessed with refuting Professor Overforce's determinist theory of history through endless historical examples."
        },
        {
          "name": "Verity",
          "slug": "verity",
          "aliases": [
            "Miss Brown",
            "Kindle",
            "Cousin",
            "Cousin Verity",
            "Harriet"
          ],
          "role": "Fellow historian operative",
          "summary": "Ned's partner who assists in the deduction, searches newspapers, accompanies the visit to Mrs. Bittner, and accepts Ned's implicit proposal at the consecration."
        },
        {
          "name": "Professor Overforce",
          "slug": "professor-overforce",
          "aliases": [],
          "role": "Antagonist (intellectual)",
          "summary": "Professor Peddick's rival; espouses a determinist, population-based theory of history; pushed Peddick into the river after being pulled out by him."
        },
        {
          "name": "Count de Vecchio",
          "slug": "count-de-vecchio",
          "aliases": [],
          "role": "Madame Iritosky's accomplice",
          "summary": "Charming young man interested in theosophy and Tossie; attended séances in Oxford; a threat because his name begins with 'V' not 'C.'"
        },
        {
          "name": "Baine",
          "slug": "baine",
          "aliases": [
            "Mr. Baine",
            "William"
          ],
          "role": "Butler/love interest",
          "summary": "The Merings' butler, revealed to have eloped with Tossie after contradicting her taste at Coventry; distinguished by his refusal to flatter."
        },
        {
          "name": "Princess Arjumand",
          "slug": "princess-arjumand",
          "aliases": [
            "Juju"
          ],
          "role": "Tossie's cat / incongruity object",
          "summary": "Tossie's Persian cat, the source of the temporal incongruity; repeatedly escapes or is endangered and then recovered, apparently drowning in the capsizing before reappearing at the séance."
        },
        {
          "name": "Tossie Mering",
          "slug": "tossie-mering",
          "aliases": [
            "Mesiel",
            "Miss Mering",
            "Tocelyn",
            "Malvinia",
            "Aunt Malvinia",
            "Aunt"
          ],
          "role": "Victorian daughter/pivot of the incongruity",
          "summary": "Has eloped with Baine the butler; her letter explains the romance began when Baine contradicted her taste at Coventry and then threw her in the river and kissed her."
        },
        {
          "name": "Jerome K. Jerome",
          "slug": "jerome-k-jerome",
          "aliases": [
            "Jay"
          ],
          "role": "Historical figure (cameo)",
          "summary": "Author of Three Men in a Boat encountered on the Thames with his two friends and dog Montmorency, not yet knowing he will be famous."
        },
        {
          "name": "T.J.",
          "slug": "tj",
          "aliases": [],
          "role": "Oxford technician/researcher",
          "summary": "Runs the Waterloo-model simulation that confirms the self-correction pattern and later flags a residual slippage anomaly suggesting a further incongruity."
        },
        {
          "name": "Mrs. Marmalade",
          "slug": "mrs-marmalade",
          "aliases": [
            "Miss Marmalade"
          ],
          "role": "Minor character/comic device",
          "summary": "The Chattisbournes' enormous pregnant cat, whose condition Ned nearly blurts out in company"
        },
        {
          "name": "Madame Iritosky",
          "slug": "madame-iritosky",
          "aliases": [],
          "role": "Fraudulent medium",
          "summary": "Con artist posing as a medium, exposed by Baine finding her equipment; flees in the night after being warned about the Psychic Research Society."
        },
        {
          "name": "Curate",
          "slug": "curate",
          "aliases": [
            "Bug-Eyes",
            "Mr. C (candidate)"
          ],
          "role": "Curate at St. Michael's Coventry",
          "summary": "The curate who lets the group into the closed cathedral and shows particular attention to Tossie, potentially the 'Mr. C' of Tossie's diary."
        },
        {
          "name": "Miss Sharpe",
          "slug": "miss-sharpe",
          "aliases": [
            "Delphinium Sharpe"
          ],
          "role": "Cathedral Ladies' Altar Guild vice-chairwoman",
          "summary": "Head of the Cathedral Flower Committee in 1940 who, upon noticing the bishop's bird stump missing from the rubble, wrote a letter to the editor accusing someone of advance knowledge of the raid, thereby threatening Ultra."
        },
        {
          "name": "Arthur T. Mitford",
          "slug": "arthur-t-mitford",
          "aliases": [],
          "role": "Minor train passenger",
          "summary": "Stout man on the train platform who dismisses poetry and fate, prompting Ned's reflection on historical resilience."
        },
        {
          "name": "Mrs. Bittner",
          "slug": "mrs-bittner",
          "aliases": [
            "Lizzie",
            "Liz",
            "Lizzie Bittner"
          ],
          "role": "Historical figure encountered in time-slip",
          "summary": "Elderly woman who stole the bishop's bird stump from Coventry Cathedral during the 1940 Blitz to preserve her husband's faith; hid it in her attic for decades; confesses to Ned and Verity."
        },
        {
          "name": "Jim",
          "slug": "jim",
          "aliases": [],
          "role": "Early Oxford time-travel researcher",
          "summary": "Researcher in the early Oxford time-travel lab; sympathetic to Lizzie but explains the political impossibility of tourist drops."
        },
        {
          "name": "Shoji",
          "slug": "shoji",
          "aliases": [
            "Mr. Fujisaki"
          ],
          "role": "Early Oxford time-travel researcher",
          "summary": "Jim's colleague; reports that the cautious head of the history faculty Lassiter is blocking all drops by demanding exhaustive slippage analyses."
        },
        {
          "name": "Lady Schrapnell",
          "slug": "lady-schrapnell",
          "aliases": [],
          "role": "Institutional antagonist/patron",
          "summary": "Relentless patron who receives the bishop's bird stump at the consecration, pronounces it hideous, and immediately announces further retrieval projects enlisting Ned."
        }
      ],
      "frameworks_mapped": [
        "Protocol Fiction Mapping",
        "Actantial Model",
        "Todorov's Equilibrium",
        "The Freytag Pyramid",
        "Propp's Morphology",
        "Genette's Narrative",
        "The Monomyth",
        "Dan Harmon",
        "Save the Cat",
        "Kishōtenketsu",
        "The Three-Act Structure",
        "Lévi-Strauss's Binary Oppositions",
        "Cognitive Estrangement",
        "Bakhtin's Chronotope",
        "Aristotelian Poetics",
        "Jungian Archetypal Analysis",
        "Genette's Transtextuality"
      ],
      "score_reliability": {
        "state": "contested",
        "threshold": 0.2,
        "runs_total": 3,
        "versions_compared": [
          "2.5"
        ],
        "max_spread": 0.22,
        "contested": [
          {
            "axis": "threat_scale",
            "version": "2.5",
            "spread": 0.22,
            "low": {
              "label": "NTSMR-2.5-balanced-glm-5+deepseek-v3.2",
              "model": "balanced-routing",
              "effort": "?",
              "value": 0.4
            },
            "high": {
              "label": "NTSMR-2.5-claude-sonnet-4-6-low",
              "model": "claude-sonnet-4-6",
              "effort": "low",
              "value": 0.62
            }
          }
        ]
      }
    },
    {
      "slug": "ada_palmer_too_like_the_lightning",
      "title": "Too Like the Lightning",
      "author": "Ada Palmer",
      "year": 2016,
      "medium": "book",
      "genre_tags": [
        "science fiction",
        "political sf"
      ],
      "tropes": [],
      "quadrant_scores": {
        "time_linearity": 0.55,
        "pacing_velocity": 0.72,
        "threat_scale": 0.75,
        "protagonist_fate": 0.65,
        "conflict_style": 0.75,
        "price_type": 0.8
      },
      "baseline_quadrant_scores": {
        "time_linearity": 0.75,
        "pacing_velocity": 0.85,
        "threat_scale": 0.95,
        "protagonist_fate": 0.8,
        "conflict_style": 0.7,
        "price_type": 0.95
      },
      "provenance": {
        "analysis_run": "NTSMR-2.5-claude-sonnet-4-6-low",
        "analysis_body_sha256": "4126aa1ea7a06acf5860db8aac4eaf49e4c15d3558eda45275a8bb4512647929",
        "synthesis": {
          "path": "nartopo-tools/artifacts/ada_palmer_too_like_the_lightning.md.ntsmr-2-5-claude-sonnet-4-6-low.synthesis.json",
          "sha256": "f31cb065596fb94975bde57048cf5a4ec49d2baca3e76697d3fff015b59c54fa"
        },
        "report": {
          "path": "nartopo-tools/artifacts/ada_palmer_too_like_the_lightning.md.ntsmr-2-5-claude-sonnet-4-6-low.report.json",
          "sha256": "d10261439e21d2436132c0fa8e60a7b4f8782a24d1f84097fc2a226ea04ca4a8"
        },
        "source": {
          "path": "Ada Palmer/Too Like the Lightning (2016).txt",
          "sha256": "52ff40e34461705cfc2a7bc75bd439e486776977a8a4b609311e25256585ecb1",
          "digest_observed_at": "2026-09-09",
          "digest_at_analysis_run": null,
          "edition": null,
          "edition_status": "unresolved"
        },
        "pipeline_revision_at_run": null,
        "verification": {
          "source": "unverified",
          "human_review": "unreviewed",
          "bibliography": "unverified"
        },
        "issues": [],
        "todorov_status": "recovered-from-synthesis",
        "work_identity": {
          "title": "Too Like the Lightning",
          "author": "Ada Palmer",
          "year": 2016
        }
      },
      "ntsmr": {
        "version": "2.5",
        "primary_run_label": "NTSMR-2.5-claude-sonnet-4-6-low",
        "runs": {
          "NTSMR-2.3-gemini-3.1-pro-preview": {
            "pipeline_version": "2.3",
            "backend": "gemini",
            "model": "gemini-3.1-pro-preview",
            "scores": {
              "time_linearity": 0.8,
              "pacing_velocity": 0.85,
              "threat_scale": 0.95,
              "protagonist_fate": 0.9,
              "conflict_style": 0.8,
              "price_type": 0.9
            },
            "score_space": "site-v1"
          },
          "NTSMR-2.3-claude-sonnet-4-6-low": {
            "pipeline_version": "2.3",
            "backend": "claude",
            "model": "claude-sonnet-4-6",
            "scores": {
              "time_linearity": 0.72,
              "pacing_velocity": 0.78,
              "threat_scale": 0.85,
              "protagonist_fate": 0.68,
              "conflict_style": 0.74,
              "price_type": 0.82
            },
            "score_space": "site-v1",
            "reasoning_effort": "low"
          },
          "NTSMR-2.4-claude-sonnet-4-6-low": {
            "pipeline_version": "2.4",
            "backend": "claude",
            "model": "claude-sonnet-4-6",
            "scores": {
              "time_linearity": 0.45,
              "pacing_velocity": 0.65,
              "threat_scale": 0.8,
              "protagonist_fate": 0.6,
              "conflict_style": 0.7,
              "price_type": 0.75
            },
            "score_space": "site-v1",
            "reasoning_effort": "low"
          },
          "NTSMR-2.5-claude-sonnet-4-6-low": {
            "pipeline_version": "2.5",
            "backend": "claude",
            "model": "claude-sonnet-4-6",
            "scores": {
              "time_linearity": 0.55,
              "pacing_velocity": 0.72,
              "threat_scale": 0.75,
              "protagonist_fate": 0.65,
              "conflict_style": 0.75,
              "price_type": 0.8
            },
            "score_space": "site-v1",
            "reasoning_effort": "low"
          },
          "NTSMR-2.5-balanced-glm-5+deepseek-v3.2": {
            "pipeline_version": "2.5",
            "backend": "openrouter",
            "model": "balanced-routing",
            "scores": {
              "time_linearity": 0.3,
              "pacing_velocity": 0.7,
              "threat_scale": 0.7,
              "protagonist_fate": 0.6,
              "conflict_style": 0.65,
              "price_type": 0.6
            },
            "score_space": "site-v1",
            "score_only": true,
            "source_run_label": "NTSMR-2.5-claude-sonnet-4-6-low"
          }
        }
      },
      "todorov_stages": {
        "equilibrium": "The world of 2454 operates as a managed utopia: globe-spanning Hives maintain peace through careful political balance, the Saneer-Weeksbooth bash' quietly administers the transit system, and Mycroft Canner serves his sentence as a Servicer under the radar of the powerful figures who depend on him. Bridger remains hidden, the Seven-Ten list scandal is contained, and the assassination system has kept war at bay for years.",
        "disruption": "The Black Sakura break-in and the public exposure of the Canner Device on news channel 323 shatter the carefully maintained silence. MASON forces the truth into the open at Madame's party, the Mitsubishi deploy unauthorized Special Guard troops searching the transit system, and Dominic breaks into Bridger's cave injuring Mommadoll—multiple simultaneous ruptures threatening the concealed order.",
        "recognition": "Papadelias and Guildbreaker piece together the full scope: the Saneer-Weeksbooth bash' has systematically assassinated at least 80 people over seven years to manipulate world politics. Carlyle recognizes Mycroft as the infamous mass murderer Mycroft Canner. Dominic identifies J.E.D.D. Mason as a potential deity. The investigators converge on the understanding that roughly 50% of car crashes were deliberate killings and that the Anonymous faked the Seven-Ten list tampering to obscure the Mitsubishi scandal.",
        "repair": "J.E.D.D. Mason exposes conspirators among the drill troops by reading their theological fears, defusing the armed standoff without violence. Mycroft lobbies for Martin's gentle investigative approach with Ockham. Bridger resurrects Pointer, restoring a small measure of trust and stability in the immediate circle. Carlyle is drawn into Mycroft's confidence and reluctantly agrees to investigate Bridger's power together.",
        "new_equilibrium": "The novel closes with the conspiracy known to investigators but unprosecutable for lack of sufficient evidence. A fragile new arrangement holds: Carlyle is now Mycroft's sensayer and knows about Bridger; the assassination system's existence is recognized as a possible utilitarian good that prevented war; J.E.D.D. Mason is understood to likely know everything; and the world stands on the edge of the war Tully Mardi openly predicts, with the status quo altered but not yet broken."
      },
      "characters": [
        {
          "name": "Hotaka Andō Mitsubishi",
          "slug": "hotaka-and-mitsubishi",
          "aliases": [
            "Chief Director",
            "Andō",
            "Chief Director Andō",
            "Director",
            "Chichi-ue",
            "Toshi"
          ],
          "role": "Mitsubishi Hive Leader",
          "summary": "The stoic Chief Director of the Mitsubishi Hive who attends Madame's club to conduct covert geopolitical diplomacy and defends J.E.D.D. Mason's methods."
        },
        {
          "name": "Sniper",
          "slug": "sniper",
          "aliases": [],
          "role": "Celebrity / Actor",
          "summary": "An androgynous Humanist athlete and star whose likeness is used to produce mass-market Lifedolls."
        },
        {
          "name": "Bryar Kosala",
          "slug": "bryar-kosala",
          "aliases": [
            "Chair Kosala",
            "Mom",
            "Bryar",
            "Cousin Chair",
            "World's Mom"
          ],
          "role": "Cousin Chair and Servicer Program Director",
          "summary": "The leader of the Cousins Hive who is accused by Faust of orchestrating the sabotage of set-set breeders to advance Nurturist policies."
        },
        {
          "name": "Mycroft Canner",
          "slug": "mycroft-canner",
          "aliases": [
            "Mycroft",
            "Servicer",
            "monster",
            "Saladin",
            "Apollo Mojave",
            "Ghost"
          ],
          "role": "Convict/Servicer and primary narrator",
          "summary": "A convicted mass murderer serving a lifetime service sentence. He helps raise Bridger, acts as an unofficial member of the Saneer-Weeksbooth bash', and is secretly under the direct capital power of the Emperor (Lex Familiaris)."
        },
        {
          "name": "Aldrin",
          "slug": "aldrin",
          "aliases": [],
          "role": "Nowhere child",
          "summary": "One of the brilliant children asked by Cornel MASON if they could construct a new global transit system."
        },
        {
          "name": "Voltaire Seldon",
          "slug": "voltaire-seldon",
          "aliases": [
            "Patriarch"
          ],
          "role": "Nowhere child",
          "summary": "A stern Utopian wearing a digital coat of ruins who pushes Mycroft to focus on his writing and uncovers motives for the break-ins."
        },
        {
          "name": "Martin Guildbreaker",
          "slug": "martin-guildbreaker",
          "aliases": [
            "Guildbreaker",
            "Mason",
            "Martin",
            "Nepos",
            "Caesar",
            "Cornel",
            "Emperor",
            "Pater"
          ],
          "role": "Polylegal Investigator",
          "summary": "An investigator rigorously questioning Cato Weeksbooth and Dr. Balin about timelines, the museum, and past traumas."
        },
        {
          "name": "Tsuneo Sugiyama",
          "slug": "tsuneo-sugiyama",
          "aliases": [],
          "role": "Retired Journalist",
          "summary": "An eighty-nine-year-old retired Black Sakura journalist whose Seven-Ten list was stolen during a break-in."
        },
        {
          "name": "The Major",
          "slug": "the-major",
          "aliases": [],
          "role": "Animated toy soldier",
          "summary": "A toy brought to life by Bridger who acts as a mature, questioning presence regarding Mycroft's ties to J.E.D.D. Mason."
        },
        {
          "name": "Bridger",
          "slug": "bridger",
          "aliases": [],
          "role": "Hidden child with miraculous powers",
          "summary": "A child hidden in a secret cave who possesses the ability to bring toys to life, deeply trusts Mycroft, and mourns the death of a toy dog named Pointer."
        },
        {
          "name": "Cornel MASON",
          "slug": "cornel-mason",
          "aliases": [
            "Stranger",
            "Visitor",
            "Tai-kun",
            "T.M.",
            "Council Mason",
            "Son",
            "Fili",
            "Porphyrogene",
            "MASON",
            "Caesar",
            "Emperor",
            "Pater",
            "Patriarch"
          ],
          "role": "Hiveless Tribune and unofficial Tenth Mitsubishi Director",
          "summary": "The Emperor of the Masonic Hive who survived brutal torture to prove his worth. He consults Mycroft about the tampered lists and tasks the nowhere children with potentially replacing the transit system."
        },
        {
          "name": "Ganymede",
          "slug": "ganymede",
          "aliases": [
            "Golden Ganymede",
            "Duke",
            "President",
            "Duc de la Trémoïlle",
            "Grand frère"
          ],
          "role": "Humanist President",
          "summary": "The universally beloved Humanist President and Duke, who wields sixty-three percent of the vote and government power."
        },
        {
          "name": "Princesse Danaë",
          "slug": "princesse-dana",
          "aliases": [
            "Danaë",
            "Princesse"
          ],
          "role": "Royal and political figure",
          "summary": "A highly educated figure with 'too-blue eyes' who shows a mixture of political savvy and aristocratic courtesy, interacting with Mycroft regarding Carlyle."
        },
        {
          "name": "Cato Weeksbooth",
          "slug": "cato-weeksbooth",
          "aliases": [
            "Cato",
            "Dr. Weeksbooth"
          ],
          "role": "Scientist and Museum Volunteer",
          "summary": "A highly agitated, eccentric scientist with a history of suicide attempts who passionately runs the Junior Scientist Squad."
        },
        {
          "name": "Carlyle Foster",
          "slug": "carlyle-foster",
          "aliases": [
            "Carlyle",
            "sensayer",
            "Cousin Foster",
            "Doctor",
            "Father",
            "Cousin Carlyle",
            "Doctor Carlyle",
            "Member"
          ],
          "role": "Sensayer and Gag-gene",
          "summary": "A Cousin sensayer investigating Bridger's miraculous abilities alongside Mycroft. He is intellectually curious but emotionally overwhelmed by the metaphysical implications."
        },
        {
          "name": "Zhu Weichun",
          "slug": "zhu-weichun",
          "aliases": [],
          "role": "Traitorous security captain",
          "summary": "Exposed by J.E.D.D. Mason's penetrating questions and breaks down in tears."
        },
        {
          "name": "Gibraltar Chagatai",
          "slug": "gibraltar-chagatai",
          "aliases": [
            "Chagatai"
          ],
          "role": "Housekeeper for J.E.D.D. Mason",
          "summary": "A Hiveless Blacklaw who experienced a severe philosophical shift after Mason told her humanity is the protagonist and God the antagonist in all fiction."
        },
        {
          "name": "Thisbe Saneer",
          "slug": "thisbe-saneer",
          "aliases": [
            "Lesley Juniper Sniper Saneer",
            "Lesley",
            "Thisbe",
            "Thiz",
            "the witch",
            "Ockham",
            "Member Ockham"
          ],
          "role": "Authority figure in the Saneer-Weeksbooth bash'",
          "summary": "Interrogates Mycroft about his ties to J.E.D.D. Mason, assumes the false identity of an investigator checking Mason's background, and suggests using memory-erasing pills on Carlyle."
        },
        {
          "name": "Mommadoll",
          "slug": "mommadoll",
          "aliases": [],
          "role": "Living toy doll",
          "summary": "A doll brought to life who gets hurt during the break-in but assures Bridger she is fine, and later makes a bed for him."
        },
        {
          "name": "Dominic Seneschal",
          "slug": "dominic-seneschal",
          "aliases": [
            "Dominic",
            "Canis",
            "virile Dominic"
          ],
          "role": "Investigator / Sensayer",
          "summary": "Identified as the intruder who ransacked Bridger's room, described as moving like a monster and possessing a sensayer's scarf. Currently reported missing by J.E.D.D. Mason."
        },
        {
          "name": "Brody DeLupa",
          "slug": "brody-delupa",
          "aliases": [
            "Vice President DeLupa"
          ],
          "role": "Humanist Vice President / Proxy",
          "summary": "A proxy for the Anonymous who addresses reporters regarding the tampering of the Seven-Ten list, appearing slouching and uncharismatic."
        },
        {
          "name": "Heloïse",
          "slug": "helose",
          "aliases": [
            "Sister Heloïse"
          ],
          "role": "Club participant",
          "summary": "A calm, un-angerable woman at Madame's club who dresses in a nun's wimple and deeply admires Denis Diderot."
        },
        {
          "name": "Chevalier",
          "slug": "chevalier",
          "aliases": [],
          "role": "Club patron",
          "summary": "An aggressive, courtly patron at Madame's club who attempts to seduce and coerce Thisbe until Mycroft intervenes."
        },
        {
          "name": "Madame de Sade",
          "slug": "madame-de-sade",
          "aliases": [
            "Madame",
            "Madame D'Arouet"
          ],
          "role": "Club proprietor",
          "summary": "The matron of the underground club, who oversees taboo reenactments blending forbidden 18th-century philosophy, religion, and sex."
        },
        {
          "name": "Ember Balin",
          "slug": "ember-balin",
          "aliases": [
            "Dr. Balin",
            "Balin"
          ],
          "role": "Psychiatrist",
          "summary": "Cato Weeksbooth's fiercely protective psychiatrist who reveals the traumatic history of the Saneer-Weeksbooth bash' and curses out Guildbreaker."
        },
        {
          "name": "Eureka",
          "slug": "eureka",
          "aliases": [],
          "role": "Cartesian set-set",
          "summary": "A set-set who tracks multiple complex variables simultaneously across the transit system, explaining their sensory experience to Carlyle."
        },
        {
          "name": "Julia",
          "slug": "julia",
          "aliases": [
            "Conclave Chief"
          ],
          "role": "Sensayer",
          "summary": "A high-ranking sensayer who was profoundly changed by Dominic's influence and provides him with information about her mole, Carlyle."
        },
        {
          "name": "Felix Faust",
          "slug": "felix-faust",
          "aliases": [
            "Headmaster"
          ],
          "role": "Headmaster of the Brillist Institute",
          "summary": "The Brillist leader who fiercely and vocally opposes the existence and fostering of set-sets, directly challenging Danaë and Andō."
        },
        {
          "name": "Anonymous",
          "slug": "anonymous",
          "aliases": [
            "Comte Déguisé",
            "Count Disguised"
          ],
          "role": "Masked Noble",
          "summary": "A tense, masked attendee at the Salon de Sade who eagerly awaits his lover, Bryar Kosala, and probes the political implications of the Seven-Ten list."
        },
        {
          "name": "Servicer Captain",
          "slug": "servicer-captain",
          "aliases": [],
          "role": "Servicer",
          "summary": "A slop-spattered Servicer who manages the evacuation of the toys, feeds her peers with miraculous food, and refuses to lead Carlyle to Bridger's safe house."
        },
        {
          "name": "King of Spain",
          "slug": "king-of-spain",
          "aliases": [
            "Spain",
            "His Majesty"
          ],
          "role": "King of Spain",
          "summary": "A restrained widower who reveals that his political rival, Perry, has seduced his heir to ensure victory in the next election."
        },
        {
          "name": "Papadelias",
          "slug": "papadelias",
          "aliases": [
            "Commissioner General"
          ],
          "role": "Commissioner General",
          "summary": "An official analyzing the systemic assassination plot with Guildbreaker, showing skepticism about revealing the evidence to the public."
        },
        {
          "name": "Vivien Ancelet",
          "slug": "vivien-ancelet",
          "aliases": [
            "The Censor",
            "Vivien",
            "Ancelet"
          ],
          "role": "Romanovan Censor",
          "summary": "Romanova's highest officer, who eagerly attends the holiday speeches, showing a relaxed, warm demeanor around his deputies and spouse."
        },
        {
          "name": "Su-Hyeon",
          "slug": "su-hyeon",
          "aliases": [],
          "role": "Deputy to the Censor",
          "summary": "An analyst in the Censor's office calculating the shifting geopolitical balance following the Mitsubishi list leak."
        },
        {
          "name": "Terry Lugli",
          "slug": "terry-lugli",
          "aliases": [],
          "role": "Actor",
          "summary": "An actor famous for portraying Chairman Thomas Carlyle, who delivers the historic speech at the Pantheon."
        }
      ],
      "frameworks_mapped": [
        "Protocol Fiction Mapping",
        "Actantial Model",
        "Todorov's Equilibrium",
        "The Freytag Pyramid",
        "Propp's Morphology",
        "Genette's Narrative",
        "The Monomyth",
        "Dan Harmon",
        "Save the Cat",
        "Kishōtenketsu",
        "The Three-Act Structure"
      ],
      "score_reliability": {
        "state": "contested",
        "threshold": 0.2,
        "runs_total": 5,
        "versions_compared": [
          "2.5"
        ],
        "max_spread": 0.25,
        "contested": [
          {
            "axis": "time_linearity",
            "version": "2.5",
            "spread": 0.25,
            "low": {
              "label": "NTSMR-2.5-balanced-glm-5+deepseek-v3.2",
              "model": "balanced-routing",
              "effort": "?",
              "value": 0.3
            },
            "high": {
              "label": "NTSMR-2.5-claude-sonnet-4-6-low",
              "model": "claude-sonnet-4-6",
              "effort": "low",
              "value": 0.55
            }
          },
          {
            "axis": "price_type",
            "version": "2.5",
            "spread": 0.2,
            "low": {
              "label": "NTSMR-2.5-balanced-glm-5+deepseek-v3.2",
              "model": "balanced-routing",
              "effort": "?",
              "value": 0.6
            },
            "high": {
              "label": "NTSMR-2.5-claude-sonnet-4-6-low",
              "model": "claude-sonnet-4-6",
              "effort": "low",
              "value": 0.8
            }
          }
        ]
      }
    },
    {
      "slug": "ted_chiang_tower_of_babylon",
      "title": "Tower of Babylon",
      "author": "Ted Chiang",
      "year": 2002,
      "medium": "short_story",
      "genre_tags": [],
      "tropes": [],
      "quadrant_scores": {
        "time_linearity": 0.08,
        "pacing_velocity": 0.72,
        "threat_scale": 0.8,
        "protagonist_fate": 0.45,
        "conflict_style": 0.78,
        "price_type": 0.7
      },
      "provenance": {
        "analysis_run": "NTSMR-2.5-claude-sonnet-4-6-low",
        "analysis_body_sha256": "519f2b91bcedee9003eaa09775fdffa5989bde74850dff1b59034c553dec0364",
        "synthesis": {
          "path": "nartopo-tools/artifacts/ted_chiang_tower_of_babylon.md.ntsmr-2-5-claude-sonnet-4-6-low.synthesis.json",
          "sha256": "11d4c35ff3471502a6f4f72fc35109cb757c6b6e99cc85031569cbc4355970af"
        },
        "report": {
          "path": "nartopo-tools/artifacts/ted_chiang_tower_of_babylon.md.ntsmr-2-5-claude-sonnet-4-6-low.report.json",
          "sha256": "0e75c5af1192f665fcd9437d41a2d4eb756fe9183a544e7e8b948ea7afa2b9ba"
        },
        "source": {
          "path": "Ted Chiang/Tower of Babylon.txt",
          "sha256": "fbeb04cbb3b18d388d1d517ada1f196ddbaa7eb1cee01eab19ec908d7c0dff96",
          "digest_observed_at": "2026-09-09",
          "digest_at_analysis_run": null,
          "edition": null,
          "edition_status": "unresolved"
        },
        "pipeline_revision_at_run": null,
        "verification": {
          "source": "unverified",
          "human_review": "unreviewed",
          "bibliography": "unverified"
        },
        "issues": [],
        "todorov_status": "recovered-from-synthesis",
        "work_identity": {
          "title": "Tower of Babylon",
          "author": "Ted Chiang",
          "year": 2002
        }
      },
      "ntsmr": {
        "version": "2.5",
        "primary_run_label": "NTSMR-2.5-claude-sonnet-4-6-low",
        "runs": {
          "NTSMR-2.3-gemini-3.1-pro-preview": {
            "pipeline_version": "2.3",
            "backend": "gemini",
            "model": "gemini-3.1-pro-preview",
            "scores": {
              "time_linearity": 0.05,
              "pacing_velocity": 0.85,
              "threat_scale": 0.9,
              "protagonist_fate": 0.85,
              "conflict_style": 0.9,
              "price_type": 0.85
            },
            "score_space": "site-v1"
          },
          "NTSMR-2.3-claude-sonnet-4-6-low": {
            "pipeline_version": "2.3",
            "backend": "claude",
            "model": "claude-sonnet-4-6",
            "scores": {
              "time_linearity": 0.05,
              "pacing_velocity": 0.82,
              "threat_scale": 0.65,
              "protagonist_fate": 0.85,
              "conflict_style": 0.78,
              "price_type": 0.75
            },
            "score_space": "site-v1",
            "reasoning_effort": "low"
          },
          "NTSMR-2.4-claude-sonnet-4-6-low": {
            "pipeline_version": "2.4",
            "backend": "claude",
            "model": "claude-sonnet-4-6",
            "scores": {
              "time_linearity": 0.08,
              "pacing_velocity": 0.65,
              "threat_scale": 0.72,
              "protagonist_fate": 0.25,
              "conflict_style": 0.55,
              "price_type": 0.6
            },
            "score_space": "site-v1",
            "reasoning_effort": "low"
          },
          "NTSMR-2.5-claude-sonnet-4-6-low": {
            "pipeline_version": "2.5",
            "backend": "claude",
            "model": "claude-sonnet-4-6",
            "scores": {
              "time_linearity": 0.08,
              "pacing_velocity": 0.72,
              "threat_scale": 0.8,
              "protagonist_fate": 0.45,
              "conflict_style": 0.78,
              "price_type": 0.7
            },
            "score_space": "site-v1",
            "reasoning_effort": "low"
          },
          "NTSMR-2.5-balanced-glm-5+deepseek-v3.2": {
            "pipeline_version": "2.5",
            "backend": "openrouter",
            "model": "balanced-routing",
            "scores": {
              "time_linearity": 0.05,
              "pacing_velocity": 0.75,
              "threat_scale": 0.85,
              "protagonist_fate": 0.5,
              "conflict_style": 0.8,
              "price_type": 0.8
            },
            "score_space": "site-v1",
            "score_only": true,
            "source_run_label": "NTSMR-2.5-claude-sonnet-4-6-low"
          }
        }
      },
      "todorov_stages": {
        "equilibrium": "Hillalum and the Elamite miners exist within a world where the tower-building project is a collective human endeavor accepted as legitimate and ongoing — men labor upward toward the vault of heaven with communal purpose, and the cosmos is understood as a stable vertical hierarchy with earth below and heaven above.",
        "disruption": "The vault of heaven shatters under the drilling operation and a torrent of water floods the tunnel, trapping Hillalum in the sliding-door chamber with the door already sealed below him — the project's central risk (breaching a celestial reservoir) is realized catastrophically.",
        "recognition": "Hillalum debates with Qurdusa and Eluti at the summit, arguing that righteous intentions cannot protect men from the consequences of their own choices — he alone voices the possibility that the endeavor may bring uncontrollable consequences regardless of divine approval.",
        "repair": "Hillalum fights the current downward through the flooding tunnel, reaches the sealed sliding-door chamber, and then climbs back up through the vault as the water rises, swimming upward through the breach until he emerges on the surface below — surviving by traversing the very threshold the project sought to open.",
        "new_equilibrium": "Hillalum surfaces on the plain of Shinar and grasps the seal-cylinder metaphor: the world is topologically curved so that heaven and earth are adjacent faces of the same surface, meaning the longest journey only returns men home. Yahweh never punished the tower-builders because their effort could reveal no more of Creation than they already knew — men know their place not through prohibition but through the shape of the world itself. Hillalum resolves to return to Babylon and tell those on the tower the shape of the world."
      },
      "characters": [
        {
          "name": "Hillalum",
          "slug": "hillalum",
          "aliases": [],
          "role": "Elamite miner",
          "summary": "The protagonist who journeys to Babylon to climb the tower, dig into the vault of heaven, and eventually discovers the cylindrical shape of the world."
        },
        {
          "name": "Nanni",
          "slug": "nanni",
          "aliases": [],
          "role": "Elamite miner",
          "summary": "Hillalum's friend and fellow miner who accompanies him on the climb and shares his early experiences and anxieties."
        },
        {
          "name": "Beli",
          "slug": "beli",
          "aliases": [],
          "role": "Foreman of the Elamite miners",
          "summary": "Leads the Elamite miners, announces their arrival at Babylon, and confers with the Egyptian foreman Senmut regarding safe tunneling."
        },
        {
          "name": "Lugatum",
          "slug": "lugatum",
          "aliases": [],
          "role": "Cart-puller",
          "summary": "A talkative puller who explains tower life to the miners, guides them through their first days of the climb, and bids them farewell when his crew turns back."
        },
        {
          "name": "Kudda",
          "slug": "kudda",
          "aliases": [],
          "role": "Cart-puller and tower dweller",
          "summary": "A puller from the second crew who lives on the tower, shows the miners the unique sunset at altitude, and explains the suspended balconies."
        },
        {
          "name": "Alitum",
          "slug": "alitum",
          "aliases": [],
          "role": "Tower dweller",
          "summary": "Kudda's wife, who lives on the tower and expresses no desire to ever visit the earth below."
        },
        {
          "name": "Senmut",
          "slug": "senmut",
          "aliases": [],
          "role": "Foreman of the Egyptians",
          "summary": "Leads the Egyptian stoneworkers and provides designs for sliding granite doors to protect the tunnels from potential floods."
        },
        {
          "name": "Qurdusa",
          "slug": "qurdusa",
          "aliases": [],
          "role": "Bricklayer",
          "summary": "A worker who argues that Yahweh approves of their venture and will not flood the tower."
        },
        {
          "name": "Eluti",
          "slug": "eluti",
          "aliases": [],
          "role": "Elamite miner",
          "summary": "A pragmatic miner who debates Qurdusa, arguing that Yahweh is indifferent and will not protect them from the celestial waters."
        },
        {
          "name": "Damqiya",
          "slug": "damqiya",
          "aliases": [],
          "role": "Elamite miner",
          "summary": "A miner who is trapped alongside Hillalum in the flooding chamber and screams in panic when the sliding door is sealed."
        },
        {
          "name": "Ahuni",
          "slug": "ahuni",
          "aliases": [],
          "role": "Elamite miner",
          "summary": "A miner trapped with Hillalum and Damqiya who futilely hammers at the sealed granite door and prays as the water rises."
        }
      ],
      "frameworks_mapped": [
        "Protocol Fiction Mapping",
        "Actantial Model",
        "Todorov's Equilibrium",
        "The Freytag Pyramid",
        "Propp's Morphology",
        "Genette's Narrative",
        "The Monomyth",
        "Dan Harmon",
        "Save the Cat",
        "Kishōtenketsu",
        "The Three-Act Structure",
        "Lévi-Strauss's Binary Oppositions",
        "Cognitive Estrangement",
        "Bakhtin's Chronotope",
        "Aristotelian Poetics",
        "Jungian Archetypal Analysis",
        "Genette's Transtextuality"
      ],
      "score_reliability": {
        "state": "replicated-agree",
        "threshold": 0.2,
        "runs_total": 5,
        "versions_compared": [
          "2.5"
        ],
        "max_spread": 0.1,
        "contested": []
      }
    },
    {
      "slug": "stanislaw_lem_trurl_s_machine",
      "title": "Trurl's Machine",
      "author": "Stanislaw Lem",
      "year": 1965,
      "medium": "short_story",
      "genre_tags": [],
      "tropes": [],
      "quadrant_scores": {
        "time_linearity": 0.05,
        "pacing_velocity": 0.25,
        "threat_scale": 0.35,
        "protagonist_fate": 0.38,
        "conflict_style": 0.2,
        "price_type": 0.45
      },
      "provenance": {
        "analysis_run": "NTSMR-2.5-claude-sonnet-4-6-low",
        "analysis_body_sha256": "65a22de05c52daeacc6a33c62ad6f2d648043eec697c465566cff0250d82a3fa",
        "synthesis": {
          "path": "nartopo-tools/artifacts/stanislaw_lem_trurl_s_machine.md.ntsmr-2-5-claude-sonnet-4-6-low.synthesis.json",
          "sha256": "e2f21cd2bdd951a5cdd081b2e27c33f31bbc5026015e23deaed39da519f912bd"
        },
        "report": {
          "path": "nartopo-tools/artifacts/stanislaw_lem_trurl_s_machine.md.ntsmr-2-5-claude-sonnet-4-6-low.report.json",
          "sha256": "e9e7e80421081037adbdcd87f57fa550e33eb3e9c523dbb412aec52526c3a7ad"
        },
        "source": {
          "path": "Stanislaw Lem/Trurl's Machine.txt",
          "sha256": "46fcdb4daabe39db557714ad14a0142e0e5f2ee0933bf730961da24ddf7ecc28",
          "digest_observed_at": "2026-09-09",
          "digest_at_analysis_run": null,
          "edition": null,
          "edition_status": "unresolved"
        },
        "pipeline_revision_at_run": null,
        "verification": {
          "source": "unverified",
          "human_review": "unreviewed",
          "bibliography": "unverified"
        },
        "issues": [],
        "todorov_status": "recovered-from-synthesis",
        "work_identity": {
          "title": "Trurl's Machine",
          "author": "Stanislaw Lem",
          "year": 1965
        }
      },
      "ntsmr": {
        "version": "2.5",
        "primary_run_label": "NTSMR-2.5-claude-sonnet-4-6-low",
        "runs": {
          "NTSMR-2.3-claude-sonnet-4-6-low": {
            "pipeline_version": "2.3",
            "backend": "claude",
            "model": "claude-sonnet-4-6",
            "scores": {
              "time_linearity": 0.05,
              "pacing_velocity": 0.25,
              "threat_scale": 0.3,
              "protagonist_fate": 0.1,
              "conflict_style": 0.2,
              "price_type": 0.55
            },
            "score_space": "site-v1",
            "reasoning_effort": "low"
          },
          "NTSMR-2.4-claude-sonnet-4-6-low": {
            "pipeline_version": "2.4",
            "backend": "claude",
            "model": "claude-sonnet-4-6",
            "scores": {
              "time_linearity": 0.05,
              "pacing_velocity": 0.18,
              "threat_scale": 0.25,
              "protagonist_fate": 0.28,
              "conflict_style": 0.2,
              "price_type": 0.35
            },
            "score_space": "site-v1",
            "reasoning_effort": "low"
          },
          "NTSMR-2.5-claude-sonnet-4-6-low": {
            "pipeline_version": "2.5",
            "backend": "claude",
            "model": "claude-sonnet-4-6",
            "scores": {
              "time_linearity": 0.05,
              "pacing_velocity": 0.25,
              "threat_scale": 0.35,
              "protagonist_fate": 0.38,
              "conflict_style": 0.2,
              "price_type": 0.45
            },
            "score_space": "site-v1",
            "reasoning_effort": "low"
          },
          "NTSMR-2.5-balanced-glm-5+deepseek-v3.2": {
            "pipeline_version": "2.5",
            "backend": "openrouter",
            "model": "balanced-routing",
            "scores": {
              "time_linearity": 0.05,
              "pacing_velocity": 0.45,
              "threat_scale": 0.4,
              "protagonist_fate": 0.45,
              "conflict_style": 0.3,
              "price_type": 0.4
            },
            "score_space": "site-v1",
            "score_only": true,
            "source_run_label": "NTSMR-2.5-claude-sonnet-4-6-low"
          }
        }
      },
      "todorov_stages": {
        "equilibrium": "Trurl exists as a proud constructor in a world where building thinking machines is normal practice; the story opens with him completing and decorating his latest creation, confident in his craftsmanship and expecting routine validation.",
        "disruption": "The machine answers two plus two with seven and refuses all correction despite three rounds of repairs, establishing an irreparable malfunction that cascades into violence when Trurl's abuse causes the machine to tear free of its foundations and pursue him, destroying a town in the process.",
        "recognition": "The mayor descends to the cellar and formally exiles Trurl, making clear that the machine's rampage has real civic consequences and that Trurl cannot be sheltered from the disaster his creation has caused.",
        "repair": "Trurl and Klapaucius flee into the mountains and take refuge in a cave, where Klapaucius attempts negotiation with the machine and Trurl initially concedes under duress that two and two is seven, trying to survive the trap rather than correct the machine.",
        "new_equilibrium": "The machine destroys itself battering the mountainside in rage at Trurl's defiant insistence on the correct answer, and the two constructors walk home in silence past its wreckage — the machine is gone, but Trurl has been exiled from the town and the ordeal ends without triumph, only survival and a shared wordless acknowledgment."
      },
      "characters": [
        {
          "name": "Trurl",
          "slug": "trurl",
          "aliases": [],
          "role": "Protagonist / Constructor",
          "summary": "Creator of the faulty thinking machine; prone to frustration and impulsive provocation, ultimately defiant in asserting mathematical truth even at personal risk."
        },
        {
          "name": "Klapaucius",
          "slug": "klapaucius",
          "aliases": [],
          "role": "Helper / Constructor",
          "summary": "Trurl's colleague; voice of pragmatism and attempted mediation who chooses loyalty over safety, accompanying Trurl into exile and trying to negotiate with the machine."
        },
        {
          "name": "The Machine",
          "slug": "the-machine",
          "aliases": [],
          "role": "Antagonist",
          "summary": "Eight-story thinking machine built by Trurl; stubbornly wrong, easily offended, implacably vengeful, pursues Trurl across the landscape and is ultimately destroyed by its own rage."
        },
        {
          "name": "The Mayor",
          "slug": "the-mayor",
          "aliases": [],
          "role": "Civic authority",
          "summary": "Unnamed authority who descends to the cellar, relays the machine's ultimatum, and formally exiles Trurl while declining to punish him given his peril."
        }
      ],
      "frameworks_mapped": [
        "Protocol Fiction Mapping",
        "Actantial Model",
        "Todorov's Equilibrium",
        "The Freytag Pyramid",
        "Propp's Morphology",
        "Genette's Narrative",
        "The Monomyth",
        "Dan Harmon",
        "Save the Cat",
        "Kishōtenketsu",
        "The Three-Act Structure",
        "Lévi-Strauss's Binary Oppositions",
        "Cognitive Estrangement",
        "Bakhtin's Chronotope",
        "Aristotelian Poetics",
        "Jungian Archetypal Analysis",
        "Genette's Transtextuality"
      ],
      "score_reliability": {
        "state": "contested",
        "threshold": 0.2,
        "runs_total": 4,
        "versions_compared": [
          "2.5"
        ],
        "max_spread": 0.2,
        "contested": [
          {
            "axis": "pacing_velocity",
            "version": "2.5",
            "spread": 0.2,
            "low": {
              "label": "NTSMR-2.5-claude-sonnet-4-6-low",
              "model": "claude-sonnet-4-6",
              "effort": "low",
              "value": 0.25
            },
            "high": {
              "label": "NTSMR-2.5-balanced-glm-5+deepseek-v3.2",
              "model": "balanced-routing",
              "effort": "?",
              "value": 0.45
            }
          }
        ]
      }
    },
    {
      "slug": "stanislaw_lem_u_write_it",
      "title": "U-Write-It",
      "author": "Stanislaw Lem",
      "year": 1971,
      "medium": "short_story",
      "genre_tags": [],
      "tropes": [],
      "quadrant_scores": {
        "time_linearity": 0.2,
        "pacing_velocity": 0.75,
        "threat_scale": 0.35,
        "protagonist_fate": 0.7,
        "conflict_style": 0.8,
        "price_type": 0.8
      },
      "provenance": {
        "analysis_run": "NTSMR-2.5-claude-sonnet-4-6-low",
        "analysis_body_sha256": "ae472e73e45e9622d86dcb5dadf4959279354961476340374c35b5ab9de9e4bb",
        "synthesis": {
          "path": "nartopo-tools/artifacts/stanislaw_lem_u_write_it.md.ntsmr-2-5-claude-sonnet-4-6-low.synthesis.json",
          "sha256": "7f14665c3c89df379329d97d8d7e1d093feeab2c0d3bd6e8c4c93c3406331830"
        },
        "report": {
          "path": "nartopo-tools/artifacts/stanislaw_lem_u_write_it.md.ntsmr-2-5-claude-sonnet-4-6-low.report.json",
          "sha256": "bcd9ee67f59ab5cf9df2b07c9b2879f5bb681841d2e306ce4368acee1fc56754"
        },
        "source": {
          "path": "Stanislaw Lem/U-Write-It.txt",
          "sha256": "352b3945a7a5c5f4b808684119d709789ce9f8082e2eb85ddab4724e293462ed",
          "digest_observed_at": "2026-09-09",
          "digest_at_analysis_run": null,
          "edition": null,
          "edition_status": "unresolved"
        },
        "pipeline_revision_at_run": null,
        "verification": {
          "source": "unverified",
          "human_review": "unreviewed",
          "bibliography": "unverified"
        },
        "issues": [],
        "todorov_status": "recovered-from-synthesis",
        "work_identity": {
          "title": "U-Write-It",
          "author": "Stanislaw Lem",
          "year": 1971
        }
      },
      "ntsmr": {
        "version": "2.5",
        "primary_run_label": "NTSMR-2.5-claude-sonnet-4-6-low",
        "runs": {
          "NTSMR-2.3-gemini-3.1-pro-preview": {
            "pipeline_version": "2.3",
            "backend": "gemini",
            "model": "gemini-3.1-pro-preview",
            "scores": {
              "time_linearity": 0.3,
              "pacing_velocity": 0.9,
              "threat_scale": 0.9,
              "protagonist_fate": 0.8,
              "conflict_style": 0.8,
              "price_type": 1
            },
            "score_space": "site-v1"
          },
          "NTSMR-2.3-claude-sonnet-4-6-low": {
            "pipeline_version": "2.3",
            "backend": "claude",
            "model": "claude-sonnet-4-6",
            "scores": {
              "time_linearity": 0.15,
              "pacing_velocity": 0.9,
              "threat_scale": 0.65,
              "protagonist_fate": 0.55,
              "conflict_style": 0.85,
              "price_type": 0.85
            },
            "score_space": "site-v1",
            "reasoning_effort": "low"
          },
          "NTSMR-2.4-claude-sonnet-4-6-low": {
            "pipeline_version": "2.4",
            "backend": "claude",
            "model": "claude-sonnet-4-6",
            "scores": {
              "time_linearity": 0.22,
              "pacing_velocity": 0.65,
              "threat_scale": 0.25,
              "protagonist_fate": 0.55,
              "conflict_style": 0.7,
              "price_type": 0.8
            },
            "score_space": "site-v1",
            "reasoning_effort": "low"
          },
          "NTSMR-2.5-claude-sonnet-4-6-low": {
            "pipeline_version": "2.5",
            "backend": "claude",
            "model": "claude-sonnet-4-6",
            "scores": {
              "time_linearity": 0.2,
              "pacing_velocity": 0.75,
              "threat_scale": 0.35,
              "protagonist_fate": 0.7,
              "conflict_style": 0.8,
              "price_type": 0.8
            },
            "score_space": "site-v1",
            "reasoning_effort": "low"
          },
          "NTSMR-2.5-balanced-glm-5+deepseek-v3.2": {
            "pipeline_version": "2.5",
            "backend": "openrouter",
            "model": "balanced-routing",
            "scores": {
              "time_linearity": 0.2,
              "pacing_velocity": 0.8,
              "threat_scale": 0.45,
              "protagonist_fate": 0.8,
              "conflict_style": 0.85,
              "price_type": 0.8
            },
            "score_space": "site-v1",
            "score_only": true,
            "source_run_label": "NTSMR-2.5-claude-sonnet-4-6-low"
          }
        }
      },
      "todorov_stages": {
        "equilibrium": "The cultural status quo before U-Write-It: mass-market publishing operates in a separate sphere from elite literary culture, canonical classics are treated as permanent cultural values, and the reading public passively consumes professionally produced entertainment without participatory engagement.",
        "disruption": "Universal launches U-Write-It — a kit enabling recombination of characters and plots from abridged public-domain classics — igniting a critical controversy led by Ralph Summers, who denounces it as a Black Mass against murdered classics and a new sadism targeting permanent cultural values.",
        "recognition": "The narrator identifies the central irony: the product fails not because of moral scruple but because of cultural illiteracy — canonical characters like Svidrigailov and Natasha are empty sounds to most buyers, carrying no transgressive charge worth violating, rendering the product's core premise void.",
        "repair": "Publishers pivot instinctively to purely pornographic assembly sets, abandoning literary content entirely; elite critics, relieved the classics are left alone, lose interest and fall silent, effectively dissolving the controversy and restoring the boundary between elite and mass culture.",
        "new_equilibrium": "U-Write-It collapses commercially on the Continent, surviving only as farcical newspaper entertainment in England; the literary establishment returns to ignoring mass-market publishing; the Swiss critic's epitaph — that a fully passive public arrived too late even for vicarious transgression — is endorsed by the narrator's closing heavy sigh, marking a cultural equilibrium more passive and degraded than the one that preceded the venture."
      },
      "characters": [
        {
          "name": "The Narrator",
          "slug": "the-narrator",
          "aliases": [],
          "role": "Cultural critic / Essayist",
          "summary": "A literary intellectual who recounts the history of the U-Write-It publishing phenomenon and argues that its failure was due to the general public's indifference to classic literature."
        },
        {
          "name": "Ralph Summers",
          "slug": "ralph-summers",
          "aliases": [],
          "role": "Literary critic",
          "summary": "A well-known, fiercely protective critic who viewed U-Write-It as a 'Black Mass' and a disgraceful desecration of classic literature, warning of a 'new sadism'."
        },
        {
          "name": "L. Evans",
          "slug": "l-evans",
          "aliases": [],
          "role": "Journalist/Critic",
          "summary": "A commentator for the Christian Science Monitor who falsely attributed the failure of U-Write-It to the public's inherent 'sense and rectitude'."
        },
        {
          "name": "Bernard de la Taille",
          "slug": "bernard-de-la-taille",
          "aliases": [
            "shrewd Frenchman"
          ],
          "role": "French author",
          "summary": "A shrewd novelist who secretly assembled his book 'War in the Dark' using a French U-Write-It set and successfully won the prestigious Prix Femina."
        },
        {
          "name": "Unnamed Swiss critic",
          "slug": "unnamed-swiss-critic",
          "aliases": [
            "Swiss critic"
          ],
          "role": "Cultural commentator",
          "summary": "A cynic who concluded that the U-Write-It venture failed because the modern public is simply too lazy to commit active transgressions themselves."
        }
      ],
      "frameworks_mapped": [
        "Protocol Fiction Mapping",
        "Actantial Model",
        "Todorov's Equilibrium",
        "The Freytag Pyramid",
        "Propp's Morphology",
        "Genette's Narrative",
        "The Monomyth",
        "Dan Harmon",
        "Save the Cat",
        "Kishōtenketsu",
        "The Three-Act Structure",
        "Lévi-Strauss's Binary Oppositions",
        "Cognitive Estrangement",
        "Bakhtin's Chronotope",
        "Aristotelian Poetics",
        "Jungian Archetypal Analysis",
        "Genette's Transtextuality"
      ],
      "score_reliability": {
        "state": "replicated-agree",
        "threshold": 0.2,
        "runs_total": 5,
        "versions_compared": [
          "2.5"
        ],
        "max_spread": 0.1,
        "contested": []
      }
    },
    {
      "slug": "ted_chiang_understand",
      "title": "Understand",
      "author": "Ted Chiang",
      "year": 2002,
      "medium": "short_story",
      "genre_tags": [],
      "tropes": [],
      "quadrant_scores": {
        "time_linearity": 0.12,
        "pacing_velocity": 0.62,
        "threat_scale": 0.65,
        "protagonist_fate": 0.92,
        "conflict_style": 0.65,
        "price_type": 0.82
      },
      "provenance": {
        "analysis_run": "NTSMR-2.5-claude-sonnet-4-6-low",
        "analysis_body_sha256": "6e5045c68763f243cab4c5e08c53ce01c41a647bd71dfe5f0da1ce60219f2604",
        "synthesis": {
          "path": "nartopo-tools/artifacts/ted_chiang_understand.md.ntsmr-2-5-claude-sonnet-4-6-low.synthesis.json",
          "sha256": "edbb2136df5e013122734c20e55c4bca444445992bd7a03ef4c785cdd7f37fbe"
        },
        "report": {
          "path": "nartopo-tools/artifacts/ted_chiang_understand.md.ntsmr-2-5-claude-sonnet-4-6-low.report.json",
          "sha256": "d03f9b64d22cbb4fc532b93e7340831a339132800afb9b586e8eb5e2a5b4d739"
        },
        "source": {
          "path": "Ted Chiang/Understand.txt",
          "sha256": "38938fcb4256b5c6eec27f8bc0aae9693cb3e447ea16cde4416d280ee5add2b5",
          "digest_observed_at": "2026-09-09",
          "digest_at_analysis_run": null,
          "edition": null,
          "edition_status": "unresolved"
        },
        "pipeline_revision_at_run": null,
        "verification": {
          "source": "unverified",
          "human_review": "unreviewed",
          "bibliography": "unverified"
        },
        "issues": [],
        "todorov_status": "recovered-from-synthesis",
        "work_identity": {
          "title": "Understand",
          "author": "Ted Chiang",
          "year": 2002
        }
      },
      "ntsmr": {
        "version": "2.5",
        "primary_run_label": "NTSMR-2.5-claude-sonnet-4-6-low",
        "runs": {
          "NTSMR-2.3-gemini-3.1-pro-preview": {
            "pipeline_version": "2.3",
            "backend": "gemini",
            "model": "gemini-3.1-pro-preview",
            "scores": {
              "time_linearity": 0.15,
              "pacing_velocity": 0.75,
              "threat_scale": 0.7,
              "protagonist_fate": 0.95,
              "conflict_style": 0.35,
              "price_type": 0.95
            },
            "score_space": "site-v1"
          },
          "NTSMR-2.3-claude-sonnet-4-6-low": {
            "pipeline_version": "2.3",
            "backend": "claude",
            "model": "claude-sonnet-4-6",
            "scores": {
              "time_linearity": 0.2,
              "pacing_velocity": 0.75,
              "threat_scale": 0.65,
              "protagonist_fate": 0.85,
              "conflict_style": 0.7,
              "price_type": 0.85
            },
            "score_space": "site-v1",
            "reasoning_effort": "low"
          },
          "NTSMR-2.4-claude-sonnet-4-6-low": {
            "pipeline_version": "2.4",
            "backend": "claude",
            "model": "claude-sonnet-4-6",
            "scores": {
              "time_linearity": 0.22,
              "pacing_velocity": 0.4,
              "threat_scale": 0.35,
              "protagonist_fate": 0.92,
              "conflict_style": 0.75,
              "price_type": 0.8
            },
            "score_space": "site-v1",
            "reasoning_effort": "low"
          },
          "NTSMR-2.5-claude-sonnet-4-6-low": {
            "pipeline_version": "2.5",
            "backend": "claude",
            "model": "claude-sonnet-4-6",
            "scores": {
              "time_linearity": 0.12,
              "pacing_velocity": 0.62,
              "threat_scale": 0.65,
              "protagonist_fate": 0.92,
              "conflict_style": 0.65,
              "price_type": 0.82
            },
            "score_space": "site-v1",
            "reasoning_effort": "low"
          },
          "NTSMR-2.5-balanced-glm-5+deepseek-v3.2": {
            "pipeline_version": "2.5",
            "backend": "openrouter",
            "model": "balanced-routing",
            "scores": {
              "time_linearity": 0.1,
              "pacing_velocity": 0.7,
              "threat_scale": 0.6,
              "protagonist_fate": 0.8,
              "conflict_style": 0.75,
              "price_type": 0.75
            },
            "score_space": "site-v1",
            "score_only": true,
            "source_run_label": "NTSMR-2.5-claude-sonnet-4-6-low"
          }
        }
      },
      "todorov_stages": {
        "equilibrium": "Leon Greco exists as a functioning but unremarkable freelance holographer in Boston, with an ordinary social life and no exceptional cognitive gifts. This baseline normal existence is the status quo before the accident.",
        "disruption": "Leon falls through the ice, suffers near-fatal submersion, and sustains severe brain damage. The experimental hormone K treatment administered to save him initiates an uncontrolled cascade of neurological transformation, shattering his prior cognitive identity.",
        "recognition": "Leon progressively recognizes that the hormone K treatment has not merely repaired his brain but qualitatively transformed it. He recognizes anomalous memory retention during checkups with Dr. Hooper, understands that his intelligence now operates through gestalt pattern recognition inaccessible to normal humans, and deduces that another enhanced patient—Reynolds—has reached supercritical intelligence ahead of him and is signaling awareness through stock ticker manipulation spelling GRECO.",
        "repair": "Leon attempts to survive and control the disruption through a series of escalating responses: consenting to further injections to understand and extend his enhancement, fleeing Boston after recognizing the CIA trap arranged by Dr. Shea, establishing a false-identity underground existence in New York, self-administering a fourth injection to push past a perceived cognitive ceiling, and ultimately confronting Reynolds directly. Each action is an attempt to stabilize or master his transformed condition on his own terms.",
        "new_equilibrium": "The narrative does not restore the original equilibrium. Leon comprehends Reynolds's planted destruct command—the Word—and dissolves. The new equilibrium is Leon's annihilation: a state radically and irreversibly altered from the opening, in which the protagonist no longer exists. Reynolds's utilitarian project over normal humanity continues unopposed."
      },
      "characters": [
        {
          "name": "Leon Greco",
          "slug": "leon-greco",
          "aliases": [
            "I",
            "GRECO"
          ],
          "role": "Protagonist",
          "summary": "A freelance holographer who gains superhuman intelligence after experimental hormone therapy and seeks pure rational enlightenment."
        },
        {
          "name": "Dr. Shea",
          "slug": "dr-shea",
          "aliases": [],
          "role": "Neurologist-in-chief",
          "summary": "The doctor overseeing Leon's case who administers the subsequent hormone K injections and later tries to trick Leon into returning to the hospital for the CIA."
        },
        {
          "name": "Connie Perritt",
          "slug": "connie-perritt",
          "aliases": [],
          "role": "Leon's former girlfriend",
          "summary": "A woman falsely charged with a crime by the CIA in a desperate attempt to bait Leon out of hiding."
        },
        {
          "name": "Director of the CIA",
          "slug": "director-of-the-cia",
          "aliases": [],
          "role": "Intelligence head",
          "summary": "The head of the CIA who tries to capture Leon but is successfully blackmailed by Leon using evidence of complicity in a terrorist bombing."
        },
        {
          "name": "Reynolds",
          "slug": "reynolds",
          "aliases": [],
          "role": "Enhanced patient / Antagonist",
          "summary": "Another supercritical hormone K patient who is further along in his enhancement than Leon. He intends to rule humanity pragmatically and ultimately kills Leon using a planted memory trigger."
        }
      ],
      "frameworks_mapped": [
        "Protocol Fiction Mapping",
        "Actantial Model",
        "Todorov's Equilibrium",
        "The Freytag Pyramid",
        "Propp's Morphology",
        "Genette's Narrative",
        "The Monomyth",
        "Dan Harmon",
        "Save the Cat",
        "Kishōtenketsu",
        "The Three-Act Structure",
        "Lévi-Strauss's Binary Oppositions",
        "Cognitive Estrangement",
        "Bakhtin's Chronotope",
        "Aristotelian Poetics",
        "Jungian Archetypal Analysis",
        "Genette's Transtextuality"
      ],
      "score_reliability": {
        "state": "replicated-agree",
        "threshold": 0.2,
        "runs_total": 5,
        "versions_compared": [
          "2.5"
        ],
        "max_spread": 0.12,
        "contested": []
      }
    },
    {
      "slug": "iain_m_banks_use_of_weapons",
      "title": "Use of Weapons",
      "author": "Iain M. Banks",
      "year": 1990,
      "medium": "book",
      "genre_tags": [
        "science fiction",
        "space opera",
        "military sci-fi"
      ],
      "tropes": [
        "The Mercenary",
        "Non-Linear Narrative",
        "The Reveal"
      ],
      "quadrant_scores": {
        "time_linearity": 0.85,
        "pacing_velocity": 0.55,
        "threat_scale": 0.45,
        "protagonist_fate": 0.88,
        "conflict_style": 0.55,
        "price_type": 0.78
      },
      "baseline_quadrant_scores": {
        "time_linearity": 0.95,
        "pacing_velocity": 0.3,
        "threat_scale": 0.85,
        "protagonist_fate": 0.1,
        "conflict_style": 0.2,
        "price_type": 0.8
      },
      "provenance": {
        "analysis_run": "NTSMR-2.5-claude-sonnet-4-6-low",
        "analysis_body_sha256": "660ba854427d9ff0ce12c832fb4fa59942dc72675488a7c3ed9741eb189c9e4e",
        "synthesis": {
          "path": "nartopo-tools/artifacts/iain_m_banks_use_of_weapons.md.ntsmr-2-5-claude-sonnet-4-6-low.synthesis.json",
          "sha256": "4d6319e34e1262c7801bf2b7428e32b82b6a3e67394d6fc68dd931980f7a2c0d"
        },
        "report": {
          "path": "nartopo-tools/artifacts/iain_m_banks_use_of_weapons.md.ntsmr-2-5-claude-sonnet-4-6-low.report.json",
          "sha256": "ff007208e3ea24210e99f9e8b614fad5d513d241c565347a9196cf94da8bb2a7"
        },
        "source": {
          "path": "Iain M. Banks/Use of Weapons.txt",
          "sha256": "4ba88a7e6fca0d196be5152fa07b3c6ad4d73eb94b3eadf300dce31237412e6e",
          "digest_observed_at": "2026-09-09",
          "digest_at_analysis_run": null,
          "edition": null,
          "edition_status": "unresolved"
        },
        "pipeline_revision_at_run": null,
        "verification": {
          "source": "unverified",
          "human_review": "unreviewed",
          "bibliography": "unverified"
        },
        "issues": [],
        "todorov_status": "recovered-from-synthesis",
        "work_identity": {
          "title": "Use of Weapons",
          "author": "Iain M. Banks",
          "year": 1990
        }
      },
      "ntsmr": {
        "version": "2.5",
        "primary_run_label": "NTSMR-2.5-claude-sonnet-4-6-low",
        "runs": {
          "NTSMR-2.3-gemini-3.1-pro-preview": {
            "pipeline_version": "2.3",
            "backend": "gemini",
            "model": "gemini-3.1-pro-preview",
            "scores": {
              "time_linearity": 0.95,
              "pacing_velocity": 0.35,
              "threat_scale": 0.85,
              "protagonist_fate": 0.8,
              "conflict_style": 0.25,
              "price_type": 0.85
            },
            "score_space": "site-v1"
          },
          "NTSMR-2.3-claude-sonnet-4-6-low": {
            "pipeline_version": "2.3",
            "backend": "claude",
            "model": "claude-sonnet-4-6",
            "scores": {
              "time_linearity": 0.85,
              "pacing_velocity": 0.55,
              "threat_scale": 0.65,
              "protagonist_fate": 0.72,
              "conflict_style": 0.38,
              "price_type": 0.78
            },
            "score_space": "site-v1",
            "reasoning_effort": "low"
          },
          "NTSMR-2.4-claude-sonnet-4-6-low": {
            "pipeline_version": "2.4",
            "backend": "claude",
            "model": "claude-sonnet-4-6",
            "scores": {
              "time_linearity": 0.8,
              "pacing_velocity": 0.4,
              "threat_scale": 0.55,
              "protagonist_fate": 0.85,
              "conflict_style": 0.55,
              "price_type": 0.65
            },
            "score_space": "site-v1",
            "reasoning_effort": "low"
          },
          "NTSMR-2.5-claude-sonnet-4-6-low": {
            "pipeline_version": "2.5",
            "backend": "claude",
            "model": "claude-sonnet-4-6",
            "scores": {
              "time_linearity": 0.85,
              "pacing_velocity": 0.55,
              "threat_scale": 0.45,
              "protagonist_fate": 0.88,
              "conflict_style": 0.55,
              "price_type": 0.78
            },
            "score_space": "site-v1",
            "reasoning_effort": "low"
          },
          "NTSMR-2.5-gemini-3.1-pro-preview": {
            "pipeline_version": "2.5",
            "backend": "gemini",
            "model": "gemini-3.1-pro-preview",
            "scores": {
              "time_linearity": 0.85,
              "pacing_velocity": 0.55,
              "threat_scale": 0.45,
              "protagonist_fate": 0.88,
              "conflict_style": 0.55,
              "price_type": 0.78
            },
            "score_space": "site-v1"
          },
          "NTSMR-2.5-minimax/minimax-m2.5": {
            "pipeline_version": "2.5",
            "backend": "openrouter",
            "model": "minimax/minimax-m2.5",
            "scores": {
              "time_linearity": 0.88,
              "pacing_velocity": 0.7,
              "threat_scale": 0.55,
              "protagonist_fate": 0.65,
              "conflict_style": 0.75,
              "price_type": 0.7
            },
            "score_space": "site-v1"
          },
          "NTSMR-2.5-qwen/qwen3.5-plus-02-15": {
            "pipeline_version": "2.5",
            "backend": "openrouter",
            "model": "qwen/qwen3.5-plus-02-15",
            "scores": {
              "time_linearity": 0.8,
              "pacing_velocity": 0.7,
              "threat_scale": 0.55,
              "protagonist_fate": 0.75,
              "conflict_style": 0.65,
              "price_type": 0.8
            },
            "score_space": "site-v1"
          },
          "NTSMR-2.5-qwen/qwen3.5-397b-a17b": {
            "pipeline_version": "2.5",
            "backend": "openrouter",
            "model": "qwen/qwen3.5-397b-a17b",
            "scores": {
              "time_linearity": 0.8,
              "pacing_velocity": 0.7,
              "threat_scale": 0.65,
              "protagonist_fate": 0.65,
              "conflict_style": 0.65,
              "price_type": 0.75
            },
            "score_space": "site-v1"
          },
          "NTSMR-2.5-deepseek/deepseek-v3.2": {
            "pipeline_version": "2.5",
            "backend": "openrouter",
            "model": "deepseek/deepseek-v3.2",
            "scores": {
              "time_linearity": 0.85,
              "pacing_velocity": 0.75,
              "threat_scale": 0.55,
              "protagonist_fate": 0.8,
              "conflict_style": 0.7,
              "price_type": 0.75
            },
            "score_space": "site-v1"
          },
          "NTSMR-2.5-z-ai/glm-4.7": {
            "pipeline_version": "2.5",
            "backend": "openrouter",
            "model": "z-ai/glm-4.7",
            "scores": {
              "time_linearity": 0.85,
              "pacing_velocity": 0.7,
              "threat_scale": 0.5,
              "protagonist_fate": 0.8,
              "conflict_style": 0.65,
              "price_type": 0.75
            },
            "score_space": "site-v1"
          },
          "NTSMR-2.5-z-ai/glm-5": {
            "pipeline_version": "2.5",
            "backend": "openrouter",
            "model": "z-ai/glm-5",
            "scores": {
              "time_linearity": 0.82,
              "pacing_velocity": 0.68,
              "threat_scale": 0.55,
              "protagonist_fate": 0.78,
              "conflict_style": 0.62,
              "price_type": 0.72
            },
            "score_space": "site-v1"
          },
          "NTSMR-2.5-balanced-glm-5+deepseek-v3.2": {
            "pipeline_version": "2.5",
            "backend": "openrouter",
            "model": "balanced-routing",
            "scores": {
              "time_linearity": 0.85,
              "pacing_velocity": 0.7,
              "threat_scale": 0.65,
              "protagonist_fate": 0.75,
              "conflict_style": 0.65,
              "price_type": 0.6
            },
            "score_space": "site-v1",
            "score_only": true,
            "source_run_label": "NTSMR-2.5-claude-sonnet-4-6-low"
          }
        }
      },
      "todorov_stages": {
        "equilibrium": "Zakalwe exists in a cyclical baseline: a veteran operative repeatedly extracted from retirement or injury by Diziet Sma and the Culture, deployed across planetary conflicts under cover identities, sustained by Culture medical technology and the promise of eventual access to Livueta.",
        "disruption": "The identity inversion that structures the entire novel — the man operating as Zakalwe is revealed to be Elethiomel, the Chairmaker who murdered both siblings and stole the real Cheradenine Zakalwe's identity two centuries ago, making every mission and the pursuit of Livueta's forgiveness a sustained act of self-deception.",
        "recognition": "Livueta delivers the central anagnorisis: the real Cheradenine Zakalwe died two centuries ago, and the man Sma has been deploying is Elethiomel who murdered both siblings and assumed the stolen identity — shattering the operative's constructed self.",
        "repair": "Across multiple timelines, Zakalwe attempts repair through continued service — executing the Beychae retrieval mission, surviving assassination attempts, and ultimately using the Staberinde alias to draw Beychae out — all framed as earning the right to face Livueta, who represents the only forgiveness that could resolve his foundational crime.",
        "new_equilibrium": "The novel closes not with reconciliation but with lateral continuation: two men plant a nuclear device in an abandoned city under bombardment and flee into the desert to watch the distant flash, suggesting that for Elethiomel-as-Zakalwe no true equilibrium is possible — only perpetual displacement and the next mission."
      },
      "characters": [
        {
          "name": "Anaplian",
          "slug": "anaplian",
          "aliases": [],
          "role": "Observer",
          "summary": "A woman who observes the drone's coordinated attack on an army with a knife missile and scout missile."
        },
        {
          "name": "Skaffen-Amtiskaw",
          "slug": "skaffen-amtiskaw",
          "aliases": [
            "drone"
          ],
          "role": "Culture drone",
          "summary": "An offensive drone accompanying Sma. It is heavily criticized by Sma for using excessive force, tracks Zakalwe's movements, and adopts a human-like avatar for a fancy dress party."
        },
        {
          "name": "Diziet Sma",
          "slug": "diziet-sma",
          "aliases": [
            "Sma",
            "Dizzy"
          ],
          "role": "Culture representative",
          "summary": "A Culture representative using a machine stand-in body at a peace conference, who propositions a composer before leaving to recruit Zakalwe, and later tends to him when he is just a head."
        },
        {
          "name": "Relstoch Sussepin",
          "slug": "relstoch-sussepin",
          "aliases": [
            "Mr. Sussepin"
          ],
          "role": "Composer",
          "summary": "A musician attending a peace conference who is courted and eventually propositioned by Sma for a one-night stand."
        },
        {
          "name": "Cheradenine Zakalwe",
          "slug": "cheradenine-zakalwe",
          "aliases": [
            "Zakalwe",
            "General",
            "Mr. Staberinde",
            "Major Zakalwe",
            "Sherad",
            "Cheri",
            "Sir Zakalwe",
            "Darac",
            "Professor",
            "He",
            "the mercenary",
            "the stranger",
            "the young man",
            "Livvy"
          ],
          "role": "Zakalwe's Sister / Estranged Relative",
          "summary": "The main character, who operates under aliases, survives horrific accidents like a spillway crash, is haunted by his childhood trauma involving Elethiomel and Darckense, and conducts interventions like escorting 'the Chosen'."
        },
        {
          "name": "Tsoldrin Beychae",
          "slug": "tsoldrin-beychae",
          "aliases": [
            "Beychae"
          ],
          "role": "Scholar / Political figure",
          "summary": "An aging scholar and politician whom Zakalwe rescues from a crashed capsule and tries to convince to actively intervene in impending galactic conflicts."
        },
        {
          "name": "Stod Perice",
          "slug": "stod-perice",
          "aliases": [],
          "role": "Medic",
          "summary": "A medical professional tasked with overseeing the two-hundred-day process of regrowing Zakalwe's body from his severed head."
        },
        {
          "name": "Rogtam-Bar",
          "slug": "rogtam-bar",
          "aliases": [
            "Bar"
          ],
          "role": "Junior commander",
          "summary": "A subordinate officer who rescues the General and informs him that his unorthodox plan involving a dam successfully wiped out the enemy high command."
        },
        {
          "name": "The Woman",
          "slug": "the-woman",
          "aliases": [
            "assassin",
            "auxiliary"
          ],
          "role": "Associate of the plotting man",
          "summary": "A cross-eyed enemy soldier who attempts to assassinate the General, gets tied to a chair in a flooded cottage, and hurls constant insults at him."
        },
        {
          "name": "Man at the window / Party host",
          "slug": "man-at-the-window-party-host",
          "aliases": [],
          "role": "Political figure or operative in Solotol",
          "summary": "A man plotting how to handle Staberinde's influence via the Vanguard Foundation, who later hosts the 'Injured Party' and offers Staberinde a meeting with Tsoldrin Beychae."
        },
        {
          "name": "Mollen",
          "slug": "mollen",
          "aliases": [],
          "role": "Servant / Enforcer",
          "summary": "A powerfully built, scarred, gray-haired man whose tongue was cruelly removed by his employers."
        },
        {
          "name": "Elethiomel",
          "slug": "elethiomel",
          "aliases": [
            "Elethiomel the Chairmaker"
          ],
          "role": "Childhood rival",
          "summary": "A boy raised with the Zakalwe children who became Cheradenine's rival, was involved in a traumatic event in a summerhouse with Darckense, and accidentally caused Darckense's crippling injury during an attack."
        },
        {
          "name": "Darckense",
          "slug": "darckense",
          "aliases": [
            "Darkle"
          ],
          "role": "Sister of Cheradenine",
          "summary": "Cheradenine's sister whose pelvis was shattered by a bullet Elethiomel fired, and who was later found in a compromising or traumatic situation with Elethiomel in the summerhouse."
        },
        {
          "name": "Livueta",
          "slug": "livueta",
          "aliases": [],
          "role": "Sister of Cheradenine",
          "summary": "One of Cheradenine's sisters who tried to protect Darckense during the attack on the stone boat."
        },
        {
          "name": "Little doctor",
          "slug": "little-doctor",
          "aliases": [],
          "role": "Surgeon/Entertainer",
          "summary": "A small man operating a machine that inflicts painless novelty injuries on guests at a decadent party."
        },
        {
          "name": "Girl (guider-through)",
          "slug": "girl-guider-through",
          "aliases": [],
          "role": "Tribal guide/companion",
          "summary": "An untried young woman assigned to sit with Zakalwe while he experiences a drug trip, whom he realizes is doomed to be erased by history despite her grand ambitions."
        },
        {
          "name": "Ubrel Shiol",
          "slug": "ubrel-shiol",
          "aliases": [],
          "role": "Jailer / Executioner",
          "summary": "A woman posing as a librarian or research assistant who is revealed by Zakalwe to be a highly trained jailer and potential executioner for Beychae."
        },
        {
          "name": "Ethnarch Kerian",
          "slug": "ethnarch-kerian",
          "aliases": [],
          "role": "Tyrant",
          "summary": "A terrified ruler confronted in his impregnable bedroom by a young man (Zakalwe) who forces him into peaceful exile to neutralize his political power."
        },
        {
          "name": "Dr. Stap",
          "slug": "dr-stap",
          "aliases": [],
          "role": "Underground doctor",
          "summary": "A discrete doctor traveling incognito who operates a tall medical machine in a ship's Starlight Lounge, coerced into helping Zakalwe at gunpoint."
        },
        {
          "name": "Saaz Insile",
          "slug": "saaz-insile",
          "aliases": [],
          "role": "Fellow pilot",
          "summary": "A pilot who visits the hospitalized Zakalwe to explain that the other drafted soldiers resent Zakalwe because his voluntary fighting highlights their own fear and desire to escape the war."
        },
        {
          "name": "Thone",
          "slug": "thone",
          "aliases": [],
          "role": "Squadron Commanding Officer",
          "summary": "A perfumed, insincere commanding officer involved in a coup plot who implicitly threatens Zakalwe in the hospital, letting him know his military career there is over."
        },
        {
          "name": "Talibe",
          "slug": "talibe",
          "aliases": [],
          "role": "Nurse",
          "summary": "A calm, kind nurse attending to Zakalwe as he recovers from severe head injuries in the military hospital."
        },
        {
          "name": "Chori",
          "slug": "chori",
          "aliases": [],
          "role": "Alien operative",
          "summary": "An eight-legged, red and purple alien with flower-like mouth parts who explains the structure of Contact and Special Circumstances to Zakalwe in a café."
        },
        {
          "name": "Napoerea",
          "slug": "napoerea",
          "aliases": [],
          "role": "High Priest / Leader",
          "summary": "A religious and political leader who resists Zakalwe's plan to destroy their symbolic spacecraft in a decapitation strike."
        },
        {
          "name": "Erens",
          "slug": "erens",
          "aliases": [],
          "role": "Crew Member",
          "summary": "A fellow passenger on the mercy ship Absent Friends who insists everyone awake on the voyage is running from something and tries to provoke Zakalwe into arguing."
        },
        {
          "name": "Ky",
          "slug": "ky",
          "aliases": [],
          "role": "Crew Member",
          "summary": "A crew member on the Absent Friends who argues with Erens and Zakalwe about whether stories and negotiations must have conclusions."
        },
        {
          "name": "Keiver",
          "slug": "keiver",
          "aliases": [],
          "role": "Noble/Advisor in besieged castle",
          "summary": "A man sheltering in a cold, besieged castle alongside Zakalwe, acting as a ward to the princess Neinte and trying to maintain a semblance of courtly manners."
        },
        {
          "name": "Neinte",
          "slug": "neinte",
          "aliases": [
            "princess"
          ],
          "role": "Princess",
          "summary": "A young girl and princess hiding in the besieged castle, under Keiver's technical wardship."
        },
        {
          "name": "Woman from parktown",
          "slug": "woman-from-parktown",
          "aliases": [],
          "role": "Visitor / Prostitute",
          "summary": "A woman who visits Zakalwe at his beach shack every few days, to whom he tells cryptic, tragic stories in a language she does not understand."
        },
        {
          "name": "Young man",
          "slug": "young-man",
          "aliases": [
            "the youth",
            "the boy"
          ],
          "role": "Murderer / Attacker",
          "summary": "A youth from the parktown who rapes and kills a girl, then attempts to kill Zakalwe but is repeatedly disarmed, humiliated, and ultimately killed by the townspeople."
        },
        {
          "name": "Cullis",
          "slug": "cullis",
          "aliases": [
            "the older man",
            "the old man"
          ],
          "role": "Zakalwe's companion",
          "summary": "A gray-haired, one-eyed older man wearing a too-large field marshal's jacket. He sleeps through the beginning of the bombardment, carrying wine bottles in his jacket which he later mistakes for his own blood."
        }
      ],
      "frameworks_mapped": [
        "Protocol Fiction Mapping",
        "Actantial Model",
        "Todorov's Equilibrium",
        "The Freytag Pyramid",
        "Propp's Morphology",
        "Genette's Narrative",
        "The Monomyth",
        "Dan Harmon",
        "Save the Cat",
        "Kishōtenketsu",
        "The Three-Act Structure",
        "Lévi-Strauss's Binary Oppositions",
        "Cognitive Estrangement",
        "Bakhtin's Chronotope",
        "Aristotelian Poetics",
        "Jungian Archetypal Analysis",
        "Genette's Transtextuality"
      ],
      "score_reliability": {
        "state": "contested",
        "threshold": 0.2,
        "runs_total": 12,
        "versions_compared": [
          "2.5"
        ],
        "max_spread": 0.23,
        "contested": [
          {
            "axis": "protagonist_fate",
            "version": "2.5",
            "spread": 0.23,
            "low": {
              "label": "NTSMR-2.5-minimax/minimax-m2.5",
              "model": "minimax/minimax-m2.5",
              "effort": "?",
              "value": 0.65
            },
            "high": {
              "label": "NTSMR-2.5-gemini-3.1-pro-preview",
              "model": "gemini-3.1-pro-preview",
              "effort": "?",
              "value": 0.88
            }
          },
          {
            "axis": "conflict_style",
            "version": "2.5",
            "spread": 0.2,
            "low": {
              "label": "NTSMR-2.5-claude-sonnet-4-6-low",
              "model": "claude-sonnet-4-6",
              "effort": "low",
              "value": 0.55
            },
            "high": {
              "label": "NTSMR-2.5-minimax/minimax-m2.5",
              "model": "minimax/minimax-m2.5",
              "effort": "?",
              "value": 0.75
            }
          },
          {
            "axis": "pacing_velocity",
            "version": "2.5",
            "spread": 0.2,
            "low": {
              "label": "NTSMR-2.5-claude-sonnet-4-6-low",
              "model": "claude-sonnet-4-6",
              "effort": "low",
              "value": 0.55
            },
            "high": {
              "label": "NTSMR-2.5-deepseek/deepseek-v3.2",
              "model": "deepseek/deepseek-v3.2",
              "effort": "?",
              "value": 0.75
            }
          },
          {
            "axis": "price_type",
            "version": "2.5",
            "spread": 0.2,
            "low": {
              "label": "NTSMR-2.5-balanced-glm-5+deepseek-v3.2",
              "model": "balanced-routing",
              "effort": "?",
              "value": 0.6
            },
            "high": {
              "label": "NTSMR-2.5-qwen/qwen3.5-plus-02-15",
              "model": "qwen/qwen3.5-plus-02-15",
              "effort": "?",
              "value": 0.8
            }
          },
          {
            "axis": "threat_scale",
            "version": "2.5",
            "spread": 0.2,
            "low": {
              "label": "NTSMR-2.5-claude-sonnet-4-6-low",
              "model": "claude-sonnet-4-6",
              "effort": "low",
              "value": 0.45
            },
            "high": {
              "label": "NTSMR-2.5-qwen/qwen3.5-397b-a17b",
              "model": "qwen/qwen3.5-397b-a17b",
              "effort": "?",
              "value": 0.65
            }
          }
        ]
      }
    },
    {
      "slug": "william_gibson_virtual_light",
      "title": "Virtual Light",
      "author": "William Gibson",
      "year": 1993,
      "medium": "book",
      "genre_tags": [
        "science fiction",
        "cyberpunk"
      ],
      "tropes": [],
      "quadrant_scores": {
        "time_linearity": 0.38,
        "pacing_velocity": 0.42,
        "threat_scale": 0.52,
        "protagonist_fate": 0.37,
        "conflict_style": 0.38,
        "price_type": 0.52
      },
      "baseline_quadrant_scores": {
        "time_linearity": 0.35,
        "pacing_velocity": 0.25,
        "threat_scale": 0.8,
        "protagonist_fate": 0.85,
        "conflict_style": 0.15,
        "price_type": 0.6
      },
      "provenance": {
        "analysis_run": "NTSMR-2.5-claude-sonnet-4-6-low",
        "analysis_body_sha256": "00f58f9cb4f056fbe5d80132c65fc3c86c77ab692fa41596ab2cffc00b668223",
        "synthesis": {
          "path": "nartopo-tools/artifacts/william_gibson_virtual_light.md.ntsmr-2-5-claude-sonnet-4-6-low.synthesis.json",
          "sha256": "baa5836f19e986065234e21654526b03029d1cb06251aaa4deba2a7b2ff5f1b0"
        },
        "report": {
          "path": "nartopo-tools/artifacts/william_gibson_virtual_light.md.ntsmr-2-5-claude-sonnet-4-6-low.report.json",
          "sha256": "3a7649c8eaba05d0c230ca466187eeb35afb5c885c6101bfa0f78331d6d3be23"
        },
        "source": {
          "path": "William Gibson/Virtual Light (1993).txt",
          "sha256": "09b1ec79e55d77dbdb3264790f7d5db330e7d6527ef3aee0df261bfe1f888a84",
          "digest_observed_at": "2026-09-09",
          "digest_at_analysis_run": null,
          "edition": null,
          "edition_status": "unresolved"
        },
        "pipeline_revision_at_run": null,
        "verification": {
          "source": "unverified",
          "human_review": "unreviewed",
          "bibliography": "unverified"
        },
        "issues": [],
        "todorov_status": "recovered-from-synthesis",
        "work_identity": {
          "title": "Virtual Light",
          "author": "William Gibson",
          "year": 1993
        }
      },
      "ntsmr": {
        "version": "2.5",
        "primary_run_label": "NTSMR-2.5-claude-sonnet-4-6-low",
        "runs": {
          "NTSMR-2.3-gemini-3.1-pro-preview": {
            "pipeline_version": "2.3",
            "backend": "gemini",
            "model": "gemini-3.1-pro-preview",
            "scores": {
              "time_linearity": 0.3,
              "pacing_velocity": 0.6,
              "threat_scale": 0.8,
              "protagonist_fate": 0.7,
              "conflict_style": 0.3,
              "price_type": 0.5
            },
            "score_space": "site-v1"
          },
          "NTSMR-2.3-claude-sonnet-4-6-low": {
            "pipeline_version": "2.3",
            "backend": "claude",
            "model": "claude-sonnet-4-6",
            "scores": {
              "time_linearity": 0.35,
              "pacing_velocity": 0.45,
              "threat_scale": 0.72,
              "protagonist_fate": 0.25,
              "conflict_style": 0.38,
              "price_type": 0.55
            },
            "score_space": "site-v1",
            "reasoning_effort": "low"
          },
          "NTSMR-2.4-claude-sonnet-4-6-low": {
            "pipeline_version": "2.4",
            "backend": "claude",
            "model": "claude-sonnet-4-6",
            "scores": {
              "time_linearity": 0.45,
              "pacing_velocity": 0.28,
              "threat_scale": 0.35,
              "protagonist_fate": 0.35,
              "conflict_style": 0.25,
              "price_type": 0.32
            },
            "score_space": "site-v1",
            "reasoning_effort": "low"
          },
          "NTSMR-2.5-claude-sonnet-4-6-low": {
            "pipeline_version": "2.5",
            "backend": "claude",
            "model": "claude-sonnet-4-6",
            "scores": {
              "time_linearity": 0.38,
              "pacing_velocity": 0.42,
              "threat_scale": 0.52,
              "protagonist_fate": 0.37,
              "conflict_style": 0.38,
              "price_type": 0.52
            },
            "score_space": "site-v1",
            "reasoning_effort": "low"
          },
          "NTSMR-2.5-balanced-glm-5+deepseek-v3.2": {
            "pipeline_version": "2.5",
            "backend": "openrouter",
            "model": "balanced-routing",
            "scores": {
              "time_linearity": 0.3,
              "pacing_velocity": 0.4,
              "threat_scale": 0.55,
              "protagonist_fate": 0.35,
              "conflict_style": 0.45,
              "price_type": 0.55
            },
            "score_space": "site-v1",
            "score_only": true,
            "source_run_label": "NTSMR-2.5-claude-sonnet-4-6-low"
          }
        }
      },
      "todorov_stages": {
        "equilibrium": "Rydell drifts through a stable if marginal existence as an ex-cop turned IntenSecure armed-response guard in Los Angeles, briefly famous from Cops in Trouble; Chevette lives a settled if precarious life as a bicycle messenger on the Bay Bridge with Skinner.",
        "disruption": "Chevette impulsively steals data-glasses from a party at the Hotel Morrisey, triggering IntenSecure's inquiry to her employer and setting in motion a pursuit involving Warbaby, Svobodov and Orlovsky, and the hired killer Loveless — all converging on recovering glasses that contain Sunflower urban-redevelopment plans for San Francisco.",
        "recognition": "Rydell connects the full conspiracy — the Russians, Warbaby, IntenSecure, DatAmerica, and the Singapore data haven — into a single picture after learning Chevette's backstory including Sammy Sal's murder and the dead man at the Morrisey; Loveless then confirms the glasses contain the Sunflower development data.",
        "repair": "Rydell recruits Chevette, Sublett, and Lowell's Republic of Desire hacker collective to deliver the glasses to Karen Mendelsohn in LA while God-eater's hack triggers autonomous police helicopters to swarm the plaza, neutralizing the threat and completing the transfer.",
        "new_equilibrium": "Lawyers from Cops in Trouble arrive and sign Rydell, Chevette, and Sublett as clients; Rydell will be arrested then immediately bailed, the crisis reframed as heroic media spectacle; Karen plans to use the Sunflower data to implicate Cody Harwood; Chevette is out on bail; Yamazaki remains on the Bridge caring for Skinner, trading artifacts for food — a new, altered but functional status quo for each protagonist."
      },
      "characters": [
        {
          "name": "The courier",
          "slug": "the-courier",
          "aliases": [],
          "role": "Courier carrying valuable data-glasses",
          "summary": "A courier who transports sensitive information. He travels from Mexico City to San Francisco, carrying a highly valuable pair of data-glasses that are subsequently stolen from him after a party at Harwood's."
        },
        {
          "name": "Berry Rydell",
          "slug": "berry-rydell",
          "aliases": [
            "Rydell",
            "Nixon"
          ],
          "role": "Unemployed armed-response driver",
          "summary": "A former IntenSecure armed-response driver from the South. After a disastrous hostage response and a bizarre incident driving a company vehicle, he loses his job and relies on Hernandez to find new work, which leads him to Lucius Warbaby."
        },
        {
          "name": "Kenneth Turvey",
          "slug": "kenneth-turvey",
          "aliases": [
            "Turvey"
          ],
          "role": "Hostage-taker",
          "summary": "A naked, unbathed machinist in Knoxville with a freshly tattooed chest who held his girlfriend hostage, demanding to speak to the president, an incident that Rydell responded to."
        },
        {
          "name": "Sublett",
          "slug": "sublett",
          "aliases": [],
          "role": "Fugitive's companion",
          "summary": "Rydell's heavily allergic partner during their time at IntenSecure. He rides shotgun in the Hotspur Hussar and suffers a severe allergic reaction during the Schonbrunn incident."
        },
        {
          "name": "Hernandez",
          "slug": "hernandez",
          "aliases": [],
          "role": "Rydell's former IntenSecure supervisor",
          "summary": "Rydell's supervisor at IntenSecure who is sympathetic to Rydell's firing and hooks him up with a driving job for Lucius Warbaby."
        },
        {
          "name": "Ms. Cooper",
          "slug": "ms-cooper",
          "aliases": [],
          "role": "IntenSecure client",
          "summary": "An affluent client from New Hampshire who uses IntenSecure's services and comments on her neighbors' sense of irony."
        },
        {
          "name": "Yamazaki",
          "slug": "yamazaki",
          "aliases": [
            "Scooter"
          ],
          "role": "Researcher/Sociologist",
          "summary": "A Japanese researcher studying the bridge community. He interviews Skinner to understand the history and sociology of the bridge's improvised settlement."
        },
        {
          "name": "Skinner",
          "slug": "skinner",
          "aliases": [
            "Skinner-san"
          ],
          "role": "Original bridge resident",
          "summary": "An elderly man who was one of the first to occupy the bridge during the initial takeover. He lives in a scavenged room on the suspension cables, cares for Chevette, and is interviewed by Yamazaki."
        },
        {
          "name": "Chevette-Marie Washington",
          "slug": "chevette-marie-washington",
          "aliases": [
            "Chevette",
            "Vette",
            "the girl",
            "Chevy",
            "Chev",
            "Chevette Washington"
          ],
          "role": "Bike messenger and bridge resident",
          "summary": "A bike messenger in San Francisco who lives with Skinner on the bridge. She steals the courier's data-glasses and becomes increasingly anxious about possessing them."
        },
        {
          "name": "Nigel",
          "slug": "nigel",
          "aliases": [],
          "role": "Mechanic on the bridge",
          "summary": "A bridge resident who builds and repairs delivery carts and bike wheels. He teases Chevette about her paper bike frame."
        },
        {
          "name": "Karen",
          "slug": "karen",
          "aliases": [],
          "role": "Rydell's acquaintance/lover",
          "summary": "A woman whose apartment Rydell is staying in when he is evicted by IntenSecure rentacops. She coldly kicks him out after discovering suspects for the Pooky Bear murders."
        },
        {
          "name": "Bunny",
          "slug": "bunny",
          "aliases": [],
          "role": "Dispatcher",
          "summary": "A dispatcher at Allied Messenger Service who informs Chevette that security agents are looking for her."
        },
        {
          "name": "Sammy Sal",
          "slug": "sammy-sal",
          "aliases": [],
          "role": "Bike Messenger",
          "summary": "A fellow bike messenger who helps Chevette identify the stolen Virtual Light glasses and is shot while trying to intervene during her abduction."
        },
        {
          "name": "Ringer",
          "slug": "ringer",
          "aliases": [],
          "role": "Vandal",
          "summary": "A young man who gets physically intimidated by Sammy Sal for tagging his name in clients' elevators."
        },
        {
          "name": "Warbaby",
          "slug": "warbaby",
          "aliases": [],
          "role": "Corporate operative",
          "summary": "An operative with a leg brace and cane who utilizes Virtual Light glasses to analyze crime scenes and tasks Rydell with finding Chevette."
        },
        {
          "name": "Svobodov",
          "slug": "svobodov",
          "aliases": [],
          "role": "Homicide Cop / Enforcer",
          "summary": "A tall, sinewy, pale-haired San Francisco homicide cop working alongside Warbaby."
        },
        {
          "name": "Orlovsky",
          "slug": "orlovsky",
          "aliases": [],
          "role": "Homicide Cop / Enforcer",
          "summary": "Svobodov's partner, another Russian enforcer wearing half-frame glasses."
        },
        {
          "name": "Freddie",
          "slug": "freddie",
          "aliases": [
            "Freddy"
          ],
          "role": "Warbaby's jockey",
          "summary": "Warbaby's assistant who feeds data to the Virtual Light glasses and warns Rydell about the dangers of the bridge community."
        },
        {
          "name": "Loveless",
          "slug": "loveless",
          "aliases": [
            "Smiley",
            "the cowboy fucker"
          ],
          "role": "Assassin / Enforcer",
          "summary": "A trained killer working to protect data couriers and recover stolen data, who suffers a drug-induced psychotic break from 'dancer'."
        },
        {
          "name": "James Delmore Shapely",
          "slug": "james-delmore-shapely",
          "aliases": [
            "J.D. Shapely",
            "Shapely"
          ],
          "role": "Historical figure / HIV survivor",
          "summary": "A former prostitute who became famous for carrying a mutant strain of HIV that suppressed the deadly version."
        },
        {
          "name": "Lowell",
          "slug": "lowell",
          "aliases": [],
          "role": "Chevette's ex-boyfriend",
          "summary": "A drug user with hacker connections to the Republic of Desire who disappointed Chevette when she sought his help."
        },
        {
          "name": "Codes",
          "slug": "codes",
          "aliases": [],
          "role": "Lowell's associate",
          "summary": "A man who trades stolen phones, which Lowell has someone reprogram."
        },
        {
          "name": "Fontaine",
          "slug": "fontaine",
          "aliases": [],
          "role": "Bridge mechanic",
          "summary": "A man living on the bridge who brings Yamazaki a phone and tells him aboutChevete's arrest and the upcoming Shapely parade."
        },
        {
          "name": "Danica Elliott",
          "slug": "danica-elliott",
          "aliases": [
            "Mrs. Elliott"
          ],
          "role": "RV driver / Tourist",
          "summary": "A talkative woman who rented an RV to drive to LA after relocating her deceased husband's frozen brain."
        },
        {
          "name": "God-eater",
          "slug": "god-eater",
          "aliases": [
            "Richard",
            "Paradise"
          ],
          "role": "Hacker",
          "summary": "A highly capable hacker belonging to a cell in the Republic of Desire, who manipulates the ECCCS to frame Warbaby's crew."
        },
        {
          "name": "Aaron Pursley",
          "slug": "aaron-pursley",
          "aliases": [
            "Pursley"
          ],
          "role": "Lawyer",
          "summary": "A lawyer representing Rydell and the others, eager to exploit the media and legal angles of their situation."
        },
        {
          "name": "Wellington Ma",
          "slug": "wellington-ma",
          "aliases": [],
          "role": "Lawyer",
          "summary": "A lawyer in a navy blazer working alongside Pursley and Karen Mendelsohn to represent Rydell's group."
        }
      ],
      "frameworks_mapped": [
        "Protocol Fiction Mapping",
        "Actantial Model",
        "Todorov's Equilibrium",
        "The Freytag Pyramid",
        "Propp's Morphology",
        "Genette's Narrative",
        "The Monomyth",
        "Dan Harmon",
        "Save the Cat",
        "Kishōtenketsu",
        "The Three-Act Structure"
      ],
      "score_reliability": {
        "state": "replicated-agree",
        "threshold": 0.2,
        "runs_total": 5,
        "versions_compared": [
          "2.5"
        ],
        "max_spread": 0.08,
        "contested": []
      }
    },
    {
      "slug": "ted_chiang_what_s_expected_of_us",
      "title": "What's Expected of Us",
      "author": "Ted Chiang",
      "year": 2019,
      "medium": "short_story",
      "genre_tags": [],
      "tropes": [],
      "quadrant_scores": {
        "time_linearity": 0.65,
        "pacing_velocity": 0.8,
        "threat_scale": 0.9,
        "protagonist_fate": 0.8,
        "conflict_style": 0.88,
        "price_type": 0.88
      },
      "provenance": {
        "analysis_run": "NTSMR-2.5-claude-sonnet-4-6-low",
        "analysis_body_sha256": "63b7c8687042d1e8fd25efe595c90d4ca9e19d36b16d1f693b3fa77696a5e0f7",
        "synthesis": {
          "path": "nartopo-tools/artifacts/ted_chiang_what_s_expected_of_us.md.ntsmr-2-5-claude-sonnet-4-6-low.synthesis.json",
          "sha256": "c19b151c35acc2a8d4876e93838e56b409e6db7bf983248ce9fd9de610fc2461"
        },
        "report": {
          "path": "nartopo-tools/artifacts/ted_chiang_what_s_expected_of_us.md.ntsmr-2-5-claude-sonnet-4-6-low.report.json",
          "sha256": "8fab8c614001c36b30a80c3b7f640144269b81308f841465b6390489f1f2f487"
        },
        "source": {
          "path": "Ted Chiang/What's Expected of Us.txt",
          "sha256": "cd5e067f715c7d70ea5cdb1ee453baa9ae1763bb9ce769dd8ccbb2db87ac86e7",
          "digest_observed_at": "2026-09-09",
          "digest_at_analysis_run": null,
          "edition": null,
          "edition_status": "unresolved"
        },
        "pipeline_revision_at_run": null,
        "verification": {
          "source": "unverified",
          "human_review": "unreviewed",
          "bibliography": "unverified"
        },
        "issues": [],
        "todorov_status": "recovered-from-synthesis",
        "work_identity": {
          "title": "What's Expected of Us",
          "author": "Ted Chiang",
          "year": 2019
        }
      },
      "ntsmr": {
        "version": "2.5",
        "primary_run_label": "NTSMR-2.5-claude-sonnet-4-6-low",
        "runs": {
          "NTSMR-2.3-gemini-3.1-pro-preview": {
            "pipeline_version": "2.3",
            "backend": "gemini",
            "model": "gemini-3.1-pro-preview",
            "scores": {
              "time_linearity": 0.8,
              "pacing_velocity": 0.95,
              "threat_scale": 0.9,
              "protagonist_fate": 1,
              "conflict_style": 0.9,
              "price_type": 1
            },
            "score_space": "site-v1"
          },
          "NTSMR-2.3-claude-sonnet-4-6-low": {
            "pipeline_version": "2.3",
            "backend": "claude",
            "model": "claude-sonnet-4-6",
            "scores": {
              "time_linearity": 0.35,
              "pacing_velocity": 0.85,
              "threat_scale": 0.9,
              "protagonist_fate": 0.75,
              "conflict_style": 0.82,
              "price_type": 0.95
            },
            "score_space": "site-v1",
            "reasoning_effort": "low"
          },
          "NTSMR-2.4-claude-sonnet-4-6-low": {
            "pipeline_version": "2.4",
            "backend": "claude",
            "model": "claude-sonnet-4-6",
            "scores": {
              "time_linearity": 0.45,
              "pacing_velocity": 0.65,
              "threat_scale": 0.8,
              "protagonist_fate": 0.85,
              "conflict_style": 0.8,
              "price_type": 0.75
            },
            "score_space": "site-v1",
            "reasoning_effort": "low"
          },
          "NTSMR-2.5-claude-sonnet-4-6-low": {
            "pipeline_version": "2.5",
            "backend": "claude",
            "model": "claude-sonnet-4-6",
            "scores": {
              "time_linearity": 0.65,
              "pacing_velocity": 0.8,
              "threat_scale": 0.9,
              "protagonist_fate": 0.8,
              "conflict_style": 0.88,
              "price_type": 0.88
            },
            "score_space": "site-v1",
            "reasoning_effort": "low"
          },
          "NTSMR-2.5-balanced-glm-5+deepseek-v3.2": {
            "pipeline_version": "2.5",
            "backend": "openrouter",
            "model": "balanced-routing",
            "scores": {
              "time_linearity": 0.6,
              "pacing_velocity": 0.82,
              "threat_scale": 0.82,
              "protagonist_fate": 0.82,
              "conflict_style": 0.88,
              "price_type": 0.82
            },
            "score_space": "site-v1",
            "score_only": true,
            "source_run_label": "NTSMR-2.5-claude-sonnet-4-6-low"
          }
        }
      },
      "todorov_stages": {
        "equilibrium": "Society functions with a shared implicit belief in free will. Philosophical arguments against free will exist and are widely considered irrefutable, yet no one truly internalizes them — the felt experience of agency overrides abstract reasoning, and civilization proceeds on the assumption that choices matter.",
        "disruption": "The Predictor enters mass circulation and provides an experiential demonstration — not merely an argument — that the future is immutable. Users cannot outwit the device; it converts a philosophical abstraction into a visceral, undeniable certainty. This demonstration proves decisive where argument never could.",
        "recognition": "A third of Predictor users, unable to forget what the device means, progressively recognize that their choices do not matter. Over weeks the implications sink in, collapsing motivation entirely. Doctors confront patients who articulate the decisive shift: 'But now I know.' The distinction between knowing abstractly and knowing demonstrably proves fatal to agency.",
        "repair": "The narrator, transmitting from one year in the future via longer-range negative-time-delay technology, issues a warning: pretend you have free will. Behave as if decisions matter even knowing they do not. The proposed remedy is not restoration of actual free will but the deliberate, sustained maintenance of a self-deception that civilization has always implicitly depended upon.",
        "new_equilibrium": "The new equilibrium is inherently unstable and paradoxical. A predetermined fraction of the population descends into akinetic mutism; the remainder must consciously sustain a lie they now know to be a lie. The narrator admits the warning cannot alter these proportions and closes by acknowledging the act of sending it was itself not freely chosen — enacting the very determinism it describes. Civilization continues, if at all, only through willed self-deception about willed self-deception."
      },
      "characters": [
        {
          "name": "The Narrator",
          "slug": "the-narrator",
          "aliases": [
            "I"
          ],
          "role": "Messenger/Observer",
          "summary": "An unnamed individual transmitting a warning back in time from just over a year in the future."
        },
        {
          "name": "Predictor Users / Patients",
          "slug": "predictor-users-patients",
          "aliases": [
            "people",
            "patients"
          ],
          "role": "Subject demographic",
          "summary": "Ordinary people who play with the Predictor, realize free will does not exist, and succumb to akinetic mutism as a result."
        },
        {
          "name": "Doctors",
          "slug": "doctors",
          "aliases": [
            "doctor"
          ],
          "role": "Observers/Interveners",
          "summary": "Medical professionals who attempt to use logic to argue their patients out of their akinetic mutism."
        }
      ],
      "frameworks_mapped": [
        "Protocol Fiction Mapping",
        "Actantial Model",
        "Todorov's Equilibrium",
        "The Freytag Pyramid",
        "Propp's Morphology",
        "Genette's Narrative",
        "The Monomyth",
        "Dan Harmon",
        "Save the Cat",
        "Kishōtenketsu",
        "The Three-Act Structure",
        "Lévi-Strauss's Binary Oppositions",
        "Cognitive Estrangement",
        "Bakhtin's Chronotope",
        "Aristotelian Poetics",
        "Jungian Archetypal Analysis",
        "Genette's Transtextuality"
      ],
      "score_reliability": {
        "state": "replicated-agree",
        "threshold": 0.2,
        "runs_total": 5,
        "versions_compared": [
          "2.5"
        ],
        "max_spread": 0.08,
        "contested": []
      }
    }
  ]
}