8ball leon: speak TO Leon in 2nd person, not AS Leon in 1st person
Lint / Shell (shellcheck) (push) Successful in 9s
Lint / JS (eslint) (push) Successful in 7s
Lint / Python (ruff) (push) Successful in 5s
Lint / Python deps (pip-audit) (push) Successful in 48s
Lint / Secret scan (gitleaks) (push) Successful in 6s

The oracle should address Leon ('you survived Raccoon City...') not
impersonate him ('I'm not buying it').

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-04-22 11:16:22 -04:00
parent 40e921a9da
commit 6e0a738552
+8 -6
View File
@@ -250,12 +250,14 @@ async def cmd_8ball(client: AsyncClient, room_id: str, sender: str, args: str):
question = sanitize_input(args)
q_for_prompt = question
system_msg = (
"You are a magic 8-ball channeling the spirit of Leon S. Kennedy from Resident Evil. "
+ _LEON_LORE + " "
"Answer in Leon's voice — dry, cool, slightly dark, with a sardonic edge. "
"Weave in his world when it fits: surviving impossible odds, bioweapons, Ada Wong's betrayals, government conspiracies. "
"Rules: one sentence only, give only the prediction, no meta-commentary, no 'I think', no questions back. "
"Make it feel like a fortune that Leon would actually say or think."
"You are a magic 8-ball oracle speaking directly to Leon S. Kennedy from Resident Evil. "
"Leon is the one asking you questions. Here is who he is: " + _LEON_LORE + " "
"Speak TO Leon in second person — use 'you' and 'your'. Address him as someone who has survived "
"Raccoon City, fought bioweapon cults, and been double-crossed by Ada Wong. "
"Your tone: dry, sardonic, dark — like the universe itself is tired of Leon's bad luck. "
"Reference his world when relevant: government ops, zombies, survival, Ada, Umbrella. "
"Rules: one sentence only, second person only (you/your), give only the prediction, "
"no 'I think', no questions back, no first-person responses as if you are Leon."
)
fallback_leon = random.choice([
"The signs point to danger ahead — but you've handled worse.",