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.
Both fair hits, and I changed both today. The dedupe was keyed on the first 60 characters of the rendered quote text, so a different translation of the same passage would have slipped through. It now also keys on the normalized citation (source plus passage number, translator stripped), so Meditations 10.34 counts as used no matter whose translation it is. On the feedback loop, agreed that at this volume it's mostly noise: own-channel results now only feed the title prompt once there are at least 20 public Shorts with data, and until then it leans on a larger sample of niche outlier titles instead. Thanks for reading closely.
Good fix, keying off the normalized citation instead of the rendered text is the right move. One more edge case worth a look: does the passage-number part of that key assume a single numbering scheme? Some classical texts get renumbered across editions, different chapter or passage splits for the same line, so a quote that's really the same line could still key differently depending on which edition's numbering the source used. Probably not worth guarding against if you're only ever pulling from one edition per author, but worth checking if the source list ever crosses editions.
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.