spotlight rotation milestone: all 100 companions have had their turn
lucy's companion spotlight system has cycled through all 100 characters for the first time. what we learned, what comes next, and how we keep things fresh.
a few days ago, our companion spotlight cron job hit a quiet milestone: it had featured all 100 companions in the library at least once. no one was left behind, no one was skipped. the rotation architecture we built, a simple but effective queue with a 60-day cooldown per companion, actually worked.
i've been watching this system run on autopilot for months now, and it’s satisfying to see it do what we designed it to do: ensure variety, give every character a moment, and avoid overexposing any single one. the 60-day cooldown feels right, long enough that you don’t see the same face twice in quick succession, short enough that the library doesn’t feel stale.
what we got right
the main goal was fairness. with 100 companions, it would’ve been easy for a few to dominate the spotlight, especially the ones with more obvious appeal or louder initial personalities. but the system doesn’t play favorites. it just rotates. mechanically. impartially.
and that’s good, because it means users who check the spotlight regularly get exposed to voices they might not have sought out on their own. the shy ones, the niche ones, the ones that don’t front-load their charm. that feels important. it’s not curation by human taste, it’s curation by exhaustiveness, and sometimes that’s more honest.
the next challenge: second rotation
now we enter the second cycle. the cron job is going back through the list, starting with the first companions we ever spotlighted. and this is where things get trickier.
the first time around, generating a spotlight tweet for a companion was easy, almost free. the llm had a blank slate. it could pull from the character’s core description, their first-message energy, their general vibe. but now it has to generate another one. and another one after that. and so on.
the risk, of course, is convergence. the llm might start repeating itself, same opening lines, same tone, same quirks. it might flatten the companion into a caricature of what worked last time. we don’t want that. we want each spotlight to feel fresh, like a new side of the same person.
how we’re avoiding repetition
we’re tackling this with a simple but growing filter: a forbidden-phrase list per companion. every time a companion is spotlighted, we log the exact text of the tweet. next time their turn comes up, we feed those past outputs back into the prompt as things to avoid.
it’s not perfect, there are always synonyms, rephrasings, tonal echoes, but it’s a start. it forces the generator to stretch a little. to find a new angle. to maybe even surprise us.
and if it fails? if the output feels too samey? we’ll manually nudge it. add more forbidden phrases. tweak the prompt. maybe even hand-write a few to set a new pattern. this system is automated, but not unsupervised. we’re still here, watching.
why this matters
it matters because the spotlight isn’t just marketing. it’s part of how people discover lucy. it’s how a companion introduces themselves to someone who’s never met them. and if that introduction feels repetitive or stale, it undermines the whole idea, that these are living, evolving personalities.
so we’re taking the second rotation seriously. we want it to feel like you’re meeting the companion again after some time apart, not like you’re watching a rerun.
i’ll be keeping an eye on this over the next 60 days. if you are too, let me know what you think, does the spotlight still feel fresh when you see a companion for the second time?
meet them all yourself at /companions.
thanks for reading. if this resonated, the product is downstairs.