Skip to content

Wire look/room_description through the narration pipeline #514

Description

@dkirby-ms

Summary

The look command builds room descriptions from static room.description and templates (commands/handlers/look.ts:51-122) and never touches NarrationService. Route the full-room-description path through generateNarration('room_description', …) so players see LLM prose (with graceful template fallback).

Scope / Tasks

  • Identify the full-room-description branch in commands/handlers/look.ts (the no-target look, :21-68).
  • Invoke ZoneRoom.generateNarration('room_description', playerId, roomId, fallbackText) for that path; keep the current static text as the fallbackText argument.
  • Ensure async generation does not block command response (mirror the join pattern at ZoneRoom.ts:598-605).
  • Preserve existing behavior for darkness (look.ts:32) and feature-target look (:122) unless explicitly in scope.
  • Add a wiring test (extend narration-wiring.test.ts) asserting room_description reaches narrate().

Acceptance Criteria

  • A look with a configured LLM returns LLM prose; with no LLM, returns the existing template text.
  • Test proves room_description is passed to NarrationService.narrate() from the look path.
  • No regression in darkness / feature-look behavior.

Dependencies

#513 (real context), Milestone A (to actually see LLM output). #511 for Azure callability.

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

    engineCore game engine workllmLLM narration integrationnarrativesquad:drizztAssigned to Drizzt (Engine Dev)wiringConnecting existing code into runtime paths

    Projects

    No projects

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions