feat(voice): add personality trait modifier clauses for voice pipeline
10 trait modifiers targeting distinct speech dimensions (delivery force, word selection, sentence shape, framing, cadence, volume, texture, position) so they stack without conflict. Used by prompt_builder.rs to modify NPC speech style based on personality traits. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -0,0 +1,48 @@
|
||||
// Trait Modifier Clauses for Voice Pipeline (D-138)
|
||||
//
|
||||
// One clause per PersonalityTrait. Injected into LLM prompts to modify
|
||||
// speech style based on NPC personality. Stacks with culture persona
|
||||
// and tell-state injectors.
|
||||
//
|
||||
// Schema: map of trait name → clause string
|
||||
// Used by: server/src/voice/prompt_builder.rs
|
||||
//
|
||||
// Writing notes:
|
||||
// - Behavioral, not emotional. Never label a feeling.
|
||||
// - Each clause targets a distinct speech dimension so traits stack cleanly.
|
||||
// Bold = delivery force. Cautious = word selection. Curious = sentence shape.
|
||||
// etc. A Bold+Guarded NPC speaks with force but picks words carefully — no conflict.
|
||||
// - Kept to 1-2 sentences. LLM context is limited and these share space with
|
||||
// persona, tell-state, and epistemic marker instructions.
|
||||
|
||||
{
|
||||
// Delivery: force and directness. Short sentences land without hedging.
|
||||
"Bold": "This character doesn't soften the landing. Statements arrive short and flat — no qualifiers, no trailing uncertainty.",
|
||||
|
||||
// Word selection: nothing committed without cover. Hedges stay.
|
||||
"Cautious": "This character hedges where the situation allows it. \"Probably,\" \"might,\" \"I'd say\" — these aren't weakness, they're habit.",
|
||||
|
||||
// Sentence shape: questions surface. Interest pulls the line open.
|
||||
"Curious": "This character lets interest show at the end of a line — a beat longer than needed, a question that wasn't required.",
|
||||
|
||||
// Framing: the useful version, not the true version. Nothing false, just selected.
|
||||
"Deceptive": "This character leads with what serves them. The useful detail arrives early; the less useful one doesn't arrive at all.",
|
||||
|
||||
// Framing: no softening, no omission. The whole thing, bluntly.
|
||||
"Honest": "This character gives the whole answer, including the part that doesn't reflect well. Nothing is softened to spare anyone.",
|
||||
|
||||
// Cadence: fast entry, no ramp-up. The response is already in motion.
|
||||
"Impulsive": "This character starts talking before the thought is finished. The sentence catches up to itself mid-way.",
|
||||
|
||||
// Cadence: deliberate pacing. Sequence matters. One thing before the next.
|
||||
"Methodical": "This character takes things in order. Sentences build, one piece at a time, and don't arrive at the point before the steps do.",
|
||||
|
||||
// Volume and reach: minimal, inward-facing. Not interested in being heard widely.
|
||||
"Reclusive": "This character answers what was asked and closes the door. There is no invitation for follow-up.",
|
||||
|
||||
// Texture: open, inclusive. Others are assumed to be present and welcome.
|
||||
"Social": "This character addresses the conversation, not just the question. A word or two lands that wasn't strictly necessary — the kind that keeps things warm.",
|
||||
|
||||
// Position: established, not revisable. Sentences don't open up once they're out.
|
||||
"Stubborn": "This character doesn't revise mid-sentence. What comes out is what they meant, and nothing in the delivery invites renegotiation.",
|
||||
}
|
||||
Reference in New Issue
Block a user