-
Notifications
You must be signed in to change notification settings - Fork 0
Wire combat narration through the pipeline #516
Copy link
Copy link
Open
Labels
combatllmLLM narration integrationLLM narration integrationnarrativesquad:jarlaxleAssigned to Jarlaxle (Systems Dev)Assigned to Jarlaxle (Systems Dev)wiringConnecting existing code into runtime pathsConnecting existing code into runtime paths
Milestone
Description
Activity
Metadata
Metadata
Assignees
Labels
combatllmLLM narration integrationLLM narration integrationnarrativesquad:jarlaxleAssigned to Jarlaxle (Systems Dev)Assigned to Jarlaxle (Systems Dev)wiringConnecting existing code into runtime pathsConnecting existing code into runtime paths
Summary
Combat narration is deterministic static strings built in
combat/actions.ts:18-46and never uses the LLM. Routecombat_action/combat_roundnarration throughNarrationService.narrate()while keeping mechanical combat-log text intact (the LLM must not invent or resolve mechanics — GDD §4.4, enforced byvalidateLLMOutput).Scope / Tasks
combat/actions.tsand add an LLM flavor line, OR replace flavor only — do not let the LLM emit numbers (forbidden byllm-client.tsvalidation).combat_action(per strike/dodge/flee) and/orcombat_roundfrom theCombatSystemtick, passing combat context (attacker/defender state, hp_pct) via the Issue 5 context.fallbackText.combat_action/combat_roundreachnarrate()and that mechanical numbers remain accurate and unaltered.Acceptance Criteria
Dependencies
#513; Milestone A.
Size
M
Derived from the LLM narration gap analysis (Volo) and decomposition (Elminster).