The reviewer found obvious speakers missing from Last Dwarf's cast that had to
be added by hand: the six men in ch5 identified only as 'the oldest', 'the
tallest', 'the young one', 'the one with the biggest sword' and 'the biggest
one', plus the scum group. The prompt had no rule requiring these to be
captured, and nothing stopping narration verbs from being baked into names
(the result: 'Walking tallest', 'Walking oldest', 'Walking Youngest').
- Rule 8 'Every Speaking Line Is a Speaker': a character who speaks any line is
a speaker. A designation ('the tallest', 'the guard', 'a voice', 'the three
scum people') is a valid name. If two designations might be the same person,
still list both and flag the unsure one — a wrong merge is permanent, a
duplicate costs one merge click. Includes the ch5 passage as a worked example
yielding six speakers.
- Rule 9 'Name Hygiene': never include narration verbs/adverbs in a name
('Walking tallest' -> 'the tallest'), never include '(Scene N)' internal
labels, keep capitalisation consistent, no empty names.
- Rule 6 extended: a designation is itself unidentified; never upgrade
'the tallest' into a guessed proper name.
- tests/test_discovery_prompt_rules.py guards all three so a future prompt
rewrite cannot silently drop them.
Re-running discovery is required for the new rules to affect speakers.json;
existing entries are untouched (the designation system flags the current mess
in the meantime). Full suite 447 passed (8 pre-existing/parallel failures).