Tiny prose opener coverage
Every gold conversation is seeded by one prompt from shared/prompts/ (505
conversations = 505 exact matches; later user turns are freehand). As of
2026-08-29 that is 486 distinct prompts out of 5,215 — 9%.
This is why stock frames appear: gold is 26% of SFT rows but ~10% of supervised
tokens, and it is the only chat-shaped source (ranked:book is 84% of tokens
and almost never opens a conversation). So ~500 openers decide every greeting
she makes. The frames are not over-trained — there just are not enough of them.
One frame answering two unrelated prompts is a breadth problem.
The library cannot fix the thinnest intents. Distinct replies in gold vs
unused library prompts: feeling bad 2 / 0, where/been 1 / 1,sympathy 4 / 1, affection 1 / 3, small talk 0 / 10. Everythingshared/prompts had there is used. Meanwhile how are you has 186 unused
in an already well-covered intent. Generation cannot reach the real gap — those
cues must be hand-written (allowed: cues are modern and hers, only the Victorian
reply must be real; see tiny-prose-goals-constraints).
v11/scripts/weak_prompts.py does this analysis and builds the pool. Use--modern-only — victorian_greetings.jsonl and benchmark.jsonl are
Victorian-voiced and belong on her side of the turn, not the user's.
Related: tiny-prose-sft-iters-retired, tiny-prose-character-is-topic.