Skip to content

feat: LLM-based personality and name generation (toggleable) - #116

Open
jpmalone0 wants to merge 4 commits into
ramarivera:mainfrom
jpmalone0:feat/llm-personality-generation
Open

feat: LLM-based personality and name generation (toggleable)#116
jpmalone0 wants to merge 4 commits into
ramarivera:mainfrom
jpmalone0:feat/llm-personality-generation

Conversation

@jpmalone0

Copy link
Copy Markdown
Contributor

Summary

  • Replaces deterministic template personality/name generation with Claude Haiku calls via the claude CLI — produces more varied, stat-specific flavor text
  • Adds server/generation.ts with generatePersonality, generateName, and generateBuddy; adds buddy_generate_personality and buddy_generate_name MCP tools for on-demand re-rolls
  • Makes LLM generation opt-out via a llmGeneration config flag (default: true). When disabled, falls back to the original seeded phrase-template system — instant, no Claude CLI dependency, deterministic per buddy. Toggle with /buddy style llm_generation false
  • Also includes element placement config method updates and gold crown hat color

Design notes

The toggle exists specifically for users who don't have Claude CLI available, prefer the deterministic behavior, or want faster generation. The template fallback (templatePersonality / templateName in generation.ts) is a direct port of the original engine.ts logic.

buddy_generate_personality and buddy_generate_name tools always use LLM regardless of the toggle — they're explicit user requests.

Test plan

  • New buddy generation produces varied personality text tied to species/stats
  • buddy_generate_personality and buddy_generate_name tools work
  • /buddy style llm_generation false switches to template generation (fast, no CLI call)
  • Template generation produces deterministic output for same userId+bones
  • All existing tests pass (bun test)

jpmalone0 and others added 4 commits April 26, 2026 18:49
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Signed-off-by: Joseph Paul Malone <jpmalone0@gmail.com>
Adds server/generation.ts with generatePersonality and generateName
using claude-haiku-4-5. The picker TUI prefetches name+personality
asynchronously with a spinner as you navigate results; cached results
are used at hatch with no second API call. Adds buddy_generate_personality
and buddy_generate_name MCP tools for re-rolling on demand.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

working on personality generator

Signed-off-by: Joseph Paul Malone <jpmalone0@gmail.com>

personality generator update

Signed-off-by: Joseph Paul Malone <jpmalone0@gmail.com>

faster personality gen

Signed-off-by: Joseph Paul Malone <jpmalone0@gmail.com>
Signed-off-by: Joseph Paul Malone <jpmalone0@gmail.com>
Adds llmGeneration config flag (default: true) so users who prefer
the original deterministic template behavior can opt out. When disabled,
generation falls back to seeded phrase templates — instant, no Claude
CLI dependency, same personality every time for a given buddy.

Toggle via /buddy style llm_generation false. buddy_generate_personality
and buddy_generate_name always use LLM regardless (explicit user request).

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Signed-off-by: Joseph Paul Malone <jpmalone0@gmail.com>
@jpmalone0
jpmalone0 force-pushed the feat/llm-personality-generation branch from 9faafd1 to 1aa4a1f Compare April 26, 2026 22:52
@ramarivera

Copy link
Copy Markdown
Owner

Hey @jpmalone0 — triaging open PRs after the project's big rename (claude-buddy → coding-buddy, plus native Pi / Oh My Pi extensions and npm publishing). This PR (and its sibling #117, which appears stacked on it) now conflicts with main fairly deeply — the files it touches were at the center of that churn plus the recent XP/mood/species merge.

Are you still interested in landing this? If so, a rebase would be the next step and we'll review it properly. If we don't hear back in a couple of weeks we'll close these two as stale to keep the queue honest — always reopenable if you pick it back up. (Your #113/#114/#115 fixes are being merged, thanks for those!)

🤖 Created with the help of AI (Claude Fable 5).

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants