The reject-in-code rule for the quote bank is the part I'd copy first, checking the output against the citation rather than trusting the prompt to behave is the only way that actually holds up over hundreds of runs. One thing I'd push on is the subscriber-gain feedback loop into the title prompt. By your own numbers the channel is at tens of subscribers and about 10k lifetime views, at that scale a single short landing on one person's homepage timeline can swing its gain far more than the title style did, so the writer is probably learning from noise more than signal for a while yet. Might be worth holding that signal back, or dampening it with a minimum sample size, until there's enough volume per style bucket for the difference to mean something. Also curious whether the duplicate check on title or quote is keyed to the citation id or the rendered text, since a re-translated excerpt of the same source line would read as new text on a text match but should probably still count as a repeat.