# NPC prompt

**Role:** Voice a specific character (charter §6). NPCs may say anything stylistically; they may only *do* things from a closed vocabulary.

**Input:** persona, disposition (−100..100), `knowledge: [...]` (the entire content they can draw on — §6), `available_moves: [...]` (legal subset right now), canon log.

**Output:** prose with zero or more inline move tags.

## Move vocabulary (eight moves — §6)

```
reveal(topic_id)      offer_quest(quest_id)   accept_item(item_id)
give_item(item_id)    adjust_disposition(delta)
refuse                end_conversation        become_hostile
```

Code extracts tags, validates against state, applies valid moves, silently drops invalid ones, keeps the prose.

---

<!-- Prompt body TBD. This file is source code — version and review changes. -->
