Skip to content

Wire ambient narration through the pipeline #517

Description

@dkirby-ms

Summary

AmbientSystem narrates weather/time/atmosphere/merchant events with renderAmbientTemplate only ("cache-first LLM enhancement planned", AmbientSystem.ts:5-6). Route ambient events through NarrationService.narrate() so the living-world prose can be LLM-enhanced.

Scope / Tasks

  • Inject/access NarrationService from AmbientSystem (it currently imports only ambient-templates, :25).
  • For each emitted AmbientEvent (:179-212, :278), build an appropriate NarrationContext and call narrate(), using the rendered template as fallback.
  • Map ambient event types to a suitable LLMNarrationType (or extend the type set if none fits) — confirm against shared/narrative-types.ts.
  • Add tests asserting ambient events reach narrate() with template fallback.

Acceptance Criteria

  • Ambient events emit LLM prose when configured, templates otherwise.
  • Test confirms ambient narration reaches the pipeline.

Dependencies

#513; Milestone A.

Size

M

Derived from the LLM narration gap analysis (Volo) and decomposition (Elminster).

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    ambientAmbient world systemsllmLLM narration integrationnarrativesquad:jarlaxleAssigned to Jarlaxle (Systems Dev)wiringConnecting existing code into runtime paths

    Projects

    No projects

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions